1
0
Fork 0
mirror of https://github.com/koalyptus/TableFilter.git synced 2024-04-28 04:43:15 +02:00
TableFilter/dist/tablefilter/tf-0-274dfa7999625931f0bf.js.map
2017-11-26 17:56:24 +11:00

1 line
172 KiB
Plaintext

{"version":3,"sources":["webpack:///./src ^\\.\\/.*$","webpack:///./src/extensions/advancedGrid/adapterEzEditTable.js","webpack:///./src/extensions/sort/adapterSortabletable.js","webpack:///./src/extensions/advancedGrid/advancedGrid.js","webpack:///./src/extensions/colOps/colOps.js","webpack:///./src/extensions/colsVisibility/colsVisibility.js","webpack:///./src/extensions/filtersVisibility/filtersVisibility.js","webpack:///./src/extensions/sort/sort.js","webpack:///./node_modules/format-number/index.js","webpack:///./libs/sortabletable.js?75ef","webpack:///./node_modules/script-loader/addScript.js","webpack:///./libs/sortabletable.js"],"names":["INSTANTIATION_ERROR","AdapterEzEditTable","tf","cfg","name","desc","description","filename","vendorPath","vendor_path","loadStylesheet","Boolean","load_stylesheet","stylesheet","stylesheetName","stylesheet_name","scroll_into_view","gridLayout","_ezEditTable","enable","initialized","EditTable","_setAdvancedGrid","path","import","isImported","emitter","on","_toggleForInputFilter","startRow","thead","dom","length","undefined","refRow","base_path","basePath","editable","selectable","selection","default_selection","active_cell_css","_lastValidRowIndex","_lastRowIndex","onAfterSelection","et","selectedElm","e","slc","Selection","doSelect","nextRowIndex","defaultSelection","SelectRowByIndex","ClearSelections","cellIndex","row","rows","SelectCell","cells","validRowsIndex","getRowsNb","r","scrollIntoView","cell","getCellsNb","tblCont","scrollLeft","validIndexes","validIdxLen","parentNode","nodeName","keyCode","Event","GetKey","isRowValid","indexOf","rowIndex","paging","feature","d","pageLength","nbRowsPerPage","calcRowIndex","v","onBeforeSelection","nbPages","pagingEndRow","parseInt","startPagingRow","currentPageNb","setPage","onAfterChangePage","advGrid","extension","GetActiveRow","GetActiveCell","fnB","on_before_selected_row","args","arguments","call","fnA","on_after_selected_row","fnD","on_before_selected_cell","fnC","on_after_selected_cell","fnE","on_added_dom_row","nbFilterableRows","emit","destroy","reset","alternateRows","init","actions","fnF","on_after_submit","id","Init","Error","ezEditTable","Set","Editable","Remove","getActiveFilterId","colIndex","getColumnIndexFromFilterId","filterType","getFilterType","toggle","off","AdapterSortableTable","opts","sorted","sortTypes","types","colTypes","sortColAtStart","sort_col_at_start","asyncSort","async_sort","triggerIds","trigger_ids","imgPath","images_path","themesPath","imgBlank","image_blank","imgClassName","image_class_name","imgAscClassName","image_asc_class_name","imgDescClassName","image_desc_class_name","customKey","custom_key","onSortLoaded","on_sort_loaded","onBeforeSort","on_before_sort","onAfterSort","on_after_sort","stt","adpt","SortableTable","overrideSortableTable","setSortTypes","onbeforesort","sortColumn","disable","onsort","paginator","getValidRows","getPage","descending","sort","colIdx","sortByColumnIndex","prototype","headerOnclick","evt","el","target","srcElement","tagName","msie","getCellIndex","oTd","l","i","initHeader","oSortTypes","tHead","headTbl","headersRow","img","c","style","cursor","appendChild","setAttribute","_headerOnclick","_sortType","updateHeaderArrows","triggers","j","push","cellAttr","getAttribute","lastChild","toLowerCase","className","getRowValue","oRow","sType","nColumn","sortTypeInfo","_sortTypeInfo","s","getInnerText","getValueFromString","oNode","caster","sorter","addSortType","_sortTypes","eachCol","colType","type","_addDateType","decimal","decimalSeparator","_addNumberType","toUpperCase","ipAddress","sortIP","trigger","elm","dateType","locale","getOptions","value","parsedDate","parse","isNaN","Date","ids","getFiltersId","idx","header","getHeaderElement","removeChild","vals","split","x","val","join","a","b","aa","bb","EVENTS","SUM","MEAN","MIN","MAX","MEDIAN","Q1","Q3","ColOps","onBeforeOperation","on_before_operation","onAfterOperation","on_after_operation","labelIds","colIndexes","col","operations","operation","outputTypes","write_method","formatResults","format_result","totRowIndexes","tot_row_index","excludeRows","exclude_row","decimalPrecisions","decimal_precision","calcAll","isInitialized","colOperations","uIndexes","forEach","nbCols","colValues","u","getVisibleColumnData","curValues","result","precisions","labels","writeType","formatResult","k","configureFormat","Number","calc","writeResult","totRow","display","precision","sortColumnValues","calcMean","calcSum","calcMin","calcMax","calcMedian","calcQ1","calcQ3","toFixed","values","reduce","y","Math","max","apply","min","nbValues","aux","floor","posa","posb","label","format","labelElm","isFinite","innerHTML","oldNode","firstChild","txtNode","replaceChild","hasType","thousands","integerSeparator","ColsVisibility","f","config","spanEl","btnEl","contEl","tickToHide","tick_to_hide","manager","headersTbl","headers_table","headersIndex","headers_index","contElTgtId","container_target_id","headersText","headers_text","btnTgtId","btn_target_id","btnText","btn_text","btnHtml","btn_html","btnCssClass","btn_css_class","btnCloseText","btn_close_text","btnCloseHtml","btn_close_html","btnCloseCssClass","btn_close_css_class","spanCssClass","span_css_class","contCssClass","cont_css_class","listCssClass","list_css_class","listItemCssClass","checklist_item_css_class","listSlcItemCssClass","checklist_selected_item_css_class","text","atStart","at_start","enableHover","enable_hover","enableTickAll","enable_tick_all","tickAllText","tick_all_text","toolbarPosition","toolbar_position","hiddenCols","boundMouseup","onLoaded","on_loaded","onBeforeOpen","on_before_open","onAfterOpen","on_after_open","onBeforeClose","on_before_close","onAfterClose","on_after_close","onBeforeColHidden","on_before_col_hidden","onAfterColHidden","on_after_col_hidden","onBeforeColDisplayed","on_before_col_displayed","onAfterColDisplayed","on_after_col_displayed","getStylePath","targetElm","contDisplay","lbl","li","isChecked","checked","hide","setHidden","hideCol","buildBtn","buildManager","onMouseup","bind","_hideAtStart","span","targetEl","container","insertBefore","btn","title","colVisEl","extNameLabel","ul","tbl","headerIndex","getHeadersRowIndex","headerRow","check","h","itm","click","cellText","_getHeaderText","liElm","checkItem","p","_hideElements","itemIndex","splice","isColHidden","showCol","hasChildNodes","childNodes","n","nodeType","nodeValue","_hideCells","_hideCol","colElms","FiltersVisibility","icnExpand","expand_icon_name","icnCollapse","collapse_icon_name","icnExpandHtml","icnCollapseHtml","defaultText","targetId","target_id","enableIcon","enable_icon","collapseBtnHtml","expandBtnHtml","filtersRowIndex","filters_row_index","getFiltersRowIndex","visibleAtStart","visible_at_start","onBeforeShow","on_before_show","onAfterShow","on_after_show","onBeforeHide","on_before_hide","onAfterHide","on_after_hide","buildUI","visible","show","fltRow","isDisplayed","require"],"mappings":";;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wB;;;;;;;;;;;;;;;;AClGA;;AACA;;AACA;;AACA;;AACA;;;;;;;;AAEA,IAAMA,0GAAN;;AAGA;;;;;;IAKqBC,kB;;;AAEjB;;;;;;AAMA,gCAAYC,EAAZ,EAAgBC,GAAhB,EAAqB;AAAA;;AAGjB;;;;AAHiB,4IACXD,EADW,EACPC,IAAIC,IADG;;AAOjB,cAAKC,IAAL,GAAY,2BAAYF,IAAIG,WAAhB,EAA6B,qBAA7B,CAAZ;;AAEA;;;;AAIA,cAAKC,QAAL,GAAgB,2BAAYJ,IAAII,QAAhB,EAA0B,gBAA1B,CAAhB;;AAEA;;;;AAIA,cAAKC,UAAL,GAAkBL,IAAIM,WAAtB;;AAEA;;;;AAIA,cAAKC,cAAL,GAAsBC,QAAQR,IAAIS,eAAZ,CAAtB;;AAEA;;;;AAIA,cAAKC,UAAL,GAAkB,2BAAYV,IAAIU,UAAhB,EACd,MAAKL,UAAL,GAAkB,iBADJ,CAAlB;;AAGA;;;;AAIA,cAAKM,cAAL,GAAsB,2BAAYX,IAAIY,eAAhB,EAClB,gBADkB,CAAtB;;AAGA;AACAZ,YAAIa,gBAAJ,GAAuBb,IAAIa,gBAAJ,KAAyB,KAAzB,GACnB,KADmB,GACXd,GAAGe,UADf;;AAGA;;;;;AAKA,cAAKC,YAAL,GAAoB,IAApB;;AAEA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AAUD,OAAV,CAAjB;AAAA,yBAAnC;;AAEA,6BAAKlJ,KAAL,CAAWZ,SAAX,GAAuB,EAAvB;AACA,4CAAU,KAAKY,KAAf;AACA,6BAAKA,KAAL,GAAa,IAAb;;AAEA,6BAAKC,MAAL,CAAYb,SAAZ,GAAwB,EAAxB;AACA,4CAAU,KAAKa,MAAf;AACA,6BAAKA,MAAL,GAAc,IAAd;AACA,6BAAK5U,WAAL,GAAmB,KAAnB;AACH;;;;;;kBA7SgBic,iB;;;;;;;;;;;;;;ACZrB;;;;AACA;;;;AAEA,IAAI,CAAC,WAAK/S,aAAV,EAAyB;AACrB+U,IAAA,mBAAAA,CAAQ,GAAR;AACH;;;;;;;;;;ACJD;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA,sBAAsB;AACtB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,2BAA2B;AAC3B,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,sDAAsD,4BAA4B,EAAE;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,8BAA8B;AACnD;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA,KAAK;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","file":"tf-0-274dfa7999625931f0bf.js","sourcesContent":["var map = {\n\t\"./array\": 70,\n\t\"./array.js\": 70,\n\t\"./const\": 15,\n\t\"./const.js\": 15,\n\t\"./cookie\": 116,\n\t\"./cookie.js\": 116,\n\t\"./dom\": 10,\n\t\"./dom.js\": 10,\n\t\"./emitter\": 109,\n\t\"./emitter.js\": 109,\n\t\"./event\": 19,\n\t\"./event.js\": 19,\n\t\"./extensions/advancedGrid/adapterEzEditTable\": 441,\n\t\"./extensions/advancedGrid/adapterEzEditTable.js\": 441,\n\t\"./extensions/advancedGrid/advancedGrid\": 443,\n\t\"./extensions/advancedGrid/advancedGrid.js\": 443,\n\t\"./extensions/colOps/colOps\": 444,\n\t\"./extensions/colOps/colOps.js\": 444,\n\t\"./extensions/colsVisibility/colsVisibility\": 445,\n\t\"./extensions/colsVisibility/colsVisibility.js\": 445,\n\t\"./extensions/filtersVisibility/filtersVisibility\": 446,\n\t\"./extensions/filtersVisibility/filtersVisibility.js\": 446,\n\t\"./extensions/sort/adapterSortabletable\": 442,\n\t\"./extensions/sort/adapterSortabletable.js\": 442,\n\t\"./extensions/sort/sort\": 447,\n\t\"./extensions/sort/sort.js\": 447,\n\t\"./feature\": 11,\n\t\"./feature.js\": 11,\n\t\"./modules/alternateRows\": 125,\n\t\"./modules/alternateRows.js\": 125,\n\t\"./modules/baseDropdown\": 69,\n\t\"./modules/baseDropdown.js\": 69,\n\t\"./modules/checkList\": 128,\n\t\"./modules/checkList.js\": 128,\n\t\"./modules/clearButton\": 124,\n\t\"./modules/clearButton.js\": 124,\n\t\"./modules/dateType\": 111,\n\t\"./modules/dateType.js\": 111,\n\t\"./modules/dropdown\": 110,\n\t\"./modules/dropdown.js\": 110,\n\t\"./modules/gridLayout\": 117,\n\t\"./modules/gridLayout.js\": 117,\n\t\"./modules/hash\": 114,\n\t\"./modules/hash.js\": 114,\n\t\"./modules/help\": 112,\n\t\"./modules/help.js\": 112,\n\t\"./modules/highlightKeywords\": 119,\n\t\"./modules/highlightKeywords.js\": 119,\n\t\"./modules/loader\": 118,\n\t\"./modules/loader.js\": 118,\n\t\"./modules/markActiveColumns\": 121,\n\t\"./modules/markActiveColumns.js\": 121,\n\t\"./modules/noResults\": 126,\n\t\"./modules/noResults.js\": 126,\n\t\"./modules/paging\": 127,\n\t\"./modules/paging.js\": 127,\n\t\"./modules/popupFilter\": 120,\n\t\"./modules/popupFilter.js\": 120,\n\t\"./modules/rowsCounter\": 122,\n\t\"./modules/rowsCounter.js\": 122,\n\t\"./modules/state\": 113,\n\t\"./modules/state.js\": 113,\n\t\"./modules/statusBar\": 123,\n\t\"./modules/statusBar.js\": 123,\n\t\"./modules/storage\": 115,\n\t\"./modules/storage.js\": 115,\n\t\"./modules/toolbar\": 33,\n\t\"./modules/toolbar.js\": 33,\n\t\"./number\": 68,\n\t\"./number.js\": 68,\n\t\"./root\": 16,\n\t\"./root.js\": 16,\n\t\"./settings\": 7,\n\t\"./settings.js\": 7,\n\t\"./sort\": 107,\n\t\"./sort.js\": 107,\n\t\"./string\": 21,\n\t\"./string.js\": 21,\n\t\"./tablefilter\": 108,\n\t\"./tablefilter.js\": 108,\n\t\"./types\": 3,\n\t\"./types.js\": 3\n};\nfunction webpackContext(req) {\n\treturn __webpack_require__(webpackContextResolve(req));\n};\nfunction webpackContextResolve(req) {\n\tvar id = map[req];\n\tif(!(id + 1)) // check for number or string\n\t\tthrow new Error(\"Cannot find module '\" + req + \"'.\");\n\treturn id;\n};\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 440;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src ^\\.\\/.*$\n// module id = 440\n// module chunks = 0","import {Feature} from '../../feature';\r\nimport {tag} from '../../dom';\r\nimport {INPUT} from '../../const';\r\nimport {defaultsStr} from '../../settings';\r\nimport {root} from '../../root';\r\n\r\nconst INSTANTIATION_ERROR = `Failed to instantiate EditTable object.\r\n \\n\"ezEditTable\" dependency not found.`;\r\n\r\n/**\r\n * Adapter module for ezEditTable, an external library providing advanced\r\n * grid features (selection and edition):\r\n * http://codecanyon.net/item/ezedittable-enhance-html-tables/2425123?ref=koalyptus\r\n */\r\nexport default class AdapterEzEditTable extends Feature {\r\n\r\n /**\r\n * Creates an instance of AdapterEzEditTable\r\n *\r\n * @param {TableFilter} tf TableFilter instance\r\n * @param {Object} cfg Configuration options for ezEditTable library\r\n */\r\n constructor(tf, cfg) {\r\n super(tf, cfg.name);\r\n\r\n /**\r\n * Module description\r\n * @type {String}\r\n */\r\n this.desc = defaultsStr(cfg.description, 'ezEditTable adapter');\r\n\r\n /**\r\n * Filename of ezEditTable library\r\n * @type {String}\r\n */\r\n this.filename = defaultsStr(cfg.filename, 'ezEditTable.js');\r\n\r\n /**\r\n * Path to ezEditTable library\r\n * @type {String}\r\n */\r\n this.vendorPath = cfg.vendor_path;\r\n\r\n /**\r\n * Load ezEditTable stylesheet\r\n * @type {Boolean}\r\n */\r\n this.loadStylesheet = Boolean(cfg.load_stylesheet);\r\n\r\n /**\r\n * Path to ezEditTable stylesheet\r\n * @type {String}\r\n */\r\n this.stylesheet = defaultsStr(cfg.stylesheet,\r\n this.vendorPath + 'ezEditTable.css');\r\n\r\n /**\r\n * Name of ezEditTable stylesheet\r\n * @type {String}\r\n */\r\n this.stylesheetName = defaultsStr(cfg.stylesheet_name,\r\n 'ezEditTableCss');\r\n\r\n // Enable the ezEditTable's scroll into view behaviour if grid layout on\r\n cfg.scroll_into_view = cfg.scroll_into_view === false ?\r\n false : tf.gridLayout;\r\n\r\n /**\r\n * ezEditTable instance\r\n * @type {EditTable}\r\n * @private\r\n */\r\n this._ezEditTable = null;\r\n\r\n /**\r\n * ezEditTable configuration\r\n * @private\r\n */\r\n this.cfg = cfg;\r\n\r\n this.enable();\r\n }\r\n\r\n /**\r\n * Conditionally load ezEditTable library and set advanced grid\r\n */\r\n init() {\r\n if (this.initialized) {\r\n return;\r\n }\r\n let tf = this.tf;\r\n if (root.EditTable) {\r\n this._setAdvancedGrid();\r\n } else {\r\n let path = this.vendorPath + this.filename;\r\n tf.import(this.filename, path, () => this._setAdvancedGrid());\r\n }\r\n if (this.loadStylesheet && !tf.isImported(this.stylesheet, 'link')) {\r\n tf.import(this.stylesheetName, this.stylesheet, null, 'link');\r\n }\r\n\r\n // TODO: hack to prevent ezEditTable enter key event hijaking.\r\n // Needs to be fixed in the vendor's library\r\n this.emitter.on(['filter-focus', 'filter-blur'],\r\n () => this._toggleForInputFilter());\r\n\r\n /**\r\n * @inherited\r\n */\r\n this.initialized = true;\r\n }\r\n\r\n /**\r\n * Instantiate ezEditTable component for advanced grid features\r\n * @private\r\n */\r\n _setAdvancedGrid() {\r\n let tf = this.tf;\r\n\r\n //start row for EditTable constructor needs to be calculated\r\n let startRow,\r\n cfg = this.cfg,\r\n thead = tag(tf.dom(), 'thead');\r\n\r\n //if thead exists and startRow not specified, startRow is calculated\r\n //automatically by EditTable\r\n if (thead.length > 0 && !cfg.startRow) {\r\n startRow = undefined;\r\n }\r\n //otherwise startRow config property if any or TableFilter refRow\r\n else {\r\n startRow = cfg.startRow || tf.refRow;\r\n }\r\n\r\n cfg.base_path = cfg.base_path || tf.basePath + 'ezEditTable/';\r\n let editable = cfg.editable;\r\n let selectable = cfg.selection;\r\n\r\n if (selectable) {\r\n cfg.default_selection = cfg.default_selection || 'row';\r\n }\r\n //CSS Styles\r\n cfg.active_cell_css = cfg.active_cell_css || 'ezETSelectedCell';\r\n\r\n let _lastValidRowIndex = 0;\r\n let _lastRowIndex = 0;\r\n\r\n if (selectable) {\r\n //Row navigation needs to be calculated according to TableFilter's\r\n //validRowsIndex array\r\n let onAfterSelection = function (et, selectedElm, e) {\r\n let slc = et.Selection;\r\n //Next valid filtered row needs to be selected\r\n let doSelect = function (nextRowIndex) {\r\n if (et.defaultSelection === 'row') {\r\n /* eslint-disable */\r\n slc.SelectRowByIndex(nextRowIndex);\r\n /* eslint-enable */\r\n } else {\r\n /* eslint-disable */\r\n et.ClearSelections();\r\n /* eslint-enable */\r\n let cellIndex = selectedElm.cellIndex,\r\n row = tf.dom().rows[nextRowIndex];\r\n if (et.defaultSelection === 'both') {\r\n /* eslint-disable */\r\n slc.SelectRowByIndex(nextRowIndex);\r\n /* eslint-enable */\r\n }\r\n if (row) {\r\n /* eslint-disable */\r\n slc.SelectCell(row.cells[cellIndex]);\r\n /* eslint-enable */\r\n }\r\n }\r\n //Table is filtered\r\n if (tf.validRowsIndex.length !== tf.getRowsNb()) {\r\n let r = tf.dom().rows[nextRowIndex];\r\n if (r) {\r\n r.scrollIntoView(false);\r\n }\r\n if (cell) {\r\n if (cell.cellIndex === (tf.getCellsNb() - 1) &&\r\n tf.gridLayout) {\r\n tf.tblCont.scrollLeft = 100000000;\r\n }\r\n else if (cell.cellIndex === 0 && tf.gridLayout) {\r\n tf.tblCont.scrollLeft = 0;\r\n } else {\r\n cell.scrollIntoView(false);\r\n }\r\n }\r\n }\r\n };\r\n\r\n //table is not filtered\r\n if (!tf.validRowsIndex) {\r\n return;\r\n }\r\n let validIndexes = tf.validRowsIndex,\r\n validIdxLen = validIndexes.length,\r\n row = et.defaultSelection !== 'row' ?\r\n selectedElm.parentNode : selectedElm,\r\n //cell for default_selection = 'both' or 'cell'\r\n cell = selectedElm.nodeName === 'TD' ? selectedElm : null,\r\n /* eslint-disable */\r\n keyCode = e !== undefined ? et.Event.GetKey(e) : 0,\r\n /* eslint-enable */\r\n isRowValid = validIndexes.indexOf(row.rowIndex) !== -1,\r\n nextRowIndex,\r\n paging = tf.feature('paging'),\r\n //pgup/pgdown keys\r\n d = keyCode === 34 || keyCode === 33 ?\r\n (paging && paging.pageLength || et.nbRowsPerPage) :\r\n 1;\r\n\r\n //If next row is not valid, next valid filtered row needs to be\r\n //calculated\r\n if (!isRowValid) {\r\n //Selection direction up/down\r\n if (row.rowIndex > _lastRowIndex) {\r\n //last row\r\n if (row.rowIndex >= validIndexes[validIdxLen - 1]) {\r\n nextRowIndex = validIndexes[validIdxLen - 1];\r\n } else {\r\n let calcRowIndex = (_lastValidRowIndex + d);\r\n if (calcRowIndex > (validIdxLen - 1)) {\r\n nextRowIndex = validIndexes[validIdxLen - 1];\r\n } else {\r\n nextRowIndex = validIndexes[calcRowIndex];\r\n }\r\n }\r\n } else {\r\n //first row\r\n if (row.rowIndex <= validIndexes[0]) {\r\n nextRowIndex = validIndexes[0];\r\n } else {\r\n let v = validIndexes[_lastValidRowIndex - d];\r\n nextRowIndex = v ? v : validIndexes[0];\r\n }\r\n }\r\n _lastRowIndex = row.rowIndex;\r\n doSelect(nextRowIndex);\r\n } else {\r\n //If filtered row is valid, special calculation for\r\n //pgup/pgdown keys\r\n if (keyCode !== 34 && keyCode !== 33) {\r\n _lastValidRowIndex = validIndexes.indexOf(row.rowIndex);\r\n _lastRowIndex = row.rowIndex;\r\n } else {\r\n if (keyCode === 34) { //pgdown\r\n //last row\r\n if ((_lastValidRowIndex + d) <= (validIdxLen - 1)) {\r\n nextRowIndex = validIndexes[\r\n _lastValidRowIndex + d];\r\n } else {\r\n nextRowIndex = [validIdxLen - 1];\r\n }\r\n } else { //pgup\r\n //first row\r\n if ((_lastValidRowIndex - d) <= validIndexes[0]) {\r\n nextRowIndex = validIndexes[0];\r\n } else {\r\n nextRowIndex = validIndexes[\r\n _lastValidRowIndex - d];\r\n }\r\n }\r\n _lastRowIndex = nextRowIndex;\r\n _lastValidRowIndex = validIndexes.indexOf(nextRowIndex);\r\n doSelect(nextRowIndex);\r\n }\r\n }\r\n };\r\n\r\n //Page navigation has to be enforced whenever selected row is out of\r\n //the current page range\r\n let onBeforeSelection = function (et, selectedElm) {\r\n let row = et.defaultSelection !== 'row' ?\r\n selectedElm.parentNode : selectedElm;\r\n if (tf.paging) {\r\n if (tf.feature('paging').nbPages > 1) {\r\n let paging = tf.feature('paging');\r\n //page length is re-assigned in case it has changed\r\n et.nbRowsPerPage = paging.pageLength;\r\n let validIndexes = tf.validRowsIndex,\r\n validIdxLen = validIndexes.length,\r\n pagingEndRow = parseInt(paging.startPagingRow, 10) +\r\n parseInt(paging.pageLength, 10);\r\n let rowIndex = row.rowIndex;\r\n\r\n if ((rowIndex === validIndexes[validIdxLen - 1]) &&\r\n paging.currentPageNb !== paging.nbPages) {\r\n paging.setPage('last');\r\n }\r\n else if ((rowIndex === validIndexes[0]) &&\r\n paging.currentPageNb !== 1) {\r\n paging.setPage('first');\r\n }\r\n else if (rowIndex > validIndexes[pagingEndRow - 1] &&\r\n rowIndex < validIndexes[validIdxLen - 1]) {\r\n paging.setPage('next');\r\n }\r\n else if (\r\n rowIndex < validIndexes[paging.startPagingRow] &&\r\n rowIndex > validIndexes[0]) {\r\n paging.setPage('previous');\r\n }\r\n }\r\n }\r\n };\r\n\r\n //Selected row needs to be visible when paging is activated\r\n if (tf.paging) {\r\n tf.feature('paging').onAfterChangePage = function (paging) {\r\n let advGrid = paging.tf.extension('advancedGrid');\r\n let et = advGrid._ezEditTable;\r\n let slc = et.Selection;\r\n /* eslint-disable */\r\n let row = slc.GetActiveRow();\r\n /* eslint-enable */\r\n if (row) {\r\n row.scrollIntoView(false);\r\n }\r\n /* eslint-disable */\r\n let cell = slc.GetActiveCell();\r\n /* eslint-enable */\r\n if (cell) {\r\n cell.scrollIntoView(false);\r\n }\r\n };\r\n }\r\n\r\n //Rows navigation when rows are filtered is performed with the\r\n //EditTable row selection callback events\r\n if (cfg.default_selection === 'row') {\r\n let fnB = cfg.on_before_selected_row;\r\n cfg.on_before_selected_row = function () {\r\n var args = arguments;\r\n onBeforeSelection(args[0], args[1], args[2]);\r\n if (fnB) {\r\n fnB.call(null, args[0], args[1], args[2]);\r\n }\r\n };\r\n let fnA = cfg.on_after_selected_row;\r\n cfg.on_after_selected_row = function () {\r\n var args = arguments;\r\n onAfterSelection(args[0], args[1], args[2]);\r\n if (fnA) {\r\n fnA.call(null, args[0], args[1], args[2]);\r\n }\r\n };\r\n } else {\r\n let fnD = cfg.on_before_selected_cell;\r\n cfg.on_before_selected_cell = function () {\r\n var args = arguments;\r\n onBeforeSelection(args[0], args[1], args[2]);\r\n if (fnD) {\r\n fnD.call(null, args[0], args[1], args[2]);\r\n }\r\n };\r\n let fnC = cfg.on_after_selected_cell;\r\n cfg.on_after_selected_cell = function () {\r\n var args = arguments;\r\n onAfterSelection(args[0], args[1], args[2]);\r\n if (fnC) {\r\n fnC.call(null, args[0], args[1], args[2]);\r\n }\r\n };\r\n }\r\n }\r\n if (editable) {\r\n //Added or removed rows, TF rows number needs to be re-calculated\r\n let fnE = cfg.on_added_dom_row;\r\n cfg.on_added_dom_row = function () {\r\n var args = arguments;\r\n tf.nbFilterableRows++;\r\n if (!tf.paging) {\r\n tf.emitter.emit('rows-changed', tf, this);\r\n } else {\r\n tf.nbFilterableRows++;\r\n tf.paging = false;\r\n tf.feature('paging').destroy();\r\n tf.feature('paging').reset();\r\n }\r\n if (tf.alternateRows) {\r\n tf.feature('alternateRows').init();\r\n }\r\n if (fnE) {\r\n fnE.call(null, args[0], args[1], args[2]);\r\n }\r\n };\r\n if (cfg.actions && cfg.actions['delete']) {\r\n let fnF = cfg.actions['delete'].on_after_submit;\r\n cfg.actions['delete'].on_after_submit = function () {\r\n var args = arguments;\r\n tf.nbFilterableRows--;\r\n if (!tf.paging) {\r\n tf.emitter.emit('rows-changed', tf, this);\r\n } else {\r\n tf.nbFilterableRows--;\r\n tf.paging = false;\r\n tf.feature('paging').destroy();\r\n tf.feature('paging').reset(false);\r\n }\r\n if (tf.alternateRows) {\r\n tf.feature('alternateRows').init();\r\n }\r\n if (fnF) {\r\n fnF.call(null, args[0], args[1]);\r\n }\r\n };\r\n }\r\n }\r\n\r\n try {\r\n /* eslint-disable */\r\n this._ezEditTable = new EditTable(tf.id, cfg, startRow);\r\n this._ezEditTable.Init();\r\n /* eslint-enable */\r\n } catch (e) { throw new Error(INSTANTIATION_ERROR); }\r\n\r\n this.initialized = true;\r\n }\r\n\r\n /**\r\n * Reset advanced grid when previously removed\r\n */\r\n reset() {\r\n let ezEditTable = this._ezEditTable;\r\n if (ezEditTable) {\r\n if (this.cfg.selection) {\r\n /* eslint-disable */\r\n ezEditTable.Selection.Set();\r\n /* eslint-enable */\r\n }\r\n if (this.cfg.editable) {\r\n /* eslint-disable */\r\n ezEditTable.Editable.Set();\r\n /* eslint-enable */\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Toggle behaviour\r\n */\r\n toggle() {\r\n let ezEditTable = this._ezEditTable;\r\n if (ezEditTable.editable) {\r\n /* eslint-disable */\r\n ezEditTable.Editable.Remove();\r\n /* eslint-enable */\r\n } else {\r\n /* eslint-disable */\r\n ezEditTable.Editable.Set();\r\n /* eslint-enable */\r\n }\r\n if (ezEditTable.selection) {\r\n /* eslint-disable */\r\n ezEditTable.Selection.Remove();\r\n /* eslint-enable */\r\n } else {\r\n /* eslint-disable */\r\n ezEditTable.Selection.Set();\r\n /* eslint-enable */\r\n }\r\n }\r\n\r\n _toggleForInputFilter() {\r\n let tf = this.tf;\r\n if (!tf.getActiveFilterId()) {\r\n return;\r\n }\r\n let colIndex = tf.getColumnIndexFromFilterId(tf.getActiveFilterId());\r\n let filterType = tf.getFilterType(colIndex);\r\n if (filterType === INPUT) {\r\n this.toggle();\r\n }\r\n }\r\n\r\n /**\r\n * Remove advanced grid\r\n */\r\n destroy() {\r\n if (!this.initialized) {\r\n return;\r\n }\r\n let ezEditTable = this._ezEditTable;\r\n if (ezEditTable) {\r\n if (this.cfg.selection) {\r\n /* eslint-disable */\r\n ezEditTable.Selection.ClearSelections();\r\n ezEditTable.Selection.Remove();\r\n /* eslint-enable */\r\n }\r\n if (this.cfg.editable) {\r\n /* eslint-disable */\r\n ezEditTable.Editable.Remove();\r\n /* eslint-enable */\r\n }\r\n }\r\n\r\n this.emitter.off(['filter-focus', 'filter-blur'],\r\n () => this._toggleForInputFilter());\r\n this.initialized = false;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/extensions/advancedGrid/adapterEzEditTable.js","import {Feature} from '../../feature';\r\nimport {isUndef, isObj, EMPTY_FN} from '../../types';\r\nimport {createElm, elm, getText, tag} from '../../dom';\r\nimport {addEvt} from '../../event';\r\nimport {parse as parseNb} from '../../number';\r\nimport {\r\n NONE, CELL_TAG, HEADER_TAG, STRING, NUMBER, DATE, FORMATTED_NUMBER,\r\n IP_ADDRESS\r\n} from '../../const';\r\nimport {defaultsStr, defaultsFn, defaultsArr} from '../../settings';\r\n\r\n/**\r\n * SortableTable Adapter module\r\n */\r\nexport default class AdapterSortableTable extends Feature {\r\n\r\n /**\r\n * Creates an instance of AdapterSortableTable\r\n * @param {TableFilter} tf TableFilter instance\r\n * @param {Object} opts Configuration object\r\n */\r\n constructor(tf, opts) {\r\n super(tf, opts.name);\r\n\r\n /**\r\n * Module name\r\n * @type {String}\r\n */\r\n this.name = opts.name;\r\n\r\n /**\r\n * Module description\r\n * @type {String}\r\n */\r\n this.desc = defaultsStr(opts.description, 'Sortable table');\r\n\r\n /**\r\n * Indicate whether table previously sorted\r\n * @type {Boolean}\r\n * @private\r\n */\r\n this.sorted = false;\r\n\r\n /**\r\n * List of sort type per column basis\r\n * @type {Array}\r\n */\r\n this.sortTypes = defaultsArr(opts.types, tf.colTypes);\r\n\r\n /**\r\n * Column to be sorted at initialization, ie:\r\n * sort_col_at_start: [1, true]\r\n * @type {Array}\r\n */\r\n this.sortColAtStart = defaultsArr(opts.sort_col_at_start, null);\r\n\r\n /**\r\n * Enable asynchronous sort, if triggers are external\r\n * @type {Boolean}\r\n */\r\n this.asyncSort = Boolean(opts.async_sort);\r\n\r\n /**\r\n * List of element IDs triggering sort on a per column basis\r\n * @type {Array}\r\n */\r\n this.triggerIds = defaultsArr(opts.trigger_ids, []);\r\n\r\n // edit .sort-arrow.descending / .sort-arrow.ascending in\r\n // tablefilter.css to reflect any path change\r\n /**\r\n * Path to images\r\n * @type {String}\r\n */\r\n this.imgPath = defaultsStr(opts.images_path, tf.themesPath);\r\n\r\n /**\r\n * Blank image file name\r\n * @type {String}\r\n */\r\n this.imgBlank = defaultsStr(opts.image_blank, 'blank.png');\r\n\r\n /**\r\n * Css class for sort indicator image\r\n * @type {String}\r\n */\r\n this.imgClassName = defaultsStr(opts.image_class_name, 'sort-arrow');\r\n\r\n /**\r\n * Css class for ascending sort indicator image\r\n * @type {String}\r\n */\r\n this.imgAscClassName = defaultsStr(opts.image_asc_class_name,\r\n 'ascending');\r\n\r\n /**\r\n * Css class for descending sort indicator image\r\n * @type {String}\r\n */\r\n this.imgDescClassName = defaultsStr(opts.image_desc_class_name,\r\n 'descending');\r\n\r\n /**\r\n * Cell attribute key storing custom value used for sorting\r\n * @type {String}\r\n */\r\n this.customKey = defaultsStr(opts.custom_key, 'data-tf-sortKey');\r\n\r\n /**\r\n * Callback fired when sort extension is instanciated\r\n * @type {Function}\r\n */\r\n this.onSortLoaded = defaultsFn(opts.on_sort_loaded, EMPTY_FN);\r\n\r\n /**\r\n * Callback fired before a table column is sorted\r\n * @type {Function}\r\n */\r\n this.onBeforeSort = defaultsFn(opts.on_before_sort, EMPTY_FN);\r\n\r\n /**\r\n * Callback fired after a table column is sorted\r\n * @type {Function}\r\n */\r\n this.onAfterSort = defaultsFn(opts.on_after_sort, EMPTY_FN);\r\n\r\n /**\r\n * SortableTable instance\r\n * @private\r\n */\r\n this.stt = null;\r\n\r\n this.enable();\r\n }\r\n\r\n /**\r\n * Initializes AdapterSortableTable instance\r\n */\r\n init() {\r\n if (this.initialized) {\r\n return;\r\n }\r\n let tf = this.tf;\r\n let adpt = this;\r\n\r\n // SortableTable class sanity check (sortabletable.js)\r\n if (isUndef(SortableTable)) {\r\n throw new Error('SortableTable class not found.');\r\n }\r\n\r\n // Add any date format if needed\r\n this.emitter.emit('add-date-type-formats', this.tf, this.sortTypes);\r\n\r\n this.overrideSortableTable();\r\n this.setSortTypes();\r\n\r\n this.onSortLoaded(tf, this);\r\n\r\n /*** SortableTable callbacks ***/\r\n this.stt.onbeforesort = function () {\r\n adpt.onBeforeSort(tf, adpt.stt.sortColumn);\r\n\r\n /*** sort behaviour for paging ***/\r\n if (tf.paging) {\r\n tf.feature('paging').disable();\r\n }\r\n };\r\n\r\n this.stt.onsort = function () {\r\n adpt.sorted = true;\r\n\r\n //sort behaviour for paging\r\n if (tf.paging) {\r\n let paginator = tf.feature('paging');\r\n // recalculate valid rows index as sorting may have change it\r\n tf.getValidRows(true);\r\n paginator.enable();\r\n paginator.setPage(paginator.getPage());\r\n }\r\n\r\n adpt.onAfterSort(tf, adpt.stt.sortColumn, adpt.stt.descending);\r\n adpt.emitter.emit('column-sorted', tf, adpt.stt.sortColumn,\r\n adpt.stt.descending);\r\n };\r\n\r\n // Column sort at start\r\n let sortColAtStart = adpt.sortColAtStart;\r\n if (sortColAtStart) {\r\n this.stt.sort(sortColAtStart[0], sortColAtStart[1]);\r\n }\r\n\r\n this.emitter.on(['sort'],\r\n (tf, colIdx, desc) => this.sortByColumnIndex(colIdx, desc));\r\n\r\n /** @inherited */\r\n this.initialized = true;\r\n\r\n this.emitter.emit('sort-initialized', tf, this);\r\n }\r\n\r\n /**\r\n * Sort specified column\r\n * @param {Number} colIdx Column index\r\n * @param {Boolean} desc Optional: descending manner\r\n */\r\n sortByColumnIndex(colIdx, desc) {\r\n this.stt.sort(colIdx, desc);\r\n }\r\n\r\n /**\r\n * Set SortableTable overrides for TableFilter integration\r\n */\r\n overrideSortableTable() {\r\n let adpt = this,\r\n tf = this.tf;\r\n\r\n /**\r\n * Overrides headerOnclick method in order to handle th event\r\n * @param {Object} e [description]\r\n */\r\n SortableTable.prototype.headerOnclick = function (evt) {\r\n if (!adpt.initialized) {\r\n return;\r\n }\r\n\r\n // find Header element\r\n let el = evt.target || evt.srcElement;\r\n\r\n while (el.tagName !== CELL_TAG && el.tagName !== HEADER_TAG) {\r\n el = el.parentNode;\r\n }\r\n\r\n this.sort(\r\n SortableTable.msie ?\r\n SortableTable.getCellIndex(el) : el.cellIndex\r\n );\r\n };\r\n\r\n /**\r\n * Overrides getCellIndex IE returns wrong cellIndex when columns are\r\n * hidden\r\n * @param {Object} oTd TD element\r\n * @return {Number} Cell index\r\n */\r\n SortableTable.getCellIndex = function (oTd) {\r\n let cells = oTd.parentNode.cells,\r\n l = cells.length, i;\r\n for (i = 0; cells[i] !== oTd && i < l; i++) { }\r\n return i;\r\n };\r\n\r\n /**\r\n * Overrides initHeader in order to handle filters row position\r\n * @param {Array} oSortTypes\r\n */\r\n SortableTable.prototype.initHeader = function (oSortTypes) {\r\n let stt = this;\r\n if (!stt.tHead) {\r\n if (tf.gridLayout) {\r\n stt.tHead = tf.feature('gridLayout').headTbl.tHead;\r\n } else {\r\n return;\r\n }\r\n }\r\n\r\n stt.headersRow = tf.headersRow;\r\n let cells = stt.tHead.rows[stt.headersRow].cells;\r\n stt.sortTypes = oSortTypes || [];\r\n let l = cells.length;\r\n let img, c;\r\n\r\n for (let i = 0; i < l; i++) {\r\n c = cells[i];\r\n if (stt.sortTypes[i] !== null && stt.sortTypes[i] !== 'None') {\r\n c.style.cursor = 'pointer';\r\n img = createElm('img',\r\n ['src', adpt.imgPath + adpt.imgBlank]);\r\n c.appendChild(img);\r\n if (stt.sortTypes[i] !== null) {\r\n c.setAttribute('_sortType', stt.sortTypes[i]);\r\n }\r\n addEvt(c, 'click', stt._headerOnclick);\r\n } else {\r\n c.setAttribute('_sortType', oSortTypes[i]);\r\n c._sortType = 'None';\r\n }\r\n }\r\n stt.updateHeaderArrows();\r\n };\r\n\r\n /**\r\n * Overrides updateHeaderArrows in order to handle arrows indicators\r\n */\r\n SortableTable.prototype.updateHeaderArrows = function () {\r\n let stt = this;\r\n let cells, l, img;\r\n\r\n // external headers\r\n if (adpt.asyncSort && adpt.triggerIds.length > 0) {\r\n let triggers = adpt.triggerIds;\r\n cells = [];\r\n l = triggers.length;\r\n for (let j = 0; j < l; j++) {\r\n cells.push(elm(triggers[j]));\r\n }\r\n } else {\r\n if (!this.tHead) {\r\n return;\r\n }\r\n cells = stt.tHead.rows[stt.headersRow].cells;\r\n l = cells.length;\r\n }\r\n for (let i = 0; i < l; i++) {\r\n let cell = cells[i];\r\n if (!cell) {\r\n continue;\r\n }\r\n let cellAttr = cell.getAttribute('_sortType');\r\n if (cellAttr !== null && cellAttr !== 'None') {\r\n img = cell.lastChild || cell;\r\n if (img.nodeName.toLowerCase() !== 'img') {\r\n img = createElm('img',\r\n ['src', adpt.imgPath + adpt.imgBlank]);\r\n cell.appendChild(img);\r\n }\r\n if (i === stt.sortColumn) {\r\n img.className = adpt.imgClassName + ' ' +\r\n (this.descending ?\r\n adpt.imgDescClassName :\r\n adpt.imgAscClassName);\r\n } else {\r\n img.className = adpt.imgClassName;\r\n }\r\n }\r\n }\r\n };\r\n\r\n /**\r\n * Overrides getRowValue for custom key value feature\r\n * @param {Object} oRow Row element\r\n * @param {String} sType\r\n * @param {Number} nColumn\r\n * @return {String}\r\n */\r\n SortableTable.prototype.getRowValue = function (oRow, sType, nColumn) {\r\n let stt = this;\r\n // if we have defined a custom getRowValue use that\r\n let sortTypeInfo = stt._sortTypeInfo[sType];\r\n if (sortTypeInfo && sortTypeInfo.getRowValue) {\r\n return sortTypeInfo.getRowValue(oRow, nColumn);\r\n }\r\n let c = oRow.cells[nColumn];\r\n let s = SortableTable.getInnerText(c);\r\n return stt.getValueFromString(s, sType);\r\n };\r\n\r\n /**\r\n * Overrides getInnerText in order to avoid Firefox unexpected sorting\r\n * behaviour with untrimmed text elements\r\n * @param {Object} oNode DOM element\r\n * @return {String} DOM element inner text\r\n */\r\n SortableTable.getInnerText = function (oNode) {\r\n if (!oNode) {\r\n return;\r\n }\r\n if (oNode.getAttribute(adpt.customKey)) {\r\n return oNode.getAttribute(adpt.customKey);\r\n } else {\r\n return getText(oNode);\r\n }\r\n };\r\n }\r\n\r\n /**\r\n * Adds a sort type\r\n */\r\n addSortType(...args) {\r\n // Extract the arguments\r\n let [id, caster, sorter] = args;\r\n SortableTable.prototype.addSortType(id, caster, sorter);\r\n }\r\n\r\n /**\r\n * Sets the sort types on a column basis\r\n * @private\r\n */\r\n setSortTypes() {\r\n let tf = this.tf,\r\n sortTypes = this.sortTypes,\r\n _sortTypes = [];\r\n\r\n tf.eachCol((i) => {\r\n let colType;\r\n if (sortTypes[i]) {\r\n colType = sortTypes[i];\r\n if (isObj(colType)) {\r\n if (colType.type === DATE) {\r\n colType = this._addDateType(i, sortTypes);\r\n }\r\n else if (colType.type === FORMATTED_NUMBER) {\r\n let decimal = colType.decimal || tf.decimalSeparator;\r\n colType = this._addNumberType(i, decimal);\r\n }\r\n } else {\r\n colType = colType.toLowerCase();\r\n if (colType === DATE) {\r\n colType = this._addDateType(i, sortTypes);\r\n }\r\n else if (colType === FORMATTED_NUMBER ||\r\n colType === NUMBER) {\r\n colType = this._addNumberType(i, tf.decimalSeparator);\r\n }\r\n else if (colType === NONE) {\r\n // TODO: normalise 'none' vs 'None'\r\n colType = 'None';\r\n }\r\n }\r\n } else {\r\n colType = STRING;\r\n }\r\n _sortTypes.push(colType);\r\n });\r\n\r\n //Public TF method to add sort type\r\n\r\n //Custom sort types\r\n this.addSortType('caseinsensitivestring', SortableTable.toUpperCase);\r\n this.addSortType(STRING);\r\n this.addSortType(IP_ADDRESS, ipAddress, sortIP);\r\n\r\n this.stt = new SortableTable(tf.dom(), _sortTypes);\r\n\r\n /*** external table headers adapter ***/\r\n if (this.asyncSort && this.triggerIds.length > 0) {\r\n let triggers = this.triggerIds;\r\n for (let j = 0; j < triggers.length; j++) {\r\n if (triggers[j] === null) {\r\n continue;\r\n }\r\n let trigger = elm(triggers[j]);\r\n if (trigger) {\r\n trigger.style.cursor = 'pointer';\r\n\r\n addEvt(trigger, 'click', (evt) => {\r\n let elm = evt.target;\r\n if (!this.tf.sort) {\r\n return;\r\n }\r\n this.stt.asyncSort(triggers.indexOf(elm.id));\r\n });\r\n trigger.setAttribute('_sortType', _sortTypes[j]);\r\n }\r\n }\r\n }\r\n }\r\n\r\n _addDateType(colIndex, types) {\r\n let tf = this.tf;\r\n let dateType = tf.feature('dateType');\r\n let locale = dateType.getOptions(colIndex, types).locale || tf.locale;\r\n let colType = `${DATE}-${locale}`;\r\n\r\n this.addSortType(colType, (value) => {\r\n let parsedDate = dateType.parse(value, locale);\r\n // Invalid date defaults to Wed Feb 04 -768 11:00:00\r\n return isNaN(+parsedDate) ? new Date(-86400000000000) : parsedDate;\r\n });\r\n return colType;\r\n }\r\n\r\n _addNumberType(colIndex, decimal) {\r\n let colType = `${FORMATTED_NUMBER}${decimal === '.' ? '' : '-custom'}`;\r\n\r\n this.addSortType(colType, (value) => {\r\n return parseNb(value, decimal);\r\n });\r\n return colType;\r\n }\r\n\r\n /**\r\n * Remove extension\r\n */\r\n destroy() {\r\n if (!this.initialized) {\r\n return;\r\n }\r\n let tf = this.tf;\r\n this.emitter.off(['sort'],\r\n (tf, colIdx, desc) => this.sortByColumnIndex(colIdx, desc));\r\n this.sorted = false;\r\n this.stt.destroy();\r\n\r\n let ids = tf.getFiltersId();\r\n for (let idx = 0; idx < ids.length; idx++) {\r\n let header = tf.getHeaderElement(idx);\r\n let img = tag(header, 'img');\r\n\r\n if (img.length === 1) {\r\n header.removeChild(img[0]);\r\n }\r\n }\r\n this.initialized = false;\r\n }\r\n\r\n}\r\n\r\n//Converters\r\nfunction ipAddress(value) {\r\n let vals = value.split('.');\r\n for (let x in vals) {\r\n let val = vals[x];\r\n while (3 > val.length) {\r\n val = '0' + val;\r\n }\r\n vals[x] = val;\r\n }\r\n return vals.join('.');\r\n}\r\n\r\nfunction sortIP(a, b) {\r\n let aa = ipAddress(a.value.toLowerCase());\r\n let bb = ipAddress(b.value.toLowerCase());\r\n if (aa === bb) {\r\n return 0;\r\n } else if (aa < bb) {\r\n return -1;\r\n } else {\r\n return 1;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/extensions/sort/adapterSortabletable.js","import AdapterEzEditTable from './adapterEzEditTable';\r\n\r\nexport default AdapterEzEditTable;\n\n\n// WEBPACK FOOTER //\n// ./src/extensions/advancedGrid/advancedGrid.js","import {Feature} from '../../feature';\r\nimport {createText, elm} from '../../dom';\r\nimport {isArray, isEmpty, EMPTY_FN} from '../../types';\r\nimport {numSortAsc} from '../../sort';\r\nimport {FORMATTED_NUMBER} from '../../const';\r\nimport formatNumber from 'format-number';\r\nimport {defaultsFn, defaultsArr} from '../../settings';\r\n\r\nconst EVENTS = [\r\n 'after-filtering',\r\n 'after-page-change',\r\n 'after-page-length-change'\r\n];\r\n\r\nconst SUM = 'sum';\r\nconst MEAN = 'mean';\r\nconst MIN = 'min';\r\nconst MAX = 'max';\r\nconst MEDIAN = 'median';\r\nconst Q1 = 'q1';\r\nconst Q3 = 'q3';\r\n\r\n/**\r\n * Column calculations extension\r\n */\r\nexport default class ColOps extends Feature {\r\n\r\n /**\r\n * Creates an instance of ColOps\r\n *\r\n * @param {TableFilter} tf TableFilter instance\r\n * @param {Object} opts Configuration object\r\n */\r\n constructor(tf, opts) {\r\n super(tf, opts.name);\r\n\r\n /**\r\n * Callback fired before columns operations start\r\n * @type {Function}\r\n */\r\n this.onBeforeOperation = defaultsFn(opts.on_before_operation, EMPTY_FN);\r\n\r\n /**\r\n * Callback fired after columns operations are completed\r\n * @type {Function}\r\n */\r\n this.onAfterOperation = defaultsFn(opts.on_after_operation, EMPTY_FN);\r\n\r\n /**\r\n * Configuration options\r\n * @type {Object}\r\n */\r\n this.opts = opts;\r\n\r\n /**\r\n * List of DOM element IDs containing column's calculation result\r\n * @type {Array}\r\n */\r\n this.labelIds = defaultsArr(opts.id, []);\r\n\r\n /**\r\n * List of columns' indexes for calculations\r\n * @type {Array}\r\n */\r\n this.colIndexes = defaultsArr(opts.col, []);\r\n\r\n /**\r\n * List of operations - possible values: 'sum', 'mean', 'min', 'max',\r\n * 'median', 'q1', 'q3'\r\n * @type {Array}\r\n */\r\n this.operations = defaultsArr(opts.operation, []);\r\n\r\n /**\r\n * List of write methods used to write the result - possible values:\r\n * 'innerHTML', 'setValue', 'createTextNode'\r\n * @type {Array}\r\n */\r\n this.outputTypes = defaultsArr(opts.write_method, []);\r\n\r\n /**\r\n * List of format objects used for formatting the result -\r\n * refer to https://github.com/componitable/format-number to check\r\n * configuration options\r\n * @type {Array}\r\n */\r\n this.formatResults = defaultsArr(opts.format_result, []);\r\n\r\n /**\r\n * List of row indexes displaying the results\r\n * @type {Array}\r\n */\r\n this.totRowIndexes = defaultsArr(opts.tot_row_index, []);\r\n\r\n /**\r\n * List of row indexes excluded from calculations\r\n * @type {Array}\r\n */\r\n this.excludeRows = defaultsArr(opts.exclude_row, []);\r\n\r\n /**\r\n * List of decimal precision for calculation results\r\n * @type {Array}\r\n */\r\n this.decimalPrecisions = defaultsArr(opts.decimal_precision, 2);\r\n\r\n this.enable();\r\n }\r\n\r\n /**\r\n * Initializes ColOps instance\r\n */\r\n init() {\r\n if (this.initialized) {\r\n return;\r\n }\r\n // subscribe to events\r\n this.emitter.on(EVENTS, () => this.calcAll());\r\n\r\n this.calcAll();\r\n\r\n /** @inherited */\r\n this.initialized = true;\r\n }\r\n\r\n /**\r\n * Calculates columns' values\r\n * Configuration options are stored in 'opts' property\r\n * - 'id' contains ids of elements showing result (array)\r\n * - 'col' contains the columns' indexes (array)\r\n * - 'operation' contains operation type (array, values: 'sum', 'mean',\r\n * 'min', 'max', 'median', 'q1', 'q3')\r\n * - 'write_method' array defines which method to use for displaying the\r\n * result (innerHTML, setValue, createTextNode) - default: 'innerHTML'\r\n * - 'tot_row_index' defines in which row results are displayed\r\n * (integers array)\r\n *\r\n * - changes made by Nuovella:\r\n * (1) optimized the routine (now it will only process each column once),\r\n * (2) added calculations for the median, lower and upper quartile.\r\n */\r\n calcAll() {\r\n let tf = this.tf;\r\n if (!tf.isInitialized()) {\r\n return;\r\n }\r\n\r\n this.onBeforeOperation(tf, this);\r\n this.emitter.emit('before-column-operation', tf, this);\r\n\r\n let { colIndexes, operations: colOperations, outputTypes,\r\n totRowIndexes, excludeRows, formatResults,\r\n decimalPrecisions } = this;\r\n\r\n //nuovella: determine unique list of columns to operate on\r\n let uIndexes = [];\r\n colIndexes.forEach((val) => {\r\n if (uIndexes.indexOf(val) === -1) {\r\n uIndexes.push(val);\r\n }\r\n });\r\n\r\n let nbCols = uIndexes.length,\r\n rows = tf.dom().rows,\r\n colValues = [];\r\n\r\n for (let u = 0; u < nbCols; u++) {\r\n //this retrieves col values\r\n //use uIndexes because we only want to pass through this loop\r\n //once for each column get the values in this unique column\r\n colValues.push(\r\n tf.getVisibleColumnData(uIndexes[u], false, excludeRows)\r\n );\r\n\r\n let curValues = colValues[u];\r\n\r\n //next: calculate all operations for this column\r\n let result = 0,\r\n operations = [],\r\n precisions = [],\r\n labels = [],\r\n writeType,\r\n formatResult = [],\r\n idx = 0;\r\n\r\n for (let k = 0; k < colIndexes.length; k++) {\r\n if (colIndexes[k] !== uIndexes[u]) {\r\n continue;\r\n }\r\n operations[idx] = (colOperations[k] || 'sum').toLowerCase();\r\n precisions[idx] = decimalPrecisions[k];\r\n labels[idx] = this.labelIds[k];\r\n writeType = isArray(outputTypes) ? outputTypes[k] : null;\r\n formatResult[idx] =\r\n this.configureFormat(uIndexes[u], formatResults[k]);\r\n idx++;\r\n }\r\n\r\n for (let i = 0; i < idx; i++) {\r\n // emit values before column calculation\r\n this.emitter.emit(\r\n 'before-column-calc',\r\n tf,\r\n this,\r\n uIndexes[u],\r\n curValues,\r\n operations[i],\r\n precisions[i]\r\n );\r\n\r\n result = Number(this.calc(curValues, operations[i], null));\r\n\r\n // emit column calculation result\r\n this.emitter.emit(\r\n 'column-calc',\r\n tf,\r\n this,\r\n uIndexes[u],\r\n result,\r\n operations[i],\r\n precisions[i]\r\n );\r\n\r\n // write result in expected DOM element\r\n this.writeResult(\r\n result,\r\n labels[i],\r\n writeType,\r\n precisions[i],\r\n formatResult[i]\r\n );\r\n\r\n }//for i\r\n\r\n // row(s) with result are always visible\r\n let totRow = totRowIndexes && totRowIndexes[u] ?\r\n rows[totRowIndexes[u]] : null;\r\n if (totRow) {\r\n totRow.style.display = '';\r\n }\r\n }//for u\r\n\r\n this.onAfterOperation(tf, this);\r\n this.emitter.emit('after-column-operation', tf, this);\r\n }\r\n\r\n /**\r\n * Make desired calculation on specified column.\r\n * @param {Number} colIndex Column index\r\n * @param {String} [operation=SUM] Operation type\r\n * @param {Number} precision Decimal precision\r\n * @returns {Number}\r\n */\r\n columnCalc(colIndex, operation = SUM, precision) {\r\n let excludeRows = this.excludeRows || [];\r\n let colValues = tf.getVisibleColumnData(colIndex, false, excludeRows);\r\n\r\n return Number(this.calc(colValues, operation, precision));\r\n }\r\n\r\n /**\r\n * Make calculation on passed values.\r\n * @param {Array} values List of values\r\n * @param {String} [operation=SUM] Optional operation type\r\n * @param {Number} precision Optional result precision\r\n * @returns {Number}\r\n * @private\r\n */\r\n calc(colValues, operation = SUM, precision) {\r\n let result = 0;\r\n\r\n if (operation === Q1 || operation === Q3 || operation === MEDIAN) {\r\n colValues = this.sortColumnValues(colValues, numSortAsc);\r\n }\r\n\r\n switch (operation) {\r\n case MEAN:\r\n result = this.calcMean(colValues);\r\n break;\r\n case SUM:\r\n result = this.calcSum(colValues);\r\n break;\r\n case MIN:\r\n result = this.calcMin(colValues);\r\n break;\r\n case MAX:\r\n result = this.calcMax(colValues);\r\n break;\r\n case MEDIAN:\r\n result = this.calcMedian(colValues);\r\n break;\r\n case Q1:\r\n result = this.calcQ1(colValues);\r\n break;\r\n case Q3:\r\n result = this.calcQ3(colValues);\r\n break;\r\n }\r\n\r\n return isEmpty(precision) ? result : result.toFixed(precision);\r\n }\r\n\r\n /**\r\n * Calculate the sum of passed values.\r\n * @param {Array} [values=[]] List of values\r\n * @returns {Number}\r\n */\r\n calcSum(values = []) {\r\n if (isEmpty(values)) {\r\n return 0;\r\n }\r\n let result = values.reduce((x, y) => Number(x) + Number(y));\r\n return result;\r\n }\r\n\r\n /**\r\n * Calculate the mean of passed values.\r\n * @param {Array} [values=[]] List of values\r\n * @returns {Number}\r\n */\r\n calcMean(values = []) {\r\n let result = this.calcSum(values) / values.length;\r\n return Number(result);\r\n }\r\n\r\n /**\r\n * Calculate the max value of passed values.\r\n * @param {Array} [values=[]] List of values\r\n * @returns {Number}\r\n */\r\n calcMax(values = []) {\r\n return Math.max.apply(null, values);\r\n }\r\n\r\n /**\r\n * Calculate the min value of passed values.\r\n * @param {Array} [values=[]] List of values\r\n * @returns {Number}\r\n */\r\n calcMin(values = []) {\r\n return Math.min.apply(null, values);\r\n }\r\n\r\n /**\r\n * Calculate the median of passed values.\r\n * @param {Array} [values=[]] List of values\r\n * @returns {Number}\r\n */\r\n calcMedian(values = []) {\r\n let nbValues = values.length;\r\n let aux = 0;\r\n if (nbValues % 2 === 1) {\r\n aux = Math.floor(nbValues / 2);\r\n return Number(values[aux]);\r\n }\r\n return (Number(values[nbValues / 2]) +\r\n Number(values[((nbValues / 2) - 1)])) / 2;\r\n }\r\n\r\n /**\r\n * Calculate the lower quartile of passed values.\r\n * @param {Array} [values=[]] List of values\r\n * @returns {Number}\r\n */\r\n calcQ1(values = []) {\r\n let nbValues = values.length;\r\n let posa = 0.0;\r\n posa = Math.floor(nbValues / 4);\r\n if (4 * posa === nbValues) {\r\n return (Number(values[posa - 1]) +\r\n Number(values[posa])) / 2;\r\n }\r\n return Number(values[posa]);\r\n }\r\n\r\n /**\r\n * Calculate the upper quartile of passed values.\r\n * @param {Array} [values=[]] List of values\r\n * @returns {Number}\r\n */\r\n calcQ3(values = []) {\r\n let nbValues = values.length;\r\n let posa = 0.0;\r\n let posb = 0.0;\r\n posa = Math.floor(nbValues / 4);\r\n if (4 * posa === nbValues) {\r\n posb = 3 * posa;\r\n return (Number(values[posb]) +\r\n Number(values[posb - 1])) / 2;\r\n }\r\n return Number(values[nbValues - posa - 1]);\r\n }\r\n\r\n /**\r\n * Sort passed values with supplied sorter function.\r\n * @param {Array} [values=[]] List of values to be sorted\r\n * @param {Function} sorter Sorter function\r\n * @returns {Array}\r\n */\r\n sortColumnValues(values = [], sorter) {\r\n return values.sort(sorter);\r\n }\r\n\r\n /**\r\n * Write calculation result in passed DOM element with supplied write method\r\n * and decimal precision.\r\n * @param {Number} [result=0] Calculation result\r\n * @param {DOMElement} label DOM element\r\n * @param {String} [writeType='innerhtml'] Write method\r\n * @param {Number} [precision=2] Applied decimal precision\r\n * @private\r\n */\r\n writeResult(result = 0, label, writeType = 'innerhtml',\r\n precision = 2, format = {}) {\r\n let labelElm = elm(label);\r\n\r\n if (!labelElm) {\r\n return;\r\n }\r\n\r\n result = result.toFixed(precision);\r\n if (isNaN(result) || !isFinite(result)) {\r\n result = '';\r\n } else {\r\n result = formatNumber(format)(result);\r\n }\r\n\r\n switch (writeType.toLowerCase()) {\r\n case 'innerhtml':\r\n labelElm.innerHTML = result;\r\n break;\r\n case 'setvalue':\r\n labelElm.value = result;\r\n break;\r\n case 'createtextnode':\r\n let oldNode = labelElm.firstChild;\r\n let txtNode = createText(result);\r\n labelElm.replaceChild(txtNode, oldNode);\r\n break;\r\n }\r\n }\r\n\r\n /**\r\n * Configure the format options used to format the operation result based\r\n * on column type.\r\n * @param {Number} colIndex Column index\r\n * @param {Object} [format={}] Format object\r\n * @returns {Object}\r\n * @private\r\n */\r\n configureFormat(colIndex, format = {}) {\r\n let tf = this.tf;\r\n if (tf.hasType(colIndex, [FORMATTED_NUMBER])) {\r\n let colType = tf.colTypes[colIndex];\r\n if (colType.decimal && !format.decimal) {\r\n format.decimal = colType.decimal;\r\n }\r\n if (colType.thousands && !format.integerSeparator) {\r\n format.integerSeparator = colType.thousands;\r\n }\r\n } else {\r\n format.decimal = format.decimal || '';\r\n format.integerSeparator = format.integerSeparator || '';\r\n }\r\n return format;\r\n }\r\n\r\n /** Remove extension */\r\n destroy() {\r\n if (!this.initialized) {\r\n return;\r\n }\r\n // unsubscribe to events\r\n this.emitter.off(EVENTS, () => this.calcAll());\r\n\r\n this.initialized = false;\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/extensions/colOps/colOps.js","import {Feature} from '../../feature';\r\nimport {\r\n addClass, removeClass, createCheckItem, createElm, elm, removeElm,\r\n getText, tag\r\n} from '../../dom';\r\nimport {isUndef, EMPTY_FN, isNull} from '../../types';\r\nimport {addEvt, targetEvt, removeEvt} from '../../event';\r\nimport {root} from '../../root';\r\nimport {NONE} from '../../const';\r\nimport {\r\n defaultsBool, defaultsStr, defaultsFn, defaultsNb, defaultsArr\r\n} from '../../settings';\r\nimport {RIGHT} from '../../modules/toolbar';\r\n\r\n/**\r\n * Columns Visibility extension\r\n */\r\nexport default class ColsVisibility extends Feature {\r\n\r\n /**\r\n * Creates an instance of ColsVisibility\r\n * @param {TableFilter} tf TableFilter instance\r\n * @param {Object} Configuration object\r\n */\r\n constructor(tf, f) {\r\n super(tf, f.name);\r\n\r\n // Configuration object\r\n let cfg = this.config;\r\n\r\n /**\r\n * Module name\r\n * @type {String}\r\n */\r\n this.name = f.name;\r\n\r\n /**\r\n * Module description\r\n * @type {String}\r\n */\r\n this.desc = defaultsStr(f.description, 'Columns visibility manager');\r\n\r\n /**\r\n * show/hide columns container element\r\n * @private\r\n */\r\n this.spanEl = null;\r\n\r\n /**\r\n * show/hide columns button element\r\n * @private\r\n */\r\n this.btnEl = null;\r\n\r\n /**\r\n * show/hide columns main container element\r\n * @private\r\n */\r\n this.contEl = null;\r\n\r\n /**\r\n * Enable tick to hide a column, defaults to true\r\n * @type {Boolean}\r\n */\r\n this.tickToHide = defaultsBool(f.tick_to_hide, true);\r\n\r\n /**\r\n * Enable columns manager UI, defaults to true\r\n * @type {Boolean}\r\n */\r\n this.manager = defaultsBool(f.manager, true);\r\n\r\n /**\r\n * Headers HTML table reference only if headers are external\r\n * @type {DOMElement}\r\n */\r\n this.headersTbl = f.headers_table || null;\r\n\r\n /**\r\n * Headers row index only if headers are external\r\n * @type {Number}\r\n */\r\n this.headersIndex = defaultsNb(f.headers_index, 1);\r\n\r\n /**\r\n * ID of main container element\r\n * @type {String}\r\n */\r\n this.contElTgtId = defaultsStr(f.container_target_id, null);\r\n\r\n /**\r\n * Alternative text for column headers in column manager UI\r\n * @type {Array}\r\n */\r\n this.headersText = defaultsArr(f.headers_text, []);\r\n\r\n /**\r\n * ID of button's container element\r\n * @type {String}\r\n */\r\n this.btnTgtId = defaultsStr(f.btn_target_id, null);\r\n\r\n /**\r\n * Button's text, defaults to Columns&#9660;\r\n * @type {String}\r\n */\r\n this.btnText = defaultsStr(f.btn_text, 'Columns&#9660;');\r\n\r\n /**\r\n * Button's inner HTML\r\n * @type {String}\r\n */\r\n this.btnHtml = defaultsStr(f.btn_html, null);\r\n\r\n /**\r\n * Css class for button\r\n * @type {String}\r\n */\r\n this.btnCssClass = defaultsStr(f.btn_css_class, 'colVis');\r\n\r\n /**\r\n * Columns manager UI close link text, defaults to 'Close'\r\n * @type {String}\r\n */\r\n this.btnCloseText = defaultsStr(f.btn_close_text, 'Close');\r\n\r\n /**\r\n * Columns manager UI close link HTML\r\n * @type {String}\r\n */\r\n this.btnCloseHtml = defaultsStr(f.btn_close_html, null);\r\n\r\n /**\r\n * Css for columns manager UI close link\r\n * @type {String}\r\n */\r\n this.btnCloseCssClass = defaultsStr(f.btn_close_css_class,\r\n this.btnCssClass);\r\n\r\n /**\r\n * Extension's stylesheet filename\r\n * @type {String}\r\n */\r\n this.stylesheet = defaultsStr(f.stylesheet, 'colsVisibility.css');\r\n\r\n /**\r\n * Css for columns manager UI span\r\n * @type {String}\r\n */\r\n this.spanCssClass = defaultsStr(f.span_css_class, 'colVisSpan');\r\n\r\n /**\r\n * Css for columns manager UI main container\r\n * @type {String}\r\n */\r\n this.contCssClass = defaultsStr(f.cont_css_class, 'colVisCont');\r\n\r\n /**\r\n * Css for columns manager UI checklist (ul)\r\n * @type {String}\r\n */\r\n this.listCssClass = defaultsStr(cfg.list_css_class, 'cols_checklist');\r\n\r\n /**\r\n * Css for columns manager UI checklist item (li)\r\n * @type {String}\r\n */\r\n this.listItemCssClass = defaultsStr(cfg.checklist_item_css_class,\r\n 'cols_checklist_item');\r\n\r\n /**\r\n * Css for columns manager UI checklist item selected state (li)\r\n * @type {String}\r\n */\r\n this.listSlcItemCssClass = defaultsStr(\r\n cfg.checklist_selected_item_css_class,\r\n 'cols_checklist_slc_item'\r\n );\r\n\r\n /**\r\n * Text preceding the columns list, defaults to 'Hide' or 'Show'\r\n * depending on tick mode (tick_to_hide option)\r\n * @type {String}\r\n */\r\n this.text = defaultsStr(f.text, this.tickToHide ? 'Hide: ' : 'Show: ');\r\n\r\n /**\r\n * List of columns indexes to be hidden at initialization\r\n * @type {Array}\r\n */\r\n this.atStart = defaultsArr(f.at_start, []);\r\n\r\n /**\r\n * Enable hover behaviour on columns manager button/link\r\n * @type {Boolean}\r\n */\r\n this.enableHover = Boolean(f.enable_hover);\r\n\r\n /**\r\n * Enable select all option, disabled by default\r\n * @type {Boolean}\r\n */\r\n this.enableTickAll = Boolean(f.enable_tick_all);\r\n\r\n /**\r\n * Text for select all option, defaults to 'Select all:'\r\n * @type {String}\r\n */\r\n this.tickAllText = defaultsStr(f.tick_all_text, 'Select all:');\r\n\r\n /**\r\n * Default position in toolbar ('left'|'center'|'right')\r\n * @type {String}\r\n */\r\n this.toolbarPosition = defaultsStr(f.toolbar_position, RIGHT);\r\n\r\n /**\r\n * List of indexes of hidden columns\r\n * @private\r\n */\r\n this.hiddenCols = [];\r\n\r\n /**\r\n * Bound mouseup wrapper\r\n * @private\r\n */\r\n this.boundMouseup = null;\r\n\r\n /**\r\n * Callback fired when the extension is initialized\r\n * @type {Function}\r\n */\r\n this.onLoaded = defaultsFn(f.on_loaded, EMPTY_FN);\r\n\r\n /**\r\n * Callback fired before the columns manager is opened\r\n * @type {Function}\r\n */\r\n this.onBeforeOpen = defaultsFn(f.on_before_open, EMPTY_FN);\r\n\r\n /**\r\n * Callback fired after the columns manager is opened\r\n * @type {Function}\r\n */\r\n this.onAfterOpen = defaultsFn(f.on_after_open, EMPTY_FN);\r\n\r\n /**\r\n * Callback fired before the columns manager is closed\r\n * @type {Function}\r\n */\r\n this.onBeforeClose = defaultsFn(f.on_before_close, EMPTY_FN);\r\n\r\n /**\r\n * Callback fired after the columns manager is closed\r\n * @type {Function}\r\n */\r\n this.onAfterClose = defaultsFn(f.on_after_close, EMPTY_FN);\r\n\r\n /**\r\n * Callback fired before a column is hidden\r\n * @type {Function}\r\n */\r\n this.onBeforeColHidden = defaultsFn(f.on_before_col_hidden, EMPTY_FN);\r\n\r\n /**\r\n * Callback fired after a column is hidden\r\n * @type {Function}\r\n */\r\n this.onAfterColHidden = defaultsFn(f.on_after_col_hidden, EMPTY_FN);\r\n\r\n /**\r\n * Callback fired before a column is displayed\r\n * @type {Function}\r\n */\r\n this.onBeforeColDisplayed = defaultsFn(f.on_before_col_displayed,\r\n EMPTY_FN);\r\n\r\n /**\r\n * Callback fired after a column is displayed\r\n * @type {Function}\r\n */\r\n this.onAfterColDisplayed = defaultsFn(f.on_after_col_displayed,\r\n EMPTY_FN);\r\n\r\n //Grid layout support\r\n if (tf.gridLayout) {\r\n this.headersTbl = tf.feature('gridLayout').headTbl; //headers table\r\n this.headersIndex = 0; //headers index\r\n }\r\n\r\n //Loads extension stylesheet\r\n tf.import(f.name + 'Style', tf.getStylePath() + this.stylesheet, null,\r\n 'link');\r\n\r\n this.enable();\r\n }\r\n\r\n /**\r\n * Mouse-up event handler handling popup auto-close behaviour\r\n * @private\r\n */\r\n onMouseup(evt) {\r\n let targetElm = targetEvt(evt);\r\n\r\n while (targetElm && targetElm !== this.contEl\r\n && targetElm !== this.btnEl) {\r\n targetElm = targetElm.parentNode;\r\n }\r\n\r\n if (targetElm !== this.contEl && targetElm !== this.btnEl) {\r\n this.toggle();\r\n }\r\n\r\n return;\r\n }\r\n\r\n /**\r\n * Toggle columns manager UI\r\n */\r\n toggle() {\r\n // ensure mouseup event handler is removed\r\n removeEvt(root, 'mouseup', this.boundMouseup);\r\n\r\n let contDisplay = this.contEl.style.display;\r\n\r\n if (contDisplay !== 'inline') {\r\n this.onBeforeOpen(this);\r\n }\r\n if (contDisplay === 'inline') {\r\n this.onBeforeClose(this);\r\n }\r\n\r\n this.contEl.style.display = contDisplay === 'inline' ?\r\n NONE : 'inline';\r\n\r\n if (contDisplay !== 'inline') {\r\n this.onAfterOpen(this);\r\n addEvt(root, 'mouseup', this.boundMouseup);\r\n }\r\n if (contDisplay === 'inline') {\r\n this.onAfterClose(this);\r\n }\r\n }\r\n\r\n /**\r\n * Check an item in columns manager UI\r\n * @private\r\n */\r\n checkItem(lbl) {\r\n let li = lbl.parentNode;\r\n if (!li || !lbl) {\r\n return;\r\n }\r\n let isChecked = lbl.firstChild.checked;\r\n let colIndex = lbl.firstChild.getAttribute('id').split('_')[1];\r\n colIndex = parseInt(colIndex, 10);\r\n if (isChecked) {\r\n addClass(li, this.listSlcItemCssClass);\r\n } else {\r\n removeClass(li, this.listSlcItemCssClass);\r\n }\r\n\r\n let hide = false;\r\n if ((this.tickToHide && isChecked) ||\r\n (!this.tickToHide && !isChecked)) {\r\n hide = true;\r\n }\r\n this.setHidden(colIndex, hide);\r\n }\r\n\r\n /**\r\n * Initializes ColsVisibility instance\r\n */\r\n init() {\r\n if (this.initialized || !this.manager) {\r\n return;\r\n }\r\n\r\n this.emitter.emit('initializing-extension', this,\r\n !isNull(this.btnTgtId));\r\n\r\n this.emitter.on(['hide-column'],\r\n (tf, colIndex) => this.hideCol(colIndex));\r\n\r\n this.buildBtn();\r\n this.buildManager();\r\n\r\n /** @inherited */\r\n this.initialized = true;\r\n\r\n this.boundMouseup = this.onMouseup.bind(this);\r\n\r\n this.emitter.emit('columns-visibility-initialized', this.tf, this);\r\n this.emitter.emit('extension-initialized', this);\r\n\r\n // Hide columns at start at very end of initialization, do not move\r\n // as order is important\r\n this._hideAtStart();\r\n }\r\n\r\n /**\r\n * Build main button UI\r\n */\r\n buildBtn() {\r\n if (this.btnEl) {\r\n return;\r\n }\r\n let tf = this.tf;\r\n let span = createElm('span');\r\n span.className = this.spanCssClass;\r\n\r\n // Container element (rdiv or custom element)\r\n let targetEl = !this.btnTgtId ?\r\n tf.feature('toolbar').container(this.toolbarPosition) :\r\n elm(this.btnTgtId);\r\n\r\n if (!this.btnTgtId) {\r\n let firstChild = targetEl.firstChild;\r\n firstChild.parentNode.insertBefore(span, firstChild);\r\n } else {\r\n targetEl.appendChild(span);\r\n }\r\n\r\n if (!this.btnHtml) {\r\n let btn = createElm('a', ['href', 'javascript:;']);\r\n btn.className = this.btnCssClass;\r\n btn.title = this.desc;\r\n\r\n btn.innerHTML = this.btnText;\r\n span.appendChild(btn);\r\n if (!this.enableHover) {\r\n addEvt(btn, 'click', (evt) => this.toggle(evt));\r\n } else {\r\n addEvt(btn, 'mouseover', (evt) => this.toggle(evt));\r\n }\r\n } else { // Custom html\r\n span.innerHTML = this.btnHtml;\r\n let colVisEl = span.firstChild;\r\n if (!this.enableHover) {\r\n addEvt(colVisEl, 'click', (evt) => this.toggle(evt));\r\n } else {\r\n addEvt(colVisEl, 'mouseover', (evt) => this.toggle(evt));\r\n }\r\n }\r\n\r\n this.spanEl = span;\r\n this.btnEl = this.spanEl.firstChild;\r\n\r\n this.onLoaded(this);\r\n }\r\n\r\n /**\r\n * Build columns manager UI\r\n */\r\n buildManager() {\r\n let tf = this.tf;\r\n\r\n let container = !this.contElTgtId ?\r\n createElm('div') :\r\n elm(this.contElTgtId);\r\n container.className = this.contCssClass;\r\n\r\n //Extension description\r\n let extNameLabel = createElm('p');\r\n extNameLabel.innerHTML = this.text;\r\n container.appendChild(extNameLabel);\r\n\r\n //Headers list\r\n let ul = createElm('ul');\r\n ul.className = this.listCssClass;\r\n\r\n let tbl = this.headersTbl || tf.dom();\r\n let headerIndex = this.headersTbl ?\r\n this.headersIndex : tf.getHeadersRowIndex();\r\n let headerRow = tbl.rows[headerIndex];\r\n\r\n //Tick all option\r\n if (this.enableTickAll) {\r\n let li = createCheckItem('col__' + tf.id, this.tickAllText,\r\n this.tickAllText);\r\n addClass(li, this.listItemCssClass);\r\n ul.appendChild(li);\r\n li.check.checked = !this.tickToHide;\r\n\r\n addEvt(li.check, 'click', () => {\r\n for (let h = 0; h < headerRow.cells.length; h++) {\r\n let itm = elm('col_' + h + '_' + tf.id);\r\n if (itm && li.check.checked !== itm.checked) {\r\n itm.click();\r\n itm.checked = li.check.checked;\r\n }\r\n }\r\n });\r\n }\r\n\r\n for (let i = 0; i < headerRow.cells.length; i++) {\r\n let cell = headerRow.cells[i];\r\n let cellText = this.headersText[i] || this._getHeaderText(cell);\r\n let liElm = createCheckItem('col_' + i + '_' + tf.id, cellText,\r\n cellText);\r\n addClass(liElm, this.listItemCssClass);\r\n if (!this.tickToHide) {\r\n addClass(liElm, this.listSlcItemCssClass);\r\n }\r\n ul.appendChild(liElm);\r\n if (!this.tickToHide) {\r\n liElm.check.checked = true;\r\n }\r\n\r\n addEvt(liElm.check, 'click', (evt) => {\r\n let elm = targetEvt(evt);\r\n let lbl = elm.parentNode;\r\n this.checkItem(lbl);\r\n });\r\n }\r\n\r\n //separator\r\n let p = createElm('p', ['align', 'center']);\r\n let btn;\r\n //Close link\r\n if (!this.btnCloseHtml) {\r\n btn = createElm('a', ['href', 'javascript:;']);\r\n btn.className = this.btnCloseCssClass;\r\n btn.innerHTML = this.btnCloseText;\r\n addEvt(btn, 'click', (evt) => this.toggle(evt));\r\n p.appendChild(btn);\r\n } else {\r\n p.innerHTML = this.btnCloseHtml;\r\n btn = p.firstChild;\r\n addEvt(btn, 'click', (evt) => this.toggle(evt));\r\n }\r\n\r\n container.appendChild(ul);\r\n container.appendChild(p);\r\n\r\n this.btnEl.parentNode.insertBefore(container, this.btnEl);\r\n this.contEl = container;\r\n }\r\n\r\n /**\r\n * Hide or show specified columns\r\n * @param {Number} colIndex Column index\r\n * @param {Boolean} hide Hide column if true or show if false\r\n */\r\n setHidden(colIndex, hide) {\r\n let tf = this.tf;\r\n let tbl = tf.dom();\r\n\r\n if (hide) {\r\n this.onBeforeColHidden(this, colIndex);\r\n } else {\r\n this.onBeforeColDisplayed(this, colIndex);\r\n }\r\n\r\n this._hideElements(tbl, colIndex, hide);\r\n if (this.headersTbl) {\r\n this._hideElements(this.headersTbl, colIndex, hide);\r\n }\r\n\r\n let hiddenCols = this.hiddenCols;\r\n let itemIndex = hiddenCols.indexOf(colIndex);\r\n if (hide) {\r\n if (itemIndex === -1) {\r\n this.hiddenCols.push(colIndex);\r\n }\r\n } else {\r\n if (itemIndex !== -1) {\r\n this.hiddenCols.splice(itemIndex, 1);\r\n }\r\n }\r\n\r\n if (hide) {\r\n this.onAfterColHidden(this, colIndex);\r\n this.emitter.emit('column-hidden', tf, this, colIndex,\r\n this.hiddenCols);\r\n } else {\r\n this.onAfterColDisplayed(this, colIndex);\r\n this.emitter.emit('column-shown', tf, this, colIndex,\r\n this.hiddenCols);\r\n }\r\n }\r\n\r\n /**\r\n * Show specified column\r\n * @param {Number} colIndex Column index\r\n */\r\n showCol(colIndex) {\r\n if (isUndef(colIndex) || !this.isColHidden(colIndex)) {\r\n return;\r\n }\r\n if (this.manager && this.contEl) {\r\n let itm = elm('col_' + colIndex + '_' + this.tf.id);\r\n if (itm) {\r\n itm.click();\r\n }\r\n } else {\r\n this.setHidden(colIndex, false);\r\n }\r\n }\r\n\r\n /**\r\n * Hide specified column\r\n * @param {Number} colIndex Column index\r\n */\r\n hideCol(colIndex) {\r\n if (isUndef(colIndex) || this.isColHidden(colIndex)) {\r\n return;\r\n }\r\n if (this.manager && this.contEl) {\r\n let itm = elm('col_' + colIndex + '_' + this.tf.id);\r\n if (itm) {\r\n itm.click();\r\n }\r\n } else {\r\n this.setHidden(colIndex, true);\r\n }\r\n }\r\n\r\n /**\r\n * Determine if specified column is hidden\r\n * @param {Number} colIndex Column index\r\n */\r\n isColHidden(colIndex) {\r\n if (this.hiddenCols.indexOf(colIndex) !== -1) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n /**\r\n * Toggle visibility of specified column\r\n * @param {Number} colIndex Column index\r\n */\r\n toggleCol(colIndex) {\r\n if (isUndef(colIndex) || this.isColHidden(colIndex)) {\r\n this.showCol(colIndex);\r\n } else {\r\n this.hideCol(colIndex);\r\n }\r\n }\r\n\r\n /**\r\n * Return the indexes of the columns currently hidden\r\n * @return {Array} column indexes\r\n */\r\n getHiddenCols() {\r\n return this.hiddenCols;\r\n }\r\n\r\n /**\r\n * Remove the columns manager\r\n */\r\n destroy() {\r\n if (!this.initialized) {\r\n return;\r\n }\r\n if (elm(this.contElTgtId)) {\r\n elm(this.contElTgtId).innerHTML = '';\r\n } else {\r\n this.contEl.innerHTML = '';\r\n removeElm(this.contEl);\r\n this.contEl = null;\r\n }\r\n this.btnEl.innerHTML = '';\r\n removeElm(this.btnEl);\r\n this.btnEl = null;\r\n\r\n this.emitter.off(['hide-column'],\r\n (tf, colIndex) => this.hideCol(colIndex));\r\n\r\n this.boundMouseup = null;\r\n\r\n this.initialized = false;\r\n }\r\n\r\n _getHeaderText(cell) {\r\n if (!cell.hasChildNodes) {\r\n return '';\r\n }\r\n\r\n for (let i = 0; i < cell.childNodes.length; i++) {\r\n let n = cell.childNodes[i];\r\n if (n.nodeType === 3) {\r\n return n.nodeValue;\r\n } else if (n.nodeType === 1) {\r\n if (n.id && n.id.indexOf('popUp') !== -1) {\r\n continue;\r\n } else {\r\n return getText(n);\r\n }\r\n }\r\n continue;\r\n }\r\n return '';\r\n }\r\n\r\n _hideElements(tbl, colIdx, hide) {\r\n this._hideCells(tbl, colIdx, hide);\r\n this._hideCol(tbl, colIdx, hide);\r\n }\r\n\r\n _hideCells(tbl, colIdx, hide) {\r\n for (let i = 0; i < tbl.rows.length; i++) {\r\n let row = tbl.rows[i];\r\n let cell = row.cells[colIdx];\r\n if (cell) {\r\n cell.style.display = hide ? NONE : '';\r\n }\r\n }\r\n }\r\n\r\n _hideCol(tbl, colIdx, hide) {\r\n let colElms = tag(this.tf.dom(), 'col');\r\n if (colElms.length === 0) {\r\n return;\r\n }\r\n colElms[colIdx].style.display = hide ? NONE : '';\r\n }\r\n\r\n _hideAtStart() {\r\n this.atStart.forEach((colIdx) => {\r\n this.hideCol(colIdx);\r\n });\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/extensions/colsVisibility/colsVisibility.js","import {Feature} from '../../feature';\r\nimport {createElm, removeElm, elm} from '../../dom';\r\nimport {EMPTY_FN, isNull} from '../../types';\r\nimport {addEvt} from '../../event';\r\nimport {\r\n defaultsBool, defaultsStr, defaultsFn, defaultsNb,\r\n} from '../../settings';\r\nimport {RIGHT} from '../../modules/toolbar';\r\n\r\n/**\r\n * Filters Visibility extension\r\n */\r\nexport default class FiltersVisibility extends Feature {\r\n\r\n /**\r\n * Creates an instance of FiltersVisibility\r\n * @param {TableFilter} tf TableFilter instance\r\n * @param {Object} Configuration object\r\n */\r\n constructor(tf, f) {\r\n super(tf, f.name);\r\n\r\n /**\r\n * Module name\r\n * @type {String}\r\n */\r\n this.name = f.name;\r\n\r\n /**\r\n * Module description\r\n * @type {String}\r\n */\r\n this.desc = defaultsStr(f.description,\r\n 'Filters row visibility manager');\r\n\r\n /**\r\n * Extension's stylesheet filename\r\n * @type {String}\r\n */\r\n this.stylesheet = defaultsStr(f.stylesheet , 'filtersVisibility.css');\r\n\r\n /**\r\n * Expand icon filename\r\n * @type {String}\r\n */\r\n this.icnExpand = defaultsStr(f.expand_icon_name, 'icn_exp.png');\r\n\r\n /**\r\n * Collapse icon filename\r\n * @type {String}\r\n */\r\n this.icnCollapse = defaultsStr(f.collapse_icon_name, 'icn_clp.png');\r\n\r\n /**\r\n * Main container element\r\n * @private\r\n */\r\n this.contEl = null;\r\n\r\n /**\r\n * Button element\r\n * @private\r\n */\r\n this.btnEl = null;\r\n\r\n /**\r\n * Expand icon HTML\r\n * @private\r\n */\r\n this.icnExpandHtml = '<img src=\"' + tf.themesPath + this.icnExpand +\r\n '\" alt=\"Expand filters\" >';\r\n\r\n /**\r\n * Collapse icon HTML\r\n * @private\r\n */\r\n this.icnCollapseHtml = '<img src=\"' + tf.themesPath + this.icnCollapse +\r\n '\" alt=\"Collapse filters\" >';\r\n\r\n /**\r\n * Default text\r\n * @private\r\n */\r\n this.defaultText = 'Toggle filters';\r\n\r\n /**\r\n * ID of main container element\r\n * @type {String}\r\n */\r\n this.targetId = f.target_id || null;\r\n\r\n /**\r\n * Enable expand/collapse icon, defaults to true\r\n * @type {Boolean}\r\n */\r\n this.enableIcon = defaultsBool(f.enable_icon, true);\r\n\r\n /**\r\n * Custom text for button\r\n * @type {String}\r\n */\r\n this.btnText = defaultsStr(f.btn_text, '');\r\n\r\n /**\r\n * Collapse button HTML\r\n * @private\r\n */\r\n this.collapseBtnHtml = this.enableIcon ?\r\n this.icnCollapseHtml + this.btnText :\r\n this.btnText || this.defaultText;\r\n\r\n /**\r\n * Expand button HTML\r\n * @private\r\n */\r\n this.expandBtnHtml = this.enableIcon ?\r\n this.icnExpandHtml + this.btnText :\r\n this.btnText || this.defaultText;\r\n\r\n /**\r\n * Button's custom HTML\r\n * @type {String}\r\n */\r\n this.btnHtml = defaultsStr(f.btn_html, null);\r\n\r\n /**\r\n * Css class for expand/collapse filters button\r\n * @type {String}\r\n */\r\n this.btnCssClass = defaultsStr(f.btn_css_class, 'btnExpClpFlt');\r\n\r\n /**\r\n * Css class for main container\r\n * @type {String}\r\n */\r\n this.contCssClass = defaultsStr(f.cont_css_class, 'expClpFlt');\r\n\r\n /**\r\n * Filters row index\r\n * @type {Number}\r\n */\r\n this.filtersRowIndex = defaultsNb(f.filters_row_index,\r\n tf.getFiltersRowIndex());\r\n\r\n /**\r\n * Make filters visible at initialization, defaults to true\r\n * @type {Boolean}\r\n */\r\n this.visibleAtStart = defaultsNb(f.visible_at_start, true);\r\n\r\n /**\r\n * Default position in toolbar ('left'|'center'|'right')\r\n * @type {String}\r\n */\r\n this.toolbarPosition = defaultsStr(f.toolbar_position, RIGHT);\r\n\r\n /**\r\n * Callback fired before filters row is shown\r\n * @type {Function}\r\n */\r\n this.onBeforeShow = defaultsFn(f.on_before_show, EMPTY_FN);\r\n\r\n /**\r\n * Callback fired after filters row is shown\r\n * @type {Function}\r\n */\r\n this.onAfterShow = defaultsFn(f.on_after_show, EMPTY_FN);\r\n\r\n /**\r\n * Callback fired before filters row is hidden\r\n * @type {Function}\r\n */\r\n this.onBeforeHide = defaultsFn(f.on_before_hide, EMPTY_FN);\r\n\r\n /**\r\n * Callback fired after filters row is hidden\r\n * @type {Function}\r\n */\r\n this.onAfterHide = defaultsFn(f.on_after_hide, EMPTY_FN);\r\n\r\n //Import extension's stylesheet\r\n tf.import(f.name + 'Style', tf.getStylePath() + this.stylesheet, null,\r\n 'link');\r\n\r\n this.enable();\r\n }\r\n\r\n /**\r\n * Initialise extension\r\n */\r\n init() {\r\n if (this.initialized) {\r\n return;\r\n }\r\n\r\n this.emitter.emit('initializing-extension', this,\r\n !isNull(this.targetId));\r\n\r\n this.buildUI();\r\n\r\n /** @inherited */\r\n this.initialized = true;\r\n\r\n this.emitter.on(['show-filters'], (tf, visible) => this.show(visible));\r\n this.emitter.emit('filters-visibility-initialized', this.tf, this);\r\n this.emitter.emit('extension-initialized', this);\r\n }\r\n\r\n /**\r\n * Build UI elements\r\n */\r\n buildUI() {\r\n let tf = this.tf;\r\n let span = createElm('span');\r\n span.className = this.contCssClass;\r\n\r\n // Container element (rdiv or custom element)\r\n let targetEl = !this.targetId ?\r\n tf.feature('toolbar').container(this.toolbarPosition) :\r\n elm(this.targetId);\r\n\r\n if (!this.targetId) {\r\n let firstChild = targetEl.firstChild;\r\n firstChild.parentNode.insertBefore(span, firstChild);\r\n } else {\r\n targetEl.appendChild(span);\r\n }\r\n\r\n let btn;\r\n if (!this.btnHtml) {\r\n btn = createElm('a', ['href', 'javascript:void(0);']);\r\n btn.className = this.btnCssClass;\r\n btn.title = this.btnText || this.defaultText;\r\n btn.innerHTML = this.collapseBtnHtml;\r\n span.appendChild(btn);\r\n } else { // Custom html\r\n span.innerHTML = this.btnHtml;\r\n btn = span.firstChild;\r\n }\r\n\r\n addEvt(btn, 'click', () => this.toggle());\r\n\r\n this.contEl = span;\r\n this.btnEl = btn;\r\n\r\n if (!this.visibleAtStart) {\r\n this.toggle();\r\n }\r\n }\r\n\r\n /**\r\n * Toggle filters visibility\r\n */\r\n toggle() {\r\n let tf = this.tf;\r\n let tbl = tf.gridLayout ? tf.feature('gridLayout').headTbl : tf.dom();\r\n let fltRow = tbl.rows[this.filtersRowIndex];\r\n let isDisplayed = fltRow.style.display === '';\r\n\r\n this.show(!isDisplayed);\r\n }\r\n\r\n /**\r\n * Show or hide filters\r\n *\r\n * @param {boolean} [visible=true] Visibility flag\r\n */\r\n show(visible = true) {\r\n let tf = this.tf;\r\n let tbl = tf.gridLayout ? tf.feature('gridLayout').headTbl : tf.dom();\r\n let fltRow = tbl.rows[this.filtersRowIndex];\r\n\r\n if (visible) {\r\n this.onBeforeShow(this);\r\n }\r\n if (!visible) {\r\n this.onBeforeHide(this);\r\n }\r\n\r\n fltRow.style.display = visible ? '' : 'none';\r\n if (this.enableIcon && !this.btnHtml) {\r\n this.btnEl.innerHTML = visible ?\r\n this.collapseBtnHtml : this.expandBtnHtml;\r\n }\r\n\r\n if (visible) {\r\n this.onAfterShow(this);\r\n }\r\n if (!visible) {\r\n this.onAfterHide(this);\r\n }\r\n\r\n this.emitter.emit('filters-toggled', tf, this, visible);\r\n }\r\n\r\n /**\r\n * Destroy the UI\r\n */\r\n destroy() {\r\n if (!this.initialized) {\r\n return;\r\n }\r\n\r\n this.emitter.off(['show-filters'], (tf, visible) => this.show(visible));\r\n\r\n this.btnEl.innerHTML = '';\r\n removeElm(this.btnEl);\r\n this.btnEl = null;\r\n\r\n this.contEl.innerHTML = '';\r\n removeElm(this.contEl);\r\n this.contEl = null;\r\n this.initialized = false;\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/extensions/filtersVisibility/filtersVisibility.js","import AdapterSortableTable from './adapterSortabletable';\r\nimport {root} from '../../root';\r\n\r\nif (!root.SortableTable) {\r\n require('script-loader!sortabletable');\r\n}\r\n\r\nexport default AdapterSortableTable;\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/extensions/sort/sort.js","\nmodule.exports = formatter;\nmodule.exports.default = formatter;\n\nfunction formatter(options) {\n options = options || {};\n\n\n // *********************************************************************************************\n // Set defaults for negatives\n // options.negative, options.negativeOut, options.separator retained for backward compatibility\n // *********************************************************************************************\n\n // type of negative; default left\n options.negativeType = options.negativeType || (options.negative === 'R' ? 'right' : 'left')\n\n // negative symbols '-' or '()'\n if (typeof options.negativeLeftSymbol !== 'string') {\n switch (options.negativeType) {\n case 'left':\n options.negativeLeftSymbol = '-';\n break;\n case 'brackets':\n options.negativeLeftSymbol = '(';\n break;\n default:\n options.negativeLeftSymbol = '';\n }\n }\n if (typeof options.negativeRightSymbol !== 'string') {\n switch (options.negativeType) {\n case 'right':\n options.negativeRightSymbol = '-';\n break;\n case 'brackets':\n options.negativeRightSymbol = ')';\n break;\n default:\n options.negativeRightSymbol = '';\n }\n }\n\n // whether negative symbol should be inside/outside prefix and suffix\n\n if (typeof options.negativeLeftOut !== \"boolean\") {\n options.negativeLeftOut = (options.negativeOut === false ? false : true);\n }\n if (typeof options.negativeRightOut !== \"boolean\") {\n options.negativeRightOut = (options.negativeOut === false ? false : true);\n }\n\n //prefix and suffix\n options.prefix = options.prefix || '';\n options.suffix = options.suffix || '';\n\n //separators\n if (typeof options.integerSeparator !== 'string') {\n options.integerSeparator = (typeof options.separator === 'string' ? options.separator : ',');\n }\n options.decimalsSeparator = typeof options.decimalsSeparator === 'string' ? options.decimalsSeparator : '';\n options.decimal = options.decimal || '.';\n\n //padders\n options.padLeft = options.padLeft || -1 //default no padding\n options.padRight = options.padRight || -1 //default no padding\n\n function format(number, overrideOptions) {\n overrideOptions = overrideOptions || {};\n\n if (number || number === 0) {\n number = '' + number;//convert number to string if it isn't already\n } else {\n return '';\n }\n\n //identify a negative number and make it absolute\n var output = [];\n var negative = number.charAt(0) === '-';\n number = number.replace(/^\\-/g, '');\n\n //Prepare output with left hand negative and/or prefix\n if (!options.negativeLeftOut && !overrideOptions.noUnits) {\n output.push(options.prefix);\n }\n if (negative) {\n output.push(options.negativeLeftSymbol);\n }\n if (options.negativeLeftOut && !overrideOptions.noUnits) {\n output.push(options.prefix);\n }\n\n //Format core number\n number = number.split('.');\n if (options.round != null) round(number, options.round);\n if (options.truncate != null) number[1] = truncate(number[1], options.truncate);\n if (options.padLeft > 0) number[0] = padLeft(number[0], options.padLeft);\n if (options.padRight > 0) number[1] = padRight(number[1], options.padRight);\n if (!overrideOptions.noSeparator && number[1]) number[1] = addDecimalSeparators(number[1], options.decimalsSeparator);\n if (!overrideOptions.noSeparator && number[0]) number[0] = addIntegerSeparators(number[0], options.integerSeparator);\n output.push(number[0]);\n if (number[1]) {\n output.push(options.decimal);\n output.push(number[1]);\n }\n\n //Prepare output with right hand negative and/or prefix\n if (options.negativeRightOut && !overrideOptions.noUnits) {\n output.push(options.suffix);\n }\n if (negative) {\n output.push(options.negativeRightSymbol);\n }\n if (!options.negativeRightOut && !overrideOptions.noUnits) {\n output.push(options.suffix);\n }\n\n //join output and return\n return output.join('');\n }\n\n format.negative = options.negative;\n format.negativeOut = options.negativeOut;\n format.negativeType = options.negativeType;\n format.negativeLeftOut = options.negativeLeftOut;\n format.negativeLeftSymbol = options.negativeLeftSymbol;\n format.negativeRightOut = options.negativeRightOut;\n format.negativeRightSymbol = options.negativeRightSymbol;\n format.prefix = options.prefix;\n format.suffix = options.suffix;\n format.separate = options.separate;\n format.integerSeparator = options.integerSeparator;\n format.decimalsSeparator = options.decimalsSeparator;\n format.decimal = options.decimal;\n format.padLeft = options.padLeft;\n format.padRight = options.padRight;\n format.truncate = options.truncate;\n format.round = options.round;\n\n function unformat(number, allowedSeparators) {\n allowedSeparators = allowedSeparators || [];\n if (options.allowedSeparators) {\n options.allowedSeparators.forEach(function (s) { allowedSeparators.push (s); });\n }\n allowedSeparators.push(options.integerSeparator);\n allowedSeparators.push(options.decimalsSeparator);\n number = number.replace(options.prefix, '');\n number = number.replace(options.suffix, '');\n var newNumber = number;\n do {\n number = newNumber;\n for (var i = 0; i < allowedSeparators.length; i++) {\n newNumber = newNumber.replace(allowedSeparators[i], '');\n }\n } while (newNumber != number);\n return number;\n }\n format.unformat = unformat;\n\n function validate(number, allowedSeparators) {\n number = unformat(number, allowedSeparators);\n number = number.split(options.decimal);\n if (number.length > 2) {\n return false;\n } else if (options.truncate != null && number[1] && number[1].length > options.truncate) {\n return false;\n } else if (options.round != null && number[1] && number[1].length > options.round) {\n return false;\n } else {\n return /^-?\\d+\\.?\\d*$/.test(number);\n }\n }\n return format;\n}\n\n//where x is already the integer part of the number\nfunction addIntegerSeparators(x, separator) {\n x += '';\n if (!separator) return x;\n var rgx = /(\\d+)(\\d{3})/;\n while (rgx.test(x)) {\n x = x.replace(rgx, '$1' + separator + '$2');\n }\n return x;\n}\n\n//where x is already the decimal part of the number\nfunction addDecimalSeparators(x, separator) {\n x += '';\n if (!separator) return x;\n var rgx = /(\\d{3})(\\d+)/;\n while (rgx.test(x)) {\n x = x.replace(rgx, '$1' + separator + '$2');\n }\n return x;\n}\n\n//where x is the integer part of the number\nfunction padLeft(x, padding) {\n x = x + '';\n var buf = [];\n while (buf.length + x.length < padding) {\n buf.push('0');\n }\n return buf.join('') + x;\n}\n\n//where x is the decimals part of the number\nfunction padRight(x, padding) {\n if (x) {\n x += '';\n } else {\n x = '';\n }\n var buf = [];\n while (buf.length + x.length < padding) {\n buf.push('0');\n }\n return x + buf.join('');\n}\nfunction truncate(x, length) {\n if (x) {\n x += '';\n }\n if (x && x.length > length) {\n return x.substr(0, length);\n } else {\n return x;\n }\n}\n\n//where number is an array with 0th item as integer string and 1st item as decimal string (no negatives)\nfunction round(number, places) {\n if (number[1] && places >= 0 && number[1].length > places) {\n //truncate to correct number of decimal places\n var decim = number[1].slice(0, places);\n //if next digit was >= 5 we need to round up\n if (+(number[1].substr(places, 1)) >= 5) {\n //But first count leading zeros as converting to a number will loose them\n var leadingzeros = \"\";\n while (decim.charAt(0)===\"0\") {\n leadingzeros = leadingzeros + \"0\";\n decim = decim.substr(1);\n }\n //Then we can change decim to a number and add 1 before replacing leading zeros\n decim = (+decim + 1) + '';\n decim = leadingzeros + decim;\n if (decim.length > places) {\n //adding one has made it longer\n number[0] = (+number[0]+ +decim.charAt(0)) + ''; //add value of firstchar to the integer part\n decim = decim.substring(1); //ignore the 1st char at the beginning which is the carry to the integer part\n }\n }\n number[1] = decim;\n }\n return number;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/format-number/index.js\n// module id = 448\n// module chunks = 0","require(\"!!C:\\\\Users\\\\max.guglielmi\\\\Documents\\\\dev\\\\perso\\\\javascript\\\\GitHub\\\\TableFilter\\\\node_modules\\\\script-loader\\\\addScript.js\")(require(\"!!C:\\\\Users\\\\max.guglielmi\\\\Documents\\\\dev\\\\perso\\\\javascript\\\\GitHub\\\\TableFilter\\\\node_modules\\\\raw-loader\\\\index.js!C:\\\\Users\\\\max.guglielmi\\\\Documents\\\\dev\\\\perso\\\\javascript\\\\GitHub\\\\TableFilter\\\\libs\\\\sortabletable.js\")+\"\\n\\n// SCRIPT-LOADER FOOTER\\n//# sourceURL=script:///C:/Users/max.guglielmi/Documents/dev/perso/javascript/GitHub/TableFilter/libs/sortabletable.js\")\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/script-loader!./libs/sortabletable.js\n// module id = 449\n// module chunks = 0","/*\r\n\tMIT License http://www.opensource.org/licenses/mit-license.php\r\n\tAuthor Tobias Koppers @sokra\r\n*/\r\nmodule.exports = function(src) {\r\n\tif (typeof execScript !== \"undefined\")\r\n\t\texecScript(src);\r\n\telse\r\n\t\teval.call(null, src);\r\n}\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/script-loader/addScript.js\n// module id = 450\n// module chunks = 0","module.exports = \"/*----------------------------------------------------------------------------\\\\\\r\\n| Sortable Table 1.12 |\\r\\n|-----------------------------------------------------------------------------|\\r\\n| Created by Erik Arvidsson |\\r\\n| (http://webfx.eae.net/contact.html#erik) |\\r\\n| For WebFX (http://webfx.eae.net/) |\\r\\n|-----------------------------------------------------------------------------|\\r\\n| A DOM 1 based script that allows an ordinary HTML table to be sortable. |\\r\\n|-----------------------------------------------------------------------------|\\r\\n| Copyright (c) 1998 - 2006 Erik Arvidsson |\\r\\n|-----------------------------------------------------------------------------|\\r\\n| Licensed under the Apache License, Version 2.0 (the \\\"License\\\"); you may not |\\r\\n| use this file except in compliance with the License. You may obtain a copy |\\r\\n| of the License at http://www.apache.org/licenses/LICENSE-2.0 |\\r\\n| - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |\\r\\n| Unless required by applicable law or agreed to in writing, software |\\r\\n| distributed under the License is distributed on an \\\"AS IS\\\" BASIS, WITHOUT |\\r\\n| WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the |\\r\\n| License for the specific language governing permissions and limitations |\\r\\n| under the License. |\\r\\n|-----------------------------------------------------------------------------|\\r\\n| 2003-01-10 | First version |\\r\\n| 2003-01-19 | Minor changes to the date parsing |\\r\\n| 2003-01-28 | JScript 5.0 fixes (no support for 'in' operator) |\\r\\n| 2003-02-01 | Sloppy typo like error fixed in getInnerText |\\r\\n| 2003-07-04 | Added workaround for IE cellIndex bug. |\\r\\n| 2003-11-09 | The bDescending argument to sort was not correctly working |\\r\\n| | Using onclick DOM0 event if no support for addEventListener |\\r\\n| | or attachEvent |\\r\\n| 2004-01-13 | Adding addSortType and removeSortType which makes it a lot |\\r\\n| | easier to add new, custom sort types. |\\r\\n| 2004-01-27 | Switch to use descending = false as the default sort order. |\\r\\n| | Change defaultDescending to suit your needs. |\\r\\n| 2004-03-14 | Improved sort type None look and feel a bit |\\r\\n| 2004-08-26 | Made the handling of tBody and tHead more flexible. Now you |\\r\\n| | can use another tHead or no tHead, and you can chose some |\\r\\n| | other tBody. |\\r\\n| 2006-04-25 | Changed license to Apache Software License 2.0 |\\r\\n|-----------------------------------------------------------------------------|\\r\\n| Created 2003-01-10 | All changes are in the log above. | Updated 2006-04-25 |\\r\\n\\\\----------------------------------------------------------------------------*/\\r\\n\\r\\n\\r\\nfunction SortableTable(oTable, oSortTypes) {\\r\\n\\r\\n\\tthis.sortTypes = oSortTypes || [];\\r\\n\\r\\n\\tthis.sortColumn = null;\\r\\n\\tthis.descending = null;\\r\\n\\r\\n\\tvar oThis = this;\\r\\n\\tthis._headerOnclick = function (e) {\\r\\n\\t\\toThis.headerOnclick(e);\\r\\n\\t};\\r\\n\\r\\n\\tif (oTable) {\\r\\n\\t\\tthis.setTable( oTable );\\r\\n\\t\\tthis.document = oTable.ownerDocument || oTable.document;\\r\\n\\t}\\r\\n\\telse {\\r\\n\\t\\tthis.document = document;\\r\\n\\t}\\r\\n\\r\\n\\r\\n\\t// only IE needs this\\r\\n\\tvar win = this.document.defaultView || this.document.parentWindow;\\r\\n\\tthis._onunload = function () {\\r\\n\\t\\toThis.destroy();\\r\\n\\t};\\r\\n\\tif (win && typeof win.attachEvent != \\\"undefined\\\") {\\r\\n\\t\\twin.attachEvent(\\\"onunload\\\", this._onunload);\\r\\n\\t}\\r\\n}\\r\\n\\r\\nSortableTable.gecko = navigator.product == \\\"Gecko\\\";\\r\\nSortableTable.msie = /msie/i.test(navigator.userAgent);\\r\\n// Mozilla is faster when doing the DOM manipulations on\\r\\n// an orphaned element. MSIE is not\\r\\nSortableTable.removeBeforeSort = SortableTable.gecko;\\r\\n\\r\\nSortableTable.prototype.onsort = function () {};\\r\\n\\r\\n// default sort order. true -> descending, false -> ascending\\r\\nSortableTable.prototype.defaultDescending = false;\\r\\n\\r\\n// shared between all instances. This is intentional to allow external files\\r\\n// to modify the prototype\\r\\nSortableTable.prototype._sortTypeInfo = {};\\r\\n\\r\\nSortableTable.prototype.setTable = function (oTable) {\\r\\n\\tif ( this.tHead )\\r\\n\\t\\tthis.uninitHeader();\\r\\n\\tthis.element = oTable;\\r\\n\\tthis.setTHead( oTable.tHead );\\r\\n\\tthis.setTBody( oTable.tBodies[0] );\\r\\n};\\r\\n\\r\\nSortableTable.prototype.setTHead = function (oTHead) {\\r\\n\\tif (this.tHead && this.tHead != oTHead )\\r\\n\\t\\tthis.uninitHeader();\\r\\n\\tthis.tHead = oTHead;\\r\\n\\tthis.initHeader( this.sortTypes );\\r\\n};\\r\\n\\r\\nSortableTable.prototype.setTBody = function (oTBody) {\\r\\n\\tthis.tBody = oTBody;\\r\\n};\\r\\n\\r\\nSortableTable.prototype.setSortTypes = function ( oSortTypes ) {\\r\\n\\tif ( this.tHead )\\r\\n\\t\\tthis.uninitHeader();\\r\\n\\tthis.sortTypes = oSortTypes || [];\\r\\n\\tif ( this.tHead )\\r\\n\\t\\tthis.initHeader( this.sortTypes );\\r\\n};\\r\\n\\r\\n// adds arrow containers and events\\r\\n// also binds sort type to the header cells so that reordering columns does\\r\\n// not break the sort types\\r\\nSortableTable.prototype.initHeader = function (oSortTypes) {\\r\\n\\tif (!this.tHead) return;\\r\\n\\tvar cells = this.tHead.rows[0].cells;\\r\\n\\tvar doc = this.tHead.ownerDocument || this.tHead.document;\\r\\n\\tthis.sortTypes = oSortTypes || [];\\r\\n\\tvar l = cells.length;\\r\\n\\tvar img, c;\\r\\n\\tfor (var i = 0; i < l; i++) {\\r\\n\\t\\tc = cells[i];\\r\\n\\t\\tif (this.sortTypes[i] != null && this.sortTypes[i] != \\\"None\\\") {\\r\\n\\t\\t\\timg = doc.createElement(\\\"IMG\\\");\\r\\n\\t\\t\\timg.src = \\\"images/blank.png\\\";\\r\\n\\t\\t\\tc.appendChild(img);\\r\\n\\t\\t\\tif (this.sortTypes[i] != null)\\r\\n\\t\\t\\t\\tc._sortType = this.sortTypes[i];\\r\\n\\t\\t\\tif (typeof c.addEventListener != \\\"undefined\\\")\\r\\n\\t\\t\\t\\tc.addEventListener(\\\"click\\\", this._headerOnclick, false);\\r\\n\\t\\t\\telse if (typeof c.attachEvent != \\\"undefined\\\")\\r\\n\\t\\t\\t\\tc.attachEvent(\\\"onclick\\\", this._headerOnclick);\\r\\n\\t\\t\\telse\\r\\n\\t\\t\\t\\tc.onclick = this._headerOnclick;\\r\\n\\t\\t}\\r\\n\\t\\telse\\r\\n\\t\\t{\\r\\n\\t\\t\\tc.setAttribute( \\\"_sortType\\\", oSortTypes[i] );\\r\\n\\t\\t\\tc._sortType = \\\"None\\\";\\r\\n\\t\\t}\\r\\n\\t}\\r\\n\\tthis.updateHeaderArrows();\\r\\n};\\r\\n\\r\\n// remove arrows and events\\r\\nSortableTable.prototype.uninitHeader = function () {\\r\\n\\tif (!this.tHead) return;\\r\\n\\tvar cells = this.tHead.rows[0].cells;\\r\\n\\tvar l = cells.length;\\r\\n\\tvar c;\\r\\n\\tfor (var i = 0; i < l; i++) {\\r\\n\\t\\tc = cells[i];\\r\\n\\t\\tif (c._sortType != null && c._sortType != \\\"None\\\") {\\r\\n\\t\\t\\tc.removeChild(c.lastChild);\\r\\n\\t\\t\\tif (typeof c.removeEventListener != \\\"undefined\\\")\\r\\n\\t\\t\\t\\tc.removeEventListener(\\\"click\\\", this._headerOnclick, false);\\r\\n\\t\\t\\telse if (typeof c.detachEvent != \\\"undefined\\\")\\r\\n\\t\\t\\t\\tc.detachEvent(\\\"onclick\\\", this._headerOnclick);\\r\\n\\t\\t\\tc._sortType = null;\\r\\n\\t\\t\\tc.removeAttribute( \\\"_sortType\\\" );\\r\\n\\t\\t}\\r\\n\\t}\\r\\n};\\r\\n\\r\\nSortableTable.prototype.updateHeaderArrows = function () {\\r\\n\\tif (!this.tHead) return;\\r\\n\\tvar cells = this.tHead.rows[0].cells;\\r\\n\\tvar l = cells.length;\\r\\n\\tvar img;\\r\\n\\tfor (var i = 0; i < l; i++) {\\r\\n\\t\\tif (cells[i]._sortType != null && cells[i]._sortType != \\\"None\\\") {\\r\\n\\t\\t\\timg = cells[i].lastChild;\\r\\n\\t\\t\\tif (i == this.sortColumn)\\r\\n\\t\\t\\t\\timg.className = \\\"sort-arrow \\\" + (this.descending ? \\\"descending\\\" : \\\"ascending\\\");\\r\\n\\t\\t\\telse\\r\\n\\t\\t\\t\\timg.className = \\\"sort-arrow\\\";\\r\\n\\t\\t}\\r\\n\\t}\\r\\n};\\r\\n\\r\\nSortableTable.prototype.headerOnclick = function (e) {\\r\\n\\t// find TD element\\r\\n\\tvar el = e.target || e.srcElement;\\r\\n\\twhile (el.tagName != \\\"TD\\\")\\r\\n\\t\\tel = el.parentNode;\\r\\n\\r\\n\\tthis.sort(SortableTable.msie ? SortableTable.getCellIndex(el) : el.cellIndex);\\r\\n};\\r\\n\\r\\n// IE returns wrong cellIndex when columns are hidden\\r\\nSortableTable.getCellIndex = function (oTd) {\\r\\n\\tvar cells = oTd.parentNode.childNodes\\r\\n\\tvar l = cells.length;\\r\\n\\tvar i;\\r\\n\\tfor (i = 0; cells[i] != oTd && i < l; i++)\\r\\n\\t\\t;\\r\\n\\treturn i;\\r\\n};\\r\\n\\r\\nSortableTable.prototype.getSortType = function (nColumn) {\\r\\n\\treturn this.sortTypes[nColumn] || \\\"String\\\";\\r\\n};\\r\\n\\r\\n// only nColumn is required\\r\\n// if bDescending is left out the old value is taken into account\\r\\n// if sSortType is left out the sort type is found from the sortTypes array\\r\\n\\r\\nSortableTable.prototype.sort = function (nColumn, bDescending, sSortType) {\\r\\n\\tif (!this.tBody) return;\\r\\n\\tif (sSortType == null)\\r\\n\\t\\tsSortType = this.getSortType(nColumn);\\r\\n\\r\\n\\t// exit if None\\r\\n\\tif (sSortType == \\\"None\\\")\\r\\n\\t\\treturn;\\r\\n\\r\\n\\tif (bDescending == null) {\\r\\n\\t\\tif (this.sortColumn != nColumn)\\r\\n\\t\\t\\tthis.descending = this.defaultDescending;\\r\\n\\t\\telse\\r\\n\\t\\t\\tthis.descending = !this.descending;\\r\\n\\t}\\r\\n\\telse\\r\\n\\t\\tthis.descending = bDescending;\\r\\n\\r\\n\\tthis.sortColumn = nColumn;\\r\\n\\r\\n\\tif (typeof this.onbeforesort == \\\"function\\\")\\r\\n\\t\\tthis.onbeforesort();\\r\\n\\r\\n\\tvar f = this.getSortFunction(sSortType, nColumn);\\r\\n\\tvar a = this.getCache(sSortType, nColumn);\\r\\n\\tvar tBody = this.tBody;\\r\\n\\r\\n\\ta.sort(f);\\r\\n\\r\\n\\tif (this.descending)\\r\\n\\t\\ta.reverse();\\r\\n\\r\\n\\tif (SortableTable.removeBeforeSort) {\\r\\n\\t\\t// remove from doc\\r\\n\\t\\tvar nextSibling = tBody.nextSibling;\\r\\n\\t\\tvar p = tBody.parentNode;\\r\\n\\t\\tp.removeChild(tBody);\\r\\n\\t}\\r\\n\\r\\n\\t// insert in the new order\\r\\n\\tvar l = a.length;\\r\\n\\tfor (var i = 0; i < l; i++)\\r\\n\\t\\ttBody.appendChild(a[i].element);\\r\\n\\r\\n\\tif (SortableTable.removeBeforeSort) {\\r\\n\\t\\t// insert into doc\\r\\n\\t\\tp.insertBefore(tBody, nextSibling);\\r\\n\\t}\\r\\n\\r\\n\\tthis.updateHeaderArrows();\\r\\n\\r\\n\\tthis.destroyCache(a);\\r\\n\\r\\n\\tif (typeof this.onsort == \\\"function\\\")\\r\\n\\t\\tthis.onsort();\\r\\n};\\r\\n\\r\\nSortableTable.prototype.asyncSort = function (nColumn, bDescending, sSortType) {\\r\\n\\tvar oThis = this;\\r\\n\\tthis._asyncsort = function () {\\r\\n\\t\\toThis.sort(nColumn, bDescending, sSortType);\\r\\n\\t};\\r\\n\\twindow.setTimeout(this._asyncsort, 1);\\r\\n};\\r\\n\\r\\nSortableTable.prototype.getCache = function (sType, nColumn) {\\r\\n\\tif (!this.tBody) return [];\\r\\n\\tvar rows = this.tBody.rows;\\r\\n\\tvar l = rows.length;\\r\\n\\tvar a = new Array(l);\\r\\n\\tvar r;\\r\\n\\tfor (var i = 0; i < l; i++) {\\r\\n\\t\\tr = rows[i];\\r\\n\\t\\ta[i] = {\\r\\n\\t\\t\\tvalue:\\t\\tthis.getRowValue(r, sType, nColumn),\\r\\n\\t\\t\\telement:\\tr\\r\\n\\t\\t};\\r\\n\\t};\\r\\n\\treturn a;\\r\\n};\\r\\n\\r\\nSortableTable.prototype.destroyCache = function (oArray) {\\r\\n\\tvar l = oArray.length;\\r\\n\\tfor (var i = 0; i < l; i++) {\\r\\n\\t\\toArray[i].value = null;\\r\\n\\t\\toArray[i].element = null;\\r\\n\\t\\toArray[i] = null;\\r\\n\\t}\\r\\n};\\r\\n\\r\\nSortableTable.prototype.getRowValue = function (oRow, sType, nColumn) {\\r\\n\\t// if we have defined a custom getRowValue use that\\r\\n\\tif (this._sortTypeInfo[sType] && this._sortTypeInfo[sType].getRowValue)\\r\\n\\t\\treturn this._sortTypeInfo[sType].getRowValue(oRow, nColumn);\\r\\n\\r\\n\\tvar s;\\r\\n\\tvar c = oRow.cells[nColumn];\\r\\n\\tif (typeof c.innerText != \\\"undefined\\\")\\r\\n\\t\\ts = c.innerText;\\r\\n\\telse\\r\\n\\t\\ts = SortableTable.getInnerText(c);\\r\\n\\treturn this.getValueFromString(s, sType);\\r\\n};\\r\\n\\r\\nSortableTable.getInnerText = function (oNode) {\\r\\n\\tvar s = \\\"\\\";\\r\\n\\tvar cs = oNode.childNodes;\\r\\n\\tvar l = cs.length;\\r\\n\\tfor (var i = 0; i < l; i++) {\\r\\n\\t\\tswitch (cs[i].nodeType) {\\r\\n\\t\\t\\tcase 1: //ELEMENT_NODE\\r\\n\\t\\t\\t\\ts += SortableTable.getInnerText(cs[i]);\\r\\n\\t\\t\\t\\tbreak;\\r\\n\\t\\t\\tcase 3:\\t//TEXT_NODE\\r\\n\\t\\t\\t\\ts += cs[i].nodeValue;\\r\\n\\t\\t\\t\\tbreak;\\r\\n\\t\\t}\\r\\n\\t}\\r\\n\\treturn s;\\r\\n};\\r\\n\\r\\nSortableTable.prototype.getValueFromString = function (sText, sType) {\\r\\n\\tif (this._sortTypeInfo[sType])\\r\\n\\t\\treturn this._sortTypeInfo[sType].getValueFromString( sText );\\r\\n\\treturn sText;\\r\\n\\t/*\\r\\n\\tswitch (sType) {\\r\\n\\t\\tcase \\\"Number\\\":\\r\\n\\t\\t\\treturn Number(sText);\\r\\n\\t\\tcase \\\"CaseInsensitiveString\\\":\\r\\n\\t\\t\\treturn sText.toUpperCase();\\r\\n\\t\\tcase \\\"Date\\\":\\r\\n\\t\\t\\tvar parts = sText.split(\\\"-\\\");\\r\\n\\t\\t\\tvar d = new Date(0);\\r\\n\\t\\t\\td.setFullYear(parts[0]);\\r\\n\\t\\t\\td.setDate(parts[2]);\\r\\n\\t\\t\\td.setMonth(parts[1] - 1);\\r\\n\\t\\t\\treturn d.valueOf();\\r\\n\\t}\\r\\n\\treturn sText;\\r\\n\\t*/\\r\\n\\t};\\r\\n\\r\\nSortableTable.prototype.getSortFunction = function (sType, nColumn) {\\r\\n\\tif (this._sortTypeInfo[sType])\\r\\n\\t\\treturn this._sortTypeInfo[sType].compare;\\r\\n\\treturn SortableTable.basicCompare;\\r\\n};\\r\\n\\r\\nSortableTable.prototype.destroy = function () {\\r\\n\\tthis.uninitHeader();\\r\\n\\tvar win = this.document.parentWindow;\\r\\n\\tif (win && typeof win.detachEvent != \\\"undefined\\\") {\\t// only IE needs this\\r\\n\\t\\twin.detachEvent(\\\"onunload\\\", this._onunload);\\r\\n\\t}\\r\\n\\tthis._onunload = null;\\r\\n\\tthis.element = null;\\r\\n\\tthis.tHead = null;\\r\\n\\tthis.tBody = null;\\r\\n\\tthis.document = null;\\r\\n\\tthis._headerOnclick = null;\\r\\n\\tthis.sortTypes = null;\\r\\n\\tthis._asyncsort = null;\\r\\n\\tthis.onsort = null;\\r\\n};\\r\\n\\r\\n// Adds a sort type to all instance of SortableTable\\r\\n// sType : String - the identifier of the sort type\\r\\n// fGetValueFromString : function ( s : string ) : T - A function that takes a\\r\\n// string and casts it to a desired format. If left out the string is just\\r\\n// returned\\r\\n// fCompareFunction : function ( n1 : T, n2 : T ) : Number - A normal JS sort\\r\\n// compare function. Takes two values and compares them. If left out less than,\\r\\n// <, compare is used\\r\\n// fGetRowValue : function( oRow : HTMLTRElement, nColumn : int ) : T - A function\\r\\n// that takes the row and the column index and returns the value used to compare.\\r\\n// If left out then the innerText is first taken for the cell and then the\\r\\n// fGetValueFromString is used to convert that string the desired value and type\\r\\n\\r\\nSortableTable.prototype.addSortType = function (sType, fGetValueFromString, fCompareFunction, fGetRowValue) {\\r\\n\\tthis._sortTypeInfo[sType] = {\\r\\n\\t\\ttype:\\t\\t\\t\\tsType,\\r\\n\\t\\tgetValueFromString:\\tfGetValueFromString || SortableTable.idFunction,\\r\\n\\t\\tcompare:\\t\\t\\tfCompareFunction || SortableTable.basicCompare,\\r\\n\\t\\tgetRowValue:\\t\\tfGetRowValue\\r\\n\\t};\\r\\n};\\r\\n\\r\\n// this removes the sort type from all instances of SortableTable\\r\\nSortableTable.prototype.removeSortType = function (sType) {\\r\\n\\tdelete this._sortTypeInfo[sType];\\r\\n};\\r\\n\\r\\nSortableTable.basicCompare = function compare(n1, n2) {\\r\\n\\tif (n1.value < n2.value)\\r\\n\\t\\treturn -1;\\r\\n\\tif (n2.value < n1.value)\\r\\n\\t\\treturn 1;\\r\\n\\treturn 0;\\r\\n};\\r\\n\\r\\nSortableTable.idFunction = function (x) {\\r\\n\\treturn x;\\r\\n};\\r\\n\\r\\nSortableTable.toUpperCase = function (s) {\\r\\n\\treturn s.toUpperCase();\\r\\n};\\r\\n\\r\\nSortableTable.toDate = function (s) {\\r\\n\\tvar parts = s.split(\\\"-\\\");\\r\\n\\tvar d = new Date(0);\\r\\n\\td.setFullYear(parts[0]);\\r\\n\\td.setDate(parts[2]);\\r\\n\\td.setMonth(parts[1] - 1);\\r\\n\\treturn d.valueOf();\\r\\n};\\r\\n\\r\\n\\r\\n// add sort types\\r\\nSortableTable.prototype.addSortType(\\\"Number\\\", Number);\\r\\nSortableTable.prototype.addSortType(\\\"CaseInsensitiveString\\\", SortableTable.toUpperCase);\\r\\nSortableTable.prototype.addSortType(\\\"Date\\\", SortableTable.toDate);\\r\\nSortableTable.prototype.addSortType(\\\"String\\\");\\r\\n// None is a special case\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/raw-loader!./libs/sortabletable.js\n// module id = 451\n// module chunks = 0"],"sourceRoot":""}