1
0
Fork 0
mirror of https://github.com/koalyptus/TableFilter.git synced 2024-06-06 16:02:39 +02:00

Continued paging module

This commit is contained in:
Max Guglielmi 2015-01-11 21:22:52 +11:00
parent b134e70a52
commit d064bd3504
31 changed files with 2557 additions and 1773 deletions

2
dist/filtergrid.css vendored
View file

@ -1,6 +1,6 @@
/*------------------------------------------------------------------------ /*------------------------------------------------------------------------
- TableFilter stylesheet by Max Guglielmi - TableFilter stylesheet by Max Guglielmi
- (build date: Tue Dec 16 2014 03:26:44) - (build date: Sun Jan 11 2015 20:01:16)
- Edit below for your projects' needs - Edit below for your projects' needs
------------------------------------------------------------------------*/ ------------------------------------------------------------------------*/

View file

@ -191,9 +191,6 @@ export class GridLayout{
this.headTblCont.style.width = this.tblCont.clientWidth+'px'; this.headTblCont.style.width = this.tblCont.clientWidth+'px';
tbl.style.width = ''; tbl.style.width = '';
// if(Helpers.isIE()){
// this.headTbl.style.width = '';
// }
//scroll synchronisation //scroll synchronisation
var o = this; var o = this;
@ -258,81 +255,30 @@ export class GridLayout{
//Cols generation for all browsers excepted IE<=7 //Cols generation for all browsers excepted IE<=7
o.tblHasColTag = Dom.tag(tbl, 'col').length > 0 ? true : false; o.tblHasColTag = Dom.tag(tbl, 'col').length > 0 ? true : false;
// if(!Helpers.isIE()){ //Col elements are enough to keep column widths after sorting and
//Col elements are enough to keep column widths after sorting and //filtering
//filtering var createColTags = function(o){
var createColTags = function(o){ if(!o){
if(!o){ return;
return;
}
for(var k=(tf.nbCells-1); k>=0; k--){
var col = Dom.create('col', ['id', tf.id+'_col_'+k]);
tbl.firstChild.parentNode.insertBefore(col, tbl.firstChild);
col.style.width = tf.colWidth[k];
o.gridColElms[k] = col;
}
o.tblHasColTag = true;
};
if(!o.tblHasColTag){
createColTags(o);
} else {
var cols = Dom.tag(tbl, 'col');
for(var ii=0; ii<tf.nbCells; ii++){
cols[ii].setAttribute('id', tf.id+'_col_'+ii);
cols[ii].style.width = tf.colWidth[ii];
o.gridColElms.push(cols[ii]);
}
} }
// } for(var k=(tf.nbCells-1); k>=0; k--){
var col = Dom.create('col', ['id', tf.id+'_col_'+k]);
//IE <= 7 needs an additional row for widths as col element width is tbl.firstChild.parentNode.insertBefore(col, tbl.firstChild);
//not enough... col.style.width = tf.colWidth[k];
// if(Helpers.isIE()){ o.gridColElms[k] = col;
// var tbody = Dom.tag(tbl,'tbody'), }
// r; o.tblHasColTag = true;
// if( tbody.length>0 ){ };
// r = tbody[0].insertRow(0); if(!o.tblHasColTag){
// } else{ createColTags(o);
// r = tbl.insertRow(0); } else {
// } var cols = Dom.tag(tbl, 'col');
// r.style.height = '0px'; for(var ii=0; ii<tf.nbCells; ii++){
// for(var x=0; x<o.nbCells; x++){ cols[ii].setAttribute('id', tf.id+'_col_'+ii);
// var col = Dom.create('td', ['id', o.id+'_col_'+x]); cols[ii].style.width = tf.colWidth[ii];
// col.style.width = o.colWidth[x]; o.gridColElms.push(cols[ii]);
// tbl.rows[1].cells[x].style.width = ''; }
// r.appendChild(col); }
// o.gridColElms.push(col);
// }
// tf.hasGridWidthsRow = true;
// //Data table row with widths expressed
// o.leadColWidthsRow = tbl.rows[0];
// o.leadColWidthsRow.setAttribute('validRow', 'false');
// var beforeSortFn = Types.isFn(f.on_before_sort) ?
// f.on_before_sort : null;
// f.on_before_sort = function(o, colIndex){
// o.leadColWidthsRow.setAttribute('validRow', 'false');
// if(beforeSortFn){
// beforeSortFn.call(null, o, colIndex);
// }
// };
// var afterSortFn = Types.isFn(f.on_after_sort) ?
// f.on_after_sort : null;
// f.on_after_sort = function(o,colIndex){
// if(o.leadColWidthsRow.rowIndex !== 0){
// var r = o.leadColWidthsRow;
// if(tbody.length>0){
// tbody[0].moveRow(o.leadColWidthsRow.rowIndex, 0);
// } else {
// tbl.moveRow(o.leadColWidthsRow.rowIndex, 0);
// }
// }
// if(afterSortFn){
// afterSortFn.call(null, o, colIndex);
// }
// };
// }
var afterColResizedFn = Types.isFn(f.on_after_col_resized) ? var afterColResizedFn = Types.isFn(f.on_after_col_resized) ?
f.on_after_col_resized : null; f.on_after_col_resized : null;
@ -347,10 +293,6 @@ export class GridLayout{
var thCW = o.crWColsRow.cells[colIndex].clientWidth; var thCW = o.crWColsRow.cells[colIndex].clientWidth;
var tdCW = o.crWRowDataTbl.cells[colIndex].clientWidth; var tdCW = o.crWRowDataTbl.cells[colIndex].clientWidth;
// if(Helpers.isIE()){
// tbl.style.width = o.headTbl.clientWidth+'px';
// }
if(thCW != tdCW /*&& !Helpers.isIE()*/){ if(thCW != tdCW /*&& !Helpers.isIE()*/){
o.headTbl.style.width = tbl.clientWidth+'px'; o.headTbl.style.width = tbl.clientWidth+'px';
} }

View file

@ -1,8 +1,10 @@
import {Dom} from '../dom'; import {Dom} from '../dom';
import {Types} from '../types';
import {Str} from '../string';
import {Helpers} from '../helpers'; import {Helpers} from '../helpers';
export class Paging{ export class Paging{
/** /**
* Pagination component * Pagination component
* @param {Object} tf TableFilter instance * @param {Object} tf TableFilter instance
@ -10,7 +12,7 @@ export class Paging{
constructor(tf){ constructor(tf){
// TableFilter configuration // TableFilter configuration
var f = tf.fObj; var f = tf.fObj;
//id of container element //id of container element
this.pagingTgtId = f.paging_target_id || null; this.pagingTgtId = f.paging_target_id || null;
//defines table paging length //defines table paging length
@ -72,72 +74,72 @@ export class Paging{
//stores paging buttons events //stores paging buttons events
this.pagingBtnEvents = null; this.pagingBtnEvents = null;
//defines previous page button html //defines previous page button html
this.pageSelectorType = f.page_selector_type || this.fltTypeSlc; this.pageSelectorType = f.page_selector_type || tf.fltTypeSlc;
//calls function before page is changed //calls function before page is changed
this.onBeforeChangePage = types.isFn(f.on_before_change_page) ? this.onBeforeChangePage = Types.isFn(f.on_before_change_page) ?
f.on_before_change_page : null; f.on_before_change_page : null;
//calls function before page is changed //calls function before page is changed
this.onAfterChangePage = types.isFn(f.on_after_change_page) ? this.onAfterChangePage = Types.isFn(f.on_after_change_page) ?
f.on_after_change_page : null; f.on_after_change_page : null;
var start_row = this.refRow; var start_row = this.refRow;
var nrows = this.nbRows; var nrows = this.nbRows;
//calculates page nb //calculates page nb
this.nbPages = Math.ceil((nrows-start_row)/this.pagingLength); this.nbPages = Math.ceil((nrows-start_row)/this.pagingLength);
var evt = tf.Evt; var evt = tf.Evt;
//Paging elements events //Paging elements events
if(!evt._Paging.next){ if(!evt._Paging.next){
var o = tf; var o = this;
evt._Paging = {// paging buttons events evt._Paging = {// paging buttons events
slcIndex: function(){ slcIndex: function(){
return (o.pageSelectorType===o.fltTypeSlc) ? return (o.pageSelectorType===tf.fltTypeSlc) ?
o.pagingSlc.options.selectedIndex : o.pagingSlc.options.selectedIndex :
parseInt(o.pagingSlc.value,10)-1; parseInt(o.pagingSlc.value, 10)-1;
}, },
nbOpts: function(){ nbOpts: function(){
return (o.pageSelectorType===o.fltTypeSlc) ? return (o.pageSelectorType===tf.fltTypeSlc) ?
parseInt(o.pagingSlc.options.length,10)-1 : parseInt(o.pagingSlc.options.length, 10)-1 :
(o.nbPages-1); (o.nbPages-1);
}, },
next: function(){ next: function(){
if(o.Evt._Paging.nextEvt){ if(evt._Paging.nextEvt){
o.Evt._Paging.nextEvt(); evt._Paging.nextEvt();
} }
var nextIndex = var nextIndex =
o.Evt._Paging.slcIndex()<o.Evt._Paging.nbOpts() ? evt._Paging.slcIndex() < evt._Paging.nbOpts() ?
o.Evt._Paging.slcIndex()+1 : 0; evt._Paging.slcIndex()+1 : 0;
o.ChangePage(nextIndex); o.changePage(nextIndex);
}, },
prev: function(){ prev: function(){
if(o.Evt._Paging.prevEvt){ if(evt._Paging.prevEvt){
o.Evt._Paging.prevEvt(); evt._Paging.prevEvt();
} }
var prevIndex = o.Evt._Paging.slcIndex()>0 ? var prevIndex = evt._Paging.slcIndex()>0 ?
o.Evt._Paging.slcIndex()-1 : o.Evt._Paging.nbOpts(); evt._Paging.slcIndex()-1 : evt._Paging.nbOpts();
o.ChangePage(prevIndex); o.changePage(prevIndex);
}, },
last: function(){ last: function(){
if(o.Evt._Paging.lastEvt){ if(evt._Paging.lastEvt){
o.Evt._Paging.lastEvt(); evt._Paging.lastEvt();
} }
o.ChangePage(o.Evt._Paging.nbOpts()); o.changePage(evt._Paging.nbOpts());
}, },
first: function(){ first: function(){
if(o.Evt._Paging.firstEvt){ if(evt._Paging.firstEvt){
o.Evt._Paging.firstEvt(); evt._Paging.firstEvt();
} }
o.ChangePage(0); o.changePage(0);
}, },
_detectKey: function(e){ _detectKey: function(e){
var evt = e || global.event; var evt = e || global.event;
if(evt){ if(evt){
var key = o.Evt.getKeyCode(e); var key = evt.getKeyCode(e);
if(key===13){ if(key===13){
if(o.sorted){ if(tf.sorted){
o.Filter(); tf.Filter();
o.ChangePage(o.Evt._Paging.slcIndex()); o.changePage(evt._Paging.slcIndex());
} else{ } else{
o.ChangePage(); o.changePage();
} }
this.blur(); this.blur();
} }
@ -148,28 +150,29 @@ export class Paging{
lastEvt: null, lastEvt: null,
firstEvt: null firstEvt: null
}; };
} }
this.tf = tf; this.tf = tf;
} }
buildUI(){ init(){
var slcPages; var slcPages;
var tf = this.tf; var tf = this.tf;
var evt = tf.Evt; var evt = tf.Evt;
// Paging drop-down list selector // Paging drop-down list selector
if(this.pageSelectorType === tf.fltTypeSlc){ if(this.pageSelectorType === tf.fltTypeSlc){
slcPages = dom.create( slcPages = Dom.create(
tf.fltTypeSlc, ['id', tf.prfxSlcPages+tf.id]); tf.fltTypeSlc, ['id', tf.prfxSlcPages+tf.id]);
slcPages.className = this.pgSlcCssClass; slcPages.className = this.pgSlcCssClass;
console.log(evt);
slcPages.onchange = evt._OnSlcPagesChange; slcPages.onchange = evt._OnSlcPagesChange;
//slcPages.onchange = function(){ alert('hello'); }
} }
// Paging input selector // Paging input selector
if(this.pageSelectorType === tf.fltTypeInp){ if(this.pageSelectorType === tf.fltTypeInp){
slcPages = dom.create( slcPages = Dom.create(
tf.fltTypeInp, tf.fltTypeInp,
['id', tf.prfxSlcPages+tf.id], ['id', tf.prfxSlcPages+tf.id],
['value', tf.currentPageNb] ['value', tf.currentPageNb]
@ -179,23 +182,24 @@ export class Paging{
} }
// btns containers // btns containers
var btnNextSpan = dom.create( var btnNextSpan = Dom.create(
'span',['id',this.prfxBtnNextSpan+tf.id]); 'span',['id', tf.prfxBtnNextSpan+tf.id]);
var btnPrevSpan = dom.create( var btnPrevSpan = Dom.create(
'span',['id',this.prfxBtnPrevSpan+tf.id]); 'span',['id', tf.prfxBtnPrevSpan+tf.id]);
var btnLastSpan = dom.create( var btnLastSpan = Dom.create(
'span',['id',this.prfxBtnLastSpan+tf.id]); 'span',['id', tf.prfxBtnLastSpan+tf.id]);
var btnFirstSpan = dom.create( var btnFirstSpan = Dom.create(
'span',['id',this.prfxBtnFirstSpan+tf.id]); 'span',['id', tf.prfxBtnFirstSpan+tf.id]);
if(this.hasPagingBtns){ if(this.hasPagingBtns){
// Next button // Next button
if(!this.btnNextPageHtml){ if(!this.btnNextPageHtml){
var btn_next = dom.create( var btn_next = Dom.create(
tf.fltTypeInp,['id',tf.prfxBtnNext+tf.id], tf.fltTypeInp,
['type','button'], ['id', tf.prfxBtnNext+tf.id],
['value',this.btnNextPageText], ['type', 'button'],
['title','Next'] ['value', this.btnNextPageText],
['title', 'Next']
); );
btn_next.className = this.btnPageCssClass; btn_next.className = this.btnPageCssClass;
btn_next.onclick = evt._Paging.next; btn_next.onclick = evt._Paging.next;
@ -206,7 +210,7 @@ export class Paging{
} }
// Previous button // Previous button
if(!this.btnPrevPageHtml){ if(!this.btnPrevPageHtml){
var btn_prev = dom.create( var btn_prev = Dom.create(
tf.fltTypeInp, tf.fltTypeInp,
['id',tf.prfxBtnPrev+tf.id], ['id',tf.prfxBtnPrev+tf.id],
['type','button'], ['type','button'],
@ -222,7 +226,7 @@ export class Paging{
} }
// Last button // Last button
if(!this.btnLastPageHtml){ if(!this.btnLastPageHtml){
var btn_last = dom.create( var btn_last = Dom.create(
tf.fltTypeInp, tf.fltTypeInp,
['id',tf.prfxBtnLast+tf.id], ['id',tf.prfxBtnLast+tf.id],
['type','button'], ['type','button'],
@ -238,7 +242,7 @@ export class Paging{
} }
// First button // First button
if(!this.btnFirstPageHtml){ if(!this.btnFirstPageHtml){
var btn_first = dom.create( var btn_first = Dom.create(
tf.fltTypeInp, tf.fltTypeInp,
['id',tf.prfxBtnFirst+tf.id], ['id',tf.prfxBtnFirst+tf.id],
['type','button'], ['type','button'],
@ -258,7 +262,7 @@ export class Paging{
if(!this.pagingTgtId){ if(!this.pagingTgtId){
tf.SetTopDiv(); tf.SetTopDiv();
} }
var targetEl = !this.pagingTgtId ? tf.mDiv : dom.id(this.pagingTgtId); var targetEl = !this.pagingTgtId ? tf.mDiv : Dom.id(this.pagingTgtId);
/*** /***
if paging previously removed this prevents IE memory leak with if paging previously removed this prevents IE memory leak with
@ -273,34 +277,212 @@ export class Paging{
targetEl.appendChild(btnFirstSpan); targetEl.appendChild(btnFirstSpan);
targetEl.appendChild(btnPrevSpan); targetEl.appendChild(btnPrevSpan);
var pgBeforeSpan = dom.create( var pgBeforeSpan = Dom.create(
'span',['id', tf.prfxPgBeforeSpan+tf.id] ); 'span',['id', tf.prfxPgBeforeSpan+tf.id] );
pgBeforeSpan.appendChild( dom.text(this.pageText) ); pgBeforeSpan.appendChild( Dom.text(this.pageText) );
pgBeforeSpan.className = this.nbPgSpanCssClass; pgBeforeSpan.className = this.nbPgSpanCssClass;
targetEl.appendChild(pgBeforeSpan); targetEl.appendChild(pgBeforeSpan);
targetEl.appendChild(slcPages); targetEl.appendChild(slcPages);
var pgAfterSpan = dom.create( var pgAfterSpan = Dom.create(
'span',['id', tf.prfxPgAfterSpan+tf.id]); 'span',['id', tf.prfxPgAfterSpan+tf.id]);
pgAfterSpan.appendChild( dom.text(this.ofText) ); pgAfterSpan.appendChild( Dom.text(this.ofText) );
pgAfterSpan.className = this.nbPgSpanCssClass; pgAfterSpan.className = this.nbPgSpanCssClass;
targetEl.appendChild(pgAfterSpan); targetEl.appendChild(pgAfterSpan);
var pgspan = dom.create( 'span',['id', tf.prfxPgSpan+tf.id] ); var pgspan = Dom.create( 'span',['id', tf.prfxPgSpan+tf.id] );
pgspan.className = this.nbPgSpanCssClass; pgspan.className = this.nbPgSpanCssClass;
pgspan.appendChild( dom.text(' '+this.nbPages+' ') ); pgspan.appendChild( Dom.text(' '+this.nbPages+' ') );
targetEl.appendChild(pgspan); targetEl.appendChild(pgspan);
targetEl.appendChild(btnNextSpan); targetEl.appendChild(btnNextSpan);
targetEl.appendChild(btnLastSpan); targetEl.appendChild(btnLastSpan);
this.pagingSlc = dom.id(tf.prfxSlcPages+tf.id); this.pagingSlc = Dom.id(tf.prfxSlcPages+tf.id);
/*==================================================== /*====================================================
- onchange event for paging select - onchange event for paging select
=====================================================*/ =====================================================*/
if(!evt._OnSlcPagesChange){ var o = this;
evt._OnSlcPagesChange = function(){ evt._OnSlcPagesChange = function(){
if(evt._Paging._OnSlcPagesChangeEvt){ if(evt._Paging._OnSlcPagesChangeEvt){
evt._Paging._OnSlcPagesChangeEvt(); evt._Paging._OnSlcPagesChangeEvt();
}
o.changePage();
this.blur();
//ie only: blur is not enough...
if(this.parentNode && Helpers.isIE()){
this.parentNode.focus();
}
};
// if this.rememberGridValues==true this.SetPagingInfo() is called
// in ResetGridValues() method
if(!tf.rememberGridValues || tf.isPagingRemoved){
this.setPagingInfo();
}
if(!tf.fltGrid){
tf.ValidateAllRows();
this.setPagingInfo(tf.validRowsIndex);
}
this.pagingBtnEvents = evt._Paging;
tf.isPagingRemoved = false;
}
addPaging(filterTable){
var tf = this.tf;
if(!tf.hasGrid || tf.paging){
return;
}
tf.paging = true;
tf.isPagingRemoved = true;
this.init();
tf.ResetValues();
if(filterTable){
tf.Filter();
}
}
setPagingInfo(validRows){
var tf = this.tf;
var rows = tf.tbl.rows;
var mdiv = !this.pagingTgtId ? tf.mDiv : Dom.id(this.pagingTgtId);
var pgspan = Dom.id(tf.prfxPgSpan+tf.id);
//stores valid rows indexes
if(validRows && validRows.length>0){
tf.validRowsIndex = validRows;
} else {
//re-sets valid rows indexes array
tf.validRowsIndex = [];
//counts rows to be grouped
for(var j=tf.refRow; j<tf.nbRows; j++){
var row = rows[j];
if(!row){
continue;
} }
tf.ChangePage(); var isRowValid = row.getAttribute('validRow');
if(isRowValid==='true' || !isRowValid){
tf.validRowsIndex.push(j);
}
}
}
//calculate nb of pages
this.nbPages = Math.ceil(tf.validRowsIndex.length/this.pagingLength);
//refresh page nb span
pgspan.innerHTML = this.nbPages;
//select clearing shortcut
if(this.pageSelectorType === tf.fltTypeSlc){
this.pagingSlc.innerHTML = '';
}
if(this.nbPages>0){
mdiv.style.visibility = 'visible';
if(this.pageSelectorType === tf.fltTypeSlc){
for(var z=0; z<this.nbPages; z++){
var currOpt = new Option(
(z+1),
z*this.pagingLength,
false,
false
);
this.pagingSlc.options[z] = currOpt;
}
} else{
//input type
this.pagingSlc.value = this.currentPageNb;
}
} else {
/*** if no results paging select and buttons are hidden ***/
mdiv.style.visibility = 'hidden';
}
this.groupByPage(tf.validRowsIndex);
}
groupByPage(validRows){
var tf = this.tf;
var rows = tf.tbl.rows;
var paging_end_row = parseInt(this.startPagingRow, 10) +
parseInt(this.pagingLength, 10);
//store valid rows indexes
if(validRows){
tf.validRowsIndex = validRows;
}
//this loop shows valid rows of current page
for(var h=0; h<tf.validRowsIndex.length; h++){
var r = rows[tf.validRowsIndex[h]];
if(h>=this.startPagingRow && h<paging_end_row){
if(r.getAttribute('validRow')==='true' ||
!r.getAttribute('validRow')){
r.style.display = '';
}
if(tf.alternateBgs && tf.Cpt.alternateRows){
tf.Cpt.alternateRows.setRowBg(tf.validRowsIndex[h], h);
}
} else {
r.style.display = 'none';
if(tf.alternateBgs && tf.Cpt.alternateRows){
tf.Cpt.alternateRows.removeRowBg(tf.validRowsIndex[h]);
}
}
}
tf.nbVisibleRows = tf.validRowsIndex.length;
tf.isStartBgAlternate = false;
//re-applies filter behaviours after filtering process
tf.ApplyGridProps();
}
setPage(cmd){
var tf = this.tf;
if(!tf.hasGrid || !this.paging){
return;
}
var btnEvt = this.pagingBtnEvents,
cmdtype = typeof cmd;
if(cmdtype==='string'){
switch(Str.lower(cmd)){
case 'next':
btnEvt.next();
break;
case 'previous':
btnEvt.prev();
break;
case 'last':
btnEvt.last();
break;
case 'first':
btnEvt.first();
break;
default:
btnEvt.next();
break;
}
}
if(cmdtype==='number'){
this.changePage(cmd-1);
}
}
setResultsPerPage(){
var tf = this.tf;
var evt = tf.Evt;
if(!tf.hasGrid && !tf.isFirstLoad){
return;
}
if(this.resultsPerPageSlc || !this.resultsPerPage){
return;
}
//Change nb results per page event
if(!evt._OnSlcResultsChange){
/*====================================================
- onchange event for results per page select
=====================================================*/
evt._OnSlcResultsChange = function(){
this.changeResultsPerPage();
this.blur(); this.blur();
//ie only: blur is not enough... //ie only: blur is not enough...
if(this.parentNode && Helpers.isIE()){ if(this.parentNode && Helpers.isIE()){
@ -308,5 +490,215 @@ export class Paging{
} }
}; };
} }
var slcR = Dom.create(
tf.fltTypeSlc, ['id', tf.prfxSlcResults+tf.id]);
slcR.className = tf.resultsSlcCssClass;
var slcRText = this.resultsPerPage[0],
slcROpts = this.resultsPerPage[1];
var slcRSpan = Dom.create(
'span',['id', tf.prfxSlcResultsTxt+tf.id]);
slcRSpan.className = this.resultsSpanCssClass;
// results per page select is added to external element
if(!this.resultsPerPageTgtId){
tf.SetTopDiv();
}
var targetEl = !this.resultsPerPageTgtId ?
tf.rDiv : Dom.id(this.resultsPerPageTgtId);
slcRSpan.appendChild(Dom.text(slcRText));
targetEl.appendChild(slcRSpan);
targetEl.appendChild(slcR);
this.resultsPerPageSlc = Dom.id(tf.prfxSlcResults+tf.id);
for(var r=0; r<slcROpts.length; r++){
var currOpt = new Option(slcROpts[r], slcROpts[r], false, false);
this.resultsPerPageSlc.options[r] = currOpt;
}
slcR.onchange = evt._OnSlcResultsChange;
} }
}
removeResultsPerPage(){
var tf = this.tf;
if(!tf.hasGrid || !this.resultsPerPageSlc || !this.resultsPerPage){
return;
}
var slcR = this.resultsPerPageSlc,
slcRSpan = Dom.id(tf.prfxSlcResultsTxt+tf.id);
if(slcR){
slcR.parentNode.removeChild(slcR);
}
if(slcRSpan){
slcRSpan.parentNode.removeChild(slcRSpan);
}
this.resultsPerPageSlc = null;
}
changePage(index){
var tf = this.tf;
var evt = tf.Evt;
tf.EvtManager(evt.name.changepage, { pgIndex:index });
}
changeResultsPerPage(){
var tf = this.tf;
var evt = tf.Evt;
tf.EvtManager(evt.name.changeresultsperpage);
}
resetPage(){
var tf = this.tf;
var evt = tf.Evt;
tf.EvtManager(evt.name.resetpage);
}
resetPageLength(){
var tf = this.tf;
var evt = tf.Evt;
tf.EvtManager(evt.name.resetpagelength);
}
_changePage(index){
var tf = this.tf;
if(!tf.paging){
return;
}
if(index === undefined){
index = this.pageSelectorType===tf.fltTypeSlc ?
this.pagingSlc.options.selectedIndex : (this.pagingSlc.value-1);
}
if( index>=0 && index<=(this.nbPages-1) ){
if(this.onBeforeChangePage){
this.onBeforeChangePage.call(null, this, index);
}
this.currentPageNb = parseInt(index, 10)+1;
if(this.pageSelectorType===tf.fltTypeSlc){
this.pagingSlc.options[index].selected = true;
} else {
this.pagingSlc.value = this.currentPageNb;
}
if(tf.rememberPageNb){
tf.Cpt.store.savePageNb(this.pgNbCookie);
}
this.startPagingRow = (this.pageSelectorType===tf.fltTypeSlc) ?
this.pagingSlc.value : (index*this.pagingLength);
this.groupByPage();
if(this.onAfterChangePage){
this.onAfterChangePage.call(null, this, index);
}
}
}
_changeResultsPerPage(){
var tf = this.tf;
if(!tf.paging){
return;
}
var slcR = this.resultsPerPageSlc;
var slcPagesSelIndex = (this.pageSelectorType===tf.fltTypeSlc) ?
this.pagingSlc.selectedIndex :
parseInt(this.pagingSlc.value-1, 10);
this.pagingLength = parseInt(slcR.options[slcR.selectedIndex].value,10);
this.startPagingRow = this.pagingLength*slcPagesSelIndex;
if(!isNaN(this.pagingLength)){
if(this.startPagingRow >= tf.nbFilterableRows){
this.startPagingRow = (tf.nbFilterableRows-this.pagingLength);
}
this.setPagingInfo();
if(this.pageSelectorType===tf.fltTypeSlc){
var slcIndex =
(this.pagingSlc.options.length-1<=slcPagesSelIndex ) ?
(this.pagingSlc.options.length-1) : slcPagesSelIndex;
this.pagingSlc.options[slcIndex].selected = true;
}
if(tf.rememberPageLen){
tf.Cpt.store.savePageLength(tf.pgLenCookie);
}
}
}
_resetPage(name){
var tf = this.tf;
var pgnb = tf.Cpt.store.getPageNb(name);
if(pgnb!==''){
this.changePage((pgnb-1));
}
}
_resetPageLength(name){
var tf = this.tf;
if(!tf.paging){
return;
}
var pglenIndex = tf.Cpt.store.getPageLength(name);
if(pglenIndex!==''){
this.resultsPerPageSlc.options[pglenIndex].selected = true;
this.changeResultsPerPage();
}
}
destroy(){
var tf = this.tf;
if(!tf.hasGrid || this.pagingSlc){
return;
}
// btns containers
var btnNextSpan, btnPrevSpan, btnLastSpan, btnFirstSpan;
var pgBeforeSpan, pgAfterSpan, pgspan;
btnNextSpan = Dom.id(tf.prfxBtnNextSpan+tf.id);
btnPrevSpan = Dom.id(tf.prfxBtnPrevSpan+tf.id);
btnLastSpan = Dom.id(tf.prfxBtnLastSpan+tf.id);
btnFirstSpan = Dom.id(tf.prfxBtnFirstSpan+tf.id);
//span containing 'Page' text
pgBeforeSpan = Dom.id(tf.prfxPgBeforeSpan+tf.id);
//span containing 'of' text
pgAfterSpan = Dom.id(tf.prfxPgAfterSpan+tf.id);
//span containing nb of pages
pgspan = Dom.id(tf.prfxPgSpan+tf.id);
this.pagingSlc.parentNode.removeChild(this.pagingSlc);
if(btnNextSpan){
btnNextSpan.parentNode.removeChild(btnNextSpan);
}
if(btnPrevSpan){
btnPrevSpan.parentNode.removeChild(btnPrevSpan);
}
if(btnLastSpan){
btnLastSpan.parentNode.removeChild(btnLastSpan);
}
if(btnFirstSpan){
btnFirstSpan.parentNode.removeChild(btnFirstSpan);
}
if(pgBeforeSpan){
pgBeforeSpan.parentNode.removeChild(pgBeforeSpan);
}
if(pgAfterSpan){
pgAfterSpan.parentNode.removeChild(pgAfterSpan);
}
if(pgspan){
pgspan.parentNode.removeChild(pgspan);
}
this.pagingBtnEvents = null;
this.pagingSlc = null;
tf.isPagingRemoved = true;
}
}

View file

@ -1 +1 @@
{"version":3,"sources":["src-es6/array.js"],"names":[],"mappings":";;;MAIQ,GAAG,WAAH,GAAG;;;MAEP,GAAG,GAAG;AACN,mBAAc,GAAG,EAAE,GAAG,EAAE,aAAa,EAAC;AAClC,UAAI,KAAK,GAAG,aAAa;AACzB,WAAK,IAAI,CAAC,UAAM,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAC;AAC5B,YAAG,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC,IAAI,GAAG,EAAC;AAC9C,iBAAO,IAAI,CAAC;SACf;OACJ;AACD,aAAO,KAAK,CAAC;;AAEjB,4BAAuB,GAAG,EAAE,GAAG,EAAE,aAAa,EAAC;AAC3C,UAAI,KAAK,GAAG,aAAa;AACzB,WAAK,IAAI,CAAC,UAAM,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAC;AAC5B,YAAG,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC,IAAI,GAAG,EAAC;AAC9C,iBAAO,CAAC,CAAC;SACZ;OACJ;AACD,aAAO,CAAC,CAAC,CAAC;;GAEjB,CAAC;;SAEK,CAAC,GAAG,GAAG,GAAG,CAAC","file":"src-es6/array.js","sourcesContent":["/**\n * Array utilities\n */\n\nimport {Str} from 'string';\n\nvar Arr = {\n has: function(arr, val, caseSensitive){\n var sCase = caseSensitive===undefined ? false : caseSensitive;\n for (var i=0; i<arr.length; i++){\n if(Str.matchCase(arr[i].toString(), sCase) == val){\n return true;\n }\n }\n return false;\n },\n indexByValue: function(arr, val, caseSensitive){\n var sCase = caseSensitive===undefined ? false : caseSensitive;\n for (var i=0; i<arr.length; i++){\n if(Str.matchCase(arr[i].toString(), sCase) == val){\n return i;\n }\n }\n return -1;\n }\n};\n\nexports.Arr = Arr;\n"]} {"version":3,"sources":["src-es6/array.js"],"names":[],"mappings":";;;MAIQ,GAAG,WAAH,GAAG;;;MAEP,GAAG,GAAG;AACN,mBAAc,GAAG,EAAE,GAAG,EAAE,aAAa,EAAC;AAClC,UAAI,KAAK,GAAG,aAAa;AACzB,WAAK,IAAI,CAAC,UAAM,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAC;AAC5B,YAAG,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC,IAAI,GAAG,EAAC;AAC9C,iBAAO,IAAI,CAAC;SACf;OACJ;AACD,aAAO,KAAK,CAAC;;AAEjB,4BAAuB,GAAG,EAAE,GAAG,EAAE,aAAa,EAAC;AAC3C,UAAI,KAAK,GAAG,aAAa;AACzB,WAAK,IAAI,CAAC,UAAM,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAC;AAC5B,YAAG,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC,IAAI,GAAG,EAAC;AAC9C,iBAAO,CAAC,CAAC;SACZ;OACJ;AACD,aAAO,CAAC,CAAC,CAAC;;GAEjB,CAAC;;SAEK,CAAC,GAAG,GAAG,GAAG,CAAC","file":"src-es6/array.js","sourcesContent":["/**\r\n * Array utilities\r\n */\r\n\r\nimport {Str} from 'string';\r\n\r\nvar Arr = {\r\n has: function(arr, val, caseSensitive){\r\n var sCase = caseSensitive===undefined ? false : caseSensitive;\r\n for (var i=0; i<arr.length; i++){\r\n if(Str.matchCase(arr[i].toString(), sCase) == val){\r\n return true;\r\n }\r\n }\r\n return false;\r\n },\r\n indexByValue: function(arr, val, caseSensitive){\r\n var sCase = caseSensitive===undefined ? false : caseSensitive;\r\n for (var i=0; i<arr.length; i++){\r\n if(Str.matchCase(arr[i].toString(), sCase) == val){\r\n return i;\r\n }\r\n }\r\n return -1;\r\n }\r\n};\r\n\r\nexports.Arr = Arr;\r\n"]}

View file

@ -1 +1 @@
{"version":3,"sources":["src-es6/cookie.js"],"names":[],"mappings":";;;;;;;AAIA,MAAI,MAAM,GAAG,EAAE,CAAC;;AAEhB,QAAM,CAAC,KAAK,GAAG,UAAS,IAAI,EAAE,KAAK,EAAE,KAAK,EAAC;AACvC,QAAI,MAAM,GAAG,EAAE,CAAC;AAChB,QAAG,KAAK,EAAC;AACL,YAAM,GAAG,IAAI,IAAI,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,GAAG,KAAK,GAAG,OAAO,CAAC,CAAC;AAC5D,YAAM,GAAG,YAAY,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;KAChD;AACD,YAAQ,CAAC,MAAM,GAAG,IAAI,GAAG,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC;GACzD,CAAC;;AAEF,QAAM,CAAC,IAAI,GAAG,UAAS,IAAI,EAAC;AACxB,QAAI,WAAW,GAAG,EAAE,EAChB,MAAM,GAAG,IAAI,GAAG,GAAG,CAAC;AACxB,QAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAC;AAC1B,UAAI,MAAM,GAAG,QAAQ,CAAC,MAAM,EACxB,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AACpC,UAAG,MAAM,KAAK,CAAC,CAAC,EAAC;AACb,cAAM,IAAI,MAAM,CAAC,MAAM,CAAC;AACxB,YAAI,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AACtC,YAAG,GAAG,KAAK,CAAC,CAAC,EAAC;AACV,aAAG,GAAG,MAAM,CAAC,MAAM,CAAC;SACvB;AACD,mBAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;OACzD;KACJ;AACD,WAAO,WAAW,CAAC;GACtB,CAAC;;AAEF,QAAM,CAAC,MAAM,GAAG,UAAS,IAAI,EAAC;AAC1B,QAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;GAC5B,CAAC;;AAEF,QAAM,CAAC,YAAY,GAAG,UAAS,IAAI,EAAE,SAAS,EAAC;AAC3C,QAAG,CAAC,SAAS,EAAC;AACV,eAAS,GAAG,GAAG,CAAC;KACnB;;AAED,QAAI,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;;AAE1B,QAAI,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AAC/B,WAAO,GAAG,CAAC;GACd,CAAC;;AAEF,QAAM,CAAC,eAAe,GAAG,UAAS,IAAI,EAAE,KAAK,EAAE,SAAS,EAAC;AACrD,QAAG,CAAC,SAAS,EAAC;AACV,eAAS,GAAG,GAAG,CAAC;KACnB;;AAED,QAAI,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AAC7C,WAAO,GAAG,CAAC,KAAK,CAAC,CAAC;GACrB,CAAC;;AAEF,SAAO,CAAC,MAAM,GAAG,MAAM,CAAC","file":"src-es6/cookie.js","sourcesContent":["/**\n * Cookie utilities\n */\n\nvar Cookie = {};\n\nCookie.write = function(name, value, hours){\n var expire = '';\n if(hours){\n expire = new Date((new Date()).getTime() + hours * 3600000);\n expire = '; expires=' + expire.toGMTString();\n }\n document.cookie = name + '=' + escape(value) + expire;\n};\n\nCookie.read = function(name){\n var cookieValue = '',\n search = name + '=';\n if(document.cookie.length > 0){\n var cookie = document.cookie,\n offset = cookie.indexOf(search);\n if(offset !== -1){\n offset += search.length;\n var end = cookie.indexOf(';', offset);\n if(end === -1){\n end = cookie.length;\n }\n cookieValue = unescape(cookie.substring(offset, end));\n }\n }\n return cookieValue;\n};\n\nCookie.remove = function(name){\n this.write(name, '', -1);\n};\n\nCookie.valueToArray = function(name, separator){\n if(!separator){\n separator = ',';\n }\n //reads the cookie\n var val = this.read(name);\n //creates an array with filters' values\n var arr = val.split(separator);\n return arr;\n};\n\nCookie.getValueByIndex = function(name, index, separator){\n if(!separator){\n separator = ',';\n }\n //reads the cookie\n var val = this.valueToArray(name, separator);\n return val[index];\n};\n\nexports.Cookie = Cookie;\n"]} {"version":3,"sources":["src-es6/cookie.js"],"names":[],"mappings":";;;;;;;AAIA,MAAI,MAAM,GAAG,EAAE,CAAC;;AAEhB,QAAM,CAAC,KAAK,GAAG,UAAS,IAAI,EAAE,KAAK,EAAE,KAAK,EAAC;AACvC,QAAI,MAAM,GAAG,EAAE,CAAC;AAChB,QAAG,KAAK,EAAC;AACL,YAAM,GAAG,IAAI,IAAI,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,GAAG,KAAK,GAAG,OAAO,CAAC,CAAC;AAC5D,YAAM,GAAG,YAAY,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;KAChD;AACD,YAAQ,CAAC,MAAM,GAAG,IAAI,GAAG,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC;GACzD,CAAC;;AAEF,QAAM,CAAC,IAAI,GAAG,UAAS,IAAI,EAAC;AACxB,QAAI,WAAW,GAAG,EAAE,EAChB,MAAM,GAAG,IAAI,GAAG,GAAG,CAAC;AACxB,QAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAC;AAC1B,UAAI,MAAM,GAAG,QAAQ,CAAC,MAAM,EACxB,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AACpC,UAAG,MAAM,KAAK,CAAC,CAAC,EAAC;AACb,cAAM,IAAI,MAAM,CAAC,MAAM,CAAC;AACxB,YAAI,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AACtC,YAAG,GAAG,KAAK,CAAC,CAAC,EAAC;AACV,aAAG,GAAG,MAAM,CAAC,MAAM,CAAC;SACvB;AACD,mBAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;OACzD;KACJ;AACD,WAAO,WAAW,CAAC;GACtB,CAAC;;AAEF,QAAM,CAAC,MAAM,GAAG,UAAS,IAAI,EAAC;AAC1B,QAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;GAC5B,CAAC;;AAEF,QAAM,CAAC,YAAY,GAAG,UAAS,IAAI,EAAE,SAAS,EAAC;AAC3C,QAAG,CAAC,SAAS,EAAC;AACV,eAAS,GAAG,GAAG,CAAC;KACnB;;AAED,QAAI,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;;AAE1B,QAAI,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AAC/B,WAAO,GAAG,CAAC;GACd,CAAC;;AAEF,QAAM,CAAC,eAAe,GAAG,UAAS,IAAI,EAAE,KAAK,EAAE,SAAS,EAAC;AACrD,QAAG,CAAC,SAAS,EAAC;AACV,eAAS,GAAG,GAAG,CAAC;KACnB;;AAED,QAAI,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AAC7C,WAAO,GAAG,CAAC,KAAK,CAAC,CAAC;GACrB,CAAC;;AAEF,SAAO,CAAC,MAAM,GAAG,MAAM,CAAC","file":"src-es6/cookie.js","sourcesContent":["/**\r\n * Cookie utilities\r\n */\r\n\r\nvar Cookie = {};\r\n\r\nCookie.write = function(name, value, hours){\r\n var expire = '';\r\n if(hours){\r\n expire = new Date((new Date()).getTime() + hours * 3600000);\r\n expire = '; expires=' + expire.toGMTString();\r\n }\r\n document.cookie = name + '=' + escape(value) + expire;\r\n};\r\n\r\nCookie.read = function(name){\r\n var cookieValue = '',\r\n search = name + '=';\r\n if(document.cookie.length > 0){\r\n var cookie = document.cookie,\r\n offset = cookie.indexOf(search);\r\n if(offset !== -1){\r\n offset += search.length;\r\n var end = cookie.indexOf(';', offset);\r\n if(end === -1){\r\n end = cookie.length;\r\n }\r\n cookieValue = unescape(cookie.substring(offset, end));\r\n }\r\n }\r\n return cookieValue;\r\n};\r\n\r\nCookie.remove = function(name){\r\n this.write(name, '', -1);\r\n};\r\n\r\nCookie.valueToArray = function(name, separator){\r\n if(!separator){\r\n separator = ',';\r\n }\r\n //reads the cookie\r\n var val = this.read(name);\r\n //creates an array with filters' values\r\n var arr = val.split(separator);\r\n return arr;\r\n};\r\n\r\nCookie.getValueByIndex = function(name, index, separator){\r\n if(!separator){\r\n separator = ',';\r\n }\r\n //reads the cookie\r\n var val = this.valueToArray(name, separator);\r\n return val[index];\r\n};\r\n\r\nexports.Cookie = Cookie;\r\n"]}

File diff suppressed because it is too large Load diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

4
src/end.frag Normal file
View file

@ -0,0 +1,4 @@
return require('core');
});

View file

@ -1 +1 @@
{"version":3,"sources":["src-es6/event.js"],"names":[],"mappings":";;;;;;;AAIA,MAAI,KAAK,GAAG;AACR,OAAG,EAAE,UAAS,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAC;AACnC,UAAG,GAAG,CAAC,gBAAgB,EAAC;AACpB,WAAG,CAAC,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;OAC7C,MACI,IAAG,GAAG,CAAC,WAAW,EAAC;AACpB,WAAG,CAAC,WAAW,CAAC,IAAI,GAAC,IAAI,EAAE,IAAI,CAAC,CAAC;OACpC,MAAM;AACH,WAAG,CAAC,IAAI,GAAC,IAAI,CAAC,GAAG,IAAI,CAAC;OACzB;KACJ;AACD,UAAM,EAAE,UAAS,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAC;AACtC,UAAG,GAAG,CAAC,WAAW,EAAC;AACf,WAAG,CAAC,WAAW,CAAC,IAAI,GAAC,IAAI,EAAC,IAAI,CAAC,CAAC;OACnC,MACI,IAAG,GAAG,CAAC,mBAAmB,EAAC;AAC5B,WAAG,CAAC,mBAAmB,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;OAChD,MAAM;AACH,WAAG,CAAC,IAAI,GAAC,IAAI,CAAC,GAAG,IAAI,CAAC;OACzB;KACJ;AACD,QAAI,EAAE,UAAS,GAAG,EAAC;AACf,UAAG,CAAC,GAAG,EAAC;AACJ,WAAG,GAAG,MAAM,CAAC,KAAK,CAAC;OACtB;AACD,UAAG,GAAG,CAAC,eAAe,EAAC;AACnB,WAAG,CAAC,eAAe,EAAE,CAAC;OACzB,MAAM;AACH,WAAG,CAAC,YAAY,GAAG,IAAI,CAAC;OAC3B;KACJ;AACD,UAAM,EAAE,UAAS,GAAG,EAAC;AACjB,UAAG,CAAC,GAAG,EAAC;AACJ,WAAG,GAAG,MAAM,CAAC,KAAK,CAAC;OACtB;AACD,UAAG,GAAG,CAAC,cAAc,EAAE;AACnB,WAAG,CAAC,cAAc,EAAE,CAAC;OACxB,MAAM;AACH,WAAG,CAAC,WAAW,GAAG,KAAK,CAAC;OAC3B;KACJ;GACJ,CAAC;;AAEF,SAAO,CAAC,KAAK,GAAG,KAAK,CAAC","file":"src-es6/event.js","sourcesContent":["/**\n * DOM event utilities\n */\n\nvar Event = {\n add: function(obj, type, func, capture){\n if(obj.addEventListener){\n obj.addEventListener(type, func, capture);\n }\n else if(obj.attachEvent){\n obj.attachEvent('on'+type, func);\n } else {\n obj['on'+type] = func;\n }\n },\n remove: function(obj, type, func, capture){\n if(obj.detachEvent){\n obj.detachEvent('on'+type,func);\n }\n else if(obj.removeEventListener){\n obj.removeEventListener(type, func, capture);\n } else {\n obj['on'+type] = null;\n }\n },\n stop: function(evt){\n if(!evt){\n evt = window.event;\n }\n if(evt.stopPropagation){\n evt.stopPropagation();\n } else {\n evt.cancelBubble = true;\n }\n },\n cancel: function(evt){\n if(!evt){\n evt = window.event;\n }\n if(evt.preventDefault) {\n evt.preventDefault();\n } else {\n evt.returnValue = false;\n }\n }\n};\n\nexports.Event = Event;\n"]} {"version":3,"sources":["src-es6/event.js"],"names":[],"mappings":";;;;;;;AAIA,MAAI,KAAK,GAAG;AACR,OAAG,EAAE,UAAS,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAC;AACnC,UAAG,GAAG,CAAC,gBAAgB,EAAC;AACpB,WAAG,CAAC,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;OAC7C,MACI,IAAG,GAAG,CAAC,WAAW,EAAC;AACpB,WAAG,CAAC,WAAW,CAAC,IAAI,GAAC,IAAI,EAAE,IAAI,CAAC,CAAC;OACpC,MAAM;AACH,WAAG,CAAC,IAAI,GAAC,IAAI,CAAC,GAAG,IAAI,CAAC;OACzB;KACJ;AACD,UAAM,EAAE,UAAS,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAC;AACtC,UAAG,GAAG,CAAC,WAAW,EAAC;AACf,WAAG,CAAC,WAAW,CAAC,IAAI,GAAC,IAAI,EAAC,IAAI,CAAC,CAAC;OACnC,MACI,IAAG,GAAG,CAAC,mBAAmB,EAAC;AAC5B,WAAG,CAAC,mBAAmB,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;OAChD,MAAM;AACH,WAAG,CAAC,IAAI,GAAC,IAAI,CAAC,GAAG,IAAI,CAAC;OACzB;KACJ;AACD,QAAI,EAAE,UAAS,GAAG,EAAC;AACf,UAAG,CAAC,GAAG,EAAC;AACJ,WAAG,GAAG,MAAM,CAAC,KAAK,CAAC;OACtB;AACD,UAAG,GAAG,CAAC,eAAe,EAAC;AACnB,WAAG,CAAC,eAAe,EAAE,CAAC;OACzB,MAAM;AACH,WAAG,CAAC,YAAY,GAAG,IAAI,CAAC;OAC3B;KACJ;AACD,UAAM,EAAE,UAAS,GAAG,EAAC;AACjB,UAAG,CAAC,GAAG,EAAC;AACJ,WAAG,GAAG,MAAM,CAAC,KAAK,CAAC;OACtB;AACD,UAAG,GAAG,CAAC,cAAc,EAAE;AACnB,WAAG,CAAC,cAAc,EAAE,CAAC;OACxB,MAAM;AACH,WAAG,CAAC,WAAW,GAAG,KAAK,CAAC;OAC3B;KACJ;GACJ,CAAC;;AAEF,SAAO,CAAC,KAAK,GAAG,KAAK,CAAC","file":"src-es6/event.js","sourcesContent":["/**\r\n * DOM event utilities\r\n */\r\n\r\nvar Event = {\r\n add: function(obj, type, func, capture){\r\n if(obj.addEventListener){\r\n obj.addEventListener(type, func, capture);\r\n }\r\n else if(obj.attachEvent){\r\n obj.attachEvent('on'+type, func);\r\n } else {\r\n obj['on'+type] = func;\r\n }\r\n },\r\n remove: function(obj, type, func, capture){\r\n if(obj.detachEvent){\r\n obj.detachEvent('on'+type,func);\r\n }\r\n else if(obj.removeEventListener){\r\n obj.removeEventListener(type, func, capture);\r\n } else {\r\n obj['on'+type] = null;\r\n }\r\n },\r\n stop: function(evt){\r\n if(!evt){\r\n evt = window.event;\r\n }\r\n if(evt.stopPropagation){\r\n evt.stopPropagation();\r\n } else {\r\n evt.cancelBubble = true;\r\n }\r\n },\r\n cancel: function(evt){\r\n if(!evt){\r\n evt = window.event;\r\n }\r\n if(evt.preventDefault) {\r\n evt.preventDefault();\r\n } else {\r\n evt.returnValue = false;\r\n }\r\n }\r\n};\r\n\r\nexports.Event = Event;\r\n"]}

View file

@ -1 +1 @@
{"version":3,"sources":["src-es6/helpers.js"],"names":[],"mappings":";;;;;;;AAIA,MAAI,OAAO,GAAG;AACV,QAAI,EAAE,YAAU;AACZ,aAAO,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;KAClD;GACJ,CAAC;;AAEF,SAAO,CAAC,OAAO,GAAG,OAAO,CAAC","file":"src-es6/helpers.js","sourcesContent":["/**\n * Misc helpers\n */\n\nvar Helpers = {\n isIE: function(){\n return (/msie|MSIE/).test(navigator.userAgent);\n }\n};\n\nexports.Helpers = Helpers;\n"]} {"version":3,"sources":["src-es6/helpers.js"],"names":[],"mappings":";;;;;;;AAIA,MAAI,OAAO,GAAG;AACV,QAAI,EAAE,YAAU;AACZ,aAAO,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;KAClD;GACJ,CAAC;;AAEF,SAAO,CAAC,OAAO,GAAG,OAAO,CAAC","file":"src-es6/helpers.js","sourcesContent":["/**\r\n * Misc helpers\r\n */\r\n\r\nvar Helpers = {\r\n isIE: function(){\r\n return (/msie|MSIE/).test(navigator.userAgent);\r\n }\r\n};\r\n\r\nexports.Helpers = Helpers;\r\n"]}

View file

@ -77,8 +77,8 @@
loader: false, loader: false,
rows_counter: true, rows_counter: true,
enable_default_theme: true, enable_default_theme: true,
// paging: true, paging: true,
// paging_length: 2, paging_length: 2,
// results_per_page: ['Results per page', [2,4,6]], // results_per_page: ['Results per page', [2,4,6]],
// remember_grid_values: true, // remember_grid_values: true,
// remember_page_number: true, // remember_page_number: true,

View file

@ -1,15 +1,14 @@
define(["exports", "../dom"], function (exports, _dom) { define(["exports", "../dom"], function (exports, _dom) {
"use strict"; "use strict";
var _classProps = function (child, staticProps, instanceProps) {
if (staticProps) Object.defineProperties(child, staticProps);
if (instanceProps) Object.defineProperties(child.prototype, instanceProps);
};
var Dom = _dom.Dom; var Dom = _dom.Dom;
var AlternateRows = (function () { var AlternateRows = (function () {
var AlternateRows = var AlternateRows = function AlternateRows(tf) {
/**
* Alternating rows color
* @param {Object} tf TableFilter instance
*/
function AlternateRows(tf) {
var f = tf.fObj; var f = tf.fObj;
//defines css class for even rows //defines css class for even rows
this.evenCss = f.even_row_css_class || "even"; this.evenCss = f.even_row_css_class || "even";
@ -19,63 +18,78 @@ define(["exports", "../dom"], function (exports, _dom) {
this.tf = tf; this.tf = tf;
}; };
AlternateRows.prototype.init = function () { _classProps(AlternateRows, null, {
if (!this.tf.hasGrid && !this.tf.isFirstLoad) { init: {
return; writable: true,
} value: function () {
var rows = this.tf.tbl.rows; if (!this.tf.hasGrid && !this.tf.isFirstLoad) {
var noValidRowsIndex = this.tf.validRowsIndex === null; return;
//1st index }
var beginIndex = noValidRowsIndex ? this.tf.refRow : 0; var rows = this.tf.tbl.rows;
// nb indexes var noValidRowsIndex = this.tf.validRowsIndex === null;
var indexLen = noValidRowsIndex ? this.tf.nbFilterableRows + beginIndex : this.tf.validRowsIndex.length; //1st index
var idx = 0; var beginIndex = noValidRowsIndex ? this.tf.refRow : 0;
// nb indexes
var indexLen = noValidRowsIndex ? this.tf.nbFilterableRows + beginIndex : this.tf.validRowsIndex.length;
var idx = 0;
//alternates bg color //alternates bg color
for (var j = beginIndex; j < indexLen; j++) { for (var j = beginIndex; j < indexLen; j++) {
var rowIdx = noValidRowsIndex ? j : this.tf.validRowsIndex[j]; var rowIdx = noValidRowsIndex ? j : this.tf.validRowsIndex[j];
this.setRowBg(rowIdx, idx); this.setRowBg(rowIdx, idx);
idx++; idx++;
}
}
},
setRowBg: {
writable: true,
value: function (rowIdx, idx) {
if (!this.tf.alternateBgs || isNaN(rowIdx)) {
return;
}
var rows = this.tf.tbl.rows;
var i = !idx ? rowIdx : idx;
this.removeRowBg(rowIdx);
Dom.addClass(rows[rowIdx], (i % 2) ? this.evenCss : this.oddCss);
}
},
removeRowBg: {
writable: true,
value: function (idx) {
if (isNaN(idx)) {
return;
}
var rows = this.tf.tbl.rows;
Dom.removeClass(rows[idx], this.oddCss);
Dom.removeClass(rows[idx], this.evenCss);
}
},
remove: {
writable: true,
value: function () {
if (!this.tf.hasGrid) {
return;
}
var row = this.tf.tbl.rows;
for (var i = this.tf.refRow; i < this.tf.nbRows; i++) {
this.removeRowBg(i);
}
this.tf.isStartBgAlternate = true;
}
},
enable: {
writable: true,
value: function () {
this.tf.alternateBgs = true;
}
},
disable: {
writable: true,
value: function () {
this.tf.alternateBgs = false;
}
} }
}; });
AlternateRows.prototype.setRowBg = function (rowIdx, idx) {
if (!this.tf.alternateBgs || isNaN(rowIdx)) {
return;
}
var rows = this.tf.tbl.rows;
var i = !idx ? rowIdx : idx;
this.removeRowBg(rowIdx);
Dom.addClass(rows[rowIdx], (i % 2) ? this.evenCss : this.oddCss);
};
AlternateRows.prototype.removeRowBg = function (idx) {
if (isNaN(idx)) {
return;
}
var rows = this.tf.tbl.rows;
Dom.removeClass(rows[idx], this.oddCss);
Dom.removeClass(rows[idx], this.evenCss);
};
AlternateRows.prototype.remove = function () {
if (!this.tf.hasGrid) {
return;
}
var row = this.tf.tbl.rows;
for (var i = this.tf.refRow; i < this.tf.nbRows; i++) {
this.removeRowBg(i);
}
this.tf.isStartBgAlternate = true;
};
AlternateRows.prototype.enable = function () {
this.tf.alternateBgs = true;
};
AlternateRows.prototype.disable = function () {
this.tf.alternateBgs = false;
};
return AlternateRows; return AlternateRows;
})(); })();

View file

@ -1 +1 @@
{"version":3,"sources":["src-es6/modules/alternateRows.js"],"names":[],"mappings":";;;MAAQ,GAAG,QAAH,GAAG;MAEE,aAAa;QAAb,aAAa;;;;;;AAMX,aANF,aAAa,CAMV,EAAE,EAAE;AACZ,UAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;;AAEhB,UAAI,CAAC,OAAO,GAAG,CAAC,CAAC,kBAAkB,IAAI,MAAM,CAAC;;AAE9C,UAAI,CAAC,MAAM,GAAG,CAAC,CAAC,iBAAiB,IAAI,KAAK,CAAC;;AAE3C,UAAI,CAAC,EAAE,GAAG,EAAE,CAAC;KAChB;;AAdQ,iBAAa,WAmBtB,IAAI,GAAA,YAAG;AACH,UAAG,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW;AACvC,eAAO;OACV;AACD,UAAI,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC;AAC5B,UAAI,gBAAgB,GAAG,IAAI,CAAC,EAAE,CAAC,cAAc;;AAE7C,UAAI,UAAU,GAAG,gBAAgB,GAAG,IAAI,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;;AAEvD,UAAI,QAAQ,GAAG,gBAAgB,GACvB,IAAI,CAAC,EAAE,CAAC,gBAAgB,GAAC,UAAU,GACnC,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC;AACtC,UAAI,GAAG,GAAG,CAAC,CAAC;;;AAGZ,WAAI,IAAI,CAAC,GAAC,UAAU,EAAE,CAAC,GAAC,QAAQ,EAAE,CAAC,EAAE,EAAC;AAClC,YAAI,MAAM,GAAG,gBAAgB,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;AAC9D,YAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAC3B,WAAG,EAAE,CAAC;OACT;KACJ;;AAvCQ,iBAAa,WA+CtB,QAAQ,GAAA,UAAC,MAAM,EAAE,GAAG,EAAE;AAClB,UAAG,CAAC,IAAI,CAAC,EAAE,CAAC,YAAY,IAAI,KAAK,CAAC,MAAM,CAAC,EAAC;AACtC,eAAO;OACV;AACD,UAAI,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC;AAC5B,UAAI,CAAC,GAAG,CAAC,GAAG,GAAG,MAAM,GAAG,GAAG,CAAC;AAC5B,UAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;AACzB,SAAG,CAAC,QAAQ,CACR,IAAI,CAAC,MAAM,CAAC,EACZ,CAAC,CAAC,GAAC,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CACrC,CAAC;KACL;;AA1DQ,iBAAa,WAgEtB,WAAW,GAAA,UAAC,GAAG,EAAE;AACb,UAAG,KAAK,CAAC,GAAG,CAAC,EAAC;AACV,eAAO;OACV;AACD,UAAI,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC;AAC5B,SAAG,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;AACxC,SAAG,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;KAC5C;;AAvEQ,iBAAa,WA4EtB,MAAM,GAAA,YAAG;AACL,UAAG,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAC;AAChB,eAAO;OACV;AACD,UAAI,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC;AAC3B,WAAI,IAAI,CAAC,GAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,GAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAC;AAC5C,YAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;OACvB;AACD,UAAI,CAAC,EAAE,CAAC,kBAAkB,GAAG,IAAI,CAAC;KACrC;;AArFQ,iBAAa,WAuFtB,MAAM,GAAA,YAAG;AACL,UAAI,CAAC,EAAE,CAAC,YAAY,GAAG,IAAI,CAAC;KAC/B;;AAzFQ,iBAAa,WA2FtB,OAAO,GAAA,YAAG;AACN,UAAI,CAAC,EAAE,CAAC,YAAY,GAAG,KAAK,CAAC;KAChC;;WA7FQ,aAAa;;;UAAb,aAAa,GAAb,aAAa","file":"src-es6/modules/alternateRows.js","sourcesContent":["import {Dom} from '../dom';\n\nexport class AlternateRows{\n\n /**\n * Alternating rows color\n * @param {Object} tf TableFilter instance\n */\n constructor(tf) {\n var f = tf.fObj;\n //defines css class for even rows\n this.evenCss = f.even_row_css_class || 'even';\n //defines css class for odd rows\n this.oddCss = f.odd_row_css_class || 'odd';\n\n this.tf = tf;\n }\n\n /**\n * Sets alternating rows color\n */\n init() {\n if(!this.tf.hasGrid && !this.tf.isFirstLoad){\n return;\n }\n var rows = this.tf.tbl.rows;\n var noValidRowsIndex = this.tf.validRowsIndex===null;\n //1st index\n var beginIndex = noValidRowsIndex ? this.tf.refRow : 0;\n // nb indexes\n var indexLen = noValidRowsIndex ?\n this.tf.nbFilterableRows+beginIndex :\n this.tf.validRowsIndex.length;\n var idx = 0;\n\n //alternates bg color\n for(var j=beginIndex; j<indexLen; j++){\n var rowIdx = noValidRowsIndex ? j : this.tf.validRowsIndex[j];\n this.setRowBg(rowIdx, idx);\n idx++;\n }\n }\n\n /**\n * Sets row background color\n * @param {Number} rowIdx Row index\n * @param {Number} idx Valid rows collection index needed to calculate bg\n * color\n */\n setRowBg(rowIdx, idx) {\n if(!this.tf.alternateBgs || isNaN(rowIdx)){\n return;\n }\n var rows = this.tf.tbl.rows;\n var i = !idx ? rowIdx : idx;\n this.removeRowBg(rowIdx);\n Dom.addClass(\n rows[rowIdx],\n (i%2) ? this.evenCss : this.oddCss\n );\n }\n\n /**\n * Removes row background color\n * @param {Number} idx Row index\n */\n removeRowBg(idx) {\n if(isNaN(idx)){\n return;\n }\n var rows = this.tf.tbl.rows;\n Dom.removeClass(rows[idx], this.oddCss);\n Dom.removeClass(rows[idx], this.evenCss);\n }\n\n /**\n * Removes all row background color\n */\n remove() {\n if(!this.tf.hasGrid){\n return;\n }\n var row = this.tf.tbl.rows;\n for(var i=this.tf.refRow; i<this.tf.nbRows; i++){\n this.removeRowBg(i);\n }\n this.tf.isStartBgAlternate = true;\n }\n\n enable() {\n this.tf.alternateBgs = true;\n }\n\n disable() {\n this.tf.alternateBgs = false;\n }\n\n}\n\n"]} {"version":3,"sources":["src-es6/modules/alternateRows.js"],"names":[],"mappings":";;;;;;;;MAAQ,GAAG,QAAH,GAAG;MAEE,aAAa;QAAb,aAAa,GAMX,SANF,aAAa,CAMV,EAAE,EAAE;AACZ,UAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;;AAEhB,UAAI,CAAC,OAAO,GAAG,CAAC,CAAC,kBAAkB,IAAI,MAAM,CAAC;;AAE9C,UAAI,CAAC,MAAM,GAAG,CAAC,CAAC,iBAAiB,IAAI,KAAK,CAAC;;AAE3C,UAAI,CAAC,EAAE,GAAG,EAAE,CAAC;KAChB;;gBAdQ,aAAa;AAmBtB,UAAI;;eAAA,YAAG;AACH,cAAG,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,EAAC;AACxC,mBAAO;WACV;AACD,cAAI,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC;AAC5B,cAAI,gBAAgB,GAAG,IAAI,CAAC,EAAE,CAAC,cAAc,KAAG,IAAI,CAAC;;AAErD,cAAI,UAAU,GAAG,gBAAgB,GAAG,IAAI,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;;AAEvD,cAAI,QAAQ,GAAG,gBAAgB,GACvB,IAAI,CAAC,EAAE,CAAC,gBAAgB,GAAC,UAAU,GACnC,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC;AACtC,cAAI,GAAG,GAAG,CAAC,CAAC;;;AAGZ,eAAI,IAAI,CAAC,GAAC,UAAU,EAAE,CAAC,GAAC,QAAQ,EAAE,CAAC,EAAE,EAAC;AAClC;AACA;AACA;WACH;SACJ;;AAQD,cAAQ;;eAAA,UAAC,MAAM,EAAE,GAAG,EAAE;AAClB,cAAG,CAAC,IAAI,CAAC,EAAE,CAAC,YAAY,IAAI,KAAK,CAAC,MAAM,CAAC,EAAC;AACtC,mBAAO;WACV;AACD,cAAI,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC;AAC5B,cAAI,CAAC,GAAG,CAAC,GAAG,GAAG,MAAM,GAAG,GAAG,CAAC;AAC5B,cAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;AACzB,aAAG,CAAC,QAAQ,CACR,IAAI,CAAC,MAAM,CAAC,EACZ,CAAC,CAAC,GAAC,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CACrC,CAAC;SACL;;AAMD,iBAAW;;eAAA,UAAC,GAAG,EAAE;AACb,cAAG,KAAK,CAAC,GAAG,CAAC,EAAC;AACV,mBAAO;WACV;AACD,cAAI,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC;AAC5B,aAAG,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;AACxC,aAAG,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;SAC5C;;AAKD,YAAM;;eAAA,YAAG;AACL,cAAG,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAC;AAChB,mBAAO;WACV;AACD,cAAI,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC;AAC3B,eAAI,IAAI,CAAC,GAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,GAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAC;AAC5C,gBAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;WACvB;AACD,cAAI,CAAC,EAAE,CAAC,kBAAkB,GAAG,IAAI,CAAC;SACrC;;AAED,YAAM;;eAAA,YAAG;AACL,cAAI,CAAC,EAAE,CAAC,YAAY,GAAG,IAAI,CAAC;SAC/B;;AAED,aAAO;;eAAA,YAAG;AACN,cAAI,CAAC,EAAE,CAAC,YAAY,GAAG,KAAK,CAAC;SAChC;;;;WA7FQ,aAAa;;;UAAb,aAAa,GAAb,aAAa","file":"src-es6/modules/alternateRows.js","sourcesContent":["import {Dom} from '../dom';\r\n\r\nexport class AlternateRows{\r\n\r\n /**\r\n * Alternating rows color\r\n * @param {Object} tf TableFilter instance\r\n */\r\n constructor(tf) {\r\n var f = tf.fObj;\r\n //defines css class for even rows\r\n this.evenCss = f.even_row_css_class || 'even';\r\n //defines css class for odd rows\r\n this.oddCss = f.odd_row_css_class || 'odd';\r\n\r\n this.tf = tf;\r\n }\r\n\r\n /**\r\n * Sets alternating rows color\r\n */\r\n init() {\r\n if(!this.tf.hasGrid && !this.tf.isFirstLoad){\r\n return;\r\n }\r\n var rows = this.tf.tbl.rows;\r\n var noValidRowsIndex = this.tf.validRowsIndex===null;\r\n //1st index\r\n var beginIndex = noValidRowsIndex ? this.tf.refRow : 0;\r\n // nb indexes\r\n var indexLen = noValidRowsIndex ?\r\n this.tf.nbFilterableRows+beginIndex :\r\n this.tf.validRowsIndex.length;\r\n var idx = 0;\r\n\r\n //alternates bg color\r\n for(var j=beginIndex; j<indexLen; j++){\r\n var rowIdx = noValidRowsIndex ? j : this.tf.validRowsIndex[j];\r\n this.setRowBg(rowIdx, idx);\r\n idx++;\r\n }\r\n }\r\n\r\n /**\r\n * Sets row background color\r\n * @param {Number} rowIdx Row index\r\n * @param {Number} idx Valid rows collection index needed to calculate bg\r\n * color\r\n */\r\n setRowBg(rowIdx, idx) {\r\n if(!this.tf.alternateBgs || isNaN(rowIdx)){\r\n return;\r\n }\r\n var rows = this.tf.tbl.rows;\r\n var i = !idx ? rowIdx : idx;\r\n this.removeRowBg(rowIdx);\r\n Dom.addClass(\r\n rows[rowIdx],\r\n (i%2) ? this.evenCss : this.oddCss\r\n );\r\n }\r\n\r\n /**\r\n * Removes row background color\r\n * @param {Number} idx Row index\r\n */\r\n removeRowBg(idx) {\r\n if(isNaN(idx)){\r\n return;\r\n }\r\n var rows = this.tf.tbl.rows;\r\n Dom.removeClass(rows[idx], this.oddCss);\r\n Dom.removeClass(rows[idx], this.evenCss);\r\n }\r\n\r\n /**\r\n * Removes all row background color\r\n */\r\n remove() {\r\n if(!this.tf.hasGrid){\r\n return;\r\n }\r\n var row = this.tf.tbl.rows;\r\n for(var i=this.tf.refRow; i<this.tf.nbRows; i++){\r\n this.removeRowBg(i);\r\n }\r\n this.tf.isStartBgAlternate = true;\r\n }\r\n\r\n enable() {\r\n this.tf.alternateBgs = true;\r\n }\r\n\r\n disable() {\r\n this.tf.alternateBgs = false;\r\n }\r\n\r\n}\r\n\r\n"]}

View file

@ -1,242 +1,246 @@
define(["exports", "../dom", "../string"], function (exports, _dom, _string) { define(["exports", "../dom", "../string"], function (exports, _dom, _string) {
"use strict"; "use strict";
var _classProps = function (child, staticProps, instanceProps) {
if (staticProps) Object.defineProperties(child, staticProps);
if (instanceProps) Object.defineProperties(child.prototype, instanceProps);
};
var Dom = _dom.Dom; var Dom = _dom.Dom;
var Str = _string.Str; var Str = _string.Str;
var ColOps = (function () { var ColOps = (function () {
var ColOps = var ColOps = function ColOps(tf) {
/**
* Column calculations
* @param {Object} tf TableFilter instance
*/
function ColOps(tf) {
var f = tf.fObj; var f = tf.fObj;
this.colOperation = f.col_operation; this.colOperation = f.col_operation;
this.tf = tf; this.tf = tf;
}; };
ColOps.prototype.calc = function () { _classProps(ColOps, null, {
if (!this.tf.isFirstLoad && !this.tf.hasGrid) { calc: {
return; writable: true,
} value: function () {
if (!this.tf.isFirstLoad && !this.tf.hasGrid) {
if (this.tf.onBeforeOperation) { return;
this.tf.onBeforeOperation.call(null, this.tf);
}
var colOperation = this.colOperation, labelId = colOperation.id, colIndex = colOperation.col, operation = colOperation.operation, outputType = colOperation.write_method, totRowIndex = colOperation.tot_row_index, excludeRow = colOperation.exclude_row, decimalPrecision = colOperation.decimal_precision !== undefined ? colOperation.decimal_precision : 2;
//nuovella: determine unique list of columns to operate on
var ucolIndex = [], ucolMax = 0;
ucolIndex[ucolMax] = colIndex[0];
for (var ii = 1; ii < colIndex.length; ii++) {
var saved = 0;
//see if colIndex[ii] is already in the list of unique indexes
for (var jj = 0; jj <= ucolMax; jj++) {
if (ucolIndex[jj] === colIndex[ii]) {
saved = 1;
} }
}
//if not saved then, save the index;
if (saved === 0) {
ucolMax++;
ucolIndex[ucolMax] = colIndex[ii];
}
}
if (Str.lower(typeof labelId) == "object" && Str.lower(typeof colIndex) == "object" && Str.lower(typeof operation) == "object") { if (this.tf.onBeforeOperation) {
var row = this.tf.tbl.rows, colvalues = []; this.tf.onBeforeOperation.call(null, this.tf);
}
for (var ucol = 0; ucol <= ucolMax; ucol++) { var colOperation = this.colOperation, labelId = colOperation.id, colIndex = colOperation.col, operation = colOperation.operation, outputType = colOperation.write_method, totRowIndex = colOperation.tot_row_index, excludeRow = colOperation.exclude_row, decimalPrecision = colOperation.decimal_precision !== undefined ? colOperation.decimal_precision : 2;
//this retrieves col values
//use ucolIndex because we only want to pass through this loop
//once for each column get the values in this unique column
colvalues.push(this.tf.GetColValues(ucolIndex[ucol], true, excludeRow));
//next: calculate all operations for this column //nuovella: determine unique list of columns to operate on
var result, nbvalues = 0, temp, meanValue = 0, sumValue = 0, minValue = null, maxValue = null, q1Value = null, medValue = null, q3Value = null, meanFlag = 0, sumFlag = 0, minFlag = 0, maxFlag = 0, q1Flag = 0, medFlag = 0, q3Flag = 0, theList = [], opsThisCol = [], decThisCol = [], labThisCol = [], oTypeThisCol = [], mThisCol = -1; var ucolIndex = [], ucolMax = 0;
ucolIndex[ucolMax] = colIndex[0];
for (var k = 0; k < colIndex.length; k++) { for (var ii = 1; ii < colIndex.length; ii++) {
if (colIndex[k] === ucolIndex[ucol]) { var saved = 0;
mThisCol++; //see if colIndex[ii] is already in the list of unique indexes
opsThisCol[mThisCol] = Str.lower(operation[k]); for (var jj = 0; jj <= ucolMax; jj++) {
decThisCol[mThisCol] = decimalPrecision[k]; if (ucolIndex[jj] === colIndex[ii]) {
labThisCol[mThisCol] = labelId[k]; saved = 1;
oTypeThisCol = outputType !== undefined && Str.lower(typeof outputType) === "object" ? outputType[k] : null;
switch (opsThisCol[mThisCol]) {
case "mean":
meanFlag = 1;
break;
case "sum":
sumFlag = 1;
break;
case "min":
minFlag = 1;
break;
case "max":
maxFlag = 1;
break;
case "median":
medFlag = 1;
break;
case "q1":
q1Flag = 1;
break;
case "q3":
q3Flag = 1;
break;
} }
} }
//if not saved then, save the index;
if (saved === 0) {
ucolMax++;
ucolIndex[ucolMax] = colIndex[ii];
}
} }
for (var j = 0; j < colvalues[ucol].length; j++) { if (Str.lower(typeof labelId) == "object" && Str.lower(typeof colIndex) == "object" && Str.lower(typeof operation) == "object") {
//sort the list for calculation of median and quartiles var row = this.tf.tbl.rows, colvalues = [];
if ((q1Flag == 1) || (q3Flag == 1) || (medFlag == 1)) {
if (j < colvalues[ucol].length - 1) { for (var ucol = 0; ucol <= ucolMax; ucol++) {
for (k = j + 1; k < colvalues[ucol].length; k++) { //this retrieves col values
if (eval(colvalues[ucol][k]) < eval(colvalues[ucol][j])) { //use ucolIndex because we only want to pass through this loop
temp = colvalues[ucol][j]; //once for each column get the values in this unique column
colvalues[ucol][j] = colvalues[ucol][k]; colvalues.push(this.tf.GetColValues(ucolIndex[ucol], true, excludeRow));
colvalues[ucol][k] = temp;
//next: calculate all operations for this column
var result, nbvalues = 0, temp, meanValue = 0, sumValue = 0, minValue = null, maxValue = null, q1Value = null, medValue = null, q3Value = null, meanFlag = 0, sumFlag = 0, minFlag = 0, maxFlag = 0, q1Flag = 0, medFlag = 0, q3Flag = 0, theList = [], opsThisCol = [], decThisCol = [], labThisCol = [], oTypeThisCol = [], mThisCol = -1;
for (var k = 0; k < colIndex.length; k++) {
if (colIndex[k] === ucolIndex[ucol]) {
mThisCol++;
opsThisCol[mThisCol] = Str.lower(operation[k]);
decThisCol[mThisCol] = decimalPrecision[k];
labThisCol[mThisCol] = labelId[k];
oTypeThisCol = outputType !== undefined && Str.lower(typeof outputType) === "object" ? outputType[k] : null;
switch (opsThisCol[mThisCol]) {
case "mean":
meanFlag = 1;
break;
case "sum":
sumFlag = 1;
break;
case "min":
minFlag = 1;
break;
case "max":
maxFlag = 1;
break;
case "median":
medFlag = 1;
break;
case "q1":
q1Flag = 1;
break;
case "q3":
q3Flag = 1;
break;
} }
} }
} }
}
var cvalue = parseFloat(colvalues[ucol][j]);
theList[j] = parseFloat(cvalue);
if (!isNaN(cvalue)) { for (var j = 0; j < colvalues[ucol].length; j++) {
nbvalues++; //sort the list for calculation of median and quartiles
if (sumFlag === 1 || meanFlag === 1) { if ((q1Flag == 1) || (q3Flag == 1) || (medFlag == 1)) {
sumValue += parseFloat(cvalue); if (j < colvalues[ucol].length - 1) {
for (k = j + 1; k < colvalues[ucol].length; k++) {
if (eval(colvalues[ucol][k]) < eval(colvalues[ucol][j])) {
temp = colvalues[ucol][j];
colvalues[ucol][j] = colvalues[ucol][k];
colvalues[ucol][k] = temp;
}
}
}
}
var cvalue = parseFloat(colvalues[ucol][j]);
theList[j] = parseFloat(cvalue);
if (!isNaN(cvalue)) {
nbvalues++;
if (sumFlag === 1 || meanFlag === 1) {
sumValue += parseFloat(cvalue);
}
if (minFlag === 1) {
if (minValue === null) {
minValue = parseFloat(cvalue);
} else {
minValue = parseFloat(cvalue) < minValue ? parseFloat(cvalue) : minValue;
}
}
if (maxFlag === 1) {
if (maxValue === null) {
maxValue = parseFloat(cvalue);
} else {
maxValue = parseFloat(cvalue) > maxValue ? parseFloat(cvalue) : maxValue;
}
}
}
} //for j
if (meanFlag === 1) {
meanValue = sumValue / nbvalues;
} }
if (minFlag === 1) { if (medFlag === 1) {
if (minValue === null) { var aux = 0;
minValue = parseFloat(cvalue); if (nbvalues % 2 === 1) {
aux = Math.floor(nbvalues / 2);
medValue = theList[aux];
} else { } else {
minValue = parseFloat(cvalue) < minValue ? parseFloat(cvalue) : minValue; medValue = (theList[nbvalues / 2] + theList[((nbvalues / 2) - 1)]) / 2;
} }
} }
if (maxFlag === 1) { var posa;
if (maxValue === null) { if (q1Flag === 1) {
maxValue = parseFloat(cvalue); posa = 0;
posa = Math.floor(nbvalues / 4);
if (4 * posa == nbvalues) {
q1Value = (theList[posa - 1] + theList[posa]) / 2;
} else { } else {
maxValue = parseFloat(cvalue) > maxValue ? parseFloat(cvalue) : maxValue; q1Value = theList[posa];
}
}
if (q3Flag === 1) {
posa = 0;
var posb = 0;
posa = Math.floor(nbvalues / 4);
if (4 * posa === nbvalues) {
posb = 3 * posa;
q3Value = (theList[posb] + theList[posb - 1]) / 2;
} else {
q3Value = theList[nbvalues - posa - 1];
} }
} }
}
} //for j
if (meanFlag === 1) {
meanValue = sumValue / nbvalues;
}
if (medFlag === 1) {
var aux = 0;
if (nbvalues % 2 === 1) {
aux = Math.floor(nbvalues / 2);
medValue = theList[aux];
} else {
medValue = (theList[nbvalues / 2] + theList[((nbvalues / 2) - 1)]) / 2;
}
}
var posa;
if (q1Flag === 1) {
posa = 0;
posa = Math.floor(nbvalues / 4);
if (4 * posa == nbvalues) {
q1Value = (theList[posa - 1] + theList[posa]) / 2;
} else {
q1Value = theList[posa];
}
}
if (q3Flag === 1) {
posa = 0;
var posb = 0;
posa = Math.floor(nbvalues / 4);
if (4 * posa === nbvalues) {
posb = 3 * posa;
q3Value = (theList[posb] + theList[posb - 1]) / 2;
} else {
q3Value = theList[nbvalues - posa - 1];
}
}
for (var i = 0; i <= mThisCol; i++) { for (var i = 0; i <= mThisCol; i++) {
switch (opsThisCol[i]) { switch (opsThisCol[i]) {
case "mean": case "mean":
result = meanValue; result = meanValue;
break; break;
case "sum": case "sum":
result = sumValue; result = sumValue;
break; break;
case "min": case "min":
result = minValue; result = minValue;
break; break;
case "max": case "max":
result = maxValue; result = maxValue;
break; break;
case "median": case "median":
result = medValue; result = medValue;
break; break;
case "q1": case "q1":
result = q1Value; result = q1Value;
break; break;
case "q3": case "q3":
result = q3Value; result = q3Value;
break; break;
} }
var precision = !isNaN(decThisCol[i]) ? decThisCol[i] : 2; var precision = !isNaN(decThisCol[i]) ? decThisCol[i] : 2;
//if outputType is defined //if outputType is defined
if (oTypeThisCol && result) { if (oTypeThisCol && result) {
result = result.toFixed(precision); result = result.toFixed(precision);
if (Dom.id(labThisCol[i])) { if (Dom.id(labThisCol[i])) {
switch (Str.lower(oTypeThisCol)) { switch (Str.lower(oTypeThisCol)) {
case "innerhtml": case "innerhtml":
if (isNaN(result) || !isFinite(result) || nbvalues === 0) {
Dom.id(labThisCol[i]).innerHTML = ".";
} else {
Dom.id(labThisCol[i]).innerHTML = result;
}
break;
case "setvalue":
Dom.id(labThisCol[i]).value = result;
break;
case "createtextnode":
var oldnode = Dom.id(labThisCol[i]).firstChild;
var txtnode = Dom.text(result);
Dom.id(labThisCol[i]).replaceChild(txtnode, oldnode);
break;
} //switch
}
} else {
try {
if (isNaN(result) || !isFinite(result) || nbvalues === 0) { if (isNaN(result) || !isFinite(result) || nbvalues === 0) {
Dom.id(labThisCol[i]).innerHTML = "."; Dom.id(labThisCol[i]).innerHTML = ".";
} else { } else {
Dom.id(labThisCol[i]).innerHTML = result; Dom.id(labThisCol[i]).innerHTML = result.toFixed(precision);
} }
break; } catch (e) {} //catch
case "setvalue": } //else
Dom.id(labThisCol[i]).value = result; } //for i
break;
case "createtextnode": // row(s) with result are always visible
var oldnode = Dom.id(labThisCol[i]).firstChild; var totRow = totRowIndex && totRowIndex[ucol] ? row[totRowIndex[ucol]] : null;
var txtnode = Dom.text(result); if (totRow) {
Dom.id(labThisCol[i]).replaceChild(txtnode, oldnode); totRow.style.display = "";
break;
} //switch
} }
} else { } //for ucol
try { } //if typeof
if (isNaN(result) || !isFinite(result) || nbvalues === 0) {
Dom.id(labThisCol[i]).innerHTML = ".";
} else {
Dom.id(labThisCol[i]).innerHTML = result.toFixed(precision);
}
} catch (e) {} //catch
} //else
} //for i
// row(s) with result are always visible if (this.tf.onAfterOperation) {
var totRow = totRowIndex && totRowIndex[ucol] ? row[totRowIndex[ucol]] : null; this.tf.onAfterOperation.call(null, this.tf);
if (totRow) {
totRow.style.display = "";
} }
} //for ucol }
} //if typeof
if (this.tf.onAfterOperation) {
this.tf.onAfterOperation.call(null, this.tf);
} }
}; });
return ColOps; return ColOps;
})(); })();

File diff suppressed because one or more lines are too long

View file

@ -1,18 +1,17 @@
define(["exports", "../dom", "../types", "../helpers", "../event"], function (exports, _dom, _types, _helpers, _event) { define(["exports", "../dom", "../types", "../helpers", "../event"], function (exports, _dom, _types, _helpers, _event) {
"use strict"; "use strict";
var _classProps = function (child, staticProps, instanceProps) {
if (staticProps) Object.defineProperties(child, staticProps);
if (instanceProps) Object.defineProperties(child.prototype, instanceProps);
};
var Dom = _dom.Dom; var Dom = _dom.Dom;
var Types = _types.Types; var Types = _types.Types;
var Helpers = _helpers.Helpers; var Helpers = _helpers.Helpers;
var Event = _event.Event; var Event = _event.Event;
var GridLayout = (function () { var GridLayout = (function () {
var GridLayout = var GridLayout = function GridLayout(tf) {
/**
* Grid layout, table with fixed headers
* @param {Object} tf TableFilter instance
*/
function GridLayout(tf) {
var f = tf.fObj; var f = tf.fObj;
//defines grid width //defines grid width
@ -45,338 +44,287 @@ define(["exports", "../dom", "../types", "../helpers", "../event"], function (ex
this.tf = tf; this.tf = tf;
}; };
GridLayout.prototype.init = function () { _classProps(GridLayout, null, {
var tf = this.tf; init: {
var f = tf.fObj; writable: true,
var tbl = tf.tbl; value: function () {
var tf = this.tf;
var f = tf.fObj;
var tbl = tf.tbl;
if (!tf.gridLayout) { if (!tf.gridLayout) {
return; return;
} }
tf.isExternalFlt = true; tf.isExternalFlt = true;
// default width of 100px if column widths not set // default width of 100px if column widths not set
if (!tf.hasColWidth) { if (!tf.hasColWidth) {
tf.colWidth = []; tf.colWidth = [];
for (var k = 0; k < tf.nbCells; k++) { for (var k = 0; k < tf.nbCells; k++) {
var colW, cell = tbl.rows[this.gridHeadRowIndex].cells[k]; var colW, cell = tbl.rows[this.gridHeadRowIndex].cells[k];
if (cell.width !== "") { if (cell.width !== "") {
colW = cell.width; colW = cell.width;
} else if (cell.style.width !== "") { } else if (cell.style.width !== "") {
colW = parseInt(cell.style.width, 10); colW = parseInt(cell.style.width, 10);
} else {
colW = this.gridDefaultColWidth;
}
tf.colWidth[k] = colW;
}
tf.hasColWidth = true;
}
tf.SetColWidths(this.gridHeadRowIndex);
var tblW; //initial table width
if (tbl.width !== "") {
tblW = tbl.width;
} else if (tbl.style.width !== "") {
tblW = parseInt(tbl.style.width, 10);
} else { } else {
colW = this.gridDefaultColWidth; tblW = tbl.clientWidth;
} }
tf.colWidth[k] = colW;
}
tf.hasColWidth = true;
}
tf.SetColWidths(this.gridHeadRowIndex);
var tblW; //initial table width //Main container: it will contain all the elements
if (tbl.width !== "") { this.tblMainCont = Dom.create("div", ["id", tf.prfxMainTblCont + tf.id]);
tblW = tbl.width; this.tblMainCont.className = this.gridMainContCssClass;
} else if (tbl.style.width !== "") { if (this.gridWidth) {
tblW = parseInt(tbl.style.width, 10); this.tblMainCont.style.width = this.gridWidth;
} else {
tblW = tbl.clientWidth;
}
//Main container: it will contain all the elements
this.tblMainCont = Dom.create("div", ["id", tf.prfxMainTblCont + tf.id]);
this.tblMainCont.className = this.gridMainContCssClass;
if (this.gridWidth) {
this.tblMainCont.style.width = this.gridWidth;
}
tbl.parentNode.insertBefore(this.tblMainCont, tbl);
//Table container: div wrapping content table
this.tblCont = Dom.create("div", ["id", tf.prfxTblCont + tf.id]);
this.tblCont.className = this.gridContCssClass;
if (this.gridWidth) {
this.tblCont.style.width = this.gridWidth;
}
if (this.gridHeight) {
this.tblCont.style.height = this.gridHeight;
}
tbl.parentNode.insertBefore(this.tblCont, tbl);
var t = tbl.parentNode.removeChild(tbl);
this.tblCont.appendChild(t);
//In case table width is expressed in %
if (tbl.style.width === "") {
tbl.style.width = (tf.__containsStr("%", tblW) ? tbl.clientWidth : tblW) + "px";
}
var d = this.tblCont.parentNode.removeChild(this.tblCont);
this.tblMainCont.appendChild(d);
//Headers table container: div wrapping headers table
this.headTblCont = Dom.create("div", ["id", tf.prfxHeadTblCont + tf.id]);
this.headTblCont.className = this.gridHeadContCssClass;
if (this.gridWidth) {
this.headTblCont.style.width = this.gridWidth;
}
//Headers table
this.headTbl = Dom.create("table", ["id", tf.prfxHeadTbl + tf.id]);
var tH = Dom.create("tHead"); //IE<7 needs it
//1st row should be headers row, ids are added if not set
//Those ids are used by the sort feature
var hRow = tbl.rows[this.gridHeadRowIndex];
var sortTriggers = [];
for (var n = 0; n < tf.nbCells; n++) {
var c = hRow.cells[n];
var thId = c.getAttribute("id");
if (!thId || thId === "") {
thId = tf.prfxGridTh + n + "_" + tf.id;
c.setAttribute("id", thId);
}
sortTriggers.push(thId);
}
//Filters row is created
var filtersRow = Dom.create("tr");
if (this.gridEnableFilters && tf.fltGrid) {
tf.externalFltTgtIds = [];
for (var j = 0; j < tf.nbCells; j++) {
var fltTdId = tf.prfxFlt + j + tf.prfxGridFltTd + tf.id;
var cl = Dom.create(tf.fltCellTag, ["id", fltTdId]);
filtersRow.appendChild(cl);
tf.externalFltTgtIds[j] = fltTdId;
}
}
//Headers row are moved from content table to headers table
for (var i = 0; i < this.gridHeadRows.length; i++) {
var headRow = tbl.rows[this.gridHeadRows[0]];
tH.appendChild(headRow);
}
this.headTbl.appendChild(tH);
if (tf.filtersRowIndex === 0) {
tH.insertBefore(filtersRow, hRow);
} else {
tH.appendChild(filtersRow);
}
this.headTblCont.appendChild(this.headTbl);
this.tblCont.parentNode.insertBefore(this.headTblCont, this.tblCont);
//THead needs to be removed in content table for sort feature
var thead = Dom.tag(tbl, "thead");
if (thead.length > 0) {
tbl.removeChild(thead[0]);
}
//Headers table style
this.headTbl.style.width = tbl.style.width;
this.headTbl.style.tableLayout = "fixed";
tbl.style.tableLayout = "fixed";
this.headTbl.cellPadding = tbl.cellPadding;
this.headTbl.cellSpacing = tbl.cellSpacing;
//content table without headers needs col widths to be reset
tf.SetColWidths();
//Headers container width
this.headTblCont.style.width = this.tblCont.clientWidth + "px";
tbl.style.width = "";
// if(Helpers.isIE()){
// this.headTbl.style.width = '';
// }
//scroll synchronisation
var o = this;
Event.add(this.tblCont, "scroll", function (evt) {
//this = scroll element
var scrollLeft = this.scrollLeft;
o.headTblCont.scrollLeft = scrollLeft;
//New pointerX calc taking into account scrollLeft
if (!o.isPointerXOverwritten) {
try {
o.Evt.pointerX = function (evt) {
var e = evt || global.event;
var bdScrollLeft = tf_StandardBody().scrollLeft + scrollLeft;
return (e.pageX + scrollLeft) || (e.clientX + bdScrollLeft);
};
o.isPointerXOverwritten = true;
} catch (err) {
o.isPointerXOverwritten = false;
} }
} tbl.parentNode.insertBefore(this.tblMainCont, tbl);
});
//Sort is enabled if not specified in config object //Table container: div wrapping content table
if (f.sort !== false) { this.tblCont = Dom.create("div", ["id", tf.prfxTblCont + tf.id]);
tf.sort = true; this.tblCont.className = this.gridContCssClass;
tf.sortConfig.asyncSort = true; if (this.gridWidth) {
tf.sortConfig.triggerIds = sortTriggers; this.tblCont.style.width = this.gridWidth;
} }
if (this.gridHeight) {
this.tblCont.style.height = this.gridHeight;
}
tbl.parentNode.insertBefore(this.tblCont, tbl);
var t = tbl.parentNode.removeChild(tbl);
this.tblCont.appendChild(t);
if (this.gridEnableColResizer) { //In case table width is expressed in %
if (!tf.hasExtensions) { if (tbl.style.width === "") {
tf.extensions = { tbl.style.width = (tf.__containsStr("%", tblW) ? tbl.clientWidth : tblW) + "px";
name: ["ColumnsResizer_" + tf.id], }
src: [this.gridColResizerPath],
description: ["Columns Resizing"], var d = this.tblCont.parentNode.removeChild(this.tblCont);
initialize: [function (o) { this.tblMainCont.appendChild(d);
o.SetColsResizer("ColumnsResizer_" + o.id);
}] //Headers table container: div wrapping headers table
this.headTblCont = Dom.create("div", ["id", tf.prfxHeadTblCont + tf.id]);
this.headTblCont.className = this.gridHeadContCssClass;
if (this.gridWidth) {
this.headTblCont.style.width = this.gridWidth;
}
//Headers table
this.headTbl = Dom.create("table", ["id", tf.prfxHeadTbl + tf.id]);
var tH = Dom.create("tHead"); //IE<7 needs it
//1st row should be headers row, ids are added if not set
//Those ids are used by the sort feature
var hRow = tbl.rows[this.gridHeadRowIndex];
var sortTriggers = [];
for (var n = 0; n < tf.nbCells; n++) {
var c = hRow.cells[n];
var thId = c.getAttribute("id");
if (!thId || thId === "") {
thId = tf.prfxGridTh + n + "_" + tf.id;
c.setAttribute("id", thId);
}
sortTriggers.push(thId);
}
//Filters row is created
var filtersRow = Dom.create("tr");
if (this.gridEnableFilters && tf.fltGrid) {
tf.externalFltTgtIds = [];
for (var j = 0; j < tf.nbCells; j++) {
var fltTdId = tf.prfxFlt + j + tf.prfxGridFltTd + tf.id;
var cl = Dom.create(tf.fltCellTag, ["id", fltTdId]);
filtersRow.appendChild(cl);
tf.externalFltTgtIds[j] = fltTdId;
}
}
//Headers row are moved from content table to headers table
for (var i = 0; i < this.gridHeadRows.length; i++) {
var headRow = tbl.rows[this.gridHeadRows[0]];
tH.appendChild(headRow);
}
this.headTbl.appendChild(tH);
if (tf.filtersRowIndex === 0) {
tH.insertBefore(filtersRow, hRow);
} else {
tH.appendChild(filtersRow);
}
this.headTblCont.appendChild(this.headTbl);
this.tblCont.parentNode.insertBefore(this.headTblCont, this.tblCont);
//THead needs to be removed in content table for sort feature
var thead = Dom.tag(tbl, "thead");
if (thead.length > 0) {
tbl.removeChild(thead[0]);
}
//Headers table style
this.headTbl.style.width = tbl.style.width;
this.headTbl.style.tableLayout = "fixed";
tbl.style.tableLayout = "fixed";
this.headTbl.cellPadding = tbl.cellPadding;
this.headTbl.cellSpacing = tbl.cellSpacing;
//content table without headers needs col widths to be reset
tf.SetColWidths();
//Headers container width
this.headTblCont.style.width = this.tblCont.clientWidth + "px";
tbl.style.width = "";
//scroll synchronisation
var o = this;
Event.add(this.tblCont, "scroll", function (evt) {
//this = scroll element
var scrollLeft = this.scrollLeft;
o.headTblCont.scrollLeft = scrollLeft;
//New pointerX calc taking into account scrollLeft
if (!o.isPointerXOverwritten) {
try {
o.Evt.pointerX = function (evt) {
var e = evt || global.event;
var bdScrollLeft = tf_StandardBody().scrollLeft + scrollLeft;
return (e.pageX + scrollLeft) || (e.clientX + bdScrollLeft);
};
o.isPointerXOverwritten = true;
} catch (err) {
o.isPointerXOverwritten = false;
}
}
});
//Sort is enabled if not specified in config object
if (f.sort !== false) {
tf.sort = true;
tf.sortConfig.asyncSort = true;
tf.sortConfig.triggerIds = sortTriggers;
}
if (this.gridEnableColResizer) {
if (!tf.hasExtensions) {
tf.extensions = {
name: ["ColumnsResizer_" + tf.id],
src: [this.gridColResizerPath],
description: ["Columns Resizing"],
initialize: [function (o) {
o.SetColsResizer("ColumnsResizer_" + o.id);
}]
};
tf.hasExtensions = true;
} else {
if (!tf.__containsStr("colsresizer", Str.lower(tf.extensions.src.toString()))) {
tf.extensions.name.push("ColumnsResizer_" + tf.id);
tf.extensions.src.push(tf.gridColResizerPath);
tf.extensions.description.push("Columns Resizing");
tf.extensions.initialize.push(function (o) {
o.SetColsResizer("ColumnsResizer_" + o.id);
});
}
}
}
//Default columns resizer properties for grid layout
f.col_resizer_cols_headers_table = this.headTbl.getAttribute("id");
f.col_resizer_cols_headers_index = this.gridHeadRowIndex;
f.col_resizer_width_adjustment = 0;
f.col_enable_text_ellipsis = false;
//Cols generation for all browsers excepted IE<=7
o.tblHasColTag = Dom.tag(tbl, "col").length > 0 ? true : false;
//Col elements are enough to keep column widths after sorting and
//filtering
var createColTags = function (o) {
if (!o) {
return;
}
for (var k = (tf.nbCells - 1); k >= 0; k--) {
var col = Dom.create("col", ["id", tf.id + "_col_" + k]);
tbl.firstChild.parentNode.insertBefore(col, tbl.firstChild);
col.style.width = tf.colWidth[k];
o.gridColElms[k] = col;
}
o.tblHasColTag = true;
}; };
tf.hasExtensions = true; if (!o.tblHasColTag) {
} else { createColTags(o);
if (!tf.__containsStr("colsresizer", Str.lower(tf.extensions.src.toString()))) { } else {
tf.extensions.name.push("ColumnsResizer_" + tf.id); var cols = Dom.tag(tbl, "col");
tf.extensions.src.push(tf.gridColResizerPath); for (var ii = 0; ii < tf.nbCells; ii++) {
tf.extensions.description.push("Columns Resizing"); cols[ii].setAttribute("id", tf.id + "_col_" + ii);
tf.extensions.initialize.push(function (o) { cols[ii].style.width = tf.colWidth[ii];
o.SetColsResizer("ColumnsResizer_" + o.id); o.gridColElms.push(cols[ii]);
}); }
} }
var afterColResizedFn = Types.isFn(f.on_after_col_resized) ? f.on_after_col_resized : null;
f.on_after_col_resized = function (o, colIndex) {
if (!colIndex) {
return;
}
var w = o.crWColsRow.cells[colIndex].style.width;
var col = o.gridColElms[colIndex];
col.style.width = w;
var thCW = o.crWColsRow.cells[colIndex].clientWidth;
var tdCW = o.crWRowDataTbl.cells[colIndex].clientWidth;
if (thCW != tdCW /*&& !Helpers.isIE()*/) {
o.headTbl.style.width = tbl.clientWidth + "px";
}
if (afterColResizedFn) {
afterColResizedFn.call(null, o, colIndex);
}
};
if (tbl.clientWidth !== this.headTbl.clientWidth) {
tbl.style.width = this.headTbl.clientWidth + "px";
}
// Re-adjust reference row
//tf.refRow = Helpers.isIE() ? (tf.refRow+1) : 0;
}
},
destroy: {
writable: true,
value: function () {
var tf = this.tf;
var tbl = tf.tbl;
if (!tf.gridLayout) {
return;
}
var t = tbl.parentNode.removeChild(tbl);
this.tblMainCont.parentNode.insertBefore(t, this.tblMainCont);
this.tblMainCont.parentNode.removeChild(this.tblMainCont);
this.tblMainCont = null;
this.headTblCont = null;
this.headTbl = null;
this.tblCont = null;
tbl.outerHTML = tf.sourceTblHtml;
//needed to keep reference of table element
tbl = Dom.id(tf.id);
} }
} }
});
//Default columns resizer properties for grid layout
f.col_resizer_cols_headers_table = this.headTbl.getAttribute("id");
f.col_resizer_cols_headers_index = this.gridHeadRowIndex;
f.col_resizer_width_adjustment = 0;
f.col_enable_text_ellipsis = false;
//Cols generation for all browsers excepted IE<=7
o.tblHasColTag = Dom.tag(tbl, "col").length > 0 ? true : false;
// if(!Helpers.isIE()){
//Col elements are enough to keep column widths after sorting and
//filtering
var createColTags = function (o) {
if (!o) {
return;
}
for (var k = (tf.nbCells - 1); k >= 0; k--) {
var col = Dom.create("col", ["id", tf.id + "_col_" + k]);
tbl.firstChild.parentNode.insertBefore(col, tbl.firstChild);
col.style.width = tf.colWidth[k];
o.gridColElms[k] = col;
}
o.tblHasColTag = true;
};
if (!o.tblHasColTag) {
createColTags(o);
} else {
var cols = Dom.tag(tbl, "col");
for (var ii = 0; ii < tf.nbCells; ii++) {
cols[ii].setAttribute("id", tf.id + "_col_" + ii);
cols[ii].style.width = tf.colWidth[ii];
o.gridColElms.push(cols[ii]);
}
}
// }
//IE <= 7 needs an additional row for widths as col element width is
//not enough...
// if(Helpers.isIE()){
// var tbody = Dom.tag(tbl,'tbody'),
// r;
// if( tbody.length>0 ){
// r = tbody[0].insertRow(0);
// } else{
// r = tbl.insertRow(0);
// }
// r.style.height = '0px';
// for(var x=0; x<o.nbCells; x++){
// var col = Dom.create('td', ['id', o.id+'_col_'+x]);
// col.style.width = o.colWidth[x];
// tbl.rows[1].cells[x].style.width = '';
// r.appendChild(col);
// o.gridColElms.push(col);
// }
// tf.hasGridWidthsRow = true;
// //Data table row with widths expressed
// o.leadColWidthsRow = tbl.rows[0];
// o.leadColWidthsRow.setAttribute('validRow', 'false');
// var beforeSortFn = Types.isFn(f.on_before_sort) ?
// f.on_before_sort : null;
// f.on_before_sort = function(o, colIndex){
// o.leadColWidthsRow.setAttribute('validRow', 'false');
// if(beforeSortFn){
// beforeSortFn.call(null, o, colIndex);
// }
// };
// var afterSortFn = Types.isFn(f.on_after_sort) ?
// f.on_after_sort : null;
// f.on_after_sort = function(o,colIndex){
// if(o.leadColWidthsRow.rowIndex !== 0){
// var r = o.leadColWidthsRow;
// if(tbody.length>0){
// tbody[0].moveRow(o.leadColWidthsRow.rowIndex, 0);
// } else {
// tbl.moveRow(o.leadColWidthsRow.rowIndex, 0);
// }
// }
// if(afterSortFn){
// afterSortFn.call(null, o, colIndex);
// }
// };
// }
var afterColResizedFn = Types.isFn(f.on_after_col_resized) ? f.on_after_col_resized : null;
f.on_after_col_resized = function (o, colIndex) {
if (!colIndex) {
return;
}
var w = o.crWColsRow.cells[colIndex].style.width;
var col = o.gridColElms[colIndex];
col.style.width = w;
var thCW = o.crWColsRow.cells[colIndex].clientWidth;
var tdCW = o.crWRowDataTbl.cells[colIndex].clientWidth;
// if(Helpers.isIE()){
// tbl.style.width = o.headTbl.clientWidth+'px';
// }
if (thCW != tdCW /*&& !Helpers.isIE()*/) {
o.headTbl.style.width = tbl.clientWidth + "px";
}
if (afterColResizedFn) {
afterColResizedFn.call(null, o, colIndex);
}
};
if (tbl.clientWidth !== this.headTbl.clientWidth) {
tbl.style.width = this.headTbl.clientWidth + "px";
}
// Re-adjust reference row
//tf.refRow = Helpers.isIE() ? (tf.refRow+1) : 0;
};
GridLayout.prototype.destroy = function () {
var tf = this.tf;
var tbl = tf.tbl;
if (!tf.gridLayout) {
return;
}
var t = tbl.parentNode.removeChild(tbl);
this.tblMainCont.parentNode.insertBefore(t, this.tblMainCont);
this.tblMainCont.parentNode.removeChild(this.tblMainCont);
this.tblMainCont = null;
this.headTblCont = null;
this.headTbl = null;
this.tblCont = null;
tbl.outerHTML = tf.sourceTblHtml;
//needed to keep reference of table element
tbl = Dom.id(tf.id);
};
return GridLayout; return GridLayout;
})(); })();

File diff suppressed because one or more lines are too long

View file

@ -1,16 +1,15 @@
define(["exports", "../dom", "../string"], function (exports, _dom, _string) { define(["exports", "../dom", "../string"], function (exports, _dom, _string) {
"use strict"; "use strict";
var _classProps = function (child, staticProps, instanceProps) {
if (staticProps) Object.defineProperties(child, staticProps);
if (instanceProps) Object.defineProperties(child.prototype, instanceProps);
};
var Dom = _dom.Dom; var Dom = _dom.Dom;
var Str = _string.Str; var Str = _string.Str;
var HighlightKeyword = (function () { var HighlightKeyword = (function () {
var HighlightKeyword = var HighlightKeyword = function HighlightKeyword(tf) {
/**
* HighlightKeyword, highlight matched keyword
* @param {Object} tf TableFilter instance
*/
function HighlightKeyword(tf) {
var f = tf.fObj; var f = tf.fObj;
//defines css class for highlighting //defines css class for highlighting
this.highlightCssClass = f.highlight_css_class || "keyword"; this.highlightCssClass = f.highlight_css_class || "keyword";
@ -19,74 +18,83 @@ define(["exports", "../dom", "../string"], function (exports, _dom, _string) {
this.tf = tf; this.tf = tf;
}; };
HighlightKeyword.prototype.highlight = function (node, word, cssClass) { _classProps(HighlightKeyword, null, {
// Iterate into this nodes childNodes highlight: {
if (node.hasChildNodes) { writable: true,
var children = node.childNodes; value: function (node, word, cssClass) {
for (var i = 0; i < children.length; i++) { // Iterate into this nodes childNodes
this.highlight(children[i], word, cssClass); if (node.hasChildNodes) {
} var children = node.childNodes;
} for (var i = 0; i < children.length; i++) {
this.highlight(children[i], word, cssClass);
}
}
if (node.nodeType === 3) { if (node.nodeType === 3) {
var tempNodeVal = Str.lower(node.nodeValue); var tempNodeVal = Str.lower(node.nodeValue);
var tempWordVal = Str.lower(word); var tempWordVal = Str.lower(word);
if (tempNodeVal.indexOf(tempWordVal) != -1) { if (tempNodeVal.indexOf(tempWordVal) != -1) {
var pn = node.parentNode; var pn = node.parentNode;
if (pn && pn.className != cssClass) { if (pn && pn.className != cssClass) {
// word not highlighted yet // word not highlighted yet
var nv = node.nodeValue, ni = tempNodeVal.indexOf(tempWordVal), var nv = node.nodeValue, ni = tempNodeVal.indexOf(tempWordVal),
// Create a load of replacement nodes // Create a load of replacement nodes
before = Dom.text(nv.substr(0, ni)), docWordVal = nv.substr(ni, word.length), after = Dom.text(nv.substr(ni + word.length)), hiwordtext = Dom.text(docWordVal), hiword = Dom.create("span"); before = Dom.text(nv.substr(0, ni)), docWordVal = nv.substr(ni, word.length), after = Dom.text(nv.substr(ni + word.length)), hiwordtext = Dom.text(docWordVal), hiword = Dom.create("span");
hiword.className = cssClass; hiword.className = cssClass;
hiword.appendChild(hiwordtext); hiword.appendChild(hiwordtext);
pn.insertBefore(before, node); pn.insertBefore(before, node);
pn.insertBefore(hiword, node); pn.insertBefore(hiword, node);
pn.insertBefore(after, node); pn.insertBefore(after, node);
pn.removeChild(node); pn.removeChild(node);
this.highlightedNodes.push(hiword.firstChild); this.highlightedNodes.push(hiword.firstChild);
}
}
} }
} }
} },
}; unhighlight: {
writable: true,
HighlightKeyword.prototype.unhighlight = function (word, cssClass) { value: function (word, cssClass) {
var arrRemove = []; var arrRemove = [];
var highlightedNodes = this.highlightedNodes; var highlightedNodes = this.highlightedNodes;
for (var i = 0; i < highlightedNodes.length; i++) { for (var i = 0; i < highlightedNodes.length; i++) {
var n = highlightedNodes[i]; var n = highlightedNodes[i];
if (!n) { if (!n) {
continue;
}
var tempNodeVal = Str.lower(n.nodeValue), tempWordVal = Str.lower(word);
if (tempNodeVal.indexOf(tempWordVal) !== -1) {
var pn = n.parentNode;
if (pn && pn.className === cssClass) {
var prevSib = pn.previousSibling, nextSib = pn.nextSibling;
if (!prevSib || !nextSib) {
continue; continue;
} }
nextSib.nodeValue = prevSib.nodeValue + n.nodeValue + nextSib.nodeValue; var tempNodeVal = Str.lower(n.nodeValue), tempWordVal = Str.lower(word);
prevSib.nodeValue = ""; if (tempNodeVal.indexOf(tempWordVal) !== -1) {
n.nodeValue = ""; var pn = n.parentNode;
arrRemove.push(i); if (pn && pn.className === cssClass) {
var prevSib = pn.previousSibling, nextSib = pn.nextSibling;
if (!prevSib || !nextSib) {
continue;
}
nextSib.nodeValue = prevSib.nodeValue + n.nodeValue + nextSib.nodeValue;
prevSib.nodeValue = "";
n.nodeValue = "";
arrRemove.push(i);
}
}
}
for (var k = 0; k < arrRemove.length; k++) {
highlightedNodes.splice(arrRemove[k], 1);
} }
} }
},
unhighlightAll: {
writable: true,
value: function () {
if (!this.tf.highlightKeywords || !this.tf.searchArgs) {
return;
}
for (var y = 0; y < this.tf.searchArgs.length; y++) {
this.unhighlight(this.tf.searchArgs[y], this.highlightCssClass);
}
this.highlightedNodes = [];
}
} }
for (var k = 0; k < arrRemove.length; k++) { });
highlightedNodes.splice(arrRemove[k], 1);
}
};
HighlightKeyword.prototype.unhighlightAll = function () {
if (!this.tf.highlightKeywords || !this.tf.searchArgs) {
return;
}
for (var y = 0; y < this.tf.searchArgs.length; y++) {
this.unhighlight(this.tf.searchArgs[y], this.highlightCssClass);
}
this.highlightedNodes = [];
};
return HighlightKeyword; return HighlightKeyword;
})(); })();

File diff suppressed because one or more lines are too long

View file

@ -1,6 +1,11 @@
define(["exports", "../dom", "../types"], function (exports, _dom, _types) { define(["exports", "../dom", "../types"], function (exports, _dom, _types) {
"use strict"; "use strict";
var _classProps = function (child, staticProps, instanceProps) {
if (staticProps) Object.defineProperties(child, staticProps);
if (instanceProps) Object.defineProperties(child.prototype, instanceProps);
};
var Dom = _dom.Dom; var Dom = _dom.Dom;
var Types = _types.Types; var Types = _types.Types;
@ -47,37 +52,44 @@ define(["exports", "../dom", "../types"], function (exports, _dom, _types) {
} }
}; };
Loader.prototype.show = function (p) { _classProps(Loader, null, {
var _this = this; show: {
if (!this.tf.loader || !this.loaderDiv || this.loaderDiv.style.display === p) { writable: true,
return; value: function (p) {
var _this = this;
if (!this.tf.loader || !this.loaderDiv || this.loaderDiv.style.display === p) {
return;
}
var displayLoader = function () {
if (!_this.loaderDiv) {
return;
}
if (_this.onShowLoader && p !== "none") {
_this.onShowLoader.call(null, _this);
}
_this.loaderDiv.style.display = p;
if (_this.onHideLoader && p === "none") {
_this.onHideLoader.call(null, _this);
}
};
var t = p === "none" ? this.loaderCloseDelay : 1;
global.setTimeout(displayLoader, t);
}
},
remove: {
writable: true,
value: function () {
if (!this.loaderDiv) {
return;
}
var targetEl = !this.loaderTgtId ? (this.tf.gridLayout ? this.tf.tblCont : this.tf.tbl.parentNode) : Dom.id(this.loaderTgtId);
targetEl.removeChild(this.loaderDiv);
this.loaderDiv = null;
}
} }
});
var displayLoader = function () {
if (!_this.loaderDiv) {
return;
}
if (_this.onShowLoader && p !== "none") {
_this.onShowLoader.call(null, _this);
}
_this.loaderDiv.style.display = p;
if (_this.onHideLoader && p === "none") {
_this.onHideLoader.call(null, _this);
}
};
var t = p === "none" ? this.loaderCloseDelay : 1;
global.setTimeout(displayLoader, t);
};
Loader.prototype.remove = function () {
if (!this.loaderDiv) {
return;
}
var targetEl = !this.loaderTgtId ? (this.tf.gridLayout ? this.tf.tblCont : this.tf.tbl.parentNode) : Dom.id(this.loaderTgtId);
targetEl.removeChild(this.loaderDiv);
this.loaderDiv = null;
};
return Loader; return Loader;
})(); })();

File diff suppressed because one or more lines are too long

View file

@ -1,16 +1,17 @@
define(["exports", "../dom", "../helpers"], function (exports, _dom, _helpers) { define(["exports", "../dom", "../types", "../string", "../helpers"], function (exports, _dom, _types, _string, _helpers) {
"use strict"; "use strict";
var _classProps = function (child, staticProps, instanceProps) {
if (staticProps) Object.defineProperties(child, staticProps);
if (instanceProps) Object.defineProperties(child.prototype, instanceProps);
};
var Dom = _dom.Dom; var Dom = _dom.Dom;
var Types = _types.Types;
var Str = _string.Str;
var Helpers = _helpers.Helpers; var Helpers = _helpers.Helpers;
var Paging = (function () { var Paging = (function () {
var Paging = var Paging = function Paging(tf) {
/**
* Pagination component
* @param {Object} tf TableFilter instance
*/
function Paging(tf) {
// TableFilter configuration // TableFilter configuration
var f = tf.fObj; var f = tf.fObj;
@ -63,11 +64,11 @@ define(["exports", "../dom", "../helpers"], function (exports, _dom, _helpers) {
//stores paging buttons events //stores paging buttons events
this.pagingBtnEvents = null; this.pagingBtnEvents = null;
//defines previous page button html //defines previous page button html
this.pageSelectorType = f.page_selector_type || this.fltTypeSlc; this.pageSelectorType = f.page_selector_type || tf.fltTypeSlc;
//calls function before page is changed //calls function before page is changed
this.onBeforeChangePage = types.isFn(f.on_before_change_page) ? f.on_before_change_page : null; this.onBeforeChangePage = Types.isFn(f.on_before_change_page) ? f.on_before_change_page : null;
//calls function before page is changed //calls function before page is changed
this.onAfterChangePage = types.isFn(f.on_after_change_page) ? f.on_after_change_page : null; this.onAfterChangePage = Types.isFn(f.on_after_change_page) ? f.on_after_change_page : null;
var start_row = this.refRow; var start_row = this.refRow;
var nrows = this.nbRows; var nrows = this.nbRows;
//calculates page nb //calculates page nb
@ -76,50 +77,50 @@ define(["exports", "../dom", "../helpers"], function (exports, _dom, _helpers) {
var evt = tf.Evt; var evt = tf.Evt;
//Paging elements events //Paging elements events
if (!evt._Paging.next) { if (!evt._Paging.next) {
var o = tf; var o = this;
evt._Paging = { // paging buttons events evt._Paging = { // paging buttons events
slcIndex: function () { slcIndex: function () {
return (o.pageSelectorType === o.fltTypeSlc) ? o.pagingSlc.options.selectedIndex : parseInt(o.pagingSlc.value, 10) - 1; return (o.pageSelectorType === tf.fltTypeSlc) ? o.pagingSlc.options.selectedIndex : parseInt(o.pagingSlc.value, 10) - 1;
}, },
nbOpts: function () { nbOpts: function () {
return (o.pageSelectorType === o.fltTypeSlc) ? parseInt(o.pagingSlc.options.length, 10) - 1 : (o.nbPages - 1); return (o.pageSelectorType === tf.fltTypeSlc) ? parseInt(o.pagingSlc.options.length, 10) - 1 : (o.nbPages - 1);
}, },
next: function () { next: function () {
if (o.Evt._Paging.nextEvt) { if (evt._Paging.nextEvt) {
o.Evt._Paging.nextEvt(); evt._Paging.nextEvt();
} }
var nextIndex = o.Evt._Paging.slcIndex() < o.Evt._Paging.nbOpts() ? o.Evt._Paging.slcIndex() + 1 : 0; var nextIndex = evt._Paging.slcIndex() < evt._Paging.nbOpts() ? evt._Paging.slcIndex() + 1 : 0;
o.ChangePage(nextIndex); o.changePage(nextIndex);
}, },
prev: function () { prev: function () {
if (o.Evt._Paging.prevEvt) { if (evt._Paging.prevEvt) {
o.Evt._Paging.prevEvt(); evt._Paging.prevEvt();
} }
var prevIndex = o.Evt._Paging.slcIndex() > 0 ? o.Evt._Paging.slcIndex() - 1 : o.Evt._Paging.nbOpts(); var prevIndex = evt._Paging.slcIndex() > 0 ? evt._Paging.slcIndex() - 1 : evt._Paging.nbOpts();
o.ChangePage(prevIndex); o.changePage(prevIndex);
}, },
last: function () { last: function () {
if (o.Evt._Paging.lastEvt) { if (evt._Paging.lastEvt) {
o.Evt._Paging.lastEvt(); evt._Paging.lastEvt();
} }
o.ChangePage(o.Evt._Paging.nbOpts()); o.changePage(evt._Paging.nbOpts());
}, },
first: function () { first: function () {
if (o.Evt._Paging.firstEvt) { if (evt._Paging.firstEvt) {
o.Evt._Paging.firstEvt(); evt._Paging.firstEvt();
} }
o.ChangePage(0); o.changePage(0);
}, },
_detectKey: function (e) { _detectKey: function (e) {
var evt = e || global.event; var evt = e || global.event;
if (evt) { if (evt) {
var key = o.Evt.getKeyCode(e); var key = evt.getKeyCode(e);
if (key === 13) { if (key === 13) {
if (o.sorted) { if (tf.sorted) {
o.Filter(); tf.Filter();
o.ChangePage(o.Evt._Paging.slcIndex()); o.changePage(evt._Paging.slcIndex());
} else { } else {
o.ChangePage(); o.changePage();
} }
this.blur(); this.blur();
} }
@ -135,127 +136,531 @@ define(["exports", "../dom", "../helpers"], function (exports, _dom, _helpers) {
this.tf = tf; this.tf = tf;
}; };
Paging.prototype.buildUI = function () { _classProps(Paging, null, {
var slcPages; init: {
var tf = this.tf; writable: true,
var evt = tf.Evt; value: function () {
var slcPages;
var tf = this.tf;
var evt = tf.Evt;
// Paging drop-down list selector // Paging drop-down list selector
if (this.pageSelectorType === tf.fltTypeSlc) { if (this.pageSelectorType === tf.fltTypeSlc) {
slcPages = dom.create(tf.fltTypeSlc, ["id", tf.prfxSlcPages + tf.id]); slcPages = Dom.create(tf.fltTypeSlc, ["id", tf.prfxSlcPages + tf.id]);
slcPages.className = this.pgSlcCssClass; slcPages.className = this.pgSlcCssClass;
slcPages.onchange = evt._OnSlcPagesChange; console.log(evt);
} slcPages.onchange = evt._OnSlcPagesChange;
//slcPages.onchange = function(){ alert('hello'); }
// Paging input selector
if (this.pageSelectorType === tf.fltTypeInp) {
slcPages = dom.create(tf.fltTypeInp, ["id", tf.prfxSlcPages + tf.id], ["value", tf.currentPageNb]);
slcPages.className = this.pgInpCssClass;
slcPages.onkeypress = evt._Paging._detectKey;
}
// btns containers
var btnNextSpan = dom.create("span", ["id", this.prfxBtnNextSpan + tf.id]);
var btnPrevSpan = dom.create("span", ["id", this.prfxBtnPrevSpan + tf.id]);
var btnLastSpan = dom.create("span", ["id", this.prfxBtnLastSpan + tf.id]);
var btnFirstSpan = dom.create("span", ["id", this.prfxBtnFirstSpan + tf.id]);
if (this.hasPagingBtns) {
// Next button
if (!this.btnNextPageHtml) {
var btn_next = dom.create(tf.fltTypeInp, ["id", tf.prfxBtnNext + tf.id], ["type", "button"], ["value", this.btnNextPageText], ["title", "Next"]);
btn_next.className = this.btnPageCssClass;
btn_next.onclick = evt._Paging.next;
btnNextSpan.appendChild(btn_next);
} else {
btnNextSpan.innerHTML = this.btnNextPageHtml;
btnNextSpan.onclick = evt._Paging.next;
}
// Previous button
if (!this.btnPrevPageHtml) {
var btn_prev = dom.create(tf.fltTypeInp, ["id", tf.prfxBtnPrev + tf.id], ["type", "button"], ["value", this.btnPrevPageText], ["title", "Previous"]);
btn_prev.className = this.btnPageCssClass;
btn_prev.onclick = evt._Paging.prev;
btnPrevSpan.appendChild(btn_prev);
} else {
btnPrevSpan.innerHTML = this.btnPrevPageHtml;
btnPrevSpan.onclick = evt._Paging.prev;
}
// Last button
if (!this.btnLastPageHtml) {
var btn_last = dom.create(tf.fltTypeInp, ["id", tf.prfxBtnLast + tf.id], ["type", "button"], ["value", this.btnLastPageText], ["title", "Last"]);
btn_last.className = this.btnPageCssClass;
btn_last.onclick = evt._Paging.last;
btnLastSpan.appendChild(btn_last);
} else {
btnLastSpan.innerHTML = this.btnLastPageHtml;
btnLastSpan.onclick = evt._Paging.last;
}
// First button
if (!this.btnFirstPageHtml) {
var btn_first = dom.create(tf.fltTypeInp, ["id", tf.prfxBtnFirst + tf.id], ["type", "button"], ["value", this.btnFirstPageText], ["title", "First"]);
btn_first.className = this.btnPageCssClass;
btn_first.onclick = evt._Paging.first;
btnFirstSpan.appendChild(btn_first);
} else {
btnFirstSpan.innerHTML = this.btnFirstPageHtml;
btnFirstSpan.onclick = evt._Paging.first;
}
}
// paging elements (buttons+drop-down list) are added to defined element
if (!this.pagingTgtId) {
tf.SetTopDiv();
}
var targetEl = !this.pagingTgtId ? tf.mDiv : dom.id(this.pagingTgtId);
/***
if paging previously removed this prevents IE memory leak with
removeChild used in RemovePaging method. For more info refer to
http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2840253&SiteID=1
***/
if (targetEl.innerHTML !== "") {
targetEl.innerHTML = "";
}
/*** ***/
targetEl.appendChild(btnFirstSpan);
targetEl.appendChild(btnPrevSpan);
var pgBeforeSpan = dom.create("span", ["id", tf.prfxPgBeforeSpan + tf.id]);
pgBeforeSpan.appendChild(dom.text(this.pageText));
pgBeforeSpan.className = this.nbPgSpanCssClass;
targetEl.appendChild(pgBeforeSpan);
targetEl.appendChild(slcPages);
var pgAfterSpan = dom.create("span", ["id", tf.prfxPgAfterSpan + tf.id]);
pgAfterSpan.appendChild(dom.text(this.ofText));
pgAfterSpan.className = this.nbPgSpanCssClass;
targetEl.appendChild(pgAfterSpan);
var pgspan = dom.create("span", ["id", tf.prfxPgSpan + tf.id]);
pgspan.className = this.nbPgSpanCssClass;
pgspan.appendChild(dom.text(" " + this.nbPages + " "));
targetEl.appendChild(pgspan);
targetEl.appendChild(btnNextSpan);
targetEl.appendChild(btnLastSpan);
this.pagingSlc = dom.id(tf.prfxSlcPages + tf.id);
/*====================================================
- onchange event for paging select
=====================================================*/
if (!evt._OnSlcPagesChange) {
evt._OnSlcPagesChange = function () {
if (evt._Paging._OnSlcPagesChangeEvt) {
evt._Paging._OnSlcPagesChangeEvt();
} }
tf.ChangePage();
this.blur(); // Paging input selector
//ie only: blur is not enough... if (this.pageSelectorType === tf.fltTypeInp) {
if (this.parentNode && Helpers.isIE()) { slcPages = Dom.create(tf.fltTypeInp, ["id", tf.prfxSlcPages + tf.id], ["value", tf.currentPageNb]);
this.parentNode.focus(); slcPages.className = this.pgInpCssClass;
slcPages.onkeypress = evt._Paging._detectKey;
} }
};
// btns containers
var btnNextSpan = Dom.create("span", ["id", tf.prfxBtnNextSpan + tf.id]);
var btnPrevSpan = Dom.create("span", ["id", tf.prfxBtnPrevSpan + tf.id]);
var btnLastSpan = Dom.create("span", ["id", tf.prfxBtnLastSpan + tf.id]);
var btnFirstSpan = Dom.create("span", ["id", tf.prfxBtnFirstSpan + tf.id]);
if (this.hasPagingBtns) {
// Next button
if (!this.btnNextPageHtml) {
var btn_next = Dom.create(tf.fltTypeInp, ["id", tf.prfxBtnNext + tf.id], ["type", "button"], ["value", this.btnNextPageText], ["title", "Next"]);
btn_next.className = this.btnPageCssClass;
btn_next.onclick = evt._Paging.next;
btnNextSpan.appendChild(btn_next);
} else {
btnNextSpan.innerHTML = this.btnNextPageHtml;
btnNextSpan.onclick = evt._Paging.next;
}
// Previous button
if (!this.btnPrevPageHtml) {
var btn_prev = Dom.create(tf.fltTypeInp, ["id", tf.prfxBtnPrev + tf.id], ["type", "button"], ["value", this.btnPrevPageText], ["title", "Previous"]);
btn_prev.className = this.btnPageCssClass;
btn_prev.onclick = evt._Paging.prev;
btnPrevSpan.appendChild(btn_prev);
} else {
btnPrevSpan.innerHTML = this.btnPrevPageHtml;
btnPrevSpan.onclick = evt._Paging.prev;
}
// Last button
if (!this.btnLastPageHtml) {
var btn_last = Dom.create(tf.fltTypeInp, ["id", tf.prfxBtnLast + tf.id], ["type", "button"], ["value", this.btnLastPageText], ["title", "Last"]);
btn_last.className = this.btnPageCssClass;
btn_last.onclick = evt._Paging.last;
btnLastSpan.appendChild(btn_last);
} else {
btnLastSpan.innerHTML = this.btnLastPageHtml;
btnLastSpan.onclick = evt._Paging.last;
}
// First button
if (!this.btnFirstPageHtml) {
var btn_first = Dom.create(tf.fltTypeInp, ["id", tf.prfxBtnFirst + tf.id], ["type", "button"], ["value", this.btnFirstPageText], ["title", "First"]);
btn_first.className = this.btnPageCssClass;
btn_first.onclick = evt._Paging.first;
btnFirstSpan.appendChild(btn_first);
} else {
btnFirstSpan.innerHTML = this.btnFirstPageHtml;
btnFirstSpan.onclick = evt._Paging.first;
}
}
// paging elements (buttons+drop-down list) are added to defined element
if (!this.pagingTgtId) {
tf.SetTopDiv();
}
var targetEl = !this.pagingTgtId ? tf.mDiv : Dom.id(this.pagingTgtId);
/***
if paging previously removed this prevents IE memory leak with
removeChild used in RemovePaging method. For more info refer to
http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2840253&SiteID=1
***/
if (targetEl.innerHTML !== "") {
targetEl.innerHTML = "";
}
/*** ***/
targetEl.appendChild(btnFirstSpan);
targetEl.appendChild(btnPrevSpan);
var pgBeforeSpan = Dom.create("span", ["id", tf.prfxPgBeforeSpan + tf.id]);
pgBeforeSpan.appendChild(Dom.text(this.pageText));
pgBeforeSpan.className = this.nbPgSpanCssClass;
targetEl.appendChild(pgBeforeSpan);
targetEl.appendChild(slcPages);
var pgAfterSpan = Dom.create("span", ["id", tf.prfxPgAfterSpan + tf.id]);
pgAfterSpan.appendChild(Dom.text(this.ofText));
pgAfterSpan.className = this.nbPgSpanCssClass;
targetEl.appendChild(pgAfterSpan);
var pgspan = Dom.create("span", ["id", tf.prfxPgSpan + tf.id]);
pgspan.className = this.nbPgSpanCssClass;
pgspan.appendChild(Dom.text(" " + this.nbPages + " "));
targetEl.appendChild(pgspan);
targetEl.appendChild(btnNextSpan);
targetEl.appendChild(btnLastSpan);
this.pagingSlc = Dom.id(tf.prfxSlcPages + tf.id);
/*====================================================
- onchange event for paging select
=====================================================*/
var o = this;
evt._OnSlcPagesChange = function () {
if (evt._Paging._OnSlcPagesChangeEvt) {
evt._Paging._OnSlcPagesChangeEvt();
}
o.changePage();
this.blur();
//ie only: blur is not enough...
if (this.parentNode && Helpers.isIE()) {
this.parentNode.focus();
}
};
// if this.rememberGridValues==true this.SetPagingInfo() is called
// in ResetGridValues() method
if (!tf.rememberGridValues || tf.isPagingRemoved) {
this.setPagingInfo();
}
if (!tf.fltGrid) {
tf.ValidateAllRows();
this.setPagingInfo(tf.validRowsIndex);
}
this.pagingBtnEvents = evt._Paging;
tf.isPagingRemoved = false;
}
},
addPaging: {
writable: true,
value: function (filterTable) {
var tf = this.tf;
if (!tf.hasGrid || tf.paging) {
return;
}
tf.paging = true;
tf.isPagingRemoved = true;
this.init();
tf.ResetValues();
if (filterTable) {
tf.Filter();
}
}
},
setPagingInfo: {
writable: true,
value: function (validRows) {
var tf = this.tf;
var rows = tf.tbl.rows;
var mdiv = !this.pagingTgtId ? tf.mDiv : Dom.id(this.pagingTgtId);
var pgspan = Dom.id(tf.prfxPgSpan + tf.id);
//stores valid rows indexes
if (validRows && validRows.length > 0) {
tf.validRowsIndex = validRows;
} else {
//re-sets valid rows indexes array
tf.validRowsIndex = [];
//counts rows to be grouped
for (var j = tf.refRow; j < tf.nbRows; j++) {
var row = rows[j];
if (!row) {
continue;
}
var isRowValid = row.getAttribute("validRow");
if (isRowValid === "true" || !isRowValid) {
tf.validRowsIndex.push(j);
}
}
}
//calculate nb of pages
this.nbPages = Math.ceil(tf.validRowsIndex.length / this.pagingLength);
//refresh page nb span
pgspan.innerHTML = this.nbPages;
//select clearing shortcut
if (this.pageSelectorType === tf.fltTypeSlc) {
this.pagingSlc.innerHTML = "";
}
if (this.nbPages > 0) {
mdiv.style.visibility = "visible";
if (this.pageSelectorType === tf.fltTypeSlc) {
for (var z = 0; z < this.nbPages; z++) {
var currOpt = new Option((z + 1), z * this.pagingLength, false, false);
this.pagingSlc.options[z] = currOpt;
}
} else {
//input type
this.pagingSlc.value = this.currentPageNb;
}
} else {
/*** if no results paging select and buttons are hidden ***/
mdiv.style.visibility = "hidden";
}
this.groupByPage(tf.validRowsIndex);
}
},
groupByPage: {
writable: true,
value: function (validRows) {
var tf = this.tf;
var rows = tf.tbl.rows;
var paging_end_row = parseInt(this.startPagingRow, 10) + parseInt(this.pagingLength, 10);
//store valid rows indexes
if (validRows) {
tf.validRowsIndex = validRows;
}
//this loop shows valid rows of current page
for (var h = 0; h < tf.validRowsIndex.length; h++) {
var r = rows[tf.validRowsIndex[h]];
if (h >= this.startPagingRow && h < paging_end_row) {
if (r.getAttribute("validRow") === "true" || !r.getAttribute("validRow")) {
r.style.display = "";
}
if (tf.alternateBgs && tf.Cpt.alternateRows) {
tf.Cpt.alternateRows.setRowBg(tf.validRowsIndex[h], h);
}
} else {
r.style.display = "none";
if (tf.alternateBgs && tf.Cpt.alternateRows) {
tf.Cpt.alternateRows.removeRowBg(tf.validRowsIndex[h]);
}
}
}
tf.nbVisibleRows = tf.validRowsIndex.length;
tf.isStartBgAlternate = false;
//re-applies filter behaviours after filtering process
tf.ApplyGridProps();
}
},
setPage: {
writable: true,
value: function (cmd) {
var tf = this.tf;
if (!tf.hasGrid || !this.paging) {
return;
}
var btnEvt = this.pagingBtnEvents, cmdtype = typeof cmd;
if (cmdtype === "string") {
switch (Str.lower(cmd)) {
case "next":
btnEvt.next();
break;
case "previous":
btnEvt.prev();
break;
case "last":
btnEvt.last();
break;
case "first":
btnEvt.first();
break;
default:
btnEvt.next();
break;
}
}
if (cmdtype === "number") {
this.changePage(cmd - 1);
}
}
},
setResultsPerPage: {
writable: true,
value: function () {
var tf = this.tf;
var evt = tf.Evt;
if (!tf.hasGrid && !tf.isFirstLoad) {
return;
}
if (this.resultsPerPageSlc || !this.resultsPerPage) {
return;
}
//Change nb results per page event
if (!evt._OnSlcResultsChange) {
/*====================================================
- onchange event for results per page select
=====================================================*/
evt._OnSlcResultsChange = function () {
this.changeResultsPerPage();
this.blur();
//ie only: blur is not enough...
if (this.parentNode && Helpers.isIE()) {
this.parentNode.focus();
}
};
}
var slcR = Dom.create(tf.fltTypeSlc, ["id", tf.prfxSlcResults + tf.id]);
slcR.className = tf.resultsSlcCssClass;
var slcRText = this.resultsPerPage[0], slcROpts = this.resultsPerPage[1];
var slcRSpan = Dom.create("span", ["id", tf.prfxSlcResultsTxt + tf.id]);
slcRSpan.className = this.resultsSpanCssClass;
// results per page select is added to external element
if (!this.resultsPerPageTgtId) {
tf.SetTopDiv();
}
var targetEl = !this.resultsPerPageTgtId ? tf.rDiv : Dom.id(this.resultsPerPageTgtId);
slcRSpan.appendChild(Dom.text(slcRText));
targetEl.appendChild(slcRSpan);
targetEl.appendChild(slcR);
this.resultsPerPageSlc = Dom.id(tf.prfxSlcResults + tf.id);
for (var r = 0; r < slcROpts.length; r++) {
var currOpt = new Option(slcROpts[r], slcROpts[r], false, false);
this.resultsPerPageSlc.options[r] = currOpt;
}
slcR.onchange = evt._OnSlcResultsChange;
}
},
removeResultsPerPage: {
writable: true,
value: function () {
var tf = this.tf;
if (!tf.hasGrid || !this.resultsPerPageSlc || !this.resultsPerPage) {
return;
}
var slcR = this.resultsPerPageSlc, slcRSpan = Dom.id(tf.prfxSlcResultsTxt + tf.id);
if (slcR) {
slcR.parentNode.removeChild(slcR);
}
if (slcRSpan) {
slcRSpan.parentNode.removeChild(slcRSpan);
}
this.resultsPerPageSlc = null;
}
},
changePage: {
writable: true,
value: function (index) {
var tf = this.tf;
var evt = tf.Evt;
tf.EvtManager(evt.name.changepage, { pgIndex: index });
}
},
changeResultsPerPage: {
writable: true,
value: function () {
var tf = this.tf;
var evt = tf.Evt;
tf.EvtManager(evt.name.changeresultsperpage);
}
},
resetPage: {
writable: true,
value: function () {
var tf = this.tf;
var evt = tf.Evt;
tf.EvtManager(evt.name.resetpage);
}
},
resetPageLength: {
writable: true,
value: function () {
var tf = this.tf;
var evt = tf.Evt;
tf.EvtManager(evt.name.resetpagelength);
}
},
_changePage: {
writable: true,
value: function (index) {
var tf = this.tf;
if (!tf.paging) {
return;
}
if (index === undefined) {
index = this.pageSelectorType === tf.fltTypeSlc ? this.pagingSlc.options.selectedIndex : (this.pagingSlc.value - 1);
}
if (index >= 0 && index <= (this.nbPages - 1)) {
if (this.onBeforeChangePage) {
this.onBeforeChangePage.call(null, this, index);
}
this.currentPageNb = parseInt(index, 10) + 1;
if (this.pageSelectorType === tf.fltTypeSlc) {
this.pagingSlc.options[index].selected = true;
} else {
this.pagingSlc.value = this.currentPageNb;
}
if (tf.rememberPageNb) {
tf.Cpt.store.savePageNb(this.pgNbCookie);
}
this.startPagingRow = (this.pageSelectorType === tf.fltTypeSlc) ? this.pagingSlc.value : (index * this.pagingLength);
this.groupByPage();
if (this.onAfterChangePage) {
this.onAfterChangePage.call(null, this, index);
}
}
}
},
_changeResultsPerPage: {
writable: true,
value: function () {
var tf = this.tf;
if (!tf.paging) {
return;
}
var slcR = this.resultsPerPageSlc;
var slcPagesSelIndex = (this.pageSelectorType === tf.fltTypeSlc) ? this.pagingSlc.selectedIndex : parseInt(this.pagingSlc.value - 1, 10);
this.pagingLength = parseInt(slcR.options[slcR.selectedIndex].value, 10);
this.startPagingRow = this.pagingLength * slcPagesSelIndex;
if (!isNaN(this.pagingLength)) {
if (this.startPagingRow >= tf.nbFilterableRows) {
this.startPagingRow = (tf.nbFilterableRows - this.pagingLength);
}
this.setPagingInfo();
if (this.pageSelectorType === tf.fltTypeSlc) {
var slcIndex = (this.pagingSlc.options.length - 1 <= slcPagesSelIndex) ? (this.pagingSlc.options.length - 1) : slcPagesSelIndex;
this.pagingSlc.options[slcIndex].selected = true;
}
if (tf.rememberPageLen) {
tf.Cpt.store.savePageLength(tf.pgLenCookie);
}
}
}
},
_resetPage: {
writable: true,
value: function (name) {
var tf = this.tf;
var pgnb = tf.Cpt.store.getPageNb(name);
if (pgnb !== "") {
this.changePage((pgnb - 1));
}
}
},
_resetPageLength: {
writable: true,
value: function (name) {
var tf = this.tf;
if (!tf.paging) {
return;
}
var pglenIndex = tf.Cpt.store.getPageLength(name);
if (pglenIndex !== "") {
this.resultsPerPageSlc.options[pglenIndex].selected = true;
this.changeResultsPerPage();
}
}
},
destroy: {
writable: true,
value: function () {
var tf = this.tf;
if (!tf.hasGrid || this.pagingSlc) {
return;
}
// btns containers
var btnNextSpan, btnPrevSpan, btnLastSpan, btnFirstSpan;
var pgBeforeSpan, pgAfterSpan, pgspan;
btnNextSpan = Dom.id(tf.prfxBtnNextSpan + tf.id);
btnPrevSpan = Dom.id(tf.prfxBtnPrevSpan + tf.id);
btnLastSpan = Dom.id(tf.prfxBtnLastSpan + tf.id);
btnFirstSpan = Dom.id(tf.prfxBtnFirstSpan + tf.id);
//span containing 'Page' text
pgBeforeSpan = Dom.id(tf.prfxPgBeforeSpan + tf.id);
//span containing 'of' text
pgAfterSpan = Dom.id(tf.prfxPgAfterSpan + tf.id);
//span containing nb of pages
pgspan = Dom.id(tf.prfxPgSpan + tf.id);
this.pagingSlc.parentNode.removeChild(this.pagingSlc);
if (btnNextSpan) {
btnNextSpan.parentNode.removeChild(btnNextSpan);
}
if (btnPrevSpan) {
btnPrevSpan.parentNode.removeChild(btnPrevSpan);
}
if (btnLastSpan) {
btnLastSpan.parentNode.removeChild(btnLastSpan);
}
if (btnFirstSpan) {
btnFirstSpan.parentNode.removeChild(btnFirstSpan);
}
if (pgBeforeSpan) {
pgBeforeSpan.parentNode.removeChild(pgBeforeSpan);
}
if (pgAfterSpan) {
pgAfterSpan.parentNode.removeChild(pgAfterSpan);
}
if (pgspan) {
pgspan.parentNode.removeChild(pgspan);
}
this.pagingBtnEvents = null;
this.pagingSlc = null;
tf.isPagingRemoved = true;
}
} }
}; });
return Paging; return Paging;
})(); })();

File diff suppressed because one or more lines are too long

View file

@ -1,17 +1,16 @@
define(["exports", "../dom", "../types", "../helpers"], function (exports, _dom, _types, _helpers) { define(["exports", "../dom", "../types", "../helpers"], function (exports, _dom, _types, _helpers) {
"use strict"; "use strict";
var _classProps = function (child, staticProps, instanceProps) {
if (staticProps) Object.defineProperties(child, staticProps);
if (instanceProps) Object.defineProperties(child.prototype, instanceProps);
};
var Dom = _dom.Dom; var Dom = _dom.Dom;
var Types = _types.Types; var Types = _types.Types;
var Helpers = _helpers.Helpers; var Helpers = _helpers.Helpers;
var RowsCounter = (function () { var RowsCounter = (function () {
var RowsCounter = var RowsCounter = function RowsCounter(tf) {
/**
* Rows counter
* @param {Object} tf TableFilter instance
*/
function RowsCounter(tf) {
// TableFilter configuration // TableFilter configuration
var f = tf.fObj; var f = tf.fObj;
@ -35,99 +34,108 @@ define(["exports", "../dom", "../types", "../helpers"], function (exports, _dom,
this.tf = tf; this.tf = tf;
}; };
RowsCounter.prototype.init = function () { _classProps(RowsCounter, null, {
var tf = this.tf; init: {
writable: true,
value: function () {
var tf = this.tf;
if ((!tf.hasGrid && !tf.isFirstLoad) || this.rowsCounterSpan) { if ((!tf.hasGrid && !tf.isFirstLoad) || this.rowsCounterSpan) {
return; return;
} }
//rows counter container //rows counter container
var countDiv = Dom.create("div", ["id", tf.prfxCounter + tf.id]); var countDiv = Dom.create("div", ["id", tf.prfxCounter + tf.id]);
countDiv.className = this.totRowsCssClass; countDiv.className = this.totRowsCssClass;
//rows counter label //rows counter label
var countSpan = Dom.create("span", ["id", tf.prfxTotRows + tf.id]); var countSpan = Dom.create("span", ["id", tf.prfxTotRows + tf.id]);
var countText = Dom.create("span", ["id", tf.prfxTotRowsTxt + tf.id]); var countText = Dom.create("span", ["id", tf.prfxTotRowsTxt + tf.id]);
countText.appendChild(Dom.text(this.rowsCounterText)); countText.appendChild(Dom.text(this.rowsCounterText));
// counter is added to defined element // counter is added to defined element
if (!this.rowsCounterTgtId) { if (!this.rowsCounterTgtId) {
tf.SetTopDiv(); tf.SetTopDiv();
} }
var targetEl = !this.rowsCounterTgtId ? tf.lDiv : Dom.id(this.rowsCounterTgtId); var targetEl = !this.rowsCounterTgtId ? tf.lDiv : Dom.id(this.rowsCounterTgtId);
//IE only: clears all for sure //IE only: clears all for sure
if (this.rowsCounterDiv && Helpers.isIE()) { if (this.rowsCounterDiv && Helpers.isIE()) {
this.rowsCounterDiv.outerHTML = ""; this.rowsCounterDiv.outerHTML = "";
} }
//default container: 'lDiv' //default container: 'lDiv'
if (!this.rowsCounterTgtId) { if (!this.rowsCounterTgtId) {
countDiv.appendChild(countText); countDiv.appendChild(countText);
countDiv.appendChild(countSpan); countDiv.appendChild(countSpan);
targetEl.appendChild(countDiv); targetEl.appendChild(countDiv);
} else { } else {
//custom container, no need to append statusDiv //custom container, no need to append statusDiv
targetEl.appendChild(countText); targetEl.appendChild(countText);
targetEl.appendChild(countSpan); targetEl.appendChild(countSpan);
} }
this.rowsCounterDiv = countDiv; this.rowsCounterDiv = countDiv;
this.rowsCounterSpan = countSpan; this.rowsCounterSpan = countSpan;
this.refresh(); this.refresh();
};
RowsCounter.prototype.refresh = function (p) {
if (!this.rowsCounterSpan) {
return;
}
var tf = this.tf;
if (this.onBeforeRefreshCounter) {
this.onBeforeRefreshCounter.call(null, tf, this.rowsCounterSpan);
}
var totTxt;
if (!tf.paging) {
if (p && p !== "") {
totTxt = p;
} else {
totTxt = tf.nbFilterableRows - tf.nbHiddenRows - (tf.hasVisibleRows ? tf.visibleRows.length : 0);
} }
} else { },
//paging start row refresh: {
var paging_start_row = parseInt(tf.startPagingRow, 10) + ((tf.nbVisibleRows > 0) ? 1 : 0); writable: true,
var paging_end_row = (paging_start_row + tf.pagingLength) - 1 <= tf.nbVisibleRows ? paging_start_row + tf.pagingLength - 1 : tf.nbVisibleRows; value: function (p) {
totTxt = paging_start_row + this.fromToTextSeparator + paging_end_row + this.overText + tf.nbVisibleRows; if (!this.rowsCounterSpan) {
} return;
this.rowsCounterSpan.innerHTML = totTxt; }
if (this.onAfterRefreshCounter) {
this.onAfterRefreshCounter.call(null, tf, this.rowsCounterSpan, totTxt);
}
};
RowsCounter.prototype.destroy = function () { var tf = this.tf;
var tf = this.tf;
if (!tf.hasGrid) {
return;
}
if (!this.rowsCounterSpan) {
return;
}
if (!this.rowsCounterTgtId && this.rowsCounterDiv) { if (this.onBeforeRefreshCounter) {
//IE only: clears all for sure this.onBeforeRefreshCounter.call(null, tf, this.rowsCounterSpan);
if (Helpers.isIE()) { }
this.rowsCounterDiv.outerHTML = "";
} else { var totTxt;
this.rowsCounterDiv.parentNode.removeChild(this.rowsCounterDiv); if (!tf.paging) {
if (p && p !== "") {
totTxt = p;
} else {
totTxt = tf.nbFilterableRows - tf.nbHiddenRows - (tf.hasVisibleRows ? tf.visibleRows.length : 0);
}
} else {
//paging start row
var paging_start_row = parseInt(tf.startPagingRow, 10) + ((tf.nbVisibleRows > 0) ? 1 : 0);
var paging_end_row = (paging_start_row + tf.pagingLength) - 1 <= tf.nbVisibleRows ? paging_start_row + tf.pagingLength - 1 : tf.nbVisibleRows;
totTxt = paging_start_row + this.fromToTextSeparator + paging_end_row + this.overText + tf.nbVisibleRows;
}
this.rowsCounterSpan.innerHTML = totTxt;
if (this.onAfterRefreshCounter) {
this.onAfterRefreshCounter.call(null, tf, this.rowsCounterSpan, totTxt);
}
}
},
destroy: {
writable: true,
value: function () {
var tf = this.tf;
if (!tf.hasGrid) {
return;
}
if (!this.rowsCounterSpan) {
return;
}
if (!this.rowsCounterTgtId && this.rowsCounterDiv) {
//IE only: clears all for sure
if (Helpers.isIE()) {
this.rowsCounterDiv.outerHTML = "";
} else {
this.rowsCounterDiv.parentNode.removeChild(this.rowsCounterDiv);
}
} else {
Dom.id(this.rowsCounterTgtId).innerHTML = "";
}
this.rowsCounterSpan = null;
this.rowsCounterDiv = null;
} }
} else {
Dom.id(this.rowsCounterTgtId).innerHTML = "";
} }
this.rowsCounterSpan = null; });
this.rowsCounterDiv = null;
};
return RowsCounter; return RowsCounter;
})(); })();

File diff suppressed because one or more lines are too long

View file

@ -1,15 +1,14 @@
define(["exports", "../cookie"], function (exports, _cookie) { define(["exports", "../cookie"], function (exports, _cookie) {
"use strict"; "use strict";
var _classProps = function (child, staticProps, instanceProps) {
if (staticProps) Object.defineProperties(child, staticProps);
if (instanceProps) Object.defineProperties(child.prototype, instanceProps);
};
var Cookie = _cookie.Cookie; var Cookie = _cookie.Cookie;
var Store = (function () { var Store = (function () {
var Store = var Store = function Store(tf) {
/**
* Store, persistence manager
* @param {Object} tf TableFilter instance
*/
function Store(tf) {
var f = tf.fObj; var f = tf.fObj;
this.duration = !isNaN(f.set_cookie_duration) ? parseInt(f.set_cookie_duration, 10) : 100000; this.duration = !isNaN(f.set_cookie_duration) ? parseInt(f.set_cookie_duration, 10) : 100000;
@ -17,46 +16,61 @@ define(["exports", "../cookie"], function (exports, _cookie) {
this.tf = tf; this.tf = tf;
}; };
Store.prototype.saveFilterValues = function (name) { _classProps(Store, null, {
var tf = this.tf; saveFilterValues: {
var fltValues = []; writable: true,
//store filters' values value: function (name) {
for (var i = 0; i < tf.fltIds.length; i++) { var tf = this.tf;
var value = tf.GetFilterValue(i); var fltValues = [];
if (value === "") { //store filters' values
value = " "; for (var i = 0; i < tf.fltIds.length; i++) {
var value = tf.GetFilterValue(i);
if (value === "") {
value = " ";
}
fltValues.push(value);
}
//adds array size
fltValues.push(tf.fltIds.length);
//writes cookie
Cookie.write(name, fltValues.join(tf.separator), this.duration);
}
},
getFilterValues: {
writable: true,
value: function (name) {
var flts = Cookie.read(name);
var rgx = new RegExp(this.tf.separator, "g");
// filters' values array
return flts.split(rgx);
}
},
savePageNb: {
writable: true,
value: function (name) {
Cookie.write(name, this.tf.currentPageNb, this.duration);
}
},
getPageNb: {
writable: true,
value: function (name) {
return Cookie.read(name);
}
},
savePageLength: {
writable: true,
value: function (name) {
Cookie.write(name, this.tf.resultsPerPageSlc.selectedIndex, this.duration);
}
},
getPageLength: {
writable: true,
value: function (name) {
return Cookie.read(name);
} }
fltValues.push(value);
} }
//adds array size });
fltValues.push(tf.fltIds.length);
//writes cookie
Cookie.write(name, fltValues.join(tf.separator), this.duration);
};
Store.prototype.getFilterValues = function (name) {
var flts = Cookie.read(name);
var rgx = new RegExp(this.tf.separator, "g");
// filters' values array
return flts.split(rgx);
};
Store.prototype.savePageNb = function (name) {
Cookie.write(name, this.tf.currentPageNb, this.duration);
};
Store.prototype.getPageNb = function (name) {
return Cookie.read(name);
};
Store.prototype.savePageLength = function (name) {
Cookie.write(name, this.tf.resultsPerPageSlc.selectedIndex, this.duration);
};
Store.prototype.getPageLength = function (name) {
return Cookie.read(name);
};
return Store; return Store;
})(); })();

View file

@ -1 +1 @@
{"version":3,"sources":["src-es6/modules/store.js"],"names":[],"mappings":";;;MAAQ,MAAM,WAAN,MAAM;MAED,KAAK;QAAL,KAAK;;;;;;AAMH,aANF,KAAK,CAMF,EAAE,EAAE;AACZ,UAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;;AAEhB,UAAI,CAAC,QAAQ,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,mBAAmB,CAAC,GACzC,QAAQ,CAAC,CAAC,CAAC,mBAAmB,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC;;AAEjD,UAAI,CAAC,EAAE,GAAG,EAAE,CAAC;KAChB;;AAbQ,SAAK,WAmBd,gBAAgB,GAAA,UAAC,IAAI,EAAC;AAClB,UAAI,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;AACjB,UAAI,SAAS,GAAG,EAAE,CAAC;;AAEnB,WAAI,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAC;AACjC,YAAI,KAAK,GAAG,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;AACjC,YAAI,KAAK,KAAK,EAAE,EAAC;AACb,eAAK,GAAG,GAAG,CAAC;SACf;AACD,iBAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;OACzB;;AAED,eAAS,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;;;AAGjC,YAAM,CAAC,KAAK,CACR,IAAI,EACJ,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,EAC5B,IAAI,CAAC,QAAQ,CAChB,CAAC;KACL;;AAvCQ,SAAK,WA8Cd,eAAe,GAAA,UAAC,IAAI,EAAC;AACjB,UAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC7B,UAAI,GAAG,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;;AAE7C,aAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;KAC1B;;AAnDQ,SAAK,WAyDd,UAAU,GAAA,UAAC,IAAI,EAAC;AACZ,YAAM,CAAC,KAAK,CACR,IAAI,EACJ,IAAI,CAAC,EAAE,CAAC,aAAa,EACrB,IAAI,CAAC,QAAQ,CAChB,CAAC;KACL;;AA/DQ,SAAK,WAsEd,SAAS,GAAA,UAAC,IAAI,EAAC;AACX,aAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC5B;;AAxEQ,SAAK,WA8Ed,cAAc,GAAA,UAAC,IAAI,EAAC;AAChB,YAAM,CAAC,KAAK,CACR,IAAI,EACJ,IAAI,CAAC,EAAE,CAAC,iBAAiB,CAAC,aAAa,EACvC,IAAI,CAAC,QAAQ,CAChB,CAAC;KACL;;AApFQ,SAAK,WA2Fd,aAAa,GAAA,UAAC,IAAI,EAAC;AACf,aAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC5B;;WA7FQ,KAAK;;;UAAL,KAAK,GAAL,KAAK","file":"src-es6/modules/store.js","sourcesContent":["import {Cookie} from '../cookie';\n\nexport class Store{\n\n /**\n * Store, persistence manager\n * @param {Object} tf TableFilter instance\n */\n constructor(tf) {\n var f = tf.fObj;\n\n this.duration = !isNaN(f.set_cookie_duration) ?\n parseInt(f.set_cookie_duration, 10) : 100000;\n\n this.tf = tf;\n }\n\n /**\n * Store filters' values in cookie\n * @param {String} cookie name\n */\n saveFilterValues(name){\n var tf = this.tf;\n var fltValues = [];\n //store filters' values\n for(var i=0; i<tf.fltIds.length; i++){\n var value = tf.GetFilterValue(i);\n if (value === ''){\n value = ' ';\n }\n fltValues.push(value);\n }\n //adds array size\n fltValues.push(tf.fltIds.length);\n\n //writes cookie\n Cookie.write(\n name,\n fltValues.join(tf.separator),\n this.duration\n );\n }\n\n /**\n * Retrieve filters' values from cookie\n * @param {String} cookie name\n * @return {Array}\n */\n getFilterValues(name){\n var flts = Cookie.read(name);\n var rgx = new RegExp(this.tf.separator, 'g');\n // filters' values array\n return flts.split(rgx);\n }\n\n /**\n * Store page number in cookie\n * @param {String} cookie name\n */\n savePageNb(name){\n Cookie.write(\n name,\n this.tf.currentPageNb,\n this.duration\n );\n }\n\n /**\n * Retrieve page number from cookie\n * @param {String} cookie name\n * @return {String}\n */\n getPageNb(name){\n return Cookie.read(name);\n }\n\n /**\n * Store page length in cookie\n * @param {String} cookie name\n */\n savePageLength(name){\n Cookie.write(\n name,\n this.tf.resultsPerPageSlc.selectedIndex,\n this.duration\n );\n }\n\n /**\n * Retrieve page length from cookie\n * @param {String} cookie name\n * @return {String}\n */\n getPageLength(name){\n return Cookie.read(name);\n }\n\n}\n"]} {"version":3,"sources":["src-es6/modules/store.js"],"names":[],"mappings":";;;;;;;;MAAQ,MAAM,WAAN,MAAM;MAED,KAAK;QAAL,KAAK,GAMH,SANF,KAAK,CAMF,EAAE,EAAE;AACZ,UAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;;AAEhB,UAAI,CAAC,QAAQ,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,mBAAmB,CAAC,GACzC,QAAQ,CAAC,CAAC,CAAC,mBAAmB,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC;;AAEjD,UAAI,CAAC,EAAE,GAAG,EAAE,CAAC;KAChB;;gBAbQ,KAAK;AAmBd,sBAAgB;;eAAA,UAAC,IAAI,EAAC;AAClB,cAAI,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;AACjB,cAAI,SAAS,GAAG,EAAE,CAAC;;AAEnB,eAAI,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAC;AACjC;AACA,8BAAiB;AACb,mBAAK,GAAG,GAAG,CAAC;;AAEhB;WACH;;AAED,mBAAS,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;;;AAGjC,gBAAM,CAAC,KAAK,CACR,IAAI,EACJ,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,EAC5B,IAAI,CAAC,QAAQ,CAChB,CAAC;SACL;;AAOD,qBAAe;;eAAA,UAAC,IAAI,EAAC;AACjB,cAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC7B,cAAI,GAAG,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;;AAE7C,iBAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SAC1B;;AAMD,gBAAU;;eAAA,UAAC,IAAI,EAAC;AACZ,gBAAM,CAAC,KAAK,CACR,IAAI,EACJ,IAAI,CAAC,EAAE,CAAC,aAAa,EACrB,IAAI,CAAC,QAAQ,CAChB,CAAC;SACL;;AAOD,eAAS;;eAAA,UAAC,IAAI,EAAC;AACX,iBAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC5B;;AAMD,oBAAc;;eAAA,UAAC,IAAI,EAAC;AAChB,gBAAM,CAAC,KAAK,CACR,IAAI,EACJ,IAAI,CAAC,EAAE,CAAC,iBAAiB,CAAC,aAAa,EACvC,IAAI,CAAC,QAAQ,CAChB,CAAC;SACL;;AAOD,mBAAa;;eAAA,UAAC,IAAI,EAAC;AACf,iBAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC5B;;;;WA7FQ,KAAK;;;UAAL,KAAK,GAAL,KAAK","file":"src-es6/modules/store.js","sourcesContent":["import {Cookie} from '../cookie';\r\n\r\nexport class Store{\r\n\r\n /**\r\n * Store, persistence manager\r\n * @param {Object} tf TableFilter instance\r\n */\r\n constructor(tf) {\r\n var f = tf.fObj;\r\n\r\n this.duration = !isNaN(f.set_cookie_duration) ?\r\n parseInt(f.set_cookie_duration, 10) : 100000;\r\n\r\n this.tf = tf;\r\n }\r\n\r\n /**\r\n * Store filters' values in cookie\r\n * @param {String} cookie name\r\n */\r\n saveFilterValues(name){\r\n var tf = this.tf;\r\n var fltValues = [];\r\n //store filters' values\r\n for(var i=0; i<tf.fltIds.length; i++){\r\n var value = tf.GetFilterValue(i);\r\n if (value === ''){\r\n value = ' ';\r\n }\r\n fltValues.push(value);\r\n }\r\n //adds array size\r\n fltValues.push(tf.fltIds.length);\r\n\r\n //writes cookie\r\n Cookie.write(\r\n name,\r\n fltValues.join(tf.separator),\r\n this.duration\r\n );\r\n }\r\n\r\n /**\r\n * Retrieve filters' values from cookie\r\n * @param {String} cookie name\r\n * @return {Array}\r\n */\r\n getFilterValues(name){\r\n var flts = Cookie.read(name);\r\n var rgx = new RegExp(this.tf.separator, 'g');\r\n // filters' values array\r\n return flts.split(rgx);\r\n }\r\n\r\n /**\r\n * Store page number in cookie\r\n * @param {String} cookie name\r\n */\r\n savePageNb(name){\r\n Cookie.write(\r\n name,\r\n this.tf.currentPageNb,\r\n this.duration\r\n );\r\n }\r\n\r\n /**\r\n * Retrieve page number from cookie\r\n * @param {String} cookie name\r\n * @return {String}\r\n */\r\n getPageNb(name){\r\n return Cookie.read(name);\r\n }\r\n\r\n /**\r\n * Store page length in cookie\r\n * @param {String} cookie name\r\n */\r\n savePageLength(name){\r\n Cookie.write(\r\n name,\r\n this.tf.resultsPerPageSlc.selectedIndex,\r\n this.duration\r\n );\r\n }\r\n\r\n /**\r\n * Retrieve page length from cookie\r\n * @param {String} cookie name\r\n * @return {String}\r\n */\r\n getPageLength(name){\r\n return Cookie.read(name);\r\n }\r\n\r\n}\r\n"]}

10
src/start.frag Normal file
View file

@ -0,0 +1,10 @@
(function (root, factory) {
if (typeof define === 'function' && define.amd) {
define(factory);
} else if (typeof exports === 'object') {
module.exports = factory;
} else {
root.TableFilter = factory();
}
})(this, function() {

View file

@ -1 +1 @@
{"version":3,"sources":["src-es6/string.js"],"names":[],"mappings":";;;;;;;AAIA,MAAI,GAAG,GAAG,EAAE,CAAC;;AAEb,KAAG,CAAC,KAAK,GAAG,UAAS,IAAI,EAAC;AACtB,WAAO,IAAI,CAAC,WAAW,EAAE,CAAC;GAC7B,CAAC;;AAEF,KAAG,CAAC,KAAK,GAAG,UAAS,IAAI,EAAC;AACtB,WAAO,IAAI,CAAC,WAAW,EAAE,CAAC;GAC7B,CAAC;;AAEF,KAAG,CAAC,IAAI,GAAG,UAAS,IAAI,EAAC;AACrB,QAAI,IAAI,CAAC,IAAI,EAAC;AACV,aAAO,IAAI,CAAC,IAAI,EAAE,CAAC;KACtB;AACD,WAAO,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;GACzC,CAAC;;AAEF,KAAG,CAAC,OAAO,GAAG,UAAS,IAAI,EAAC;AACxB,WAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;GACjC,CAAC;;AAEF,KAAG,CAAC,MAAM,GAAG,UAAS,IAAI,EAAC;AACvB,aAAS,MAAM,CAAC,CAAC,EAAC;AACd,UAAI,CAAC,GAAG,IAAI,MAAM,CAAC,IAAI,GAAC,CAAC,EAAC,GAAG,CAAC,CAAC;AAC/B,UAAI,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,EAAC,IAAI,GAAC,CAAC,CAAC,CAAC;KACjC;;AAED,QAAI,KAAK,GAAG,CAAC,IAAI,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,CAAC,CAAC;AAC3D,SAAI,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAC;AAC7B,YAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KACpB;AACD,WAAO,IAAI,CAAC;GACf,CAAC;;AAEF,KAAG,CAAC,SAAS,GAAG,UAAS,IAAI,EAAE,EAAE,EAAC;AAC9B,QAAG,CAAC,EAAE,EAAC;AACH,aAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;KAC3B;AACD,WAAO,IAAI,CAAC;GACf,CAAC;;AAEF,SAAO,CAAC,GAAG,GAAG,GAAG,CAAC","file":"src-es6/string.js","sourcesContent":["/**\n * String utilities\n */\n\nvar Str = {};\n\nStr.lower = function(text){\n return text.toLowerCase();\n};\n\nStr.upper = function(text){\n return text.toUpperCase();\n};\n\nStr.trim = function(text){\n if (text.trim){\n return text.trim();\n }\n return text.replace(/^\\s*|\\s*$/g, '');\n};\n\nStr.isEmpty = function(text){\n return this.trim(text) === '';\n};\n\nStr.rgxEsc = function(text){\n function escape(e){\n var a = new RegExp('\\\\'+e,'g');\n text = text.replace(a,'\\\\'+e);\n }\n\n var chars = ['\\\\','[','^','$','.','|','?','*','+','(',')'];\n for(var e=0; e<chars.length; e++){\n escape(chars[e]);\n }\n return text;\n};\n\nStr.matchCase = function(text, mc){\n if(!mc){\n return this.lower(text);\n }\n return text;\n};\n\nexports.Str = Str;\n"]} {"version":3,"sources":["src-es6/string.js"],"names":[],"mappings":";;;;;;;AAIA,MAAI,GAAG,GAAG,EAAE,CAAC;;AAEb,KAAG,CAAC,KAAK,GAAG,UAAS,IAAI,EAAC;AACtB,WAAO,IAAI,CAAC,WAAW,EAAE,CAAC;GAC7B,CAAC;;AAEF,KAAG,CAAC,KAAK,GAAG,UAAS,IAAI,EAAC;AACtB,WAAO,IAAI,CAAC,WAAW,EAAE,CAAC;GAC7B,CAAC;;AAEF,KAAG,CAAC,IAAI,GAAG,UAAS,IAAI,EAAC;AACrB,QAAI,IAAI,CAAC,IAAI,EAAC;AACV,aAAO,IAAI,CAAC,IAAI,EAAE,CAAC;KACtB;AACD,WAAO,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;GACzC,CAAC;;AAEF,KAAG,CAAC,OAAO,GAAG,UAAS,IAAI,EAAC;AACxB,WAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;GACjC,CAAC;;AAEF,KAAG,CAAC,MAAM,GAAG,UAAS,IAAI,EAAC;AACvB,aAAS,MAAM,CAAC,CAAC,EAAC;AACd,UAAI,CAAC,GAAG,IAAI,MAAM,CAAC,IAAI,GAAC,CAAC,EAAC,GAAG,CAAC,CAAC;AAC/B,UAAI,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,EAAC,IAAI,GAAC,CAAC,CAAC,CAAC;KACjC;;AAED,QAAI,KAAK,GAAG,CAAC,IAAI,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,CAAC,CAAC;AAC3D,SAAI,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAC;AAC7B,YAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KACpB;AACD,WAAO,IAAI,CAAC;GACf,CAAC;;AAEF,KAAG,CAAC,SAAS,GAAG,UAAS,IAAI,EAAE,EAAE,EAAC;AAC9B,QAAG,CAAC,EAAE,EAAC;AACH,aAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;KAC3B;AACD,WAAO,IAAI,CAAC;GACf,CAAC;;AAEF,SAAO,CAAC,GAAG,GAAG,GAAG,CAAC","file":"src-es6/string.js","sourcesContent":["/**\r\n * String utilities\r\n */\r\n\r\nvar Str = {};\r\n\r\nStr.lower = function(text){\r\n return text.toLowerCase();\r\n};\r\n\r\nStr.upper = function(text){\r\n return text.toUpperCase();\r\n};\r\n\r\nStr.trim = function(text){\r\n if (text.trim){\r\n return text.trim();\r\n }\r\n return text.replace(/^\\s*|\\s*$/g, '');\r\n};\r\n\r\nStr.isEmpty = function(text){\r\n return this.trim(text) === '';\r\n};\r\n\r\nStr.rgxEsc = function(text){\r\n function escape(e){\r\n var a = new RegExp('\\\\'+e,'g');\r\n text = text.replace(a,'\\\\'+e);\r\n }\r\n\r\n var chars = ['\\\\','[','^','$','.','|','?','*','+','(',')'];\r\n for(var e=0; e<chars.length; e++){\r\n escape(chars[e]);\r\n }\r\n return text;\r\n};\r\n\r\nStr.matchCase = function(text, mc){\r\n if(!mc){\r\n return this.lower(text);\r\n }\r\n return text;\r\n};\r\n\r\nexports.Str = Str;\r\n"]}

View file

@ -1 +1 @@
{"version":3,"sources":["src-es6/types.js"],"names":[],"mappings":";;;;;;;AAIA,MAAI,KAAK,GAAG,EAAE,CAAC;;AAEf,MAAI,SAAS,GAAG,KAAK,CAAC,CAAC;;;;;;;AAOvB,OAAK,CAAC,KAAK,GAAG,UAAS,CAAC,EAAC;AACrB,QAAI,GAAG,GAAG,KAAK,CAAC;AAChB,QAAG,OAAO,CAAC,KAAK,QAAQ,EAAC;AACrB,UAAG,MAAM,CAAC,CAAC,CAAC,IAAI,OAAO,MAAM,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAC;AAC1C,WAAG,GAAG,IAAI,CAAC;OACd;KACJ,MAAM;AACH,UAAG,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAC;AAC1B,WAAG,GAAG,IAAI,CAAC;OACd;KACJ;AACD,WAAO,GAAG,CAAC;GACd,CAAC;;;;;;;AAOF,OAAK,CAAC,IAAI,GAAG,UAAS,EAAE,EAAC;AACrB,WAAO,CAAC,EAAE,IAAI,EAAE,CAAC,WAAW,IAAI,QAAQ,CAAC,CAAC;GAC7C,CAAC;;;;;;;AAOF,OAAK,CAAC,OAAO,GAAG,UAAS,GAAG,EAAC;AACzB,WAAO,CAAC,GAAG,IAAI,GAAG,CAAC,WAAW,IAAI,KAAK,CAAC,CAAC;GAC5C,CAAC;;;;;;;AAOF,OAAK,CAAC,OAAO,GAAG,UAAS,CAAC,EAAC;AACvB,WAAQ,CAAC,KAAK,SAAS,CAAC;GAC3B,CAAC;;AAEF,SAAO,CAAC,KAAK,GAAG,KAAK,CAAC","file":"src-es6/types.js","sourcesContent":["/**\n * Types utilities\n */\n\nvar Types = {};\n\nvar UNDEFINED = void 0;\n\n/**\n * Checks if var exists and is an object\n * @param {String or Object} v\n * @return {Boolean}\n */\nTypes.isObj = function(v){\n var isO = false;\n if(typeof v === 'string'){\n if(window[v] && typeof window[v] === 'object'){\n isO = true;\n }\n } else {\n if(v && typeof v === 'object'){\n isO = true;\n }\n }\n return isO;\n};\n\n/**\n * Checks if passed parameter is a function\n * @param {Function} fn\n * @return {Boolean}\n */\nTypes.isFn = function(fn){\n return (fn && fn.constructor == Function);\n};\n\n/**\n * Checks if passed param is an array\n * @param {Array} obj\n * @return {Boolean}\n */\nTypes.isArray = function(obj){\n return (obj && obj.constructor == Array);\n};\n\n/**\n * Determines if passed param is undefined\n * @param {Any} o\n * @return {Boolean}\n */\nTypes.isUndef = function(o){\n return o === UNDEFINED;\n};\n\nexports.Types = Types;\n"]} {"version":3,"sources":["src-es6/types.js"],"names":[],"mappings":";;;;;;;AAIA,MAAI,KAAK,GAAG,EAAE,CAAC;;AAEf,MAAI,SAAS,GAAG,KAAK,CAAC,CAAC;;;;;;;AAOvB,OAAK,CAAC,KAAK,GAAG,UAAS,CAAC,EAAC;AACrB,QAAI,GAAG,GAAG,KAAK,CAAC;AAChB,QAAG,OAAO,CAAC,KAAK,QAAQ,EAAC;AACrB,UAAG,MAAM,CAAC,CAAC,CAAC,IAAI,OAAO,MAAM,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAC;AAC1C,WAAG,GAAG,IAAI,CAAC;OACd;KACJ,MAAM;AACH,UAAG,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAC;AAC1B,WAAG,GAAG,IAAI,CAAC;OACd;KACJ;AACD,WAAO,GAAG,CAAC;GACd,CAAC;;;;;;;AAOF,OAAK,CAAC,IAAI,GAAG,UAAS,EAAE,EAAC;AACrB,WAAO,CAAC,EAAE,IAAI,EAAE,CAAC,WAAW,IAAI,QAAQ,CAAC,CAAC;GAC7C,CAAC;;;;;;;AAOF,OAAK,CAAC,OAAO,GAAG,UAAS,GAAG,EAAC;AACzB,WAAO,CAAC,GAAG,IAAI,GAAG,CAAC,WAAW,IAAI,KAAK,CAAC,CAAC;GAC5C,CAAC;;;;;;;AAOF,OAAK,CAAC,OAAO,GAAG,UAAS,CAAC,EAAC;AACvB,WAAQ,CAAC,KAAK,SAAS,CAAC;GAC3B,CAAC;;AAEF,SAAO,CAAC,KAAK,GAAG,KAAK,CAAC","file":"src-es6/types.js","sourcesContent":["/**\r\n * Types utilities\r\n */\r\n\r\nvar Types = {};\r\n\r\nvar UNDEFINED = void 0;\r\n\r\n/**\r\n * Checks if var exists and is an object\r\n * @param {String or Object} v\r\n * @return {Boolean}\r\n */\r\nTypes.isObj = function(v){\r\n var isO = false;\r\n if(typeof v === 'string'){\r\n if(window[v] && typeof window[v] === 'object'){\r\n isO = true;\r\n }\r\n } else {\r\n if(v && typeof v === 'object'){\r\n isO = true;\r\n }\r\n }\r\n return isO;\r\n};\r\n\r\n/**\r\n * Checks if passed parameter is a function\r\n * @param {Function} fn\r\n * @return {Boolean}\r\n */\r\nTypes.isFn = function(fn){\r\n return (fn && fn.constructor == Function);\r\n};\r\n\r\n/**\r\n * Checks if passed param is an array\r\n * @param {Array} obj\r\n * @return {Boolean}\r\n */\r\nTypes.isArray = function(obj){\r\n return (obj && obj.constructor == Array);\r\n};\r\n\r\n/**\r\n * Determines if passed param is undefined\r\n * @param {Any} o\r\n * @return {Boolean}\r\n */\r\nTypes.isUndef = function(o){\r\n return o === UNDEFINED;\r\n};\r\n\r\nexports.Types = Types;\r\n"]}