diff --git a/lib/frappe-datatable.js b/lib/frappe-datatable.js index 289879e..a57333d 100644 --- a/lib/frappe-datatable.js +++ b/lib/frappe-datatable.js @@ -541,12 +541,16 @@ Object.defineProperty(exports, "__esModule", { value: true }); +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + var _dom = __webpack_require__(0); var _dom2 = _interopRequireDefault(_dom); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + var KEYCODES = { 13: 'enter', 91: 'meta', @@ -562,54 +566,79 @@ var KEYCODES = { 67: 'c' }; -var initDone = false; -var handlers = {}; +var Keyboard = function () { + function Keyboard(element) { + _classCallCheck(this, Keyboard); -function bind(dom) { - if (initDone) return; - _dom2.default.on(dom, 'keydown', handler); - initDone = true; -} - -function handler(e) { - var key = KEYCODES[e.keyCode]; - - if (e.shiftKey && key !== 'shift') { - key = 'shift+' + key; + this.listeners = {}; + _dom2.default.on(element, 'keydown', this.handler.bind(this)); } - if (e.ctrlKey && key !== 'ctrl' || e.metaKey && key !== 'meta') { - key = 'ctrl+' + key; - } + _createClass(Keyboard, [{ + key: 'handler', + value: function handler(e) { + var key = KEYCODES[e.keyCode]; - var _handlers = handlers[key]; - - if (_handlers && _handlers.length > 0) { - _handlers.map(function (handler) { - var preventBubbling = handler(); - - if (preventBubbling === undefined || preventBubbling === true) { - e.preventDefault(); + if (e.shiftKey && key !== 'shift') { + key = 'shift+' + key; } - }); - } -} -exports.default = { - init: function init(dom) { - bind(dom); - }, - on: function on(key, handler) { - var keys = key.split(',').map(function (k) { - return k.trim(); - }); + if (e.ctrlKey && key !== 'ctrl' || e.metaKey && key !== 'meta') { + key = 'ctrl+' + key; + } - keys.map(function (key) { - handlers[key] = handlers[key] || []; - handlers[key].push(handler); - }); - } -}; + var listeners = this.listeners[key]; + + if (listeners && listeners.length > 0) { + var _iteratorNormalCompletion = true; + var _didIteratorError = false; + var _iteratorError = undefined; + + try { + for (var _iterator = listeners[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { + var listener = _step.value; + + var preventBubbling = listener(); + if (preventBubbling === undefined || preventBubbling === true) { + e.preventDefault(); + } + } + } catch (err) { + _didIteratorError = true; + _iteratorError = err; + } finally { + try { + if (!_iteratorNormalCompletion && _iterator.return) { + _iterator.return(); + } + } finally { + if (_didIteratorError) { + throw _iteratorError; + } + } + } + } + } + }, { + key: 'on', + value: function on(key, listener) { + var _this = this; + + var keys = key.split(',').map(function (k) { + return k.trim(); + }); + + keys.map(function (key) { + _this.listeners[key] = _this.listeners[key] || []; + _this.listeners[key].push(listener); + }); + } + }]); + + return Keyboard; +}(); + +exports.default = Keyboard; module.exports = exports['default']; /***/ }), @@ -652,6 +681,7 @@ var ColumnManager = function () { this.style = this.instance.style; this.wrapper = this.instance.wrapper; this.rowmanager = this.instance.rowmanager; + this.bodyScrollable = this.instance.bodyScrollable; this.bindEvents(); exports.getDropdownHTML = getDropdownHTML = getDropdownHTML.bind(this, this.options.dropdownButton); @@ -1314,14 +1344,13 @@ var DataTable = function () { this.prepare(); this.style = new _style2.default(this); + this.keyboard = new _keyboard2.default(this.wrapper); this.datamanager = new _datamanager2.default(this.options); this.rowmanager = new _rowmanager2.default(this); this.columnmanager = new _columnmanager2.default(this); this.cellmanager = new _cellmanager2.default(this); this.bodyRenderer = new _bodyRenderer2.default(this); - _keyboard2.default.init(this.wrapper); - if (this.options.data) { this.refresh(); } @@ -2130,10 +2159,6 @@ var _createClass = function () { function defineProperties(target, props) { for var _utils = __webpack_require__(1); -var _keyboard = __webpack_require__(2); - -var _keyboard2 = _interopRequireDefault(_keyboard); - var _dom = __webpack_require__(0); var _dom2 = _interopRequireDefault(_dom); @@ -2158,6 +2183,7 @@ var CellManager = function () { this.columnmanager = this.instance.columnmanager; this.rowmanager = this.instance.rowmanager; this.datamanager = this.instance.datamanager; + this.keyboard = this.instance.keyboard; this.bindEvents(); } @@ -2187,7 +2213,7 @@ var CellManager = function () { _this.activateEditing(cell); }); - _keyboard2.default.on('enter', function (e) { + this.keyboard.on('enter', function (e) { if (_this.$focusedCell && !_this.$editingCell) { // enter keypress on focused cell _this.activateEditing(_this.$focusedCell); @@ -2250,18 +2276,18 @@ var CellManager = function () { }; ['left', 'right', 'up', 'down', 'tab'].map(function (direction) { - return _keyboard2.default.on(direction, function () { + return _this2.keyboard.on(direction, function () { return focusCell(direction); }); }); ['left', 'right', 'up', 'down'].map(function (direction) { - return _keyboard2.default.on('ctrl+' + direction, function () { + return _this2.keyboard.on('ctrl+' + direction, function () { return focusLastCell(direction); }); }); - _keyboard2.default.on('esc', function () { + this.keyboard.on('esc', function () { _this2.deactivateEditing(); }); } @@ -2287,7 +2313,7 @@ var CellManager = function () { }; ['left', 'right', 'up', 'down'].map(function (direction) { - return _keyboard2.default.on('shift+' + direction, function () { + return _this3.keyboard.on('shift+' + direction, function () { return _this3.selectArea(getNextSelectionCursor(direction)); }); }); @@ -2297,7 +2323,7 @@ var CellManager = function () { value: function bindCopyCellContents() { var _this4 = this; - _keyboard2.default.on('ctrl+c', function () { + this.keyboard.on('ctrl+c', function () { _this4.copyCellContents(_this4.$focusedCell, _this4.$selectionCursor); }); } @@ -2538,6 +2564,8 @@ var CellManager = function () { }, { key: 'activateEditing', value: function activateEditing($cell) { + this.focusCell($cell); + var _$$data6 = _dom2.default.data($cell), rowIndex = _$$data6.rowIndex, colIndex = _$$data6.colIndex; diff --git a/lib/frappe-datatable.js.map b/lib/frappe-datatable.js.map index 469c28c..1422acf 100644 --- a/lib/frappe-datatable.js.map +++ b/lib/frappe-datatable.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap eb3548f9fdd32571c1c4","webpack:///./src/dom.js","webpack:///./src/utils.js","webpack:///./src/keyboard.js","webpack:///./src/columnmanager.js","webpack:///./src/index.js","webpack:///./src/datatable.js","webpack:///./src/datamanager.js","webpack:///./src/cellmanager.js","webpack:///external {\"commonjs\":\"sortablejs\",\"commonjs2\":\"sortablejs\",\"root\":\"Sortable\"}","webpack:///./src/rowmanager.js","webpack:///./src/body-renderer.js","webpack:///external {\"commonjs\":\"clusterize.js\",\"commonjs2\":\"clusterize.js\",\"root\":\"Clusterize\"}","webpack:///./src/style.js","webpack:///./src/defaults.js","webpack:///./src/style.scss?3ec1","webpack:///./src/style.scss","webpack:///./node_modules/css-loader/lib/css-base.js","webpack:///./node_modules/style-loader/lib/addStyles.js","webpack:///./node_modules/style-loader/lib/urls.js","webpack:///./package.json"],"names":["$","expr","con","document","querySelector","each","Array","from","querySelectorAll","create","tag","o","element","createElement","i","val","appendChild","ref","parentNode","insertBefore","Object","keys","map","style","prop","setAttribute","on","event","selector","callback","bind","delegate","off","handler","removeEventListener","split","forEach","addEventListener","e","delegatedTarget","target","closest","call","unbind","fire","type","properties","evt","createEvent","initEvent","j","dispatchEvent","data","attrs","dataset","attr","elements","styleMap","getStyle","isArray","removeStyle","styleProps","getComputedStyle","includes","parseFloat","matches","inViewport","el","parentEl","getBoundingClientRect","top","left","bottom","right","pTop","pLeft","pBottom","pRight","scrollTop","pixels","requestAnimationFrame","camelCaseToDash","makeDataAttributeString","getDefault","escapeRegExp","getCSSString","getCSSRuleBlock","buildCSSRule","removeCSSRule","copyTextToClipboard","isNumeric","throttle","promisify","chainPromises","str","replace","g","toLowerCase","props","key","_key","undefined","join","trim","a","b","hasOwnProperty","rule","cssRulesString","rulePatternStr","rulePattern","RegExp","match","property","value","propPattern","propertyStr","valueStr","replacer","output","text","textArea","position","width","height","padding","border","outline","boxShadow","background","body","select","execCommand","err","console","log","removeChild","isNaN","func","wait","options","context","args","result","timeout","previous","later","leading","Date","now","apply","remaining","arguments","clearTimeout","trailing","setTimeout","fn","Promise","resolve","name","promises","reduce","prev","cur","then","KEYCODES","initDone","handlers","dom","keyCode","shiftKey","ctrlKey","metaKey","_handlers","length","preventBubbling","preventDefault","init","k","push","ColumnManager","instance","fireEvent","header","datamanager","wrapper","rowmanager","bindEvents","getDropdownHTML","dropdownButton","innerHTML","refreshHeader","columns","getColumns","getRowHTML","isHeader","$cols","$col","column","colIndex","sortIndicator","sortOrder","$columnMap","bindDropdown","bindResizeColumn","bindMoveColumn","$activeDropdown","$button","$dropdown","classList","contains","deactivateDropdown","add","dropdownItems","headerDropdown","$item","index","action","getColumn","remove","isDragging","$resizingCell","startWidth","startX","$handle","$cell","col","resizable","pageX","setColumnWidth","setBodyWidth","finalWidth","getColumnMinWidth","updateColumn","setColumnHeaderWidth","initialized","initialize","ready","$parent","sortable","onEnd","oldIndex","newIndex","$draggedCell","item","switchColumn","preventOnFilter","filter","animation","span","textContent","nextSortOrder","sortColumn","freeze","sortRows","refreshRows","unfreeze","removedCol","removeColumn","setHeaderStyle","setupMinWidth","setupNaturalColumnWidth","distributeRemainingWidth","setColumnStyle","setDefaultCellHeight","takeAvailableSpace","margin","nonResizableColumnsSelector","setStyle","cursor","minWidth","bodyScrollable","wrapperWidth","datatableWrapper","headerWidth","resizableColumns","deltaWidth","getColumnHeaderElement","Math","min","__cellHeightSet","setCellHeight","align","_columnWidthMap","styles","$column","addCheckboxColumn","addSerialNoColumn","getColumnCount","findIndex","content","d","label","__version__","version","DataTable","instances","HTMLElement","Error","assign","concat","events","prepare","columnmanager","cellmanager","bodyRenderer","refresh","prepareDom","freezeMessage","freezeContainer","render","setDimensions","destroy","rows","appendRows","row","rowIndex","refreshRow","renderHeader","renderBody","marginTop","getCell","viewportHeight","scrollLeft","display","eventName","enableLogs","DataManager","rowCount","prepareColumns","prepareRows","prepareNumericColumns","validateColumns","prepareDefaultColumns","prepareHeader","hasColumnById","cell","id","getCheckboxHTML","editable","focusable","dropdown","baseRowCell","prepareCell","baseCell","format","row0","getRow","cellValue","validateData","_getNextRowCount","prepareRow","DataError","_sortRows","currentSort","reverseArray","sort","_aIndex","_bIndex","_a","_b","srNoColIndex","getColumnIndexById","array","temporary","index1","index2","temp","newCell1","newCell2","newRow","_row","newVal","keyValPairs","start","end","slice","skipStandardColumns","getStandardColumnCount","find","Boolean","TypeError","CellManager","bindFocusCell","bindEditCell","bindKeyboardSelection","bindCopyCellContents","bindMouseEvents","bindKeyboardNav","$editingCell","activateEditing","$focusedCell","submitEditing","deactivateEditing","focusCell","direction","getLeftCell$","getRightCell$","getAboveCell$","getBelowCell$","focusLastCell","getLeftMostCell$","getRightMostCell$","getTopMostCell$","getBottomMostCell$","getNextSelectionCursor","$selectionCursor","getSelectionCursor","selectArea","copyCellContents","mouseDown","skipClearSelection","clearSelection","focus","highlightRowColumnHeader","scrollToCell","_colIndex","colHeaderSelector","rowHeaderSelector","lastHeaders","colHeader","rowHeader","backgroundColor","getCell$","fCell","_selectArea","$cell1","$cell2","cells","getCellsInRange","colIndex1","rowIndex1","colIndex2","rowIndex2","cell1","cell2","isStandardCell","rowIndices","_rowIndex","$editCell","editor","getEditor","currentCellEditor","initValue","parent","obj","setValue","$input","inside","getValue","done","oldValue","updateCell","catch","values","acc","curr","refreshCell","cellSelector","getCellContent","getFirstColumnIndex","$aboveRow","parentElement","previousElementSibling","$belowRow","nextElementSibling","getLastColumnIndex","getFirstRowIndex","getLastRowIndex","getCellAttr","scrollToRow","ceil","getViewportHeight","getRowHeight","dataAttr","editCellHTML","getEditCellHTML","resizeColumn","hasDropdown","contentHTML","RowManager","bindCheckbox","checkMap","$checkbox","checked","checkAll","checkRow","updateRow","c","getCheckedRows","toggle","input","highlightRow","getTotalRows","highlightAll","$row","getRow$","_highlightedRows","getRowCount","_lastScrollTo","rowsInView","floor","offset","getCellHTML","getBodyHTML","BodyRenderer","appendRemainingData","enableClusterize","renderBodyWithClusterize","renderBodyHTML","getRows","restoreState","initialData","getDataForClusterize","clusterize","scrollElem","contentElem","callbacks","clusterChanged","no_data_text","loadingText","no_data_class","update","highlightCheckedRows","selectAreaOnClusterChanged","focusCellOnClusterChanged","append","Style","datatable","scopeClass","constructor","styleEl","styleSheet","sheet","ruleString","_index","cssRules","deleteRule","insertRule","onRemoveColumn","onSwitchColumn","column1","column2","onSortColumn","asc","desc","none"],"mappings":"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CA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;AACD;AACA,CAAC;;AAED;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA,iBAAiB,mBAAmB;AACpC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,iBAAiB,sBAAsB;AACvC;;AAEA;AACA,mBAAmB,2BAA2B;;AAE9C;AACA;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,mBAAmB;AACnC;AACA;;AAEA;AACA;;AAEA,iBAAiB,2BAA2B;AAC5C;AACA;;AAEA,QAAQ,uBAAuB;AAC/B;AACA;AACA,GAAG;AACH;;AAEA,iBAAiB,uBAAuB;AACxC;AACA;;AAEA,2BAA2B;AAC3B;AACA;AACA;;AAEA;AACA;AACA;;AAEA,gBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;AACA;AACA,cAAc;;AAEd,kDAAkD,sBAAsB;AACxE;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA,EAAE;AACF;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA;;AAEA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,uDAAuD;AACvD;;AAEA,6BAA6B,mBAAmB;;AAEhD;;AAEA;;AAEA;AACA;;;;;;;;AC/VA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,WAAW,EAAE;AACrD,wCAAwC,WAAW,EAAE;;AAErD;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA,sCAAsC;AACtC,GAAG;AACH;AACA,8DAA8D;AAC9D;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA;;;;;;;ACxFA,kBAAkB,+IAA+I,2QAA2Q,oBAAoB,wZAAwZ,eAAe,6DAA6D,+HAA+H,mDAAmD,iEAAiE,iD","file":"frappe-datatable.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"sortablejs\"), require(\"clusterize.js\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"DataTable\", [, ], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"DataTable\"] = factory(require(\"sortablejs\"), require(\"clusterize.js\"));\n\telse\n\t\troot[\"DataTable\"] = factory(root[\"Sortable\"], root[\"Clusterize\"]);\n})(typeof self !== 'undefined' ? self : this, function(__WEBPACK_EXTERNAL_MODULE_8__, __WEBPACK_EXTERNAL_MODULE_11__) {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 4);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap eb3548f9fdd32571c1c4","\nexport default function $(expr, con) {\n return typeof expr === 'string' ?\n (con || document).querySelector(expr) :\n expr || null;\n}\n\n$.each = (expr, con) => {\n return typeof expr === 'string' ?\n Array.from((con || document).querySelectorAll(expr)) :\n expr || null;\n};\n\n$.create = (tag, o) => {\n let element = document.createElement(tag);\n\n for (let i in o) {\n let val = o[i];\n\n if (i === 'inside') {\n $(val).appendChild(element);\n } else\n if (i === 'around') {\n let ref = $(val);\n ref.parentNode.insertBefore(element, ref);\n element.appendChild(ref);\n } else\n if (i === 'styles') {\n if (typeof val === 'object') {\n Object.keys(val).map(prop => {\n element.style[prop] = val[prop];\n });\n }\n } else\n if (i in element) {\n element[i] = val;\n } else {\n element.setAttribute(i, val);\n }\n }\n\n return element;\n};\n\n$.on = (element, event, selector, callback) => {\n if (!callback) {\n callback = selector;\n $.bind(element, event, callback);\n } else {\n $.delegate(element, event, selector, callback);\n }\n};\n\n$.off = (element, event, handler) => {\n element.removeEventListener(event, handler);\n};\n\n$.bind = (element, event, callback) => {\n event.split(/\\s+/).forEach(function (event) {\n element.addEventListener(event, callback);\n });\n};\n\n$.delegate = (element, event, selector, callback) => {\n element.addEventListener(event, function (e) {\n const delegatedTarget = e.target.closest(selector);\n if (delegatedTarget) {\n e.delegatedTarget = delegatedTarget;\n callback.call(this, e, delegatedTarget);\n }\n });\n};\n\n$.unbind = (element, o) => {\n if (element) {\n for (let event in o) {\n let callback = o[event];\n\n event.split(/\\s+/).forEach(function (event) {\n element.removeEventListener(event, callback);\n });\n }\n }\n};\n\n$.fire = (target, type, properties) => {\n let evt = document.createEvent('HTMLEvents');\n\n evt.initEvent(type, true, true);\n\n for (let j in properties) {\n evt[j] = properties[j];\n }\n\n return target.dispatchEvent(evt);\n};\n\n$.data = (element, attrs) => { // eslint-disable-line\n if (!attrs) {\n return element.dataset;\n }\n\n for (const attr in attrs) {\n element.dataset[attr] = attrs[attr];\n }\n};\n\n$.style = (elements, styleMap) => { // eslint-disable-line\n\n if (typeof styleMap === 'string') {\n return $.getStyle(elements, styleMap);\n }\n\n if (!Array.isArray(elements)) {\n elements = [elements];\n }\n\n elements.map(element => {\n for (const prop in styleMap) {\n element.style[prop] = styleMap[prop];\n }\n });\n};\n\n$.removeStyle = (elements, styleProps) => {\n if (!Array.isArray(elements)) {\n elements = [elements];\n }\n\n if (!Array.isArray(styleProps)) {\n styleProps = [styleProps];\n }\n\n elements.map(element => {\n for (const prop of styleProps) {\n element.style[prop] = '';\n }\n });\n};\n\n$.getStyle = (element, prop) => {\n let val = getComputedStyle(element)[prop];\n\n if (['width', 'height'].includes(prop)) {\n val = parseFloat(val);\n }\n\n return val;\n};\n\n$.closest = (selector, element) => {\n if (!element) return null;\n\n if (element.matches(selector)) {\n return element;\n }\n\n return $.closest(selector, element.parentNode);\n};\n\n$.inViewport = (el, parentEl) => {\n const { top, left, bottom, right } = el.getBoundingClientRect();\n const { top: pTop, left: pLeft, bottom: pBottom, right: pRight } = parentEl.getBoundingClientRect();\n\n return top >= pTop && left >= pLeft && bottom <= pBottom && right <= pRight;\n};\n\n$.scrollTop = function scrollTop(element, pixels) {\n requestAnimationFrame(() => {\n element.scrollTop = pixels;\n });\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/dom.js","export function camelCaseToDash(str) {\n return str.replace(/([A-Z])/g, (g) => `-${g[0].toLowerCase()}`);\n}\n\nexport function makeDataAttributeString(props) {\n const keys = Object.keys(props);\n\n return keys\n .map((key) => {\n const _key = camelCaseToDash(key);\n const val = props[key];\n\n if (val === undefined) return '';\n return `data-${_key}=\"${val}\" `;\n })\n .join('')\n .trim();\n}\n\nexport function getDefault(a, b) {\n return a !== undefined ? a : b;\n}\n\nexport function escapeRegExp(str) {\n // https://stackoverflow.com/a/6969486\n return str.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, '\\\\$&');\n}\n\nexport function getCSSString(styleMap) {\n let style = '';\n\n for (const prop in styleMap) {\n if (styleMap.hasOwnProperty(prop)) {\n style += `${prop}: ${styleMap[prop]}; `;\n }\n }\n\n return style.trim();\n}\n\nexport function getCSSRuleBlock(rule, styleMap) {\n return `${rule} { ${getCSSString(styleMap)} }`;\n}\n\nexport function buildCSSRule(rule, styleMap, cssRulesString = '') {\n // build css rules efficiently,\n // append new rule if doesnt exist,\n // update existing ones\n\n const rulePatternStr = `${escapeRegExp(rule)} {([^}]*)}`;\n const rulePattern = new RegExp(rulePatternStr, 'g');\n\n if (cssRulesString && cssRulesString.match(rulePattern)) {\n for (const property in styleMap) {\n const value = styleMap[property];\n const propPattern = new RegExp(`${escapeRegExp(property)}:([^;]*);`);\n\n cssRulesString = cssRulesString.replace(rulePattern, function (match, propertyStr) {\n if (propertyStr.match(propPattern)) {\n // property exists, replace value with new value\n propertyStr = propertyStr.replace(propPattern, (match, valueStr) => {\n return `${property}: ${value};`;\n });\n }\n propertyStr = propertyStr.trim();\n\n const replacer =\n `${rule} { ${propertyStr} }`;\n\n return replacer;\n });\n }\n\n return cssRulesString;\n }\n // no match, append new rule block\n return `${cssRulesString}${getCSSRuleBlock(rule, styleMap)}`;\n}\n\nexport function removeCSSRule(rule, cssRulesString = '') {\n const rulePatternStr = `${escapeRegExp(rule)} {([^}]*)}`;\n const rulePattern = new RegExp(rulePatternStr, 'g');\n let output = cssRulesString;\n\n if (cssRulesString && cssRulesString.match(rulePattern)) {\n output = cssRulesString.replace(rulePattern, '');\n }\n\n return output.trim();\n}\n\nexport function copyTextToClipboard(text) {\n // https://stackoverflow.com/a/30810322/5353542\n var textArea = document.createElement('textarea');\n\n //\n // *** This styling is an extra step which is likely not required. ***\n //\n // Why is it here? To ensure:\n // 1. the element is able to have focus and selection.\n // 2. if element was to flash render it has minimal visual impact.\n // 3. less flakyness with selection and copying which **might** occur if\n // the textarea element is not visible.\n //\n // The likelihood is the element won't even render, not even a flash,\n // so some of these are just precautions. However in IE the element\n // is visible whilst the popup box asking the user for permission for\n // the web page to copy to the clipboard.\n //\n\n // Place in top-left corner of screen regardless of scroll position.\n textArea.style.position = 'fixed';\n textArea.style.top = 0;\n textArea.style.left = 0;\n\n // Ensure it has a small width and height. Setting to 1px / 1em\n // doesn't work as this gives a negative w/h on some browsers.\n textArea.style.width = '2em';\n textArea.style.height = '2em';\n\n // We don't need padding, reducing the size if it does flash render.\n textArea.style.padding = 0;\n\n // Clean up any borders.\n textArea.style.border = 'none';\n textArea.style.outline = 'none';\n textArea.style.boxShadow = 'none';\n\n // Avoid flash of white box if rendered for any reason.\n textArea.style.background = 'transparent';\n\n textArea.value = text;\n\n document.body.appendChild(textArea);\n\n textArea.select();\n\n try {\n document.execCommand('copy');\n } catch (err) {\n console.log('Oops, unable to copy');\n }\n\n document.body.removeChild(textArea);\n}\n\nexport function isNumeric(val) {\n return !isNaN(val);\n}\n\n// https://stackoverflow.com/a/27078401\nexport function throttle(func, wait, options) {\n var context, args, result;\n var timeout = null;\n var previous = 0;\n if (!options) options = {};\n\n let later = function () {\n previous = options.leading === false ? 0 : Date.now();\n timeout = null;\n result = func.apply(context, args);\n if (!timeout) context = args = null;\n };\n\n return function () {\n var now = Date.now();\n if (!previous && options.leading === false) previous = now;\n let remaining = wait - (now - previous);\n context = this;\n args = arguments;\n if (remaining <= 0 || remaining > wait) {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n previous = now;\n result = func.apply(context, args);\n if (!timeout) context = args = null;\n } else if (!timeout && options.trailing !== false) {\n timeout = setTimeout(later, remaining);\n }\n return result;\n };\n};\n\nexport function promisify(fn, context = null) {\n return (...args) => {\n return new Promise(resolve => {\n setTimeout(() => {\n fn.apply(context, args);\n resolve('done', fn.name);\n }, 0);\n });\n };\n};\n\nexport function chainPromises(promises) {\n return promises.reduce(\n (prev, cur) => prev.then(cur), Promise.resolve()\n );\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils.js","import $ from './dom';\n\nconst KEYCODES = {\n 13: 'enter',\n 91: 'meta',\n 16: 'shift',\n 17: 'ctrl',\n 18: 'alt',\n 37: 'left',\n 38: 'up',\n 39: 'right',\n 40: 'down',\n 9: 'tab',\n 27: 'esc',\n 67: 'c'\n};\n\nlet initDone = false;\nconst handlers = {};\n\nfunction bind(dom) {\n if (initDone) return;\n $.on(dom, 'keydown', handler);\n initDone = true;\n}\n\nfunction handler(e) {\n let key = KEYCODES[e.keyCode];\n\n if (e.shiftKey && key !== 'shift') {\n key = 'shift+' + key;\n }\n\n if ((e.ctrlKey && key !== 'ctrl') || (e.metaKey && key !== 'meta')) {\n key = 'ctrl+' + key;\n }\n\n const _handlers = handlers[key];\n\n if (_handlers && _handlers.length > 0) {\n _handlers.map(handler => {\n const preventBubbling = handler();\n\n if (preventBubbling === undefined || preventBubbling === true) {\n e.preventDefault();\n }\n });\n }\n}\n\nexport default {\n init(dom) {\n bind(dom);\n },\n on(key, handler) {\n const keys = key.split(',').map(k => k.trim());\n\n keys.map(key => {\n handlers[key] = handlers[key] || [];\n handlers[key].push(handler);\n });\n }\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/keyboard.js","import $ from './dom';\nimport Sortable from 'sortablejs';\nimport { getDefault } from './utils';\n\nexport default class ColumnManager {\n constructor(instance) {\n this.instance = instance;\n this.options = this.instance.options;\n this.fireEvent = this.instance.fireEvent;\n this.header = this.instance.header;\n this.datamanager = this.instance.datamanager;\n this.style = this.instance.style;\n this.wrapper = this.instance.wrapper;\n this.rowmanager = this.instance.rowmanager;\n\n this.bindEvents();\n getDropdownHTML = getDropdownHTML.bind(this, this.options.dropdownButton);\n }\n\n renderHeader() {\n this.header.innerHTML = '';\n this.refreshHeader();\n }\n\n refreshHeader() {\n const columns = this.datamanager.getColumns();\n\n if (!$('.data-table-col', this.header)) {\n // insert html\n $('thead', this.header).innerHTML = this.rowmanager.getRowHTML(columns, { isHeader: 1 });\n } else {\n // refresh dom state\n const $cols = $.each('.data-table-col', this.header);\n if (columns.length < $cols.length) {\n // deleted column\n $('thead', this.header).innerHTML = this.rowmanager.getRowHTML(columns, { isHeader: 1 });\n return;\n }\n\n $cols.map(($col, i) => {\n const column = columns[i];\n // column sorted or order changed\n // update colIndex of each header cell\n $.data($col, {\n colIndex: column.colIndex\n });\n\n // refresh sort indicator\n const sortIndicator = $('.sort-indicator', $col);\n if (sortIndicator) {\n sortIndicator.innerHTML = this.options.sortIndicator[column.sortOrder];\n }\n });\n }\n // reset columnMap\n this.$columnMap = [];\n }\n\n bindEvents() {\n this.bindDropdown();\n this.bindResizeColumn();\n this.bindMoveColumn();\n }\n\n bindDropdown() {\n let $activeDropdown;\n $.on(this.header, 'click', '.data-table-dropdown-toggle', (e, $button) => {\n const $dropdown = $.closest('.data-table-dropdown', $button);\n\n if (!$dropdown.classList.contains('is-active')) {\n deactivateDropdown();\n $dropdown.classList.add('is-active');\n $activeDropdown = $dropdown;\n } else {\n deactivateDropdown();\n }\n });\n\n $.on(document.body, 'click', (e) => {\n if (e.target.matches('.data-table-dropdown-toggle')) return;\n deactivateDropdown();\n });\n\n const dropdownItems = this.options.headerDropdown;\n\n $.on(this.header, 'click', '.data-table-dropdown-list > div', (e, $item) => {\n const $col = $.closest('.data-table-col', $item);\n const { index } = $.data($item);\n const { colIndex } = $.data($col);\n let callback = dropdownItems[index].action;\n\n callback && callback.call(this.instance, this.getColumn(colIndex));\n });\n\n function deactivateDropdown(e) {\n $activeDropdown && $activeDropdown.classList.remove('is-active');\n $activeDropdown = null;\n }\n }\n\n bindResizeColumn() {\n let isDragging = false;\n let $resizingCell, startWidth, startX;\n\n $.on(this.header, 'mousedown', '.data-table-col .column-resizer', (e, $handle) => {\n document.body.classList.add('data-table-resize');\n const $cell = $handle.parentNode.parentNode;\n $resizingCell = $cell;\n const { colIndex } = $.data($resizingCell);\n const col = this.getColumn(colIndex);\n\n if (col && col.resizable === false) {\n return;\n }\n\n isDragging = true;\n startWidth = $.style($('.content', $resizingCell), 'width');\n startX = e.pageX;\n });\n\n $.on(document.body, 'mouseup', (e) => {\n document.body.classList.remove('data-table-resize');\n if (!$resizingCell) return;\n isDragging = false;\n\n const { colIndex } = $.data($resizingCell);\n this.setColumnWidth(colIndex);\n this.instance.setBodyWidth();\n $resizingCell = null;\n });\n\n $.on(document.body, 'mousemove', (e) => {\n if (!isDragging) return;\n const finalWidth = startWidth + (e.pageX - startX);\n const { colIndex } = $.data($resizingCell);\n\n if (this.getColumnMinWidth(colIndex) > finalWidth) {\n // don't resize past minWidth\n return;\n }\n this.datamanager.updateColumn(colIndex, { width: finalWidth });\n this.setColumnHeaderWidth(colIndex);\n });\n }\n\n bindMoveColumn() {\n let initialized;\n\n const initialize = () => {\n if (initialized) {\n $.off(document.body, 'mousemove', initialize);\n return;\n }\n const ready = $('.data-table-col', this.header);\n if (!ready) return;\n\n const $parent = $('.data-table-row', this.header);\n\n this.sortable = Sortable.create($parent, {\n onEnd: (e) => {\n const { oldIndex, newIndex } = e;\n const $draggedCell = e.item;\n const { colIndex } = $.data($draggedCell);\n if (+colIndex === newIndex) return;\n\n this.switchColumn(oldIndex, newIndex);\n },\n preventOnFilter: false,\n filter: '.column-resizer, .data-table-dropdown',\n animation: 150\n });\n };\n\n $.on(document.body, 'mousemove', initialize);\n }\n\n bindSortColumn() {\n\n $.on(this.header, 'click', '.data-table-col .column-title', (e, span) => {\n const $cell = span.closest('.data-table-col');\n let { colIndex, sortOrder } = $.data($cell);\n sortOrder = getDefault(sortOrder, 'none');\n const col = this.getColumn(colIndex);\n\n if (col && col.sortable === false) {\n return;\n }\n\n // reset sort indicator\n $('.sort-indicator', this.header).textContent = '';\n $.each('.data-table-col', this.header).map($cell => {\n $.data($cell, {\n sortOrder: 'none'\n });\n });\n\n let nextSortOrder, textContent;\n if (sortOrder === 'none') {\n nextSortOrder = 'asc';\n textContent = '▲';\n } else if (sortOrder === 'asc') {\n nextSortOrder = 'desc';\n textContent = '▼';\n } else if (sortOrder === 'desc') {\n nextSortOrder = 'none';\n textContent = '';\n }\n\n $.data($cell, {\n sortOrder: nextSortOrder\n });\n $('.sort-indicator', $cell).textContent = textContent;\n\n this.sortColumn(colIndex, nextSortOrder);\n });\n }\n\n sortColumn(colIndex, nextSortOrder) {\n this.instance.freeze();\n this.sortRows(colIndex, nextSortOrder)\n .then(() => {\n this.refreshHeader();\n return this.rowmanager.refreshRows();\n })\n .then(() => this.instance.unfreeze())\n .then(() => {\n this.fireEvent('onSortColumn', this.getColumn(colIndex));\n });\n }\n\n removeColumn(colIndex) {\n const removedCol = this.getColumn(colIndex);\n this.instance.freeze();\n this.datamanager.removeColumn(colIndex)\n .then(() => {\n this.refreshHeader();\n return this.rowmanager.refreshRows();\n })\n .then(() => this.instance.unfreeze())\n .then(() => {\n this.fireEvent('onRemoveColumn', removedCol);\n });\n }\n\n switchColumn(oldIndex, newIndex) {\n this.instance.freeze();\n this.datamanager.switchColumn(oldIndex, newIndex)\n .then(() => {\n this.refreshHeader();\n return this.rowmanager.refreshRows();\n })\n .then(() => {\n this.setColumnWidth(oldIndex);\n this.setColumnWidth(newIndex);\n this.instance.unfreeze();\n })\n .then(() => {\n this.fireEvent('onSwitchColumn',\n this.getColumn(oldIndex), this.getColumn(newIndex)\n );\n });\n }\n\n setDimensions() {\n this.setHeaderStyle();\n this.setupMinWidth();\n this.setupNaturalColumnWidth();\n this.distributeRemainingWidth();\n this.setColumnStyle();\n this.setDefaultCellHeight();\n }\n\n setHeaderStyle() {\n if (!this.options.takeAvailableSpace) {\n // setting width as 0 will ensure that the\n // header doesn't take the available space\n $.style(this.header, {\n width: 0\n });\n }\n\n $.style(this.header, {\n margin: 0\n });\n\n // don't show resize cursor on nonResizable columns\n const nonResizableColumnsSelector = this.datamanager.getColumns()\n .filter(col => col.resizable === false)\n .map(col => col.colIndex)\n .map(i => `.data-table-header [data-col-index=\"${i}\"]`)\n .join();\n\n this.style.setStyle(nonResizableColumnsSelector, {\n cursor: 'pointer'\n });\n }\n\n setupMinWidth() {\n $.each('.data-table-col', this.header).map(col => {\n const width = $.style($('.content', col), 'width');\n const { colIndex } = $.data(col);\n const column = this.getColumn(colIndex);\n\n if (!column.minWidth) {\n // only set this once\n this.datamanager.updateColumn(colIndex, { minWidth: width });\n }\n });\n }\n\n setupNaturalColumnWidth() {\n // set initial width as naturally calculated by table's first row\n $.each('.data-table-row[data-row-index=\"0\"] .data-table-col', this.bodyScrollable).map($cell => {\n\n const { colIndex } = $.data($cell);\n if (this.getColumn(colIndex).width > 0) {\n // already set\n return;\n }\n\n let width = $.style($('.content', $cell), 'width');\n const minWidth = this.getColumnMinWidth(colIndex);\n\n if (width < minWidth) {\n width = minWidth;\n }\n this.datamanager.updateColumn(colIndex, { width });\n });\n }\n\n distributeRemainingWidth() {\n if (!this.options.takeAvailableSpace) return;\n\n const wrapperWidth = $.style(this.instance.datatableWrapper, 'width');\n const headerWidth = $.style(this.header, 'width');\n\n if (headerWidth >= wrapperWidth) {\n // don't resize, horizontal scroll takes place\n return;\n }\n\n const resizableColumns = this.datamanager.getColumns().filter(\n col => col.resizable === undefined || col.resizable\n );\n\n const deltaWidth = (wrapperWidth - headerWidth) / resizableColumns.length;\n\n resizableColumns.map(col => {\n const width = $.style(this.getColumnHeaderElement(col.colIndex), 'width');\n let finalWidth = Math.min(width + deltaWidth) - 2;\n\n this.datamanager.updateColumn(col.colIndex, { width: finalWidth });\n });\n }\n\n setDefaultCellHeight() {\n if (this.__cellHeightSet) return;\n const height = $.style($('.data-table-col', this.instance.datatableWrapper), 'height');\n if (height) {\n this.setCellHeight(height);\n this.__cellHeightSet = true;\n }\n }\n\n setCellHeight(height) {\n this.style.setStyle('.data-table-col .content', {\n height: height + 'px'\n });\n this.style.setStyle('.data-table-col .edit-cell', {\n height: height + 'px'\n });\n }\n\n setColumnStyle() {\n // align columns\n this.getColumns()\n .map(column => {\n // alignment\n if (['left', 'center', 'right'].includes(column.align)) {\n this.style.setStyle(`[data-col-index=\"${column.colIndex}\"]`, {\n 'text-align': column.align\n });\n }\n // width\n this.setColumnHeaderWidth(column.colIndex);\n this.setColumnWidth(column.colIndex);\n });\n this.instance.setBodyWidth();\n\n }\n\n sortRows(colIndex, sortOrder) {\n return this.datamanager.sortRows(colIndex, sortOrder);\n }\n\n getColumn(colIndex) {\n return this.datamanager.getColumn(colIndex);\n }\n\n getColumns() {\n return this.datamanager.getColumns();\n }\n\n setColumnWidth(colIndex) {\n colIndex = +colIndex;\n this._columnWidthMap = this._columnWidthMap || [];\n\n const { width } = this.getColumn(colIndex);\n\n let index = this._columnWidthMap[colIndex];\n const selector = `[data-col-index=\"${colIndex}\"] .content, [data-col-index=\"${colIndex}\"] .edit-cell`;\n const styles = {\n width: width + 'px'\n };\n\n index = this.style.setStyle(selector, styles, index);\n this._columnWidthMap[colIndex] = index;\n }\n\n setColumnHeaderWidth(colIndex) {\n colIndex = +colIndex;\n this.$columnMap = this.$columnMap || [];\n const selector = `[data-col-index=\"${colIndex}\"][data-is-header] .content`;\n const { width } = this.getColumn(colIndex);\n\n let $column = this.$columnMap[colIndex];\n if (!$column) {\n $column = this.header.querySelector(selector);\n this.$columnMap[colIndex] = $column;\n }\n\n $column.style.width = width + 'px';\n }\n\n getColumnMinWidth(colIndex) {\n colIndex = +colIndex;\n return this.getColumn(colIndex).minWidth || 24;\n }\n\n getFirstColumnIndex() {\n if (this.options.addCheckboxColumn && this.options.addSerialNoColumn) {\n return 2;\n }\n\n if (this.options.addCheckboxColumn || this.options.addSerialNoColumn) {\n return 1;\n }\n\n return 0;\n }\n\n getHeaderCell$(colIndex) {\n return $(`.data-table-col[data-col-index=\"${colIndex}\"]`, this.header);\n }\n\n getLastColumnIndex() {\n return this.datamanager.getColumnCount() - 1;\n }\n\n getColumnHeaderElement(colIndex) {\n colIndex = +colIndex;\n if (colIndex < 0) return null;\n return $(`.data-table-col[data-is-header][data-col-index=\"${colIndex}\"]`, this.wrapper);\n }\n\n getSerialColumnIndex() {\n const columns = this.datamanager.getColumns();\n\n return columns.findIndex(column => column.content.includes('Sr. No'));\n }\n}\n\n// eslint-disable-next-line\nvar getDropdownHTML = function getDropdownHTML(dropdownButton = 'v') {\n // add dropdown buttons\n const dropdownItems = this.options.headerDropdown;\n\n return `