Commit inicial Ventas Productivo
This commit is contained in:
1020
Metronic/assets/global/scripts/app.js
Normal file
1020
Metronic/assets/global/scripts/app.js
Normal file
File diff suppressed because it is too large
Load Diff
1
Metronic/assets/global/scripts/app.min.js
vendored
Normal file
1
Metronic/assets/global/scripts/app.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
304
Metronic/assets/global/scripts/datatable.js
Normal file
304
Metronic/assets/global/scripts/datatable.js
Normal file
@@ -0,0 +1,304 @@
|
||||
/***
|
||||
Wrapper/Helper Class for datagrid based on jQuery Datatable Plugin
|
||||
***/
|
||||
var Datatable = function() {
|
||||
|
||||
var tableOptions; // main options
|
||||
var dataTable; // datatable object
|
||||
var table; // actual table jquery object
|
||||
var tableContainer; // actual table container object
|
||||
var tableWrapper; // actual table wrapper jquery object
|
||||
var tableInitialized = false;
|
||||
var ajaxParams = {}; // set filter mode
|
||||
var the;
|
||||
|
||||
var countSelectedRecords = function() {
|
||||
var selected = $('tbody > tr > td:nth-child(1) input[type="checkbox"]:checked', table).size();
|
||||
var text = tableOptions.dataTable.language.metronicGroupActions;
|
||||
if (selected > 0) {
|
||||
$('.table-group-actions > span', tableWrapper).text(text.replace("_TOTAL_", selected));
|
||||
} else {
|
||||
$('.table-group-actions > span', tableWrapper).text("");
|
||||
}
|
||||
};
|
||||
|
||||
return {
|
||||
|
||||
//main function to initiate the module
|
||||
init: function(options) {
|
||||
|
||||
if (!$().dataTable) {
|
||||
return;
|
||||
}
|
||||
|
||||
the = this;
|
||||
|
||||
// default settings
|
||||
options = $.extend(true, {
|
||||
src: "", // actual table
|
||||
filterApplyAction: "filter",
|
||||
filterCancelAction: "filter_cancel",
|
||||
resetGroupActionInputOnSuccess: true,
|
||||
loadingMessage: 'Loading...',
|
||||
dataTable: {
|
||||
"dom": "<'row'<'col-md-8 col-sm-12'pli><'col-md-4 col-sm-12'<'table-group-actions pull-right'>>r><'table-scrollable't><'row'<'col-md-8 col-sm-12'pli><'col-md-4 col-sm-12'>>", // datatable layout
|
||||
"pageLength": 10, // default records per page
|
||||
"language": { // language settings
|
||||
// metronic spesific
|
||||
"metronicGroupActions": "_TOTAL_ records selected: ",
|
||||
"metronicAjaxRequestGeneralError": "Could not complete request. Please check your internet connection",
|
||||
|
||||
// data tables spesific
|
||||
"lengthMenu": "<span class='seperator'>|</span>View _MENU_ records",
|
||||
"info": "<span class='seperator'>|</span>Found total _TOTAL_ records",
|
||||
"infoEmpty": "No records found to show",
|
||||
"emptyTable": "No data available in table",
|
||||
"zeroRecords": "No matching records found",
|
||||
"paginate": {
|
||||
"previous": "Prev",
|
||||
"next": "Next",
|
||||
"last": "Last",
|
||||
"first": "First",
|
||||
"page": "Page",
|
||||
"pageOf": "of"
|
||||
}
|
||||
},
|
||||
|
||||
"orderCellsTop": true,
|
||||
"columnDefs": [{ // define columns sorting options(by default all columns are sortable extept the first checkbox column)
|
||||
'orderable': false,
|
||||
'targets': [0]
|
||||
}],
|
||||
|
||||
"pagingType": "bootstrap_extended", // pagination type(bootstrap, bootstrap_full_number or bootstrap_extended)
|
||||
"autoWidth": false, // disable fixed width and enable fluid table
|
||||
"processing": false, // enable/disable display message box on record load
|
||||
"serverSide": true, // enable/disable server side ajax loading
|
||||
|
||||
"ajax": { // define ajax settings
|
||||
"url": "", // ajax URL
|
||||
"type": "POST", // request type
|
||||
"timeout": 20000,
|
||||
"data": function(data) { // add request parameters before submit
|
||||
$.each(ajaxParams, function(key, value) {
|
||||
data[key] = value;
|
||||
});
|
||||
Metronic.blockUI({
|
||||
message: tableOptions.loadingMessage,
|
||||
target: tableContainer,
|
||||
overlayColor: 'none',
|
||||
cenrerY: true,
|
||||
boxed: true
|
||||
});
|
||||
},
|
||||
"dataSrc": function(res) { // Manipulate the data returned from the server
|
||||
if (res.customActionMessage) {
|
||||
Metronic.alert({
|
||||
type: (res.customActionStatus == 'OK' ? 'success' : 'danger'),
|
||||
icon: (res.customActionStatus == 'OK' ? 'check' : 'warning'),
|
||||
message: res.customActionMessage,
|
||||
container: tableWrapper,
|
||||
place: 'prepend'
|
||||
});
|
||||
}
|
||||
|
||||
if (res.customActionStatus) {
|
||||
if (tableOptions.resetGroupActionInputOnSuccess) {
|
||||
$('.table-group-action-input', tableWrapper).val("");
|
||||
}
|
||||
}
|
||||
|
||||
if ($('.group-checkable', table).size() === 1) {
|
||||
$('.group-checkable', table).attr("checked", false);
|
||||
$.uniform.update($('.group-checkable', table));
|
||||
}
|
||||
|
||||
if (tableOptions.onSuccess) {
|
||||
tableOptions.onSuccess.call(undefined, the);
|
||||
}
|
||||
|
||||
Metronic.unblockUI(tableContainer);
|
||||
|
||||
return res.data;
|
||||
},
|
||||
"error": function() { // handle general connection errors
|
||||
if (tableOptions.onError) {
|
||||
tableOptions.onError.call(undefined, the);
|
||||
}
|
||||
|
||||
Metronic.alert({
|
||||
type: 'danger',
|
||||
icon: 'warning',
|
||||
message: tableOptions.dataTable.language.metronicAjaxRequestGeneralError,
|
||||
container: tableWrapper,
|
||||
place: 'prepend'
|
||||
});
|
||||
|
||||
Metronic.unblockUI(tableContainer);
|
||||
}
|
||||
},
|
||||
|
||||
"drawCallback": function(oSettings) { // run some code on table redraw
|
||||
if (tableInitialized === false) { // check if table has been initialized
|
||||
tableInitialized = true; // set table initialized
|
||||
table.show(); // display table
|
||||
}
|
||||
Metronic.initUniform($('input[type="checkbox"]', table)); // reinitialize uniform checkboxes on each table reload
|
||||
countSelectedRecords(); // reset selected records indicator
|
||||
|
||||
// callback for ajax data load
|
||||
if (tableOptions.onDataLoad) {
|
||||
tableOptions.onDataLoad.call(undefined, the);
|
||||
}
|
||||
}
|
||||
}
|
||||
}, options);
|
||||
|
||||
tableOptions = options;
|
||||
|
||||
// create table's jquery object
|
||||
table = $(options.src);
|
||||
tableContainer = table.parents(".table-container");
|
||||
|
||||
// apply the special class that used to restyle the default datatable
|
||||
var tmp = $.fn.dataTableExt.oStdClasses;
|
||||
|
||||
$.fn.dataTableExt.oStdClasses.sWrapper = $.fn.dataTableExt.oStdClasses.sWrapper + " dataTables_extended_wrapper";
|
||||
$.fn.dataTableExt.oStdClasses.sFilterInput = "form-control input-small input-sm input-inline";
|
||||
$.fn.dataTableExt.oStdClasses.sLengthSelect = "form-control input-xsmall input-sm input-inline";
|
||||
|
||||
// initialize a datatable
|
||||
dataTable = table.DataTable(options.dataTable);
|
||||
|
||||
// revert back to default
|
||||
$.fn.dataTableExt.oStdClasses.sWrapper = tmp.sWrapper;
|
||||
$.fn.dataTableExt.oStdClasses.sFilterInput = tmp.sFilterInput;
|
||||
$.fn.dataTableExt.oStdClasses.sLengthSelect = tmp.sLengthSelect;
|
||||
|
||||
// get table wrapper
|
||||
tableWrapper = table.parents('.dataTables_wrapper');
|
||||
|
||||
// build table group actions panel
|
||||
if ($('.table-actions-wrapper', tableContainer).size() === 1) {
|
||||
$('.table-group-actions', tableWrapper).html($('.table-actions-wrapper', tableContainer).html()); // place the panel inside the wrapper
|
||||
$('.table-actions-wrapper', tableContainer).remove(); // remove the template container
|
||||
}
|
||||
// handle group checkboxes check/uncheck
|
||||
$('.group-checkable', table).change(function() {
|
||||
var set = $('tbody > tr > td:nth-child(1) input[type="checkbox"]', table);
|
||||
var checked = $(this).is(":checked");
|
||||
$(set).each(function() {
|
||||
$(this).attr("checked", checked);
|
||||
});
|
||||
$.uniform.update(set);
|
||||
countSelectedRecords();
|
||||
});
|
||||
|
||||
// handle row's checkbox click
|
||||
table.on('change', 'tbody > tr > td:nth-child(1) input[type="checkbox"]', function() {
|
||||
countSelectedRecords();
|
||||
});
|
||||
|
||||
// handle filter submit button click
|
||||
table.on('click', '.filter-submit', function(e) {
|
||||
e.preventDefault();
|
||||
the.submitFilter();
|
||||
});
|
||||
|
||||
// handle filter cancel button click
|
||||
table.on('click', '.filter-cancel', function(e) {
|
||||
e.preventDefault();
|
||||
the.resetFilter();
|
||||
});
|
||||
},
|
||||
|
||||
submitFilter: function() {
|
||||
the.setAjaxParam("action", tableOptions.filterApplyAction);
|
||||
|
||||
// get all typeable inputs
|
||||
$('textarea.form-filter, select.form-filter, input.form-filter:not([type="radio"],[type="checkbox"])', table).each(function() {
|
||||
the.setAjaxParam($(this).attr("name"), $(this).val());
|
||||
});
|
||||
|
||||
// get all checkboxes
|
||||
$('input.form-filter[type="checkbox"]:checked', table).each(function() {
|
||||
the.addAjaxParam($(this).attr("name"), $(this).val());
|
||||
});
|
||||
|
||||
// get all radio buttons
|
||||
$('input.form-filter[type="radio"]:checked', table).each(function() {
|
||||
the.setAjaxParam($(this).attr("name"), $(this).val());
|
||||
});
|
||||
|
||||
dataTable.ajax.reload();
|
||||
},
|
||||
|
||||
resetFilter: function() {
|
||||
$('textarea.form-filter, select.form-filter, input.form-filter', table).each(function() {
|
||||
$(this).val("");
|
||||
});
|
||||
$('input.form-filter[type="checkbox"]', table).each(function() {
|
||||
$(this).attr("checked", false);
|
||||
});
|
||||
the.clearAjaxParams();
|
||||
the.addAjaxParam("action", tableOptions.filterCancelAction);
|
||||
dataTable.ajax.reload();
|
||||
},
|
||||
|
||||
getSelectedRowsCount: function() {
|
||||
return $('tbody > tr > td:nth-child(1) input[type="checkbox"]:checked', table).size();
|
||||
},
|
||||
|
||||
getSelectedRows: function() {
|
||||
var rows = [];
|
||||
$('tbody > tr > td:nth-child(1) input[type="checkbox"]:checked', table).each(function() {
|
||||
rows.push($(this).val());
|
||||
});
|
||||
|
||||
return rows;
|
||||
},
|
||||
|
||||
setAjaxParam: function(name, value) {
|
||||
ajaxParams[name] = value;
|
||||
},
|
||||
|
||||
addAjaxParam: function(name, value) {
|
||||
if (!ajaxParams[name]) {
|
||||
ajaxParams[name] = [];
|
||||
}
|
||||
|
||||
skip = false;
|
||||
for (var i = 0; i < (ajaxParams[name]).length; i++) { // check for duplicates
|
||||
if (ajaxParams[name][i] === value) {
|
||||
skip = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (skip === false) {
|
||||
ajaxParams[name].push(value);
|
||||
}
|
||||
},
|
||||
|
||||
clearAjaxParams: function(name, value) {
|
||||
ajaxParams = {};
|
||||
},
|
||||
|
||||
getDataTable: function() {
|
||||
return dataTable;
|
||||
},
|
||||
|
||||
getTableWrapper: function() {
|
||||
return tableWrapper;
|
||||
},
|
||||
|
||||
gettableContainer: function() {
|
||||
return tableContainer;
|
||||
},
|
||||
|
||||
getTable: function() {
|
||||
return table;
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
};
|
||||
695
Metronic/assets/global/scripts/jquery-sortable.js
vendored
Normal file
695
Metronic/assets/global/scripts/jquery-sortable.js
vendored
Normal file
@@ -0,0 +1,695 @@
|
||||
/* ===================================================
|
||||
* jquery-sortable.js v0.9.13
|
||||
* http://johnny.github.com/jquery-sortable/
|
||||
* ===================================================
|
||||
* Copyright (c) 2012 Jonas von Andrian
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* * The name of the author may not be used to endorse or promote products
|
||||
* derived from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
|
||||
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
* ========================================================== */
|
||||
|
||||
|
||||
!function ( $, window, pluginName, undefined){
|
||||
var containerDefaults = {
|
||||
// If true, items can be dragged from this container
|
||||
drag: true,
|
||||
// If true, items can be droped onto this container
|
||||
drop: true,
|
||||
// Exclude items from being draggable, if the
|
||||
// selector matches the item
|
||||
exclude: "",
|
||||
// If true, search for nested containers within an item.If you nest containers,
|
||||
// either the original selector with which you call the plugin must only match the top containers,
|
||||
// or you need to specify a group (see the bootstrap nav example)
|
||||
nested: true,
|
||||
// If true, the items are assumed to be arranged vertically
|
||||
vertical: true
|
||||
}, // end container defaults
|
||||
groupDefaults = {
|
||||
// This is executed after the placeholder has been moved.
|
||||
// $closestItemOrContainer contains the closest item, the placeholder
|
||||
// has been put at or the closest empty Container, the placeholder has
|
||||
// been appended to.
|
||||
afterMove: function ($placeholder, container, $closestItemOrContainer) {
|
||||
},
|
||||
// The exact css path between the container and its items, e.g. "> tbody"
|
||||
containerPath: "",
|
||||
// The css selector of the containers
|
||||
containerSelector: "ol, ul",
|
||||
// Distance the mouse has to travel to start dragging
|
||||
distance: 0,
|
||||
// Time in milliseconds after mousedown until dragging should start.
|
||||
// This option can be used to prevent unwanted drags when clicking on an element.
|
||||
delay: 0,
|
||||
// The css selector of the drag handle
|
||||
handle: "",
|
||||
// The exact css path between the item and its subcontainers.
|
||||
// It should only match the immediate items of a container.
|
||||
// No item of a subcontainer should be matched. E.g. for ol>div>li the itemPath is "> div"
|
||||
itemPath: "",
|
||||
// The css selector of the items
|
||||
itemSelector: "li",
|
||||
// The class given to "body" while an item is being dragged
|
||||
bodyClass: "dragging",
|
||||
// The class giving to an item while being dragged
|
||||
draggedClass: "dragged",
|
||||
// Check if the dragged item may be inside the container.
|
||||
// Use with care, since the search for a valid container entails a depth first search
|
||||
// and may be quite expensive.
|
||||
isValidTarget: function ($item, container) {
|
||||
return true
|
||||
},
|
||||
// Executed before onDrop if placeholder is detached.
|
||||
// This happens if pullPlaceholder is set to false and the drop occurs outside a container.
|
||||
onCancel: function ($item, container, _super, event) {
|
||||
},
|
||||
// Executed at the beginning of a mouse move event.
|
||||
// The Placeholder has not been moved yet.
|
||||
onDrag: function ($item, position, _super, event) {
|
||||
$item.css(position)
|
||||
},
|
||||
// Called after the drag has been started,
|
||||
// that is the mouse button is being held down and
|
||||
// the mouse is moving.
|
||||
// The container is the closest initialized container.
|
||||
// Therefore it might not be the container, that actually contains the item.
|
||||
onDragStart: function ($item, container, _super, event) {
|
||||
$item.css({
|
||||
height: $item.outerHeight(),
|
||||
width: $item.outerWidth()
|
||||
})
|
||||
$item.addClass(container.group.options.draggedClass)
|
||||
$("body").addClass(container.group.options.bodyClass)
|
||||
},
|
||||
// Called when the mouse button is being released
|
||||
onDrop: function ($item, container, _super, event) {
|
||||
;debugger
|
||||
$item.removeClass(container.group.options.draggedClass).removeAttr("style");
|
||||
$("body").removeClass(container.group.options.bodyClass);
|
||||
CallFunc();
|
||||
},
|
||||
// Called on mousedown. If falsy value is returned, the dragging will not start.
|
||||
// Ignore if element clicked is input, select or textarea
|
||||
onMousedown: function ($item, _super, event) {
|
||||
if (!event.target.nodeName.match(/^(input|select|textarea)$/i)) {
|
||||
event.preventDefault()
|
||||
return true
|
||||
}
|
||||
},
|
||||
// The class of the placeholder (must match placeholder option markup)
|
||||
placeholderClass: "placeholder",
|
||||
// Template for the placeholder. Can be any valid jQuery input
|
||||
// e.g. a string, a DOM element.
|
||||
// The placeholder must have the class "placeholder"
|
||||
placeholder: '<li class="placeholder"></li>',
|
||||
// If true, the position of the placeholder is calculated on every mousemove.
|
||||
// If false, it is only calculated when the mouse is above a container.
|
||||
pullPlaceholder: true,
|
||||
// Specifies serialization of the container group.
|
||||
// The pair $parent/$children is either container/items or item/subcontainers.
|
||||
serialize: function ($parent, $children, parentIsContainer) {
|
||||
var result = $.extend({}, $parent.data())
|
||||
|
||||
if(parentIsContainer)
|
||||
return [$children]
|
||||
else if ($children[0]){
|
||||
result.children = $children
|
||||
}
|
||||
|
||||
delete result.subContainers
|
||||
delete result.sortable
|
||||
|
||||
return result
|
||||
},
|
||||
// Set tolerance while dragging. Positive values decrease sensitivity,
|
||||
// negative values increase it.
|
||||
tolerance: 0
|
||||
}, // end group defaults
|
||||
containerGroups = {},
|
||||
groupCounter = 0,
|
||||
emptyBox = {
|
||||
left: 0,
|
||||
top: 0,
|
||||
bottom: 0,
|
||||
right:0
|
||||
},
|
||||
eventNames = {
|
||||
start: "touchstart.sortable mousedown.sortable",
|
||||
drop: "touchend.sortable touchcancel.sortable mouseup.sortable",
|
||||
drag: "touchmove.sortable mousemove.sortable",
|
||||
scroll: "scroll.sortable"
|
||||
},
|
||||
subContainerKey = "subContainers"
|
||||
|
||||
/*
|
||||
* a is Array [left, right, top, bottom]
|
||||
* b is array [left, top]
|
||||
*/
|
||||
function d(a,b) {
|
||||
var x = Math.max(0, a[0] - b[0], b[0] - a[1]),
|
||||
y = Math.max(0, a[2] - b[1], b[1] - a[3])
|
||||
return x+y;
|
||||
}
|
||||
|
||||
function setDimensions(array, dimensions, tolerance, useOffset) {
|
||||
var i = array.length,
|
||||
offsetMethod = useOffset ? "offset" : "position"
|
||||
tolerance = tolerance || 0
|
||||
|
||||
while(i--){
|
||||
var el = array[i].el ? array[i].el : $(array[i]),
|
||||
// use fitting method
|
||||
pos = el[offsetMethod]()
|
||||
pos.left += parseInt(el.css('margin-left'), 10)
|
||||
pos.top += parseInt(el.css('margin-top'),10)
|
||||
dimensions[i] = [
|
||||
pos.left - tolerance,
|
||||
pos.left + el.outerWidth() + tolerance,
|
||||
pos.top - tolerance,
|
||||
pos.top + el.outerHeight() + tolerance
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
function getRelativePosition(pointer, element) {
|
||||
var offset = element.offset()
|
||||
return {
|
||||
left: pointer.left - offset.left,
|
||||
top: pointer.top - offset.top
|
||||
}
|
||||
}
|
||||
|
||||
function sortByDistanceDesc(dimensions, pointer, lastPointer) {
|
||||
pointer = [pointer.left, pointer.top]
|
||||
lastPointer = lastPointer && [lastPointer.left, lastPointer.top]
|
||||
|
||||
var dim,
|
||||
i = dimensions.length,
|
||||
distances = []
|
||||
|
||||
while(i--){
|
||||
dim = dimensions[i]
|
||||
distances[i] = [i,d(dim,pointer), lastPointer && d(dim, lastPointer)]
|
||||
}
|
||||
distances = distances.sort(function (a,b) {
|
||||
return b[1] - a[1] || b[2] - a[2] || b[0] - a[0]
|
||||
})
|
||||
|
||||
// last entry is the closest
|
||||
return distances
|
||||
}
|
||||
|
||||
function ContainerGroup(options) {
|
||||
this.options = $.extend({}, groupDefaults, options)
|
||||
this.containers = []
|
||||
|
||||
if(!this.options.rootGroup){
|
||||
this.scrollProxy = $.proxy(this.scroll, this)
|
||||
this.dragProxy = $.proxy(this.drag, this)
|
||||
this.dropProxy = $.proxy(this.drop, this)
|
||||
this.placeholder = $(this.options.placeholder)
|
||||
|
||||
if(!options.isValidTarget)
|
||||
this.options.isValidTarget = undefined
|
||||
}
|
||||
}
|
||||
|
||||
ContainerGroup.get = function (options) {
|
||||
if(!containerGroups[options.group]) {
|
||||
if(options.group === undefined)
|
||||
options.group = groupCounter ++
|
||||
|
||||
containerGroups[options.group] = new ContainerGroup(options)
|
||||
}
|
||||
|
||||
return containerGroups[options.group]
|
||||
}
|
||||
|
||||
ContainerGroup.prototype = {
|
||||
dragInit: function (e, itemContainer) {
|
||||
this.$document = $(itemContainer.el[0].ownerDocument)
|
||||
|
||||
// get item to drag
|
||||
var closestItem = $(e.target).closest(this.options.itemSelector);
|
||||
// using the length of this item, prevents the plugin from being started if there is no handle being clicked on.
|
||||
// this may also be helpful in instantiating multidrag.
|
||||
if (closestItem.length) {
|
||||
this.item = closestItem;
|
||||
this.itemContainer = itemContainer;
|
||||
if (this.item.is(this.options.exclude) || !this.options.onMousedown(this.item, groupDefaults.onMousedown, e)) {
|
||||
return;
|
||||
}
|
||||
this.setPointer(e);
|
||||
this.toggleListeners('on');
|
||||
this.setupDelayTimer();
|
||||
this.dragInitDone = true;
|
||||
}
|
||||
},
|
||||
drag: function (e) {
|
||||
if(!this.dragging){
|
||||
if(!this.distanceMet(e) || !this.delayMet)
|
||||
return
|
||||
|
||||
this.options.onDragStart(this.item, this.itemContainer, groupDefaults.onDragStart, e)
|
||||
this.item.before(this.placeholder)
|
||||
this.dragging = true
|
||||
}
|
||||
|
||||
this.setPointer(e)
|
||||
// place item under the cursor
|
||||
this.options.onDrag(this.item,
|
||||
getRelativePosition(this.pointer, this.item.offsetParent()),
|
||||
groupDefaults.onDrag,
|
||||
e)
|
||||
|
||||
var p = this.getPointer(e),
|
||||
box = this.sameResultBox,
|
||||
t = this.options.tolerance
|
||||
|
||||
if(!box || box.top - t > p.top || box.bottom + t < p.top || box.left - t > p.left || box.right + t < p.left)
|
||||
if(!this.searchValidTarget()){
|
||||
this.placeholder.detach()
|
||||
this.lastAppendedItem = undefined
|
||||
}
|
||||
},
|
||||
drop: function (e) {
|
||||
this.toggleListeners('off')
|
||||
|
||||
this.dragInitDone = false
|
||||
|
||||
if(this.dragging){
|
||||
// processing Drop, check if placeholder is detached
|
||||
if(this.placeholder.closest("html")[0]){
|
||||
this.placeholder.before(this.item).detach()
|
||||
} else {
|
||||
this.options.onCancel(this.item, this.itemContainer, groupDefaults.onCancel, e)
|
||||
}
|
||||
this.options.onDrop(this.item, this.getContainer(this.item), groupDefaults.onDrop, e)
|
||||
|
||||
// cleanup
|
||||
this.clearDimensions()
|
||||
this.clearOffsetParent()
|
||||
this.lastAppendedItem = this.sameResultBox = undefined
|
||||
this.dragging = false
|
||||
}
|
||||
},
|
||||
searchValidTarget: function (pointer, lastPointer) {
|
||||
if(!pointer){
|
||||
pointer = this.relativePointer || this.pointer
|
||||
lastPointer = this.lastRelativePointer || this.lastPointer
|
||||
}
|
||||
|
||||
var distances = sortByDistanceDesc(this.getContainerDimensions(),
|
||||
pointer,
|
||||
lastPointer),
|
||||
i = distances.length
|
||||
|
||||
while(i--){
|
||||
var index = distances[i][0],
|
||||
distance = distances[i][1]
|
||||
|
||||
if(!distance || this.options.pullPlaceholder){
|
||||
var container = this.containers[index]
|
||||
if(!container.disabled){
|
||||
if(!this.$getOffsetParent()){
|
||||
var offsetParent = container.getItemOffsetParent()
|
||||
pointer = getRelativePosition(pointer, offsetParent)
|
||||
lastPointer = getRelativePosition(lastPointer, offsetParent)
|
||||
}
|
||||
if(container.searchValidTarget(pointer, lastPointer))
|
||||
return true
|
||||
}
|
||||
}
|
||||
}
|
||||
if(this.sameResultBox)
|
||||
this.sameResultBox = undefined
|
||||
},
|
||||
movePlaceholder: function (container, item, method, sameResultBox) {
|
||||
var lastAppendedItem = this.lastAppendedItem
|
||||
if(!sameResultBox && lastAppendedItem && lastAppendedItem[0] === item[0])
|
||||
return;
|
||||
|
||||
item[method](this.placeholder)
|
||||
this.lastAppendedItem = item
|
||||
this.sameResultBox = sameResultBox
|
||||
this.options.afterMove(this.placeholder, container, item)
|
||||
},
|
||||
getContainerDimensions: function () {
|
||||
if(!this.containerDimensions)
|
||||
setDimensions(this.containers, this.containerDimensions = [], this.options.tolerance, !this.$getOffsetParent())
|
||||
return this.containerDimensions
|
||||
},
|
||||
getContainer: function (element) {
|
||||
return element.closest(this.options.containerSelector).data(pluginName)
|
||||
},
|
||||
$getOffsetParent: function () {
|
||||
if(this.offsetParent === undefined){
|
||||
var i = this.containers.length - 1,
|
||||
offsetParent = this.containers[i].getItemOffsetParent()
|
||||
|
||||
if(!this.options.rootGroup){
|
||||
while(i--){
|
||||
if(offsetParent[0] != this.containers[i].getItemOffsetParent()[0]){
|
||||
// If every container has the same offset parent,
|
||||
// use position() which is relative to this parent,
|
||||
// otherwise use offset()
|
||||
// compare #setDimensions
|
||||
offsetParent = false
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
this.offsetParent = offsetParent
|
||||
}
|
||||
return this.offsetParent
|
||||
},
|
||||
setPointer: function (e) {
|
||||
var pointer = this.getPointer(e)
|
||||
|
||||
if(this.$getOffsetParent()){
|
||||
var relativePointer = getRelativePosition(pointer, this.$getOffsetParent())
|
||||
this.lastRelativePointer = this.relativePointer
|
||||
this.relativePointer = relativePointer
|
||||
}
|
||||
|
||||
this.lastPointer = this.pointer
|
||||
this.pointer = pointer
|
||||
},
|
||||
distanceMet: function (e) {
|
||||
var currentPointer = this.getPointer(e)
|
||||
return (Math.max(
|
||||
Math.abs(this.pointer.left - currentPointer.left),
|
||||
Math.abs(this.pointer.top - currentPointer.top)
|
||||
) >= this.options.distance)
|
||||
},
|
||||
getPointer: function(e) {
|
||||
var o = e.originalEvent || e.originalEvent.touches && e.originalEvent.touches[0]
|
||||
return {
|
||||
left: e.pageX || o.pageX,
|
||||
top: e.pageY || o.pageY
|
||||
}
|
||||
},
|
||||
setupDelayTimer: function () {
|
||||
var that = this
|
||||
this.delayMet = !this.options.delay
|
||||
|
||||
// init delay timer if needed
|
||||
if (!this.delayMet) {
|
||||
clearTimeout(this._mouseDelayTimer);
|
||||
this._mouseDelayTimer = setTimeout(function() {
|
||||
that.delayMet = true
|
||||
}, this.options.delay)
|
||||
}
|
||||
},
|
||||
scroll: function (e) {
|
||||
this.clearDimensions()
|
||||
this.clearOffsetParent() // TODO is this needed?
|
||||
},
|
||||
toggleListeners: function (method) {
|
||||
var that = this,
|
||||
events = ['drag','drop','scroll']
|
||||
|
||||
$.each(events,function (i,event) {
|
||||
that.$document[method](eventNames[event], that[event + 'Proxy'])
|
||||
})
|
||||
},
|
||||
clearOffsetParent: function () {
|
||||
this.offsetParent = undefined
|
||||
},
|
||||
// Recursively clear container and item dimensions
|
||||
clearDimensions: function () {
|
||||
this.traverse(function(object){
|
||||
object._clearDimensions()
|
||||
})
|
||||
},
|
||||
traverse: function(callback) {
|
||||
callback(this)
|
||||
var i = this.containers.length
|
||||
while(i--){
|
||||
this.containers[i].traverse(callback)
|
||||
}
|
||||
},
|
||||
_clearDimensions: function(){
|
||||
this.containerDimensions = undefined
|
||||
},
|
||||
_destroy: function () {
|
||||
containerGroups[this.options.group] = undefined
|
||||
}
|
||||
}
|
||||
|
||||
function Container(element, options) {
|
||||
this.el = element
|
||||
this.options = $.extend( {}, containerDefaults, options)
|
||||
|
||||
this.group = ContainerGroup.get(this.options)
|
||||
this.rootGroup = this.options.rootGroup || this.group
|
||||
this.handle = this.rootGroup.options.handle || this.rootGroup.options.itemSelector
|
||||
|
||||
var itemPath = this.rootGroup.options.itemPath
|
||||
this.target = itemPath ? this.el.find(itemPath) : this.el
|
||||
|
||||
this.target.on(eventNames.start, this.handle, $.proxy(this.dragInit, this))
|
||||
|
||||
if(this.options.drop)
|
||||
this.group.containers.push(this)
|
||||
}
|
||||
|
||||
Container.prototype = {
|
||||
dragInit: function (e) {
|
||||
var rootGroup = this.rootGroup
|
||||
|
||||
if( !this.disabled &&
|
||||
!rootGroup.dragInitDone &&
|
||||
this.options.drag &&
|
||||
this.isValidDrag(e)) {
|
||||
rootGroup.dragInit(e, this)
|
||||
}
|
||||
},
|
||||
isValidDrag: function(e) {
|
||||
return e.which == 1 ||
|
||||
e.type == "touchstart" && e.originalEvent.touches.length == 1
|
||||
},
|
||||
searchValidTarget: function (pointer, lastPointer) {
|
||||
var distances = sortByDistanceDesc(this.getItemDimensions(),
|
||||
pointer,
|
||||
lastPointer),
|
||||
i = distances.length,
|
||||
rootGroup = this.rootGroup,
|
||||
validTarget = !rootGroup.options.isValidTarget ||
|
||||
rootGroup.options.isValidTarget(rootGroup.item, this)
|
||||
|
||||
if(!i && validTarget){
|
||||
rootGroup.movePlaceholder(this, this.target, "append")
|
||||
return true
|
||||
} else
|
||||
while(i--){
|
||||
var index = distances[i][0],
|
||||
distance = distances[i][1]
|
||||
if(!distance && this.hasChildGroup(index)){
|
||||
var found = this.getContainerGroup(index).searchValidTarget(pointer, lastPointer)
|
||||
if(found)
|
||||
return true
|
||||
}
|
||||
else if(validTarget){
|
||||
this.movePlaceholder(index, pointer)
|
||||
return true
|
||||
}
|
||||
}
|
||||
},
|
||||
movePlaceholder: function (index, pointer) {
|
||||
var item = $(this.items[index]),
|
||||
dim = this.itemDimensions[index],
|
||||
method = "after",
|
||||
width = item.outerWidth(),
|
||||
height = item.outerHeight(),
|
||||
offset = item.offset(),
|
||||
sameResultBox = {
|
||||
left: offset.left,
|
||||
right: offset.left + width,
|
||||
top: offset.top,
|
||||
bottom: offset.top + height
|
||||
}
|
||||
if(this.options.vertical){
|
||||
var yCenter = (dim[2] + dim[3]) / 2,
|
||||
inUpperHalf = pointer.top <= yCenter
|
||||
if(inUpperHalf){
|
||||
method = "before"
|
||||
sameResultBox.bottom -= height / 2
|
||||
} else
|
||||
sameResultBox.top += height / 2
|
||||
} else {
|
||||
var xCenter = (dim[0] + dim[1]) / 2,
|
||||
inLeftHalf = pointer.left <= xCenter
|
||||
if(inLeftHalf){
|
||||
method = "before"
|
||||
sameResultBox.right -= width / 2
|
||||
} else
|
||||
sameResultBox.left += width / 2
|
||||
}
|
||||
if(this.hasChildGroup(index))
|
||||
sameResultBox = emptyBox
|
||||
this.rootGroup.movePlaceholder(this, item, method, sameResultBox)
|
||||
},
|
||||
getItemDimensions: function () {
|
||||
if(!this.itemDimensions){
|
||||
this.items = this.$getChildren(this.el, "item").filter(
|
||||
":not(." + this.group.options.placeholderClass + ", ." + this.group.options.draggedClass + ")"
|
||||
).get()
|
||||
setDimensions(this.items, this.itemDimensions = [], this.options.tolerance)
|
||||
}
|
||||
return this.itemDimensions
|
||||
},
|
||||
getItemOffsetParent: function () {
|
||||
var offsetParent,
|
||||
el = this.el
|
||||
// Since el might be empty we have to check el itself and
|
||||
// can not do something like el.children().first().offsetParent()
|
||||
if(el.css("position") === "relative" || el.css("position") === "absolute" || el.css("position") === "fixed")
|
||||
offsetParent = el
|
||||
else
|
||||
offsetParent = el.offsetParent()
|
||||
return offsetParent
|
||||
},
|
||||
hasChildGroup: function (index) {
|
||||
return this.options.nested && this.getContainerGroup(index)
|
||||
},
|
||||
getContainerGroup: function (index) {
|
||||
var childGroup = $.data(this.items[index], subContainerKey)
|
||||
if( childGroup === undefined){
|
||||
var childContainers = this.$getChildren(this.items[index], "container")
|
||||
childGroup = false
|
||||
|
||||
if(childContainers[0]){
|
||||
var options = $.extend({}, this.options, {
|
||||
rootGroup: this.rootGroup,
|
||||
group: groupCounter ++
|
||||
})
|
||||
childGroup = childContainers[pluginName](options).data(pluginName).group
|
||||
}
|
||||
$.data(this.items[index], subContainerKey, childGroup)
|
||||
}
|
||||
return childGroup
|
||||
},
|
||||
$getChildren: function (parent, type) {
|
||||
var options = this.rootGroup.options,
|
||||
path = options[type + "Path"],
|
||||
selector = options[type + "Selector"]
|
||||
|
||||
parent = $(parent)
|
||||
if(path)
|
||||
parent = parent.find(path)
|
||||
|
||||
return parent.children(selector)
|
||||
},
|
||||
_serialize: function (parent, isContainer) {
|
||||
var that = this,
|
||||
childType = isContainer ? "item" : "container",
|
||||
|
||||
children = this.$getChildren(parent, childType).not(this.options.exclude).map(function () {
|
||||
return that._serialize($(this), !isContainer)
|
||||
}).get()
|
||||
|
||||
return this.rootGroup.options.serialize(parent, children, isContainer)
|
||||
},
|
||||
traverse: function(callback) {
|
||||
$.each(this.items || [], function(item){
|
||||
var group = $.data(this, subContainerKey)
|
||||
if(group)
|
||||
group.traverse(callback)
|
||||
});
|
||||
|
||||
callback(this)
|
||||
},
|
||||
_clearDimensions: function () {
|
||||
this.itemDimensions = undefined
|
||||
},
|
||||
_destroy: function() {
|
||||
var that = this;
|
||||
|
||||
this.target.off(eventNames.start, this.handle);
|
||||
this.el.removeData(pluginName)
|
||||
|
||||
if(this.options.drop)
|
||||
this.group.containers = $.grep(this.group.containers, function(val){
|
||||
return val != that
|
||||
})
|
||||
|
||||
$.each(this.items || [], function(){
|
||||
$.removeData(this, subContainerKey)
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
var API = {
|
||||
enable: function() {
|
||||
this.traverse(function(object){
|
||||
object.disabled = false
|
||||
})
|
||||
},
|
||||
disable: function (){
|
||||
this.traverse(function(object){
|
||||
object.disabled = true
|
||||
})
|
||||
},
|
||||
serialize: function () {
|
||||
return this._serialize(this.el, true)
|
||||
},
|
||||
refresh: function() {
|
||||
this.traverse(function(object){
|
||||
object._clearDimensions()
|
||||
})
|
||||
},
|
||||
destroy: function () {
|
||||
this.traverse(function(object){
|
||||
object._destroy();
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
$.extend(Container.prototype, API)
|
||||
|
||||
/**
|
||||
* jQuery API
|
||||
*
|
||||
* Parameters are
|
||||
* either options on init
|
||||
* or a method name followed by arguments to pass to the method
|
||||
*/
|
||||
$.fn[pluginName] = function(methodOrOptions) {
|
||||
var args = Array.prototype.slice.call(arguments, 1)
|
||||
|
||||
return this.map(function(){
|
||||
var $t = $(this),
|
||||
object = $t.data(pluginName)
|
||||
|
||||
if(object && API[methodOrOptions])
|
||||
return API[methodOrOptions].apply(object, args) || this
|
||||
else if(!object && (methodOrOptions === undefined ||
|
||||
typeof methodOrOptions === "object"))
|
||||
$t.data(pluginName, new Container($t, methodOrOptions))
|
||||
|
||||
return this
|
||||
});
|
||||
};
|
||||
|
||||
}(jQuery, window, 'sortable');
|
||||
14622
Metronic/assets/global/scripts/jquery.dataTables.js
vendored
Normal file
14622
Metronic/assets/global/scripts/jquery.dataTables.js
vendored
Normal file
File diff suppressed because it is too large
Load Diff
591
Metronic/assets/global/scripts/jquery.dataTables.min.js
vendored
Normal file
591
Metronic/assets/global/scripts/jquery.dataTables.min.js
vendored
Normal file
@@ -0,0 +1,591 @@
|
||||
/*!
|
||||
DataTables 1.10.15
|
||||
©2008-2017 SpryMedia Ltd - datatables.net/license
|
||||
*/
|
||||
(function (h) { "function" === typeof define && define.amd ? define(["jquery"], function (E) { return h(E, window, document) }) : "object" === typeof exports ? module.exports = function (E, H) { E || (E = window); H || (H = "undefined" !== typeof window ? require("jquery") : require("jquery")(E)); return h(H, E, E.document) } : h(jQuery, window, document) })(function (h, E, H, k) {
|
||||
function Y(a) {
|
||||
var b, c, d = {}; h.each(a, function (e) {
|
||||
if ((b = e.match(/^([^A-Z]+?)([A-Z])/)) && -1 !== "a aa ai ao as b fn i m o s ".indexOf(b[1] + " ")) c = e.replace(b[0], b[2].toLowerCase()),
|
||||
d[c] = e, "o" === b[1] && Y(a[e])
|
||||
}); a._hungarianMap = d
|
||||
} function J(a, b, c) { a._hungarianMap || Y(a); var d; h.each(b, function (e) { d = a._hungarianMap[e]; if (d !== k && (c || b[d] === k)) "o" === d.charAt(0) ? (b[d] || (b[d] = {}), h.extend(!0, b[d], b[e]), J(a[d], b[d], c)) : b[d] = b[e] }) } function Fa(a) {
|
||||
var b = m.defaults.oLanguage, c = a.sZeroRecords; !a.sEmptyTable && (c && "No data available in table" === b.sEmptyTable) && F(a, a, "sZeroRecords", "sEmptyTable"); !a.sLoadingRecords && (c && "Loading..." === b.sLoadingRecords) && F(a, a, "sZeroRecords", "sLoadingRecords");
|
||||
a.sInfoThousands && (a.sThousands = a.sInfoThousands); (a = a.sDecimal) && fb(a)
|
||||
} function gb(a) {
|
||||
A(a, "ordering", "bSort"); A(a, "orderMulti", "bSortMulti"); A(a, "orderClasses", "bSortClasses"); A(a, "orderCellsTop", "bSortCellsTop"); A(a, "order", "aaSorting"); A(a, "orderFixed", "aaSortingFixed"); A(a, "paging", "bPaginate"); A(a, "pagingType", "sPaginationType"); A(a, "pageLength", "iDisplayLength"); A(a, "searching", "bFilter"); "boolean" === typeof a.sScrollX && (a.sScrollX = a.sScrollX ? "100%" : ""); "boolean" === typeof a.scrollX && (a.scrollX =
|
||||
a.scrollX ? "100%" : ""); if (a = a.aoSearchCols) for (var b = 0, c = a.length; b < c; b++) a[b] && J(m.models.oSearch, a[b])
|
||||
} function hb(a) { A(a, "orderable", "bSortable"); A(a, "orderData", "aDataSort"); A(a, "orderSequence", "asSorting"); A(a, "orderDataType", "sortDataType"); var b = a.aDataSort; "number" === typeof b && !h.isArray(b) && (a.aDataSort = [b]) } function ib(a) {
|
||||
if (!m.__browser) {
|
||||
var b = {}; m.__browser = b; var c = h("<div/>").css({ position: "fixed", top: 0, left: -1 * h(E).scrollLeft(), height: 1, width: 1, overflow: "hidden" }).append(h("<div/>").css({
|
||||
position: "absolute",
|
||||
top: 1, left: 1, width: 100, overflow: "scroll"
|
||||
}).append(h("<div/>").css({ width: "100%", height: 10 }))).appendTo("body"), d = c.children(), e = d.children(); b.barWidth = d[0].offsetWidth - d[0].clientWidth; b.bScrollOversize = 100 === e[0].offsetWidth && 100 !== d[0].clientWidth; b.bScrollbarLeft = 1 !== Math.round(e.offset().left); b.bBounding = c[0].getBoundingClientRect().width ? !0 : !1; c.remove()
|
||||
} h.extend(a.oBrowser, m.__browser); a.oScroll.iBarWidth = m.__browser.barWidth
|
||||
} function jb(a, b, c, d, e, f) {
|
||||
var g, j = !1; c !== k && (g = c, j = !0); for (; d !==
|
||||
e;) a.hasOwnProperty(d) && (g = j ? b(g, a[d], d, a) : a[d], j = !0, d += f); return g
|
||||
} function Ga(a, b) { var c = m.defaults.column, d = a.aoColumns.length, c = h.extend({}, m.models.oColumn, c, { nTh: b ? b : H.createElement("th"), sTitle: c.sTitle ? c.sTitle : b ? b.innerHTML : "", aDataSort: c.aDataSort ? c.aDataSort : [d], mData: c.mData ? c.mData : d, idx: d }); a.aoColumns.push(c); c = a.aoPreSearchCols; c[d] = h.extend({}, m.models.oSearch, c[d]); la(a, d, h(b).data()) } function la(a, b, c) {
|
||||
var b = a.aoColumns[b], d = a.oClasses, e = h(b.nTh); if (!b.sWidthOrig) {
|
||||
b.sWidthOrig =
|
||||
e.attr("width") || null; var f = (e.attr("style") || "").match(/width:\s*(\d+[pxem%]+)/); f && (b.sWidthOrig = f[1])
|
||||
} c !== k && null !== c && (hb(c), J(m.defaults.column, c), c.mDataProp !== k && !c.mData && (c.mData = c.mDataProp), c.sType && (b._sManualType = c.sType), c.className && !c.sClass && (c.sClass = c.className), h.extend(b, c), F(b, c, "sWidth", "sWidthOrig"), c.iDataSort !== k && (b.aDataSort = [c.iDataSort]), F(b, c, "aDataSort")); var g = b.mData, j = R(g), i = b.mRender ? R(b.mRender) : null, c = function (a) { return "string" === typeof a && -1 !== a.indexOf("@") };
|
||||
b._bAttrSrc = h.isPlainObject(g) && (c(g.sort) || c(g.type) || c(g.filter)); b._setter = null; b.fnGetData = function (a, b, c) { var d = j(a, b, k, c); return i && b ? i(d, b, a, c) : d }; b.fnSetData = function (a, b, c) { return S(g)(a, b, c) }; "number" !== typeof g && (a._rowReadObject = !0); a.oFeatures.bSort || (b.bSortable = !1, e.addClass(d.sSortableNone)); a = -1 !== h.inArray("asc", b.asSorting); c = -1 !== h.inArray("desc", b.asSorting); !b.bSortable || !a && !c ? (b.sSortingClass = d.sSortableNone, b.sSortingClassJUI = "") : a && !c ? (b.sSortingClass = d.sSortableAsc, b.sSortingClassJUI =
|
||||
d.sSortJUIAscAllowed) : !a && c ? (b.sSortingClass = d.sSortableDesc, b.sSortingClassJUI = d.sSortJUIDescAllowed) : (b.sSortingClass = d.sSortable, b.sSortingClassJUI = d.sSortJUI)
|
||||
} function Z(a) { if (!1 !== a.oFeatures.bAutoWidth) { var b = a.aoColumns; Ha(a); for (var c = 0, d = b.length; c < d; c++) b[c].nTh.style.width = b[c].sWidth } b = a.oScroll; ("" !== b.sY || "" !== b.sX) && ma(a); s(a, null, "column-sizing", [a]) } function $(a, b) { var c = na(a, "bVisible"); return "number" === typeof c[b] ? c[b] : null } function aa(a, b) {
|
||||
var c = na(a, "bVisible"), c = h.inArray(b,
|
||||
c); return -1 !== c ? c : null
|
||||
} function ba(a) { var b = 0; h.each(a.aoColumns, function (a, d) { d.bVisible && "none" !== h(d.nTh).css("display") && b++ }); return b } function na(a, b) { var c = []; h.map(a.aoColumns, function (a, e) { a[b] && c.push(e) }); return c } function Ia(a) {
|
||||
var b = a.aoColumns, c = a.aoData, d = m.ext.type.detect, e, f, g, j, i, h, l, q, r; e = 0; for (f = b.length; e < f; e++) if (l = b[e], r = [], !l.sType && l._sManualType) l.sType = l._sManualType; else if (!l.sType) {
|
||||
g = 0; for (j = d.length; g < j; g++) {
|
||||
i = 0; for (h = c.length; i < h; i++) {
|
||||
r[i] === k && (r[i] = B(a, i, e, "type"));
|
||||
q = d[g](r[i], a); if (!q && g !== d.length - 1) break; if ("html" === q) break
|
||||
} if (q) { l.sType = q; break }
|
||||
} l.sType || (l.sType = "string")
|
||||
}
|
||||
} function kb(a, b, c, d) {
|
||||
var e, f, g, j, i, n, l = a.aoColumns; if (b) for (e = b.length - 1; 0 <= e; e--) {
|
||||
n = b[e]; var q = n.targets !== k ? n.targets : n.aTargets; h.isArray(q) || (q = [q]); f = 0; for (g = q.length; f < g; f++) if ("number" === typeof q[f] && 0 <= q[f]) { for (; l.length <= q[f];) Ga(a); d(q[f], n) } else if ("number" === typeof q[f] && 0 > q[f]) d(l.length + q[f], n); else if ("string" === typeof q[f]) {
|
||||
j = 0; for (i = l.length; j < i; j++) ("_all" == q[f] || h(l[j].nTh).hasClass(q[f])) &&
|
||||
d(j, n)
|
||||
}
|
||||
} if (c) { e = 0; for (a = c.length; e < a; e++) d(e, c[e]) }
|
||||
} function N(a, b, c, d) { var e = a.aoData.length, f = h.extend(!0, {}, m.models.oRow, { src: c ? "dom" : "data", idx: e }); f._aData = b; a.aoData.push(f); for (var g = a.aoColumns, j = 0, i = g.length; j < i; j++) g[j].sType = null; a.aiDisplayMaster.push(e); b = a.rowIdFn(b); b !== k && (a.aIds[b] = f); (c || !a.oFeatures.bDeferRender) && Ja(a, e, c, d); return e } function oa(a, b) { var c; b instanceof h || (b = h(b)); return b.map(function (b, e) { c = Ka(a, e); return N(a, c.data, e, c.cells) }) } function B(a, b, c, d) {
|
||||
var e = a.iDraw,
|
||||
f = a.aoColumns[c], g = a.aoData[b]._aData, j = f.sDefaultContent, i = f.fnGetData(g, d, { settings: a, row: b, col: c }); if (i === k) return a.iDrawError != e && null === j && (K(a, 0, "Requested unknown parameter " + ("function" == typeof f.mData ? "{function}" : "'" + f.mData + "'") + " for row " + b + ", column " + c, 4), a.iDrawError = e), j; if ((i === g || null === i) && null !== j && d !== k) i = j; else if ("function" === typeof i) return i.call(g); return null === i && "display" == d ? "" : i
|
||||
} function lb(a, b, c, d) { a.aoColumns[c].fnSetData(a.aoData[b]._aData, d, { settings: a, row: b, col: c }) }
|
||||
function La(a) { return h.map(a.match(/(\\.|[^\.])+/g) || [""], function (a) { return a.replace(/\\\./g, ".") }) } function R(a) {
|
||||
if (h.isPlainObject(a)) { var b = {}; h.each(a, function (a, c) { c && (b[a] = R(c)) }); return function (a, c, f, g) { var j = b[c] || b._; return j !== k ? j(a, c, f, g) : a } } if (null === a) return function (a) { return a }; if ("function" === typeof a) return function (b, c, f, g) { return a(b, c, f, g) }; if ("string" === typeof a && (-1 !== a.indexOf(".") || -1 !== a.indexOf("[") || -1 !== a.indexOf("("))) {
|
||||
var c = function (a, b, f) {
|
||||
var g, j; if ("" !== f) {
|
||||
j = La(f);
|
||||
for (var i = 0, n = j.length; i < n; i++) { f = j[i].match(ca); g = j[i].match(V); if (f) { j[i] = j[i].replace(ca, ""); "" !== j[i] && (a = a[j[i]]); g = []; j.splice(0, i + 1); j = j.join("."); if (h.isArray(a)) { i = 0; for (n = a.length; i < n; i++) g.push(c(a[i], b, j)) } a = f[0].substring(1, f[0].length - 1); a = "" === a ? g : g.join(a); break } else if (g) { j[i] = j[i].replace(V, ""); a = a[j[i]](); continue } if (null === a || a[j[i]] === k) return k; a = a[j[i]] }
|
||||
} return a
|
||||
}; return function (b, e) { return c(b, e, a) }
|
||||
} return function (b) { return b[a] }
|
||||
} function S(a) {
|
||||
if (h.isPlainObject(a)) return S(a._);
|
||||
if (null === a) return function () { }; if ("function" === typeof a) return function (b, d, e) { a(b, "set", d, e) }; if ("string" === typeof a && (-1 !== a.indexOf(".") || -1 !== a.indexOf("[") || -1 !== a.indexOf("("))) {
|
||||
var b = function (a, d, e) {
|
||||
var e = La(e), f; f = e[e.length - 1]; for (var g, j, i = 0, n = e.length - 1; i < n; i++) {
|
||||
g = e[i].match(ca); j = e[i].match(V); if (g) { e[i] = e[i].replace(ca, ""); a[e[i]] = []; f = e.slice(); f.splice(0, i + 1); g = f.join("."); if (h.isArray(d)) { j = 0; for (n = d.length; j < n; j++) f = {}, b(f, d[j], g), a[e[i]].push(f) } else a[e[i]] = d; return } j && (e[i] = e[i].replace(V,
|
||||
""), a = a[e[i]](d)); if (null === a[e[i]] || a[e[i]] === k) a[e[i]] = {}; a = a[e[i]]
|
||||
} if (f.match(V)) a[f.replace(V, "")](d); else a[f.replace(ca, "")] = d
|
||||
}; return function (c, d) { return b(c, d, a) }
|
||||
} return function (b, d) { b[a] = d }
|
||||
} function Ma(a) { return D(a.aoData, "_aData") } function pa(a) { a.aoData.length = 0; a.aiDisplayMaster.length = 0; a.aiDisplay.length = 0; a.aIds = {} } function qa(a, b, c) { for (var d = -1, e = 0, f = a.length; e < f; e++) a[e] == b ? d = e : a[e] > b && a[e]--; -1 != d && c === k && a.splice(d, 1) } function da(a, b, c, d) {
|
||||
var e = a.aoData[b], f, g = function (c, d) {
|
||||
for (; c.childNodes.length;) c.removeChild(c.firstChild);
|
||||
c.innerHTML = B(a, b, d, "display")
|
||||
}; if ("dom" === c || (!c || "auto" === c) && "dom" === e.src) e._aData = Ka(a, e, d, d === k ? k : e._aData).data; else { var j = e.anCells; if (j) if (d !== k) g(j[d], d); else { c = 0; for (f = j.length; c < f; c++) g(j[c], c) } } e._aSortData = null; e._aFilterData = null; g = a.aoColumns; if (d !== k) g[d].sType = null; else { c = 0; for (f = g.length; c < f; c++) g[c].sType = null; Na(a, e) }
|
||||
} function Ka(a, b, c, d) {
|
||||
var e = [], f = b.firstChild, g, j, i = 0, n, l = a.aoColumns, q = a._rowReadObject, d = d !== k ? d : q ? {} : [], r = function (a, b) {
|
||||
if ("string" === typeof a) {
|
||||
var c = a.indexOf("@");
|
||||
-1 !== c && (c = a.substring(c + 1), S(a)(d, b.getAttribute(c)))
|
||||
}
|
||||
}, m = function (a) { if (c === k || c === i) j = l[i], n = h.trim(a.innerHTML), j && j._bAttrSrc ? (S(j.mData._)(d, n), r(j.mData.sort, a), r(j.mData.type, a), r(j.mData.filter, a)) : q ? (j._setter || (j._setter = S(j.mData)), j._setter(d, n)) : d[i] = n; i++ }; if (f) for (; f;) { g = f.nodeName.toUpperCase(); if ("TD" == g || "TH" == g) m(f), e.push(f); f = f.nextSibling } else { e = b.anCells; f = 0; for (g = e.length; f < g; f++) m(e[f]) } if (b = b.firstChild ? b : b.nTr) (b = b.getAttribute("id")) && S(a.rowId)(d, b); return { data: d, cells: e }
|
||||
}
|
||||
function Ja(a, b, c, d) {
|
||||
var e = a.aoData[b], f = e._aData, g = [], j, i, n, l, q; if (null === e.nTr) {
|
||||
j = c || H.createElement("tr"); e.nTr = j; e.anCells = g; j._DT_RowIndex = b; Na(a, e); l = 0; for (q = a.aoColumns.length; l < q; l++) {
|
||||
n = a.aoColumns[l]; i = c ? d[l] : H.createElement(n.sCellType); i._DT_CellIndex = { row: b, column: l }; g.push(i); if ((!c || n.mRender || n.mData !== l) && (!h.isPlainObject(n.mData) || n.mData._ !== l + ".display")) i.innerHTML = B(a, b, l, "display"); n.sClass && (i.className += " " + n.sClass); n.bVisible && !c ? j.appendChild(i) : !n.bVisible && c && i.parentNode.removeChild(i);
|
||||
n.fnCreatedCell && n.fnCreatedCell.call(a.oInstance, i, B(a, b, l), f, b, l)
|
||||
} s(a, "aoRowCreatedCallback", null, [j, f, b])
|
||||
} e.nTr.setAttribute("role", "row")
|
||||
} function Na(a, b) { var c = b.nTr, d = b._aData; if (c) { var e = a.rowIdFn(d); e && (c.id = e); d.DT_RowClass && (e = d.DT_RowClass.split(" "), b.__rowc = b.__rowc ? sa(b.__rowc.concat(e)) : e, h(c).removeClass(b.__rowc.join(" ")).addClass(d.DT_RowClass)); d.DT_RowAttr && h(c).attr(d.DT_RowAttr); d.DT_RowData && h(c).data(d.DT_RowData) } } function mb(a) {
|
||||
var b, c, d, e, f, g = a.nTHead, j = a.nTFoot, i = 0 ===
|
||||
h("th, td", g).length, n = a.oClasses, l = a.aoColumns; i && (e = h("<tr/>").appendTo(g)); b = 0; for (c = l.length; b < c; b++) f = l[b], d = h(f.nTh).addClass(f.sClass), i && d.appendTo(e), a.oFeatures.bSort && (d.addClass(f.sSortingClass), !1 !== f.bSortable && (d.attr("tabindex", a.iTabIndex).attr("aria-controls", a.sTableId), Oa(a, f.nTh, b))), f.sTitle != d[0].innerHTML && d.html(f.sTitle), Pa(a, "header")(a, d, f, n); i && ea(a.aoHeader, g); h(g).find(">tr").attr("role", "row"); h(g).find(">tr>th, >tr>td").addClass(n.sHeaderTH); h(j).find(">tr>th, >tr>td").addClass(n.sFooterTH);
|
||||
if (null !== j) { a = a.aoFooter[0]; b = 0; for (c = a.length; b < c; b++) f = l[b], f.nTf = a[b].cell, f.sClass && h(f.nTf).addClass(f.sClass) }
|
||||
} function fa(a, b, c) {
|
||||
var d, e, f, g = [], j = [], i = a.aoColumns.length, n; if (b) {
|
||||
c === k && (c = !1); d = 0; for (e = b.length; d < e; d++) { g[d] = b[d].slice(); g[d].nTr = b[d].nTr; for (f = i - 1; 0 <= f; f--) !a.aoColumns[f].bVisible && !c && g[d].splice(f, 1); j.push([]) } d = 0; for (e = g.length; d < e; d++) {
|
||||
if (a = g[d].nTr) for (; f = a.firstChild;) a.removeChild(f); f = 0; for (b = g[d].length; f < b; f++) if (n = i = 1, j[d][f] === k) {
|
||||
a.appendChild(g[d][f].cell);
|
||||
for (j[d][f] = 1; g[d + i] !== k && g[d][f].cell == g[d + i][f].cell;) j[d + i][f] = 1, i++; for (; g[d][f + n] !== k && g[d][f].cell == g[d][f + n].cell;) { for (c = 0; c < i; c++) j[d + c][f + n] = 1; n++ } h(g[d][f].cell).attr("rowspan", i).attr("colspan", n)
|
||||
}
|
||||
}
|
||||
}
|
||||
} function O(a) {
|
||||
var b = s(a, "aoPreDrawCallback", "preDraw", [a]); if (-1 !== h.inArray(!1, b)) C(a, !1); else {
|
||||
var b = [], c = 0, d = a.asStripeClasses, e = d.length, f = a.oLanguage, g = a.iInitDisplayStart, j = "ssp" == y(a), i = a.aiDisplay; a.bDrawing = !0; g !== k && -1 !== g && (a._iDisplayStart = j ? g : g >= a.fnRecordsDisplay() ? 0 : g, a.iInitDisplayStart =
|
||||
-1); var g = a._iDisplayStart, n = a.fnDisplayEnd(); if (a.bDeferLoading) a.bDeferLoading = !1, a.iDraw++, C(a, !1); else if (j) { if (!a.bDestroying && !nb(a)) return } else a.iDraw++; if (0 !== i.length) { f = j ? a.aoData.length : n; for (j = j ? 0 : g; j < f; j++) { var l = i[j], q = a.aoData[l]; null === q.nTr && Ja(a, l); l = q.nTr; if (0 !== e) { var r = d[c % e]; q._sRowStripe != r && (h(l).removeClass(q._sRowStripe).addClass(r), q._sRowStripe = r) } s(a, "aoRowCallback", null, [l, q._aData, c, j]); b.push(l); c++ } } else c = f.sZeroRecords, 1 == a.iDraw && "ajax" == y(a) ? c = f.sLoadingRecords :
|
||||
f.sEmptyTable && 0 === a.fnRecordsTotal() && (c = f.sEmptyTable), b[0] = h("<tr/>", { "class": e ? d[0] : "" }).append(h("<td />", { valign: "top", colSpan: ba(a), "class": a.oClasses.sRowEmpty }).html(c))[0]; s(a, "aoHeaderCallback", "header", [h(a.nTHead).children("tr")[0], Ma(a), g, n, i]); s(a, "aoFooterCallback", "footer", [h(a.nTFoot).children("tr")[0], Ma(a), g, n, i]); d = h(a.nTBody); d.children().detach(); d.append(h(b)); s(a, "aoDrawCallback", "draw", [a]); a.bSorted = !1; a.bFiltered = !1; a.bDrawing = !1
|
||||
}
|
||||
} function T(a, b) {
|
||||
var c = a.oFeatures, d = c.bFilter;
|
||||
c.bSort && ob(a); d ? ga(a, a.oPreviousSearch) : a.aiDisplay = a.aiDisplayMaster.slice(); !0 !== b && (a._iDisplayStart = 0); a._drawHold = b; O(a); a._drawHold = !1
|
||||
} function pb(a) {
|
||||
var b = a.oClasses, c = h(a.nTable), c = h("<div/>").insertBefore(c), d = a.oFeatures, e = h("<div/>", { id: a.sTableId + "_wrapper", "class": b.sWrapper + (a.nTFoot ? "" : " " + b.sNoFooter) }); a.nHolding = c[0]; a.nTableWrapper = e[0]; a.nTableReinsertBefore = a.nTable.nextSibling; for (var f = a.sDom.split(""), g, j, i, n, l, q, k = 0; k < f.length; k++) {
|
||||
g = null; j = f[k]; if ("<" == j) {
|
||||
i = h("<div/>")[0];
|
||||
n = f[k + 1]; if ("'" == n || '"' == n) { l = ""; for (q = 2; f[k + q] != n;) l += f[k + q], q++; "H" == l ? l = b.sJUIHeader : "F" == l && (l = b.sJUIFooter); -1 != l.indexOf(".") ? (n = l.split("."), i.id = n[0].substr(1, n[0].length - 1), i.className = n[1]) : "#" == l.charAt(0) ? i.id = l.substr(1, l.length - 1) : i.className = l; k += q } e.append(i); e = h(i)
|
||||
} else if (">" == j) e = e.parent(); else if ("l" == j && d.bPaginate && d.bLengthChange) g = qb(a); else if ("f" == j && d.bFilter) g = rb(a); else if ("r" == j && d.bProcessing) g = sb(a); else if ("t" == j) g = tb(a); else if ("i" == j && d.bInfo) g = ub(a); else if ("p" ==
|
||||
j && d.bPaginate) g = vb(a); else if (0 !== m.ext.feature.length) { i = m.ext.feature; q = 0; for (n = i.length; q < n; q++) if (j == i[q].cFeature) { g = i[q].fnInit(a); break } } g && (i = a.aanFeatures, i[j] || (i[j] = []), i[j].push(g), e.append(g))
|
||||
} c.replaceWith(e); a.nHolding = null
|
||||
} function ea(a, b) {
|
||||
var c = h(b).children("tr"), d, e, f, g, j, i, n, l, q, k; a.splice(0, a.length); f = 0; for (i = c.length; f < i; f++) a.push([]); f = 0; for (i = c.length; f < i; f++) {
|
||||
d = c[f]; for (e = d.firstChild; e;) {
|
||||
if ("TD" == e.nodeName.toUpperCase() || "TH" == e.nodeName.toUpperCase()) {
|
||||
l = 1 * e.getAttribute("colspan");
|
||||
q = 1 * e.getAttribute("rowspan"); l = !l || 0 === l || 1 === l ? 1 : l; q = !q || 0 === q || 1 === q ? 1 : q; g = 0; for (j = a[f]; j[g];) g++; n = g; k = 1 === l ? !0 : !1; for (j = 0; j < l; j++) for (g = 0; g < q; g++) a[f + g][n + j] = { cell: e, unique: k }, a[f + g].nTr = d
|
||||
} e = e.nextSibling
|
||||
}
|
||||
}
|
||||
} function ta(a, b, c) { var d = []; c || (c = a.aoHeader, b && (c = [], ea(c, b))); for (var b = 0, e = c.length; b < e; b++) for (var f = 0, g = c[b].length; f < g; f++) if (c[b][f].unique && (!d[f] || !a.bSortCellsTop)) d[f] = c[b][f].cell; return d } function ua(a, b, c) {
|
||||
s(a, "aoServerParams", "serverParams", [b]); if (b && h.isArray(b)) {
|
||||
var d = {},
|
||||
e = /(.*?)\[\]$/; h.each(b, function (a, b) { var c = b.name.match(e); c ? (c = c[0], d[c] || (d[c] = []), d[c].push(b.value)) : d[b.name] = b.value }); b = d
|
||||
} var f, g = a.ajax, j = a.oInstance, i = function (b) { s(a, null, "xhr", [a, b, a.jqXHR]); c(b) }; if (h.isPlainObject(g) && g.data) { f = g.data; var n = h.isFunction(f) ? f(b, a) : f, b = h.isFunction(f) && n ? n : h.extend(!0, b, n); delete g.data } n = {
|
||||
data: b, success: function (b) { var c = b.error || b.sError; c && K(a, 0, c); a.json = b; i(b) }, dataType: "json", cache: !1, type: a.sServerMethod, error: function (b, c) {
|
||||
var d = s(a, null, "xhr",
|
||||
[a, null, a.jqXHR]); -1 === h.inArray(!0, d) && ("parsererror" == c ? K(a, 0, "Invalid JSON response", 1) : 4 === b.readyState && K(a, 0, "Ajax error", 7)); C(a, !1)
|
||||
}
|
||||
}; a.oAjaxData = b; s(a, null, "preXhr", [a, b]); a.fnServerData ? a.fnServerData.call(j, a.sAjaxSource, h.map(b, function (a, b) { return { name: b, value: a } }), i, a) : a.sAjaxSource || "string" === typeof g ? a.jqXHR = h.ajax(h.extend(n, { url: g || a.sAjaxSource })) : h.isFunction(g) ? a.jqXHR = g.call(j, b, i, a) : (a.jqXHR = h.ajax(h.extend(n, g)), g.data = f)
|
||||
} function nb(a) {
|
||||
return a.bAjaxDataGet ? (a.iDraw++, C(a,
|
||||
!0), ua(a, wb(a), function (b) { xb(a, b) }), !1) : !0
|
||||
} function wb(a) {
|
||||
var b = a.aoColumns, c = b.length, d = a.oFeatures, e = a.oPreviousSearch, f = a.aoPreSearchCols, g, j = [], i, n, l, k = W(a); g = a._iDisplayStart; i = !1 !== d.bPaginate ? a._iDisplayLength : -1; var r = function (a, b) { j.push({ name: a, value: b }) }; r("sEcho", a.iDraw); r("iColumns", c); r("sColumns", D(b, "sName").join(",")); r("iDisplayStart", g); r("iDisplayLength", i); var ra = { draw: a.iDraw, columns: [], order: [], start: g, length: i, search: { value: e.sSearch, regex: e.bRegex } }; for (g = 0; g < c; g++) n = b[g],
|
||||
l = f[g], i = "function" == typeof n.mData ? "function" : n.mData, ra.columns.push({ data: i, name: n.sName, searchable: n.bSearchable, orderable: n.bSortable, search: { value: l.sSearch, regex: l.bRegex } }), r("mDataProp_" + g, i), d.bFilter && (r("sSearch_" + g, l.sSearch), r("bRegex_" + g, l.bRegex), r("bSearchable_" + g, n.bSearchable)), d.bSort && r("bSortable_" + g, n.bSortable); d.bFilter && (r("sSearch", e.sSearch), r("bRegex", e.bRegex)); d.bSort && (h.each(k, function (a, b) {
|
||||
ra.order.push({ column: b.col, dir: b.dir }); r("iSortCol_" + a, b.col); r("sSortDir_" +
|
||||
a, b.dir)
|
||||
}), r("iSortingCols", k.length)); b = m.ext.legacy.ajax; return null === b ? a.sAjaxSource ? j : ra : b ? j : ra
|
||||
} function xb(a, b) {
|
||||
var c = va(a, b), d = b.sEcho !== k ? b.sEcho : b.draw, e = b.iTotalRecords !== k ? b.iTotalRecords : b.recordsTotal, f = b.iTotalDisplayRecords !== k ? b.iTotalDisplayRecords : b.recordsFiltered; if (d) { if (1 * d < a.iDraw) return; a.iDraw = 1 * d } pa(a); a._iRecordsTotal = parseInt(e, 10); a._iRecordsDisplay = parseInt(f, 10); d = 0; for (e = c.length; d < e; d++) N(a, c[d]); a.aiDisplay = a.aiDisplayMaster.slice(); a.bAjaxDataGet = !1; O(a); a._bInitComplete ||
|
||||
wa(a, b); a.bAjaxDataGet = !0; C(a, !1)
|
||||
} function va(a, b) { var c = h.isPlainObject(a.ajax) && a.ajax.dataSrc !== k ? a.ajax.dataSrc : a.sAjaxDataProp; return "data" === c ? b.aaData || b[c] : "" !== c ? R(c)(b) : b } function rb(a) {
|
||||
var b = a.oClasses, c = a.sTableId, d = a.oLanguage, e = a.oPreviousSearch, f = a.aanFeatures, g = '<a id="btnPrintPDF" style="display:none" class="btn btn-circle btn-sm grey"><i class="fa fa-print" aria-hidden="true"></i></a><a id="btnPrintExcel" style="display:none" class="btn btn-circle btn-sm green"><i class="fa fa-file-excel-o" aria-hidden="true"></i></a><a id="btnPlay" style="display:none" class="btn btn-circle btn-sm green"><i class="fa fa-play" aria-hidden="true"></i></a><input type="text" class="form-control input-sm' + b.sFilterInput + '" style="display: inline-block; margin-right: -20px; width: 150px;"/>', j = d.sSearch, j = j.match(/_INPUT_/) ? j.replace("_INPUT_", g) : j + g, b = h("<div/>", { id: !f.f ? c + "_filter" : null, "class": b.sFilter }).append(h("<div class='row' style='margin-left: 0px; margin-top: 5px; margin-bottom: 5px; margin-right:1px; text-align: right' align='left'></div>").append(j).append('<a style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"><i class="icon-magnifier"></i></a>')), f = function () {
|
||||
var b = !this.value ?
|
||||
"" : this.value; b != e.sSearch && (ga(a, { sSearch: b, bRegex: e.bRegex, bSmart: e.bSmart, bCaseInsensitive: e.bCaseInsensitive }), a._iDisplayStart = 0, O(a))
|
||||
}, g = null !== a.searchDelay ? a.searchDelay : "ssp" === y(a) ? 400 : 0, i = h("input", b).val(e.sSearch).attr("placeholder", 'Buscar...').on("keyup.DT search.DT input.DT paste.DT cut.DT", g ? Qa(f, g) : f).on("keypress.DT", function (a) { if (13 == a.keyCode) return !1 }).attr("aria-controls", c); h(a.nTable).on("search.dt.DT", function (b, c) { if (a === c) try { i[0] !== H.activeElement && i.val(e.sSearch) } catch (d) { } });
|
||||
return b[0]
|
||||
} function ga(a, b, c) { var d = a.oPreviousSearch, e = a.aoPreSearchCols, f = function (a) { d.sSearch = a.sSearch; d.bRegex = a.bRegex; d.bSmart = a.bSmart; d.bCaseInsensitive = a.bCaseInsensitive }; Ia(a); if ("ssp" != y(a)) { yb(a, b.sSearch, c, b.bEscapeRegex !== k ? !b.bEscapeRegex : b.bRegex, b.bSmart, b.bCaseInsensitive); f(b); for (b = 0; b < e.length; b++) zb(a, e[b].sSearch, b, e[b].bEscapeRegex !== k ? !e[b].bEscapeRegex : e[b].bRegex, e[b].bSmart, e[b].bCaseInsensitive); Ab(a) } else f(b); a.bFiltered = !0; s(a, null, "search", [a]) } function Ab(a) {
|
||||
for (var b =
|
||||
m.ext.search, c = a.aiDisplay, d, e, f = 0, g = b.length; f < g; f++) { for (var j = [], i = 0, n = c.length; i < n; i++) e = c[i], d = a.aoData[e], b[f](a, d._aFilterData, e, d._aData, i) && j.push(e); c.length = 0; h.merge(c, j) }
|
||||
} function zb(a, b, c, d, e, f) { if ("" !== b) { for (var g = [], j = a.aiDisplay, d = Ra(b, d, e, f), e = 0; e < j.length; e++) b = a.aoData[j[e]]._aFilterData[c], d.test(b) && g.push(j[e]); a.aiDisplay = g } } function yb(a, b, c, d, e, f) {
|
||||
var d = Ra(b, d, e, f), f = a.oPreviousSearch.sSearch, g = a.aiDisplayMaster, j, e = []; 0 !== m.ext.search.length && (c = !0); j = Bb(a); if (0 >= b.length) a.aiDisplay =
|
||||
g.slice(); else { if (j || c || f.length > b.length || 0 !== b.indexOf(f) || a.bSorted) a.aiDisplay = g.slice(); b = a.aiDisplay; for (c = 0; c < b.length; c++) d.test(a.aoData[b[c]]._sFilterRow) && e.push(b[c]); a.aiDisplay = e }
|
||||
} function Ra(a, b, c, d) { a = b ? a : Sa(a); c && (a = "^(?=.*?" + h.map(a.match(/"[^"]+"|[^ ]+/g) || [""], function (a) { if ('"' === a.charAt(0)) var b = a.match(/^"(.*)"$/), a = b ? b[1] : a; return a.replace('"', "") }).join(")(?=.*?") + ").*$"); return RegExp(a, d ? "i" : "") } function Bb(a) {
|
||||
var b = a.aoColumns, c, d, e, f, g, j, i, h, l = m.ext.type.search; c = !1;
|
||||
d = 0; for (f = a.aoData.length; d < f; d++) if (h = a.aoData[d], !h._aFilterData) { j = []; e = 0; for (g = b.length; e < g; e++) c = b[e], c.bSearchable ? (i = B(a, d, e, "filter"), l[c.sType] && (i = l[c.sType](i)), null === i && (i = ""), "string" !== typeof i && i.toString && (i = i.toString())) : i = "", i.indexOf && -1 !== i.indexOf("&") && (xa.innerHTML = i, i = $b ? xa.textContent : xa.innerText), i.replace && (i = i.replace(/[\r\n]/g, "")), j.push(i); h._aFilterData = j; h._sFilterRow = j.join(" "); c = !0 } return c
|
||||
} function Cb(a) {
|
||||
return {
|
||||
search: a.sSearch, smart: a.bSmart, regex: a.bRegex,
|
||||
caseInsensitive: a.bCaseInsensitive
|
||||
}
|
||||
} function Db(a) { return { sSearch: a.search, bSmart: a.smart, bRegex: a.regex, bCaseInsensitive: a.caseInsensitive } } function ub(a) { var b = a.sTableId, c = a.aanFeatures.i, d = h("<div/>", { "class": a.oClasses.sInfo, id: !c ? b + "_info" : null }); c || (a.aoDrawCallback.push({ fn: Eb, sName: "information" }), d.attr("role", "status").attr("aria-live", "polite"), h(a.nTable).attr("aria-describedby", b + "_info")); return d[0] } function Eb(a) {
|
||||
var b = a.aanFeatures.i; if (0 !== b.length) {
|
||||
var c = a.oLanguage, d = a._iDisplayStart +
|
||||
1, e = a.fnDisplayEnd(), f = a.fnRecordsTotal(), g = a.fnRecordsDisplay(), j = g ? c.sInfo : c.sInfoEmpty; g !== f && (j += " " + c.sInfoFiltered); j += c.sInfoPostFix; j = Fb(a, j); c = c.fnInfoCallback; null !== c && (j = c.call(a.oInstance, a, d, e, f, g, j)); h(b).html(j)
|
||||
}
|
||||
} function Fb(a, b) {
|
||||
var c = a.fnFormatNumber, d = a._iDisplayStart + 1, e = a._iDisplayLength, f = a.fnRecordsDisplay(), g = -1 === e; return b.replace(/_START_/g, c.call(a, d)).replace(/_END_/g, c.call(a, a.fnDisplayEnd())).replace(/_MAX_/g, c.call(a, a.fnRecordsTotal())).replace(/_TOTAL_/g, c.call(a,
|
||||
f)).replace(/_PAGE_/g, c.call(a, g ? 1 : Math.ceil(d / e))).replace(/_PAGES_/g, c.call(a, g ? 1 : Math.ceil(f / e)))
|
||||
} function ha(a) {
|
||||
var b, c, d = a.iInitDisplayStart, e = a.aoColumns, f; c = a.oFeatures; var g = a.bDeferLoading; if (a.bInitialised) {
|
||||
pb(a); mb(a); fa(a, a.aoHeader); fa(a, a.aoFooter); C(a, !0); c.bAutoWidth && Ha(a); b = 0; for (c = e.length; b < c; b++) f = e[b], f.sWidth && (f.nTh.style.width = v(f.sWidth)); s(a, null, "preInit", [a]); T(a); e = y(a); if ("ssp" != e || g) "ajax" == e ? ua(a, [], function (c) {
|
||||
var f = va(a, c); for (b = 0; b < f.length; b++) N(a, f[b]); a.iInitDisplayStart =
|
||||
d; T(a); C(a, !1); wa(a, c)
|
||||
}, a) : (C(a, !1), wa(a))
|
||||
} else setTimeout(function () { ha(a) }, 200)
|
||||
} function wa(a, b) { a._bInitComplete = !0; (b || a.oInit.aaData) && Z(a); s(a, null, "plugin-init", [a, b]); s(a, "aoInitComplete", "init", [a, b]) } function Ta(a, b) { var c = parseInt(b, 10); a._iDisplayLength = c; Ua(a); s(a, null, "length", [a, c]) } function qb(a) {
|
||||
for (var b = a.oClasses, c = a.sTableId, d = a.aLengthMenu, e = h.isArray(d[0]), f = e ? d[0] : d, d = e ? d[1] : d, e = h("<select/>", { name: c + "_length", "aria-controls": c, "class": b.sLengthSelect }), g = 0, j = f.length; g < j; g++) e[0][g] =
|
||||
new Option(d[g], f[g]); var i = h("<div><label/></div>").addClass(b.sLength); a.aanFeatures.l || (i[0].id = c + "_length"); i.children().append(a.oLanguage.sLengthMenu.replace("_MENU_", e[0].outerHTML)); h("select", i).val(a._iDisplayLength).on("change.DT", function () { Ta(a, h(this).val()); O(a) }); h(a.nTable).on("length.dt.DT", function (b, c, d) { a === c && h("select", i).val(d) }); return i[0]
|
||||
} function vb(a) {
|
||||
var b = a.sPaginationType, c = m.ext.pager[b], d = "function" === typeof c, e = function (a) { O(a) }, b = h("<div/>").addClass(a.oClasses.sPaging +
|
||||
b)[0], f = a.aanFeatures; d || c.fnInit(a, b, e); f.p || (b.id = a.sTableId + "_paginate", a.aoDrawCallback.push({ fn: function (a) { if (d) { var b = a._iDisplayStart, i = a._iDisplayLength, h = a.fnRecordsDisplay(), l = -1 === i, b = l ? 0 : Math.ceil(b / i), i = l ? 1 : Math.ceil(h / i), h = c(b, i), k, l = 0; for (k = f.p.length; l < k; l++) Pa(a, "pageButton")(a, f.p[l], l, h, b, i) } else c.fnUpdate(a, e) }, sName: "pagination" })); return b
|
||||
} function Va(a, b, c) {
|
||||
var d = a._iDisplayStart, e = a._iDisplayLength, f = a.fnRecordsDisplay(); 0 === f || -1 === e ? d = 0 : "number" === typeof b ? (d = b * e, d > f &&
|
||||
(d = 0)) : "first" == b ? d = 0 : "previous" == b ? (d = 0 <= e ? d - e : 0, 0 > d && (d = 0)) : "next" == b ? d + e < f && (d += e) : "last" == b ? d = Math.floor((f - 1) / e) * e : K(a, 0, "Unknown paging action: " + b, 5); b = a._iDisplayStart !== d; a._iDisplayStart = d; b && (s(a, null, "page", [a]), c && O(a)); return b
|
||||
} function sb(a) { return h("<div/>", { id: !a.aanFeatures.r ? a.sTableId + "_processing" : null, "class": a.oClasses.sProcessing }).html(a.oLanguage.sProcessing).insertBefore(a.nTable)[0] } function C(a, b) {
|
||||
a.oFeatures.bProcessing && h(a.aanFeatures.r).css("display", b ? "block" : "none");
|
||||
s(a, null, "processing", [a, b])
|
||||
} function tb(a) {
|
||||
var b = h(a.nTable); b.attr("role", "grid"); var c = a.oScroll; if ("" === c.sX && "" === c.sY) return a.nTable; var d = c.sX, e = c.sY, f = a.oClasses, g = b.children("caption"), j = g.length ? g[0]._captionSide : null, i = h(b[0].cloneNode(!1)), n = h(b[0].cloneNode(!1)), l = b.children("tfoot"); l.length || (l = null); i = h("<div/>", { "class": f.sScrollWrapper }).append(h("<div/>", { "class": f.sScrollHead }).css({ overflow: "hidden", position: "relative", border: 0, width: d ? !d ? null : v(d) : "100%" }).append(h("<div/>",
|
||||
{ "class": f.sScrollHeadInner }).css({ "box-sizing": "content-box", width: c.sXInner || "100%" }).append(i.removeAttr("id").css("margin-left", 0).append("top" === j ? g : null).append(b.children("thead"))))).append(h("<div/>", { "class": f.sScrollBody }).css({ position: "relative", overflow: "auto", width: !d ? null : v(d) }).append(b)); l && i.append(h("<div/>", { "class": f.sScrollFoot }).css({ overflow: "hidden", border: 0, width: d ? !d ? null : v(d) : "100%" }).append(h("<div/>", { "class": f.sScrollFootInner }).append(n.removeAttr("id").css("margin-left",
|
||||
0).append("bottom" === j ? g : null).append(b.children("tfoot"))))); var b = i.children(), k = b[0], f = b[1], r = l ? b[2] : null; if (d) h(f).on("scroll.DT", function () { var a = this.scrollLeft; k.scrollLeft = a; l && (r.scrollLeft = a) }); h(f).css(e && c.bCollapse ? "max-height" : "height", e); a.nScrollHead = k; a.nScrollBody = f; a.nScrollFoot = r; a.aoDrawCallback.push({ fn: ma, sName: "scrolling" }); return i[0]
|
||||
} function ma(a) {
|
||||
var b = a.oScroll, c = b.sX, d = b.sXInner, e = b.sY, b = b.iBarWidth, f = h(a.nScrollHead), g = f[0].style, j = f.children("div"), i = j[0].style, n = j.children("table"),
|
||||
j = a.nScrollBody, l = h(j), q = j.style, r = h(a.nScrollFoot).children("div"), m = r.children("table"), p = h(a.nTHead), o = h(a.nTable), t = o[0], s = t.style, u = a.nTFoot ? h(a.nTFoot) : null, x = a.oBrowser, U = x.bScrollOversize, ac = D(a.aoColumns, "nTh"), P, L, Q, w, Wa = [], y = [], z = [], A = [], B, C = function (a) { a = a.style; a.paddingTop = "0"; a.paddingBottom = "0"; a.borderTopWidth = "0"; a.borderBottomWidth = "0"; a.height = 0 }; L = j.scrollHeight > j.clientHeight; if (a.scrollBarVis !== L && a.scrollBarVis !== k) a.scrollBarVis = L, Z(a); else {
|
||||
a.scrollBarVis = L; o.children("thead, tfoot").remove();
|
||||
u && (Q = u.clone().prependTo(o), P = u.find("tr"), Q = Q.find("tr")); w = p.clone().prependTo(o); p = p.find("tr"); L = w.find("tr"); w.find("th, td").removeAttr("tabindex"); c || (q.width = "100%", f[0].style.width = "100%"); h.each(ta(a, w), function (b, c) { B = $(a, b); c.style.width = a.aoColumns[B].sWidth }); u && I(function (a) { a.style.width = "" }, Q); f = o.outerWidth(); if ("" === c) { s.width = "100%"; if (U && (o.find("tbody").height() > j.offsetHeight || "scroll" == l.css("overflow-y"))) s.width = v(o.outerWidth() - b); f = o.outerWidth() } else "" !== d && (s.width =
|
||||
v(d), f = o.outerWidth()); I(C, L); I(function (a) { z.push(a.innerHTML); Wa.push(v(h(a).css("width"))) }, L); I(function (a, b) { if (h.inArray(a, ac) !== -1) a.style.width = Wa[b] }, p); h(L).height(0); u && (I(C, Q), I(function (a) { A.push(a.innerHTML); y.push(v(h(a).css("width"))) }, Q), I(function (a, b) { a.style.width = y[b] }, P), h(Q).height(0)); I(function (a, b) { a.innerHTML = '<div class="dataTables_sizing" style="height:0;overflow:hidden;">' + z[b] + "</div>"; a.style.width = Wa[b] }, L); u && I(function (a, b) {
|
||||
a.innerHTML = '<div class="dataTables_sizing" style="height:0;overflow:hidden;">' +
|
||||
A[b] + "</div>"; a.style.width = y[b]
|
||||
}, Q); if (o.outerWidth() < f) { P = j.scrollHeight > j.offsetHeight || "scroll" == l.css("overflow-y") ? f + b : f; if (U && (j.scrollHeight > j.offsetHeight || "scroll" == l.css("overflow-y"))) s.width = v(P - b); ("" === c || "" !== d) && K(a, 1, "Possible column misalignment", 6) } else P = "100%"; q.width = v(P); g.width = v(P); u && (a.nScrollFoot.style.width = v(P)); !e && U && (q.height = v(t.offsetHeight + b)); c = o.outerWidth(); n[0].style.width = v(c); i.width = v(c); d = o.height() > j.clientHeight || "scroll" == l.css("overflow-y"); e = "padding" +
|
||||
(x.bScrollbarLeft ? "Left" : "Right"); i[e] = d ? b + "px" : "0px"; u && (m[0].style.width = v(c), r[0].style.width = v(c), r[0].style[e] = d ? b + "px" : "0px"); o.children("colgroup").insertBefore(o.children("thead")); l.scroll(); if ((a.bSorted || a.bFiltered) && !a._drawHold) j.scrollTop = 0
|
||||
}
|
||||
} function I(a, b, c) { for (var d = 0, e = 0, f = b.length, g, j; e < f;) { g = b[e].firstChild; for (j = c ? c[e].firstChild : null; g;) 1 === g.nodeType && (c ? a(g, j, d) : a(g, d), d++), g = g.nextSibling, j = c ? j.nextSibling : null; e++ } } function Ha(a) {
|
||||
var b = a.nTable, c = a.aoColumns, d = a.oScroll,
|
||||
e = d.sY, f = d.sX, g = d.sXInner, j = c.length, i = na(a, "bVisible"), n = h("th", a.nTHead), l = b.getAttribute("width"), k = b.parentNode, r = !1, m, p, o = a.oBrowser, d = o.bScrollOversize; (m = b.style.width) && -1 !== m.indexOf("%") && (l = m); for (m = 0; m < i.length; m++) p = c[i[m]], null !== p.sWidth && (p.sWidth = Gb(p.sWidthOrig, k), r = !0); if (d || !r && !f && !e && j == ba(a) && j == n.length) for (m = 0; m < j; m++) i = $(a, m), null !== i && (c[i].sWidth = v(n.eq(m).width())); else {
|
||||
j = h(b).clone().css("visibility", "hidden").removeAttr("id"); j.find("tbody tr").remove(); var t = h("<tr/>").appendTo(j.find("tbody"));
|
||||
j.find("thead, tfoot").remove(); j.append(h(a.nTHead).clone()).append(h(a.nTFoot).clone()); j.find("tfoot th, tfoot td").css("width", ""); n = ta(a, j.find("thead")[0]); for (m = 0; m < i.length; m++) p = c[i[m]], n[m].style.width = null !== p.sWidthOrig && "" !== p.sWidthOrig ? v(p.sWidthOrig) : "", p.sWidthOrig && f && h(n[m]).append(h("<div/>").css({ width: p.sWidthOrig, margin: 0, padding: 0, border: 0, height: 1 })); if (a.aoData.length) for (m = 0; m < i.length; m++) r = i[m], p = c[r], h(Hb(a, r)).clone(!1).append(p.sContentPadding).appendTo(t); h("[name]",
|
||||
j).removeAttr("name"); p = h("<div/>").css(f || e ? { position: "absolute", top: 0, left: 0, height: 1, right: 0, overflow: "hidden" } : {}).append(j).appendTo(k); f && g ? j.width(g) : f ? (j.css("width", "auto"), j.removeAttr("width"), j.width() < k.clientWidth && l && j.width(k.clientWidth)) : e ? j.width(k.clientWidth) : l && j.width(l); for (m = e = 0; m < i.length; m++) k = h(n[m]), g = k.outerWidth() - k.width(), k = o.bBounding ? Math.ceil(n[m].getBoundingClientRect().width) : k.outerWidth(), e += k, c[i[m]].sWidth = v(k - g); b.style.width = v(e); p.remove()
|
||||
} l && (b.style.width =
|
||||
v(l)); if ((l || f) && !a._reszEvt) b = function () { h(E).on("resize.DT-" + a.sInstance, Qa(function () { Z(a) })) }, d ? setTimeout(b, 1E3) : b(), a._reszEvt = !0
|
||||
} function Gb(a, b) { if (!a) return 0; var c = h("<div/>").css("width", v(a)).appendTo(b || H.body), d = c[0].offsetWidth; c.remove(); return d } function Hb(a, b) { var c = Ib(a, b); if (0 > c) return null; var d = a.aoData[c]; return !d.nTr ? h("<td/>").html(B(a, c, b, "display"))[0] : d.anCells[b] } function Ib(a, b) {
|
||||
for (var c, d = -1, e = -1, f = 0, g = a.aoData.length; f < g; f++) c = B(a, f, b, "display") + "", c = c.replace(bc,
|
||||
""), c = c.replace(/ /g, " "), c.length > d && (d = c.length, e = f); return e
|
||||
} function v(a) { return null === a ? "0px" : "number" == typeof a ? 0 > a ? "0px" : a + "px" : a.match(/\d$/) ? a + "px" : a } function W(a) {
|
||||
var b, c, d = [], e = a.aoColumns, f, g, j, i; b = a.aaSortingFixed; c = h.isPlainObject(b); var n = []; f = function (a) { a.length && !h.isArray(a[0]) ? n.push(a) : h.merge(n, a) }; h.isArray(b) && f(b); c && b.pre && f(b.pre); f(a.aaSorting); c && b.post && f(b.post); for (a = 0; a < n.length; a++) {
|
||||
i = n[a][0]; f = e[i].aDataSort; b = 0; for (c = f.length; b < c; b++) g = f[b], j = e[g].sType ||
|
||||
"string", n[a]._idx === k && (n[a]._idx = h.inArray(n[a][1], e[g].asSorting)), d.push({ src: i, col: g, dir: n[a][1], index: n[a]._idx, type: j, formatter: m.ext.type.order[j + "-pre"] })
|
||||
} return d
|
||||
} function ob(a) {
|
||||
var b, c, d = [], e = m.ext.type.order, f = a.aoData, g = 0, j, i = a.aiDisplayMaster, h; Ia(a); h = W(a); b = 0; for (c = h.length; b < c; b++) j = h[b], j.formatter && g++, Jb(a, j.col); if ("ssp" != y(a) && 0 !== h.length) {
|
||||
b = 0; for (c = i.length; b < c; b++) d[i[b]] = b; g === h.length ? i.sort(function (a, b) {
|
||||
var c, e, g, j, i = h.length, k = f[a]._aSortData, m = f[b]._aSortData; for (g =
|
||||
0; g < i; g++) if (j = h[g], c = k[j.col], e = m[j.col], c = c < e ? -1 : c > e ? 1 : 0, 0 !== c) return "asc" === j.dir ? c : -c; c = d[a]; e = d[b]; return c < e ? -1 : c > e ? 1 : 0
|
||||
}) : i.sort(function (a, b) { var c, g, j, i, k = h.length, m = f[a]._aSortData, p = f[b]._aSortData; for (j = 0; j < k; j++) if (i = h[j], c = m[i.col], g = p[i.col], i = e[i.type + "-" + i.dir] || e["string-" + i.dir], c = i(c, g), 0 !== c) return c; c = d[a]; g = d[b]; return c < g ? -1 : c > g ? 1 : 0 })
|
||||
} a.bSorted = !0
|
||||
} function Kb(a) {
|
||||
for (var b, c, d = a.aoColumns, e = W(a), a = a.oLanguage.oAria, f = 0, g = d.length; f < g; f++) {
|
||||
c = d[f]; var j = c.asSorting; b = c.sTitle.replace(/<.*?>/g,
|
||||
""); var i = c.nTh; i.removeAttribute("aria-sort"); c.bSortable && (0 < e.length && e[0].col == f ? (i.setAttribute("aria-sort", "asc" == e[0].dir ? "ascending" : "descending"), c = j[e[0].index + 1] || j[0]) : c = j[0], b += "asc" === c ? a.sSortAscending : a.sSortDescending); i.setAttribute("aria-label", b)
|
||||
}
|
||||
} function Xa(a, b, c, d) {
|
||||
var e = a.aaSorting, f = a.aoColumns[b].asSorting, g = function (a, b) { var c = a._idx; c === k && (c = h.inArray(a[1], f)); return c + 1 < f.length ? c + 1 : b ? null : 0 }; "number" === typeof e[0] && (e = a.aaSorting = [e]); c && a.oFeatures.bSortMulti ? (c = h.inArray(b,
|
||||
D(e, "0")), -1 !== c ? (b = g(e[c], !0), null === b && 1 === e.length && (b = 0), null === b ? e.splice(c, 1) : (e[c][1] = f[b], e[c]._idx = b)) : (e.push([b, f[0], 0]), e[e.length - 1]._idx = 0)) : e.length && e[0][0] == b ? (b = g(e[0]), e.length = 1, e[0][1] = f[b], e[0]._idx = b) : (e.length = 0, e.push([b, f[0]]), e[0]._idx = 0); T(a); "function" == typeof d && d(a)
|
||||
} function Oa(a, b, c, d) { var e = a.aoColumns[c]; Ya(b, {}, function (b) { !1 !== e.bSortable && (a.oFeatures.bProcessing ? (C(a, !0), setTimeout(function () { Xa(a, c, b.shiftKey, d); "ssp" !== y(a) && C(a, !1) }, 0)) : Xa(a, c, b.shiftKey, d)) }) }
|
||||
function ya(a) { var b = a.aLastSort, c = a.oClasses.sSortColumn, d = W(a), e = a.oFeatures, f, g; if (e.bSort && e.bSortClasses) { e = 0; for (f = b.length; e < f; e++) g = b[e].src, h(D(a.aoData, "anCells", g)).removeClass(c + (2 > e ? e + 1 : 3)); e = 0; for (f = d.length; e < f; e++) g = d[e].src, h(D(a.aoData, "anCells", g)).addClass(c + (2 > e ? e + 1 : 3)) } a.aLastSort = d } function Jb(a, b) {
|
||||
var c = a.aoColumns[b], d = m.ext.order[c.sSortDataType], e; d && (e = d.call(a.oInstance, a, b, aa(a, b))); for (var f, g = m.ext.type.order[c.sType + "-pre"], j = 0, i = a.aoData.length; j < i; j++) if (c = a.aoData[j],
|
||||
c._aSortData || (c._aSortData = []), !c._aSortData[b] || d) f = d ? e[j] : B(a, j, b, "sort"), c._aSortData[b] = g ? g(f) : f
|
||||
} function za(a) {
|
||||
if (a.oFeatures.bStateSave && !a.bDestroying) {
|
||||
var b = { time: +new Date, start: a._iDisplayStart, length: a._iDisplayLength, order: h.extend(!0, [], a.aaSorting), search: Cb(a.oPreviousSearch), columns: h.map(a.aoColumns, function (b, d) { return { visible: b.bVisible, search: Cb(a.aoPreSearchCols[d]) } }) }; s(a, "aoStateSaveParams", "stateSaveParams", [a, b]); a.oSavedState = b; a.fnStateSaveCallback.call(a.oInstance, a,
|
||||
b)
|
||||
}
|
||||
} function Lb(a, b, c) {
|
||||
var d, e, f = a.aoColumns, b = function (b) {
|
||||
if (b && b.time) {
|
||||
var g = s(a, "aoStateLoadParams", "stateLoadParams", [a, b]); if (-1 === h.inArray(!1, g) && (g = a.iStateDuration, !(0 < g && b.time < +new Date - 1E3 * g) && !(b.columns && f.length !== b.columns.length))) {
|
||||
a.oLoadedState = h.extend(!0, {}, b); b.start !== k && (a._iDisplayStart = b.start, a.iInitDisplayStart = b.start); b.length !== k && (a._iDisplayLength = b.length); b.order !== k && (a.aaSorting = [], h.each(b.order, function (b, c) { a.aaSorting.push(c[0] >= f.length ? [0, c[1]] : c) })); b.search !==
|
||||
k && h.extend(a.oPreviousSearch, Db(b.search)); if (b.columns) { d = 0; for (e = b.columns.length; d < e; d++) g = b.columns[d], g.visible !== k && (f[d].bVisible = g.visible), g.search !== k && h.extend(a.aoPreSearchCols[d], Db(g.search)) } s(a, "aoStateLoaded", "stateLoaded", [a, b])
|
||||
}
|
||||
} c()
|
||||
}; if (a.oFeatures.bStateSave) { var g = a.fnStateLoadCallback.call(a.oInstance, a, b); g !== k && b(g) } else c()
|
||||
} function Aa(a) { var b = m.settings, a = h.inArray(a, D(b, "nTable")); return -1 !== a ? b[a] : null } function K(a, b, c, d) {
|
||||
c = "DataTables warning: " + (a ? "table id=" + a.sTableId +
|
||||
" - " : "") + c; d && (c += ". For more information about this error, please see http://datatables.net/tn/" + d); if (b) E.console && console.log && console.log(c); else if (b = m.ext, b = b.sErrMode || b.errMode, a && s(a, null, "error", [a, d, c]), "alert" == b) alert(c); else { if ("throw" == b) throw Error(c); "function" == typeof b && b(a, d, c) }
|
||||
} function F(a, b, c, d) { h.isArray(c) ? h.each(c, function (c, d) { h.isArray(d) ? F(a, b, d[0], d[1]) : F(a, b, d) }) : (d === k && (d = c), b[c] !== k && (a[d] = b[c])) } function Mb(a, b, c) {
|
||||
var d, e; for (e in b) b.hasOwnProperty(e) && (d = b[e],
|
||||
h.isPlainObject(d) ? (h.isPlainObject(a[e]) || (a[e] = {}), h.extend(!0, a[e], d)) : a[e] = c && "data" !== e && "aaData" !== e && h.isArray(d) ? d.slice() : d); return a
|
||||
} function Ya(a, b, c) { h(a).on("click.DT", b, function (b) { a.blur(); c(b) }).on("keypress.DT", b, function (a) { 13 === a.which && (a.preventDefault(), c(a)) }).on("selectstart.DT", function () { return !1 }) } function z(a, b, c, d) { c && a[b].push({ fn: c, sName: d }) } function s(a, b, c, d) {
|
||||
var e = []; b && (e = h.map(a[b].slice().reverse(), function (b) { return b.fn.apply(a.oInstance, d) })); null !== c && (b = h.Event(c +
|
||||
".dt"), h(a.nTable).trigger(b, d), e.push(b.result)); return e
|
||||
} function Ua(a) { var b = a._iDisplayStart, c = a.fnDisplayEnd(), d = a._iDisplayLength; b >= c && (b = c - d); b -= b % d; if (-1 === d || 0 > b) b = 0; a._iDisplayStart = b } function Pa(a, b) { var c = a.renderer, d = m.ext.renderer[b]; return h.isPlainObject(c) && c[b] ? d[c[b]] || d._ : "string" === typeof c ? d[c] || d._ : d._ } function y(a) { return a.oFeatures.bServerSide ? "ssp" : a.ajax || a.sAjaxSource ? "ajax" : "dom" } function ia(a, b) {
|
||||
var c = [], c = Nb.numbers_length, d = Math.floor(c / 2); b <= c ? c = X(0, b) : a <= d ? (c = X(0,
|
||||
c - 2), c.push("ellipsis"), c.push(b - 1)) : (a >= b - 1 - d ? c = X(b - (c - 2), b) : (c = X(a - d + 2, a + d - 1), c.push("ellipsis"), c.push(b - 1)), c.splice(0, 0, "ellipsis"), c.splice(0, 0, 0)); c.DT_el = "span"; return c
|
||||
} function fb(a) { h.each({ num: function (b) { return Ba(b, a) }, "num-fmt": function (b) { return Ba(b, a, Za) }, "html-num": function (b) { return Ba(b, a, Ca) }, "html-num-fmt": function (b) { return Ba(b, a, Ca, Za) } }, function (b, c) { x.type.order[b + a + "-pre"] = c; b.match(/^html\-/) && (x.type.search[b + a] = x.type.search.html) }) } function Ob(a) {
|
||||
return function () {
|
||||
var b =
|
||||
[Aa(this[m.ext.iApiIndex])].concat(Array.prototype.slice.call(arguments)); return m.ext.internal[a].apply(this, b)
|
||||
}
|
||||
} var m = function (a) {
|
||||
this.$ = function (a, b) { return this.api(!0).$(a, b) }; this._ = function (a, b) { return this.api(!0).rows(a, b).data() }; this.api = function (a) { return a ? new t(Aa(this[x.iApiIndex])) : new t(this) }; this.fnAddData = function (a, b) { var c = this.api(!0), d = h.isArray(a) && (h.isArray(a[0]) || h.isPlainObject(a[0])) ? c.rows.add(a) : c.row.add(a); (b === k || b) && c.draw(); return d.flatten().toArray() }; this.fnAdjustColumnSizing =
|
||||
function (a) { var b = this.api(!0).columns.adjust(), c = b.settings()[0], d = c.oScroll; a === k || a ? b.draw(!1) : ("" !== d.sX || "" !== d.sY) && ma(c) }; this.fnClearTable = function (a) { var b = this.api(!0).clear(); (a === k || a) && b.draw() }; this.fnClose = function (a) { this.api(!0).row(a).child.hide() }; this.fnDeleteRow = function (a, b, c) { var d = this.api(!0), a = d.rows(a), e = a.settings()[0], h = e.aoData[a[0][0]]; a.remove(); b && b.call(this, e, h); (c === k || c) && d.draw(); return h }; this.fnDestroy = function (a) { this.api(!0).destroy(a) }; this.fnDraw = function (a) { this.api(!0).draw(a) };
|
||||
this.fnFilter = function (a, b, c, d, e, h) { e = this.api(!0); null === b || b === k ? e.search(a, c, d, h) : e.column(b).search(a, c, d, h); e.draw() }; this.fnGetData = function (a, b) { var c = this.api(!0); if (a !== k) { var d = a.nodeName ? a.nodeName.toLowerCase() : ""; return b !== k || "td" == d || "th" == d ? c.cell(a, b).data() : c.row(a).data() || null } return c.data().toArray() }; this.fnGetNodes = function (a) { var b = this.api(!0); return a !== k ? b.row(a).node() : b.rows().nodes().flatten().toArray() }; this.fnGetPosition = function (a) {
|
||||
var b = this.api(!0), c = a.nodeName.toUpperCase();
|
||||
return "TR" == c ? b.row(a).index() : "TD" == c || "TH" == c ? (a = b.cell(a).index(), [a.row, a.columnVisible, a.column]) : null
|
||||
}; this.fnIsOpen = function (a) { return this.api(!0).row(a).child.isShown() }; this.fnOpen = function (a, b, c) { return this.api(!0).row(a).child(b, c).show().child()[0] }; this.fnPageChange = function (a, b) { var c = this.api(!0).page(a); (b === k || b) && c.draw(!1) }; this.fnSetColumnVis = function (a, b, c) { a = this.api(!0).column(a).visible(b); (c === k || c) && a.columns.adjust().draw() }; this.fnSettings = function () { return Aa(this[x.iApiIndex]) };
|
||||
this.fnSort = function (a) { this.api(!0).order(a).draw() }; this.fnSortListener = function (a, b, c) { this.api(!0).order.listener(a, b, c) }; this.fnUpdate = function (a, b, c, d, e) { var h = this.api(!0); c === k || null === c ? h.row(b).data(a) : h.cell(b, c).data(a); (e === k || e) && h.columns.adjust(); (d === k || d) && h.draw(); return 0 }; this.fnVersionCheck = x.fnVersionCheck; var b = this, c = a === k, d = this.length; c && (a = {}); this.oApi = this.internal = x.internal; for (var e in m.ext.internal) e && (this[e] = Ob(e)); this.each(function () {
|
||||
var e = {}, g = 1 < d ? Mb(e, a, !0) :
|
||||
a, j = 0, i, e = this.getAttribute("id"), n = !1, l = m.defaults, q = h(this); if ("table" != this.nodeName.toLowerCase()) K(null, 0, "Non-table node initialisation (" + this.nodeName + ")", 2); else {
|
||||
gb(l); hb(l.column); J(l, l, !0); J(l.column, l.column, !0); J(l, h.extend(g, q.data())); var r = m.settings, j = 0; for (i = r.length; j < i; j++) {
|
||||
var p = r[j]; if (p.nTable == this || p.nTHead.parentNode == this || p.nTFoot && p.nTFoot.parentNode == this) {
|
||||
var t = g.bRetrieve !== k ? g.bRetrieve : l.bRetrieve; if (c || t) return p.oInstance; if (g.bDestroy !== k ? g.bDestroy : l.bDestroy) {
|
||||
p.oInstance.fnDestroy();
|
||||
break
|
||||
} else { K(p, 0, "Cannot reinitialise DataTable", 3); return }
|
||||
} if (p.sTableId == this.id) { r.splice(j, 1); break }
|
||||
} if (null === e || "" === e) this.id = e = "DataTables_Table_" + m.ext._unique++; var o = h.extend(!0, {}, m.models.oSettings, { sDestroyWidth: q[0].style.width, sInstance: e, sTableId: e }); o.nTable = this; o.oApi = b.internal; o.oInit = g; r.push(o); o.oInstance = 1 === b.length ? b : q.dataTable(); gb(g); g.oLanguage && Fa(g.oLanguage); g.aLengthMenu && !g.iDisplayLength && (g.iDisplayLength = h.isArray(g.aLengthMenu[0]) ? g.aLengthMenu[0][0] : g.aLengthMenu[0]);
|
||||
g = Mb(h.extend(!0, {}, l), g); F(o.oFeatures, g, "bPaginate bLengthChange bFilter bSort bSortMulti bInfo bProcessing bAutoWidth bSortClasses bServerSide bDeferRender".split(" ")); F(o, g, ["asStripeClasses", "ajax", "fnServerData", "fnFormatNumber", "sServerMethod", "aaSorting", "aaSortingFixed", "aLengthMenu", "sPaginationType", "sAjaxSource", "sAjaxDataProp", "iStateDuration", "sDom", "bSortCellsTop", "iTabIndex", "fnStateLoadCallback", "fnStateSaveCallback", "renderer", "searchDelay", "rowId", ["iCookieDuration", "iStateDuration"],
|
||||
["oSearch", "oPreviousSearch"], ["aoSearchCols", "aoPreSearchCols"], ["iDisplayLength", "_iDisplayLength"], ["bJQueryUI", "bJUI"]]); F(o.oScroll, g, [["sScrollX", "sX"], ["sScrollXInner", "sXInner"], ["sScrollY", "sY"], ["bScrollCollapse", "bCollapse"]]); F(o.oLanguage, g, "fnInfoCallback"); z(o, "aoDrawCallback", g.fnDrawCallback, "user"); z(o, "aoServerParams", g.fnServerParams, "user"); z(o, "aoStateSaveParams", g.fnStateSaveParams, "user"); z(o, "aoStateLoadParams", g.fnStateLoadParams, "user"); z(o, "aoStateLoaded", g.fnStateLoaded,
|
||||
"user"); z(o, "aoRowCallback", g.fnRowCallback, "user"); z(o, "aoRowCreatedCallback", g.fnCreatedRow, "user"); z(o, "aoHeaderCallback", g.fnHeaderCallback, "user"); z(o, "aoFooterCallback", g.fnFooterCallback, "user"); z(o, "aoInitComplete", g.fnInitComplete, "user"); z(o, "aoPreDrawCallback", g.fnPreDrawCallback, "user"); o.rowIdFn = R(g.rowId); ib(o); var u = o.oClasses; g.bJQueryUI ? (h.extend(u, m.ext.oJUIClasses, g.oClasses), g.sDom === l.sDom && "lfrtip" === l.sDom && (o.sDom = '<"H"lfr>t<"F"ip>'), o.renderer) ? h.isPlainObject(o.renderer) &&
|
||||
!o.renderer.header && (o.renderer.header = "jqueryui") : o.renderer = "jqueryui" : h.extend(u, m.ext.classes, g.oClasses); q.addClass(u.sTable); o.iInitDisplayStart === k && (o.iInitDisplayStart = g.iDisplayStart, o._iDisplayStart = g.iDisplayStart); null !== g.iDeferLoading && (o.bDeferLoading = !0, e = h.isArray(g.iDeferLoading), o._iRecordsDisplay = e ? g.iDeferLoading[0] : g.iDeferLoading, o._iRecordsTotal = e ? g.iDeferLoading[1] : g.iDeferLoading); var v = o.oLanguage; h.extend(!0, v, g.oLanguage); v.sUrl && (h.ajax({
|
||||
dataType: "json", url: v.sUrl, success: function (a) {
|
||||
Fa(a);
|
||||
J(l.oLanguage, a); h.extend(true, v, a); ha(o)
|
||||
}, error: function () { ha(o) }
|
||||
}), n = !0); null === g.asStripeClasses && (o.asStripeClasses = [u.sStripeOdd, u.sStripeEven]); var e = o.asStripeClasses, x = q.children("tbody").find("tr").eq(0); -1 !== h.inArray(!0, h.map(e, function (a) { return x.hasClass(a) })) && (h("tbody tr", this).removeClass(e.join(" ")), o.asDestroyStripes = e.slice()); e = []; r = this.getElementsByTagName("thead"); 0 !== r.length && (ea(o.aoHeader, r[0]), e = ta(o)); if (null === g.aoColumns) { r = []; j = 0; for (i = e.length; j < i; j++) r.push(null) } else r =
|
||||
g.aoColumns; j = 0; for (i = r.length; j < i; j++) Ga(o, e ? e[j] : null); kb(o, g.aoColumnDefs, r, function (a, b) { la(o, a, b) }); if (x.length) { var w = function (a, b) { return a.getAttribute("data-" + b) !== null ? b : null }; h(x[0]).children("th, td").each(function (a, b) { var c = o.aoColumns[a]; if (c.mData === a) { var d = w(b, "sort") || w(b, "order"), e = w(b, "filter") || w(b, "search"); if (d !== null || e !== null) { c.mData = { _: a + ".display", sort: d !== null ? a + ".@data-" + d : k, type: d !== null ? a + ".@data-" + d : k, filter: e !== null ? a + ".@data-" + e : k }; la(o, a) } } }) } var U = o.oFeatures,
|
||||
e = function () {
|
||||
if (g.aaSorting === k) { var a = o.aaSorting; j = 0; for (i = a.length; j < i; j++) a[j][1] = o.aoColumns[j].asSorting[0] } ya(o); U.bSort && z(o, "aoDrawCallback", function () { if (o.bSorted) { var a = W(o), b = {}; h.each(a, function (a, c) { b[c.src] = c.dir }); s(o, null, "order", [o, a, b]); Kb(o) } }); z(o, "aoDrawCallback", function () { (o.bSorted || y(o) === "ssp" || U.bDeferRender) && ya(o) }, "sc"); var a = q.children("caption").each(function () { this._captionSide = h(this).css("caption-side") }), b = q.children("thead"); b.length === 0 && (b = h("<thead/>").appendTo(q));
|
||||
o.nTHead = b[0]; b = q.children("tbody"); b.length === 0 && (b = h("<tbody/>").appendTo(q)); o.nTBody = b[0]; b = q.children("tfoot"); if (b.length === 0 && a.length > 0 && (o.oScroll.sX !== "" || o.oScroll.sY !== "")) b = h("<tfoot/>").appendTo(q); if (b.length === 0 || b.children().length === 0) q.addClass(u.sNoFooter); else if (b.length > 0) { o.nTFoot = b[0]; ea(o.aoFooter, o.nTFoot) } if (g.aaData) for (j = 0; j < g.aaData.length; j++) N(o, g.aaData[j]); else (o.bDeferLoading || y(o) == "dom") && oa(o, h(o.nTBody).children("tr")); o.aiDisplay = o.aiDisplayMaster.slice();
|
||||
o.bInitialised = true; n === false && ha(o)
|
||||
}; g.bStateSave ? (U.bStateSave = !0, z(o, "aoDrawCallback", za, "state_save"), Lb(o, g, e)) : e()
|
||||
}
|
||||
}); b = null; return this
|
||||
}, x, t, p, u, $a = {}, Pb = /[\r\n]/g, Ca = /<.*?>/g, cc = /^\d{2,4}[\.\/\-]\d{1,2}[\.\/\-]\d{1,2}([T ]{1}\d{1,2}[:\.]\d{2}([\.:]\d{2})?)?$/, dc = RegExp("(\\/|\\.|\\*|\\+|\\?|\\||\\(|\\)|\\[|\\]|\\{|\\}|\\\\|\\$|\\^|\\-)", "g"), Za = /[',$£€¥%\u2009\u202F\u20BD\u20a9\u20BArfk]/gi, M = function (a) { return !a || !0 === a || "-" === a ? !0 : !1 }, Qb = function (a) {
|
||||
var b = parseInt(a, 10); return !isNaN(b) &&
|
||||
isFinite(a) ? b : null
|
||||
}, Rb = function (a, b) { $a[b] || ($a[b] = RegExp(Sa(b), "g")); return "string" === typeof a && "." !== b ? a.replace(/\./g, "").replace($a[b], ".") : a }, ab = function (a, b, c) { var d = "string" === typeof a; if (M(a)) return !0; b && d && (a = Rb(a, b)); c && d && (a = a.replace(Za, "")); return !isNaN(parseFloat(a)) && isFinite(a) }, Sb = function (a, b, c) { return M(a) ? !0 : !(M(a) || "string" === typeof a) ? null : ab(a.replace(Ca, ""), b, c) ? !0 : null }, D = function (a, b, c) {
|
||||
var d = [], e = 0, f = a.length; if (c !== k) for (; e < f; e++) a[e] && a[e][b] && d.push(a[e][b][c]); else for (; e <
|
||||
f; e++) a[e] && d.push(a[e][b]); return d
|
||||
}, ja = function (a, b, c, d) { var e = [], f = 0, g = b.length; if (d !== k) for (; f < g; f++) a[b[f]][c] && e.push(a[b[f]][c][d]); else for (; f < g; f++) e.push(a[b[f]][c]); return e }, X = function (a, b) { var c = [], d; b === k ? (b = 0, d = a) : (d = b, b = a); for (var e = b; e < d; e++) c.push(e); return c }, Tb = function (a) { for (var b = [], c = 0, d = a.length; c < d; c++) a[c] && b.push(a[c]); return b }, sa = function (a) {
|
||||
var b; a: { if (!(2 > a.length)) { b = a.slice().sort(); for (var c = b[0], d = 1, e = b.length; d < e; d++) { if (b[d] === c) { b = !1; break a } c = b[d] } } b = !0 } if (b) return a.slice();
|
||||
b = []; var e = a.length, f, g = 0, d = 0; a: for (; d < e; d++) { c = a[d]; for (f = 0; f < g; f++) if (b[f] === c) continue a; b.push(c); g++ } return b
|
||||
}; m.util = { throttle: function (a, b) { var c = b !== k ? b : 200, d, e; return function () { var b = this, g = +new Date, h = arguments; d && g < d + c ? (clearTimeout(e), e = setTimeout(function () { d = k; a.apply(b, h) }, c)) : (d = g, a.apply(b, h)) } }, escapeRegex: function (a) { return a.replace(dc, "\\$1") } }; var A = function (a, b, c) { a[b] !== k && (a[c] = a[b]) }, ca = /\[.*?\]$/, V = /\(\)$/, Sa = m.util.escapeRegex, xa = h("<div>")[0], $b = xa.textContent !== k, bc =
|
||||
/<.*?>/g, Qa = m.util.throttle, Ub = [], w = Array.prototype, ec = function (a) { var b, c, d = m.settings, e = h.map(d, function (a) { return a.nTable }); if (a) { if (a.nTable && a.oApi) return [a]; if (a.nodeName && "table" === a.nodeName.toLowerCase()) return b = h.inArray(a, e), -1 !== b ? [d[b]] : null; if (a && "function" === typeof a.settings) return a.settings().toArray(); "string" === typeof a ? c = h(a) : a instanceof h && (c = a) } else return []; if (c) return c.map(function () { b = h.inArray(this, e); return -1 !== b ? d[b] : null }).toArray() }; t = function (a, b) {
|
||||
if (!(this instanceof
|
||||
t)) return new t(a, b); var c = [], d = function (a) { (a = ec(a)) && (c = c.concat(a)) }; if (h.isArray(a)) for (var e = 0, f = a.length; e < f; e++) d(a[e]); else d(a); this.context = sa(c); b && h.merge(this, b); this.selector = { rows: null, cols: null, opts: null }; t.extend(this, this, Ub)
|
||||
}; m.Api = t; h.extend(t.prototype, {
|
||||
any: function () { return 0 !== this.count() }, concat: w.concat, context: [], count: function () { return this.flatten().length }, each: function (a) { for (var b = 0, c = this.length; b < c; b++) a.call(this, this[b], b, this); return this }, eq: function (a) {
|
||||
var b =
|
||||
this.context; return b.length > a ? new t(b[a], this[a]) : null
|
||||
}, filter: function (a) { var b = []; if (w.filter) b = w.filter.call(this, a, this); else for (var c = 0, d = this.length; c < d; c++) a.call(this, this[c], c, this) && b.push(this[c]); return new t(this.context, b) }, flatten: function () { var a = []; return new t(this.context, a.concat.apply(a, this.toArray())) }, join: w.join, indexOf: w.indexOf || function (a, b) { for (var c = b || 0, d = this.length; c < d; c++) if (this[c] === a) return c; return -1 }, iterator: function (a, b, c, d) {
|
||||
var e = [], f, g, h, i, n, l = this.context,
|
||||
m, p, u = this.selector; "string" === typeof a && (d = c, c = b, b = a, a = !1); g = 0; for (h = l.length; g < h; g++) { var s = new t(l[g]); if ("table" === b) f = c.call(s, l[g], g), f !== k && e.push(f); else if ("columns" === b || "rows" === b) f = c.call(s, l[g], this[g], g), f !== k && e.push(f); else if ("column" === b || "column-rows" === b || "row" === b || "cell" === b) { p = this[g]; "column-rows" === b && (m = Da(l[g], u.opts)); i = 0; for (n = p.length; i < n; i++) f = p[i], f = "cell" === b ? c.call(s, l[g], f.row, f.column, g, i) : c.call(s, l[g], f, g, i, m), f !== k && e.push(f) } } return e.length || d ? (a = new t(l, a ?
|
||||
e.concat.apply([], e) : e), b = a.selector, b.rows = u.rows, b.cols = u.cols, b.opts = u.opts, a) : this
|
||||
}, lastIndexOf: w.lastIndexOf || function (a, b) { return this.indexOf.apply(this.toArray.reverse(), arguments) }, length: 0, map: function (a) { var b = []; if (w.map) b = w.map.call(this, a, this); else for (var c = 0, d = this.length; c < d; c++) b.push(a.call(this, this[c], c)); return new t(this.context, b) }, pluck: function (a) { return this.map(function (b) { return b[a] }) }, pop: w.pop, push: w.push, reduce: w.reduce || function (a, b) {
|
||||
return jb(this, a, b, 0, this.length,
|
||||
1)
|
||||
}, reduceRight: w.reduceRight || function (a, b) { return jb(this, a, b, this.length - 1, -1, -1) }, reverse: w.reverse, selector: null, shift: w.shift, slice: function () { return new t(this.context, this) }, sort: w.sort, splice: w.splice, toArray: function () { return w.slice.call(this) }, to$: function () { return h(this) }, toJQuery: function () { return h(this) }, unique: function () { return new t(this.context, sa(this)) }, unshift: w.unshift
|
||||
}); t.extend = function (a, b, c) {
|
||||
if (c.length && b && (b instanceof t || b.__dt_wrapper)) {
|
||||
var d, e, f, g = function (a, b, c) {
|
||||
return function () {
|
||||
var d =
|
||||
b.apply(a, arguments); t.extend(d, d, c.methodExt); return d
|
||||
}
|
||||
}; d = 0; for (e = c.length; d < e; d++) f = c[d], b[f.name] = "function" === typeof f.val ? g(a, f.val, f) : h.isPlainObject(f.val) ? {} : f.val, b[f.name].__dt_wrapper = !0, t.extend(a, b[f.name], f.propExt)
|
||||
}
|
||||
}; t.register = p = function (a, b) {
|
||||
if (h.isArray(a)) for (var c = 0, d = a.length; c < d; c++) t.register(a[c], b); else for (var e = a.split("."), f = Ub, g, j, c = 0, d = e.length; c < d; c++) {
|
||||
g = (j = -1 !== e[c].indexOf("()")) ? e[c].replace("()", "") : e[c]; var i; a: {
|
||||
i = 0; for (var n = f.length; i < n; i++) if (f[i].name === g) {
|
||||
i =
|
||||
f[i]; break a
|
||||
} i = null
|
||||
} i || (i = { name: g, val: {}, methodExt: [], propExt: [] }, f.push(i)); c === d - 1 ? i.val = b : f = j ? i.methodExt : i.propExt
|
||||
}
|
||||
}; t.registerPlural = u = function (a, b, c) { t.register(a, c); t.register(b, function () { var a = c.apply(this, arguments); return a === this ? this : a instanceof t ? a.length ? h.isArray(a[0]) ? new t(a.context, a[0]) : a[0] : k : a }) }; p("tables()", function (a) {
|
||||
var b; if (a) {
|
||||
b = t; var c = this.context; if ("number" === typeof a) a = [c[a]]; else var d = h.map(c, function (a) { return a.nTable }), a = h(d).filter(a).map(function () {
|
||||
var a = h.inArray(this,
|
||||
d); return c[a]
|
||||
}).toArray(); b = new b(a)
|
||||
} else b = this; return b
|
||||
}); p("table()", function (a) { var a = this.tables(a), b = a.context; return b.length ? new t(b[0]) : a }); u("tables().nodes()", "table().node()", function () { return this.iterator("table", function (a) { return a.nTable }, 1) }); u("tables().body()", "table().body()", function () { return this.iterator("table", function (a) { return a.nTBody }, 1) }); u("tables().header()", "table().header()", function () { return this.iterator("table", function (a) { return a.nTHead }, 1) }); u("tables().footer()",
|
||||
"table().footer()", function () { return this.iterator("table", function (a) { return a.nTFoot }, 1) }); u("tables().containers()", "table().container()", function () { return this.iterator("table", function (a) { return a.nTableWrapper }, 1) }); p("draw()", function (a) { return this.iterator("table", function (b) { "page" === a ? O(b) : ("string" === typeof a && (a = "full-hold" === a ? !1 : !0), T(b, !1 === a)) }) }); p("page()", function (a) { return a === k ? this.page.info().page : this.iterator("table", function (b) { Va(b, a) }) }); p("page.info()", function () {
|
||||
if (0 ===
|
||||
this.context.length) return k; var a = this.context[0], b = a._iDisplayStart, c = a.oFeatures.bPaginate ? a._iDisplayLength : -1, d = a.fnRecordsDisplay(), e = -1 === c; return { page: e ? 0 : Math.floor(b / c), pages: e ? 1 : Math.ceil(d / c), start: b, end: a.fnDisplayEnd(), length: c, recordsTotal: a.fnRecordsTotal(), recordsDisplay: d, serverSide: "ssp" === y(a) }
|
||||
}); p("page.len()", function (a) { return a === k ? 0 !== this.context.length ? this.context[0]._iDisplayLength : k : this.iterator("table", function (b) { Ta(b, a) }) }); var Vb = function (a, b, c) {
|
||||
if (c) {
|
||||
var d = new t(a);
|
||||
d.one("draw", function () { c(d.ajax.json()) })
|
||||
} if ("ssp" == y(a)) T(a, b); else { C(a, !0); var e = a.jqXHR; e && 4 !== e.readyState && e.abort(); ua(a, [], function (c) { pa(a); for (var c = va(a, c), d = 0, e = c.length; d < e; d++) N(a, c[d]); T(a, b); C(a, !1) }) }
|
||||
}; p("ajax.json()", function () { var a = this.context; if (0 < a.length) return a[0].json }); p("ajax.params()", function () { var a = this.context; if (0 < a.length) return a[0].oAjaxData }); p("ajax.reload()", function (a, b) { return this.iterator("table", function (c) { Vb(c, !1 === b, a) }) }); p("ajax.url()", function (a) {
|
||||
var b =
|
||||
this.context; if (a === k) { if (0 === b.length) return k; b = b[0]; return b.ajax ? h.isPlainObject(b.ajax) ? b.ajax.url : b.ajax : b.sAjaxSource } return this.iterator("table", function (b) { h.isPlainObject(b.ajax) ? b.ajax.url = a : b.ajax = a })
|
||||
}); p("ajax.url().load()", function (a, b) { return this.iterator("table", function (c) { Vb(c, !1 === b, a) }) }); var bb = function (a, b, c, d, e) {
|
||||
var f = [], g, j, i, n, l, m; i = typeof b; if (!b || "string" === i || "function" === i || b.length === k) b = [b]; i = 0; for (n = b.length; i < n; i++) {
|
||||
j = b[i] && b[i].split && !b[i].match(/[\[\(:]/) ? b[i].split(",") :
|
||||
[b[i]]; l = 0; for (m = j.length; l < m; l++) (g = c("string" === typeof j[l] ? h.trim(j[l]) : j[l])) && g.length && (f = f.concat(g))
|
||||
} a = x.selector[a]; if (a.length) { i = 0; for (n = a.length; i < n; i++) f = a[i](d, e, f) } return sa(f)
|
||||
}, cb = function (a) { a || (a = {}); a.filter && a.search === k && (a.search = a.filter); return h.extend({ search: "none", order: "current", page: "all" }, a) }, db = function (a) { for (var b = 0, c = a.length; b < c; b++) if (0 < a[b].length) return a[0] = a[b], a[0].length = 1, a.length = 1, a.context = [a.context[b]], a; a.length = 0; return a }, Da = function (a, b) {
|
||||
var c,
|
||||
d, e, f = [], g = a.aiDisplay; c = a.aiDisplayMaster; var j = b.search; d = b.order; e = b.page; if ("ssp" == y(a)) return "removed" === j ? [] : X(0, c.length); if ("current" == e) { c = a._iDisplayStart; for (d = a.fnDisplayEnd() ; c < d; c++) f.push(g[c]) } else if ("current" == d || "applied" == d) f = "none" == j ? c.slice() : "applied" == j ? g.slice() : h.map(c, function (a) { return -1 === h.inArray(a, g) ? a : null }); else if ("index" == d || "original" == d) { c = 0; for (d = a.aoData.length; c < d; c++) "none" == j ? f.push(c) : (e = h.inArray(c, g), (-1 === e && "removed" == j || 0 <= e && "applied" == j) && f.push(c)) } return f
|
||||
};
|
||||
p("rows()", function (a, b) {
|
||||
a === k ? a = "" : h.isPlainObject(a) && (b = a, a = ""); var b = cb(b), c = this.iterator("table", function (c) {
|
||||
var e = b, f; return bb("row", a, function (a) {
|
||||
var b = Qb(a); if (b !== null && !e) return [b]; f || (f = Da(c, e)); if (b !== null && h.inArray(b, f) !== -1) return [b]; if (a === null || a === k || a === "") return f; if (typeof a === "function") return h.map(f, function (b) { var e = c.aoData[b]; return a(b, e._aData, e.nTr) ? b : null }); b = Tb(ja(c.aoData, f, "nTr")); if (a.nodeName) {
|
||||
if (a._DT_RowIndex !== k) return [a._DT_RowIndex]; if (a._DT_CellIndex) return [a._DT_CellIndex.row];
|
||||
b = h(a).closest("*[data-dt-row]"); return b.length ? [b.data("dt-row")] : []
|
||||
} if (typeof a === "string" && a.charAt(0) === "#") { var i = c.aIds[a.replace(/^#/, "")]; if (i !== k) return [i.idx] } return h(b).filter(a).map(function () { return this._DT_RowIndex }).toArray()
|
||||
}, c, e)
|
||||
}, 1); c.selector.rows = a; c.selector.opts = b; return c
|
||||
}); p("rows().nodes()", function () { return this.iterator("row", function (a, b) { return a.aoData[b].nTr || k }, 1) }); p("rows().data()", function () {
|
||||
return this.iterator(!0, "rows", function (a, b) { return ja(a.aoData, b, "_aData") },
|
||||
1)
|
||||
}); u("rows().cache()", "row().cache()", function (a) { return this.iterator("row", function (b, c) { var d = b.aoData[c]; return "search" === a ? d._aFilterData : d._aSortData }, 1) }); u("rows().invalidate()", "row().invalidate()", function (a) { return this.iterator("row", function (b, c) { da(b, c, a) }) }); u("rows().indexes()", "row().index()", function () { return this.iterator("row", function (a, b) { return b }, 1) }); u("rows().ids()", "row().id()", function (a) {
|
||||
for (var b = [], c = this.context, d = 0, e = c.length; d < e; d++) for (var f = 0, g = this[d].length; f <
|
||||
g; f++) { var h = c[d].rowIdFn(c[d].aoData[this[d][f]]._aData); b.push((!0 === a ? "#" : "") + h) } return new t(c, b)
|
||||
}); u("rows().remove()", "row().remove()", function () {
|
||||
var a = this; this.iterator("row", function (b, c, d) { var e = b.aoData, f = e[c], g, h, i, n, l; e.splice(c, 1); g = 0; for (h = e.length; g < h; g++) if (i = e[g], l = i.anCells, null !== i.nTr && (i.nTr._DT_RowIndex = g), null !== l) { i = 0; for (n = l.length; i < n; i++) l[i]._DT_CellIndex.row = g } qa(b.aiDisplayMaster, c); qa(b.aiDisplay, c); qa(a[d], c, !1); Ua(b); c = b.rowIdFn(f._aData); c !== k && delete b.aIds[c] });
|
||||
this.iterator("table", function (a) { for (var c = 0, d = a.aoData.length; c < d; c++) a.aoData[c].idx = c }); return this
|
||||
}); p("rows.add()", function (a) { var b = this.iterator("table", function (b) { var c, f, g, h = []; f = 0; for (g = a.length; f < g; f++) c = a[f], c.nodeName && "TR" === c.nodeName.toUpperCase() ? h.push(oa(b, c)[0]) : h.push(N(b, c)); return h }, 1), c = this.rows(-1); c.pop(); h.merge(c, b); return c }); p("row()", function (a, b) { return db(this.rows(a, b)) }); p("row().data()", function (a) {
|
||||
var b = this.context; if (a === k) return b.length && this.length ? b[0].aoData[this[0]]._aData :
|
||||
k; b[0].aoData[this[0]]._aData = a; da(b[0], this[0], "data"); return this
|
||||
}); p("row().node()", function () { var a = this.context; return a.length && this.length ? a[0].aoData[this[0]].nTr || null : null }); p("row.add()", function (a) { a instanceof h && a.length && (a = a[0]); var b = this.iterator("table", function (b) { return a.nodeName && "TR" === a.nodeName.toUpperCase() ? oa(b, a)[0] : N(b, a) }); return this.row(b[0]) }); var eb = function (a, b) {
|
||||
var c = a.context; if (c.length && (c = c[0].aoData[b !== k ? b : a[0]]) && c._details) c._details.remove(), c._detailsShow =
|
||||
k, c._details = k
|
||||
}, Wb = function (a, b) {
|
||||
var c = a.context; if (c.length && a.length) {
|
||||
var d = c[0].aoData[a[0]]; if (d._details) {
|
||||
(d._detailsShow = b) ? d._details.insertAfter(d.nTr) : d._details.detach(); var e = c[0], f = new t(e), g = e.aoData; f.off("draw.dt.DT_details column-visibility.dt.DT_details destroy.dt.DT_details"); 0 < D(g, "_details").length && (f.on("draw.dt.DT_details", function (a, b) { e === b && f.rows({ page: "current" }).eq(0).each(function (a) { a = g[a]; a._detailsShow && a._details.insertAfter(a.nTr) }) }), f.on("column-visibility.dt.DT_details",
|
||||
function (a, b) { if (e === b) for (var c, d = ba(b), f = 0, h = g.length; f < h; f++) c = g[f], c._details && c._details.children("td[colspan]").attr("colspan", d) }), f.on("destroy.dt.DT_details", function (a, b) { if (e === b) for (var c = 0, d = g.length; c < d; c++) g[c]._details && eb(f, c) }))
|
||||
}
|
||||
}
|
||||
}; p("row().child()", function (a, b) {
|
||||
var c = this.context; if (a === k) return c.length && this.length ? c[0].aoData[this[0]]._details : k; if (!0 === a) this.child.show(); else if (!1 === a) eb(this); else if (c.length && this.length) {
|
||||
var d = c[0], c = c[0].aoData[this[0]], e = [], f = function (a,
|
||||
b) { if (h.isArray(a) || a instanceof h) for (var c = 0, k = a.length; c < k; c++) f(a[c], b); else a.nodeName && "tr" === a.nodeName.toLowerCase() ? e.push(a) : (c = h("<tr><td/></tr>").addClass(b), h("td", c).addClass(b).html(a)[0].colSpan = ba(d), e.push(c[0])) }; f(a, b); c._details && c._details.detach(); c._details = h(e); c._detailsShow && c._details.insertAfter(c.nTr)
|
||||
} return this
|
||||
}); p(["row().child.show()", "row().child().show()"], function () { Wb(this, !0); return this }); p(["row().child.hide()", "row().child().hide()"], function () {
|
||||
Wb(this, !1);
|
||||
return this
|
||||
}); p(["row().child.remove()", "row().child().remove()"], function () { eb(this); return this }); p("row().child.isShown()", function () { var a = this.context; return a.length && this.length ? a[0].aoData[this[0]]._detailsShow || !1 : !1 }); var fc = /^([^:]+):(name|visIdx|visible)$/, Xb = function (a, b, c, d, e) { for (var c = [], d = 0, f = e.length; d < f; d++) c.push(B(a, e[d], b)); return c }; p("columns()", function (a, b) {
|
||||
a === k ? a = "" : h.isPlainObject(a) && (b = a, a = ""); var b = cb(b), c = this.iterator("table", function (c) {
|
||||
var e = a, f = b, g = c.aoColumns,
|
||||
j = D(g, "sName"), i = D(g, "nTh"); return bb("column", e, function (a) {
|
||||
var b = Qb(a); if (a === "") return X(g.length); if (b !== null) return [b >= 0 ? b : g.length + b]; if (typeof a === "function") { var e = Da(c, f); return h.map(g, function (b, f) { return a(f, Xb(c, f, 0, 0, e), i[f]) ? f : null }) } var k = typeof a === "string" ? a.match(fc) : ""; if (k) switch (k[2]) {
|
||||
case "visIdx": case "visible": b = parseInt(k[1], 10); if (b < 0) { var m = h.map(g, function (a, b) { return a.bVisible ? b : null }); return [m[m.length + b]] } return [$(c, b)]; case "name": return h.map(j, function (a, b) {
|
||||
return a ===
|
||||
k[1] ? b : null
|
||||
}); default: return []
|
||||
} if (a.nodeName && a._DT_CellIndex) return [a._DT_CellIndex.column]; b = h(i).filter(a).map(function () { return h.inArray(this, i) }).toArray(); if (b.length || !a.nodeName) return b; b = h(a).closest("*[data-dt-column]"); return b.length ? [b.data("dt-column")] : []
|
||||
}, c, f)
|
||||
}, 1); c.selector.cols = a; c.selector.opts = b; return c
|
||||
}); u("columns().header()", "column().header()", function () { return this.iterator("column", function (a, b) { return a.aoColumns[b].nTh }, 1) }); u("columns().footer()", "column().footer()",
|
||||
function () { return this.iterator("column", function (a, b) { return a.aoColumns[b].nTf }, 1) }); u("columns().data()", "column().data()", function () { return this.iterator("column-rows", Xb, 1) }); u("columns().dataSrc()", "column().dataSrc()", function () { return this.iterator("column", function (a, b) { return a.aoColumns[b].mData }, 1) }); u("columns().cache()", "column().cache()", function (a) { return this.iterator("column-rows", function (b, c, d, e, f) { return ja(b.aoData, f, "search" === a ? "_aFilterData" : "_aSortData", c) }, 1) }); u("columns().nodes()",
|
||||
"column().nodes()", function () { return this.iterator("column-rows", function (a, b, c, d, e) { return ja(a.aoData, e, "anCells", b) }, 1) }); u("columns().visible()", "column().visible()", function (a, b) {
|
||||
var c = this.iterator("column", function (b, c) {
|
||||
if (a === k) return b.aoColumns[c].bVisible; var f = b.aoColumns, g = f[c], j = b.aoData, i, n, l; if (a !== k && g.bVisible !== a) {
|
||||
if (a) { var m = h.inArray(!0, D(f, "bVisible"), c + 1); i = 0; for (n = j.length; i < n; i++) l = j[i].nTr, f = j[i].anCells, l && l.insertBefore(f[c], f[m] || null) } else h(D(b.aoData, "anCells", c)).detach();
|
||||
g.bVisible = a; fa(b, b.aoHeader); fa(b, b.aoFooter); za(b)
|
||||
}
|
||||
}); a !== k && (this.iterator("column", function (c, e) { s(c, null, "column-visibility", [c, e, a, b]) }), (b === k || b) && this.columns.adjust()); return c
|
||||
}); u("columns().indexes()", "column().index()", function (a) { return this.iterator("column", function (b, c) { return "visible" === a ? aa(b, c) : c }, 1) }); p("columns.adjust()", function () { return this.iterator("table", function (a) { Z(a) }, 1) }); p("column.index()", function (a, b) {
|
||||
if (0 !== this.context.length) {
|
||||
var c = this.context[0]; if ("fromVisible" ===
|
||||
a || "toData" === a) return $(c, b); if ("fromData" === a || "toVisible" === a) return aa(c, b)
|
||||
}
|
||||
}); p("column()", function (a, b) { return db(this.columns(a, b)) }); p("cells()", function (a, b, c) {
|
||||
h.isPlainObject(a) && (a.row === k ? (c = a, a = null) : (c = b, b = null)); h.isPlainObject(b) && (c = b, b = null); if (null === b || b === k) return this.iterator("table", function (b) {
|
||||
var d = a, e = cb(c), f = b.aoData, g = Da(b, e), j = Tb(ja(f, g, "anCells")), i = h([].concat.apply([], j)), l, n = b.aoColumns.length, m, p, u, t, s, v; return bb("cell", d, function (a) {
|
||||
var c = typeof a === "function";
|
||||
if (a === null || a === k || c) { m = []; p = 0; for (u = g.length; p < u; p++) { l = g[p]; for (t = 0; t < n; t++) { s = { row: l, column: t }; if (c) { v = f[l]; a(s, B(b, l, t), v.anCells ? v.anCells[t] : null) && m.push(s) } else m.push(s) } } return m } if (h.isPlainObject(a)) return [a]; c = i.filter(a).map(function (a, b) { return { row: b._DT_CellIndex.row, column: b._DT_CellIndex.column } }).toArray(); if (c.length || !a.nodeName) return c; v = h(a).closest("*[data-dt-row]"); return v.length ? [{ row: v.data("dt-row"), column: v.data("dt-column") }] : []
|
||||
}, b, e)
|
||||
}); var d = this.columns(b, c), e = this.rows(a,
|
||||
c), f, g, j, i, n, l = this.iterator("table", function (a, b) { f = []; g = 0; for (j = e[b].length; g < j; g++) { i = 0; for (n = d[b].length; i < n; i++) f.push({ row: e[b][g], column: d[b][i] }) } return f }, 1); h.extend(l.selector, { cols: b, rows: a, opts: c }); return l
|
||||
}); u("cells().nodes()", "cell().node()", function () { return this.iterator("cell", function (a, b, c) { return (a = a.aoData[b]) && a.anCells ? a.anCells[c] : k }, 1) }); p("cells().data()", function () { return this.iterator("cell", function (a, b, c) { return B(a, b, c) }, 1) }); u("cells().cache()", "cell().cache()", function (a) {
|
||||
a =
|
||||
"search" === a ? "_aFilterData" : "_aSortData"; return this.iterator("cell", function (b, c, d) { return b.aoData[c][a][d] }, 1)
|
||||
}); u("cells().render()", "cell().render()", function (a) { return this.iterator("cell", function (b, c, d) { return B(b, c, d, a) }, 1) }); u("cells().indexes()", "cell().index()", function () { return this.iterator("cell", function (a, b, c) { return { row: b, column: c, columnVisible: aa(a, c) } }, 1) }); u("cells().invalidate()", "cell().invalidate()", function (a) { return this.iterator("cell", function (b, c, d) { da(b, c, a, d) }) }); p("cell()",
|
||||
function (a, b, c) { return db(this.cells(a, b, c)) }); p("cell().data()", function (a) { var b = this.context, c = this[0]; if (a === k) return b.length && c.length ? B(b[0], c[0].row, c[0].column) : k; lb(b[0], c[0].row, c[0].column, a); da(b[0], c[0].row, "data", c[0].column); return this }); p("order()", function (a, b) { var c = this.context; if (a === k) return 0 !== c.length ? c[0].aaSorting : k; "number" === typeof a ? a = [[a, b]] : a.length && !h.isArray(a[0]) && (a = Array.prototype.slice.call(arguments)); return this.iterator("table", function (b) { b.aaSorting = a.slice() }) });
|
||||
p("order.listener()", function (a, b, c) { return this.iterator("table", function (d) { Oa(d, a, b, c) }) }); p("order.fixed()", function (a) { if (!a) { var b = this.context, b = b.length ? b[0].aaSortingFixed : k; return h.isArray(b) ? { pre: b } : b } return this.iterator("table", function (b) { b.aaSortingFixed = h.extend(!0, {}, a) }) }); p(["columns().order()", "column().order()"], function (a) { var b = this; return this.iterator("table", function (c, d) { var e = []; h.each(b[d], function (b, c) { e.push([c, a]) }); c.aaSorting = e }) }); p("search()", function (a, b, c, d) {
|
||||
var e =
|
||||
this.context; return a === k ? 0 !== e.length ? e[0].oPreviousSearch.sSearch : k : this.iterator("table", function (e) { e.oFeatures.bFilter && ga(e, h.extend({}, e.oPreviousSearch, { sSearch: a + "", bRegex: null === b ? !1 : b, bSmart: null === c ? !0 : c, bCaseInsensitive: null === d ? !0 : d }), 1) })
|
||||
}); u("columns().search()", "column().search()", function (a, b, c, d) {
|
||||
return this.iterator("column", function (e, f) {
|
||||
var g = e.aoPreSearchCols; if (a === k) return g[f].sSearch; e.oFeatures.bFilter && (h.extend(g[f], {
|
||||
sSearch: a + "", bRegex: null === b ? !1 : b, bSmart: null === c ?
|
||||
!0 : c, bCaseInsensitive: null === d ? !0 : d
|
||||
}), ga(e, e.oPreviousSearch, 1))
|
||||
})
|
||||
}); p("state()", function () { return this.context.length ? this.context[0].oSavedState : null }); p("state.clear()", function () { return this.iterator("table", function (a) { a.fnStateSaveCallback.call(a.oInstance, a, {}) }) }); p("state.loaded()", function () { return this.context.length ? this.context[0].oLoadedState : null }); p("state.save()", function () { return this.iterator("table", function (a) { za(a) }) }); m.versionCheck = m.fnVersionCheck = function (a) {
|
||||
for (var b = m.version.split("."),
|
||||
a = a.split("."), c, d, e = 0, f = a.length; e < f; e++) if (c = parseInt(b[e], 10) || 0, d = parseInt(a[e], 10) || 0, c !== d) return c > d; return !0
|
||||
}; m.isDataTable = m.fnIsDataTable = function (a) { var b = h(a).get(0), c = !1; if (a instanceof m.Api) return !0; h.each(m.settings, function (a, e) { var f = e.nScrollHead ? h("table", e.nScrollHead)[0] : null, g = e.nScrollFoot ? h("table", e.nScrollFoot)[0] : null; if (e.nTable === b || f === b || g === b) c = !0 }); return c }; m.tables = m.fnTables = function (a) {
|
||||
var b = !1; h.isPlainObject(a) && (b = a.api, a = a.visible); var c = h.map(m.settings,
|
||||
function (b) { if (!a || a && h(b.nTable).is(":visible")) return b.nTable }); return b ? new t(c) : c
|
||||
}; m.camelToHungarian = J; p("$()", function (a, b) { var c = this.rows(b).nodes(), c = h(c); return h([].concat(c.filter(a).toArray(), c.find(a).toArray())) }); h.each(["on", "one", "off"], function (a, b) { p(b + "()", function () { var a = Array.prototype.slice.call(arguments); a[0] = h.map(a[0].split(/\s/), function (a) { return !a.match(/\.dt\b/) ? a + ".dt" : a }).join(" "); var d = h(this.tables().nodes()); d[b].apply(d, a); return this }) }); p("clear()", function () {
|
||||
return this.iterator("table",
|
||||
function (a) { pa(a) })
|
||||
}); p("settings()", function () { return new t(this.context, this.context) }); p("init()", function () { var a = this.context; return a.length ? a[0].oInit : null }); p("data()", function () { return this.iterator("table", function (a) { return D(a.aoData, "_aData") }).flatten() }); p("destroy()", function (a) {
|
||||
a = a || !1; return this.iterator("table", function (b) {
|
||||
var c = b.nTableWrapper.parentNode, d = b.oClasses, e = b.nTable, f = b.nTBody, g = b.nTHead, j = b.nTFoot, i = h(e), f = h(f), k = h(b.nTableWrapper), l = h.map(b.aoData, function (a) { return a.nTr }),
|
||||
p; b.bDestroying = !0; s(b, "aoDestroyCallback", "destroy", [b]); a || (new t(b)).columns().visible(!0); k.off(".DT").find(":not(tbody *)").off(".DT"); h(E).off(".DT-" + b.sInstance); e != g.parentNode && (i.children("thead").detach(), i.append(g)); j && e != j.parentNode && (i.children("tfoot").detach(), i.append(j)); b.aaSorting = []; b.aaSortingFixed = []; ya(b); h(l).removeClass(b.asStripeClasses.join(" ")); h("th, td", g).removeClass(d.sSortable + " " + d.sSortableAsc + " " + d.sSortableDesc + " " + d.sSortableNone); b.bJUI && (h("th span." + d.sSortIcon +
|
||||
", td span." + d.sSortIcon, g).detach(), h("th, td", g).each(function () { var a = h("div." + d.sSortJUIWrapper, this); h(this).append(a.contents()); a.detach() })); f.children().detach(); f.append(l); g = a ? "remove" : "detach"; i[g](); k[g](); !a && c && (c.insertBefore(e, b.nTableReinsertBefore), i.css("width", b.sDestroyWidth).removeClass(d.sTable), (p = b.asDestroyStripes.length) && f.children().each(function (a) { h(this).addClass(b.asDestroyStripes[a % p]) })); c = h.inArray(b, m.settings); -1 !== c && m.settings.splice(c, 1)
|
||||
})
|
||||
}); h.each(["column",
|
||||
"row", "cell"], function (a, b) { p(b + "s().every()", function (a) { var d = this.selector.opts, e = this; return this.iterator(b, function (f, g, h, i, m) { a.call(e[b](g, "cell" === b ? h : d, "cell" === b ? d : k), g, h, i, m) }) }) }); p("i18n()", function (a, b, c) { var d = this.context[0], a = R(a)(d.oLanguage); a === k && (a = b); c !== k && h.isPlainObject(a) && (a = a[c] !== k ? a[c] : a._); return a.replace("%d", c) }); m.version = "1.10.15"; m.settings = []; m.models = {}; m.models.oSearch = { bCaseInsensitive: !0, sSearch: "", bRegex: !1, bSmart: !0 }; m.models.oRow = {
|
||||
nTr: null, anCells: null,
|
||||
_aData: [], _aSortData: null, _aFilterData: null, _sFilterRow: null, _sRowStripe: "", src: null, idx: -1
|
||||
}; m.models.oColumn = { idx: null, aDataSort: null, asSorting: null, bSearchable: null, bSortable: null, bVisible: null, _sManualType: null, _bAttrSrc: !1, fnCreatedCell: null, fnGetData: null, fnSetData: null, mData: null, mRender: null, nTh: null, nTf: null, sClass: null, sContentPadding: null, sDefaultContent: null, sName: null, sSortDataType: "std", sSortingClass: null, sSortingClassJUI: null, sTitle: null, sType: null, sWidth: null, sWidthOrig: null }; m.defaults =
|
||||
{
|
||||
aaData: null, aaSorting: [[0, "asc"]], aaSortingFixed: [], ajax: null, aLengthMenu: [10, 25, 50, 100], aoColumns: null, aoColumnDefs: null, aoSearchCols: [], asStripeClasses: null, bAutoWidth: !0, bDeferRender: !1, bDestroy: !1, bFilter: !0, bInfo: !0, bJQueryUI: !1, bLengthChange: !0, bPaginate: !0, bProcessing: !1, bRetrieve: !1, bScrollCollapse: !1, bServerSide: !1, bSort: !0, bSortMulti: !0, bSortCellsTop: !1, bSortClasses: !0, bStateSave: !1, fnCreatedRow: null, fnDrawCallback: null, fnFooterCallback: null, fnFormatNumber: function (a) {
|
||||
return a.toString().replace(/\B(?=(\d{3})+(?!\d))/g,
|
||||
this.oLanguage.sThousands)
|
||||
}, fnHeaderCallback: null, fnInfoCallback: null, fnInitComplete: null, fnPreDrawCallback: null, fnRowCallback: null, fnServerData: null, fnServerParams: null, fnStateLoadCallback: function (a) { try { return JSON.parse((-1 === a.iStateDuration ? sessionStorage : localStorage).getItem("DataTables_" + a.sInstance + "_" + location.pathname)) } catch (b) { } }, fnStateLoadParams: null, fnStateLoaded: null, fnStateSaveCallback: function (a, b) {
|
||||
try {
|
||||
(-1 === a.iStateDuration ? sessionStorage : localStorage).setItem("DataTables_" + a.sInstance +
|
||||
"_" + location.pathname, JSON.stringify(b))
|
||||
} catch (c) { }
|
||||
}, fnStateSaveParams: null, iStateDuration: 7200, iDeferLoading: null, iDisplayLength: 10, iDisplayStart: 0, iTabIndex: 0, oClasses: {}, oLanguage: {
|
||||
oAria: { sSortAscending: ": activate to sort column ascending", sSortDescending: ": activate to sort column descending" }, oPaginate: { sFirst: "First", sLast: "Last", sNext: "Next", sPrevious: "Previous" }, sEmptyTable: "No data available in table", sInfo: "Mostrando resultados _START_ a _END_ de _TOTAL_", sInfoEmpty: "Mostrando resultados 0 a 0 de 0",
|
||||
sInfoFiltered: "(filtrados de _MAX_ entradas totales)", sInfoPostFix: "", sDecimal: "", sThousands: ",", sLengthMenu: "Show _MENU_ entries", sLoadingRecords: "Loading...", sProcessing: "Processing...", sSearch: "", sSearchPlaceholder: "", sUrl: "", sZeroRecords: "No hay resultados"
|
||||
}, oSearch: h.extend({}, m.models.oSearch), sAjaxDataProp: "data", sAjaxSource: null, sDom: "lfrtip", searchDelay: null, sPaginationType: "simple_numbers", sScrollX: "", sScrollXInner: "", sScrollY: "", sServerMethod: "GET", renderer: null, rowId: "DT_RowId"
|
||||
};
|
||||
Y(m.defaults); m.defaults.column = { aDataSort: null, iDataSort: -1, asSorting: ["asc", "desc"], bSearchable: !0, bSortable: !0, bVisible: !0, fnCreatedCell: null, mData: null, mRender: null, sCellType: "td", sClass: "", sContentPadding: "", sDefaultContent: null, sName: "", sSortDataType: "std", sTitle: null, sType: null, sWidth: null }; Y(m.defaults.column); m.models.oSettings = {
|
||||
oFeatures: {
|
||||
bAutoWidth: null, bDeferRender: null, bFilter: null, bInfo: null, bLengthChange: null, bPaginate: null, bProcessing: null, bServerSide: null, bSort: null, bSortMulti: null,
|
||||
bSortClasses: null, bStateSave: null
|
||||
}, oScroll: { bCollapse: null, iBarWidth: 0, sX: null, sXInner: null, sY: null }, oLanguage: { fnInfoCallback: null }, oBrowser: { bScrollOversize: !1, bScrollbarLeft: !1, bBounding: !1, barWidth: 0 }, ajax: null, aanFeatures: [], aoData: [], aiDisplay: [], aiDisplayMaster: [], aIds: {}, aoColumns: [], aoHeader: [], aoFooter: [], oPreviousSearch: {}, aoPreSearchCols: [], aaSorting: null, aaSortingFixed: [], asStripeClasses: null, asDestroyStripes: [], sDestroyWidth: 0, aoRowCallback: [], aoHeaderCallback: [], aoFooterCallback: [],
|
||||
aoDrawCallback: [], aoRowCreatedCallback: [], aoPreDrawCallback: [], aoInitComplete: [], aoStateSaveParams: [], aoStateLoadParams: [], aoStateLoaded: [], sTableId: "", nTable: null, nTHead: null, nTFoot: null, nTBody: null, nTableWrapper: null, bDeferLoading: !1, bInitialised: !1, aoOpenRows: [], sDom: null, searchDelay: null, sPaginationType: "two_button", iStateDuration: 0, aoStateSave: [], aoStateLoad: [], oSavedState: null, oLoadedState: null, sAjaxSource: null, sAjaxDataProp: null, bAjaxDataGet: !0, jqXHR: null, json: k, oAjaxData: k, fnServerData: null,
|
||||
aoServerParams: [], sServerMethod: null, fnFormatNumber: null, aLengthMenu: null, iDraw: 0, bDrawing: !1, iDrawError: -1, _iDisplayLength: 10, _iDisplayStart: 0, _iRecordsTotal: 0, _iRecordsDisplay: 0, bJUI: null, oClasses: {}, bFiltered: !1, bSorted: !1, bSortCellsTop: null, oInit: null, aoDestroyCallback: [], fnRecordsTotal: function () { return "ssp" == y(this) ? 1 * this._iRecordsTotal : this.aiDisplayMaster.length }, fnRecordsDisplay: function () { return "ssp" == y(this) ? 1 * this._iRecordsDisplay : this.aiDisplay.length }, fnDisplayEnd: function () {
|
||||
var a =
|
||||
this._iDisplayLength, b = this._iDisplayStart, c = b + a, d = this.aiDisplay.length, e = this.oFeatures, f = e.bPaginate; return e.bServerSide ? !1 === f || -1 === a ? b + d : Math.min(b + a, this._iRecordsDisplay) : !f || c > d || -1 === a ? d : c
|
||||
}, oInstance: null, sInstance: null, iTabIndex: 0, nScrollHead: null, nScrollFoot: null, aLastSort: [], oPlugins: {}, rowIdFn: null, rowId: null
|
||||
}; m.ext = x = {
|
||||
buttons: {}, classes: {}, builder: "-source-", errMode: "alert", feature: [], search: [], selector: { cell: [], column: [], row: [] }, internal: {}, legacy: { ajax: null }, pager: {}, renderer: {
|
||||
pageButton: {},
|
||||
header: {}
|
||||
}, order: {}, type: { detect: [], search: {}, order: {} }, _unique: 0, fnVersionCheck: m.fnVersionCheck, iApiIndex: 0, oJUIClasses: {}, sVersion: m.version
|
||||
}; h.extend(x, { afnFiltering: x.search, aTypes: x.type.detect, ofnSearch: x.type.search, oSort: x.type.order, afnSortData: x.order, aoFeatures: x.feature, oApi: x.internal, oStdClasses: x.classes, oPagination: x.pager }); h.extend(m.ext.classes, {
|
||||
sTable: "dataTable", sNoFooter: "no-footer", sPageButton: "paginate_button", sPageButtonActive: "current", sPageButtonDisabled: "disabled", sStripeOdd: "odd",
|
||||
sStripeEven: "even", sRowEmpty: "dataTables_empty", sWrapper: "dataTables_wrapper", sFilter: "dataTables_filter", sInfo: "dataTables_info", sPaging: "dataTables_paginate paging_", sLength: "dataTables_length", sProcessing: "dataTables_processing", sSortAsc: "sorting_asc", sSortDesc: "sorting_desc", sSortable: "sorting", sSortableAsc: "sorting_asc_disabled", sSortableDesc: "sorting_desc_disabled", sSortableNone: "sorting_disabled", sSortColumn: "sorting_", sFilterInput: "", sLengthSelect: "", sScrollWrapper: "dataTables_scroll", sScrollHead: "dataTables_scrollHead",
|
||||
sScrollHeadInner: "dataTables_scrollHeadInner", sScrollBody: "dataTables_scrollBody", sScrollFoot: "dataTables_scrollFoot", sScrollFootInner: "dataTables_scrollFootInner", sHeaderTH: "", sFooterTH: "", sSortJUIAsc: "", sSortJUIDesc: "", sSortJUI: "", sSortJUIAscAllowed: "", sSortJUIDescAllowed: "", sSortJUIWrapper: "", sSortIcon: "", sJUIHeader: "", sJUIFooter: ""
|
||||
}); var Ea = "", Ea = "", G = Ea + "ui-state-default", ka = Ea + "css_right ui-icon ui-icon-", Yb = Ea + "fg-toolbar ui-toolbar ui-widget-header ui-helper-clearfix"; h.extend(m.ext.oJUIClasses,
|
||||
m.ext.classes, {
|
||||
sPageButton: "fg-button ui-button " + G, sPageButtonActive: "ui-state-disabled", sPageButtonDisabled: "ui-state-disabled", sPaging: "dataTables_paginate fg-buttonset ui-buttonset fg-buttonset-multi ui-buttonset-multi paging_", sSortAsc: G + " sorting_asc", sSortDesc: G + " sorting_desc", sSortable: G + " sorting", sSortableAsc: G + " sorting_asc_disabled", sSortableDesc: G + " sorting_desc_disabled", sSortableNone: G + " sorting_disabled", sSortJUIAsc: ka + "triangle-1-n", sSortJUIDesc: ka + "triangle-1-s", sSortJUI: ka + "carat-2-n-s",
|
||||
sSortJUIAscAllowed: ka + "carat-1-n", sSortJUIDescAllowed: ka + "carat-1-s", sSortJUIWrapper: "DataTables_sort_wrapper", sSortIcon: "DataTables_sort_icon", sScrollHead: "dataTables_scrollHead " + G, sScrollFoot: "dataTables_scrollFoot " + G, sHeaderTH: G, sFooterTH: G, sJUIHeader: Yb + " ui-corner-tl ui-corner-tr", sJUIFooter: Yb + " ui-corner-bl ui-corner-br"
|
||||
}); var Nb = m.ext.pager; h.extend(Nb, {
|
||||
simple: function () { return ["previous", "next"] }, full: function () { return ["first", "previous", "next", "last"] }, numbers: function (a, b) {
|
||||
return [ia(a,
|
||||
b)]
|
||||
}, simple_numbers: function (a, b) { return ["previous", ia(a, b), "next"] }, full_numbers: function (a, b) { return ["first", "previous", ia(a, b), "next", "last"] }, first_last_numbers: function (a, b) { return ["first", ia(a, b), "last"] }, _numbers: ia, numbers_length: 7
|
||||
}); h.extend(!0, m.ext.renderer, {
|
||||
pageButton: {
|
||||
_: function (a, b, c, d, e, f) {
|
||||
var g = a.oClasses, j = a.oLanguage.oPaginate, i = a.oLanguage.oAria.paginate || {}, m, l, p = 0, r = function (b, d) {
|
||||
var k, t, u, s, v = function (b) { Va(a, b.data.action, true) }; k = 0; for (t = d.length; k < t; k++) {
|
||||
s = d[k]; if (h.isArray(s)) {
|
||||
u =
|
||||
h("<" + (s.DT_el || "div") + "/>").appendTo(b); r(u, s)
|
||||
} else {
|
||||
m = null; l = ""; switch (s) { case "ellipsis": b.append('<span class="ellipsis">…</span>'); break; case "first": m = j.sFirst; l = s + (e > 0 ? "" : " " + g.sPageButtonDisabled); break; case "previous": m = j.sPrevious; l = s + (e > 0 ? "" : " " + g.sPageButtonDisabled); break; case "next": m = j.sNext; l = s + (e < f - 1 ? "" : " " + g.sPageButtonDisabled); break; case "last": m = j.sLast; l = s + (e < f - 1 ? "" : " " + g.sPageButtonDisabled); break; default: m = s + 1; l = e === s ? g.sPageButtonActive : "" } if (m !== null) {
|
||||
u = h("<a>", {
|
||||
"class": g.sPageButton +
|
||||
" " + l, "aria-controls": a.sTableId, "aria-label": i[s], "data-dt-idx": p, tabindex: a.iTabIndex, id: c === 0 && typeof s === "string" ? a.sTableId + "_" + s : null
|
||||
}).html(m).appendTo(b); Ya(u, { action: s }, v); p++
|
||||
}
|
||||
}
|
||||
}
|
||||
}, t; try { t = h(b).find(H.activeElement).data("dt-idx") } catch (u) { } r(h(b).empty(), d); t !== k && h(b).find("[data-dt-idx=" + t + "]").focus()
|
||||
}
|
||||
}
|
||||
}); h.extend(m.ext.type.detect, [function (a, b) { var c = b.oLanguage.sDecimal; return ab(a, c) ? "num" + c : null }, function (a) {
|
||||
if (a && !(a instanceof Date) && !cc.test(a)) return null; var b = Date.parse(a);
|
||||
return null !== b && !isNaN(b) || M(a) ? "date" : null
|
||||
}, function (a, b) { var c = b.oLanguage.sDecimal; return ab(a, c, !0) ? "num-fmt" + c : null }, function (a, b) { var c = b.oLanguage.sDecimal; return Sb(a, c) ? "html-num" + c : null }, function (a, b) { var c = b.oLanguage.sDecimal; return Sb(a, c, !0) ? "html-num-fmt" + c : null }, function (a) { return M(a) || "string" === typeof a && -1 !== a.indexOf("<") ? "html" : null }]); h.extend(m.ext.type.search, {
|
||||
html: function (a) { return M(a) ? a : "string" === typeof a ? a.replace(Pb, " ").replace(Ca, "") : "" }, string: function (a) {
|
||||
return M(a) ?
|
||||
a : "string" === typeof a ? a.replace(Pb, " ") : a
|
||||
}
|
||||
}); var Ba = function (a, b, c, d) { if (0 !== a && (!a || "-" === a)) return -Infinity; b && (a = Rb(a, b)); a.replace && (c && (a = a.replace(c, "")), d && (a = a.replace(d, ""))); return 1 * a }; h.extend(x.type.order, {
|
||||
"date-pre": function (a) { return Date.parse(a) || -Infinity }, "html-pre": function (a) { return M(a) ? "" : a.replace ? a.replace(/<.*?>/g, "").toLowerCase() : a + "" }, "string-pre": function (a) { return M(a) ? "" : "string" === typeof a ? a.toLowerCase() : !a.toString ? "" : a.toString() }, "string-asc": function (a, b) {
|
||||
return a <
|
||||
b ? -1 : a > b ? 1 : 0
|
||||
}, "string-desc": function (a, b) { return a < b ? 1 : a > b ? -1 : 0 }
|
||||
}); fb(""); h.extend(!0, m.ext.renderer, {
|
||||
header: {
|
||||
_: function (a, b, c, d) { h(a.nTable).on("order.dt.DT", function (e, f, g, h) { if (a === f) { e = c.idx; b.removeClass(c.sSortingClass + " " + d.sSortAsc + " " + d.sSortDesc).addClass(h[e] == "asc" ? d.sSortAsc : h[e] == "desc" ? d.sSortDesc : c.sSortingClass) } }) }, jqueryui: function (a, b, c, d) {
|
||||
h("<div/>").addClass(d.sSortJUIWrapper).append(b.contents()).append(h("<span/>").addClass(d.sSortIcon + " " + c.sSortingClassJUI)).appendTo(b);
|
||||
h(a.nTable).on("order.dt.DT", function (e, f, g, h) { if (a === f) { e = c.idx; b.removeClass(d.sSortAsc + " " + d.sSortDesc).addClass(h[e] == "asc" ? d.sSortAsc : h[e] == "desc" ? d.sSortDesc : c.sSortingClass); b.find("span." + d.sSortIcon).removeClass(d.sSortJUIAsc + " " + d.sSortJUIDesc + " " + d.sSortJUI + " " + d.sSortJUIAscAllowed + " " + d.sSortJUIDescAllowed).addClass(h[e] == "asc" ? d.sSortJUIAsc : h[e] == "desc" ? d.sSortJUIDesc : c.sSortingClassJUI) } })
|
||||
}
|
||||
}
|
||||
}); var Zb = function (a) {
|
||||
return "string" === typeof a ? a.replace(/</g, "<").replace(/>/g, ">").replace(/"/g,
|
||||
""") : a
|
||||
}; m.render = { number: function (a, b, c, d, e) { return { display: function (f) { if ("number" !== typeof f && "string" !== typeof f) return f; var g = 0 > f ? "-" : "", h = parseFloat(f); if (isNaN(h)) return Zb(f); h = h.toFixed(c); f = Math.abs(h); h = parseInt(f, 10); f = c ? b + (f - h).toFixed(c).substring(2) : ""; return g + (d || "") + h.toString().replace(/\B(?=(\d{3})+(?!\d))/g, a) + f + (e || "") } } }, text: function () { return { display: Zb } } }; h.extend(m.ext.internal, {
|
||||
_fnExternApiFunc: Ob, _fnBuildAjax: ua, _fnAjaxUpdate: nb, _fnAjaxParameters: wb, _fnAjaxUpdateDraw: xb,
|
||||
_fnAjaxDataSrc: va, _fnAddColumn: Ga, _fnColumnOptions: la, _fnAdjustColumnSizing: Z, _fnVisibleToColumnIndex: $, _fnColumnIndexToVisible: aa, _fnVisbleColumns: ba, _fnGetColumns: na, _fnColumnTypes: Ia, _fnApplyColumnDefs: kb, _fnHungarianMap: Y, _fnCamelToHungarian: J, _fnLanguageCompat: Fa, _fnBrowserDetect: ib, _fnAddData: N, _fnAddTr: oa, _fnNodeToDataIndex: function (a, b) { return b._DT_RowIndex !== k ? b._DT_RowIndex : null }, _fnNodeToColumnIndex: function (a, b, c) { return h.inArray(c, a.aoData[b].anCells) }, _fnGetCellData: B, _fnSetCellData: lb,
|
||||
_fnSplitObjNotation: La, _fnGetObjectDataFn: R, _fnSetObjectDataFn: S, _fnGetDataMaster: Ma, _fnClearTable: pa, _fnDeleteIndex: qa, _fnInvalidate: da, _fnGetRowElements: Ka, _fnCreateTr: Ja, _fnBuildHead: mb, _fnDrawHead: fa, _fnDraw: O, _fnReDraw: T, _fnAddOptionsHtml: pb, _fnDetectHeader: ea, _fnGetUniqueThs: ta, _fnFeatureHtmlFilter: rb, _fnFilterComplete: ga, _fnFilterCustom: Ab, _fnFilterColumn: zb, _fnFilter: yb, _fnFilterCreateSearch: Ra, _fnEscapeRegex: Sa, _fnFilterData: Bb, _fnFeatureHtmlInfo: ub, _fnUpdateInfo: Eb, _fnInfoMacros: Fb, _fnInitialise: ha,
|
||||
_fnInitComplete: wa, _fnLengthChange: Ta, _fnFeatureHtmlLength: qb, _fnFeatureHtmlPaginate: vb, _fnPageChange: Va, _fnFeatureHtmlProcessing: sb, _fnProcessingDisplay: C, _fnFeatureHtmlTable: tb, _fnScrollDraw: ma, _fnApplyToChildren: I, _fnCalculateColumnWidths: Ha, _fnThrottle: Qa, _fnConvertToWidth: Gb, _fnGetWidestNode: Hb, _fnGetMaxLenString: Ib, _fnStringToCss: v, _fnSortFlatten: W, _fnSort: ob, _fnSortAria: Kb, _fnSortListener: Xa, _fnSortAttachListener: Oa, _fnSortingClasses: ya, _fnSortData: Jb, _fnSaveState: za, _fnLoadState: Lb, _fnSettingsFromNode: Aa,
|
||||
_fnLog: K, _fnMap: F, _fnBindAction: Ya, _fnCallbackReg: z, _fnCallbackFire: s, _fnLengthOverflow: Ua, _fnRenderer: Pa, _fnDataSource: y, _fnRowAttributes: Na, _fnCalculateEnd: function () { }
|
||||
}); h.fn.dataTable = m; m.$ = h; h.fn.dataTableSettings = m.settings; h.fn.dataTableExt = m.ext; h.fn.DataTable = function (a) { return h(this).dataTable(a).api() }; h.each(m, function (a, b) { h.fn.DataTable[a] = b }); return h.fn.dataTable
|
||||
});
|
||||
980
Metronic/assets/global/scripts/metronic.js
Normal file
980
Metronic/assets/global/scripts/metronic.js
Normal file
@@ -0,0 +1,980 @@
|
||||
/**
|
||||
Core script to handle the entire theme and core functions
|
||||
**/
|
||||
var Metronic = function () {
|
||||
|
||||
// IE mode
|
||||
var isRTL = false;
|
||||
var isIE8 = false;
|
||||
var isIE9 = false;
|
||||
var isIE10 = false;
|
||||
|
||||
var resizeHandlers = [];
|
||||
|
||||
var assetsPath = '/Metronic/assets/';
|
||||
|
||||
var globalImgPath = '/Metronic/assets/global/img/';
|
||||
|
||||
var globalPluginsPath = '/Metronic/assets/global/plugins/';
|
||||
|
||||
var globalCssPath = '/Metronic/assets/global/css/';
|
||||
|
||||
// theme layout color set
|
||||
|
||||
var brandColors = {
|
||||
'blue': '#89C4F4',
|
||||
'red': '#F3565D',
|
||||
'green': '#1bbc9b',
|
||||
'purple': '#9b59b6',
|
||||
'grey': '#95a5a6',
|
||||
'yellow': '#F8CB00'
|
||||
};
|
||||
|
||||
// initializes main settings
|
||||
var handleInit = function () {
|
||||
|
||||
if ($('body').css('direction') === 'rtl') {
|
||||
isRTL = true;
|
||||
}
|
||||
|
||||
isIE8 = !!navigator.userAgent.match(/MSIE 8.0/);
|
||||
isIE9 = !!navigator.userAgent.match(/MSIE 9.0/);
|
||||
isIE10 = !!navigator.userAgent.match(/MSIE 10.0/);
|
||||
|
||||
if (isIE10) {
|
||||
$('html').addClass('ie10'); // detect IE10 version
|
||||
}
|
||||
|
||||
if (isIE10 || isIE9 || isIE8) {
|
||||
$('html').addClass('ie'); // detect IE10 version
|
||||
}
|
||||
};
|
||||
|
||||
// runs callback functions set by Metronic.addResponsiveHandler().
|
||||
var _runResizeHandlers = function () {
|
||||
// reinitialize other subscribed elements
|
||||
for (var i = 0; i < resizeHandlers.length; i++) {
|
||||
var each = resizeHandlers[i];
|
||||
each.call();
|
||||
}
|
||||
};
|
||||
|
||||
// handle the layout reinitialization on window resize
|
||||
var handleOnResize = function () {
|
||||
var resize;
|
||||
if (isIE8) {
|
||||
var currheight;
|
||||
$(window).resize(function () {
|
||||
if (currheight == document.documentElement.clientHeight) {
|
||||
return; //quite event since only body resized not window.
|
||||
}
|
||||
if (resize) {
|
||||
clearTimeout(resize);
|
||||
}
|
||||
resize = setTimeout(function () {
|
||||
_runResizeHandlers();
|
||||
}, 50); // wait 50ms until window resize finishes.
|
||||
currheight = document.documentElement.clientHeight; // store last body client height
|
||||
});
|
||||
} else {
|
||||
$(window).resize(function () {
|
||||
if (resize) {
|
||||
clearTimeout(resize);
|
||||
}
|
||||
resize = setTimeout(function () {
|
||||
_runResizeHandlers();
|
||||
}, 50); // wait 50ms until window resize finishes.
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
// Handles portlet tools & actions
|
||||
var handlePortletTools = function () {
|
||||
// handle portlet remove
|
||||
$('body').on('click', '.portlet > .portlet-title > .tools > a.remove', function (e) {
|
||||
e.preventDefault();
|
||||
var portlet = $(this).closest(".portlet");
|
||||
|
||||
if ($('body').hasClass('page-portlet-fullscreen')) {
|
||||
$('body').removeClass('page-portlet-fullscreen');
|
||||
}
|
||||
|
||||
portlet.find('.portlet-title .fullscreen').tooltip('destroy');
|
||||
portlet.find('.portlet-title > .tools > .reload').tooltip('destroy');
|
||||
portlet.find('.portlet-title > .tools > .remove').tooltip('destroy');
|
||||
portlet.find('.portlet-title > .tools > .config').tooltip('destroy');
|
||||
portlet.find('.portlet-title > .tools > .collapse, .portlet > .portlet-title > .tools > .expand').tooltip('destroy');
|
||||
|
||||
portlet.remove();
|
||||
});
|
||||
|
||||
// handle portlet fullscreen
|
||||
$('body').on('click', '.portlet > .portlet-title .fullscreen', function (e) {
|
||||
e.preventDefault();
|
||||
var portlet = $(this).closest(".portlet");
|
||||
if (portlet.hasClass('portlet-fullscreen')) {
|
||||
$(this).removeClass('on');
|
||||
portlet.removeClass('portlet-fullscreen');
|
||||
$('body').removeClass('page-portlet-fullscreen');
|
||||
portlet.children('.portlet-body').css('height', 'auto');
|
||||
} else {
|
||||
var height = Metronic.getViewPort().height -
|
||||
portlet.children('.portlet-title').outerHeight() -
|
||||
parseInt(portlet.children('.portlet-body').css('padding-top')) -
|
||||
parseInt(portlet.children('.portlet-body').css('padding-bottom'));
|
||||
|
||||
$(this).addClass('on');
|
||||
portlet.addClass('portlet-fullscreen');
|
||||
$('body').addClass('page-portlet-fullscreen');
|
||||
portlet.children('.portlet-body').css('height', height);
|
||||
}
|
||||
});
|
||||
|
||||
$('body').on('click', '.portlet > .portlet-title > .tools > a.reload', function (e) {
|
||||
e.preventDefault();
|
||||
var el = $(this).closest(".portlet").children(".portlet-body");
|
||||
var url = $(this).attr("data-url");
|
||||
var error = $(this).attr("data-error-display");
|
||||
if (url) {
|
||||
Metronic.blockUI({
|
||||
target: el,
|
||||
animate: true,
|
||||
overlayColor: 'none'
|
||||
});
|
||||
$.ajax({
|
||||
type: "GET",
|
||||
cache: false,
|
||||
url: url,
|
||||
dataType: "html",
|
||||
success: function (res) {
|
||||
Metronic.unblockUI(el);
|
||||
el.html(res);
|
||||
},
|
||||
error: function (xhr, ajaxOptions, thrownError) {
|
||||
Metronic.unblockUI(el);
|
||||
var msg = 'Error on reloading the content. Please check your connection and try again.';
|
||||
if (error == "toastr" && toastr) {
|
||||
toastr.error(msg);
|
||||
} else if (error == "notific8" && $.notific8) {
|
||||
$.notific8('zindex', 11500);
|
||||
$.notific8(msg, {
|
||||
theme: 'ruby',
|
||||
life: 3000
|
||||
});
|
||||
} else {
|
||||
alert(msg);
|
||||
}
|
||||
}
|
||||
});
|
||||
} else {
|
||||
// for demo purpose
|
||||
Metronic.blockUI({
|
||||
target: el,
|
||||
animate: true,
|
||||
overlayColor: 'none'
|
||||
});
|
||||
window.setTimeout(function () {
|
||||
Metronic.unblockUI(el);
|
||||
}, 1000);
|
||||
}
|
||||
});
|
||||
|
||||
// load ajax data on page init
|
||||
$('.portlet .portlet-title a.reload[data-load="true"]').click();
|
||||
|
||||
$('body').on('click', '.portlet > .portlet-title > .tools > .collapse, .portlet .portlet-title > .tools > .expand', function (e) {
|
||||
e.preventDefault();
|
||||
var el = $(this).closest(".portlet").children(".portlet-body");
|
||||
var elchek = $(this).data('idchekbox');
|
||||
if ($(this).hasClass("collapse")) {
|
||||
$(this).removeClass("collapse").addClass("expand");
|
||||
el.slideUp(200);
|
||||
if ($('#' + elchek)) {
|
||||
$('#' + elchek).prop("checked", false);
|
||||
}
|
||||
} else {
|
||||
$(this).removeClass("expand").addClass("collapse");
|
||||
el.slideDown(200);
|
||||
if ($('#' + elchek)) {
|
||||
$('#' + elchek).prop("checked", true);
|
||||
}
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
// Handles custom checkboxes & radios using jQuery Uniform plugin
|
||||
var handleUniform = function () {
|
||||
if (!$().uniform) {
|
||||
return;
|
||||
}
|
||||
// var test = $("input[type=checkbox]:not(.toggle, .md-check, .md-radiobtn, .make-switch, .icheck, .switchmincheck, .overrydecheckbox,#Chk), input[type=radio]:not(.toggle, .md-check, .md-radiobtn, .star, .make-switch, .icheck)");
|
||||
|
||||
var test = $("input[type=checkbox].yt-uix-checkbox-on-off,input[type=checkbox].make-switchsd,input[type=checkbox].md-checksd,input[type=checkbox].make-switchsd,input[type=checkbox].md-checksd2, input[type=radio]:not(.toggle, .md-check, .md-radiobtn, .star, .make-switch, .icheck)");
|
||||
if (test.size() > 0) {
|
||||
test.each(function () {
|
||||
if ($(this).parents(".checker").size() === 0) {
|
||||
$(this).show();
|
||||
$(this).uniform();
|
||||
}
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
// Handlesmaterial design checkboxes
|
||||
var handleMaterialDesign = function () {
|
||||
|
||||
// Material design ckeckbox and radio effects
|
||||
$('body').on('click', '.md-checkbox > label, .md-radio > label', function () {
|
||||
var the = $(this);
|
||||
// find the first span which is our circle/bubble
|
||||
var el = $(this).children('span:first-child');
|
||||
|
||||
// add the bubble class (we do this so it doesnt show on page load)
|
||||
el.addClass('inc');
|
||||
|
||||
// clone it
|
||||
var newone = el.clone(true);
|
||||
|
||||
// add the cloned version before our original
|
||||
el.before(newone);
|
||||
|
||||
// remove the original so that it is ready to run on next click
|
||||
$("." + el.attr("class") + ":last", the).remove();
|
||||
});
|
||||
|
||||
if ($('body').hasClass('page-md')) {
|
||||
// Material design click effect
|
||||
// credit where credit's due; http://thecodeplayer.com/walkthrough/ripple-click-effect-google-material-design
|
||||
$('body').on('click', 'a.btn, button.btn, input.btn, label.btn', function (e) {
|
||||
var element, circle, d, x, y;
|
||||
|
||||
element = $(this);
|
||||
|
||||
if (element.find(".md-click-circle").length == 0) {
|
||||
element.prepend("<span class='md-click-circle'></span>");
|
||||
}
|
||||
|
||||
circle = element.find(".md-click-circle");
|
||||
circle.removeClass("md-click-animate");
|
||||
|
||||
if (!circle.height() && !circle.width()) {
|
||||
d = Math.max(element.outerWidth(), element.outerHeight());
|
||||
circle.css({ height: d, width: d });
|
||||
}
|
||||
|
||||
x = e.pageX - element.offset().left - circle.width() / 2;
|
||||
y = e.pageY - element.offset().top - circle.height() / 2;
|
||||
|
||||
circle.css({ top: y + 'px', left: x + 'px' }).addClass("md-click-animate");
|
||||
});
|
||||
}
|
||||
|
||||
// Floating labels
|
||||
var handleInput = function (el) {
|
||||
if (el.val() != "") {
|
||||
el.addClass('edited');
|
||||
} else {
|
||||
el.removeClass('edited');
|
||||
}
|
||||
}
|
||||
|
||||
$('body').on('keydown', '.form-md-floating-label > .form-control', function (e) {
|
||||
handleInput($(this));
|
||||
});
|
||||
$('body').on('blur', '.form-md-floating-label > .form-control', function (e) {
|
||||
handleInput($(this));
|
||||
});
|
||||
}
|
||||
|
||||
// Handles custom checkboxes & radios using jQuery iCheck plugin
|
||||
var handleiCheck = function () {
|
||||
if (!$().iCheck) {
|
||||
return;
|
||||
}
|
||||
|
||||
$('.icheck').each(function () {
|
||||
var checkboxClass = $(this).attr('data-checkbox') ? $(this).attr('data-checkbox') : 'icheckbox_minimal-grey';
|
||||
var radioClass = $(this).attr('data-radio') ? $(this).attr('data-radio') : 'iradio_minimal-grey';
|
||||
|
||||
if (checkboxClass.indexOf('_line') > -1 || radioClass.indexOf('_line') > -1) {
|
||||
$(this).iCheck({
|
||||
checkboxClass: checkboxClass,
|
||||
radioClass: radioClass,
|
||||
insert: '<div class="icheck_line-icon"></div>' + $(this).attr("data-label")
|
||||
});
|
||||
} else {
|
||||
$(this).iCheck({
|
||||
checkboxClass: checkboxClass,
|
||||
radioClass: radioClass
|
||||
});
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
// Handles Bootstrap switches
|
||||
var handleBootstrapSwitch = function () {
|
||||
if (!$().bootstrapSwitch) {
|
||||
return;
|
||||
}
|
||||
$('.make-switch').bootstrapSwitch();
|
||||
};
|
||||
|
||||
// Handles Bootstrap confirmations
|
||||
var handleBootstrapConfirmation = function () {
|
||||
if (!$().confirmation) {
|
||||
return;
|
||||
}
|
||||
$('[data-toggle=confirmation]').confirmation({ container: 'body', btnOkClass: 'btn-xs btn-success', btnCancelClass: 'btn-xs btn-danger' });
|
||||
}
|
||||
|
||||
// Handles Bootstrap Accordions.
|
||||
var handleAccordions = function () {
|
||||
$('body').on('shown.bs.collapse', '.accordion.scrollable', function (e) {
|
||||
Metronic.scrollTo($(e.target));
|
||||
});
|
||||
};
|
||||
|
||||
// Handles Bootstrap Tabs.
|
||||
var handleTabs = function () {
|
||||
//activate tab if tab id provided in the URL
|
||||
if (location.hash) {
|
||||
var tabid = location.hash.substr(1);
|
||||
$('a[href="#' + tabid + '"]').parents('.tab-pane:hidden').each(function () {
|
||||
var tabid = $(this).attr("id");
|
||||
$('a[href="#' + tabid + '"]').click();
|
||||
});
|
||||
$('a[href="#' + tabid + '"]').click();
|
||||
}
|
||||
|
||||
if ($().tabdrop) {
|
||||
$('.tabbable-tabdrop .nav-pills, .tabbable-tabdrop .nav-tabs').tabdrop({
|
||||
text: '<i class="fa fa-ellipsis-v"></i> <i class="fa fa-angle-down"></i>'
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
// Handles Bootstrap Modals.
|
||||
var handleModals = function () {
|
||||
// fix stackable modal issue: when 2 or more modals opened, closing one of modal will remove .modal-open class.
|
||||
$('body').on('hide.bs.modal', function () {
|
||||
if ($('.modal:visible').size() > 1 && $('html').hasClass('modal-open') === false) {
|
||||
$('html').addClass('modal-open');
|
||||
} else if ($('.modal:visible').size() <= 1) {
|
||||
$('html').removeClass('modal-open');
|
||||
}
|
||||
});
|
||||
|
||||
// fix page scrollbars issue
|
||||
$('body').on('show.bs.modal', '.modal', function () {
|
||||
if ($(this).hasClass("modal-scroll")) {
|
||||
$('body').addClass("modal-open-noscroll");
|
||||
}
|
||||
});
|
||||
|
||||
// fix page scrollbars issue
|
||||
$('body').on('hide.bs.modal', '.modal', function () {
|
||||
$('body').removeClass("modal-open-noscroll");
|
||||
});
|
||||
|
||||
// remove ajax content and remove cache on modal closed
|
||||
$('body').on('hidden.bs.modal', '.modal:not(.modal-cached)', function () {
|
||||
$(this).removeData('bs.modal');
|
||||
});
|
||||
};
|
||||
|
||||
// Handles Bootstrap Tooltips.
|
||||
var handleTooltips = function () {
|
||||
// global tooltips
|
||||
$('.tooltips').tooltip();
|
||||
|
||||
// portlet tooltips
|
||||
$('.portlet > .portlet-title .fullscreen').tooltip({
|
||||
container: 'body',
|
||||
title: 'Fullscreen'
|
||||
});
|
||||
$('.portlet > .portlet-title > .tools > .reload').tooltip({
|
||||
container: 'body',
|
||||
title: 'Reload'
|
||||
});
|
||||
$('.portlet > .portlet-title > .tools > .remove').tooltip({
|
||||
container: 'body',
|
||||
title: 'Remove'
|
||||
});
|
||||
$('.portlet > .portlet-title > .tools > .config').tooltip({
|
||||
container: 'body',
|
||||
title: 'Settings'
|
||||
});
|
||||
$('.portlet > .portlet-title > .tools > .collapse, .portlet > .portlet-title > .tools > .expand').tooltip({
|
||||
container: 'body',
|
||||
title: 'Ocultar/Mostrar'
|
||||
});
|
||||
};
|
||||
|
||||
// Handles Bootstrap Dropdowns
|
||||
var handleDropdowns = function () {
|
||||
/*
|
||||
Hold dropdown on click
|
||||
*/
|
||||
$('body').on('click', '.dropdown-menu.hold-on-click', function (e) {
|
||||
e.stopPropagation();
|
||||
});
|
||||
};
|
||||
|
||||
var handleAlerts = function () {
|
||||
$('body').on('click', '[data-close="alert"]', function (e) {
|
||||
$(this).parent('.alert').hide();
|
||||
$(this).closest('.note').hide();
|
||||
e.preventDefault();
|
||||
});
|
||||
|
||||
$('body').on('click', '[data-close="note"]', function (e) {
|
||||
$(this).closest('.note').hide();
|
||||
e.preventDefault();
|
||||
});
|
||||
|
||||
$('body').on('click', '[data-remove="note"]', function (e) {
|
||||
$(this).closest('.note').remove();
|
||||
e.preventDefault();
|
||||
});
|
||||
};
|
||||
|
||||
// Handle Hower Dropdowns
|
||||
var handleDropdownHover = function () {
|
||||
$('[data-hover="dropdown"]').not('.hover-initialized').each(function () {
|
||||
$(this).dropdownHover();
|
||||
$(this).addClass('hover-initialized');
|
||||
});
|
||||
};
|
||||
|
||||
// Handles Bootstrap Popovers
|
||||
|
||||
// last popep popover
|
||||
var lastPopedPopover;
|
||||
|
||||
var handlePopovers = function () {
|
||||
$('.popovers').popover();
|
||||
|
||||
// close last displayed popover
|
||||
|
||||
$(document).on('click.bs.popover.data-api', function (e) {
|
||||
if (lastPopedPopover) {
|
||||
lastPopedPopover.popover('hide');
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
// Handles scrollable contents using jQuery SlimScroll plugin.
|
||||
var handleScrollers = function () {
|
||||
Metronic.initSlimScroll('.scroller');
|
||||
};
|
||||
|
||||
// Handles Image Preview using jQuery Fancybox plugin
|
||||
var handleFancybox = function () {
|
||||
if (!jQuery.fancybox) {
|
||||
return;
|
||||
}
|
||||
|
||||
if ($(".fancybox-button").size() > 0) {
|
||||
$(".fancybox-button").fancybox({
|
||||
groupAttr: 'data-rel',
|
||||
prevEffect: 'none',
|
||||
nextEffect: 'none',
|
||||
closeBtn: true,
|
||||
helpers: {
|
||||
title: {
|
||||
type: 'inside'
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
// Fix input placeholder issue for IE8 and IE9
|
||||
var handleFixInputPlaceholderForIE = function () {
|
||||
//fix html5 placeholder attribute for ie7 & ie8
|
||||
if (isIE8 || isIE9) { // ie8 & ie9
|
||||
// this is html5 placeholder fix for inputs, inputs with placeholder-no-fix class will be skipped(e.g: we need this for password fields)
|
||||
$('input[placeholder]:not(.placeholder-no-fix), textarea[placeholder]:not(.placeholder-no-fix)').each(function () {
|
||||
var input = $(this);
|
||||
|
||||
if (input.val() === '' && input.attr("placeholder") !== '') {
|
||||
input.addClass("placeholder").val(input.attr('placeholder'));
|
||||
}
|
||||
|
||||
input.focus(function () {
|
||||
if (input.val() == input.attr('placeholder')) {
|
||||
input.val('');
|
||||
}
|
||||
});
|
||||
|
||||
input.blur(function () {
|
||||
if (input.val() === '' || input.val() == input.attr('placeholder')) {
|
||||
input.val(input.attr('placeholder'));
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
// Handle Select2 Dropdowns
|
||||
var handleSelect2 = function () {
|
||||
if ($().select2) {
|
||||
|
||||
$('select.select2me').each(function () {
|
||||
var meplaceholder = 'Seleccione'
|
||||
if ($(this).attr('data-text')) {
|
||||
meplaceholder = $(this).attr('data-text');
|
||||
}
|
||||
$(this).select2({
|
||||
placeholder: meplaceholder,
|
||||
allowClear: true
|
||||
});
|
||||
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
//* END:CORE HANDLERS *//
|
||||
|
||||
return {
|
||||
|
||||
//main function to initiate the theme
|
||||
init: function () {
|
||||
//IMPORTANT!!!: Do not modify the core handlers call order.
|
||||
|
||||
//Core handlers
|
||||
handleInit(); // initialize core variables
|
||||
handleOnResize(); // set and handle responsive
|
||||
|
||||
//UI Component handlers
|
||||
handleMaterialDesign(); // handle material design
|
||||
handleUniform(); // hanfle custom radio & checkboxes
|
||||
handleiCheck(); // handles custom icheck radio and checkboxes
|
||||
handleBootstrapSwitch(); // handle bootstrap switch plugin
|
||||
handleScrollers(); // handles slim scrolling contents
|
||||
handleFancybox(); // handle fancy box
|
||||
handleSelect2(); // handle custom Select2 dropdowns
|
||||
handlePortletTools(); // handles portlet action bar functionality(refresh, configure, toggle, remove)
|
||||
handleAlerts(); //handle closabled alerts
|
||||
handleDropdowns(); // handle dropdowns
|
||||
handleTabs(); // handle tabs
|
||||
handleTooltips(); // handle bootstrap tooltips
|
||||
handlePopovers(); // handles bootstrap popovers
|
||||
handleAccordions(); //handles accordions
|
||||
handleModals(); // handle modals
|
||||
handleBootstrapConfirmation(); // handle bootstrap confirmations
|
||||
|
||||
// Hacks
|
||||
handleFixInputPlaceholderForIE(); //IE8 & IE9 input placeholder issue fix
|
||||
},
|
||||
|
||||
//main function to initiate core javascript after ajax complete
|
||||
initAjax: function () {
|
||||
handleUniform(); // handles custom radio & checkboxes
|
||||
handleiCheck(); // handles custom icheck radio and checkboxes
|
||||
handleBootstrapSwitch(); // handle bootstrap switch plugin
|
||||
handleDropdownHover(); // handles dropdown hover
|
||||
handleScrollers(); // handles slim scrolling contents
|
||||
handleSelect2(); // handle custom Select2 dropdowns
|
||||
handleFancybox(); // handle fancy box
|
||||
handleDropdowns(); // handle dropdowns
|
||||
handleTooltips(); // handle bootstrap tooltips
|
||||
handlePopovers(); // handles bootstrap popovers
|
||||
handleAccordions(); //handles accordions
|
||||
handleBootstrapConfirmation(); // handle bootstrap confirmations
|
||||
},
|
||||
|
||||
//init main components
|
||||
initComponents: function () {
|
||||
this.initAjax();
|
||||
},
|
||||
|
||||
//public function to remember last opened popover that needs to be closed on click
|
||||
setLastPopedPopover: function (el) {
|
||||
lastPopedPopover = el;
|
||||
},
|
||||
|
||||
//public function to add callback a function which will be called on window resize
|
||||
addResizeHandler: function (func) {
|
||||
resizeHandlers.push(func);
|
||||
},
|
||||
|
||||
//public functon to call _runresizeHandlers
|
||||
runResizeHandlers: function () {
|
||||
_runResizeHandlers();
|
||||
},
|
||||
|
||||
// wrMetronicer function to scroll(focus) to an element
|
||||
scrollTo: function (el, offeset) {
|
||||
var pos = (el && el.size() > 0) ? el.offset().top : 0;
|
||||
|
||||
if (el) {
|
||||
if ($('body').hasClass('page-header-fixed')) {
|
||||
pos = pos - $('.page-header').height();
|
||||
}
|
||||
pos = pos + (offeset ? offeset : -1 * el.height());
|
||||
}
|
||||
|
||||
$('html,body').animate({
|
||||
scrollTop: pos
|
||||
}, 'slow');
|
||||
},
|
||||
|
||||
initSlimScroll: function (el) {
|
||||
$(el).each(function () {
|
||||
if ($(this).attr("data-initialized")) {
|
||||
return; // exit
|
||||
}
|
||||
|
||||
var height;
|
||||
|
||||
if ($(this).attr("data-height")) {
|
||||
height = $(this).attr("data-height");
|
||||
} else {
|
||||
height = $(this).css('height');
|
||||
}
|
||||
|
||||
$(this).slimScroll({
|
||||
allowPageScroll: true, // allow page scroll when the element scroll is ended
|
||||
size: '7px',
|
||||
color: ($(this).attr("data-handle-color") ? $(this).attr("data-handle-color") : '#bbb'),
|
||||
wrapperClass: ($(this).attr("data-wrapper-class") ? $(this).attr("data-wrapper-class") : 'slimScrollDiv'),
|
||||
railColor: ($(this).attr("data-rail-color") ? $(this).attr("data-rail-color") : '#eaeaea'),
|
||||
position: isRTL ? 'left' : 'right',
|
||||
height: height,
|
||||
alwaysVisible: ($(this).attr("data-always-visible") == "1" ? true : false),
|
||||
railVisible: ($(this).attr("data-rail-visible") == "1" ? true : false),
|
||||
disableFadeOut: true
|
||||
});
|
||||
|
||||
$(this).attr("data-initialized", "1");
|
||||
});
|
||||
},
|
||||
|
||||
destroySlimScroll: function (el) {
|
||||
$(el).each(function () {
|
||||
if ($(this).attr("data-initialized") === "1") { // destroy existing instance before updating the height
|
||||
$(this).removeAttr("data-initialized");
|
||||
$(this).removeAttr("style");
|
||||
|
||||
var attrList = {};
|
||||
|
||||
// store the custom attribures so later we will reassign.
|
||||
if ($(this).attr("data-handle-color")) {
|
||||
attrList["data-handle-color"] = $(this).attr("data-handle-color");
|
||||
}
|
||||
if ($(this).attr("data-wrapper-class")) {
|
||||
attrList["data-wrapper-class"] = $(this).attr("data-wrapper-class");
|
||||
}
|
||||
if ($(this).attr("data-rail-color")) {
|
||||
attrList["data-rail-color"] = $(this).attr("data-rail-color");
|
||||
}
|
||||
if ($(this).attr("data-always-visible")) {
|
||||
attrList["data-always-visible"] = $(this).attr("data-always-visible");
|
||||
}
|
||||
if ($(this).attr("data-rail-visible")) {
|
||||
attrList["data-rail-visible"] = $(this).attr("data-rail-visible");
|
||||
}
|
||||
|
||||
$(this).slimScroll({
|
||||
wrapperClass: ($(this).attr("data-wrapper-class") ? $(this).attr("data-wrapper-class") : 'slimScrollDiv'),
|
||||
destroy: true
|
||||
});
|
||||
|
||||
var the = $(this);
|
||||
|
||||
// reassign custom attributes
|
||||
$.each(attrList, function (key, value) {
|
||||
the.attr(key, value);
|
||||
});
|
||||
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
// function to scroll to the top
|
||||
scrollTop: function () {
|
||||
Metronic.scrollTo();
|
||||
},
|
||||
|
||||
// wrMetronicer function to block element(indicate loading)
|
||||
blockUI: function (options) {
|
||||
options = $.extend(true, {}, options);
|
||||
var html = '';
|
||||
if (options.animate) {
|
||||
html = '<div class="loading-message ' + (options.boxed ? 'loading-message-boxed' : '') + '">' + '<div class="block-spinner-bar"><div class="bounce1"></div><div class="bounce2"></div><div class="bounce3"></div></div>' + '</div>';
|
||||
} else if (options.iconOnly) {
|
||||
html = '<div class="loading-message ' + (options.boxed ? 'loading-message-boxed' : '') + '"><img src="' + this.getGlobalImgPath() + 'loading-spinner-grey.gif" align=""></div>';
|
||||
} else if (options.textOnly) {
|
||||
html = '<div class="loading-message ' + (options.boxed ? 'loading-message-boxed' : '') + '"><span> ' + (options.message ? options.message : 'LOADING...') + '</span></div>';
|
||||
} else {
|
||||
html = '<div class="loading-message ' + (options.boxed ? 'loading-message-boxed' : '') + '"><img src="' + this.getGlobalImgPath() + 'loading-spinner-grey.gif" align=""><span> ' + (options.message ? options.message : 'LOADING...') + '</span></div>';
|
||||
}
|
||||
|
||||
if (options.target) { // element blocking
|
||||
var el = $(options.target);
|
||||
if (el.height() <= ($(window).height())) {
|
||||
options.cenrerY = true;
|
||||
}
|
||||
el.block({
|
||||
message: html,
|
||||
baseZ: options.zIndex ? options.zIndex : 1000,
|
||||
centerY: options.cenrerY !== undefined ? options.cenrerY : false,
|
||||
css: {
|
||||
top: '10%',
|
||||
border: '0',
|
||||
padding: '0',
|
||||
backgroundColor: 'none'
|
||||
},
|
||||
overlayCSS: {
|
||||
backgroundColor: options.overlayColor ? options.overlayColor : '#555',
|
||||
opacity: options.boxed ? 0.05 : 0.1,
|
||||
cursor: 'wait'
|
||||
}
|
||||
});
|
||||
} else { // page blocking
|
||||
$.blockUI({
|
||||
message: html,
|
||||
baseZ: options.zIndex ? options.zIndex : 1000,
|
||||
css: {
|
||||
border: '0',
|
||||
padding: '0',
|
||||
backgroundColor: 'none'
|
||||
},
|
||||
overlayCSS: {
|
||||
backgroundColor: options.overlayColor ? options.overlayColor : '#555',
|
||||
opacity: options.boxed ? 0.05 : 0.1,
|
||||
cursor: 'wait'
|
||||
}
|
||||
});
|
||||
}
|
||||
},
|
||||
|
||||
// wrMetronicer function to un-block element(finish loading)
|
||||
unblockUI: function (target) {
|
||||
if (target) {
|
||||
$(target).unblock({
|
||||
onUnblock: function () {
|
||||
$(target).css('position', '');
|
||||
$(target).css('zoom', '');
|
||||
}
|
||||
});
|
||||
} else {
|
||||
$.unblockUI();
|
||||
}
|
||||
},
|
||||
|
||||
startPageLoading: function (options) {
|
||||
if (options && options.animate) {
|
||||
$('.page-spinner-bar').remove();
|
||||
$('body').append('<div class="page-spinner-bar"><div class="bounce1"></div><div class="bounce2"></div><div class="bounce3"></div></div>');
|
||||
} else {
|
||||
$('.page-loading').remove();
|
||||
$('body').append('<div class="page-loading"><img src="' + this.getGlobalImgPath() + 'loading-spinner-grey.gif"/> <span>' + (options && options.message ? options.message : 'Loading...') + '</span></div>');
|
||||
}
|
||||
},
|
||||
|
||||
stopPageLoading: function () {
|
||||
$('.page-loading, .page-spinner-bar').remove();
|
||||
},
|
||||
|
||||
alert: function (options) {
|
||||
|
||||
options = $.extend(true, {
|
||||
container: "", // alerts parent container(by default placed after the page breadcrumbs)
|
||||
place: "append", // "append" or "prepend" in container
|
||||
type: 'success', // alert's type
|
||||
message: "", // alert's message
|
||||
close: true, // make alert closable
|
||||
reset: true, // close all previouse alerts first
|
||||
focus: true, // auto scroll to the alert after shown
|
||||
closeInSeconds: 0, // auto close after defined seconds
|
||||
icon: "" // put icon before the message
|
||||
}, options);
|
||||
|
||||
var id = Metronic.getUniqueID("Metronic_alert");
|
||||
|
||||
var html = '<div id="' + id + '" class="Metronic-alerts alert alert-' + options.type + ' fade in">' + (options.close ? '<button type="button" class="close" data-dismiss="alert" aria-hidden="true"></button>' : '') + (options.icon !== "" ? '<i class="fa-lg fa fa-' + options.icon + '"></i> ' : '') + options.message + '</div>';
|
||||
|
||||
if (options.reset) {
|
||||
$('.Metronic-alerts').remove();
|
||||
}
|
||||
|
||||
if (!options.container) {
|
||||
if ($('body').hasClass("page-container-bg-solid")) {
|
||||
$('.page-title').after(html);
|
||||
} else {
|
||||
if ($('.page-bar').size() > 0) {
|
||||
$('.page-bar').after(html);
|
||||
} else {
|
||||
$('.page-breadcrumb').after(html);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (options.place == "append") {
|
||||
$(options.container).append(html);
|
||||
} else {
|
||||
$(options.container).prepend(html);
|
||||
}
|
||||
}
|
||||
|
||||
if (options.focus) {
|
||||
Metronic.scrollTo($('#' + id));
|
||||
}
|
||||
|
||||
if (options.closeInSeconds > 0) {
|
||||
setTimeout(function () {
|
||||
$('#' + id).remove();
|
||||
}, options.closeInSeconds * 1000);
|
||||
}
|
||||
|
||||
return id;
|
||||
},
|
||||
|
||||
// initializes uniform elements
|
||||
initUniform: function (els) {
|
||||
if (els) {
|
||||
$(els).each(function () {
|
||||
if ($(this).parents(".checker").size() === 0) {
|
||||
$(this).show();
|
||||
$(this).uniform();
|
||||
}
|
||||
});
|
||||
} else {
|
||||
handleUniform();
|
||||
}
|
||||
},
|
||||
|
||||
//wrMetronicer function to update/sync jquery uniform checkbox & radios
|
||||
updateUniform: function (els) {
|
||||
$.uniform.update(els); // update the uniform checkbox & radios UI after the actual input control state changed
|
||||
},
|
||||
|
||||
//public function to initialize the fancybox plugin
|
||||
initFancybox: function () {
|
||||
handleFancybox();
|
||||
},
|
||||
|
||||
//public helper function to get actual input value(used in IE9 and IE8 due to placeholder attribute not supported)
|
||||
getActualVal: function (el) {
|
||||
el = $(el);
|
||||
if (el.val() === el.attr("placeholder")) {
|
||||
return "";
|
||||
}
|
||||
return el.val();
|
||||
},
|
||||
|
||||
//public function to get a paremeter by name from URL
|
||||
getURLParameter: function (paramName) {
|
||||
var searchString = window.location.search.substring(1),
|
||||
i, val, params = searchString.split("&");
|
||||
|
||||
for (i = 0; i < params.length; i++) {
|
||||
val = params[i].split("=");
|
||||
if (val[0] == paramName) {
|
||||
return unescape(val[1]);
|
||||
}
|
||||
}
|
||||
return null;
|
||||
},
|
||||
|
||||
// check for device touch support
|
||||
isTouchDevice: function () {
|
||||
try {
|
||||
document.createEvent("TouchEvent");
|
||||
return true;
|
||||
} catch (e) {
|
||||
return false;
|
||||
}
|
||||
},
|
||||
|
||||
// To get the correct viewport width based on http://andylangton.co.uk/articles/javascript/get-viewport-size-javascript/
|
||||
getViewPort: function () {
|
||||
var e = window,
|
||||
a = 'inner';
|
||||
if (!('innerWidth' in window)) {
|
||||
a = 'client';
|
||||
e = document.documentElement || document.body;
|
||||
}
|
||||
|
||||
return {
|
||||
width: e[a + 'Width'],
|
||||
height: e[a + 'Height']
|
||||
};
|
||||
},
|
||||
|
||||
getUniqueID: function (prefix) {
|
||||
return 'prefix_' + Math.floor(Math.random() * (new Date()).getTime());
|
||||
},
|
||||
|
||||
// check IE8 mode
|
||||
isIE8: function () {
|
||||
return isIE8;
|
||||
},
|
||||
|
||||
// check IE9 mode
|
||||
isIE9: function () {
|
||||
return isIE9;
|
||||
},
|
||||
|
||||
//check RTL mode
|
||||
isRTL: function () {
|
||||
return isRTL;
|
||||
},
|
||||
|
||||
// check IE8 mode
|
||||
isAngularJsApp: function () {
|
||||
return (typeof angular == 'undefined') ? false : true;
|
||||
},
|
||||
|
||||
getAssetsPath: function () {
|
||||
return assetsPath;
|
||||
},
|
||||
|
||||
setAssetsPath: function (path) {
|
||||
assetsPath = path;
|
||||
},
|
||||
|
||||
setGlobalImgPath: function (path) {
|
||||
globalImgPath = path;
|
||||
},
|
||||
|
||||
getGlobalImgPath: function () {
|
||||
return assetsPath + globalImgPath;
|
||||
},
|
||||
|
||||
setGlobalPluginsPath: function (path) {
|
||||
globalPluginsPath = path;
|
||||
},
|
||||
|
||||
getGlobalPluginsPath: function () {
|
||||
return assetsPath + globalPluginsPath;
|
||||
},
|
||||
|
||||
getGlobalCssPath: function () {
|
||||
return assetsPath + globalCssPath;
|
||||
},
|
||||
|
||||
// get layout color code by color name
|
||||
getBrandColor: function (name) {
|
||||
if (brandColors[name]) {
|
||||
return brandColors[name];
|
||||
} else {
|
||||
return '';
|
||||
}
|
||||
},
|
||||
|
||||
getResponsiveBreakpoint: function (size) {
|
||||
// bootstrap responsive breakpoints
|
||||
var sizes = {
|
||||
'xs': 480, // extra small
|
||||
'sm': 768, // small
|
||||
'md': 992, // medium
|
||||
'lg': 1200 // large
|
||||
};
|
||||
|
||||
return sizes[size] ? sizes[size] : 0;
|
||||
}
|
||||
};
|
||||
|
||||
}();
|
||||
Reference in New Issue
Block a user