vendor: 15,944 bytes, lines 1-80
1var gj = {}; 2gj.widget = function() { var a = this; 3 a.xhr = null, a.generateGUID = function() { 4 function a() { return Math.floor(65536 * (1 + Math.random())).toString(16).substring(1) } return a() + a() + "-" + a() + "-" + a() + "-" + a() + "-" + a() + a() + a() }, a.mouseX = function(a) { if (a) { if (a.pageX) return a.pageX; if (a.clientX) return a.clientX + (document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft); if (a.touches && a.touches.length) return a.touches[0].pageX; if (a.changedTouches && a.changedTouches.length) return a.changedTouches[0].pageX; if (a.originalEvent && a.originalEvent.touches && a.originalEvent.touches.length) return a.originalEvent.touches[0].pageX; if (a.originalEvent && a.originalEvent.changedTouches && a.originalEvent.changedTouches.length) return a.originalEvent.touches[0].pageX } return null }, a.mouseY = function(a) { if (a) { if (a.pageY) return a.pageY; if (a.clientY) return a.clientY + (document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop); if (a.touches && a.touches.length) return a.touches[0].pageY; if (a.changedTouches && a.changedTouches.length) return a.changedTouches[0].pageY; if (a.originalEvent && a.originalEvent.touches && a.originalEvent.touches.length) return a.originalEvent.touches[0].pageY; if (a.originalEvent && a.originalEvent.changedTouches && a.originalEvent.changedTouches.length) return a.originalEvent.touches[0].pageY } return null } }, gj.widget.prototype.init = function(a, b) { var c, d, e; 5 this.attr("data-type", b), d = $.extend(!0, {}, this.getHTMLConfig() || {}), $.extend(!0, d, a || {}), e = this.getConfig(d, b), this.attr("data-guid", e.guid), this.data(e); for (c in e) gj[b].events.hasOwnProperty(c) && (this.on(c, e[c]), delete e[c]); for (plugin in gj[b].plugins) gj[b].plugins.hasOwnProperty(plugin) && gj[b].plugins[plugin].configure(this, e, d); return this }, gj.widget.prototype.getConfig = function(a, b) { var c, d, e, f; 6 c = $.extend(!0, {}, gj[b].config.base), d = a.hasOwnProperty("uiLibrary") ? a.uiLibrary : c.uiLibrary, gj[b].config[d] && $.extend(!0, c, gj[b].config[d]), e = a.hasOwnProperty("iconsLibrary") ? a.iconsLibrary : c.iconsLibrary, gj[b].config[e] && $.extend(!0, c, gj[b].config[e]); for (f in gj[b].plugins) gj[b].plugins.hasOwnProperty(f) && ($.extend(!0, c, gj[b].plugins[f].config.base), gj[b].plugins[f].config[d] && $.extend(!0, c, gj[b].plugins[f].config[d]), gj[b].plugins[f].config[e] && $.extend(!0, c, gj[b].plugins[f].config[e])); return $.extend(!0, c, a), c.guid || (c.guid = this.generateGUID()), c }, gj.widget.prototype.getHTMLConfig = function() { var a = this.data(), 7 b = this[0].attributes; return b.width && (a.width = b.width.value), b.height && (a.height = b.height.value), b.value && (a.value = b.value.value), b.align && (a.align = b.align.value), a && a.source && (a.dataSource = a.source, delete a.source), a }, gj.widget.prototype.createDoneHandler = function() { var a = this; return function(b) { "string" == typeof b && JSON && (b = JSON.parse(b)), gj[a.data("type")].methods.render(a, b) } }, gj.widget.prototype.createErrorHandler = function() { return function(a) { a && a.statusText && "abort" !== a.statusText && alert(a.statusText) } }, gj.widget.prototype.reload = function(a) { var b, c, d = this.data(), 8 e = this.data("type"); return void 0 === d.dataSource && gj[e].methods.useHtmlDataSource(this, d), $.extend(d.params, a), $.isArray(d.dataSource) ? (c = gj[e].methods.filter(this), gj[e].methods.render(this, c)) : "string" == typeof d.dataSource ? (b = { url: d.dataSource, data: d.params }, this.xhr && this.xhr.abort(), this.xhr = $.ajax(b).done(this.createDoneHandler()).fail(this.createErrorHandler())) : "object" == typeof d.dataSource && (d.dataSource.data || (d.dataSource.data = {}), $.extend(d.dataSource.data, d.params), b = $.extend(!0, {}, d.dataSource), "json" === b.dataType && "object" == typeof b.data && (b.data = JSON.stringify(b.data)), b.success || (b.success = this.createDoneHandler()), b.error || (b.error = this.createErrorHandler()), this.xhr && this.xhr.abort(), this.xhr = $.ajax(b)), this }, gj.documentManager = { events: {}, subscribeForEvent: function(a, b, c) { if (gj.documentManager.events[a] && 0 !== gj.documentManager.events[a].length) { if (gj.documentManager.events[a][b]) throw "Event " + a + ' for widget with guid="' + b + '" is already attached.'; 9 gj.documentManager.events[a].push({ widgetId: b, callback: c }) } else gj.documentManager.events[a] = [{ widgetId: b, callback: c }], $(document).on(a, gj.documentManager.executeCallbacks) }, executeCallbacks: function(a) { var b = gj.documentManager.events[a.type]; if (b) 10 for (var c = 0; c < b.length; c++) b[c].callback(a) }, unsubscribeForEvent: function(a, b) { var c = !1, 11 d = gj.documentManager.events[a]; if (d) 12 for (var e = 0; e < d.length; e++) d[e].widgetId === b && (d.splice(e, 1), c = !0, 0 === d.length && ($(document).off(a), delete gj.documentManager.events[a])); if (!c) throw 'The "' + a + '" for widget with guid="' + b + "\" can't be removed." } }, gj.core = { messages: { "en-us": { monthNames: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], monthShortNames: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], weekDaysMin: ["S", "M", "T", "W", "T", "F", "S"], weekDaysShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], weekDays: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], am: "AM", pm: "PM", ok: "Ok", cancel: "Cancel", titleFormat: "mmmm yyyy" } }, parseDate: function(a, b, c) { var d, e, f, g, h = 0, 13 i = 0, 14 j = 1, 15 k = 0, 16 l = 0; if (a && "string" == typeof a) { if (/^\d+$/.test(a)) g = new Date(a); 17 else if (a.indexOf("/Date(") > -1) g = new Date(parseInt(a.substr(6), 10)); 18 else if (a) { for (f = b.split(/[\s,-\.\/\/\:]+/), e = a.split(/[\s]+/), e.length != f.length && (e = a.split(/[\s,-\.\/\/\:]+/)), d = 0; d < f.length; d++)["d", "dd"].indexOf(f[d]) > -1 ? j = parseInt(e[d], 10) : ["m", "mm"].indexOf(f[d]) > -1 ? i = parseInt(e[d], 10) - 1 : "mmm" === f[d] ? i = gj.core.messages[c || "en-us"].monthShortNames.indexOf(e[d]) : "mmmm" === f[d] ? i = gj.core.messages[c || "en-us"].monthNames.indexOf(e[d]) : ["yy", "yyyy"].indexOf(f[d]) > -1 ? (h = parseInt(e[d], 10), "yy" === f[d] && (h += 2e3)) : ["h", "hh", "H", "HH"].indexOf(f[d]) > -1 ? k = parseInt(e[d], 10) : ["M", "MM"].indexOf(f[d]) > -1 && (l = parseInt(e[d], 10)); 19 g = new Date(h, i, j, k, l) } } else "number" == typeof a ? g = new Date(a) : a instanceof Date && (g = a); return g }, formatDate: function(a, b, c) { var d, e, f = "", 20 g = b.split(/[\s,-\.\/\/\:]+/), 21 h = b.split(/s+|M+|H+|h+|t+|T+|d+|m+|y+/); for (h = h.splice(1, h.length - 2), i = 0; i < g.length; i++) switch (d = h[i] || "", g[i]) { 22 case "s": 23 f += a.getSeconds() + d; break; 24 case "ss": 25 f += gj.core.pad(a.getSeconds()) + d; break; 26 case "M": 27 f += a.getMinutes() + d; break; 28 case "MM": 29 f += gj.core.pad(a.getMinutes()) + d; break; 30 case "H": 31 f += a.getHours() + d; break; 32 case "HH": 33 f += gj.core.pad(a.getHours()) + d; break; 34 case "h": 35 e = a.getHours() > 12 ? a.getHours() % 12 : a.getHours(), f += e + d; break; 36 case "hh": 37 e = a.getHours() > 12 ? a.getHours() % 12 : a.getHours(), f += gj.core.pad(e) + d; break; 38 case "tt": 39 f += (a.getHours() >= 12 ? "pm" : "am") + d; break; 40 case "TT": 41 f += (a.getHours() >= 12 ? "PM" : "AM") + d; break; 42 case "d": 43 f += a.getDate() + d; break; 44 case "dd": 45 f += gj.core.pad(a.getDate()) + d; break; 46 case "ddd": 47 f += gj.core.messages[c || "en-us"].weekDaysShort[a.getDay()] + d; break; 48 case "dddd": 49 f += gj.core.messages[c || "en-us"].weekDays[a.getDay()] + d; break; 50 case "m": 51 f += a.getMonth() + 1 + d; break; 52 case "mm": 53 f += gj.core.pad(a.getMonth() + 1) + d; break; 54 case "mmm": 55 f += gj.core.messages[c || "en-us"].monthShortNames[a.getMonth()] + d; break; 56 case "mmmm": 57 f += gj.core.messages[c || "en-us"].monthNames[a.getMonth()] + d; break; 58 case "yy": 59 f += a.getFullYear().toString().substr(2) + d; break; 60 case "yyyy": 61 f += a.getFullYear() + d } 62 return f }, pad: function(a, b) { for (a = String(a), b = b || 2; a.length < b;) a = "0" + a; return a }, center: function(a) { var b = $(window).width() / 2 - a.width() / 2, 63 c = $(window).height() / 2 - a.height() / 2; 64 a.css("position", "absolute"), a.css("left", b > 0 ? b : 0), a.css("top", c > 0 ? c : 0) }, isIE: function() { return !!navigator.userAgent.match(/Trident/g) || !!navigator.userAgent.match(/MSIE/g) }, setChildPosition: function(a, b) { var c = a.getBoundingClientRect(), 65 d = gj.core.height(a, !0), 66 e = gj.core.height(b, !0), 67 f = gj.core.width(a, !0), 68 g = gj.core.width(b, !0), 69 h = window.scrollY || window.pageYOffset || 0, 70 i = window.scrollX || window.pageXOffset || 0; 71 c.top + d + e > window.innerHeight && c.top > e ? b.style.top = Math.round(c.top + h - e - 3) + "px" : b.style.top = Math.round(c.top + h + d + 3) + "px", c.left + g > document.body.clientWidth ? b.style.left = Math.round(c.left + i + f - g) + "px" : b.style.left = Math.round(c.left + i) + "px" }, height: function(a, b) { var c, d = window.getComputedStyle(a); return "border-box" === d.boxSizing ? (c = parseInt(d.height, 10), gj.core.isIE() && (c += parseInt(d.paddingTop || 0, 10) + parseInt(d.paddingBottom || 0, 10), c += parseInt(d.borderTopWidth || 0, 10) + parseInt(d.borderBottomWidth || 0, 10))) : (c = parseInt(d.height, 10), c += parseInt(d.paddingTop || 0, 10) + parseInt(d.paddingBottom || 0, 10), c += parseInt(d.borderTopWidth || 0, 10) + parseInt(d.borderBottomWidth || 0, 10)), b && (c += parseInt(d.marginTop || 0, 10) + parseInt(d.marginBottom || 0, 10)), c }, width: function(a, b) { var c, d = window.getComputedStyle(a); return "border-box" === d.boxSizing ? c = parseInt(d.width, 10) : (c = parseInt(d.width, 10), c += parseInt(d.paddingLeft || 0, 10) + parseInt(d.paddingRight || 0, 10), c += parseInt(d.borderLeftWidth || 0, 10) + parseInt(d.borderRightWidth || 0, 10)), b && (c += parseInt(d.marginLeft || 0, 10) + parseInt(d.marginRight || 0, 10)), c }, addClasses: function(a, b) { var c, d; if (b) 72 for (d = b.split(" "), c = 0; c < d.length; c++) a.classList.add(d[c]) }, position: function(a) { for (var b, c, d = 0, e = 0, f = gj.core.height(a), g = gj.core.width(a); a;) "BODY" == a.tagName ? (b = a.scrollLeft || document.documentElement.scrollLeft, c = a.scrollTop || document.documentElement.scrollTop, d += a.offsetLeft - b, e += a.offsetTop - c) : (d += a.offsetLeft - a.scrollLeft, e += a.offsetTop - a.scrollTop), a = a.offsetParent; return { top: e, left: d, bottom: e + f, right: d + g } }, setCaretAtEnd: function(a) { var b; if (a) 73 if (b = a.value.length, document.selection) { a.focus(); var c = document.selection.createRange(); 74 c.moveStart("character", -b), c.moveStart("character", b), c.moveEnd("character", 0), c.select() } else(a.selectionStart || "0" == a.selectionStart) && (a.selectionStart = b, a.selectionEnd = b, a.focus()) }, getScrollParent: function(a) { return null == a ? null : a.scrollHeight > a.clientHeight ? a : gj.core.getScrollParent(a.parentNode) } }, gj.picker = { messages: { "en-us": {} } }, gj.picker.methods = { initialize: function(a, b, c) { var d, e = c.createPicker(a, b), 75 f = a.parent('div[role="wrapper"]'); 76 d = "bootstrap" === b.uiLibrary ? $('<span class="input-group-addon">' + b.icons.rightIcon + "</span>") : "bootstrap4" === b.uiLibrary ? $('<span class="input-group-append"><button class="btn btn-outline-secondary border-left-0" type="button">' + b.icons.rightIcon + "</button></span>") : $(b.icons.rightIcon), d.attr("role", "right-icon"), 0 === f.length ? (f = $('<div role="wrapper" />').addClass(b.style.wrapper), a.wrap(f)) : f.addClass(b.style.wrapper), f = a.parent('div[role="wrapper"]'), b.width && f.css("width", b.width), a.val(b.value).addClass(b.style.input).attr("role", "input"), b.fontSize && a.css("font-size", b.fontSize), "bootstrap" === b.uiLibrary || "bootstrap4" === b.uiLibrary ? "small" === b.size ? (f.addClass("input-group-sm"), a.addClass("form-control-sm")) : "large" === b.size && (f.addClass("input-group-lg"), a.addClass("form-control-lg")) : "small" === b.size ? f.addClass("small") : "large" === b.size && f.addClass("large"), d.on("click", function(b) { e.is(":visible") ? a.close() : a.open() }), f.append(d), !0 !== b.footer && (a.on("blur", function() { a.timeout = setTimeout(function() { a.close() }, 500) }), e.mousedown(function() { return clearTimeout(a.timeout), a.focus(), !1 }), e.on("click", function() { clearTimeout(a.timeout), a.focus() })) } }, gj.picker.widget = function(a, b) { var c = this, 77 d = gj.picker.methods; return c.destroy = function() { return d.destroy(this) }, a }, gj.picker.widget.prototype = new gj.widget, gj.picker.widget.constructor = gj.picker.widget, gj.picker.widget.prototype.init = function(a, b, c) { return gj.widget.prototype.init.call(this, a, b), this.attr("data-" + b, "true"), gj.picker.methods.initialize(this, this.data(), gj[b].methods), this }, gj.picker.widget.prototype.open = function(a) { var b = this.data(), 78 c = $("body").find('[role="picker"][guid="' + this.attr("data-guid") + '"]'); return c.show(), c.closest('div[role="modal"]').show(), b.modal ? gj.core.center(c) : (gj.core.setChildPosition(this[0], c[0]), this.focus()), clearTimeout(this.timeout), gj[a].events.open(this), this }, gj.picker.widget.prototype.close = function(a) { var b = $("body").find('[role="picker"][guid="' + this.attr("data-guid") + '"]'); return b.hide(), b.closest('div[role="modal"]').hide(), gj[a].events.close(this), this }, gj.picker.widget.prototype.destroy = function(a) { var b = this.data(), 79 c = this.parent(), 80 d = $("body").find('[role="picker"][guid="' + this.attr("data-guid") + '"]'); return b && (this.off(), d.parent('[role="modal"]').length > 0 && d.unwrap(), d.remove(), this.removeData(), this.removeAttr("data-type").removeAttr("data-guid").removeAttr("data-" + a), this.removeClass(), c.children('[role="right-icon"]').remove(), this.unwrap()), this }, gj.dialog = { plugins: {}, messages: {} }, gj.dialog.config = { base: { autoOpen: !0, closeButtonInHeader: !0, closeOnEscape: !0, draggable: !0, height: "auto", locale: "en-us", maxHeight: void 0, maxWidth: void 0, minHeight: void 0, minWidth: void 0, modal: !1, resizable: !1, scrollable: !1, title: void 0, uiLibrary: void 0, width: 300, style: { modal: "gj-modal", content: "gj-dialog-md", header: "gj-dialog-md-header gj-unselectable", headerTitle: "gj-dialog-md-title", headerCloseButton: "gj-dialog-md-close", body: "gj-dialog-md-body", footer: "gj-dialog-footer gj-dialog-md-footer" } }
vendor: 6,132 bytes, lines 80-85
80, bootstrap: { style: { modal: "modal", content: "modal-content gj-dialog-bootstrap", header: "modal-header", headerTitle: "modal-title", headerCloseButton: "close", body: "modal-body", footer: "gj-dialog-footer modal-footer" } }, bootstrap4: { style: { modal: "modal", content: "modal-content gj-dialog-bootstrap4", header: "modal-header", headerTitle: "modal-title", headerCloseButton: "close", body: "modal-body", footer: "gj-dialog-footer modal-footer" } } }, gj.dialog.events = { initialized: function(a) { a.trigger("initialized") }, opening: function(a) { a.trigger("opening") }, opened: function(a) { a.trigger("opened") }, closing: function(a) { a.trigger("closing") }, closed: function(a) { a.trigger("closed") }, drag: function(a) { a.trigger("drag") }, dragStart: function(a) { a.trigger("dragStart") }, dragStop: function(a) { a.trigger("dragStop") }, resize: function(a) { a.trigger("resize") }, resizeStart: function(a) { a.trigger("resizeStart") }, resizeStop: function(a) { a.trigger("resizeStop") } }, gj.dialog.methods = { init: function(a) { return gj.widget.prototype.init.call(this, a, "dialog"), gj.dialog.methods.localization(this), gj.dialog.methods.initialize(this), gj.dialog.events.initialized(this), this }, localization: function(a) { var b = a.data(); 81 void 0 === b.title && (b.title = gj.dialog.messages[b.locale].DefaultTitle) }, getHTMLConfig: function() { var a = gj.widget.prototype.getHTMLConfig.call(this), 82 b = this[0].attributes; return b.title && (a.title = b.title.value), a }, initialize: function(a) { var b, c, d, e = a.data(); 83 a.addClass(e.style.content), gj.dialog.methods.setSize(a), e.closeOnEscape && $(document).keyup(function(b) { 27 === b.keyCode && a.close() }), c = a.children('div[data-role="body"]'), 0 === c.length ? (c = $('<div data-role="body"/>').addClass(e.style.body), a.wrapInner(c)) : c.addClass(e.style.body), b = gj.dialog.methods.renderHeader(a), d = a.children('div[data-role="footer"]').addClass(e.style.footer), a.find('[data-role="close"]').on("click", function() { a.close() }), gj.draggable && (e.draggable && gj.dialog.methods.draggable(a, b), e.resizable && gj.dialog.methods.resizable(a)), e.scrollable && e.height && (a.addClass("gj-dialog-scrollable"), a.on("opened", function() { a.children('div[data-role="body"]').css("height", e.height - b.outerHeight() - (d.length ? d.outerHeight() : 0)) })), gj.core.center(a), e.modal && a.wrapAll('<div data-role="modal" class="' + e.style.modal + '"/>'), e.autoOpen && a.open() }, setSize: function(a) { var b = a.data(); 84 b.width && a.css("width", b.width), b.height && a.css("height", b.height) }, renderHeader: function(a) { var b, c, d, e = a.data(); return b = a.children('div[data-role="header"]'), 0 === b.length && (b = $('<div data-role="header" />'), a.prepend(b)), b.addClass(e.style.header), c = b.find('[data-role="title"]'), 0 === c.length && (c = $('<h4 data-role="title">' + e.title + "</h4>"), b.append(c)), c.addClass(e.style.headerTitle), d = b.find('[data-role="close"]'), 0 === d.length && e.closeButtonInHeader ? (d = $('<button type="button" data-role="close" title="' + gj.dialog.messages[e.locale].Close + '"><span>Ã</span></button>'), d.addClass(e.style.headerCloseButton), b.append(d)) : d.length > 0 && !1 === e.closeButtonInHeader ? d.hide() : d.addClass(e.style.headerCloseButton), b }, draggable: function(a, b) { a.appendTo("body"), b.addClass("gj-draggable"), a.draggable({ handle: b, start: function() { a.addClass("gj-unselectable"), gj.dialog.events.dragStart(a) }, stop: function() { a.removeClass("gj-unselectable"), gj.dialog.events.dragStop(a) } }) }, resizable: function(a) { var b = { drag: gj.dialog.methods.resize, start: function() { a.addClass("gj-unselectable"), gj.dialog.events.resizeStart(a) }, stop: function() { this.removeAttribute("style"), a.removeClass("gj-unselectable"), gj.dialog.events.resizeStop(a) } }; 85 a.append($('<div class="gj-resizable-handle gj-resizable-n"></div>').draggable($.extend(!0, { horizontal: !1 }, b))), a.append($('<div class="gj-resizable-handle gj-resizable-e"></div>').draggable($.extend(!0, { vertical: !1 }, b))), a.append($('<div class="gj-resizable-handle gj-resizable-s"></div>').draggable($.extend(!0, { horizontal: !1 }, b))), a.append($('<div class="gj-resizable-handle gj-resizable-w"></div>').draggable($.extend(!0, { vertical: !1 }, b))), a.append($('<div class="gj-resizable-handle gj-resizable-ne"></div>').draggable($.extend(!0, {}, b))), a.append($('<div class="gj-resizable-handle gj-resizable-nw"></div>').draggable($.extend(!0, {}, b))), a.append($('<div class="gj-resizable-handle gj-resizable-sw"></div>').draggable($.extend(!0, {}, b))), a.append($('<div class="gj-resizable-handle gj-resizable-se"></div>').draggable($.extend(!0, {}, b))) }, resize: function(a, b) { var c, d, e, f, g, h, i, j, k = !1; return c = $(this), d = c.parent(), e = gj.core.position(this), offset = { top: b.top - e.top, left: b.left - e.left }, f = d.data(), c.hasClass("gj-resizable-n") ? (g = d.height() - offset.top, i = d.offset().top + offset.top) : c.hasClass("gj-resizable-e") ? h = d.width() + offset.left : c.hasClass("gj-resizable-s") ? g = d.height() + offset.top : c.hasClass("gj-resizable-w") ? (h = d.width() - offset.left, j = d.offset().left + offset.left) : c.hasClass("gj-resizable-ne") ? (g = d.height() - offset.top, i = d.offset().top + offset.top, h = d.width() + offset.left) : c.hasClass("gj-resizable-nw") ? (g = d.height() - offset.top, i = d.offset().top + offset.top, h = d.width() - offset.left, j = d.offset().left + offset.left) : c.hasClass("gj-resizable-se") ? (g = d.height() + offset.top, h = d.width() + offset.left) : c.hasClass("gj-resizable-sw") && (g = d.height() + offset.top, h = d.width() - offset.left, j = d.offset().left + offset.left), g && (!f.minHeight || g >= f.minHeight) && (!f.maxHeight || g <= f.maxHeight) && (d.height(g), i && d.css("top", i), k = !0), h && (!f.minWidth || h >= f.minWidth) && (!f.maxWidth || h <= f.maxWidth) && (d.width(h), j && d.css("left", j), k = !0), k && gj.dialog.events.resize(d),
vendor: 86,288 bytes, lines 85-330
85k }, open: function(a, b) { var c; return gj.dialog.events.opening(a), a.css("display", "block"), a.closest('div[data-role="modal"]').css("display", "block"), c = a.children('div[data-role="footer"]'), c.length && c.outerHeight() && a.children('div[data-role="body"]').css("margin-bottom", c.outerHeight()), void 0 !== b && a.find('[data-role="title"]').html(b), gj.dialog.events.opened(a), a }, close: function(a) { return a.is(":visible") && (gj.dialog.events.closing(a), a.css("display", "none"), a.closest('div[data-role="modal"]').css("display", "none"), gj.dialog.events.closed(a)), a }, isOpen: function(a) { return a.is(":visible") }, content: function(a, b) { var c = a.children('div[data-role="body"]'); return void 0 === b ? c.html() : c.html(b) }, destroy: function(a, b) { var c = a.data(); return c && (!1 === b ? a.remove() : (a.close(), a.off(), a.removeData(), a.removeAttr("data-type"), a.removeClass(c.style.content), a.find('[data-role="header"]').removeClass(c.style.header), a.find('[data-role="title"]').removeClass(c.style.headerTitle), a.find('[data-role="close"]').remove(), a.find('[data-role="body"]').removeClass(c.style.body), a.find('[data-role="footer"]').removeClass(c.style.footer))), a } }, gj.dialog.widget = function(a, b) { var c = this, 86 d = gj.dialog.methods; return c.open = function(a) { return d.open(this, a) }, c.close = function() { return d.close(this) }, c.isOpen = function() { return d.isOpen(this) }, c.content = function(a) { return d.content(this, a) }, c.destroy = function(a) { return d.destroy(this, a) }, $.extend(a, c), "dialog" !== a.attr("data-type") && d.init.call(a, b), a }, gj.dialog.widget.prototype = new gj.widget, gj.dialog.widget.constructor = gj.dialog.widget, gj.dialog.widget.prototype.getHTMLConfig = gj.dialog.methods.getHTMLConfig, 87 function(a) { a.fn.dialog = function(a) { var b; if (this && this.length) { if ("object" != typeof a && a) { if (b = new gj.dialog.widget(this, null), b[a]) return b[a].apply(this, Array.prototype.slice.call(arguments, 1)); throw "Method " + a + " does not exist." } return new gj.dialog.widget(this, a) } } }(jQuery), gj.dialog.messages["en-us"] = { Close: "Close", DefaultTitle: "Dialog" }, gj.draggable = { plugins: {} }, gj.draggable.config = { base: { handle: void 0, vertical: !0, horizontal: !0, containment: void 0 } }, gj.draggable.methods = { init: function(a) { var b, c, d = this; return gj.widget.prototype.init.call(this, a, "draggable"), c = this.data(), d.attr("data-draggable", "true"), b = gj.draggable.methods.getHandleElement(d), b.on("touchstart mousedown", function(a) { var e = gj.core.position(d[0]); 88 d[0].style.top = e.top + "px", d[0].style.left = e.left + "px", d[0].style.position = "fixed", d.attr("draggable-dragging", !0), d.removeAttr("draggable-x").removeAttr("draggable-y"), gj.documentManager.subscribeForEvent("touchmove", d.data("guid"), gj.draggable.methods.createMoveHandler(d, b, c)), gj.documentManager.subscribeForEvent("mousemove", d.data("guid"), gj.draggable.methods.createMoveHandler(d, b, c)) }), gj.documentManager.subscribeForEvent("mouseup", d.data("guid"), gj.draggable.methods.createUpHandler(d)), gj.documentManager.subscribeForEvent("touchend", d.data("guid"), gj.draggable.methods.createUpHandler(d)), gj.documentManager.subscribeForEvent("touchcancel", d.data("guid"), gj.draggable.methods.createUpHandler(d)), d }, getHandleElement: function(a) { var b = a.data("handle"); return b && b.length ? b : a }, createUpHandler: function(a) { return function(b) { "true" === a.attr("draggable-dragging") && (a.attr("draggable-dragging", !1), gj.documentManager.unsubscribeForEvent("mousemove", a.data("guid")), gj.documentManager.unsubscribeForEvent("touchmove", a.data("guid")), gj.draggable.events.stop(a, { x: a.mouseX(b), y: a.mouseY(b) })) } }, createMoveHandler: function(a, b, c) { return function(b) { var d, e, f, g, h, i; "true" === a.attr("draggable-dragging") && (d = Math.round(a.mouseX(b)), e = Math.round(a.mouseY(b)), h = a.attr("draggable-x"), i = a.attr("draggable-y"), h && i ? (f = c.horizontal ? d - parseInt(h, 10) : 0, g = c.vertical ? e - parseInt(i, 10) : 0, gj.draggable.methods.move(a[0], c, f, g, d, e)) : gj.draggable.events.start(a, d, e), a.attr("draggable-x", d), a.attr("draggable-y", e)) } }, move: function(a, b, c, d, e, f) { var g, h, i, j = gj.core.position(a), 89 k = j.top + d, 90 l = j.left + c; 91 b.containment && (g = gj.core.position(b.containment), h = g.top + gj.core.height(b.containment) - gj.core.height(a), i = g.left + gj.core.width(b.containment) - gj.core.width(a), k > g.top && k < h ? (g.top >= f || g.bottom <= f) && (k = j.top) : k = k <= g.top ? g.top + 1 : h - 1, l > g.left && l < i ? (g.left >= e || g.right <= e) && (l = j.left) : l = l <= g.left ? g.left + 1 : i - 1), !1 !== gj.draggable.events.drag($(a), l, k, e, f) && (a.style.top = k + "px", a.style.left = l + "px") }, destroy: function(a) { return "true" === a.attr("data-draggable") && (gj.documentManager.unsubscribeForEvent("mouseup", a.data("guid")), a.removeData(), a.removeAttr("data-guid").removeAttr("data-type").removeAttr("data-draggable"), a.removeAttr("draggable-x").removeAttr("draggable-y").removeAttr("draggable-dragging"), a[0].style.top = "", a[0].style.left = "", a[0].style.position = "", a.off("drag").off("start").off("stop"), gj.draggable.methods.getHandleElement(a).off("mousedown")), a } }, gj.draggable.events = { drag: function(a, b, c, d, e) { return a.triggerHandler("drag", [{ left: b, top: c }, { x: d, y: e }]) }, start: function(a, b, c) { a.triggerHandler("start", [{ x: b, y: c }]) }, stop: function(a, b) { a.triggerHandler("stop", [b]) } }, gj.draggable.widget = function(a, b) { var c = this, 92 d = gj.draggable.methods; return a.destroy || (c.destroy = function() { return d.destroy(this) }), $.extend(a, c), "true" !== a.attr("data-draggable") && d.init.call(a, b), a }, gj.draggable.widget.prototype = new gj.widget, gj.draggable.widget.constructor = gj.draggable.widget, 93 function(a) { a.fn.draggable = function(a) { var b; if (this && this.length) { if ("object" != typeof a && a) { if (b = new gj.draggable.widget(this, null), b[a]) return b[a].apply(this, Array.prototype.slice.call(arguments, 1)); throw "Method " + a + " does not exist." } return new gj.draggable.widget(this, a) } } }(jQuery), gj.droppable = { plugins: {} }, gj.droppable.config = { hoverClass: void 0 }, gj.droppable.methods = { init: function(a) { var b = this; return gj.widget.prototype.init.call(this, a, "droppable"), b.attr("data-droppable", "true"), gj.documentManager.subscribeForEvent("mousedown", b.data("guid"), gj.droppable.methods.createMouseDownHandler(b)), gj.documentManager.subscribeForEvent("mousemove", b.data("guid"), gj.droppable.methods.createMouseMoveHandler(b)), gj.documentManager.subscribeForEvent("mouseup", b.data("guid"), gj.droppable.methods.createMouseUpHandler(b)), b }, createMouseDownHandler: function(a) { return function(b) { a.isDragging = !0 } }, createMouseMoveHandler: function(a) { return function(b) { if (a.isDragging) { var c = a.data("hoverClass"), 94 d = { x: a.mouseX(b), y: a.mouseY(b) }, 95 e = gj.droppable.methods.isOver(a, d); 96 e != a.isOver && (e ? (c && a.addClass(c), gj.droppable.events.over(a, d)) : (c && a.removeClass(c), gj.droppable.events.out(a))), a.isOver = e } } }, createMouseUpHandler: function(a) { return function(b) { var c = { left: a.mouseX(b), top: a.mouseY(b) }; 97 a.isDragging = !1, gj.droppable.methods.isOver(a, c) && gj.droppable.events.drop(a) } }, isOver: function(a, b) { var c = a.offset().top, 98 d = a.offset().left; return b.x > d && b.x < d + a.outerWidth(!0) && b.y > c && b.y < c + a.outerHeight(!0) }, destroy: function(a) { return "true" === a.attr("data-droppable") && (gj.documentManager.unsubscribeForEvent("mousedown", a.data("guid")), gj.documentManager.unsubscribeForEvent("mousemove", a.data("guid")), gj.documentManager.unsubscribeForEvent("mouseup", a.data("guid")), a.removeData(), a.removeAttr("data-guid"), a.removeAttr("data-droppable"), a.off("drop").off("over").off("out")), a } }, gj.droppable.events = { drop: function(a, b, c) { a.trigger("drop", [{ top: c, left: b }]) }, over: function(a, b) { a.trigger("over", [b]) }, out: function(a) { a.trigger("out") } }, gj.droppable.widget = function(a, b) { var c = this, 99 d = gj.droppable.methods; return c.isOver = !1, c.isDragging = !1, c.destroy = function() { return d.destroy(this) }, c.isOver = function(a) { return d.isOver(this, a) }, $.extend(a, c), "true" !== a.attr("data-droppable") && d.init.call(a, b), a }, gj.droppable.widget.prototype = new gj.widget, gj.droppable.widget.constructor = gj.droppable.widget, 100 function(a) { a.fn.droppable = function(a) { var b; if (this && this.length) { if ("object" != typeof a && a) { if (b = new gj.droppable.widget(this, null), b[a]) return b[a].apply(this, Array.prototype.slice.call(arguments, 1)); throw "Method " + a + " does not exist." } return new gj.droppable.widget(this, a) } } }(jQuery), gj.grid = { plugins: {}, messages: {} }, gj.grid.config = { base: { dataSource: void 0, columns: [], autoGenerateColumns: !1, defaultColumnSettings: { hidden: !1, width: void 0, sortable: !1, type: "text", title: void 0, field: void 0, align: void 0, cssClass: void 0, headerCssClass: void 0, tooltip: void 0, icon: void 0, events: void 0, format: "mm/dd/yyyy", decimalDigits: void 0, tmpl: void 0, stopPropagation: !1, renderer: void 0, filter: void 0 }, mapping: { dataField: "records", totalRecordsField: "total" }, params: {}, paramNames: { sortBy: "sortBy", direction: "direction" }, uiLibrary: "materialdesign", iconsLibrary: "materialicons", selectionType: "single", selectionMethod: "basic", autoLoad: !0, notFoundText: void 0, width: void 0, minWidth: void 0, headerRowHeight: "fixed", bodyRowHeight: "autogrow", fontSize: void 0, primaryKey: void 0, locale: "en-us", defaultIconColumnWidth: 70, defaultCheckBoxColumnWidth: 70, style: { wrapper: "gj-grid-wrapper", table: "gj-grid gj-grid-md", loadingCover: "gj-grid-loading-cover", loadingText: "gj-grid-loading-text", header: { cell: void 0, sortable: "gj-cursor-pointer gj-unselectable" }, content: { rowSelected: "gj-grid-md-select" } }, icons: { asc: "â²", desc: "â¼" } }, bootstrap: { style: { wrapper: "gj-grid-wrapper", table: "gj-grid gj-grid-bootstrap gj-grid-bootstrap-3 table table-bordered table-hover", content: { rowSelected: "active" } }, iconsLibrary: "glyphicons", defaultIconColumnWidth: 34, defaultCheckBoxColumnWidth: 36 }, bootstrap4: { style: { wrapper: "gj-grid-wrapper", table: "gj-grid gj-grid-bootstrap gj-grid-bootstrap-4 table table-bordered table-hover", content: { rowSelected: "active" } }, defaultIconColumnWidth: 42, defaultCheckBoxColumnWidth: 44 }, materialicons: { icons: { asc: '<i class="gj-icon arrow-upward" />', desc: '<i class="gj-icon arrow-downward" />' } }, fontawesome: { icons: { asc: '<i class="fa fa-sort-amount-asc" aria-hidden="true"></i>', desc: '<i class="fa fa-sort-amount-desc" aria-hidden="true"></i>' } }, glyphicons: { icons: { asc: '<span class="glyphicon glyphicon-sort-by-alphabet" />', desc: '<span class="glyphicon glyphicon-sort-by-alphabet-alt" />' } } }, gj.grid.events = { beforeEmptyRowInsert: function(a, b) { return a.triggerHandler("beforeEmptyRowInsert", [b]) }, dataBinding: function(a, b) { return a.triggerHandler("dataBinding", [b]) }, dataBound: function(a, b, c) { return a.triggerHandler("dataBound", [b, c]) }, rowDataBound: function(a, b, c, d) { return a.triggerHandler("rowDataBound", [b, c, d]) }, cellDataBound: function(a, b, c, d, e) { return a.triggerHandler("cellDataBound", [b, c, d, e]) }, rowSelect: function(a, b, c, d) { return a.triggerHandler("rowSelect", [b, c, d]) }, rowUnselect: function(a, b, c, d) { return a.triggerHandler("rowUnselect", [b, c, d]) }, rowRemoving: function(a, b, c, d) { return a.triggerHandler("rowRemoving", [b, c, d]) }, destroying: function(a) { return a.triggerHandler("destroying") }, columnHide: function(a, b) { return a.triggerHandler("columnHide", [b]) }, columnShow: function(a, b) { return a.triggerHandler("columnShow", [b]) }, initialized: function(a) { return a.triggerHandler("initialized") }, dataFiltered: function(a, b) { return a.triggerHandler("dataFiltered", [b]) } }, gj.grid.methods = { init: function(a) { return gj.widget.prototype.init.call(this, a, "grid"), gj.grid.methods.initialize(this), this.data("autoLoad") && this.reload(), this }, getConfig: function(a, b) { var c = gj.widget.prototype.getConfig.call(this, a, b); return gj.grid.methods.setDefaultColumnConfig(c.columns, c.defaultColumnSettings), c }, setDefaultColumnConfig: function(a, b) { var c, d; if (a && a.length) 101 for (d = 0; d < a.length; d++) c = $.extend(!0, {}, b), $.extend(!0, c, a[d]), a[d] = c }, getHTMLConfig: function() { var a = gj.widget.prototype.getHTMLConfig.call(this); return a.columns = [], this.find("thead > tr > th").each(function() { var b = $(this), 102 c = b.text(), 103 d = gj.widget.prototype.getHTMLConfig.call(b); 104 d.title = c, d.field || (d.field = c), d.events && (d.events = gj.grid.methods.eventsParser(d.events)), a.columns.push(d) }), a }, eventsParser: function(events) { var result = {}, 105 list, i, key, func, position; for (list = events.split(","), i = 0; i < list.length; i++)(position = list[i].indexOf(":")) > 0 && (key = $.trim(list[i].substr(0, position)), func = $.trim(list[i].substr(position + 1, list[i].length)), result[key] = eval("window." + func)); return result }, initialize: function(a) { var b = a.data(), 106 c = a.parent('div[data-role="wrapper"]'); 107 gj.grid.methods.localization(b), 0 === c.length ? (c = $('<div data-role="wrapper" />').addClass(b.style.wrapper), a.wrap(c)) : c.addClass(b.style.wrapper), b.width && a.parent().css("width", b.width), b.minWidth && a.css("min-width", b.minWidth), b.fontSize && a.css("font-size", b.fontSize), "autogrow" === b.headerRowHeight && a.addClass("autogrow-header-row"), "fixed" === b.bodyRowHeight && a.addClass("fixed-body-rows"), a.addClass(b.style.table), "checkbox" === b.selectionMethod && b.columns.splice(gj.grid.methods.getColumnPositionNotInRole(a), 0, { title: "", width: b.defaultCheckBoxColumnWidth, align: "center", type: "checkbox", role: "selectRow", events: { click: function(b) { gj.grid.methods.setSelected(a, b.data.id, $(this).closest("tr")) } }, headerCssClass: "gj-grid-select-all", stopPropagation: !0 }), 0 === a.children("tbody").length && a.append($("<tbody/>")), gj.grid.methods.renderHeader(a), gj.grid.methods.appendEmptyRow(a, " "), gj.grid.events.initialized(a) }, localization: function(a) { a.notFoundText || (a.notFoundText = gj.grid.messages[a.locale].NoRecordsFound) }, renderHeader: function(a) { var b, c, d, e, f, g, h, i, j; for (b = a.data(), c = b.columns, d = b.style.header, e = a.children("thead"), 0 === e.length && (e = $("<thead />"), a.prepend(e)), f = $('<tr data-role="caption" />'), i = 0; i < c.length; i += 1) g = $('<th data-field="' + (c[i].field || "") + '" />'), c[i].width ? g.attr("width", c[i].width) : "checkbox" === c[i].type && g.attr("width", b.defaultIconColumnWidth), g.addClass(d.cell), c[i].headerCssClass && g.addClass(c[i].headerCssClass), g.css("text-align", c[i].align || "left"), "checkbox" === b.selectionMethod && "multiple" === b.selectionType && "checkbox" === c[i].type && "selectRow" === c[i].role ? (j = g.find('input[data-role="selectAll"]'), 0 === j.length && (j = $('<input type="checkbox" data-role="selectAll" />'), g.append(j), j.checkbox({ uiLibrary: b.uiLibrary })), j.off("click").on("click", function() { this.checked ? a.selectAll() : a.unSelectAll() })) : (h = $('<div data-role="title"/>').html(void 0 === c[i].title ? c[i].field : c[i].title), g.append(h), c[i].sortable && (h.addClass(d.sortable), h.on("click", gj.grid.methods.createSortHandler(a, c[i])))), c[i].hidden && g.hide(), f.append(g); 108 e.empty().append(f) }, createSortHandler: function(a, b) { return function() { var c, d = {}; 109 a.count() > 0 && (c = a.data(), d[c.paramNames.sortBy] = b.field, b.direction = "asc" === b.direction ? "desc" : "asc", d[c.paramNames.direction] = b.direction, a.reload(d)) } }, updateHeader: function(a) { var b, c, d = a.data(), 110 e = d.params[d.paramNames.sortBy], 111 f = d.params[d.paramNames.direction]; 112 a.find('thead tr th [data-role="sorticon"]').remove(), e && (position = gj.grid.methods.getColumnPosition(a.data("columns"), e), position > -1 && (c = a.find("thead tr th:eq(" + position + ') div[data-role="title"]'), b = $('<div data-role="sorticon" class="gj-unselectable" />').append("desc" === f ? d.icons.desc : d.icons.asc), c.after(b))) }, useHtmlDataSource: function(a, b) { var c, d, e, f, g = [], 113 h = a.find('tbody tr[data-role != "empty"]'); for (c = 0; c < h.length; c++) { for (e = $(h[c]).find("td"), f = {}, d = 0; d < e.length; d++) f[b.columns[d].field] = $(e[d]).html(); 114 g.push(f) } 115 b.dataSource = g }, startLoading: function(a) { var b, c, d, e, f, g, h; 116 gj.grid.methods.stopLoading(a), h = a.data(), 0 !== a.outerHeight() && (b = a.children("tbody"), e = b.outerWidth(!1), f = b.outerHeight(!1), g = Math.abs(a.parent().offset().top - b.offset().top), c = $('<div data-role="loading-cover" />').addClass(h.style.loadingCover).css({ width: e, height: f, top: g }), d = $('<div data-role="loading-text">' + gj.grid.messages[h.locale].Loading + "</div>").addClass(h.style.loadingText), d.insertAfter(a), c.insertAfter(a), d.css({ top: g + f / 2 - d.outerHeight(!1) / 2, left: e / 2 - d.outerWidth(!1) / 2 })) }, stopLoading: function(a) { a.parent().find('div[data-role="loading-cover"]').remove(), a.parent().find('div[data-role="loading-text"]').remove() }, appendEmptyRow: function(a, b) { var c, d, e, f; 117 c = a.data(), d = $('<tr data-role="empty"/>'), e = $("<td/>").css({ width: "100%", "text-align": "center" }), e.attr("colspan", gj.grid.methods.countVisibleColumns(a)), f = $("<div />").html(b || c.notFoundText), e.append(f), d.append(e), gj.grid.events.beforeEmptyRowInsert(a, d), a.append(d) }, autoGenerateColumns: function(a, b) { var c, d, e, f, g = a.data(); if (g.columns = [], b.length > 0) { for (c = Object.getOwnPropertyNames(b[0]), f = 0; f < c.length; f++) d = b[0][c[f]], e = "text", d && ("number" == typeof d ? e = "number" : d.indexOf("/Date(") > -1 && (e = "date")), g.columns.push({ field: c[f], type: e }); 118 gj.grid.methods.setDefaultColumnConfig(g.columns, g.defaultColumnSettings) } 119 gj.grid.methods.renderHeader(a) }, loadData: function(a) { var b, c, d, e, f, g, h, i; for (b = a.data(), c = a.getAll(), gj.grid.events.dataBinding(a, c), e = c.length, gj.grid.methods.stopLoading(a), b.autoGenerateColumns && gj.grid.methods.autoGenerateColumns(a, c), g = a.children("tbody"), "checkbox" === b.selectionMethod && "multiple" === b.selectionType && a.find('thead input[data-role="selectAll"]').prop("checked", !1), g.children("tr").not('[data-role="row"]').remove(), 0 === e && (g.empty(), gj.grid.methods.appendEmptyRow(a)), h = g.children("tr"), f = h.length, d = 0; d < f; d++) { if (!(d < e)) { g.find('tr[data-role="row"]:gt(' + (d - 1) + ")").remove(); break } 120 i = h.eq(d), gj.grid.methods.renderRow(a, i, c[d], d) } for (d = f; d < e; d++) gj.grid.methods.renderRow(a, null, c[d], d); 121 gj.grid.events.dataBound(a, c, b.totalRecords) }, getId: function(a, b, c) { return b && a[b] ? a[b] : c }, renderRow: function(a, b, c, d) { var e, f, g, h, i; for (h = a.data(), b && 0 !== b.length ? (i = "update", b.removeClass(h.style.content.rowSelected).removeAttr("data-selected").off("click")) : (i = "create", b = $('<tr data-role="row"/>'), a.children("tbody").append(b)), e = gj.grid.methods.getId(c, h.primaryKey, d + 1), b.attr("data-position", d + 1), "checkbox" !== h.selectionMethod && b.on("click", gj.grid.methods.createRowClickHandler(a, e)), g = 0; g < h.columns.length; g++) "update" === i ? (f = b.find("td:eq(" + g + ")"), gj.grid.methods.renderCell(a, f, h.columns[g], c, e)) : (f = gj.grid.methods.renderCell(a, null, h.columns[g], c, e), b.append(f)); 122 gj.grid.events.rowDataBound(a, b, e, c) }, renderCell: function(a, b, c, d, e, f) { var g, h; if (b && 0 !== b.length ? (g = b.find('div[data-role="display"]'), f = "update") : (b = $("<td/>"), g = $('<div data-role="display" />'), c.align && b.css("text-align", c.align), c.cssClass && b.addClass(c.cssClass), b.append(g), f = "create"), gj.grid.methods.renderDisplayElement(a, g, c, d, e, f), "update" === f && (b.off(), g.off()), c.events) 123 for (h in c.events) c.events.hasOwnProperty(h) && b.on(h, { id: e, field: c.field, record: d }, gj.grid.methods.createCellEventHandler(c, c.events[h])); return c.hidden && b.hide(), gj.grid.events.cellDataBound(a, g, e, c, d), b }, createCellEventHandler: function(a, b) { return function(c) { a.stopPropagation && c.stopPropagation(), b.call(this, c) } }, renderDisplayElement: function(a, b, c, d, e, f) { var g, h; "checkbox" === c.type && gj.checkbox ? "create" === f ? (h = $('<input type="checkbox" />').val(e).prop("checked", !!d[c.field]), c.role && h.attr("data-role", c.role), b.append(h), h.checkbox({ uiLibrary: a.data("uiLibrary") }), "selectRow" === c.role ? h.on("click", function() { return !1 }) : h.prop("disabled", !0)) : b.find('input[type="checkbox"]').val(e).prop("checked", !!d[c.field]) : "icon" === c.type ? "create" === f && (b.append($("<span/>").addClass(c.icon).css({ cursor: "pointer" })), "bootstrap" === a.data().uiLibrary && b.children("span").addClass("glyphicon"), c.stopPropagation = !0) : c.tmpl ? (g = c.tmpl, c.tmpl.replace(/\{(.+?)\}/g, function(a, b) { g = g.replace(a, gj.grid.methods.formatText(d[b], c)) }), b.html(g)) : c.renderer && "function" == typeof c.renderer ? (g = c.renderer(d[c.field], d, b.parent(), b, e, a)) && b.html(g) : (d[c.field] = gj.grid.methods.formatText(d[c.field], c), !c.tooltip && d[c.field] && b.attr("title", d[c.field]), b.html(d[c.field])), c.tooltip && "create" === f && b.attr("title", c.tooltip) }, formatText: function(a, b) { return a = a && ["date", "time", "datetime"].indexOf(b.type) > -1 ? gj.core.formatDate(gj.core.parseDate(a, b.format), b.format) : void 0 === a || null === a ? "" : a.toString(), b.decimalDigits && a && (a = parseFloat(a).toFixed(b.decimalDigits)), a }, setRecordsData: function(a, b) { var c = [], 124 d = 0, 125 e = a.data(); return $.isArray(b) ? (c = b, d = b.length) : e && e.mapping && $.isArray(b[e.mapping.dataField]) && (c = b[e.mapping.dataField], (d = b[e.mapping.totalRecordsField]) && !isNaN(d) || (d = 0)), a.data("records", c), a.data("totalRecords", d), c }, createRowClickHandler: function(a, b) { return function() { gj.grid.methods.setSelected(a, b, $(this)) } }, selectRow: function(a, b, c, d) { var e; return c.addClass(b.style.content.rowSelected), c.attr("data-selected", "true"), "checkbox" === b.selectionMethod && (e = c.find('input[type="checkbox"][data-role="selectRow"]'), e.length && !e.prop("checked") && e.prop("checked", !0), "multiple" === b.selectionType && a.getSelections().length === a.count(!1) && a.find('thead input[data-role="selectAll"]').prop("checked", !0)), gj.grid.events.rowSelect(a, c, d, a.getById(d)) }, unselectRow: function(a, b, c, d) { var e; if ("true" === c.attr("data-selected")) return c.removeClass(b.style.content.rowSelected), "checkbox" === b.selectionMethod && (e = c.find('td input[type="checkbox"][data-role="selectRow"]'), e.length && e.prop("checked") && e.prop("checked", !1), "multiple" === b.selectionType && a.find('thead input[data-role="selectAll"]').prop("checked", !1)), c.removeAttr("data-selected"), gj.grid.events.rowUnselect(a, c, d, a.getById(d)) }, setSelected: function(a, b, c) { var d = a.data(); return c && c.length || (c = gj.grid.methods.getRowById(a, b)), c && ("true" === c.attr("data-selected") ? gj.grid.methods.unselectRow(a, d, c, b) : ("single" === d.selectionType && c.siblings('[data-selected="true"]').each(function() { var b = $(this), 126 c = gj.grid.methods.getId(b, d.primaryKey, b.data("position")); 127 gj.grid.methods.unselectRow(a, d, b, c) }), gj.grid.methods.selectRow(a, d, c, b))), a }, selectAll: function(a) { var b = a.data(); return a.find('tbody tr[data-role="row"]').each(function() { var c = $(this), 128 d = c.data("position"), 129 e = a.get(d), 130 f = gj.grid.methods.getId(e, b.primaryKey, d); 131 gj.grid.methods.selectRow(a, b, c, f) }), a.find('thead input[data-role="selectAll"]').prop("checked", !0), a }, unSelectAll: function(a) { var b = a.data(); return a.find("tbody tr").each(function() { var c = $(this), 132 d = c.data("position"), 133 e = a.get(d), 134 f = gj.grid.methods.getId(e, b.primaryKey, d); 135 gj.grid.methods.unselectRow(a, b, c, f), c.find('input[type="checkbox"][data-role="selectRow"]').prop("checked", !1) }), a.find('thead input[data-role="selectAll"]').prop("checked", !1), a }, getSelected: function(a) { var b, c, d, e = null; return b = a.find('tbody>tr[data-selected="true"]'), b.length > 0 && (d = $(b[0]).data("position"), c = a.get(d), e = gj.grid.methods.getId(c, a.data().primaryKey, d)), e }, getSelectedRows: function(a) { a.data(); return a.find('tbody>tr[data-selected="true"]') }, getSelections: function(a) { var b, c, d = [], 136 e = a.data(), 137 f = gj.grid.methods.getSelectedRows(a); return 0 < f.length && f.each(function() { b = $(this).data("position"), c = a.get(b), d.push(gj.grid.methods.getId(c, e.primaryKey, b)) }), d }, getById: function(a, b) { var c, d = null, 138 e = a.data("primaryKey"), 139 f = a.data("records"); if (e) { for (c = 0; c < f.length; c++) 140 if (f[c][e] == b) { d = f[c]; break } } else d = a.get(b); return d }, getRecVPosById: function(a, b) { var c, d = b, 141 e = a.data(); if (e.primaryKey) 142 for (c = 0; c < e.dataSource.length; c++) 143 if (e.dataSource[c][e.primaryKey] == b) { d = c; break } 144 return d }, getRowById: function(a, b) { var c, d, e = a.getAll(!1), 145 f = a.data("primaryKey"), 146 g = void 0; if (f) { for (d = 0; d < e.length; d++) 147 if (e[d][f] == b) { c = d + 1; break } } else c = b; return c && (g = a.children("tbody").children('tr[data-position="' + c + '"]')), g }, getByPosition: function(a, b) { return a.getAll(!1)[b - 1] }, getColumnPosition: function(a, b) { var c, d = -1; for (c = 0; c < a.length; c++) 148 if (a[c].field === b) { d = c; break } 149 return d }, getColumnInfo: function(a, b) { var c, d = {}, 150 e = a.data(); for (c = 0; c < e.columns.length; c += 1) 151 if (e.columns[c].field === b) { d = e.columns[c]; break } 152 return d }, getCell: function(a, b, c) { var d, e, f = null; return d = gj.grid.methods.getColumnPosition(a.data("columns"), c), d > -1 && (e = gj.grid.methods.getRowById(a, b), f = e.find("td:eq(" + d + ') div[data-role="display"]')), f }, setCellContent: function(a, b, c, d) { var e, f = gj.grid.methods.getCell(a, b, c); 153 f && (f.empty(), "object" == typeof d ? f.append(d) : (e = gj.grid.methods.getColumnInfo(a, c), gj.grid.methods.renderDisplayElement(a, f, e, a.getById(b), b, "update"))) }, clone: function(a) { var b = []; return $.each(a, function() { b.push(this.clone()) }), b }, getAll: function(a) { return a.data("records") }, countVisibleColumns: function(a) { var b, c, d; for (b = a.data().columns, c = 0, d = 0; d < b.length; d++) !0 !== b[d].hidden && c++; return c }, clear: function(a, b) { var c = a.data(); return a.xhr && a.xhr.abort(), a.children("tbody").empty(), c.records = [], gj.grid.methods.stopLoading(a), gj.grid.methods.appendEmptyRow(a, b ? c.notFoundText : " "), gj.grid.events.dataBound(a, [], 0), a }, render: function(a, b) { return b && (gj.grid.methods.setRecordsData(a, b), gj.grid.methods.updateHeader(a), gj.grid.methods.loadData(a)), a }, filter: function(a) { var b, c, d = a.data(), 154 e = d.dataSource.slice(); 155 d.params[d.paramNames.sortBy] && (c = gj.grid.methods.getColumnInfo(a, d.params[d.paramNames.sortBy]), e.sort(c.sortable.sorter ? c.sortable.sorter(c.direction, c) : gj.grid.methods.createDefaultSorter(c.direction, c.field))); for (b in d.params) d.params[b] && !d.paramNames[b] && (c = gj.grid.methods.getColumnInfo(a, b), e = $.grep(e, function(a) { var e = a[b] || "", 156 f = d.params[b] || ""; return c && "function" == typeof c.filter ? c.filter(e, f) : e.toUpperCase().indexOf(f.toUpperCase()) > -1 })); return gj.grid.events.dataFiltered(a, e), e }, createDefaultSorter: function(a, b) { return function(c, d) { var e = (c[b] || "").toString(), 157 f = (d[b] || "").toString(); return "asc" === a ? e.localeCompare(f) : f.localeCompare(e) } }, destroy: function(a, b, c) { return a.data() && (gj.grid.events.destroying(a), gj.grid.methods.stopLoading(a), a.xhr && a.xhr.abort(), a.off(), !1 === c && a.parent('div[data-role="wrapper"]').length > 0 && a.unwrap(), a.removeData(), !1 === b ? a.remove() : a.removeClass().empty(), a.removeAttr("data-type")), a }, showColumn: function(a, b) { var c, d = a.data(), 158 e = gj.grid.methods.getColumnPosition(d.columns, b); return e > -1 && (a.find("thead>tr").each(function() { $(this).children("th").eq(e).show() }), $.each(a.find("tbody>tr"), function() { $(this).children("td").eq(e).show() }), d.columns[e].hidden = !1, c = a.find('tbody > tr[data-role="empty"] > td'), c && c.length && c.attr("colspan", gj.grid.methods.countVisibleColumns(a)), gj.grid.events.columnShow(a, d.columns[e])), a }, hideColumn: function(a, b) { var c, d = a.data(), 159 e = gj.grid.methods.getColumnPosition(d.columns, b); return e > -1 && (a.find("thead>tr").each(function() { $(this).children("th").eq(e).hide() }), $.each(a.find("tbody>tr"), function() { $(this).children("td").eq(e).hide() }), d.columns[e].hidden = !0, c = a.find('tbody > tr[data-role="empty"] > td'), c && c.length && c.attr("colspan", gj.grid.methods.countVisibleColumns(a)), gj.grid.events.columnHide(a, d.columns[e])), a }, isLastRecordVisible: function() { return !0 }, addRow: function(a, b) { var c = a.data(); return c.totalRecords = a.data("totalRecords") + 1, gj.grid.events.dataBinding(a, [b]), c.records.push(b), $.isArray(c.dataSource) && c.dataSource.push(b), 1 === c.totalRecords && a.children("tbody").empty(), gj.grid.methods.isLastRecordVisible(a) && gj.grid.methods.renderRow(a, null, b, a.count() - 1), gj.grid.events.dataBound(a, [b], c.totalRecords), a }, updateRow: function(a, b, c) { var d, e = gj.grid.methods.getRowById(a, b), 160 f = a.data(); return f.records[e.data("position") - 1] = c, $.isArray(f.dataSource) && (d = gj.grid.methods.getRecVPosById(a, b), f.dataSource[d] = c), gj.grid.methods.renderRow(a, e, c, e.index()), a }, removeRow: function(a, b) { var c, d = a.data(), 161 e = gj.grid.methods.getRowById(a, b); return gj.grid.events.rowRemoving(a, e, b, a.getById(b)), $.isArray(d.dataSource) && (c = gj.grid.methods.getRecVPosById(a, b), d.dataSource.splice(c, 1)), a.reload(), a }, count: function(a, b) { return b ? a.data().totalRecords : a.getAll().length }, getColumnPositionByRole: function(a, b) { var c, d, e = a.data("columns"); for (c = 0; c < e.length; c++) 162 if (e[c].role === b) { d = c; break } 163 return d }, getColumnPositionNotInRole: function(a) { var b, c = 0, 164 d = a.data("columns"); for (b = 0; b < d.length; b++) 165 if (!d[b].role) { c = b; break } 166 return c } }, gj.grid.widget = function(a, b) { var c = this, 167 d = gj.grid.methods; return c.reload = function(a) { return d.startLoading(this), gj.widget.prototype.reload.call(this, a) }, c.clear = function(a) { return d.clear(this, a) }, c.count = function(a) { return d.count(this, a) }, c.render = function(b) { return d.render(a, b) }, c.destroy = function(a, b) { return d.destroy(this, a, b) }, c.setSelected = function(a) { return d.setSelected(this, a) }, c.getSelected = function() { return d.getSelected(this) }, c.getSelections = function() { return d.getSelections(this) }, c.selectAll = function() { return d.selectAll(this) }, c.unSelectAll = function() { return d.unSelectAll(this) }, c.getById = function(a) { return d.getById(this, a) }, c.get = function(a) { return d.getByPosition(this, a) }, c.getAll = function(a) { return d.getAll(this, a) }, c.showColumn = function(a) { return d.showColumn(this, a) }, c.hideColumn = function(a) { return d.hideColumn(this, a) }, c.addRow = function(a) { return d.addRow(this, a) }, c.updateRow = function(a, b) { return d.updateRow(this, a, b) }, c.setCellContent = function(a, b, c) { d.setCellContent(this, a, b, c) }, c.removeRow = function(a) { return d.removeRow(this, a) }, $.extend(a, c), "grid" !== a.attr("data-type") && d.init.call(a, b), a }, gj.grid.widget.prototype = new gj.widget, gj.grid.widget.constructor = gj.grid.widget, gj.grid.widget.prototype.getConfig = gj.grid.methods.getConfig, gj.grid.widget.prototype.getHTMLConfig = gj.grid.methods.getHTMLConfig, 168 function(a) { a.fn.grid = function(a) { var b; if (this && this.length) { if ("object" != typeof a && a) { if (b = new gj.grid.widget(this, null), b[a]) return b[a].apply(this, Array.prototype.slice.call(arguments, 1)); throw "Method " + a + " does not exist." } return new gj.grid.widget(this, a) } } }(jQuery), gj.grid.plugins.fixedHeader = { config: { base: { fixedHeader: !1, height: 300 } }, private: { init: function(a) { var b = a.data(), 169 c = a.children("tbody"), 170 d = a.children("thead"), 171 e = b.height - d.outerHeight() - (a.children("tfoot").outerHeight() || 0); 172 a.addClass("gj-grid-scrollable"), c.css("width", d.outerWidth()), c.height(e) }, refresh: function(a) { var b, c, d = (a.data(), a.children("tbody")), 173 e = a.children("thead"), 174 f = a.find('tbody tr[data-role="row"] td'), 175 g = a.find('thead tr[data-role="caption"] th'); for (a.children("tbody").height() < gj.grid.plugins.fixedHeader.private.getRowsHeight(a) ? d.css("width", e.outerWidth() + gj.grid.plugins.fixedHeader.private.getScrollBarWidth() + (navigator.userAgent.toLowerCase().indexOf("firefox") > -1 ? 1 : 0)) : d.css("width", e.outerWidth()), b = 0; b < g.length; b++) c = $(g[b]).outerWidth(), 0 === b && gj.core.isIE() && (c -= 1), $(f[b]).attr("width", c) }, getRowsHeight: function(a) { var b = 0; return a.find("tbody tr").each(function() { b += $(this).height() }), b }, getScrollBarWidth: function() { var a = document.createElement("p"); 176 a.style.width = "100%", a.style.height = "200px"; var b = document.createElement("div"); 177 b.style.position = "absolute", b.style.top = "0px", b.style.left = "0px", b.style.visibility = "hidden", b.style.width = "200px", b.style.height = "150px", b.style.overflow = "hidden", b.appendChild(a), document.body.appendChild(b); var c = a.offsetWidth; 178 b.style.overflow = "scroll"; var d = a.offsetWidth; return c == d && (d = b.clientWidth), document.body.removeChild(b), c - d } }, public: {}, events: {}, configure: function(a, b, c) { $.extend(!0, a, gj.grid.plugins.fixedHeader.public); 179 a.data(); 180 c.fixedHeader && (a.on("initialized", function() { gj.grid.plugins.fixedHeader.private.init(a) }), a.on("dataBound", function() { gj.grid.plugins.fixedHeader.private.refresh(a) }), a.on("resize", function() { gj.grid.plugins.fixedHeader.private.refresh(a) })) } }, gj.grid.plugins.expandCollapseRows = { config: { base: { detailTemplate: void 0, keepExpandedRows: !0, expandedRows: [], icons: { expandRow: '<i class="gj-icon chevron-right" />', collapseRow: '<i class="gj-icon chevron-down" />' } }, fontawesome: { icons: { expandRow: '<i class="fa fa-angle-right" aria-hidden="true"></i>', collapseRow: '<i class="fa fa-angle-down" aria-hidden="true"></i>' } }, glyphicons: { icons: { expandRow: '<span class="glyphicon glyphicon-chevron-right" />', collapseRow: '<span class="glyphicon glyphicon-chevron-down" />' } } }, private: { expandDetail: function(a, b, c) { var d = b.closest("tr"), 181 e = $('<tr data-role="details" />'), 182 f = $('<td colspan="' + gj.grid.methods.countVisibleColumns(a) + '" />'), 183 g = $('<div data-role="display" />'), 184 h = a.data(), 185 i = d.data("position"), 186 j = a.get(i), 187 k = gj.grid.plugins.expandCollapseRows; 188 void 0 === typeof c && (c = gj.grid.methods.getId(j, h.primaryKey, j)), e.append(f.append(g.append(d.data("details")))), e.insertAfter(d), b.children('div[data-role="display"]').empty().append(h.icons.collapseRow), a.updateDetails(d), k.private.keepSelection(a, c), k.events.detailExpand(a, e.find("td>div"), c) }, collapseDetail: function(a, b, c) { var d = b.closest("tr"), 189 e = d.next('tr[data-role="details"]'), 190 f = a.data(), 191 g = gj.grid.plugins.expandCollapseRows; 192 void 0 === typeof c && (c = gj.grid.methods.getId(record, f.primaryKey, record)), e.remove(), b.children('div[data-role="display"]').empty().append(f.icons.expandRow), g.private.removeSelection(a, c), g.events.detailCollapse(a, e.find("td>div"), c) }, keepSelection: function(a, b) { var c = a.data(); 193 c.keepExpandedRows && ($.isArray(c.expandedRows) ? -1 == c.expandedRows.indexOf(b) && c.expandedRows.push(b) : c.expandedRows = [b]) }, removeSelection: function(a, b) { var c = a.data(); 194 c.keepExpandedRows && $.isArray(c.expandedRows) && c.expandedRows.indexOf(b) > -1 && c.expandedRows.splice(c.expandedRows.indexOf(b), 1) }, updateDetailsColSpan: function(a) { var b = a.find('tbody > tr[data-role="details"] > td'); 195 b && b.length && b.attr("colspan", gj.grid.methods.countVisibleColumns(a)) } }, public: { collapseAll: function() { var a, b = this, 196 c = b.data(); return void 0 !== c.detailTemplate && (a = gj.grid.methods.getColumnPositionByRole(b, "expander"), b.find('tbody tr[data-role="row"]').each(function() { gj.grid.plugins.expandCollapseRows.private.collapseDetail(b, $(this).find("td:eq(" + a + ")")) })), void 0 !== c.grouping && b.find('tbody tr[role="group"]').each(function() { gj.grid.plugins.grouping.private.collapseGroup(c, $(this).find("td:eq(0)")) }), b }, expandAll: function() { var a, b = this, 197 c = b.data(); return void 0 !== c.detailTemplate && (a = gj.grid.methods.getColumnPositionByRole(b, "expander"), b.find('tbody tr[data-role="row"]').each(function() { gj.grid.plugins.expandCollapseRows.private.expandDetail(b, $(this).find("td:eq(" + a + ")")) })), void 0 !== c.grouping && b.find('tbody tr[role="group"]').each(function() { gj.grid.plugins.grouping.private.expandGroup(c, $(this).find("td:eq(0)")) }), b }, updateDetails: function(a) { var b = this, 198 c = a.data("details"), 199 d = c.html(), 200 e = b.get(a.data("position")); return e && d && (c.html().replace(/\{(.+?)\}/g, function(a, c) { var f = gj.grid.methods.getColumnInfo(b, c); 201 d = d.replace(a, gj.grid.methods.formatText(e[c], f)) }), c.html(d)), b } }, events: { detailExpand: function(a, b, c) { a.triggerHandler("detailExpand", [b, c]) }, detailCollapse: function(a, b, c) { a.triggerHandler("detailCollapse", [b, c]) } }, configure: function(a) { var b, c = a.data(); 202 $.extend(!0, a, gj.grid.plugins.expandCollapseRows.public), void 0 !== c.detailTemplate && (b = { title: "", width: c.defaultIconColumnWidth, align: "center", stopPropagation: !0, cssClass: "gj-cursor-pointer gj-unselectable", tmpl: c.icons.expandRow, role: "expander", events: { click: function(b) { var c = $(this), 203 d = gj.grid.plugins.expandCollapseRows.private; "details" === c.closest("tr").next().attr("data-role") ? d.collapseDetail(a, c, b.data.id) : d.expandDetail(a, $(this), b.data.id) } } }, c.columns = [b].concat(c.columns), a.on("rowDataBound", function(a, b, d, e) { b.data("details", $(c.detailTemplate)) }), a.on("columnShow", function(b, c) { gj.grid.plugins.expandCollapseRows.private.updateDetailsColSpan(a) }), a.on("columnHide", function(b, c) { gj.grid.plugins.expandCollapseRows.private.updateDetailsColSpan(a) }), a.on("rowRemoving", function(b, c, d, e) { gj.grid.plugins.expandCollapseRows.private.collapseDetail(a, c.children("td").first(), d) }), a.on("dataBinding", function() { a.collapseAll() }), a.on("pageChanging", function() { a.collapseAll() }), a.on("dataBound", function() { var b, c, d, e, f = a.data(); if (f.keepExpandedRows && $.isArray(f.expandedRows)) 204 for (b = 0; b < f.expandedRows.length; b++)(d = gj.grid.methods.getRowById(a, f.expandedRows[b])) && d.length && (e = gj.grid.methods.getColumnPositionByRole(a, "expander"), (c = d.children("td:eq(" + e + ")")) && c.length && gj.grid.plugins.expandCollapseRows.private.expandDetail(a, c)) })) } }, gj.grid.plugins.inlineEditing = { renderers: { editManager: function(a, b, c, d, e, f) { var g = f.data(), 205 h = $(g.inlineEditing.editButton).attr("key", e), 206 i = $(g.inlineEditing.deleteButton).attr("key", e), 207 j = $(g.inlineEditing.updateButton).attr("key", e).hide(), 208 k = $(g.inlineEditing.cancelButton).attr("key", e).hide(); 209 h.on("click", function(a) { f.edit($(this).attr("key")) }), i.on("click", function(a) { f.removeRow($(this).attr("key")) }), j.on("click", function(a) { f.update($(this).attr("key")) }), k.on("click", function(a) { f.cancel($(this).attr("key")) }), d.empty().append(h).append(i).append(j).append(k) } } }, gj.grid.plugins.inlineEditing.config = { base: { defaultColumnSettings: { editor: void 0, editField: void 0, mode: "readEdit" }, inlineEditing: { mode: "click", managementColumn: !0, managementColumnConfig: { width: 300, role: "managementColumn", align: "center", renderer: gj.grid.plugins.inlineEditing.renderers.editManager, cssClass: "gj-grid-management-column" } } }, bootstrap: { inlineEditing: { managementColumnConfig: { width: 200, role: "managementColumn", align: "center", renderer: gj.grid.plugins.inlineEditing.renderers.editManager, cssClass: "gj-grid-management-column" } } }, bootstrap4: { inlineEditing: { managementColumnConfig: { width: 280, role: "managementColumn", align: "center", renderer: gj.grid.plugins.inlineEditing.renderers.editManager, cssClass: "gj-grid-management-column" } } } }, gj.grid.plugins.inlineEditing.private = { localization: function(a) { "bootstrap" === a.uiLibrary ? (a.inlineEditing.editButton = '<button role="edit" class="btn btn-default btn-sm"><span class="glyphicon glyphicon-pencil" aria-hidden="true"></span> ' + gj.grid.messages[a.locale].Edit + "</button>", a.inlineEditing.deleteButton = '<button role="delete" class="btn btn-default btn-sm gj-margin-left-10"><span class="glyphicon glyphicon-remove" aria-hidden="true"></span> ' + gj.grid.messages[a.locale].Delete + "</button>", a.inlineEditing.updateButton = '<button role="update" class="btn btn-default btn-sm"><span class="glyphicon glyphicon-ok" aria-hidden="true"></span> ' + gj.grid.messages[a.locale].Update + "</button>", a.inlineEditing.cancelButton = '<button role="cancel" class="btn btn-default btn-sm gj-margin-left-10"><span class="glyphicon glyphicon-ban-circle" aria-hidden="true"></span> ' + gj.grid.messages[a.locale].Cancel + "</button>") : (a.inlineEditing.editButton = '<button role="edit" class="gj-button-md"><i class="gj-icon pencil" /> ' + gj.grid.messages[a.locale].Edit.toUpperCase() + "</button>", a.inlineEditing.deleteButton = '<button role="delete" class="gj-button-md"><i class="gj-icon delete" /> ' + gj.grid.messages[a.locale].Delete.toUpperCase() + "</button>", a.inlineEditing.updateButton = '<button role="update" class="gj-button-md"><i class="gj-icon check-circle" /> ' + gj.grid.messages[a.locale].Update.toUpperCase() + "</button>", a.inlineEditing.cancelButton = '<button role="cancel" class="gj-button-md"><i class="gj-icon cancel" /> ' + gj.grid.messages[a.locale].Cancel.toUpperCase() + "</button>") }, editMode: function(a, b, c, d) { var e, f, g, h, i, j = a.data(); if ("edit" !== b.attr("data-mode")) 210 if (c.editor) { if (gj.grid.plugins.inlineEditing.private.updateOtherCells(a, c.mode), e = b.find('div[data-role="display"]').hide(), f = b.find('div[data-role="edit"]').show(), 0 === f.length && (f = $('<div data-role="edit" />'), b.append(f)), h = d[c.editField || c.field], g = f.find("input, select, textarea").first(), g.length) switch (c.type) { 211 case "checkbox": 212 g.prop("checked", h); break; 213 case "dropdown": 214 g = g.dropdown("value", h); break; 215 default: 216 g.val(h) } else { if ("function" == typeof c.editor) c.editor(f, h, d), g = f.find("input, select, textarea").first(); 217 else if (i = "object" == typeof c.editor ? c.editor : {}, i.uiLibrary = j.uiLibrary, i.iconsLibrary = j.iconsLibrary, i.fontSize = a.css("font-size"), i.showOnFocus = !1, "checkbox" === c.type && gj.checkbox) g = $('<input type="checkbox" />').prop("checked", h), f.append(g), g.checkbox(i); 218 else if ("date" === c.type && gj.datepicker || "time" === c.type && gj.timepicker || "datetime" === c.type && gj.datetimepicker) { switch (g = $('<input type="text" width="100%"/>'), f.append(g), c.format && (i.format = c.format), c.type) { 219 case "date": 220 g = g.datepicker(i); break; 221 case "time": 222 g = g.timepicker(i); break; 223 case "datetime": 224 g = g.datetimepicker(i) } 225 g.value && g.value(e.html()) } else "dropdown" === c.type && gj.dropdown ? (g = $('<select type="text" width="100%"/>'), f.append(g), i.dataBound = function(a) { var b = $(this).dropdown(); 226 c.editField ? b.value(d[c.editField]) : b.value(d[c.field]) }, g = g.dropdown(i)) : (g = $('<input type="text" value="' + h + '" class="gj-width-full"/>'), "materialdesign" === j.uiLibrary && g.addClass("gj-textbox-md").css("font-size", a.css("font-size")), f.append(g)); "command" !== j.inlineEditing.mode && "editOnly" !== c.mode && (g = f.find("input, select, textarea").first(), g.on("keyup", function(d) { 13 !== d.keyCode && 27 !== d.keyCode || gj.grid.plugins.inlineEditing.private.displayMode(a, b, c) })) } 227 "INPUT" === g.prop("tagName").toUpperCase() && "TEXT" === g.prop("type").toUpperCase() ? gj.core.setCaretAtEnd(g[0]) : g.focus(), b.attr("data-mode", "edit") } else "managementColumn" === c.role && (b.find('[role="edit"]').hide(), b.find('[role="delete"]').hide(), b.find('[role="update"]').show(), b.find('[role="cancel"]').show()) }, displayMode: function(a, b, c, d) { var e, f, g, h, i, j, k; "editOnly" !== c.mode && ("edit" === b.attr("data-mode") && (e = b.find('div[data-role="edit"]'), f = b.find('div[data-role="display"]'), g = e.find("input, select, textarea").first(), "SELECT" === g[0].tagName.toUpperCase() && g[0].selectedIndex > -1 ? (h = g[0].options[g[0].selectedIndex].innerHTML, i = g[0].value) : h = "INPUT" === g[0].tagName.toUpperCase() && "CHECKBOX" === g[0].type.toUpperCase() ? g[0].checked : g.val(), k = b.parent().data("position"), j = a.get(k), !0 !== d && h !== j[c.field] && (j[c.field] = "date" === c.type ? gj.core.parseDate(h, c.format) : h, c.editField && (j[c.editField] = i || h), "editOnly" !== c.mode && (gj.grid.methods.renderDisplayElement(a, f, c, j, gj.grid.methods.getId(j, a.data("primaryKey"), k), "update"), 0 === b.find("span.gj-dirty").length && b.prepend($('<span class="gj-dirty" />'))), gj.grid.plugins.inlineEditing.events.cellDataChanged(a, b, c, j, h), gj.grid.plugins.inlineEditing.private.updateChanges(a, c, j, h)), e.hide(), f.show(), b.attr("data-mode", "display")), "managementColumn" === c.role && (b.find('[role="update"]').hide(), b.find('[role="cancel"]').hide(), b.find('[role="edit"]').show(), b.find('[role="delete"]').show())) }, updateOtherCells: function(a, b) { var c = a.data(); "command" !== c.inlineEditing.mode && "editOnly" !== b && a.find('div[data-role="edit"]:visible').parent("td").each(function() { var b = $(this), 228 d = c.columns[b.index()]; 229 gj.grid.plugins.inlineEditing.private.displayMode(a, b, d) }) }, updateChanges: function(a, b, c, d) { var e, f, g, h = a.data(); 230 h.guid || (h.guid = gj.grid.plugins.inlineEditing.private.generateGUID()), h.primaryKey && (e = JSON.parse(sessionStorage.getItem("gj.grid." + h.guid)), e ? f = e.filter(function(a) { return a[h.primaryKey] === c[h.primaryKey] }) : e = [], f && 1 === f.length ? f[0][b.field] = d : (g = {}, g[h.primaryKey] = c[h.primaryKey], h.primaryKey !== b.field && (g[b.field] = d), e.push(g)), sessionStorage.setItem("gj.grid." + h.guid, JSON.stringify(e))) }, generateGUID: function() { 231 function a() { return Math.floor(65536 * (1 + Math.random())).toString(16).substring(1) } return a() + a() + "-" + a() + "-" + a() + "-" + a() + "-" + a() + a() + a() } }, gj.grid.plugins.inlineEditing.public = { getChanges: function() { return JSON.parse(sessionStorage.getItem("gj.grid." + this.data().guid)) }, edit: function(a) { var b, c = this.getById(a), 232 d = gj.grid.methods.getRowById(this, a).children("td"), 233 e = this.data("columns"); for (b = 0; b < d.length; b++) gj.grid.plugins.inlineEditing.private.editMode(this, $(d[b]), e[b], c); return this }, update: function(a) { var b, c = this.getById(a), 234 d = gj.grid.methods.getRowById(this, a).children("td"), 235 e = this.data("columns"); for (b = 0; b < d.length; b++) gj.grid.plugins.inlineEditing.private.displayMode(this, $(d[b]), e[b], !1); return gj.grid.plugins.inlineEditing.events.rowDataChanged(this, a, c), this }, cancel: function(a) { var b, c = (this.getById(a), gj.grid.methods.getRowById(this, a).children("td")), 236 d = this.data("columns"); for (b = 0; b < c.length; b++) gj.grid.plugins.inlineEditing.private.displayMode(this, $(c[b]), d[b], !0); return this } }, gj.grid.plugins.inlineEditing.events = { cellDataChanged: function(a, b, c, d, e, f) { a.triggerHandler("cellDataChanged", [b, c, d, e, f]) }, rowDataChanged: function(a, b, c) { a.triggerHandler("rowDataChanged", [b, c]) } }, gj.grid.plugins.inlineEditing.configure = function(a, b, c) { var d = a.data(); 237 $.extend(!0, a, gj.grid.plugins.inlineEditing.public), c.inlineEditing && (a.on("dataBound", function() { a.find("span.gj-dirty").remove() }), a.on("rowDataBound", function(b, c, d, e) { a.cancel(d) })), "command" === d.inlineEditing.mode ? (gj.grid.plugins.inlineEditing.private.localization(d), b.inlineEditing.managementColumn && d.columns.push(b.inlineEditing.managementColumnConfig)) : a.on("cellDataBound", function(b, c, e, f, g) { f.editor && ("editOnly" === f.mode ? gj.grid.plugins.inlineEditing.private.editMode(a, c.parent(), f, g) : c.parent("td").on("dblclick" === d.inlineEditing.mode ? "dblclick" : "click", function() { gj.grid.plugins.inlineEditing.private.editMode(a, c.parent(), f, g) })) }) }, gj.grid.plugins.optimisticPersistence = { config: { base: { optimisticPersistence: { localStorage: void 0, sessionStorage: void 0 } } }, private: { applyParams: function(a) { var b, c = a.data(), 238 d = {}; 239 b = JSON.parse(sessionStorage.getItem("gj.grid." + c.guid)), b && b.optimisticPersistence && $.extend(d, b.optimisticPersistence), b = JSON.parse(localStorage.getItem("gj.grid." + c.guid)), b && b.optimisticPersistence && $.extend(d, b.optimisticPersistence), $.extend(c.params, d) }, saveParams: function(a) { var b, c, d = a.data(), 240 e = { optimisticPersistence: {} }; if (d.optimisticPersistence.sessionStorage) { for (b = 0; b < d.optimisticPersistence.sessionStorage.length; b++) c = d.optimisticPersistence.sessionStorage[b], e.optimisticPersistence[c] = d.params[c]; 241 e = $.extend(!0, JSON.parse(sessionStorage.getItem("gj.grid." + d.guid)), e), sessionStorage.setItem("gj.grid." + d.guid, JSON.stringify(e)) } if (d.optimisticPersistence.localStorage) { for (e = { optimisticPersistence: {} }, b = 0; b < d.optimisticPersistence.localStorage.length; b++) c = d.optimisticPersistence.localStorage[b], e.optimisticPersistence[c] = d.params[c]; 242 e = $.extend(!0, JSON.parse(localStorage.getItem("gj.grid." + d.guid)), e), localStorage.setItem("gj.grid." + d.guid, JSON.stringify(e)) } } }, configure: function(a, b, c) { b.guid && (b.optimisticPersistence.localStorage || b.optimisticPersistence.sessionStorage) && (gj.grid.plugins.optimisticPersistence.private.applyParams(a), a.on("dataBound", function(b) { gj.grid.plugins.optimisticPersistence.private.saveParams(a) })) } }, gj.grid.plugins.pagination = { config: { base: { style: { pager: { panel: "", stateDisabled: "", activeButton: "" } }, paramNames: { page: "page", limit: "limit" }, pager: { limit: 10, sizes: [5, 10, 20, 100], leftControls: void 0, rightControls: void 0 } }, bootstrap: { style: { pager: { panel: "", stateDisabled: "" } } }, bootstrap4: { style: { pager: { panel: "btn-toolbar", stateDisabled: "" } } }, glyphicons: { icons: { first: '<span class="glyphicon glyphicon-step-backward"></span>', previous: '<span class="glyphicon glyphicon-backward"></span>', next: '<span class="glyphicon glyphicon-forward"></span>', last: '<span class="glyphicon glyphicon-step-forward"></span>', refresh: '<span class="glyphicon glyphicon-refresh"></span>' } }, materialicons: { icons: { first: '<i class="gj-icon first-page" />', previous: '<i class="gj-icon chevron-left" />', next: '<i class="gj-icon chevron-right" />', last: '<i class="gj-icon last-page" />', refresh: '<i class="gj-icon refresh" />' } }, fontawesome: { icons: { first: '<i class="fa fa-fast-backward" aria-hidden="true"></i>', previous: '<i class="fa fa-backward" aria-hidden="true"></i>', next: '<i class="fa fa-forward" aria-hidden="true"></i>', last: '<i class="fa fa-fast-forward" aria-hidden="true"></i>', refresh: '<i class="fa fa-refresh" aria-hidden="true"></i>' } } }, private: { init: function(a) { var b, c, d, e, f, g, h, i, j, k; if (d = a.data(), d.pager) 243 for (d.params[d.paramNames.page] || (d.params[d.paramNames.page] = 1), d.params[d.paramNames.limit] || (d.params[d.paramNames.limit] = d.pager.limit), gj.grid.plugins.pagination.private.localization(d), b = $('<tr data-role="pager"/>'), c = $("<th/>"), b.append(c), f = $('<div data-role="display" />').addClass(d.style.pager.panel).css({ float: "left" }), g = $('<div data-role="display" />').addClass(d.style.pager.panel).css({ float: "right" }), c.append(f).append(g), h = $("<tfoot />").append(b), a.append(h), gj.grid.plugins.pagination.private.updatePagerColSpan(a), i = gj.grid.methods.clone(d.pager.leftControls), $.each(i, function() { f.append(this) }), j = gj.grid.methods.clone(d.pager.rightControls), $.each(j, function() { g.append(this) }), e = a.find("tfoot [data-role]"), k = 0; k < e.length; k++) gj.grid.plugins.pagination.private.initPagerControl($(e[k]), a) }, localization: function(a) { "bootstrap" === a.uiLibrary ? gj.grid.plugins.pagination.private.localizationBootstrap(a) : "bootstrap4" === a.uiLibrary ? gj.grid.plugins.pagination.private.localizationBootstrap4(a) : gj.grid.plugins.pagination.private.localizationMaterialDesign(a) }, localizationBootstrap: function(a) { var b = gj.grid.messages[a.locale]; 244 void 0 === a.pager.leftControls && (a.pager.leftControls = [$('<button type="button" class="btn btn-default btn-sm">' + (a.icons.first || b.First) + "</button>").attr("title", b.FirstPageTooltip).attr("data-role", "page-first"), $('<button type="button" class="btn btn-default btn-sm">' + (a.icons.previous || b.Previous) + "</button>").attr("title", b.PreviousPageTooltip).attr("data-role", "page-previous"), $("<div>" + b.Page + "</div>"), $('<input data-role="page-number" class="form-control input-sm" type="text" value="0">'), $("<div>" + b.Of + "</div>"), $('<div data-role="page-label-last">0</div>'), $('<button type="button" class="btn btn-default btn-sm">' + (a.icons.next || b.Next) + "</button>").attr("title", b.NextPageTooltip).attr("data-role", "page-next"), $('<button type="button" class="btn btn-default btn-sm">' + (a.icons.last || b.Last) + "</button>").attr("title", b.LastPageTooltip).attr("data-role", "page-last"), $('<button type="button" class="btn btn-default btn-sm">' + (a.icons.refresh || b.Refresh) + "</button>").attr("title", b.Refresh).attr("data-role", "page-refresh"), $('<select data-role="page-size" class="form-control input-sm" width="60"></select>')]), void 0 === a.pager.rightControls && (a.pager.rightControls = [$("<div>" + b.DisplayingRecords + "</div>"), $('<div data-role="record-first">0</div>'), $("<div>-</div>"), $('<div data-role="record-last">0</div>'), $("<div>" + b.Of + "</div>"), $('<div data-role="record-total">0</div>')]) }, localizationBootstrap4: function(a) { var b = gj.grid.messages[a.locale]; 245 void 0 === a.pager.leftControls && (a.pager.leftControls = [$('<button class="btn btn-default btn-sm gj-cursor-pointer">' + (a.icons.first || b.First) + "</button>").attr("title", b.FirstPageTooltip).attr("data-role", "page-first"), $('<button class="btn btn-default btn-sm gj-cursor-pointer">' + (a.icons.previous || b.Previous) + "</button>").attr("title", b.PreviousPageTooltip).attr("data-role", "page-previous"), $("<div>" + b.Page + "</div>"), $('<div class="input-group"><input data-role="page-number" class="form-control form-control-sm" type="text" value="0"></div>'), $("<div>" + b.Of + "</div>"), $('<div data-role="page-label-last">0</div>'), $('<button class="btn btn-default btn-sm gj-cursor-pointer">' + (a.icons.next || b.Next) + "</button>").attr("title", b.NextPageTooltip).attr("data-role", "page-next"), $('<button class="btn btn-default btn-sm gj-cursor-pointer">' + (a.icons.last || b.Last) + "</button>").attr("title", b.LastPageTooltip).attr("data-role", "page-last"), $('<button class="btn btn-default btn-sm gj-cursor-pointer">' + (a.icons.refresh || b.Refresh) + "</button>").attr("title", b.Refresh).attr("data-role", "page-refresh"), $('<select data-role="page-size" class="form-control input-sm" width="60"></select>')]), void 0 === a.pager.rightControls && (a.pager.rightControls = [$("<div>" + b.DisplayingRecords + " </div>"), $('<div data-role="record-first">0</div>'), $("<div>-</div>"), $('<div data-role="record-last">0</div>'), $("<div>" + b.Of + "</div>"), $('<div data-role="record-total">0</div>')]) }, localizationMaterialDesign: function(a) { var b = gj.grid.messages[a.locale]; 246 void 0 === a.pager.leftControls && (a.pager.leftControls = []), void 0 === a.pager.rightControls && (a.pager.rightControls = [$('<span class="">' + b.RowsPerPage + "</span>"), $('<select data-role="page-size" class="gj-grid-md-limit-select" width="52"></select></div>'), $('<span class="gj-md-spacer-32"> </span>'), $('<span data-role="record-first" class="">0</span>'), $('<span class="">-</span>'), $('<span data-role="record-last" class="">0</span>'), $('<span class="gj-grid-mdl-pager-label">' + b.Of + "</span>"), $('<span data-role="record-total" class="">0</span>'), $('<span class="gj-md-spacer-32"> </span>'), $('<button class="gj-button-md">' + (a.icons.previous || b.Previous) + "</button>").attr("title", b.PreviousPageTooltip).attr("data-role", "page-previous").addClass(a.icons.first ? "gj-button-md-icon" : ""), $('<span class="gj-md-spacer-24"> </span>'), $('<button class="gj-button-md">' + (a.icons.next || b.Next) + "</button>").attr("title", b.NextPageTooltip).attr("data-role", "page-next").addClass(a.icons.first ? "gj-button-md-icon" : "")]) }, initPagerControl: function(a, b) { var c = b.data(); switch (a.data("role")) { 247 case "page-size": 248 c.pager.sizes && 0 < c.pager.sizes.length ? (a.show(), $.each(c.pager.sizes, function() { a.append($("<option/>").attr("value", this.toString()).text(this.toString())) }), a.change(function() { var a = parseInt(this.value, 10); 249 c.params[c.paramNames.limit] = a, gj.grid.plugins.pagination.private.changePage(b, 1), gj.grid.plugins.pagination.events.pageSizeChange(b, a) }), a.val(c.params[c.paramNames.limit]), gj.dropdown && a.dropdown({ uiLibrary: c.uiLibrary, iconsLibrary: c.iconsLibrary, fontSize: a.css("font-size"), style: { presenter: "btn btn-default btn-sm" } })) : a.hide(); break; 250 case "page-refresh": 251 a.on("click", function() { b.reload() }) } }, reloadPager: function(a, b) { var c, d, e, f, g, h, i, j; if (h = a.data(), h.pager) { for (c = 0 === b ? 0 : parseInt(h.params[h.paramNames.page], 10), d = parseInt(h.params[h.paramNames.limit], 10), e = Math.ceil(b / d), f = 0 === c ? 0 : d * (c - 1) + 1, g = f + d > b ? b : f + d - 1, i = a.find("TFOOT [data-role]"), j = 0; j < i.length; j++) gj.grid.plugins.pagination.private.reloadPagerControl($(i[j]), a, c, e, f, g, b); 252 gj.grid.plugins.pagination.private.updatePagerColSpan(a) } }, reloadPagerControl: function(a, b, c, d, e, f, g) { var h; switch (a.data("role")) { 253 case "page-first": 254 gj.grid.plugins.pagination.private.assignPageHandler(b, a, 1, c < 2); break; 255 case "page-previous": 256 gj.grid.plugins.pagination.private.assignPageHandler(b, a, c - 1, c < 2); break; 257 case "page-number": 258 a.val(c).off("change").on("change", gj.grid.plugins.pagination.private.createChangePageHandler(b, c)); break; 259 case "page-label-last": 260 a.text(d); break; 261 case "page-next": 262 gj.grid.plugins.pagination.private.assignPageHandler(b, a, c + 1, d === c); break; 263 case "page-last": 264 gj.grid.plugins.pagination.private.assignPageHandler(b, a, d, d === c); break; 265 case "page-button-one": 266 h = 1 === c ? 1 : c == d ? c - 2 : c - 1, gj.grid.plugins.pagination.private.assignButtonHandler(b, a, c, h, d); break; 267 case "page-button-two": 268 h = 1 === c ? 2 : c == d ? d - 1 : c, gj.grid.plugins.pagination.private.assignButtonHandler(b, a, c, h, d); break; 269 case "page-button-three": 270 h = 1 === c ? c + 2 : c == d ? c : c + 1, gj.grid.plugins.pagination.private.assignButtonHandler(b, a, c, h, d); break; 271 case "record-first": 272 a.text(e); break; 273 case "record-last": 274 a.text(f); break; 275 case "record-total": 276 a.text(g) } }, assignPageHandler: function(a, b, c, d) { var e = a.data().style.pager; 277 d ? b.addClass(e.stateDisabled).prop("disabled", !0).off("click") : b.removeClass(e.stateDisabled).prop("disabled", !1).off("click").on("click", function() { gj.grid.plugins.pagination.private.changePage(a, c) }) }, assignButtonHandler: function(a, b, c, d, e) { var f = a.data().style.pager; 278 d < 1 || d > e ? b.hide() : (b.show().off("click").text(d), d === c ? b.addClass(f.activeButton) : b.removeClass(f.activeButton).on("click", function() { gj.grid.plugins.pagination.private.changePage(a, d) })) }, createChangePageHandler: function(a, b) { return function() { var b = (a.data(), parseInt(this.value, 10)); 279 gj.grid.plugins.pagination.private.changePage(a, b) } }, changePage: function(a, b) { var c = a.data();!1 === gj.grid.plugins.pagination.events.pageChanging(a, b) || isNaN(b) || (a.find('TFOOT [data-role="page-number"]').val(b), c.params[c.paramNames.page] = b), a.reload() }, updatePagerColSpan: function(a) { var b = a.find('tfoot > tr[data-role="pager"] > th'); 280 b && b.length && b.attr("colspan", gj.grid.methods.countVisibleColumns(a)) }, isLastRecordVisible: function(a) { var b = !0, 281 c = a.data(), 282 d = parseInt(c.params[c.paramNames.limit], 10), 283 e = parseInt(c.params[c.paramNames.page], 10), 284 f = a.count(); return d && e && (b = (e - 1) * d + f === c.totalRecords), b } }, public: { getAll: function(a) { var b, c, d, e = this.data(); return $.isArray(e.dataSource) ? a ? e.dataSource : e.params[e.paramNames.limit] && e.params[e.paramNames.page] ? (b = parseInt(e.params[e.paramNames.limit], 10), c = parseInt(e.params[e.paramNames.page], 10), d = (c - 1) * b, e.records.slice(d, d + b)) : e.records : e.records } }, events: { pageSizeChange: function(a, b) { a.triggerHandler("pageSizeChange", [b]) }, pageChanging: function(a, b) { a.triggerHandler("pageChanging", [b]) } }, configure: function(a, b, c) { $.extend(!0, a, gj.grid.plugins.pagination.public); 285 a.data(); 286 c.pager && (gj.grid.methods.isLastRecordVisible = gj.grid.plugins.pagination.private.isLastRecordVisible, a.on("initialized", function() { gj.grid.plugins.pagination.private.init(a) }), a.on("dataBound", function(b, c, d) { gj.grid.plugins.pagination.private.reloadPager(a, d) }), a.on("columnShow", function() { gj.grid.plugins.pagination.private.updatePagerColSpan(a) }), a.on("columnHide", function() { gj.grid.plugins.pagination.private.updatePagerColSpan(a) })) } }, gj.grid.plugins.responsiveDesign = { config: { base: { resizeCheckInterval: 500, responsive: !1, showHiddenColumnsAsDetails: !1, defaultColumn: { priority: void 0, minWidth: 250 }, style: { rowDetailItem: "" } }, bootstrap: { style: { rowDetailItem: "col-lg-4" } } }, private: { orderColumns: function(a) { var b = []; if (a.columns && a.columns.length) { for (i = 0; i < a.columns.length; i++) b.push({ position: i, field: a.columns[i].field, minWidth: a.columns[i].width || a.columns[i].minWidth || a.defaultColumn.minWidth, priority: a.columns[i].priority || 0 }); 287 b.sort(function(a, b) { var c = 0; return a.priority < b.priority ? c = -1 : a.priority > b.priority && (c = 1), c }) } return b }, updateDetails: function(a) { var b, c, d, e, f, g, h, i, j; for (b = a.find('tbody > tr[data-role="row"]'), c = a.data(), d = 0; d < b.length; d++) { for (f = $(b[d]), g = f.data("details"), e = 0; e < c.columns.length; e++) i = c.columns[e], h = g && g.find('div[data-id="' + i.field + '"]'), c.columns[e].hidden ? (j = "<b>" + (i.title || i.field) + "</b>: {" + i.field + "}", h && h.length ? h.empty().html(j) : (h = $('<div data-id="' + i.field + '"/>').html(j), h.addClass(c.style.rowDetailItem), g && g.length || (g = $('<div class="row"/>')), g.append(h))) : h && h.length && h.remove(); 288 a.updateDetails(f) } } }, public: { oldWidth: void 0, resizeCheckIntervalId: void 0, makeResponsive: function() { var a, b, c = 0, 289 d = this.data(), 290 e = gj.grid.plugins.responsiveDesign.private.orderColumns(d); for (a = 0; a < e.length; a++) b = this.find("thead>tr>th:eq(" + e[a].position + ")"), b.is(":visible") && e[a].minWidth < b.width() && (c += b.width() - e[a].minWidth); if (c) 291 for (a = 0; a < e.length; a++) b = this.find("thead>tr>th:eq(" + e[a].position + ")"), !b.is(":visible") && e[a].minWidth <= c && (this.showColumn(e[a].field), c -= b.width()); for (a = e.length - 1; a >= 0; a--) b = this.find("thead>tr>th:eq(" + e[a].position + ")"), b.is(":visible") && e[a].priority && e[a].minWidth > b.outerWidth() && this.hideColumn(e[a].field); return this } }, events: { resize: function(a, b, c) { a.triggerHandler("resize", [b, c]) } }, configure: function(a, b, c) { $.extend(!0, a, gj.grid.plugins.responsiveDesign.public), b.responsive && (a.on("initialized", function() { a.makeResponsive(), a.oldWidth = a.width(), a.resizeCheckIntervalId = setInterval(function() { var b = a.width(); 292 b !== a.oldWidth && gj.grid.plugins.responsiveDesign.events.resize(a, b, a.oldWidth), a.oldWidth = b }, b.resizeCheckInterval) }), a.on("destroy", function() { a.resizeCheckIntervalId && clearInterval(a.resizeCheckIntervalId) }), a.on("resize", function() { a.makeResponsive() })), b.showHiddenColumnsAsDetails && gj.grid.plugins.expandCollapseRows && (a.on("dataBound", function() { gj.grid.plugins.responsiveDesign.private.updateDetails(a) }), a.on("columnHide", function() { gj.grid.plugins.responsiveDesign.private.updateDetails(a) }), a.on("columnShow", function() { gj.grid.plugins.responsiveDesign.private.updateDetails(a) }), a.on("rowDataBound", function() { gj.grid.plugins.responsiveDesign.private.updateDetails(a) })) } }, gj.grid.plugins.toolbar = { config: { base: { toolbarTemplate: void 0, title: void 0, style: { toolbar: "gj-grid-md-toolbar" } }, bootstrap: { style: { toolbar: "gj-grid-bootstrap-toolbar" } }, bootstrap4: { style: { toolbar: "gj-grid-bootstrap-4-toolbar" } } }, private: { init: function(a) { var b, c, d; 293 b = a.data(), c = a.prev('div[data-role="toolbar"]'), (void 0 !== b.toolbarTemplate || void 0 !== b.title || c.length > 0) && (0 === c.length && (c = $('<div data-role="toolbar"></div>'), a.before(c)), c.addClass(b.style.toolbar), 0 === c.children().length && b.toolbarTemplate && c.append(b.toolbarTemplate), d = c.find('[data-role="title"]'), 0 === d.length && (d = $('<div data-role="title"/>'), c.prepend(d)), b.title && d.text(b.title), b.minWidth && c.css("min-width", b.minWidth)) } }, public: { title: function(a) { var b = this.parent().find('div[data-role="toolbar"] [data-role="title"]'); return void 0 !== a ? (b.text(a), this) : b.text() } }, configure: function(a) { $.extend(!0, a, gj.grid.plugins.toolbar.public), a.on("initialized", function() { gj.grid.plugins.toolbar.private.init(a) }), a.on("destroying", function() { a.prev('[data-role="toolbar"]').remove() }) } }, gj.grid.plugins.resizableColumns = { config: { base: { resizableColumns: !1 } }, private: { init: function(a, b) { var c, d, e, f, g, h; if (c = a.find('thead tr[data-role="caption"] th'), c.length) { for (e = 0; e < c.length - 1; e++) d = $(c[e]), f = $('<div class="gj-grid-column-resizer-wrapper" />'), h = parseInt(d.css("padding-right"), 10) + 3, g = $('<span class="gj-grid-column-resizer" />').css("margin-right", "-" + h + "px"), g.draggable({ start: function() { a.addClass("gj-unselectable"), a.addClass("gj-grid-resize-cursor") }, stop: function() { a.removeClass("gj-unselectable"), a.removeClass("gj-grid-resize-cursor"), this.style.removeProperty("top"), this.style.removeProperty("left"), this.style.removeProperty("position") }, drag: gj.grid.plugins.resizableColumns.private.createResizeHandle(a, d, b.columns[e]) }), d.append(f.append(g)); for (e = 0; e < c.length; e++) d = $(c[e]), d.attr("width") || d.attr("width", d.outerWidth()) } }, createResizeHandle: function(a, b, c) { var d = a.data(); return function(e, f) { var g, h, i, j, k, l, m = parseInt(b.attr("width"), 10), 294 n = gj.core.position(this), 295 o = { top: f.top - n.top, left: f.left - n.left }; if (m || (m = b.outerWidth()), o.left && (k = m + o.left, c.width = k, b.attr("width", k), h = b[0].cellIndex, j = b[0].parentElement.children[h + 1], l = parseInt($(j).attr("width"), 10) - o.left, j.setAttribute("width", l), d.resizableColumns)) 296 for (i = a[0].tBodies[0].children, g = 0; g < i.length; g++) i[g].cells[h].setAttribute("width", k), j = i[g].cells[h + 1], j.setAttribute("width", l) } } }, public: {}, configure: function(a, b, c) { $.extend(!0, a, gj.grid.plugins.resizableColumns.public), b.resizableColumns && gj.draggable && a.on("initialized", function() { gj.grid.plugins.resizableColumns.private.init(a, b) }) } }, gj.grid.plugins.rowReorder = { config: { base: { rowReorder: !1, rowReorderColumn: void 0, orderNumberField: void 0, style: { targetRowIndicatorTop: "gj-grid-row-reorder-indicator-top", targetRowIndicatorBottom: "gj-grid-row-reorder-indicator-bottom" } } }, private: { init: function(a) { var b, c, d, e = a.find('tbody tr[data-role="row"]'); for (a.data("rowReorderColumn") && (c = gj.grid.methods.getColumnPosition(a.data("columns"), a.data("rowReorderColumn"))), b = 0; b < e.length; b++) d = $(e[b]), void 0 !== c ? d.find("td:eq(" + c + ")").on("mousedown", gj.grid.plugins.rowReorder.private.createRowMouseDownHandler(a, d)) : d.on("mousedown", gj.grid.plugins.rowReorder.private.createRowMouseDownHandler(a, d)) }, createRowMouseDownHandler: function(a, b) { return function(c) { var d, e, f = a.clone(), 297 g = a.data("columns"); for (a.addClass("gj-unselectable"), $("body").append(f), f.attr("data-role", "draggable-clone").css("cursor", "move"), f.children("thead").remove().children("tfoot").remove(), f.find('tbody tr:not([data-position="' + b.data("position") + '"])').remove(), e = f.find("tbody tr td"), d = 0; d < e.length; d++) g[d].width && e[d].setAttribute("width", g[d].width); 298 f.draggable({ stop: gj.grid.plugins.rowReorder.private.createDragStopHandler(a, b) }), f.css({ position: "absolute", top: b.offset().top, left: b.offset().left, width: b.width(), zIndex: 1 }), "true" === b.attr("data-droppable") && b.droppable("destroy"), b.siblings('tr[data-role="row"]').each(function() { var a = $(this); "true" === a.attr("data-droppable") && a.droppable("destroy"), a.droppable({ over: gj.grid.plugins.rowReorder.private.createDroppableOverHandler(b), out: gj.grid.plugins.rowReorder.private.droppableOut }) }), f.trigger("mousedown") } }, createDragStopHandler: function(a, b) { return function(c, d) { $('table[data-role="draggable-clone"]').draggable("destroy").remove(), a.removeClass("gj-unselectable"), b.siblings('tr[data-role="row"]').each(function() { var c, e, f, g, h, i = $(this), 299 j = i.data("position"), 300 k = b.data("position"), 301 l = a.data(); if (i.droppable("isOver", d)) { for (j < k ? i.before(b) : i.after(b), l.records.splice(j - 1, 0, l.records.splice(k - 1, 1)[0]), c = i.parent().find('tr[data-role="row"]'), f = 0; f < c.length; f++) $(c[f]).attr("data-position", f + 1); if (l.orderNumberField) { for (f = 0; f < l.records.length; f++) l.records[f][l.orderNumberField] = f + 1; for (f = 0; f < c.length; f++) e = $(c[f]), h = gj.grid.methods.getId(e, l.primaryKey, e.attr("data-position")), g = gj.grid.methods.getByPosition(a, e.attr("data-position")), a.setCellContent(h, l.orderNumberField, g[l.orderNumberField]) } } 302 i.removeClass("gj-grid-top-border"), i.removeClass("gj-grid-bottom-border"), i.droppable("destroy") }) } }, createDroppableOverHandler: function(a) { return function(b) { var c = $(this); 303 c.data("position") < a.data("position") ? c.addClass("gj-grid-top-border") : c.addClass("gj-grid-bottom-border") } }, droppableOut: function() { $(this).removeClass("gj-grid-top-border"), $(this).removeClass("gj-grid-bottom-border") } }, public: {}, configure: function(a, b, c) { $.extend(!0, a, gj.grid.plugins.rowReorder.public), b.rowReorder && gj.draggable && gj.droppable && a.on("dataBound", function() { gj.grid.plugins.rowReorder.private.init(a) }) } }, gj.grid.plugins.export = { config: { base: {} }, public: { getCSV: function(a) { var b, c, d = "", 304 e = "", 305 f = this.data().columns, 306 g = this.getAll(a); if (g.length) { for (b = 0; b < f.length; b++) gj.grid.plugins.export.public.isColumnApplicable(f[b]) && (d += '"' + (f[b].title || f[b].field).replace(/<[^>]+>/g, " ") + '",'); for (e += d.slice(0, d.length - 1) + "\r\n", b = 0; b < g.length; b++) { for (d = "", c = 0; c < f.length; c++) gj.grid.plugins.export.public.isColumnApplicable(f[c]) && (d += '"' + g[b][f[c].field] + '",'); 307 e += d.slice(0, d.length - 1) + "\r\n" } } return e }, downloadCSV: function(a, b) { var c = document.createElement("a"); return document.body.appendChild(c), c.download = a || "griddata.csv", window.navigator.userAgent.indexOf("Edge") > -1 ? c.href = URL.createObjectURL(new Blob([this.getCSV(b)], { type: "text/csv;charset=utf-8;" })) : c.href = "data:text/csv;charset=utf-8," + escape(this.getCSV(b)), c.click(), document.body.removeChild(c), this }, isColumnApplicable: function(a) { return !0 !== a.hidden && !a.role } }, configure: function(a) { $.extend(!0, a, gj.grid.plugins.export.public) } }, gj.grid.plugins.columnReorder = { config: { base: { columnReorder: !1, dragReady: !1, style: { targetRowIndicatorTop: "gj-grid-row-reorder-indicator-top", targetRowIndicatorBottom: "gj-grid-row-reorder-indicator-bottom" } } }, private: { init: function(a) { var b, c, d = a.find("thead tr th"); for (b = 0; b < d.length; b++) c = $(d[b]), c.on("mousedown", gj.grid.plugins.columnReorder.private.createMouseDownHandler(a, c)), c.on("mousemove", gj.grid.plugins.columnReorder.private.createMouseMoveHandler(a, c)), c.on("mouseup", gj.grid.plugins.columnReorder.private.createMouseUpHandler(a, c)) }, createMouseDownHandler: function(a) { return function(b) { a.timeout = setTimeout(function() { a.data("dragReady", !0) }, 100) } }, createMouseUpHandler: function(a) { return function(b) { clearTimeout(a.timeout), a.data("dragReady", !1) } }, createMouseMoveHandler: function(a, b) { return function(c) { var d, e; 308 a.data("dragReady") && (a.data("dragReady", !1), d = a.clone(), e = b.index(), a.addClass("gj-unselectable"), $("body").append(d), d.attr("data-role", "draggable-clone").css("cursor", "move"), d.find("thead tr th:eq(" + e + ")").siblings().remove(), d.find('tbody tr[data-role != "row"]').remove(), d.find("tbody tr td:nth-child(" + (e + 1) + ")").siblings().remove(), d.find("tfoot").remove(), d.draggable({ stop: gj.grid.plugins.columnReorder.private.createDragStopHandler(a, b) }), d.css({ position: "absolute", top: b.offset().top, left: b.offset().left, width: b.width(), zIndex: 1 }), "true" === b.attr("data-droppable") && b.droppable("destroy"), b.siblings("th").each(function() { var c = $(this); "true" === c.attr("data-droppable") && c.droppable("destroy"), c.droppable({ over: gj.grid.plugins.columnReorder.private.createDroppableOverHandler(a, b), out: gj.grid.plugins.columnReorder.private.droppableOut }) }), d.trigger("mousedown")) } }, createDragStopHandler: function(a, b) { return function(c, d) { $('table[data-role="draggable-clone"]').draggable("destroy").remove(), a.removeClass("gj-unselectable"), b.siblings("th").each(function() { var c = $(this), 309 e = a.data(), 310 f = gj.grid.methods.getColumnPosition(e.columns, c.data("field")), 311 g = gj.grid.methods.getColumnPosition(e.columns, b.data("field")); 312 c.removeClass("gj-grid-left-border").removeClass("gj-grid-right-border"), c.closest("table").find('tbody tr[data-role="row"] td:nth-child(' + (c.index() + 1) + ")").removeClass("gj-grid-left-border").removeClass("gj-grid-right-border"), c.droppable("isOver", d) && (f < g ? c.before(b) : c.after(b), gj.grid.plugins.columnReorder.private.moveRowCells(a, g, f), e.columns.splice(f, 0, e.columns.splice(g, 1)[0])), c.droppable("destroy") }) } }, moveRowCells: function(a, b, c) { var d, e, f = a.find('tbody tr[data-role="row"]'); for (d = 0; d < f.length; d++) e = $(f[d]), c < b ? e.find("td:eq(" + c + ")").before(e.find("td:eq(" + b + ")")) : e.find("td:eq(" + c + ")").after(e.find("td:eq(" + b + ")")) }, createDroppableOverHandler: function(a, b) { return function(c) { var d = $(this), 313 e = a.data(); 314 gj.grid.methods.getColumnPosition(e.columns, d.data("field")) < gj.grid.methods.getColumnPosition(e.columns, b.data("field")) ? (d.addClass("gj-grid-left-border"), a.find('tbody tr[data-role="row"] td:nth-child(' + (d.index() + 1) + ")").addClass("gj-grid-left-border")) : (d.addClass("gj-grid-right-border"), a.find('tbody tr[data-role="row"] td:nth-child(' + (d.index() + 1) + ")").addClass("gj-grid-right-border")) } }, droppableOut: function() { var a = $(this); 315 a.removeClass("gj-grid-left-border").removeClass("gj-grid-right-border"), a.closest("table").find('tbody tr[data-role="row"] td:nth-child(' + (a.index() + 1) + ")").removeClass("gj-grid-left-border").removeClass("gj-grid-right-border") } }, public: {}, configure: function(a, b, c) { $.extend(!0, a, gj.grid.plugins.columnReorder.public), b.columnReorder && a.on("initialized", function() { gj.grid.plugins.columnReorder.private.init(a) }) } }, gj.grid.plugins.headerFilter = { config: { base: { defaultColumnSettings: { filterable: !0 }, headerFilter: { type: "onenterkeypress" } } }, private: { init: function(a) { var b, c, d, e = a.data(), 316 f = $('<tr data-role="filter"/>'); for (b = 0; b < e.columns.length; b++) c = $("<th/>"), e.columns[b].filterable && (d = $('<input data-field="' + e.columns[b].field + '" class="gj-width-full" />'), "onchange" === e.headerFilter.type ? d.on("input propertychange", function(b) { gj.grid.plugins.headerFilter.private.reload(a, $(this)) }) : (d.on("keypress", function(b) { 13 == b.which && gj.grid.plugins.headerFilter.private.reload(a, $(this)) }), d.on("blur", function(b) { gj.grid.plugins.headerFilter.private.reload(a, $(this)) })), c.append(d)), e.columns[b].hidden && c.hide(), f.append(c); 317 a.children("thead").append(f) }, reload: function(a, b) { var c = {}; 318 c[b.data("field")] = b.val(), a.reload(c) } }, public: {}, events: {}, configure: function(a, b, c) { $.extend(!0, a, gj.grid.plugins.headerFilter.public); 319 a.data(); 320 c.headerFilter && a.on("initialized", function() { gj.grid.plugins.headerFilter.private.init(a) }) } }, gj.grid.plugins.grouping = { config: { base: { paramNames: { groupBy: "groupBy", groupByDirection: "groupByDirection" }, grouping: { groupBy: void 0, direction: "asc" }, icons: { expandGroup: '<i class="gj-icon plus" />', collapseGroup: '<i class="gj-icon minus" />' } }, fontawesome: { icons: { expandGroup: '<i class="fa fa-plus" aria-hidden="true"></i>', collapseGroup: '<i class="fa fa-minus" aria-hidden="true"></i>' } }, glyphicons: { icons: { expandGroup: '<span class="glyphicon glyphicon-plus" />', collapseGroup: '<span class="glyphicon glyphicon-minus" />' } } }, private: { init: function(a) { var b, c = a.data(); 321 b = void 0, a.on("rowDataBound", function(d, e, f, g) { if (b !== g[c.grouping.groupBy] || 1 === e[0].rowIndex) { var h = gj.grid.methods.countVisibleColumns(a) - 1, 322 i = $('<tr role="group" />'), 323 j = $('<td class="gj-text-align-center gj-unselectable gj-cursor-pointer" />'); 324 j.append('<div data-role="display">' + c.icons.collapseGroup + "</div>"), j.on("click", gj.grid.plugins.grouping.private.createExpandCollapseHandler(c)), i.append(j), i.append('<td colspan="' + h + '"><div data-role="display">' + c.grouping.groupBy + ": " + g[c.grouping.groupBy] + "</div></td>"), i.insertBefore(e), b = g[c.grouping.groupBy] } 325 e.show() }), c.params[c.paramNames.groupBy] = c.grouping.groupBy, c.params[c.paramNames.groupByDirection] = c.grouping.direction }, grouping: function(a, b) { var c = a.data(); 326 b.sort(gj.grid.methods.createDefaultSorter(c.grouping.direction, c.grouping.groupBy)) }, createExpandCollapseHandler: function(a) { return function(b) { var c = $(this), 327 d = gj.grid.plugins.grouping.private; "row" === c.closest("tr").next(":visible").data("role") ? d.collapseGroup(a, c) : d.expandGroup(a, c) } }, collapseGroup: function(a, b) { var c = b.children('div[data-role="display"]'); 328 b.closest("tr").nextUntil('[role="group"]').hide(), c.empty().append(a.icons.expandGroup) }, expandGroup: function(a, b) { var c = b.children('div[data-role="display"]'); 329 b.closest("tr").nextUntil('[role="group"]').show(), c.empty().append(a.icons.collapseGroup) } }, public: {}, configure: function(a) { var b, c = a.data(); 330 $.extend(!0, a, gj.grid.plugins.grouping.public), c.grouping && c.grouping.groupBy && (b = { title: "", width: c.defaultIconColumnWidth, align: "center", stopPropagation: !0, cssClass: "gj-cursor-pointer gj-unselectable" }, c.columns = [b].concat(c.columns), a.on("initialized", function() { gj.grid.plugins.grouping.private.init(a) }), a.on("dataFiltered", function(b, c) { gj.grid.plugins.grouping.private.grouping(a, c) })) } }, gj.grid.messages["en-us"] = { First: "First", Previous: "Previous", Next: "Next", Last: "Last", Page: "Page", FirstPageTooltip: "First Page", PreviousPageTooltip: "Previous Page", NextPageTooltip: "Next Page", LastPageTooltip: "Last Page", Refresh: "Refresh", Of: "of", DisplayingRecords: "Displaying records", RowsPerPage: "Rows per page:", Edit: "Edit", Delete: "Delete", Update: "Update", Cancel: "Cancel", NoRecordsFound: "No records foun
330d.", Loading: "Loading..." }, gj.tree = { plugins: {} }, gj.tree.config = { base: { params: {}, autoLoad: !0, selectionType: "single", cascadeSelection: !1, dataSource: void 0, primaryKey: void 0, textField: "text", childrenField: "children", hasChildrenField: "hasChildren", imageCssClassField: "imageCssClass", imageUrlField: "imageUrl", imageHtmlField: "imageHtml", disabledField: "disabled", width: void 0, border: !1, uiLibrary: "materialdesign", iconsLibrary: "materialicons", autoGenId: 1, autoGenFieldName: "autoId_b5497cc5-7ef3-49f5-a7dc-4a932e1aee4a", indentation: 24, style: { wrapper: "gj-unselectable", list: "gj-list gj-list-md", item: void 0, active: "gj-list-md-active", leafIcon: void 0, border: "gj-tree-md-border" }, icons: { expand: '<i class="gj-icon chevron-right" />', collapse: '<i class="gj-icon chevron-down" />' } }, bootstrap: { style: { wrapper: "gj-unselectable gj-tree-bootstrap-3", list: "gj-list gj-list-bootstrap list-group", item: "list-group-item", active: "active", border: "gj-tree-bootstrap-border" }, iconsLibrary: "glyphicons" }, bootstrap4: { style: { wrapper: "gj-unselectable gj-tree-bootstrap-4", list: "gj-list gj-list-bootstrap", item: "list-group-item", active: "active", border: "gj-tree-bootstrap-border" }, icons: { expand: '<i class="gj-icon plus" />', collapse: '<i class="gj-icon minus" />' } }, materialicons: { style: { expander: "gj-tree-material-icons-expander" } }, fontawesome: { style: { expander: "gj-tree-font-awesome-expander" }, icons: { expand: '<i class="fa fa-plus" aria-hidden="true"></i>', collapse: '<i class="fa fa-minus" aria-hidden="true"></i>' } }, glyphicons: { style: { expander: "gj-tree-glyphicons-expander" }, icons: { expand: '<span class="glyphicon glyphicon-plus" />', collapse: '<span class="glyphicon glyphicon-minus" />' } } }, gj.tree.events = { initialized: function(a) { a.triggerHandler("initialized") }, dataBinding: function(a) { a.triggerHandler("dataBinding") }, dataBound: function(a) { a.triggerHandler("dataBound") }, select: function(a, b, c) { return a.triggerHandler("select", [b, c]) }, unselect: function(a, b, c) { return a.triggerHandler("unselect", [b, c]) }, expand: function(a, b, c) { return a.triggerHandler("expand", [b, c]) }, collapse: function(a, b, c) { return a.triggerHandler("collapse", [b, c]) }, enable: function(a, b) { return a.triggerHandler("enable", [b]) }, disable: function(a, b) { return a.triggerHandler("disable", [b]) }, destroying: function(a) { return a.triggerHandler("destroying") }, nodeDataBound: function(a, b, c, d) { return a.triggerHandler("nodeDataBound", [b, c, d]) } }, gj.tree.methods = { init: function(a) { return gj.widget.prototype.init.call(this, a, "tree"), gj.tree.methods.initialize.call(this), this.data("autoLoad") && this.reload(), this }, initialize: function() { var a = this.data(), 331 b = $('<ul class="' + a.style.list + '"/>'); 332 this.empty().addClass(a.style.wrapper).append(b), a.width && this.width(a.width), a.border && this.addClass(a.style.border), gj.tree.events.initialized(this) }, useHtmlDataSource: function(a, b) { b.dataSource = [] }, render: function(a, b) { var c; return b && ("string" == typeof b && JSON && (b = JSON.parse(b)), c = a.data(), c.records = b, c.primaryKey || gj.tree.methods.genAutoId(c, c.records), gj.tree.methods.loadData(a)), a }, filter: function(a) { return a.data().dataSource }, genAutoId: function(a, b) { var c; for (c = 0; c < b.length; c++) b[c][a.autoGenFieldName] = a.autoGenId++, b[c][a.childrenField] && b[c][a.childrenField].length && gj.tree.methods.genAutoId(a, b[c][a.childrenField]) }, loadData: function(a) { var b, c = a.data("records"), 333 d = a.children("ul"); for (gj.tree.events.dataBinding(a), d.off().empty(), b = 0; b < c.length; b++) gj.tree.methods.appendNode(a, d, c[b], 1); 334 gj.tree.events.dataBound(a) }, appendNode: function(a, b, c, d, e) { var f, g, h, i, j, k = a.data(), 335 l = k.primaryKey ? c[k.primaryKey] : c[k.autoGenFieldName]; if (g = $('<li data-id="' + l + '" data-role="node" />
vendor: 45,886 bytes, lines 335-471
335').addClass(k.style.item), $wrapper = $('<div data-role="wrapper" />'), $expander = $('<span data-role="expander" data-mode="close"></span>').addClass(k.style.expander), $display = $('<span data-role="display">' + c[k.textField] + "</span>"), hasChildren = void 0 !== c[k.hasChildrenField] && "true" === c[k.hasChildrenField].toString().toLowerCase(), disabled = void 0 !== c[k.disabledField] && "true" === c[k.disabledField].toString().toLowerCase(), k.indentation && $wrapper.append('<span data-role="spacer" style="width: ' + k.indentation * (d - 1) + 'px;"></span>'), disabled ? gj.tree.methods.disableNode(a, g) : ($expander.on("click", gj.tree.methods.expanderClickHandler(a)), $display.on("click", gj.tree.methods.displayClickHandler(a))), $wrapper.append($expander), $wrapper.append($display), g.append($wrapper), e ? b.find("li:eq(" + (e - 1) + ")").before(g) : b.append(g), k.imageCssClassField && c[k.imageCssClassField] ? (i = $('<span data-role="image"><span class="' + c[k.imageCssClassField] + '"></span></span>'), i.insertBefore($display)) : k.imageUrlField && c[k.imageUrlField] ? (i = $('<span data-role="image"></span>'), i.insertBefore($display), j = $('<img src="' + c[k.imageUrlField] + '"></img>'), j.attr("width", i.width()).attr("height", i.height()), i.append(j)) : k.imageHtmlField && c[k.imageHtmlField] && (i = $('<span data-role="image">' + c[k.imageHtmlField] + "</span>"), i.insertBefore($display)), c[k.childrenField] && c[k.childrenField].length || hasChildren) { if ($expander.empty().append(k.icons.expand), h = $("<ul />").addClass(k.style.list).addClass("gj-hidden"), g.append(h), c[k.childrenField] && c[k.childrenField].length) 336 for (f = 0; f < c[k.childrenField].length; f++) gj.tree.methods.appendNode(a, h, c[k.childrenField][f], d + 1) } else k.style.leafIcon ? $expander.addClass(k.style.leafIcon) : $expander.html(" "); 337 gj.tree.events.nodeDataBound(a, g, c.id, c) }, expanderClickHandler: function(a) { return function(b) { var c = $(this), 338 d = c.closest("li"); "close" === c.attr("data-mode") ? a.expand(d) : a.collapse(d) } }, expand: function(a, b, c) { var d, e, f = b.find('>[data-role="wrapper"]>[data-role="expander"]'), 339 g = a.data(), 340 h = b.attr("data-id"), 341 i = b.children("ul"); if (!1 !== gj.tree.events.expand(a, b, h) && i && i.length && (i.show(), f.attr("data-mode", "open"), f.empty().append(g.icons.collapse), c)) 342 for (d = b.find("ul>li"), e = 0; e < d.length; e++) gj.tree.methods.expand(a, $(d[e]), c); return a }, collapse: function(a, b, c) { var d, e, f = b.find('>[data-role="wrapper"]>[data-role="expander"]'), 343 g = a.data(), 344 h = b.attr("data-id"), 345 i = b.children("ul"); if (!1 !== gj.tree.events.collapse(a, b, h) && i && i.length && (i.hide(), f.attr("data-mode", "close"), f.empty().append(g.icons.expand), c)) 346 for (d = b.find("ul>li"), e = 0; e < d.length; e++) gj.tree.methods.collapse(a, $(d[e]), c); return a }, expandAll: function(a) { var b, c = a.find("ul>li"); for (b = 0; b < c.length; b++) gj.tree.methods.expand(a, $(c[b]), !0); return a }, collapseAll: function(a) { var b, c = a.find("ul>li"); for (b = 0; b < c.length; b++) gj.tree.methods.collapse(a, $(c[b]), !0); return a }, displayClickHandler: function(a) { return function(b) { var c = $(this), 347 d = c.closest("li"), 348 e = a.data().cascadeSelection; "true" === d.attr("data-selected") ? gj.tree.methods.unselect(a, d, e) : ("single" === a.data("selectionType") && gj.tree.methods.unselectAll(a), gj.tree.methods.select(a, d, e)) } }, selectAll: function(a) { var b, c = a.find("ul>li"); for (b = 0; b < c.length; b++) gj.tree.methods.select(a, $(c[b]), !0); return a }, select: function(a, b, c) { var d, e, f = a.data(); if ("true" !== b.attr("data-selected") && !1 !== gj.tree.events.select(a, b, b.attr("data-id")) && (b.addClass(f.style.active).attr("data-selected", "true"), c)) 349 for (e = b.find("ul>li"), d = 0; d < e.length; d++) gj.tree.methods.select(a, $(e[d]), c) }, unselectAll: function(a) { var b, c = a.find("ul>li"); for (b = 0; b < c.length; b++) gj.tree.methods.unselect(a, $(c[b]), !0); return a }, unselect: function(a, b, c) { var d, e; 350 a.data(); if ("true" === b.attr("data-selected") && !1 !== gj.tree.events.unselect(a, b, b.attr("data-id")) && (b.removeClass(a.data().style.active).removeAttr("data-selected"), c)) 351 for (e = b.find("ul>li"), d = 0; d < e.length; d++) gj.tree.methods.unselect(a, $(e[d]), c) }, getSelections: function(a) { var b, c, d, e = [], 352 f = a.children("li"); if (f && f.length) 353 for (b = 0; b < f.length; b++) c = $(f[b]), "true" === c.attr("data-selected") ? e.push(c.attr("data-id")) : c.has("ul") && (d = gj.tree.methods.getSelections(c.children("ul")), d.length && (e = e.concat(d))); return e }, getDataById: function(a, b, c) { var d, e = a.data(), 354 f = void 0; for (d = 0; d < c.length; d++) { if (e.primaryKey && c[d][e.primaryKey] == b) { f = c[d]; break } if (c[d][e.autoGenFieldName] == b) { f = c[d]; break } if (c[d][e.childrenField] && c[d][e.childrenField].length && (f = gj.tree.methods.getDataById(a, b, c[d][e.childrenField]))) break } return f }, getDataByText: function(a, b, c) { var d, e = void 0, 355 f = a.data(); for (d = 0; d < c.length; d++) { if (b === c[d][f.textField]) { e = c[d]; break } if (c[d][f.childrenField] && c[d][f.childrenField].length && (e = gj.tree.methods.getDataByText(a, b, c[d][f.childrenField]))) break } return e }, getNodeById: function(a, b) { var c, d, e = void 0, 356 f = a.children("li"); if (f && f.length) 357 for (c = 0; c < f.length; c++) { if (d = $(f[c]), b == d.attr("data-id")) { e = d; break } if (d.has("ul") && (e = gj.tree.methods.getNodeById(d.children("ul"), b))) break } 358 return e }, getNodeByText: function(a, b) { var c, d, e = void 0, 359 f = a.children("li"); if (f && f.length) 360 for (c = 0; c < f.length; c++) { if (d = $(f[c]), b === d.find('>[data-role="wrapper"]>[data-role="display"]').text()) { e = d; break } if (d.has("ul") && (e = gj.tree.methods.getNodeByText(d.children("ul"), b))) break } 361 return e }, addNode: function(a, b, c, d) { var e, f, g = a.data(); return c && c.length ? ("li" === c[0].tagName.toLowerCase() && (0 === c.children("ul").length && (c.find('[data-role="expander"]').empty().append(g.icons.collapse), c.append($("<ul />").addClass(g.style.list))), c = c.children("ul")), f = a.getDataById(c.parent().data("id")), f[g.childrenField] || (f[g.childrenField] = []), f[g.childrenField].push(b)) : (c = a.children("ul"), a.data("records").push(b)), e = c.parentsUntil('[data-type="tree"]', "ul").length + 1, g.primaryKey || gj.tree.methods.genAutoId(g, [b]), gj.tree.methods.appendNode(a, c, b, e, d), a }, remove: function(a, b) { return gj.tree.methods.removeDataById(a, b.attr("data-id"), a.data("records")), b.remove(), a }, removeDataById: function(a, b, c) { var d, e = a.data(); for (d = 0; d < c.length; d++) { if (e.primaryKey && c[d][e.primaryKey] == b) { c.splice(d, 1); break } if (c[d][e.autoGenFieldName] == b) { c.splice(d, 1); break } 362 c[d][e.childrenField] && c[d][e.childrenField].length && gj.tree.methods.removeDataById(a, b, c[d][e.childrenField]) } }, update: function(a, b, c) { var d = a.data(), 363 e = a.getNodeById(b); 364 a.getDataById(b); return c, e.find('>[data-role="wrapper"]>[data-role="display"]').html(c[d.textField]), gj.tree.events.nodeDataBound(a, e, b, c), a }, getChildren: function(a, b, c) { var d, e, f = [], 365 c = void 0 === c || c; for (e = c ? b.find("ul li") : b.find(">ul>li"), d = 0; d < e.length; d++) f.push($(e[d]).data("id")); return f }, enableAll: function(a) { var b, c = a.find("ul>li"); for (b = 0; b < c.length; b++) gj.tree.methods.enableNode(a, $(c[b]), !0); return a }, enableNode: function(a, b, c) { var d, e, f = b.find('>[data-role="wrapper"]>[data-role="expander"]'), 366 g = b.find('>[data-role="wrapper"]>[data-role="display"]'), 367 c = void 0 === c || c; if (b.removeClass("disabled"), f.on("click", gj.tree.methods.expanderClickHandler(a)), g.on("click", gj.tree.methods.displayClickHandler(a)), gj.tree.events.enable(a, b), c) 368 for (e = b.find("ul>li"), d = 0; d < e.length; d++) gj.tree.methods.enableNode(a, $(e[d]), c) }, disableAll: function(a) { var b, c = a.find("ul>li"); for (b = 0; b < c.length; b++) gj.tree.methods.disableNode(a, $(c[b]), !0); return a }, disableNode: function(a, b, c) { var d, e, f = b.find('>[data-role="wrapper"]>[data-role="expander"]'), 369 g = b.find('>[data-role="wrapper"]>[data-role="display"]'), 370 c = void 0 === c || c; if (b.addClass("disabled"), f.off("click"), g.off("click"), gj.tree.events.disable(a, b), c) 371 for (e = b.find("ul>li"), d = 0; d < e.length; d++) gj.tree.methods.disableNode(a, $(e[d]), c) }, destroy: function(a) { return a.data() && (gj.tree.events.destroying(a), a.xhr && a.xhr.abort(), a.off(), a.removeData(), a.removeAttr("data-type"), a.removeClass().empty()), a }, pathFinder: function(a, b, c, d) { var e, f = !1; for (e = 0; e < b.length; e++) { if (b[e].id == c) { f = !0; break } if (gj.tree.methods.pathFinder(a, b[e][a.childrenField], c, d)) { d.push(b[e].data[a.textField]), f = !0; break } } return f } }, gj.tree.widget = function(a, b) { var c = this, 372 d = gj.tree.methods; return c.reload = function(a) { return gj.widget.prototype.reload.call(this, a) }, c.render = function(a) { return d.render(this, a) }, c.addNode = function(a, b, c) { return d.addNode(this, a, b, c) }, c.removeNode = function(a) { return d.remove(this, a) }, c.updateNode = function(a, b) { return d.update(this, a, b) }, c.destroy = function() { return d.destroy(this) }, c.expand = function(a, b) { return d.expand(this, a, b) }, c.collapse = function(a, b) { return d.collapse(this, a, b) }, c.expandAll = function() { return d.expandAll(this) }, c.collapseAll = function() { return d.collapseAll(this) }, c.getDataById = function(a) { return d.getDataById(this, a, this.data("records")) }, c.getDataByText = function(a) { return d.getDataByText(this, a, this.data("records")) }, c.getNodeById = function(a) { return d.getNodeById(this.children("ul"), a) }, c.getNodeByText = function(a) { return d.getNodeByText(this.children("ul"), a) }, c.getAll = function() { return this.data("records") }, c.select = function(a) { return d.select(this, a) }, c.unselect = function(a) { return d.unselect(this, a) }, c.selectAll = function() { return d.selectAll(this) }, c.unselectAll = function() { return d.unselectAll(this) }, c.getSelections = function() { return d.getSelections(this.children("ul")) }, c.getChildren = function(a, b) { return d.getChildren(this, a, b) }, c.parents = function(a) { var b = [], 373 c = this.data(); return d.pathFinder(c, c.records, a, b), b.reverse() }, c.enable = function(a, b) { return d.enableNode(this, a, b) }, c.enableAll = function() { return d.enableAll(this) }, c.disable = function(a, b) { return d.disableNode(this, a, b) }, c.disableAll = function() { return d.disableAll(this) }, $.extend(a, c), "tree" !== a.attr("data-type") && d.init.call(a, b), a }, gj.tree.widget.prototype = new gj.widget, gj.tree.widget.constructor = gj.tree.widget, 374 function(a) { a.fn.tree = function(a) { var b; if (this && this.length) { if ("object" != typeof a && a) { if (b = new gj.tree.widget(this, null), b[a]) return b[a].apply(this, Array.prototype.slice.call(arguments, 1)); throw "Method " + a + " does not exist." } return new gj.tree.widget(this, a) } } }(jQuery), gj.tree.plugins.checkboxes = { config: { base: { checkboxes: void 0, checkedField: "checked", cascadeCheck: !0 } }, private: { dataBound: function(a) { var b; 375 a.data("cascadeCheck") && (b = a.find('li[data-role="node"]'), $.each(b, function() { var a = $(this), 376 b = a.find('[data-role="checkbox"] input[type="checkbox"]').checkbox("state"); "checked" === b && (gj.tree.plugins.checkboxes.private.updateChildrenState(a, b), gj.tree.plugins.checkboxes.private.updateParentState(a, b)) })) }, nodeDataBound: function(a, b, c, d) { var e, f, g, h, i; 377 0 === b.find('> [data-role="wrapper"] > [data-role="checkbox"]').length && (e = a.data(), f = b.find('> [data-role="wrapper"] > [data-role="expander"]'), g = $('<input type="checkbox"/>'), h = $('<span data-role="checkbox"></span>').append(g), i = void 0 !== d[e.disabledField] && "true" === d[e.disabledField].toString().toLowerCase(), g = g.checkbox({ uiLibrary: e.uiLibrary, iconsLibrary: e.iconsLibrary, change: function(c, e) { gj.tree.plugins.checkboxes.events.checkboxChange(a, b, d, g.state()) } }), i && g.prop("disabled", !0), d[e.checkedField] && g.state("checked"), g.on("click", function(a) { var b = g.closest("li"), 378 c = g.state(); 379 e.cascadeCheck && (gj.tree.plugins.checkboxes.private.updateChildrenState(b, c), gj.tree.plugins.checkboxes.private.updateParentState(b, c)) }), f.after(h)) }, updateParentState: function(a, b) { var c, d, e, f, g, h; 380 c = a.parent("ul").parent("li"), 1 === c.length && (d = a.parent("ul").parent("li").find('> [data-role="wrapper"] > [data-role="checkbox"] input[type="checkbox"]'), e = a.siblings().find('> [data-role="wrapper"] > span[data-role="checkbox"] input[type="checkbox"]'), f = "checked" === b, g = "unchecked" === b, h = "indeterminate", $.each(e, function() { var a = $(this).checkbox("state"); 381 f && "checked" !== a && (f = !1), g && "unchecked" !== a && (g = !1) }), f && !g && (h = "checked"), !f && g && (h = "unchecked"), d.checkbox("state", h), gj.tree.plugins.checkboxes.private.updateParentState(c, d.checkbox("state"))) }, updateChildrenState: function(a, b) { var c = a.find('ul li [data-role="wrapper"] [data-role="checkbox"] input[type="checkbox"]'); 382 c.length > 0 && $.each(c, function() { $(this).checkbox("state", b) }) }, update: function(a, b, c) { var d = b.find('[data-role="checkbox"] input[type="checkbox"]').first(); 383 $(d).checkbox("state", c), a.data().cascadeCheck && (gj.tree.plugins.checkboxes.private.updateChildrenState(b, c), gj.tree.plugins.checkboxes.private.updateParentState(b, c)) } }, public: { getCheckedNodes: function() { var a = [], 384 b = this.find('li [data-role="checkbox"] input[type="checkbox"]'); return $.each(b, function() { var b = $(this); "checked" === b.checkbox("state") && a.push(b.closest("li").data("id")) }), a }, checkAll: function() { var a = this.find('li [data-role="checkbox"] input[type="checkbox"]'); return $.each(a, function() { $(this).checkbox("state", "checked") }), this }, uncheckAll: function() { var a = this.find('li [data-role="checkbox"] input[type="checkbox"]'); return $.each(a, function() { $(this).checkbox("state", "unchecked") }), this }, check: function(a) { return gj.tree.plugins.checkboxes.private.update(this, a, "checked"), this }, uncheck: function(a) { return gj.tree.plugins.checkboxes.private.update(this, a, "unchecked"), this } }, events: { checkboxChange: function(a, b, c, d) { return a.triggerHandler("checkboxChange", [b, c, d]) } }, configure: function(a) { a.data("checkboxes") && gj.checkbox && ($.extend(!0, a, gj.tree.plugins.checkboxes.public), a.on("nodeDataBound", function(b, c, d, e) { gj.tree.plugins.checkboxes.private.nodeDataBound(a, c, d, e) }), a.on("dataBound", function() { gj.tree.plugins.checkboxes.private.dataBound(a) }), a.on("enable", function(a, b) { b.find('>[data-role="wrapper"]>[data-role="checkbox"] input[type="checkbox"]').prop("disabled", !1) }), a.on("disable", function(a, b) { b.find('>[data-role="wrapper"]>[data-role="checkbox"] input[type="checkbox"]').prop("disabled", !0) })) } }, gj.tree.plugins.dragAndDrop = { config: { base: { dragAndDrop: void 0, style: { dragEl: "gj-tree-drag-el gj-tree-md-drag-el", dropAsChildIcon: "gj-cursor-pointer gj-icon plus", dropAbove: "gj-tree-drop-above", dropBelow: "gj-tree-drop-below" } }, bootstrap: { style: { dragEl: "gj-tree-drag-el gj-tree-bootstrap-drag-el", dropAsChildIcon: "glyphicon glyphicon-plus", dropAbove: "drop-above", dropBelow: "drop-below" } }, bootstrap4: { style: { dragEl: "gj-tree-drag-el gj-tree-bootstrap-drag-el", dropAsChildIcon: "gj-cursor-pointer gj-icon plus", dropAbove: "drop-above", dropBelow: "drop-below" } } }, private: { nodeDataBound: function(a, b) { var c = b.children('[data-role="wrapper"]'), 385 d = b.find('>[data-role="wrapper"]>[data-role="display"]'); 386 c.length && d.length && (d.on("mousedown", gj.tree.plugins.dragAndDrop.private.createNodeMouseDownHandler(a)), d.on("mousemove", gj.tree.plugins.dragAndDrop.private.createNodeMouseMoveHandler(a, b, d)), d.on("mouseup", gj.tree.plugins.dragAndDrop.private.createNodeMouseUpHandler(a))) }, createNodeMouseDownHandler: function(a) { return function(b) { a.data("dragReady", !0) } }, createNodeMouseUpHandler: function(a) { return function(b) { a.data("dragReady", !1) } }, createNodeMouseMoveHandler: function(a, b, c) { return function(d) { if (a.data("dragReady")) { var e, f, g, h, i = a.data(); 387 a.data("dragReady", !1), e = c.clone().wrap('<div data-role="wrapper"/>').closest("div").wrap('<li class="' + i.style.item + '" />').closest("li").wrap('<ul class="' + i.style.list + '" />').closest("ul"), $("body").append(e), e.attr("data-role", "draggable-clone").addClass("gj-unselectable").addClass(i.style.dragEl), e.find('[data-role="wrapper"]').prepend('<span data-role="indicator" />'), e.draggable({ drag: gj.tree.plugins.dragAndDrop.private.createDragHandler(a, b, c), stop: gj.tree.plugins.dragAndDrop.private.createDragStopHandler(a, b, c) }), f = c.parent(), g = c.offset().top, g -= parseInt(f.css("border-top-width")) + parseInt(f.css("margin-top")) + parseInt(f.css("padding-top")), h = c.offset().left, h -= parseInt(f.css("border-left-width")) + parseInt(f.css("margin-left")) + parseInt(f.css("padding-left")), h -= e.find('[data-role="indicator"]').outerWidth(!0), e.css({ position: "absolute", top: g, left: h, width: c.outerWidth(!0) }), "true" === c.attr("data-droppable") && c.droppable("destroy"), gj.tree.plugins.dragAndDrop.private.getTargetDisplays(a, b, c).each(function() { var a = $(this); "true" === a.attr("data-droppable") && a.droppable("destroy"), a.droppable() }), gj.tree.plugins.dragAndDrop.private.getTargetDisplays(a, b).each(function() { var a = $(this); "true" === a.attr("data-droppable") && a.droppable("destroy"), a.droppable() }), e.trigger("mousedown") } } }, getTargetDisplays: function(a, b, c) { return a.find('[data-role="display"]').not(c).not(b.find('[data-role="display"]')) }, getTargetWrappers: function(a, b) { return a.find('[data-role="wrapper"]').not(b.find('[data-role="wrapper"]')) }, createDragHandler: function(a, b, c) { var d = gj.tree.plugins.dragAndDrop.private.getTargetDisplays(a, b, c), 388 e = gj.tree.plugins.dragAndDrop.private.getTargetWrappers(a, b), 389 f = a.data(); return function(a, b, c) { var g = $(this), 390 h = !1; 391 d.each(function() { var a, b = $(this); if (b.droppable("isOver", c)) return a = g.find('[data-role="indicator"]'), f.style.dropAsChildIcon ? a.addClass(f.style.dropAsChildIcon) : a.text("+"), h = !0, !1; 392 g.find('[data-role="indicator"]').removeClass(f.style.dropAsChildIcon).empty() }), e.each(function() { var a, b = $(this);!h && b.droppable("isOver", c) ? (a = b.position().top + b.outerHeight() / 2, c.y < a ? b.addClass(f.style.dropAbove).removeClass(f.style.dropBelow) : b.addClass(f.style.dropBelow).removeClass(f.style.dropAbove)) : b.removeClass(f.style.dropAbove).removeClass(f.style.dropBelow) }) } }, createDragStopHandler: function(a, b, c) { var d = gj.tree.plugins.dragAndDrop.private.getTargetDisplays(a, b, c), 393 e = gj.tree.plugins.dragAndDrop.private.getTargetWrappers(a, b), 394 f = a.data(); return function(c, g) { var h, i, j, k, l = !1; 395 $(this).draggable("destroy").remove(), d.each(function() { var c, d = $(this); if (d.droppable("isOver", g)) return i = d.closest("li"), j = b.parent("ul").parent("li"), c = i.children("ul"), 0 === c.length && (c = $("<ul />").addClass(f.style.list), i.append(c)), !1 !== gj.tree.plugins.dragAndDrop.events.nodeDrop(a, b.data("id"), i.data("id"), c.children("li").length + 1) && (c.append(b), h = a.getDataById(b.data("id")), gj.tree.methods.removeDataById(a, b.data("id"), f.records), k = a.getDataById(c.parent().data("id")), void 0 === k[f.childrenField] && (k[f.childrenField] = []), k[f.childrenField].push(h), gj.tree.plugins.dragAndDrop.private.refresh(a, b, i, j)), l = !0, !1; 396 d.droppable("destroy") }), l || e.each(function() { var c, d, e, k = $(this); if (k.droppable("isOver", g)) return i = k.closest("li"), j = b.parent("ul").parent("li"), c = g.y < k.position().top + k.outerHeight() / 2, e = b.data("id"), d = i.prevAll('li:not([data-id="' + e + '"])').length + (c ? 1 : 2), !1 !== gj.tree.plugins.dragAndDrop.events.nodeDrop(a, e, i.parent("ul").parent("li").data("id"), d) && (h = a.getDataById(b.data("id")), gj.tree.methods.removeDataById(a, b.data("id"), f.records), a.getDataById(i.parent().data("id"))[f.childrenField].splice(i.index() + (c ? 0 : 1), 0, h), c ? b.insertBefore(i) : b.insertAfter(i), gj.tree.plugins.dragAndDrop.private.refresh(a, b, i, j)), !1; 397 k.droppable("destroy") }) } }, refresh: function(a, b, c, d) { var e = a.data(); 398 gj.tree.plugins.dragAndDrop.private.refreshNode(a, c), gj.tree.plugins.dragAndDrop.private.refreshNode(a, d), gj.tree.plugins.dragAndDrop.private.refreshNode(a, b), b.find('li[data-role="node"]').each(function() { gj.tree.plugins.dragAndDrop.private.refreshNode(a, $(this)) }), c.children('[data-role="wrapper"]').removeClass(e.style.dropAbove).removeClass(e.style.dropBelow) }, refreshNode: function(a, b) { var c = b.children('[data-role="wrapper"]'), 399 d = c.children('[data-role="expander"]'), 400 e = c.children('[data-role="spacer"]'), 401 f = b.children("ul"), 402 g = a.data(), 403 h = b.parentsUntil('[data-type="tree"]', "ul").length; 404 f.length && f.children().length ? f.is(":visible") ? d.empty().append(g.icons.collapse) : d.empty().append(g.icons.expand) : d.empty(), c.removeClass(g.style.dropAbove).removeClass(g.style.dropBelow), e.css("width", g.indentation * (h - 1)) } }, public: {}, events: { nodeDrop: function(a, b, c, d) { return a.triggerHandler("nodeDrop", [b, c, d]) } }, configure: function(a) { $.extend(!0, a, gj.tree.plugins.dragAndDrop.public), a.data("dragAndDrop") && gj.draggable && gj.droppable && a.on("nodeDataBound", function(b, c) { gj.tree.plugins.dragAndDrop.private.nodeDataBound(a, c) }) } }, gj.tree.plugins.lazyLoading = { config: { base: { paramNames: { parentId: "parentId" }, lazyLoading: !1 } }, private: { nodeDataBound: function(a, b, c, d) { var e = a.data(), 405 f = b.find('> [data-role="wrapper"] > [data-role="expander"]'); 406 d.hasChildren && f.empty().append(e.icons.expand) }, createDoneHandler: function(a, b) { return function(c) { var d, e, f, g = a.data(); if ("string" == typeof c && JSON && (c = JSON.parse(c)), c && c.length) { for (f = b.children("ul"), 0 === f.length && (f = $("<ul />").addClass(g.style.list), b.append(f)), d = 0; d < c.length; d++) a.addNode(c[d], f); 407 e = b.find('>[data-role="wrapper"]>[data-role="expander"]'), e.attr("data-mode", "open"), e.empty().append(g.icons.collapse), gj.tree.events.dataBound(a) } } }, expand: function(a, b, c) { var d, e = a.data(), 408 f = {}, 409 g = b.find(">ul>li"); 410 g && g.length || "string" == typeof e.dataSource && (f[e.paramNames.parentId] = c, d = { url: e.dataSource, data: f }, a.xhr && a.xhr.abort(), a.xhr = $.ajax(d).done(gj.tree.plugins.lazyLoading.private.createDoneHandler(a, b)).fail(a.createErrorHandler())) } }, public: {}, events: {}, configure: function(a, b, c) { c.lazyLoading && (a.on("nodeDataBound", function(b, c, d, e) { gj.tree.plugins.lazyLoading.private.nodeDataBound(a, c, d, e) }), a.on("expand", function(b, c, d) { gj.tree.plugins.lazyLoading.private.expand(a, c, d) })) } }, gj.checkbox = { plugins: {} }, gj.checkbox.config = { base: { uiLibrary: "materialdesign", iconsLibrary: "materialicons", style: { wrapperCssClass: "gj-checkbox-md", spanCssClass: void 0 } }, bootstrap: { style: { wrapperCssClass: "gj-checkbox-bootstrap" }, iconsLibrary: "glyphicons" }, bootstrap4: { style: { wrapperCssClass: "gj-checkbox-bootstrap gj-checkbox-bootstrap-4" }, iconsLibrary: "materialicons" }, materialicons: { style: { iconsCssClass: "gj-checkbox-material-icons", spanCssClass: "gj-icon" } }, glyphicons: { style: { iconsCssClass: "gj-checkbox-glyphicons", spanCssClass: "" } }, fontawesome: { style: { iconsCssClass: "gj-checkbox-fontawesome", spanCssClass: "fa" } } }, gj.checkbox.methods = { init: function(a) { var b = this; return gj.widget.prototype.init.call(this, a, "checkbox"), b.attr("data-checkbox", "true"), gj.checkbox.methods.initialize(b), b }, initialize: function(a) { var b, c, d = a.data(); 411 d.style.wrapperCssClass && (b = $('<label class="' + d.style.wrapperCssClass + " " + d.style.iconsCssClass + '"></label>'), a.attr("id") && b.attr("for", a.attr("id")), a.wrap(b), c = $("<span />"), d.style.spanCssClass && c.addClass(d.style.spanCssClass), a.parent().append(c)) }, state: function(a, b) { return b ? ("checked" === b ? (a.prop("indeterminate", !1), a.prop("checked", !0)) : "unchecked" === b ? (a.prop("indeterminate", !1), a.prop("checked", !1)) : "indeterminate" === b && (a.prop("checked", !0), a.prop("indeterminate", !0)), gj.checkbox.events.change(a, b), a) : b = a.prop("indeterminate") ? "indeterminate" : a.prop("checked") ? "checked" : "unchecked" }, toggle: function(a) { return "checked" == a.state() ? a.state("unchecked") : a.state("checked"), a }, destroy: function(a) { return "true" === a.attr("data-checkbox") && (a.removeData(), a.removeAttr("data-guid"), a.removeAttr("data-checkbox"), a.off(), a.next("span").remove(), a.unwrap()), a } }, gj.checkbox.events = { change: function(a, b) { return a.triggerHandler("change", [b]) } }, gj.checkbox.widget = function(a, b) { var c = this, 412 d = gj.checkbox.methods; return c.toggle = function() { return d.toggle(this) }, c.state = function(a) { return d.state(this, a) }, c.destroy = function() { return d.destroy(this) }, $.extend(a, c), "true" !== a.attr("data-checkbox") && d.init.call(a, b), a }, gj.checkbox.widget.prototype = new gj.widget, gj.checkbox.widget.constructor = gj.checkbox.widget, 413 function(a) { a.fn.checkbox = function(a) { var b; if (this && this.length) { if ("object" != typeof a && a) { if (b = new gj.checkbox.widget(this, null), b[a]) return b[a].apply(this, Array.prototype.slice.call(arguments, 1)); throw "Method " + a + " does not exist." } return new gj.checkbox.widget(this, a) } } }(jQuery), gj.editor = { plugins: {}, messages: {} }, gj.editor.config = { base: { height: 300, width: void 0, uiLibrary: "materialdesign", iconsLibrary: "materialicons", locale: "en-us", buttons: void 0, style: { wrapper: "gj-editor gj-editor-md", buttonsGroup: "gj-button-md-group", button: "gj-button-md", buttonActive: "active" } }, bootstrap: { style: { wrapper: "gj-editor gj-editor-bootstrap", buttonsGroup: "btn-group", button: "btn btn-default gj-cursor-pointer", buttonActive: "active" } }, bootstrap4: { style: { wrapper: "gj-editor gj-editor-bootstrap", buttonsGroup: "btn-group", button: "btn btn-outline-secondary gj-cursor-pointer", buttonActive: "active" } }, materialicons: { icons: { bold: '<i class="gj-icon bold" />', italic: '<i class="gj-icon italic" />', strikethrough: '<i class="gj-icon strikethrough" />', underline: '<i class="gj-icon underlined" />', listBulleted: '<i class="gj-icon list-bulleted" />', listNumbered: '<i class="gj-icon list-numbered" />', indentDecrease: '<i class="gj-icon indent-decrease" />', indentIncrease: '<i class="gj-icon indent-increase" />', alignLeft: '<i class="gj-icon align-left" />', alignCenter: '<i class="gj-icon align-center" />', alignRight: '<i class="gj-icon align-right" />', alignJustify: '<i class="gj-icon align-justify" />', undo: '<i class="gj-icon undo" />', redo: '<i class="gj-icon redo" />' } }, fontawesome: { icons: { bold: '<i class="fa fa-bold" aria-hidden="true"></i>', italic: '<i class="fa fa-italic" aria-hidden="true"></i>', strikethrough: '<i class="fa fa-strikethrough" aria-hidden="true"></i>', underline: '<i class="fa fa-underline" aria-hidden="true"></i>', listBulleted: '<i class="fa fa-list-ul" aria-hidden="true"></i>', listNumbered: '<i class="fa fa-list-ol" aria-hidden="true"></i>', indentDecrease: '<i class="fa fa-indent" aria-hidden="true"></i>', indentIncrease: '<i class="fa fa-outdent" aria-hidden="true"></i>', alignLeft: '<i class="fa fa-align-left" aria-hidden="true"></i>', alignCenter: '<i class="fa fa-align-center" aria-hidden="true"></i>', alignRight: '<i class="fa fa-align-right" aria-hidden="true"></i>', alignJustify: '<i class="fa fa-align-justify" aria-hidden="true"></i>', undo: '<i class="fa fa-undo" aria-hidden="true"></i>', redo: '<i class="fa fa-repeat" aria-hidden="true"></i>' } } }, gj.editor.methods = { init: function(a) { return gj.widget.prototype.init.call(this, a, "editor"), this.attr("data-editor", "true"), gj.editor.methods.initialize(this), this }, initialize: function(a) { var b, c, d, e, f, g = this, 414 h = a.data(); if (a.hide(), "wrapper" !== a[0].parentElement.attributes.role && (d = document.createElement("div"), d.setAttribute("role", "wrapper"), a[0].parentNode.insertBefore(d, a[0]), d.appendChild(a[0])), gj.editor.methods.localization(h), $(d).addClass(h.style.wrapper), h.width && $(d).width(h.width), e = $(d).children('div[role="body"]'), 0 === e.length && (e = $('<div role="body"></div>'), $(d).append(e), a[0].innerText && (e[0].innerHTML = a[0].innerText)), e.attr("contenteditable", !0), e.on("keydown", function(b) { var c = event.keyCode || event.charCode;!1 === gj.editor.events.changing(a) && 8 !== c && 46 !== c && b.preventDefault() }), e.on("mouseup keyup mouseout cut paste", function(b) { g.updateToolbar(a, f), gj.editor.events.changed(a), a.html(e.html()) }), f = $(d).children('div[role="toolbar"]'), 0 === f.length) { f = $('<div role="toolbar"></div>'), e.before(f); for (var i in h.buttons) { b = $("<div />").addClass(h.style.buttonsGroup); for (var j in h.buttons[i]) c = $(h.buttons[i][j]), c.on("click", function() { gj.editor.methods.executeCmd(a, e, f, $(this)) }), b.append(c); 415 f.append(b) } } 416 e.height(h.height - gj.core.height(f[0], !0)) }, localization: function(a) { var b = gj.editor.messages[a.locale]; 417 void 0 === a.buttons && (a.buttons = [ 418 ['<button type="button" class="' + a.style.button + '" title="' + b.bold + '" role="bold">' + a.icons.bold + "</button>", '<button type="button" class="' + a.style.button + '" title="' + b.italic + '" role="italic">' + a.icons.italic + "</button>", '<button type="button" class="' + a.style.button + '" title="' + b.strikethrough + '" role="strikethrough">' + a.icons.strikethrough + "</button>", '<button type="button" class="' + a.style.button + '" title="' + b.underline + '" role="underline">' + a.icons.underline + "</button>"], 419 ['<button type="button" class="' + a.style.button + '" title="' + b.listBulleted + '" role="insertunorderedlist">' + a.icons.listBulleted + "</button>", '<button type="button" class="' + a.style.button + '" title="' + b.listNumbered + '" role="insertorderedlist">' + a.icons.listNumbered + "</button>", '<button type="button" class="' + a.style.button + '" title="' + b.indentDecrease + '" role="outdent">' + a.icons.indentDecrease + "</button>", '<button type="button" class="' + a.style.button + '" title="' + b.indentIncrease + '" role="indent">' + a.icons.indentIncrease + "</button>"], 420 ['<button type="button" class="' + a.style.button + '" title="' + b.alignLeft + '" role="justifyleft">' + a.icons.alignLeft + "</button>", '<button type="button" class="' + a.style.button + '" title="' + b.alignCenter + '" role="justifycenter">' + a.icons.alignCenter + "</button>", '<button type="button" class="' + a.style.button + '" title="' + b.alignRight + '" role="justifyright">' + a.icons.alignRight + "</button>", '<button type="button" class="' + a.style.button + '" title="' + b.alignJustify + '" role="justifyfull">' + a.icons.alignJustify + "</button>"], 421 ['<button type="button" class="' + a.style.button + '" title="' + b.undo + '" role="undo">' + a.icons.undo + "</button>", '<button type="button" class="' + a.style.button + '" title="' + b.redo + '" role="redo">' + a.icons.redo + "</button>"] 422 ]) }, updateToolbar: function(a, b) { var c = a.data(); 423 $buttons = b.find("[role]").each(function() { var a = $(this), 424 b = a.attr("role"); 425 b && document.queryCommandEnabled(b) && "true" === document.queryCommandValue(b) ? a.addClass(c.style.buttonActive) : a.removeClass(c.style.buttonActive) }) }, executeCmd: function(a, b, c, d) { b.focus(), document.execCommand(d.attr("role"), !1), gj.editor.methods.updateToolbar(a, c) }, content: function(a, b) { var c = a.parent().children('div[role="body"]'); return void 0 === b ? c.html() : c.html(b) }, destroy: function(a) { var b; return "true" === a.attr("data-editor") && (b = a.parent(), b.children('div[role="body"]').remove(), b.children('div[role="toolbar"]').remove(), a.unwrap(), a.removeData(), a.removeAttr("data-guid"), a.removeAttr("data-editor"), a.off(), a.show()), a } }, gj.editor.events = { changing: function(a) { return a.triggerHandler("changing") }, changed: function(a) { return a.triggerHandler("changed") } }, gj.editor.widget = function(a, b) { var c = this, 426 d = gj.editor.methods; return c.content = function(a) { return d.content(this, a) }, c.destroy = function() { return d.destroy(this) }, $.extend(a, c), "true" !== a.attr("data-editor") && d.init.call(a, b), a }, gj.editor.widget.prototype = new gj.widget, gj.editor.widget.constructor = gj.editor.widget, 427 function(a) { a.fn.editor = function(a) { var b; if (this && this.length) { if ("object" != typeof a && a) { if (b = new gj.editor.widget(this, null), b[a]) return b[a].apply(this, Array.prototype.slice.call(arguments, 1)); throw "Method " + a + " does not exist." } return new gj.editor.widget(this, a) } } }(jQuery), gj.editor.messages["en-us"] = { bold: "Bold", italic: "Italic", strikethrough: "Strikethrough", underline: "Underline", listBulleted: "List Bulleted", listNumbered: "List Numbered", indentDecrease: "Indent Decrease", indentIncrease: "Indent Increase", alignLeft: "Align Left", alignCenter: "Align Center", alignRight: "Align Right", alignJustify: "Align Justify", undo: "Undo", redo: "Redo" }, gj.dropdown = { plugins: {} }, gj.dropdown.config = { base: { dataSource: void 0, textField: "text", valueField: "value", selectedField: "selected", width: void 0, maxHeight: "auto", placeholder: void 0, fontSize: void 0, uiLibrary: "materialdesign", iconsLibrary: "materialicons", icons: { dropdown: '<i class="gj-icon arrow-dropdown" />', dropup: '<i class="gj-icon arrow-dropup" />' }, style: { wrapper: "gj-dropdown gj-dropdown-md gj-unselectable", list: "gj-list gj-list-md gj-dropdown-list-md", active: "gj-list-md-active" } }, bootstrap: { style: { wrapper: "gj-dropdown gj-dropdown-bootstrap gj-dropdown-bootstrap-3 gj-unselectable", presenter: "btn btn-default", list: "gj-list gj-list-bootstrap gj-dropdown-list-bootstrap list-group", item: "list-group-item", active: "active" }, iconsLibrary: "glyphicons" }, bootstrap4: { style: { wrapper: "gj-dropdown gj-dropdown-bootstrap gj-dropdown-bootstrap-4 gj-unselectable", presenter: "btn btn-outline-secondary", list: "gj-list gj-list-bootstrap gj-dropdown-list-bootstrap list-group", item: "list-group-item", active: "active" } }, materialicons: { style: { expander: "gj-dropdown-expander-mi" } }, fontawesome: { icons: { dropdown: '<i class="fa fa-caret-down" aria-hidden="true"></i>', dropup: '<i class="fa fa-caret-up" aria-hidden="true"></i>' }, style: { expander: "gj-dropdown-expander-fa" } }, glyphicons: { icons: { dropdown: '<span class="caret"></span>', dropup: '<span class="dropup"><span class="caret" ></span></span>' }, style: { expander: "gj-dropdown-expander-glyphicons" } } }, gj.dropdown.methods = { init: function(a) { return gj.widget.prototype.init.call(this, a, "dropdown"), this.attr("data-dropdown", "true"), gj.dropdown.methods.initialize(this), this }, getHTMLConfig: function() { var a = gj.widget.prototype.getHTMLConfig.call(this), 428 b = this[0].attributes; return b.placeholder && (a.placeholder = b.placeholder.value), a }, initialize: function(a) { var b = a.data(), 429 c = a.parent('div[role="wrapper"]'), 430 d = $('<span role="display"></span>'), 431 e = $('<span role="expander">' + b.icons.dropdown + "</span>").addClass(b.style.expander), 432 f = $('<button role="presenter" type="button"></button>').addClass(b.style.presenter), 433 g = $('<ul role="list" class="' + b.style.list + '"></ul>').attr("guid", a.attr("data-guid")); 434 0 === c.length ? (c = $('<div role="wrapper" />').addClass(b.style.wrapper), a.wrap(c)) : c.addClass(b.style.wrapper), b.fontSize && f.css("font-size", b.fontSize), f.on("click", function(b) { g.is(":visible") ? gj.dropdown.methods.close(a, g) : gj.dropdown.methods.open(a, g) }), f.on("blur", function(b) { setTimeout(function() { gj.dropdown.methods.close(a, g) }, 500) }), f.append(d).append(e), a.hide(), a.after(f), $("body").append(g), g.hide(), a.reload() }, setListPosition: function(a, b, c) { var d, e, f, g, h = a.getBoundingClientRect(), 435 i = window.scrollY || window.pageYOffset || 0; 436 window.scrollX || window.pageXOffset; 437 b.style.overflow = "", b.style.overflowX = "", b.style.height = "", gj.core.setChildPosition(a, b), d = gj.core.height(b, !0), g = b.getBoundingClientRect(), e = gj.core.height(a, !0), "auto" === c.maxHeight ? h.top < g.top ? h.top + d + e > window.innerHeight && (f = window.innerHeight - h.top - e - 3) : h.top - d - 3 > 0 ? b.style.top = Math.round(h.top + i - d - 3) + "px" : (b.style.top = i + "px", f = h.top - 3) : !isNaN(c.maxHeight) && c.maxHeight < d && (f = c.maxHeight), f && (b.style.overflow = "scroll", b.style.overflowX = "hidden", b.style.height = f + "px") }, useHtmlDataSource: function(a, b) { var c, d, e = [], 438 f = a.find("option"); for (c = 0; c < f.length; c++) d = {}, d[b.valueField] = f[c].value, d[b.textField] = f[c].innerHTML, d[b.selectedField] = a[0].value === f[c].value, e.push(d); 439 b.dataSource = e }, filter: function(a) { var b, c, d = a.data(); if (d.dataSource) { if ("string" == typeof d.dataSource[0]) 440 for (b = 0; b < d.dataSource.length; b++) c = {}, c[d.valueField] = d.dataSource[b], c[d.textField] = d.dataSource[b], d.dataSource[b] = c } else d.dataSource = []; return d.dataSource }, render: function(a, b) { var c = [], 441 d = a.data(), 442 e = a.parent(), 443 f = $("body").children('[role="list"][guid="' + a.attr("data-guid") + '"]'), 444 g = e.children('[role="presenter"]'), 445 h = (g.children('[role="expander"]'), g.children('[role="display"]')); if (a.data("records", b), a.empty(), f.empty(), b && b.length) 446 if ($.each(b, function() { var b, e = this[d.valueField], 447 g = this[d.textField], 448 h = this[d.selectedField] && "true" === this[d.selectedField].toString().toLowerCase(); 449 b = $('<li value="' + e + '"><div data-role="wrapper"><span data-role="display">' + g + "</span></div></li>"), b.addClass(d.style.item), b.on("click", function(b) { gj.dropdown.methods.select(a, e) }), f.append(b), a.append('<option value="' + e + '">' + g + "</option>"), h && c.push(e) }), 0 === c.length) a.prepend('<option value=""></option>'), a[0].selectedIndex = 0, d.placeholder && (h[0].innerHTML = '<span class="placeholder">' + d.placeholder + "</span>"); 450 else 451 for (i = 0; i < c.length; i++) gj.dropdown.methods.select(a, c[i]); 452 return d.width && (e.css("width", d.width), g.css("width", d.width)), d.fontSize && f.children("li").css("font-size", d.fontSize), gj.dropdown.events.dataBound(a), a }, open: function(a, b) { var c = a.data(), 453 d = a.parent().find('[role="expander"]'), 454 e = a.parent().find('[role="presenter"]'), 455 f = gj.core.getScrollParent(a[0]); 456 b.css("width", gj.core.width(e[0])), b.show(), gj.dropdown.methods.setListPosition(e[0], b[0], c), d.html(c.icons.dropup), f && (c.parentScrollHandler = function() { gj.dropdown.methods.setListPosition(e[0], b[0], c) }, gj.dropdown.methods.addParentsScrollListener(f, c.parentScrollHandler)) }, close: function(a, b) { var c = a.data(), 457 d = a.parent().find('[role="expander"]'), 458 e = gj.core.getScrollParent(a[0]); 459 d.html(c.icons.dropdown), e && c.parentScrollHandler && gj.dropdown.methods.removeParentsScrollListener(e, c.parentScrollHandler), b.hide() }, addParentsScrollListener: function(a, b) { var c = gj.core.getScrollParent(a.parentNode); 460 a.addEventListener("scroll", b), c && gj.dropdown.methods.addParentsScrollListener(c, b) }, removeParentsScrollListener: function(a, b) { var c = gj.core.getScrollParent(a.parentNode); 461 a.removeEventListener("scroll", b), c && gj.dropdown.methods.removeParentsScrollListener(c, b) }, select: function(a, b) { var c = a.data(), 462 d = $("body").children('[role="list"][guid="' + a.attr("data-guid") + '"]'), 463 e = d.children('li[value="' + b + '"]'), 464 f = a.next('[role="presenter"]').find('[role="display"]'), 465 g = gj.dropdown.methods.getRecordByValue(a, b); return d.children("li").removeClass(c.style.active), g ? (e.addClass(c.style.active), a[0].value = b, f[0].innerHTML = g[c.textField]) : (c.placeholder && (f[0].innerHTML = '<span class="placeholder">' + c.placeholder + "</span>"), a[0].value = ""), gj.dropdown.events.change(a), gj.dropdown.methods.close(a, d), a }, getRecordByValue: function(a, b) { var c, d = a.data(), 466 e = void 0; for (c = 0; c < d.records.length; c++) 467 if (d.records[c][d.valueField] === b) { e = d.records[c]; break } 468 return e }, value: function(a, b) { return void 0 === b ? a.val() : (gj.dropdown.methods.select(a, b), a) }, destroy: function(a) { var b = a.data(), 469 c = a.parent('div[role="wrapper"]'); return b && (a.xhr && a.xhr.abort(), a.off(), a.removeData(), a.removeAttr("data-type").removeAttr("data-guid").removeAttr("data-dropdown"), a.removeClass(), c.length > 0 && (c.children('[role="presenter"]').remove(), c.children('[role="list"]').remove(), a.unwrap()), a.show()), a } }, gj.dropdown.events = { change: function(a) { return a.triggerHandler("change") }, dataBound: function(a) { return a.triggerHandler("dataBound") } }, gj.dropdown.widget = function(a, b) { var c = this, 470 d = gj.dropdown.methods; return c.value = function(a) { return d.value(this, a) }, c.enable = function() { return d.enable(this) }, c.disable = function() { return d.disable(this) }, c.destroy = function() { return d.destroy(this) }, $.extend(a, c), "true" !== a.attr("data-dropdown") && d.init.call(a, b), a }, gj.dropdown.widget.prototype = new gj.widget, gj.dropdown.widget.constructor = gj.dropdown.widget, gj.dropdown.widget.prototype.getHTMLConfig = gj.dropdown.methods.getHTMLConfig, 471 function(a) { a.fn.dropdown = function(a) { var b; if (this && this.length) { if ("object" != typeof a && a) { if (b = new gj.dropdown.widget(this, null), b[a]) return b[a].apply(this, Array.prototype.slice.call(arguments, 1)); throw "Method " + a + " does not exist." } return new gj.dropdown.widget(this, a) } } }(jQuery), gj.datepicker = { plugins: {} }, gj.datepicker.config = { base: { showOtherMonths: !1, selectOtherMonths: !0, width: void 0, minDate: void 0, maxDate: void 0, format: "mm/dd/yyyy", uiLibrary: "materialdesign", iconsLibrary: "materialicons", value: void 0, weekStartDay: 0, disableDates: void 0, disableDaysOfWeek: void 0, calendarWeeks: !1, keyboardNavigation: !0, locale: "en-us", icons: { rightIcon: '<i class="gj-icon">event</i>', previousMonth: '<i class="gj-icon chevron-left"></i>', nextMonth: '<i class="gj-icon chevron-right"></i>' }, fontSize: void 0, size: "default", modal: !1, header: !1, footer: !1, showOnFocus: !0, showRightIcon: !0, style: { modal: "gj-modal", wrapper: "gj-datepicker gj-datepicker-md gj-unselectable", input: "gj-textbox-md", calendar: "gj-picker gj-picker-md datepicker gj-unselectable", footer: "", button: "gj-button-md" } }, bootstrap: { style: { wrapper: "gj-datepicker gj-datepicker-bootstrap gj-unselectable input-group", input: "form-control", calendar: "gj-picker gj-picker-bootstrap datepicker gj-unselectable", footer: "modal
471-footer", button: "btn btn-default" }, iconsLibrary: "glyphicons", showOtherMonths: !0 }, bootstrap4: { style: { wrapper: "gj-datepicker gj-datepicker-bootstrap gj-unselectable input-group", input: "form-control", calendar: "gj-picker gj-picker-bootstrap datepicker gj-unselectable", footer: "modal-footer", button: "btn btn-default" }, showOtherMonths: !0 }, fontawesome: { icons: { rightIcon: '<i class="fa fa-calendar" aria-hidden="true"></i>', previousMonth: '<i class="fa fa-chevron-left" aria-hidden="true"></i>', nextMonth: '<i class="fa fa-chevron-right" aria-hidden="true"></i>' } }, glyphicons: { icons: { rightIcon: '<span class="glyphicon glyphicon-calendar"></span>', previousMonth: '<span class="glyphicon glyphicon-chevron-left"></span>', nextMonth: '<span class="glyphicon glyphicon-chevron-right"></span>' } } }, gj.datepicker.methods = { init: function(a) { return gj.widget.prototype.init.call(this, a, "datepicker"), this.attr("data-datepicker", "true"), gj.datepicker.methods.initialize(this, this.data()), this }, initialize: function(a, b) { var c, d, e = a.parent('div[role="wrapper"]'); 472 0 === e.length ? (e = $('<div role="wrapper" />').addClass(b.style.wrapper), a.wrap(e)) : e.addClass(b.style.wrapper), e = a.parent('div[role="wrapper"]'), b.width && e.css("width", b.width), a.val(b.value).addClass(b.style.input).attr("role", "input"), b.fontSize && a.css("font-size", b.fontSize), "bootstrap" === b.uiLibrary || "bootstrap4" === b.uiLibrary ? "small" === b.size ? (e.addClass("input-group-sm"), a.addClass("form-control-sm")) : "large" === b.size && (e.addClass("input-group-lg"), a.addClass("form-control-lg")) : "small" === b.size ? e.addClass("small") : "large" === b.size && e.addClass("large"), b.showRightIcon && (d = "bootstrap" === b.uiLibrary ? $('<span class="input-group-addon">' + b.icons.rightIcon + "</span>") : "bootstrap4" === b.uiLibrary ? $('<span class="input-group-append"><button class="btn btn-outline-secondary border-left-0" type="button">' + b.icons.rightIcon + "</button></span>") : $(b.icons.rightIcon), d.attr("role", "right-icon"), d.on("click", function(c) { $("body").find('[role="calendar"][guid="' + a.attr("data-guid") + '"]').is(":visible") ? gj.datepicker.methods.close(a) : gj.datepicker.methods.open(a, b) }), e.append(d)), b.showOnFocus && a.on("focus", function() { gj.datepicker.methods.open(a, b) }), c = gj.datepicker.methods.createCalendar(a, b), !0 !== b.footer && (a.on("blur", function() { a.timeout = setTimeout(function() { gj.datepicker.methods.close(a) }, 500) }), c.mousedown(function() { return clearTimeout(a.timeout), document.activeElement !== a[0] && a.focus(), !1 }), c.on("click", function() { clearTimeout(a.timeout), document.activeElement !== a[0] && a.focus() })), b.keyboardNavigation && $(document).on("keydown", gj.datepicker.methods.createKeyDownHandler(a, c, b)) }, createCalendar: function(a, b) { var c, d, e, f, g, h = $('<div role="calendar" type="month"/>').addClass(b.style.calendar).attr("guid", a.attr("data-guid")); return b.fontSize && h.css("font-size", b.fontSize), c = gj.core.parseDate(b.value, b.format, b.locale), !c || isNaN(c.getTime()) ? c = new Date : a.attr("day", c.getFullYear() + "-" + c.getMonth() + "-" + c.getDate()), h.attr("month", c.getMonth()), h.attr("year", c.getFullYear()), gj.datepicker.methods.renderHeader(a, h, b, c), d = $('<div role="body" />
vendor: 45,951 bytes, lines 472-584
472'), h.append(d), b.footer && (e = $('<div role="footer" class="' + b.style.footer + '" />'), f = $('<button class="' + b.style.button + '">' + gj.core.messages[b.locale].cancel + "</button>"), f.on("click", function() { a.close() }), e.append(f), g = $('<button class="' + b.style.button + '">' + gj.core.messages[b.locale].ok + "</button>"), g.on("click", function() { var c, d, e = h.attr("selectedDay"); 473 e ? (d = e.split("-"), c = new Date(d[0], d[1], d[2], h.attr("hour") || 0, h.attr("minute") || 0), gj.datepicker.methods.change(a, h, b, c)) : a.close() }), e.append(g), h.append(e)), h.hide(), $("body").append(h), b.modal && (h.wrapAll('<div role="modal" class="' + b.style.modal + '"/>'), gj.core.center(h)), h }, renderHeader: function(a, b, c, d) { var e, f, g; 474 c.header && (e = $('<div role="header" />'), g = $('<div role="year" />').on("click", function() { gj.datepicker.methods.renderDecade(a, b, c), g.addClass("selected"), f.removeClass("selected") }), g.html(gj.core.formatDate(d, "yyyy", c.locale)), e.append(g), f = $('<div role="date" class="selected" />').on("click", function() { gj.datepicker.methods.renderMonth(a, b, c), f.addClass("selected"), g.removeClass("selected") }), f.html(gj.core.formatDate(d, "ddd, mmm dd", c.locale)), e.append(f), b.append(e)) }, updateHeader: function(a, b, c) { a.find('[role="header"] [role="year"]').removeClass("selected").html(gj.core.formatDate(c, "yyyy", b.locale)), a.find('[role="header"] [role="date"]').addClass("selected").html(gj.core.formatDate(c, "ddd, mmm dd", b.locale)), a.find('[role="header"] [role="hour"]').removeClass("selected").html(gj.core.formatDate(c, "HH", b.locale)), a.find('[role="header"] [role="minute"]').removeClass("selected").html(gj.core.formatDate(c, "MM", b.locale)) }, createNavigation: function(a, b, c, d) { var e, f, g = $("<thead/>"); for (f = $('<div role="navigator" />'), f.append($("<div>" + d.icons.previousMonth + "</div>").on("click", gj.datepicker.methods.prev(a, d))), f.append($('<div role="period"></div>').on("click", gj.datepicker.methods.changePeriod(a, d))), f.append($("<div>" + d.icons.nextMonth + "</div>").on("click", gj.datepicker.methods.next(a, d))), b.append(f), e = $('<tr role="week-days" />'), d.calendarWeeks && e.append("<th><div> </div></th>"), i = d.weekStartDay; i < gj.core.messages[d.locale].weekDaysMin.length; i++) e.append("<th><div>" + gj.core.messages[d.locale].weekDaysMin[i] + "</div></th>"); for (i = 0; i < d.weekStartDay; i++) e.append("<th><div>" + gj.core.messages[d.locale].weekDaysMin[i] + "</div></th>"); 475 g.append(e), c.append(g) }, renderMonth: function(a, b, c) { var d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s = b.children('[role="body"]'), 476 t = $("<table/>"), 477 u = $("<tbody/>"), 478 v = gj.core.messages[c.locale].titleFormat; for (s.off().empty(), gj.datepicker.methods.createNavigation(a, s, t, c), g = parseInt(b.attr("month"), 10), h = parseInt(b.attr("year"), 10), b.attr("type", "month"), v = v.replace("mmmm", gj.core.messages[c.locale].monthNames[g]).replace("yyyy", h), b.find('div[role="period"]').text(v), i = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31), h % 4 == 0 && 1900 != h && (i[1] = 29), j = i[g], k = (new Date(h, g, 1).getDay() + 7 - c.weekStartDay) % 7, d = 0, $row = $("<tr />"), n = gj.datepicker.methods.getPrevMonth(g, h), l = 1; l <= k; l++) f = i[n.month] - k + l, r = new Date(n.year, n.month, f), c.calendarWeeks && 1 === l && $row.append('<td class="calendar-week"><div>' + gj.datepicker.methods.getWeekNumber(r) + "</div></td>"), p = $('<td class="other-month" />'), c.showOtherMonths && (q = $("<div>" + f + "</div>"), p.append(q), c.selectOtherMonths && gj.datepicker.methods.isSelectable(c, r) ? (p.addClass("gj-cursor-pointer").attr("day", f).attr("month", n.month).attr("year", n.year), q.on("click", gj.datepicker.methods.dayClickHandler(a, b, c, r)), q.on("mousedown", function(a) { a.stopPropagation() })) : p.addClass("disabled")), $row.append(p), d++; for (l > 1 && u.append($row), m = new Date, l = 1; l <= j; l++) r = new Date(h, g, l), 0 == d && ($row = $("<tr>"), c.calendarWeeks && $row.append('<td class="calendar-week"><div>' + gj.datepicker.methods.getWeekNumber(r) + "</div></td>")), p = $('<td day="' + l + '" month="' + g + '" year="' + h + '" />'), h === m.getFullYear() && g === m.getMonth() && l === m.getDate() ? p.addClass("today") : p.addClass("current-month"), q = $("<div>" + l + "</div>"), gj.datepicker.methods.isSelectable(c, r) ? (p.addClass("gj-cursor-pointer"), q.on("click", gj.datepicker.methods.dayClickHandler(a, b, c, r)), q.on("mousedown", function(a) { a.stopPropagation() })) : p.addClass("disabled"), p.append(q), $row.append(p), 7 == ++d && (u.append($row), d = 0); for (o = gj.datepicker.methods.getNextMonth(g, h), l = 1; 0 != d; l++) r = new Date(o.year, o.month, l), p = $('<td class="other-month" />'), c.showOtherMonths && (q = $("<div>" + l + "</div>"), c.selectOtherMonths && gj.datepicker.methods.isSelectable(c, r) ? (p.addClass("gj-cursor-pointer").attr("day", l).attr("month", o.month).attr("year", o.year), q.on("click", gj.datepicker.methods.dayClickHandler(a, b, c, r)), q.on("mousedown", function(a) { a.stopPropagation() })) : p.addClass("disabled"), p.append(q)), $row.append(p), 7 == ++d && (u.append($row), d = 0); 479 t.append(u), s.append(t), b.attr("selectedDay") && (e = b.attr("selectedDay").split("-"), r = new Date(e[0], e[1], e[2], b.attr("hour") || 0, b.attr("minute") || 0), b.find('tbody td[day="' + e[2] + '"][month="' + e[1] + '"]').addClass("selected"), gj.datepicker.methods.updateHeader(b, c, r)) }, renderYear: function(a, b, c) { var d, e, f, g, h = b.find('>[role="body"]>table'), 480 i = h.children("tbody"); for (h.children("thead").hide(), d = parseInt(b.attr("year"), 10), b.attr("type", "year"), b.find('div[role="period"]').text(d), i.empty(), e = 0; e < 3; e++) { for ($row = $("<tr />"), f = 4 * e; f <= 4 * e + 3; f++) g = $("<div>" + gj.core.messages[c.locale].monthShortNames[f] + "</div>"), g.on("click", gj.datepicker.methods.selectMonth(a, b, c, f)), $cell = $("<td></td>").append(g), $row.append($cell); 481 i.append($row) } }, renderDecade: function(a, b, c) { var d, e, f, g, h, i = b.find('>[role="body"]>table'), 482 j = i.children("tbody"); for (i.children("thead").hide(), d = parseInt(b.attr("year"), 10), e = d - d % 10, b.attr("type", "decade"), b.find('div[role="period"]').text(e + " - " + (e + 9)), j.empty(), f = e - 1; f <= e + 10; f += 4) { for ($row = $("<tr />"), g = f; g <= f + 3; g++) h = $("<div>" + g + "</div>"), h.on("click", gj.datepicker.methods.selectYear(a, b, c, g)), $cell = $("<td></td>").append(h), $row.append($cell); 483 j.append($row) } }, renderCentury: function(a, b, c) { var d, e, f, g, h, i = b.find('>[role="body"]>table'), 484 j = i.children("tbody"); for (i.children("thead").hide(), d = parseInt(b.attr("year"), 10), e = d - d % 100, b.attr("type", "century"), b.find('div[role="period"]').text(e + " - " + (e + 99)), j.empty(), f = e - 10; f < e + 100; f += 40) { for ($row = $("<tr />"), g = f; g <= f + 30; g += 10) h = $("<div>" + g + "</div>"), h.on("click", gj.datepicker.methods.selectDecade(a, b, c, g)), $cell = $("<td></td>").append(h), $row.append($cell); 485 j.append($row) } }, getWeekNumber: function(a) { var b = new Date(a.valueOf()); 486 b.setDate(b.getDate() + 6), b = new Date(Date.UTC(b.getFullYear(), b.getMonth(), b.getDate())), b.setUTCDate(b.getUTCDate() + 4 - (b.getUTCDay() || 7)); var c = new Date(Date.UTC(b.getUTCFullYear(), 0, 1)); return Math.ceil(((b - c) / 864e5 + 1) / 7) }, getMinDate: function(a) { var b; return a.minDate && ("string" == typeof a.minDate ? b = gj.core.parseDate(a.minDate, a.format, a.locale) : "function" == typeof a.minDate ? "string" == typeof(b = a.minDate()) && (b = gj.core.parseDate(b, a.format, a.locale)) : "function" == typeof a.minDate.getMonth && (b = a.minDate)), b }, getMaxDate: function(a) { var b; return a.maxDate && ("string" == typeof a.maxDate ? b = gj.core.parseDate(a.maxDate, a.format, a.locale) : "function" == typeof a.maxDate ? "string" == typeof(b = a.maxDate()) && (b = gj.core.parseDate(b, a.format, a.locale)) : "function" == typeof a.maxDate.getMonth && (b = a.maxDate)), b }, isSelectable: function(a, b) { var c, d = !0, 487 e = gj.datepicker.methods.getMinDate(a), 488 f = gj.datepicker.methods.getMaxDate(a); if (e && b < e ? d = !1 : f && b > f && (d = !1), d) { if (a.disableDates) 489 if ($.isArray(a.disableDates)) 490 for (c = 0; c < a.disableDates.length; c++) a.disableDates[c] instanceof Date && a.disableDates[c].getTime() === b.getTime() ? d = !1 : "string" == typeof a.disableDates[c] && gj.core.parseDate(a.disableDates[c], a.format, a.locale).getTime() === b.getTime() && (d = !1); 491 else a.disableDates instanceof Function && (d = a.disableDates(b)); 492 $.isArray(a.disableDaysOfWeek) && a.disableDaysOfWeek.indexOf(b.getDay()) > -1 && (d = !1) } return d }, getPrevMonth: function(a, b) { return date = new Date(b, a, 1), date.setMonth(date.getMonth() - 1), { month: date.getMonth(), year: date.getFullYear() } }, getNextMonth: function(a, b) { return date = new Date(b, a, 1), date.setMonth(date.getMonth() + 1), { month: date.getMonth(), year: date.getFullYear() } }, prev: function(a, b) { return function() { var c, d, e, f, g, h = $("body").find('[role="calendar"][guid="' + a.attr("data-guid") + '"]'); switch (e = parseInt(h.attr("year"), 10), h.attr("type")) { 493 case "month": 494 d = parseInt(h.attr("month"), 10), c = gj.datepicker.methods.getPrevMonth(d, e), h.attr("month", c.month), h.attr("year", c.year), gj.datepicker.methods.renderMonth(a, h, b); break; 495 case "year": 496 h.attr("year", e - 1), gj.datepicker.methods.renderYear(a, h, b); break; 497 case "decade": 498 f = e - e % 10, h.attr("year", f - 10), gj.datepicker.methods.renderDecade(a, h, b); break; 499 case "century": 500 g = e - e % 100, h.attr("year", g - 100), gj.datepicker.methods.renderCentury(a, h, b) } } }, next: function(a, b) { return function() { var c, d, e, f, g, h = $("body").find('[role="calendar"][guid="' + a.attr("data-guid") + '"]'); switch (e = parseInt(h.attr("year"), 10), h.attr("type")) { 501 case "month": 502 d = parseInt(h.attr("month"), 10), c = gj.datepicker.methods.getNextMonth(d, e), h.attr("month", c.month), h.attr("year", c.year), gj.datepicker.methods.renderMonth(a, h, b); break; 503 case "year": 504 h.attr("year", e + 1), gj.datepicker.methods.renderYear(a, h, b); break; 505 case "decade": 506 f = e - e % 10, h.attr("year", f + 10), gj.datepicker.methods.renderDecade(a, h, b); break; 507 case "century": 508 g = e - e % 100, h.attr("year", g + 100), gj.datepicker.methods.renderCentury(a, h, b) } } }, changePeriod: function(a, b) { return function(c) { var d = $("body").find('[role="calendar"][guid="' + a.attr("data-guid") + '"]'); switch (d.attr("type")) { 509 case "month": 510 gj.datepicker.methods.renderYear(a, d, b); break; 511 case "year": 512 gj.datepicker.methods.renderDecade(a, d, b); break; 513 case "decade": 514 gj.datepicker.methods.renderCentury(a, d, b) } } }, dayClickHandler: function(a, b, c, d) { return function(e) { return e && e.stopPropagation(), gj.datepicker.methods.selectDay(a, b, c, d), !0 !== c.footer && !1 !== c.autoClose && gj.datepicker.methods.change(a, b, c, d), a } }, change: function(a, b, c, d) { var e = (d.getDate(), d.getMonth()), 515 f = d.getFullYear(), 516 g = gj.core.formatDate(d, c.format, c.locale); 517 b.attr("month", e), b.attr("year", f), a.val(g), gj.datepicker.events.change(a), "none" !== window.getComputedStyle(b[0]).display && gj.datepicker.methods.close(a) }, selectDay: function(a, b, c, d) { var e = d.getDate(), 518 f = d.getMonth(), 519 g = d.getFullYear(); 520 b.attr("selectedDay", g + "-" + f + "-" + e), b.find("tbody td").removeClass("selected"), b.find('tbody td[day="' + e + '"][month="' + f + '"]').addClass("selected"), gj.datepicker.methods.updateHeader(b, c, d), gj.datepicker.events.select(a, "day") }, selectMonth: function(a, b, c, d) { return function(e) { b.attr("month", d), gj.datepicker.methods.renderMonth(a, b, c), gj.datepicker.events.select(a, "month") } }, selectYear: function(a, b, c, d) { return function(e) { b.attr("year", d), gj.datepicker.methods.renderYear(a, b, c), gj.datepicker.events.select(a, "year") } }, selectDecade: function(a, b, c, d) { return function(e) { b.attr("year", d), gj.datepicker.methods.renderDecade(a, b, c), gj.datepicker.events.select(a, "decade") } }, open: function(a, b) { var c, d = $("body").find('[role="calendar"][guid="' + a.attr("data-guid") + '"]'); switch (a.val() ? a.value(a.val()) : (c = new Date, d.attr("month", c.getMonth()), d.attr("year", c.getFullYear())), d.attr("type")) { 521 case "month": 522 gj.datepicker.methods.renderMonth(a, d, b); break; 523 case "year": 524 gj.datepicker.methods.renderYear(a, d, b); break; 525 case "decade": 526 gj.datepicker.methods.renderDecade(a, d, b); break; 527 case "century": 528 gj.datepicker.methods.renderCentury(a, d, b) } 529 d.show(), d.closest('div[role="modal"]').show(), b.modal ? gj.core.center(d) : (gj.core.setChildPosition(a[0], d[0]), document.activeElement !== a[0] && a.focus()), clearTimeout(a.timeout), gj.datepicker.events.open(a) }, close: function(a) { var b = $("body").find('[role="calendar"][guid="' + a.attr("data-guid") + '"]'); 530 b.hide(), b.closest('div[role="modal"]').hide(), gj.datepicker.events.close(a) }, createKeyDownHandler: function(a, b, c) { return function(d) { var e, f, g, h, i, j, d = d || window.event; "none" !== window.getComputedStyle(b[0]).display && (j = gj.datepicker.methods.getActiveCell(b), "38" == d.keyCode ? (h = j.index(), i = j.closest("tr").prev("tr").find("td:eq(" + h + ")"), i.is("[day]") || (gj.datepicker.methods.prev(a, c)(), i = b.find("tbody tr").last().find("td:eq(" + h + ")"), i.is(":empty") && (i = b.find("tbody tr").last().prev().find("td:eq(" + h + ")"))), i.is("[day]") && (i.addClass("focused"), j.removeClass("focused"))) : "40" == d.keyCode ? (h = j.index(), i = j.closest("tr").next("tr").find("td:eq(" + h + ")"), i.is("[day]") || (gj.datepicker.methods.next(a, c)(), i = b.find("tbody tr").first().find("td:eq(" + h + ")"), i.is("[day]") || (i = b.find("tbody tr:eq(1)").find("td:eq(" + h + ")"))), i.is("[day]") && (i.addClass("focused"), j.removeClass("focused"))) : "37" == d.keyCode ? (i = j.prev("td[day]:not(.disabled)"), 0 === i.length && (i = j.closest("tr").prev("tr").find("td[day]").last()), 0 === i.length && (gj.datepicker.methods.prev(a, c)(), i = b.find("tbody tr").last().find("td[day]").last()), i.length > 0 && (i.addClass("focused"), j.removeClass("focused"))) : "39" == d.keyCode ? (i = j.next("[day]:not(.disabled)"), 0 === i.length && (i = j.closest("tr").next("tr").find("td[day]").first()), 0 === i.length && (gj.datepicker.methods.next(a, c)(), i = b.find("tbody tr").first().find("td[day]").first()), i.length > 0 && (i.addClass("focused"), j.removeClass("focused"))) : "13" == d.keyCode ? (g = parseInt(j.attr("day"), 10), e = parseInt(j.attr("month"), 10), f = parseInt(j.attr("year"), 10), gj.datepicker.methods.dayClickHandler(a, b, c, new Date(f, e, g))()) : "27" == d.keyCode && a.close()) } }, getActiveCell: function(a) { var b = a.find("td[day].focused"); return 0 === b.length && (b = a.find("td[day].selected"), 0 === b.length && (b = a.find("td[day].today"), 0 === b.length && (b = a.find("td[day]:not(.disabled)").first()))), b }, value: function(a, b) { var c, d, e = a.data(); return void 0 === b ? a.val() : (d = gj.core.parseDate(b, e.format, e.locale), d && d.getTime() ? (c = $("body").find('[role="calendar"][guid="' + a.attr("data-guid") + '"]'), gj.datepicker.methods.dayClickHandler(a, c, e, d)()) : a.val(""), a) }, destroy: function(a) { var b = a.data(), 531 c = a.parent(), 532 d = $("body").find('[role="calendar"][guid="' + a.attr("data-guid") + '"]'); return b && (a.off(), d.parent('[role="modal"]').length > 0 && d.unwrap(), d.remove(), a.removeData(), a.removeAttr("data-type").removeAttr("data-guid").removeAttr("data-datepicker"), a.removeClass(), c.children('[role="right-icon"]').remove(), a.unwrap()), a } }, gj.datepicker.events = { change: function(a) { return a.triggerHandler("change") }, select: function(a, b) { return a.triggerHandler("select", [b]) }, open: function(a) { return a.triggerHandler("open") }, close: function(a) { return a.triggerHandler("close") } }, gj.datepicker.widget = function(a, b) { var c = this, 533 d = gj.datepicker.methods; return c.value = function(a) { return d.value(this, a) }, c.destroy = function() { return d.destroy(this) }, c.open = function() { return d.open(this, this.data()) }, c.close = function() { return d.close(this) }, $.extend(a, c), "true" !== a.attr("data-datepicker") && d.init.call(a, b), a }, gj.datepicker.widget.prototype = new gj.widget, gj.datepicker.widget.constructor = gj.datepicker.widget, 534 function(a) { a.fn.datepicker = function(a) { var b; if (this && this.length) { if ("object" != typeof a && a) { if (b = new gj.datepicker.widget(this, null), b[a]) return b[a].apply(this, Array.prototype.slice.call(arguments, 1)); throw "Method " + a + " does not exist." } return new gj.datepicker.widget(this, a) } } }(jQuery), gj.timepicker = { plugins: {} }, gj.timepicker.config = { base: { width: void 0, modal: !0, header: !0, footer: !0, format: "HH:MM", uiLibrary: "materialdesign", value: void 0, mode: "ampm", locale: "en-us", size: "default", icons: { rightIcon: '<i class="gj-icon clock" />' }, style: { modal: "gj-modal", wrapper: "gj-timepicker gj-timepicker-md gj-unselectable", input: "gj-textbox-md", clock: "gj-picker gj-picker-md timepicker", footer: "", button: "gj-button-md" } }, bootstrap: { style: { wrapper: "gj-timepicker gj-timepicker-bootstrap gj-unselectable input-group", input: "form-control", clock: "gj-picker gj-picker-bootstrap timepicker", footer: "modal-footer", button: "btn btn-default" }, iconsLibrary: "glyphicons" }, bootstrap4: { style: { wrapper: "gj-timepicker gj-timepicker-bootstrap gj-unselectable input-group", input: "form-control border", clock: "gj-picker gj-picker-bootstrap timepicker", footer: "modal-footer", button: "btn btn-default" } } }, gj.timepicker.methods = { init: function(a) { return gj.picker.widget.prototype.init.call(this, a, "timepicker"), this }, initialize: function() {}, initMouse: function(a, b, c, d) { a.off(), a.on("mousedown", gj.timepicker.methods.mouseDownHandler(b, c)), a.on("mousemove", gj.timepicker.methods.mouseMoveHandler(b, c, d)), a.on("mouseup", gj.timepicker.methods.mouseUpHandler(b, c, d)) }, createPicker: function(a) { var b, c = a.data(), 535 d = $('<div role="picker" />').addClass(c.style.clock).attr("guid", a.attr("data-guid")), 536 e = $('<div role="hour" />'), 537 f = $('<div role="minute" />'), 538 g = $('<div role="header" />'), 539 h = $('<div role="mode" />'), 540 i = $('<div role="body" />'), 541 j = $('<button class="' + c.style.button + '">' + gj.core.messages[c.locale].ok + "</button>"), 542 k = $('<button class="' + c.style.button + '">' + gj.core.messages[c.locale].cancel + "</button>"), 543 l = $('<div role="footer" class="' + c.style.footer + '" />'); return b = gj.core.parseDate(c.value, c.format, c.locale), !b || isNaN(b.getTime()) ? b = new Date : a.attr("hours", b.getHours()), gj.timepicker.methods.initMouse(i, a, d, c), c.header && (e.on("click", function() { gj.timepicker.methods.renderHours(a, d, c) }), f.on("click", function() { gj.timepicker.methods.renderMinutes(a, d, c) }), g.append(e).append(":").append(f), "ampm" === c.mode && (h.append($('<span role="am">' + gj.core.messages[c.locale].am + "</span>").on("click", function() { var b = gj.timepicker.methods.getHour(d); 544 d.attr("mode", "am"), $(this).addClass("selected"), $(this).parent().children('[role="pm"]').removeClass("selected"), b >= 12 && d.attr("hour", b - 12), c.modal || (clearTimeout(a.timeout), a.focus()) })), h.append("<br />"), h.append($('<span role="pm">' + gj.core.messages[c.locale].pm + "</span>").on("click", function() { var b = gj.timepicker.methods.getHour(d); 545 d.attr("mode", "pm"), $(this).addClass("selected"), $(this).parent().children('[role="am"]').removeClass("selected"), b < 12 && d.attr("hour", b + 12), c.modal || (clearTimeout(a.timeout), a.focus()) })), g.append(h)), d.append(g)), d.append(i), c.footer && (k.on("click", function() { a.close() }), l.append(k), j.on("click", gj.timepicker.methods.setTime(a, d)), l.append(j), d.append(l)), d.hide(), $("body").append(d), c.modal && (d.wrapAll('<div role="modal" class="' + c.style.modal + '"/>'), gj.core.center(d)), d }, getHour: function(a) { return parseInt(a.attr("hour"), 10) || 0 }, getMinute: function(a) { return parseInt(a.attr("minute"), 10) || 0 }, setTime: function(a, b) { return function() { var c = gj.timepicker.methods.getHour(b), 546 d = gj.timepicker.methods.getMinute(b), 547 e = b.attr("mode"), 548 f = new Date(0, 0, 0, 12 === c && "am" === e ? 0 : c, d), 549 g = a.data(), 550 h = gj.core.formatDate(f, g.format, g.locale); 551 a.value(h), a.close() } }, getPointerValue: function(a, b, c) { var d, e, f = 256, 552 g = Math.atan2(f / 2 - a, f / 2 - b) / Math.PI * 180; switch (g < 0 && (g = 360 + g), c) { 553 case "ampm": 554 return d = 12 - Math.round(12 * g / 360), 0 === d ? 12 : d; 555 case "24hr": 556 return e = Math.sqrt(Math.pow(f / 2 - a, 2) + Math.pow(f / 2 - b, 2)), d = 12 - Math.round(12 * g / 360), 0 === d && (d = 12), e < f / 2 - 32 && (d = 12 === d ? 0 : d + 12), d; 557 case "minutes": 558 return d = Math.round(60 - 60 * g / 360), 60 === d ? 0 : d } }, updateArrow: function(a, b, c, d) { var e, f, g = b.mouseX(a), 559 h = b.mouseY(a), 560 i = window.scrollY || window.pageYOffset || 0, 561 j = window.scrollX || window.pageXOffset || 0; 562 e = a.target.getBoundingClientRect(), "hours" == d.dialMode ? (f = gj.timepicker.methods.getPointerValue(g - j - e.left, h - i - e.top, d.mode), c.attr("hour", "ampm" === d.mode && "pm" === c.attr("mode") && f < 12 ? f + 12 : f)) : "minutes" == d.dialMode && (f = gj.timepicker.methods.getPointerValue(g - j - e.left, h - i - e.top, "minutes"), c.attr("minute", f)), gj.timepicker.methods.update(b, c, d) }, update: function(a, b, c) { var d, e, f, g, h, i; 563 d = gj.timepicker.methods.getHour(b), e = gj.timepicker.methods.getMinute(b), f = b.find('[role="arrow"]'), "hours" == c.dialMode && (0 == d || d > 12) && "24hr" === c.mode ? f.css("width", "calc(50% - 52px)") : f.css("width", "calc(50% - 20px)"), "hours" == c.dialMode ? f.css("transform", "rotate(" + (30 * d - 90).toString() + "deg)") : f.css("transform", "rotate(" + (6 * e - 90).toString() + "deg)"), f.show(), g = "ampm" === c.mode && d > 12 ? d - 12 : 0 == d ? 12 : d, i = b.find('[role="body"] span'), i.removeClass("selected"), i.filter(function(a) { return "hours" == c.dialMode ? parseInt($(this).text(), 10) == g : parseInt($(this).text(), 10) == e }).addClass("selected"), c.header && (h = b.find('[role="header"]'), h.find('[role="hour"]').text(g), h.find('[role="minute"]').text(gj.core.pad(e)), "ampm" === c.mode && (d >= 12 ? (h.find('[role="pm"]').addClass("selected"), h.find('[role="am"]').removeClass("selected")) : (h.find('[role="am"]').addClass("selected"), h.find('[role="pm"]').removeClass("selected")))) }, mouseDownHandler: function(a, b) { return function(b) { a.mouseMove = !0 } }, mouseMoveHandler: function(a, b, c) { return function(d) { a.mouseMove && gj.timepicker.methods.updateArrow(d, a, b, c) } }, mouseUpHandler: function(a, b, c) { return function(d) { gj.timepicker.methods.updateArrow(d, a, b, c), a.mouseMove = !1, c.modal || (clearTimeout(a.timeout), a.focus()), "hours" == c.dialMode ? setTimeout(function() { gj.timepicker.events.select(a, "hour"), gj.timepicker.methods.renderMinutes(a, b, c) }, 1e3) : "minutes" == c.dialMode && (!0 !== c.footer && !1 !== c.autoClose && gj.timepicker.methods.setTime(a, b)(), gj.timepicker.events.select(a, "minute")) } }, renderHours: function(a, b, c) { var d, e = b.find('[role="body"]'); 564 clearTimeout(a.timeout), e.empty(), d = $('<div role="dial"></div>'), d.append('<div role="arrow" style="transform: rotate(-90deg); display: none;"><div class="arrow-begin"></div><div class="arrow-end"></div></div>'), d.append('<span role="hour" style="transform: translate(54px, -93.5307px);">1</span>'), d.append('<span role="hour" style="transform: translate(93.5307px, -54px);">2</span>'), d.append('<span role="hour" style="transform: translate(108px, 0px);">3</span>'), d.append('<span role="hour" style="transform: translate(93.5307px, 54px);">4</span>'), d.append('<span role="hour" style="transform: translate(54px, 93.5307px);">5</span>'), d.append('<span role="hour" style="transform: translate(6.61309e-15px, 108px);">6</span>'), d.append('<span role="hour" style="transform: translate(-54px, 93.5307px);">7</span>'), d.append('<span role="hour" style="transform: translate(-93.5307px, 54px);">8</span>'), d.append('<span role="hour" style="transform: translate(-108px, 1.32262e-14px);">9</span>'), d.append('<span role="hour" style="transform: translate(-93.5307px, -54px);">10</span>'), d.append('<span role="hour" style="transform: translate(-54px, -93.5307px);">11</span>'), d.append('<span role="hour" style="transform: translate(-1.98393e-14px, -108px);">12</span>'), "24hr" === c.mode && (d.append('<span role="hour" style="transform: translate(38px, -65.8179px);">13</span>'), d.append('<span role="hour" style="transform: translate(65.8179px, -38px);">14</span>'), d.append('<span role="hour" style="transform: translate(76px, 0px);">15</span>'), d.append('<span role="hour" style="transform: translate(65.8179px, 38px);">16</span>'), d.append('<span role="hour" style="transform: translate(38px, 65.8179px);">17</span>'), d.append('<span role="hour" style="transform: translate(4.65366e-15px, 76px);">18</span>'), d.append('<span role="hour" style="transform: translate(-38px, 65.8179px);">19</span>'), d.append('<span role="hour" style="transform: translate(-65.8179px, 38px);">20</span>'), d.append('<span role="hour" style="transform: translate(-76px, 9.30732e-15px);">21</span>'), d.append('<span role="hour" style="transform: translate(-65.8179px, -38px);">22</span>'), d.append('<span role="hour" style="transform: translate(-38px, -65.8179px);">23</span>'), d.append('<span role="hour" style="transform: translate(-1.3961e-14px, -76px);">00</span>')), e.append(d), b.find('[role="header"] [role="hour"]').addClass("selected"), b.find('[role="header"] [role="minute"]').removeClass("selected"), c.dialMode = "hours", gj.timepicker.methods.update(a, b, c) }, renderMinutes: function(a, b, c) { var d = b.find('[role="body"]'); 565 clearTimeout(a.timeout), d.empty(), $dial = $('<div role="dial"></div>'), $dial.append('<div role="arrow" style="transform: rotate(-90deg); display: none;"><div class="arrow-begin"></div><div class="arrow-end"></div></div>'), $dial.append('<span role="hour" style="transform: translate(54px, -93.5307px);">5</span>'), $dial.append('<span role="hour" style="transform: translate(93.5307px, -54px);">10</span>'), $dial.append('<span role="hour" style="transform: translate(108px, 0px);">15</span>'), $dial.append('<span role="hour" style="transform: translate(93.5307px, 54px);">20</span>'), $dial.append('<span role="hour" style="transform: translate(54px, 93.5307px);">25</span>'), $dial.append('<span role="hour" style="transform: translate(6.61309e-15px, 108px);">30</span>'), $dial.append('<span role="hour" style="transform: translate(-54px, 93.5307px);">35</span>'), $dial.append('<span role="hour" style="transform: translate(-93.5307px, 54px);">40</span>'), $dial.append('<span role="hour" style="transform: translate(-108px, 1.32262e-14px);">45</span>'), $dial.append('<span role="hour" style="transform: translate(-93.5307px, -54px);">50</span>'), $dial.append('<span role="hour" style="transform: translate(-54px, -93.5307px);">55</span>'), $dial.append('<span role="hour" style="transform: translate(-1.98393e-14px, -108px);">00</span>'), d.append($dial), b.find('[role="header"] [role="hour"]').removeClass("selected"), b.find('[role="header"] [role="minute"]').addClass("selected"), c.dialMode = "minutes", gj.timepicker.methods.update(a, b, c) }, open: function(a) { var b, c, d = a.data(), 566 e = $("body").find('[role="picker"][guid="' + a.attr("data-guid") + '"]'); return b = a.value() ? gj.core.parseDate(a.value(), d.format, d.locale) : new Date, c = b.getHours(), "ampm" === d.mode && e.attr("mode", c > 12 ? "pm" : "am"), e.attr("hour", c), e.attr("minute", b.getMinutes()), gj.timepicker.methods.renderHours(a, e, d), gj.picker.widget.prototype.open.call(a, "timepicker"), a }, value: function(a, b) { a.data(); return void 0 === b ? a.val() : (a.val(b), gj.timepicker.events.change(a), a) } }, gj.timepicker.events = { change: function(a) { return a.triggerHandler("change") }, select: function(a, b) { return a.triggerHandler("select", [b]) }, open: function(a) { return a.triggerHandler("open") }, close: function(a) { return a.triggerHandler("close") } }, gj.timepicker.widget = function(a, b) { var c = this, 567 d = gj.timepicker.methods; return c.mouseMove = !1, c.value = function(a) { return d.value(this, a) }, c.destroy = function() { return gj.picker.widget.prototype.destroy.call(this, "timepicker") }, c.open = function() { return gj.timepicker.methods.open(this) }, c.close = function() { return gj.picker.widget.prototype.close.call(this, "timepicker") }, $.extend(a, c), "true" !== a.attr("data-timepicker") && d.init.call(a, b), a }, gj.timepicker.widget.prototype = new gj.picker.widget, gj.timepicker.widget.constructor = gj.timepicker.widget, 568 function(a) { a.fn.timepicker = function(a) { var b; if (this && this.length) { if ("object" != typeof a && a) { if (b = new gj.timepicker.widget(this, null), b[a]) return b[a].apply(this, Array.prototype.slice.call(arguments, 1)); throw "Method " + a + " does not exist." } return new gj.timepicker.widget(this, a) } } }(jQuery), gj.datetimepicker = { plugins: {}, messages: { "en-us": {} } }, gj.datetimepicker.config = { base: { datepicker: gj.datepicker.config.base, timepicker: gj.timepicker.config.base, uiLibrary: "materialdesign", value: void 0, format: "HH:MM mm/dd/yyyy", width: void 0, modal: !1, footer: !1, size: "default", locale: "en-us", icons: {}, style: { calendar: "gj-picker gj-picker-md datetimepicker gj-unselectable" } }, bootstrap: { style: { calendar: "gj-picker gj-picker-bootstrap datetimepicker gj-unselectable" }, iconsLibrary: "glyphicons" }, bootstrap4: { style: { calendar: "gj-picker gj-picker-bootstrap datetimepicker gj-unselectable" } } }, gj.datetimepicker.methods = { init: function(a) { return gj.widget.prototype.init.call(this, a, "datetimepicker"), this.attr("data-datetimepicker", "true"), gj.datetimepicker.methods.initialize(this), this }, getConfig: function(a, b) { var c = gj.widget.prototype.getConfig.call(this, a, b); return uiLibrary = a.hasOwnProperty("uiLibrary") ? a.uiLibrary : c.uiLibrary, gj.datepicker.config[uiLibrary] && $.extend(!0, c.datepicker, gj.datepicker.config[uiLibrary]), gj.timepicker.config[uiLibrary] && $.extend(!0, c.timepicker, gj.timepicker.config[uiLibrary]), iconsLibrary = a.hasOwnProperty("iconsLibrary") ? a.iconsLibrary : c.iconsLibrary, gj.datepicker.config[iconsLibrary] && $.extend(!0, c.datepicker, gj.datepicker.config[iconsLibrary]), gj.timepicker.config[iconsLibrary] && $.extend(!0, c.timepicker, gj.timepicker.config[iconsLibrary]), c }, initialize: function(a) { var b, c, d, e, f, g, h, i, j = a.data(); 569 j.datepicker.uiLibrary = j.uiLibrary, j.datepicker.iconsLibrary = j.iconsLibrary, j.datepicker.width = j.width, j.datepicker.format = j.format, j.datepicker.locale = j.locale, j.datepicker.modal = j.modal, j.datepicker.footer = j.footer, j.datepicker.style.calendar = j.style.calendar, j.datepicker.value = j.value, j.datepicker.size = j.size, j.datepicker.autoClose = !1, gj.datepicker.methods.initialize(a, j.datepicker), a.on("select", function(c, d) { var e, f; "day" === d ? gj.datetimepicker.methods.createShowHourHandler(a, b, j)() : "minute" === d && b.attr("selectedDay") && !0 !== j.footer && (selectedDay = b.attr("selectedDay").split("-"), e = new Date(selectedDay[0], selectedDay[1], selectedDay[2], b.attr("hour") || 0, b.attr("minute") || 0), f = gj.core.formatDate(e, j.format, j.locale), a.val(f), gj.datetimepicker.events.change(a), gj.datetimepicker.methods.close(a)) }), a.on("open", function() { var a = b.children('[role="header"]'); 570 a.find('[role="calendarMode"]').addClass("selected"), a.find('[role="clockMode"]').removeClass("selected") }), b = $("body").find('[role="calendar"][guid="' + a.attr("data-guid") + '"]'), f = j.value ? gj.core.parseDate(j.value, j.format, j.locale) : new Date, b.attr("hour", f.getHours()), b.attr("minute", f.getMinutes()), j.timepicker.uiLibrary = j.uiLibrary, j.timepicker.iconsLibrary = j.iconsLibrary, j.timepicker.format = j.format, j.timepicker.locale = j.locale, j.timepicker.header = !0, j.timepicker.footer = j.footer, j.timepicker.size = j.size, j.timepicker.mode = "24hr", j.timepicker.autoClose = !1, c = $('<div role="header" />'), d = $('<div role="date" class="selected" />'), d.on("click", gj.datetimepicker.methods.createShowDateHandler(a, b, j)), d.html(gj.core.formatDate(new Date, "ddd, mmm dd", j.locale)), c.append(d), g = $('<div role="switch"></div>'), h = $('<i class="gj-icon selected" role="calendarMode">event</i>'), h.on("click", gj.datetimepicker.methods.createShowDateHandler(a, b, j)), g.append(h), e = $('<div role="time" />'), e.append($('<div role="hour" />').on("click", gj.datetimepicker.methods.createShowHourHandler(a, b, j)).html(gj.core.formatDate(new Date, "HH", j.locale))), e.append(":"), e.append($('<div role="minute" />').on("click", gj.datetimepicker.methods.createShowMinuteHandler(a, b, j)).html(gj.core.formatDate(new Date, "MM", j.locale))), g.append(e), i = $('<i class="gj-icon" role="clockMode">clock</i>'), i.on("click", gj.datetimepicker.methods.createShowHourHandler(a, b, j)), g.append(i), c.append(g), b.prepend(c) }, createShowDateHandler: function(a, b, c) { return function(d) { var e = b.children('[role="header"]'); 571 e.find('[role="calendarMode"]').addClass("selected"), e.find('[role="date"]').addClass("selected"), e.find('[role="clockMode"]').removeClass("selected"), e.find('[role="hour"]').removeClass("selected"), e.find('[role="minute"]').removeClass("selected"), gj.datepicker.methods.renderMonth(a, b, c.datepicker) } }, createShowHourHandler: function(a, b, c) { return function() { var d = b.children('[role="header"]'); 572 d.find('[role="calendarMode"]').removeClass("selected"), d.find('[role="date"]').removeClass("selected"), d.find('[role="clockMode"]').addClass("selected"), d.find('[role="hour"]').addClass("selected"), d.find('[role="minute"]').removeClass("selected"), gj.timepicker.methods.initMouse(b.children('[role="body"]'), a, b, c.timepicker), gj.timepicker.methods.renderHours(a, b, c.timepicker) } }, createShowMinuteHandler: function(a, b, c) { return function() { var d = b.children('[role="header"]'); 573 d.find('[role="calendarMode"]').removeClass("selected"), d.find('[role="date"]').removeClass("selected"), d.find('[role="clockMode"]').addClass("selected"), d.find('[role="hour"]').removeClass("selected"), d.find('[role="minute"]').addClass("selected"), gj.timepicker.methods.initMouse(b.children('[role="body"]'), a, b, c.timepicker), gj.timepicker.methods.renderMinutes(a, b, c.timepicker) } }, close: function(a) { var b = $("body").find('[role="calendar"][guid="' + a.attr("data-guid") + '"]'); 574 b.hide(), b.closest('div[role="modal"]').hide() }, value: function(a, b) { var c, d, e, f = a.data(); return void 0 === b ? a.val() : (d = gj.core.parseDate(b, f.format, f.locale), d ? (c = $("body").find('[role="calendar"][guid="' + a.attr("data-guid") + '"]'), gj.datepicker.methods.dayClickHandler(a, c, f, d)(), e = d.getHours(), "ampm" === f.mode && c.attr("mode", e > 12 ? "pm" : "am"), c.attr("hour", e), c.attr("minute", d.getMinutes()), a.val(b)) : a.val(""), a) }, destroy: function(a) { var b = a.data(), 575 c = a.parent(), 576 d = $("body").find('[role="calendar"][guid="' + a.attr("data-guid") + '"]'); return b && (a.off(), d.parent('[role="modal"]').length > 0 && d.unwrap(), d.remove(), a.removeData(), a.removeAttr("data-type").removeAttr("data-guid").removeAttr("data-datetimepicker"), a.removeClass(), c.children('[role="right-icon"]').remove(), a.unwrap()), a } }, gj.datetimepicker.events = { change: function(a) { return a.triggerHandler("change") } }, gj.datetimepicker.widget = function(a, b) { var c = this, 577 d = gj.datetimepicker.methods; return c.mouseMove = !1, c.value = function(a) { return d.value(this, a) }, c.open = function() { gj.datepicker.methods.open(this, this.data().datepicker) }, c.close = function() { gj.datepicker.methods.close(this) }, c.destroy = function() { return d.destroy(this) }, $.extend(a, c), "true" !== a.attr("data-datetimepicker") && d.init.call(a, b), a }, gj.datetimepicker.widget.prototype = new gj.widget, gj.datetimepicker.widget.constructor = gj.datetimepicker.widget, gj.datetimepicker.widget.prototype.getConfig = gj.datetimepicker.methods.getConfig, 578 function(a) { a.fn.datetimepicker = function(a) { var b; if (this && this.length) { if ("object" != typeof a && a) { if (b = new gj.datetimepicker.widget(this, null), b[a]) return b[a].apply(this, Array.prototype.slice.call(arguments, 1)); throw "Method " + a + " does not exist." } return new gj.datetimepicker.widget(this, a) } } }(jQuery), gj.slider = { plugins: {}, messages: { "en-us": {} } }, gj.slider.config = { base: { min: 0, max: 100, width: void 0, uiLibrary: "materialdesign", value: void 0, icons: {}, style: { wrapper: "gj-slider gj-slider-md", progress: void 0, track: void 0 } }, bootstrap: { style: { wrapper: "gj-slider gj-slider-bootstrap gj-slider-bootstrap-3", progress: "progress-bar", track: "progress" } }, bootstrap4: { style: { wrapper: "gj-slider gj-slider-bootstrap gj-slider-bootstrap-4", progress: "progress-bar", track: "progress" } } }, gj.slider.methods = { init: function(a) { return gj.widget.prototype.init.call(this, a, "slider"), this.attr("data-slider", "true"), gj.slider.methods.initialize(this, this.data()), this }, initialize: function(a, b) { var c, d, e, f; 579 a[0].style.display = "none", "wrapper" !== a[0].parentElement.attributes.role ? (c = document.createElement("div"), c.setAttribute("role", "wrapper"), a[0].parentNode.insertBefore(c, a[0]), c.appendChild(a[0])) : c = a[0].parentElement, b.width && (c.style.width = b.width + "px"), gj.core.addClasses(c, b.style.wrapper), d = a[0].querySelector('[role="track"]'), null == d && (d = document.createElement("div"), d.setAttribute("role", "track"), c.appendChild(d)), gj.core.addClasses(d, b.style.track), e = a[0].querySelector('[role="handle"]'), null == e && (e = document.createElement("div"), e.setAttribute("role", "handle"), c.appendChild(e)), f = a[0].querySelector('[role="progress"]'), null == f && (f = document.createElement("div"), f.setAttribute("role", "progress"), c.appendChild(f)), gj.core.addClasses(f, b.style.progress), b.value || (b.value = b.min), gj.slider.methods.value(a, b, b.value), gj.documentManager.subscribeForEvent("mouseup", a.data("guid"), gj.slider.methods.createMouseUpHandler(a, e, b)), e.addEventListener("mousedown", gj.slider.methods.createMouseDownHandler(e, b)), gj.documentManager.subscribeForEvent("mousemove", a.data("guid"), gj.slider.methods.createMouseMoveHandler(a, d, e, f, b)), e.addEventListener("click", function(a) { a.stopPropagation() }), c.addEventListener("click", gj.slider.methods.createClickHandler(a, d, e, b)) }, createClickHandler: function(a, b, c, d) { return function(e) { var f, g, h, i, j; "true" !== c.getAttribute("drag") && (f = gj.core.position(a[0].parentElement), g = (new gj.widget).mouseX(e) - f.left, h = gj.core.width(c) / 2, i = gj.core.width(b) / (d.max - d.min), j = Math.round((g - h) / i) + d.min, gj.slider.methods.value(a, d, j)) } }, createMouseUpHandler: function(a, b, c) { return function(c) { "true" === b.getAttribute("drag") && (b.setAttribute("drag", "false"), gj.slider.events.change(a)) } }, createMouseDownHandler: function(a, b) { return function(b) { a.setAttribute("drag", "true") } }, createMouseMoveHandler: function(a, b, c, d, e) { return function(d) { var f, g, h, i, j, k, l; "true" === c.getAttribute("drag") && (f = gj.core.position(a[0].parentElement), g = (new gj.widget).mouseX(d) - f.left, h = gj.core.width(b), i = gj.core.width(c) / 2, j = h / (e.max - e.min), k = (e.value - e.min) * j, g >= i && g <= h + i && (g > k + j / 2 || g < k - j / 2) && (l = Math.round((g - i) / j) + e.min, gj.slider.methods.value(a, e, l))) } }, value: function(a, b, c) { var d, e, f, g; return void 0 === c ? a[0].value : (a[0].setAttribute("value", c), b.value = c, e = a.parent().children('[role="track"]')[0], d = gj.core.width(e) / (b.max - b.min), f = a.parent().children('[role="handle"]')[0], f.style.left = (c - b.min) * d + "px", g = a.parent().children('[role="progress"]')[0], g.style.width = (c - b.min) * d + "px", gj.slider.events.slide(a, c), a) }, destroy: function(a) { var b = a.data(), 580 c = a.parent(); return b && (c.children('[role="track"]').remove(), c.children('[role="handle"]').remove(), c.children('[role="progress"]').remove(), a.unwrap(), a.off(), a.removeData(), a.removeAttr("data-type").removeAttr("data-guid").removeAttr("data-slider"), a.removeClass(), a.show()), a } }, gj.slider.events = { change: function(a) { return a.triggerHandler("change") }, slide: function(a, b) { return a.triggerHandler("slide", [b]) } }, gj.slider.widget = function(a, b) { var c = this, 581 d = gj.slider.methods; return c.value = function(a) { return d.value(this, this.data(), a) }, c.destroy = function() { return d.destroy(this) }, $.extend(a, c), "true" !== a.attr("data-slider") && d.init.call(a, b), a }, gj.slider.widget.prototype = new gj.widget, gj.slider.widget.constructor = gj.slider.widget, 582 function(a) { a.fn.slider = function(a) { var b; if (this && this.length) { if ("object" != typeof a && a) { if (b = new gj.slider.widget(this, null), b[a]) return b[a].apply(this, Array.prototype.slice.call(arguments, 1)); throw "Method " + a + " does not exist." } return new gj.slider.widget(this, a) } } }(jQuery), gj.colorpicker = { plugins: {}, messages: { "en-us": {} } }, gj.colorpicker.config = { base: { uiLibrary: "materialdesign", value: void 0, icons: { rightIcon: '<i class="gj-icon">event</i>' }, style: { modal: "gj-modal", wrapper: "gj-colorpicker gj-colorpicker-md gj-unselectable", input: "gj-textbox-md", picker: "gj-picker gj-picker-md colorpicker gj-unselectable", footer: "", button: "gj-button-md" } }, bootstrap: { style: {} }, bootstrap4: { style: {} } }, gj.colorpicker.methods = { init: function(a) { return gj.picker.widget.prototype.init.call(this, a, "colorpicker"), gj.colorpicker.methods.initialize(this), this }, initialize: function(a) {}, createPicker: function(a, b) { var c = $('<div role="picker" />').addClass(b.style.picker).attr("guid", a.attr("data-guid")); return c.html("test"), c.hide(), $("body").append(c), c }, open: function(a) { return a.val() && a.value(a.val()), gj.picker.widget.prototype.open.call(a, "colorpicker") } }, gj.colorpicker.events = { change: function(a) { return a.triggerHandler("change") }, select: function(a) { return a.triggerHandler("select") }, open: function(a) { return a.triggerHandler("open") }, close: function(a) { return a.triggerHandler("close") } }, gj.colorpicker.widget = function(a, b) { var c = this, 583 d = gj.colorpicker.methods; return c.value = function(a) { return d.value(this, a) }, c.destroy = function() { return gj.picker.widget.prototype.destroy.call(this, "colorpicker") }, c.open = function() { return d.open(this) }, c.close = function() { return gj.picker.widget.prototype.close.call(this, "colorpicker") }, $.extend(a, c), "true" !== a.attr("data-colorpicker") && d.init.call(a, b), a }, gj.colorpicker.widget.prototype = new gj.picker.widget, gj.colorpicker.widget.constructor = gj.colorpicker.widget, 584 function(a) { a.fn.colorpicker = function(a) { var b; if (this && this.length) { if ("object" != typeof a && a) { if (b = new gj.colorpicker.widget(this, null), b[a]) return b[a].apply(this, Array.prototype.slice.call(arguments, 1)); throw "Method " + a + " does not exist." } return new gj.colorpicker.widget(this, a) } } }(jQuery);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.