mirror of
https://github.com/Combodo/iTop.git
synced 2026-04-21 01:28:47 +02:00
NPM libs: Update embedded package to avoid their dependencies to be retrieved as they are already their
This commit is contained in:
201
node_modules/datatables.net-select/js/dataTables.select.js
generated
vendored
201
node_modules/datatables.net-select/js/dataTables.select.js
generated
vendored
@@ -1,16 +1,16 @@
|
||||
/*! Select for DataTables 1.2.0
|
||||
* 2015-2016 SpryMedia Ltd - datatables.net/license/mit
|
||||
/*! Select for DataTables 1.3.3
|
||||
* 2015-2021 SpryMedia Ltd - datatables.net/license/mit
|
||||
*/
|
||||
|
||||
/**
|
||||
* @summary Select for DataTables
|
||||
* @description A collection of API methods, events and buttons for DataTables
|
||||
* that provides selection options of the items in a DataTable
|
||||
* @version 1.2.0
|
||||
* @version 1.3.3
|
||||
* @file dataTables.select.js
|
||||
* @author SpryMedia Ltd (www.sprymedia.co.uk)
|
||||
* @contact datatables.net/forums
|
||||
* @copyright Copyright 2015-2016 SpryMedia Ltd.
|
||||
* @copyright Copyright 2015-2021 SpryMedia Ltd.
|
||||
*
|
||||
* This source file is free software, available under the following license:
|
||||
* MIT license - http://datatables.net/license/mit
|
||||
@@ -54,7 +54,7 @@ var DataTable = $.fn.dataTable;
|
||||
// Version information for debugger
|
||||
DataTable.select = {};
|
||||
|
||||
DataTable.select.version = '1.2.0';
|
||||
DataTable.select.version = '1.3.3';
|
||||
|
||||
DataTable.select.init = function ( dt ) {
|
||||
var ctx = dt.settings()[0];
|
||||
@@ -68,23 +68,31 @@ DataTable.select.init = function ( dt ) {
|
||||
var items = 'row';
|
||||
var style = 'api';
|
||||
var blurable = false;
|
||||
var toggleable = true;
|
||||
var info = true;
|
||||
var selector = 'td, th';
|
||||
var className = 'selected';
|
||||
var setStyle = false;
|
||||
|
||||
ctx._select = {};
|
||||
|
||||
// Initialisation customisations
|
||||
if ( opts === true ) {
|
||||
style = 'os';
|
||||
setStyle = true;
|
||||
}
|
||||
else if ( typeof opts === 'string' ) {
|
||||
style = opts;
|
||||
setStyle = true;
|
||||
}
|
||||
else if ( $.isPlainObject( opts ) ) {
|
||||
if ( opts.blurable !== undefined ) {
|
||||
blurable = opts.blurable;
|
||||
}
|
||||
|
||||
if ( opts.toggleable !== undefined ) {
|
||||
toggleable = opts.toggleable;
|
||||
}
|
||||
|
||||
if ( opts.info !== undefined ) {
|
||||
info = opts.info;
|
||||
@@ -96,6 +104,11 @@ DataTable.select.init = function ( dt ) {
|
||||
|
||||
if ( opts.style !== undefined ) {
|
||||
style = opts.style;
|
||||
setStyle = true;
|
||||
}
|
||||
else {
|
||||
style = 'os';
|
||||
setStyle = true;
|
||||
}
|
||||
|
||||
if ( opts.selector !== undefined ) {
|
||||
@@ -111,6 +124,7 @@ DataTable.select.init = function ( dt ) {
|
||||
dt.select.items( items );
|
||||
dt.select.style( style );
|
||||
dt.select.blurable( blurable );
|
||||
dt.select.toggleable( toggleable );
|
||||
dt.select.info( info );
|
||||
ctx._select.className = className;
|
||||
|
||||
@@ -129,7 +143,7 @@ DataTable.select.init = function ( dt ) {
|
||||
|
||||
// If the init options haven't enabled select, but there is a selectable
|
||||
// class name, then enable
|
||||
if ( $( dt.table().node() ).hasClass( 'selectable' ) ) {
|
||||
if ( ! setStyle && $( dt.table().node() ).hasClass( 'selectable' ) ) {
|
||||
dt.select.style( 'os' );
|
||||
}
|
||||
};
|
||||
@@ -172,15 +186,17 @@ The `_select` object contains the following properties:
|
||||
|
||||
```
|
||||
{
|
||||
items:string - Can be `rows`, `columns` or `cells`. Defines what item
|
||||
will be selected if the user is allowed to activate row
|
||||
selection using the mouse.
|
||||
style:string - Can be `none`, `single`, `multi` or `os`. Defines the
|
||||
interaction style when selecting items
|
||||
blurable:boolean - If row selection can be cleared by clicking outside of
|
||||
the table
|
||||
info:boolean - If the selection summary should be shown in the table
|
||||
information elements
|
||||
items:string - Can be `rows`, `columns` or `cells`. Defines what item
|
||||
will be selected if the user is allowed to activate row
|
||||
selection using the mouse.
|
||||
style:string - Can be `none`, `single`, `multi` or `os`. Defines the
|
||||
interaction style when selecting items
|
||||
blurable:boolean - If row selection can be cleared by clicking outside of
|
||||
the table
|
||||
toggleable:boolean - If row selection can be cancelled by repeated clicking
|
||||
on the row
|
||||
info:boolean - If the selection summary should be shown in the table
|
||||
information elements
|
||||
}
|
||||
```
|
||||
|
||||
@@ -301,12 +317,12 @@ function disableMouseSelection( dt )
|
||||
var ctx = dt.settings()[0];
|
||||
var selector = ctx._select.selector;
|
||||
|
||||
$( dt.table().body() )
|
||||
$( dt.table().container() )
|
||||
.off( 'mousedown.dtSelect', selector )
|
||||
.off( 'mouseup.dtSelect', selector )
|
||||
.off( 'click.dtSelect', selector );
|
||||
|
||||
$('body').off( 'click.dtSelect' );
|
||||
$('body').off( 'click.dtSelect' + _safeId(dt.table().node()) );
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -317,26 +333,31 @@ function disableMouseSelection( dt )
|
||||
*/
|
||||
function enableMouseSelection ( dt )
|
||||
{
|
||||
var body = $( dt.table().body() );
|
||||
var container = $( dt.table().container() );
|
||||
var ctx = dt.settings()[0];
|
||||
var selector = ctx._select.selector;
|
||||
var matchSelection;
|
||||
|
||||
body
|
||||
container
|
||||
.on( 'mousedown.dtSelect', selector, function(e) {
|
||||
// Disallow text selection for shift clicking on the table so multi
|
||||
// element selection doesn't look terrible!
|
||||
if ( e.shiftKey || e.metaKey || e.ctrlKey ) {
|
||||
body
|
||||
container
|
||||
.css( '-moz-user-select', 'none' )
|
||||
.one('selectstart.dtSelect', selector, function () {
|
||||
return false;
|
||||
} );
|
||||
}
|
||||
|
||||
if ( window.getSelection ) {
|
||||
matchSelection = window.getSelection();
|
||||
}
|
||||
} )
|
||||
.on( 'mouseup.dtSelect', selector, function() {
|
||||
// Allow text selection to occur again, Mozilla style (tested in FF
|
||||
// 35.0.1 - still required)
|
||||
body.css( '-moz-user-select', '' );
|
||||
container.css( '-moz-user-select', '' );
|
||||
} )
|
||||
.on( 'click.dtSelect', selector, function ( e ) {
|
||||
var items = dt.select.items();
|
||||
@@ -344,14 +365,23 @@ function enableMouseSelection ( dt )
|
||||
|
||||
// If text was selected (click and drag), then we shouldn't change
|
||||
// the row's selected state
|
||||
if ( window.getSelection && window.getSelection().toString() ) {
|
||||
return;
|
||||
if ( matchSelection ) {
|
||||
var selection = window.getSelection();
|
||||
|
||||
// If the element that contains the selection is not in the table, we can ignore it
|
||||
// This can happen if the developer selects text from the click event
|
||||
if ( ! selection.anchorNode || $(selection.anchorNode).closest('table')[0] === dt.table().node() ) {
|
||||
if ( selection !== matchSelection ) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var ctx = dt.settings()[0];
|
||||
var wrapperClass = dt.settings()[0].oClasses.sWrapper.trim().replace(/ +/g, '.');
|
||||
|
||||
// Ignore clicks inside a sub-table
|
||||
if ( $(e.target).closest('div.dataTables_wrapper')[0] != dt.table().container() ) {
|
||||
if ( $(e.target).closest('div.'+wrapperClass)[0] != dt.table().container() ) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -388,13 +418,19 @@ function enableMouseSelection ( dt )
|
||||
} );
|
||||
|
||||
// Blurable
|
||||
$('body').on( 'click.dtSelect', function ( e ) {
|
||||
$('body').on( 'click.dtSelect' + _safeId(dt.table().node()), function ( e ) {
|
||||
if ( ctx._select.blurable ) {
|
||||
// If the click was inside the DataTables container, don't blur
|
||||
if ( $(e.target).parents().filter( dt.table().container() ).length ) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Ignore elements which have been removed from the DOM (i.e. paging
|
||||
// buttons)
|
||||
if ( $(e.target).parents('html').length === 0 ) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Don't blur in Editor form
|
||||
if ( $(e.target).parents('div.DTE').length ) {
|
||||
return;
|
||||
@@ -427,7 +463,7 @@ function eventTrigger ( api, type, args, any )
|
||||
|
||||
args.unshift( api );
|
||||
|
||||
$(api.table().node()).triggerHandler( type, args );
|
||||
$(api.table().node()).trigger( type, args );
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -445,23 +481,31 @@ function info ( api )
|
||||
return;
|
||||
}
|
||||
|
||||
var output = $('<span class="select-info"/>');
|
||||
var add = function ( name, num ) {
|
||||
output.append( $('<span class="select-item"/>').append( api.i18n(
|
||||
if ( api.select.style() === 'api' ) {
|
||||
return;
|
||||
}
|
||||
|
||||
var rows = api.rows( { selected: true } ).flatten().length;
|
||||
var columns = api.columns( { selected: true } ).flatten().length;
|
||||
var cells = api.cells( { selected: true } ).flatten().length;
|
||||
|
||||
var add = function ( el, name, num ) {
|
||||
el.append( $('<span class="select-item"/>').append( api.i18n(
|
||||
'select.'+name+'s',
|
||||
{ _: '%d '+name+'s selected', 0: '', 1: '1 '+name+' selected' },
|
||||
num
|
||||
) ) );
|
||||
};
|
||||
|
||||
add( 'row', api.rows( { selected: true } ).flatten().length );
|
||||
add( 'column', api.columns( { selected: true } ).flatten().length );
|
||||
add( 'cell', api.cells( { selected: true } ).flatten().length );
|
||||
|
||||
// Internal knowledge of DataTables to loop over all information elements
|
||||
$.each( ctx.aanFeatures.i, function ( i, el ) {
|
||||
el = $(el);
|
||||
|
||||
var output = $('<span class="select-info"/>');
|
||||
add( output, 'row', rows );
|
||||
add( output, 'column', columns );
|
||||
add( output, 'cell', cells );
|
||||
|
||||
var exisiting = el.children('span.select-info');
|
||||
if ( exisiting.length ) {
|
||||
exisiting.remove();
|
||||
@@ -516,7 +560,12 @@ function init ( ctx ) {
|
||||
|
||||
// On Ajax reload we want to reselect all rows which are currently selected,
|
||||
// if there is an rowId (i.e. a unique value to identify each row with)
|
||||
api.on( 'preXhr.dt.dtSelect', function () {
|
||||
api.on( 'preXhr.dt.dtSelect', function (e, settings) {
|
||||
if (settings !== api.settings()[0]) {
|
||||
// Not triggered by our DataTable!
|
||||
return;
|
||||
}
|
||||
|
||||
// note that column selection doesn't need to be cached and then
|
||||
// reselected, as they are already selected
|
||||
var rows = api.rows( { selected: true } ).ids( true ).filter( function ( d ) {
|
||||
@@ -552,6 +601,8 @@ function init ( ctx ) {
|
||||
|
||||
// Clean up and release
|
||||
api.on( 'destroy.dtSelect', function () {
|
||||
api.rows({selected: true}).deselect();
|
||||
|
||||
disableMouseSelection( api );
|
||||
api.off( '.dtSelect' );
|
||||
} );
|
||||
@@ -634,7 +685,12 @@ function clear( ctx, force )
|
||||
function typeSelect ( e, dt, ctx, type, idx )
|
||||
{
|
||||
var style = dt.select.style();
|
||||
var toggleable = dt.select.toggleable();
|
||||
var isSelected = dt[type]( idx, { selected: true } ).any();
|
||||
|
||||
if ( isSelected && ! toggleable ) {
|
||||
return;
|
||||
}
|
||||
|
||||
if ( style === 'os' ) {
|
||||
if ( e.ctrlKey || e.metaKey ) {
|
||||
@@ -686,6 +742,10 @@ function typeSelect ( e, dt, ctx, type, idx )
|
||||
}
|
||||
}
|
||||
|
||||
function _safeId( node ) {
|
||||
return node.id.replace(/[^a-zA-Z0-9\-\_]/g, '-');
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
@@ -704,7 +764,7 @@ $.each( [
|
||||
var data;
|
||||
var out = [];
|
||||
|
||||
if ( selected === undefined ) {
|
||||
if ( selected !== true && selected !== false ) {
|
||||
return indexes;
|
||||
}
|
||||
|
||||
@@ -773,8 +833,18 @@ apiRegister( 'select.blurable()', function ( flag ) {
|
||||
} );
|
||||
} );
|
||||
|
||||
apiRegister( 'select.toggleable()', function ( flag ) {
|
||||
if ( flag === undefined ) {
|
||||
return this.context[0]._select.toggleable;
|
||||
}
|
||||
|
||||
return this.iterator( 'table', function ( ctx ) {
|
||||
ctx._select.toggleable = flag;
|
||||
} );
|
||||
} );
|
||||
|
||||
apiRegister( 'select.info()', function ( flag ) {
|
||||
if ( info === undefined ) {
|
||||
if ( flag === undefined ) {
|
||||
return this.context[0]._select.info;
|
||||
}
|
||||
|
||||
@@ -912,7 +982,7 @@ apiRegisterPlural( 'cells().select()', 'cell().select()', function ( select ) {
|
||||
} );
|
||||
|
||||
this.iterator( 'table', function ( ctx, i ) {
|
||||
eventTrigger( api, 'select', [ 'cell', api[i] ], true );
|
||||
eventTrigger( api, 'select', [ 'cell', api.cells(api[i]).indexes().toArray() ], true );
|
||||
} );
|
||||
|
||||
return this;
|
||||
@@ -924,6 +994,7 @@ apiRegisterPlural( 'rows().deselect()', 'row().deselect()', function () {
|
||||
|
||||
this.iterator( 'row', function ( ctx, idx ) {
|
||||
ctx.aoData[ idx ]._select_selected = false;
|
||||
ctx._select_lastCell = null;
|
||||
$( ctx.aoData[ idx ].nTr ).removeClass( ctx._select.className );
|
||||
} );
|
||||
|
||||
@@ -1000,33 +1071,60 @@ function i18n( label, def ) {
|
||||
};
|
||||
}
|
||||
|
||||
// Common events with suitable namespaces
|
||||
function namespacedEvents ( config ) {
|
||||
var unique = config._eventNamespace;
|
||||
|
||||
return 'draw.dt.DT'+unique+' select.dt.DT'+unique+' deselect.dt.DT'+unique;
|
||||
}
|
||||
|
||||
function enabled ( dt, config ) {
|
||||
if ( $.inArray( 'rows', config.limitTo ) !== -1 && dt.rows( { selected: true } ).any() ) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ( $.inArray( 'columns', config.limitTo ) !== -1 && dt.columns( { selected: true } ).any() ) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ( $.inArray( 'cells', config.limitTo ) !== -1 && dt.cells( { selected: true } ).any() ) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
var _buttonNamespace = 0;
|
||||
|
||||
$.extend( DataTable.ext.buttons, {
|
||||
selected: {
|
||||
text: i18n( 'selected', 'Selected' ),
|
||||
className: 'buttons-selected',
|
||||
init: function ( dt ) {
|
||||
limitTo: [ 'rows', 'columns', 'cells' ],
|
||||
init: function ( dt, node, config ) {
|
||||
var that = this;
|
||||
config._eventNamespace = '.select'+(_buttonNamespace++);
|
||||
|
||||
// .DT namespace listeners are removed by DataTables automatically
|
||||
// on table destroy
|
||||
dt.on( 'draw.dt.DT select.dt.DT deselect.dt.DT', function () {
|
||||
var enable = that.rows( { selected: true } ).any() ||
|
||||
that.columns( { selected: true } ).any() ||
|
||||
that.cells( { selected: true } ).any();
|
||||
|
||||
that.enable( enable );
|
||||
dt.on( namespacedEvents(config), function () {
|
||||
that.enable( enabled(dt, config) );
|
||||
} );
|
||||
|
||||
this.disable();
|
||||
},
|
||||
destroy: function ( dt, node, config ) {
|
||||
dt.off( config._eventNamespace );
|
||||
}
|
||||
},
|
||||
selectedSingle: {
|
||||
text: i18n( 'selectedSingle', 'Selected single' ),
|
||||
className: 'buttons-selected-single',
|
||||
init: function ( dt ) {
|
||||
init: function ( dt, node, config ) {
|
||||
var that = this;
|
||||
config._eventNamespace = '.select'+(_buttonNamespace++);
|
||||
|
||||
dt.on( 'draw.dt.DT select.dt.DT deselect.dt.DT', function () {
|
||||
dt.on( namespacedEvents(config), function () {
|
||||
var count = dt.rows( { selected: true } ).flatten().length +
|
||||
dt.columns( { selected: true } ).flatten().length +
|
||||
dt.cells( { selected: true } ).flatten().length;
|
||||
@@ -1035,6 +1133,9 @@ $.extend( DataTable.ext.buttons, {
|
||||
} );
|
||||
|
||||
this.disable();
|
||||
},
|
||||
destroy: function ( dt, node, config ) {
|
||||
dt.off( config._eventNamespace );
|
||||
}
|
||||
},
|
||||
selectAll: {
|
||||
@@ -1051,10 +1152,11 @@ $.extend( DataTable.ext.buttons, {
|
||||
action: function () {
|
||||
clear( this.settings()[0], true );
|
||||
},
|
||||
init: function ( dt ) {
|
||||
init: function ( dt, node, config ) {
|
||||
var that = this;
|
||||
config._eventNamespace = '.select'+(_buttonNamespace++);
|
||||
|
||||
dt.on( 'draw.dt.DT select.dt.DT deselect.dt.DT', function () {
|
||||
dt.on( namespacedEvents(config), function () {
|
||||
var count = dt.rows( { selected: true } ).flatten().length +
|
||||
dt.columns( { selected: true } ).flatten().length +
|
||||
dt.cells( { selected: true } ).flatten().length;
|
||||
@@ -1063,6 +1165,9 @@ $.extend( DataTable.ext.buttons, {
|
||||
} );
|
||||
|
||||
this.disable();
|
||||
},
|
||||
destroy: function ( dt, node, config ) {
|
||||
dt.off( config._eventNamespace );
|
||||
}
|
||||
}
|
||||
} );
|
||||
|
||||
Reference in New Issue
Block a user