1
0
Fork 0
mirror of https://github.com/koalyptus/TableFilter.git synced 2024-05-23 16:52:26 +02:00
TableFilter/src/modules/popupFilter.js.map
2015-02-17 22:17:17 +11:00

1 line
14 KiB
Plaintext

{"version":3,"sources":["src-es6/modules/popupFilter.js"],"names":[],"mappings":"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","file":"src-es6/modules/popupFilter.js","sourcesContent":["import {Types} from '../types';\r\nimport {Dom} from '../dom';\r\nimport {Event} from '../event';\r\nimport {Helpers} from '../helpers';\r\n\r\nexport class PopupFilter{\r\n\r\n /**\r\n * Pop-up filter component\r\n * @param {Object} tf TableFilter instance\r\n */\r\n constructor(tf){\r\n // Configuration object\r\n var f = tf.fObj;\r\n\r\n // Enable external filters behaviour\r\n tf.isExternalFlt = true;\r\n tf.externalFltTgtIds = [];\r\n\r\n //filter icon path\r\n this.popUpImgFlt = f.popup_filters_image ||\r\n tf.themesPath+'icn_filter.gif';\r\n //active filter icon path\r\n this.popUpImgFltActive = f.popup_filters_image_active ||\r\n tf.themesPath+'icn_filterActive.gif';\r\n this.popUpImgFltHtml = f.popup_filters_image_html ||\r\n '<img src=\"'+ this.popUpImgFlt +'\" alt=\"Column filter\" />';\r\n //defines css class for popup div containing filter\r\n this.popUpDivCssClass = f.popup_div_css_class || 'popUpFilter';\r\n //callback function before popup filtes is opened\r\n this.onBeforePopUpOpen = Types.isFn(f.on_before_popup_filter_open) ?\r\n f.on_before_popup_filter_open : null;\r\n //callback function after popup filtes is opened\r\n this.onAfterPopUpOpen = Types.isFn(f.on_after_popup_filter_open) ?\r\n f.on_after_popup_filter_open : null;\r\n //callback function before popup filtes is closed\r\n this.onBeforePopUpClose =\r\n Types.isFn(f.on_before_popup_filter_close) ?\r\n f.on_before_popup_filter_close : null;\r\n //callback function after popup filtes is closed\r\n this.onAfterPopUpClose = Types.isFn(f.on_after_popup_filter_close) ?\r\n f.on_after_popup_filter_close : null;\r\n\r\n //stores filters spans\r\n this.popUpFltSpans = [];\r\n //stores filters icons\r\n this.popUpFltImgs = [];\r\n //stores filters containers\r\n this.popUpFltElms = this.popUpFltElmCache || [];\r\n this.popUpFltAdjustToContainer = true;\r\n\r\n this.tf = tf;\r\n }\r\n\r\n onClick(e){\r\n var evt = e || global.event,\r\n elm = evt.target.parentNode,\r\n colIndex = parseInt(elm.getAttribute('ci'), 10);\r\n\r\n this.closeAll(colIndex);\r\n this.toggle(colIndex);\r\n\r\n if(this.popUpFltAdjustToContainer){\r\n var popUpDiv = this.popUpFltElms[colIndex],\r\n header = this.tf.GetHeaderElement(colIndex),\r\n headerWidth = header.clientWidth * 0.95;\r\n if(Helpers.isIE()){\r\n var headerLeft = Dom.position(header).left;\r\n popUpDiv.style.left = (headerLeft) + 'px';\r\n }\r\n popUpDiv.style.width = parseInt(headerWidth, 10) + 'px';\r\n }\r\n Event.cancel(evt);\r\n Event.stop(evt);\r\n }\r\n\r\n /**\r\n * Initialize DOM elements\r\n */\r\n init(){\r\n var tf = this.tf;\r\n for(var i=0; i<tf.nbCells; i++){\r\n if(tf['col'+i] === tf.fltTypeNone){\r\n continue;\r\n }\r\n var popUpSpan = Dom.create(\r\n 'span',\r\n ['id', tf.prfxPopUpSpan+tf.id+'_'+i],\r\n ['ci', i]\r\n );\r\n popUpSpan.innerHTML = this.popUpImgFltHtml;\r\n var header = tf.GetHeaderElement(i);\r\n header.appendChild(popUpSpan);\r\n Event.add(popUpSpan, 'click', (evt) => { this.onClick(evt); });\r\n this.popUpFltSpans[i] = popUpSpan;\r\n this.popUpFltImgs[i] = popUpSpan.firstChild;\r\n }\r\n }\r\n\r\n /**\r\n * Build all pop-up filters elements\r\n */\r\n buildAll(){\r\n for(var i=0; i<this.popUpFltElmCache.length; i++){\r\n this.build(i, this.popUpFltElmCache[i]);\r\n }\r\n }\r\n\r\n /**\r\n * Build a specified pop-up filter elements\r\n * @param {Number} colIndex Column index\r\n * @param {Object} div Optional container DOM element\r\n */\r\n build(colIndex, div){\r\n var tf = this.tf;\r\n var popUpDiv = !div ?\r\n Dom.create('div', ['id', tf.prfxPopUpDiv+tf.id+'_'+colIndex]) :\r\n div;\r\n popUpDiv.className = this.popUpDivCssClass;\r\n tf.externalFltTgtIds.push(popUpDiv.id);\r\n var header = tf.GetHeaderElement(colIndex);\r\n header.insertBefore(popUpDiv, header.firstChild);\r\n //popUpDiv.onclick = function(e){ evt.stop(e || global.event); };\r\n Event.add(popUpDiv, 'click', (evt) => { Event.stop(evt); });\r\n this.popUpFltElms[colIndex] = popUpDiv;\r\n }\r\n\r\n /**\r\n * Toogle visibility of specified filter\r\n * @param {Number} colIndex Column index\r\n */\r\n toggle(colIndex){\r\n var tf = this.tf,\r\n popUpFltElm = this.popUpFltElms[colIndex];\r\n\r\n if(popUpFltElm.style.display === 'none' ||\r\n popUpFltElm.style.display === ''){\r\n if(this.onBeforePopUpOpen){\r\n this.onBeforePopUpOpen.call(\r\n null, this, this.popUpFltElms[colIndex], colIndex);\r\n }\r\n popUpFltElm.style.display = 'block';\r\n if(tf['col'+colIndex] === tf.fltTypeInp){\r\n tf.GetFilterElement(colIndex).focus();\r\n }\r\n if(this.onAfterPopUpOpen){\r\n this.onAfterPopUpOpen.call(\r\n null, this, this.popUpFltElms[colIndex], colIndex);\r\n }\r\n } else {\r\n if(this.onBeforePopUpClose){\r\n this.onBeforePopUpClose.call(\r\n null, this, this.popUpFltElms[colIndex], colIndex);\r\n }\r\n popUpFltElm.style.display = 'none';\r\n if(this.onAfterPopUpClose){\r\n this.onAfterPopUpClose.call(\r\n null, this, this.popUpFltElms[colIndex], colIndex);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Close all filters excepted for the specified one if any\r\n * @param {Number} exceptIdx Column index of the filter to not close\r\n */\r\n closeAll(exceptIdx){\r\n for(var i=0; i<this.popUpFltElms.length; i++){\r\n if(i === exceptIdx){\r\n continue;\r\n }\r\n var popUpFltElm = this.popUpFltElms[i];\r\n if(popUpFltElm){\r\n popUpFltElm.style.display = 'none';\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Build all the icons representing the pop-up filters\r\n */\r\n buildIcons(){\r\n for(var i=0; i<this.popUpFltImgs.length; i++){\r\n this.buildIcon(i, false);\r\n }\r\n }\r\n\r\n /**\r\n * Build specified icon\r\n * @param {Number} colIndex Column index\r\n * @param {Boolean} active Apply active state\r\n */\r\n buildIcon(colIndex, active){\r\n var activeImg = Types.isUndef(active) ? true : active;\r\n if(this.popUpFltImgs[colIndex]){\r\n this.popUpFltImgs[colIndex].src = active ?\r\n this.popUpImgFltActive : this.popUpImgFlt;\r\n }\r\n }\r\n\r\n /**\r\n * Remove pop-up filters\r\n */\r\n destroy(){\r\n this.popUpFltElmCache = [];\r\n for(var i=0; i<this.popUpFltElms.length; i++){\r\n var popUpFltElm = this.popUpFltElms[i],\r\n popUpFltSpan = this.popUpFltSpans[i],\r\n popUpFltImg = this.popUpFltImgs[i];\r\n if(popUpFltElm){\r\n popUpFltElm.parentNode.removeChild(popUpFltElm);\r\n this.popUpFltElmCache[i] = popUpFltElm;\r\n }\r\n popUpFltElm = null;\r\n if(popUpFltSpan){\r\n popUpFltSpan.parentNode.removeChild(popUpFltSpan);\r\n }\r\n popUpFltSpan = null;\r\n if(popUpFltImg){\r\n popUpFltImg.parentNode.removeChild(popUpFltImg);\r\n }\r\n popUpFltImg = null;\r\n }\r\n this.popUpFltElms = [];\r\n this.popUpFltSpans = [];\r\n this.popUpFltImgs = [];\r\n }\r\n\r\n}\r\n"]}