diff --git a/lib/frappe-datatable.js b/lib/frappe-datatable.js index ee6129b..738e9c9 100644 --- a/lib/frappe-datatable.js +++ b/lib/frappe-datatable.js @@ -2302,7 +2302,7 @@ var ColumnManager = function () { // align columns this.getColumns().map(function (column) { - if (column.align && ['left', 'center', 'right'].includes(column.align)) { + if (['left', 'center', 'right'].includes(column.align)) { _this6.style.setStyle('.data-table [data-col-index="' + column.colIndex + '"]', { 'text-align': column.align }); @@ -2327,18 +2327,30 @@ var ColumnManager = function () { }, { key: 'setColumnWidth', value: function setColumnWidth(colIndex, width) { - var selector = '[data-col-index="' + colIndex + '"] .content, [data-col-index="' + colIndex + '"] .edit-cell'; + this._columnWidthMap = this._columnWidthMap || []; - this.style.setStyle(selector, { + var index = this._columnWidthMap[colIndex]; + var selector = '[data-col-index="' + colIndex + '"] .content, [data-col-index="' + colIndex + '"] .edit-cell'; + var styles = { width: width + 'px' - }); + }; + + index = this.style.setStyle(selector, styles, index); + this._columnWidthMap[colIndex] = index; } }, { key: 'setColumnHeaderWidth', value: function setColumnHeaderWidth(colIndex, width) { - this.style.setStyle('[data-col-index="' + colIndex + '"][data-is-header] .content', { - width: width + 'px' - }); + this.$columnMap = this.$columnMap || []; + var selector = '[data-col-index="' + colIndex + '"][data-is-header] .content'; + + var $column = this.$columnMap[colIndex]; + if (!$column) { + $column = this.header.querySelector(selector); + this.$columnMap[colIndex] = $column; + } + + $column.style.width = width + 'px'; } }, { key: 'getColumnMinWidth', @@ -2418,6 +2430,8 @@ var Style = function () { _createClass(Style, [{ key: 'setStyle', value: function setStyle(rule, styleMap) { + var index = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : -1; + var styles = Object.keys(styleMap).map(function (prop) { if (!prop.includes('-')) { prop = (0, _utils.camelCaseToDash)(prop); @@ -2426,7 +2440,14 @@ var Style = function () { }).join(''); var ruleString = rule + ' { ' + styles + ' }'; - this.styleSheet.insertRule(ruleString, this.styleSheet.cssRules.length); + var _index = this.styleSheet.cssRules.length; + if (index !== -1) { + this.styleSheet.removeRule(index); + _index = index; + } + + this.styleSheet.insertRule(ruleString, _index); + return _index; } }]); @@ -3021,7 +3042,7 @@ module.exports = function (css) { /* 16 */ /***/ (function(module, exports) { -module.exports = {"name":"frappe-datatable","version":"0.0.1","description":"A modern datatable library for the web","main":"lib/frappe-datatable.js","scripts":{"build":"webpack --env build","dev":"webpack --progress --colors --watch --env dev","test":"mocha --compilers js:babel-core/register --colors ./test/*.spec.js","test:watch":"mocha --compilers js:babel-core/register --colors -w ./test/*.spec.js"},"devDependencies":{"babel-cli":"6.24.1","babel-core":"6.24.1","babel-eslint":"7.2.3","babel-loader":"7.0.0","babel-plugin-add-module-exports":"0.2.1","babel-preset-env":"^1.6.1","chai":"3.5.0","css-loader":"^0.28.7","eslint":"3.19.0","eslint-loader":"1.7.1","mocha":"3.3.0","node-sass":"^4.5.3","sass-loader":"^6.0.6","style-loader":"^0.18.2","webpack":"^3.1.0","yargs":"7.1.0"},"repository":{"type":"git","url":"https://github.com/frappe/datatable.git"},"keywords":["webpack","es6","starter","library","universal","umd","commonjs"],"author":"Faris Ansari","license":"MIT","bugs":{"url":"https://github.com/frappe/datatable/issues"},"homepage":"https://frappe.github.io/datatable","dependencies":{"clusterize.js":"^0.18.0"}} +module.exports = {"name":"frappe-datatable","version":"0.0.1","description":"A modern datatable library for the web","main":"lib/frappe-datatable.js","scripts":{"build":"webpack --env build","dev":"webpack --progress --colors --watch --env dev","test":"mocha --compilers js:babel-core/register --colors ./test/*.spec.js","test:watch":"mocha --compilers js:babel-core/register --colors -w ./test/*.spec.js"},"devDependencies":{"babel-cli":"6.24.1","babel-core":"6.24.1","babel-eslint":"7.2.3","babel-loader":"7.0.0","babel-plugin-add-module-exports":"0.2.1","babel-preset-env":"^1.6.1","chai":"3.5.0","css-loader":"^0.28.7","eslint":"3.19.0","eslint-loader":"1.7.1","mocha":"3.3.0","node-sass":"^4.5.3","puppeteer":"^0.13.0","sass-loader":"^6.0.6","style-loader":"^0.18.2","webpack":"^3.1.0","yargs":"7.1.0"},"repository":{"type":"git","url":"https://github.com/frappe/datatable.git"},"keywords":["webpack","es6","starter","library","universal","umd","commonjs"],"author":"Faris Ansari","license":"MIT","bugs":{"url":"https://github.com/frappe/datatable/issues"},"homepage":"https://frappe.github.io/datatable","dependencies":{"clusterize.js":"^0.18.0"}} /***/ }) /******/ ]); diff --git a/lib/frappe-datatable.js.map b/lib/frappe-datatable.js.map index 095ede7..7986f22 100644 --- a/lib/frappe-datatable.js.map +++ b/lib/frappe-datatable.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap 9e6fb183b9df5eb42014","webpack:///./src/dom.js","webpack:///./src/utils.js","webpack:///./src/cellmanager.js","webpack:///./src/rowmanager.js","webpack:///./src/index.js","webpack:///./src/datatable.js","webpack:///./src/datamanager.js","webpack:///./src/keyboard.js","webpack:///./src/columnmanager.js","webpack:///./src/style.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","split","forEach","addEventListener","e","delegatedTarget","target","closest","call","unbind","removeEventListener","fire","type","properties","evt","createEvent","initEvent","j","dispatchEvent","data","attrs","dataset","attr","elements","styleMap","getStyle","isArray","removeStyle","styleProps","getComputedStyle","includes","parseFloat","camelCaseToDash","makeDataAttributeString","getDefault","escapeRegExp","getCSSString","getCSSRuleBlock","buildCSSRule","removeCSSRule","copyTextToClipboard","isNumeric","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","top","left","width","height","padding","border","outline","boxShadow","background","body","select","execCommand","err","console","log","removeChild","isNaN","getCellHTML","getCellContent","getEditCellHTML","CellManager","instance","wrapper","options","bodyScrollable","columnmanager","rowmanager","bindEvents","bindFocusCell","bindEditCell","bindKeyboardSelection","bindCopyCellContents","bindMouseEvents","bindKeyboardNav","$editingCell","cell","activateEditing","$focusedCell","submitEditing","deactivateEditing","matches","focusCell","direction","$cell","getLeftCell$","getRightCell$","getAboveCell$","getBelowCell$","focusLastCell","rowIndex","colIndex","getLeftMostCell$","getRightMostCell$","getTopMostCell$","getBottomMostCell$","scrollToCell","inViewport","scrollToRow","getRowCountPerPage","getNextSelectionCursor","$selectionCursor","getSelectionCursor","selectArea","copyCellContents","mouseDown","isHeader","isStandardCell","clearSelection","addCheckboxColumn","classList","remove","add","highlightRowColumnHeader","_colIndex","getSerialColumnIndex","colHeaderSelector","rowHeaderSelector","lastHeaders","colHeader","rowHeader","backgroundColor","_selectArea","$cell1","$cell2","cells","getCellsInRange","getCell$","index","colIndex1","rowIndex1","colIndex2","rowIndex2","arguments","cell1","cell2","rowIndices","push","col","getColumn","editable","_rowIndex","$editCell","innerHTML","getCell","editing","getEditingObject","content","currentCellEditing","initValue","parent","$input","inside","focus","getValue","setValue","done","then","updateCell","values","reduce","acc","curr","row","refreshCell","getFirstColumnIndex","$aboveRow","parentElement","previousElementSibling","$belowRow","nextElementSibling","getLastColumnIndex","getFirstRowIndex","getLastRowIndex","datamanager","getCellAttr","viewportHeight","getViewportHeight","rowHeight","getRowHeight","rowOffset","scrollTopOffset","scrollTop","Math","ceil","offset","column","dataAttr","editCellHTML","sortIndicator","format","getRowHTML","RowManager","bindCheckbox","checkMap","$checkbox","checked","checkAll","checkRow","renderBody","setDimensions","c","filter","getCheckedRows","toggle","input","highlightRow","getTotalRows","highlightAll","$row","getRowCount","columns","__version__","version","getBodyHTML","DEFAULT_OPTIONS","events","rows","addSerialNoColumn","enableClusterize","enableLogs","takeAvailableSpace","DataTable","Error","assign","prepare","cellmanager","refresh","prepareDom","datatableWrapper","header","init","render","appendRows","refreshRows","renderHeader","renderBodyWithClusterize","renderBodyHTML","getRows","start","pageLength","end","initialData","getDataForClusterize","clusterize","Clusterize","scrollElem","contentElem","callbacks","clusterChanged","highlightCheckedRows","appendRemainingData","dataAppended","promises","rowCount","appendNextPagePromise","prev","cur","Promise","resolve","setTimeout","append","length","setBodyWidth","marginTop","margin","getColumnHeaderElement","apply","DataManager","currentSort","sortBy","sortOrder","prepareColumns","prepareRows","prepareNumericColumns","TypeError","_serialNoColumnAdded","resizable","align","concat","_checkboxColumnAdded","sortable","row0","getRow","cellValue","_getNextRowCount","prepareRow","_rows","reverseArray","sort","_aIndex","_bIndex","_a","_b","array","right","temporary","slice","skipStandardColumns","getStandardColumnCount","find","_columns","prepareCell","KEYCODES","handlers","handler","keyCode","shiftKey","ctrlKey","metaKey","_handlers","preventBubbling","preventDefault","k","ColumnManager","getColumns","bindResizeColumn","bindSortColumn","isDragging","$currCell","startWidth","startX","pageX","setColumnWidth","finalWidth","getColumnMinWidth","setColumnHeaderWidth","span","textContent","nextSortOrder","onSort","sortRows","setHeaderStyle","setupMinWidth","setNaturalColumnWidth","distributeRemainingWidth","setColumnAlignments","minWidthMap","minWidth","setDefaultCellHeight","wrapperWidth","headerWidth","deltaWidth","getColumnCount","min","setStyle","findIndex","Style","styleEl","head","styleSheet","sheet","styles","ruleString","insertRule","cssRules"],"mappings":"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ACA;;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,qPAAqP,oBAAoB,uWAAuW,eAAe,6DAA6D,+HAA+H,mDAAmD,iEAAiE,2B","file":"frappe-datatable.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"DataTable\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"DataTable\"] = factory();\n\telse\n\t\troot[\"DataTable\"] = factory();\n})(this, function() {\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 = 5);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 9e6fb183b9df5eb42014","\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$.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\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\n\n// WEBPACK FOOTER //\n// ./src/utils.js","import {\n copyTextToClipboard,\n makeDataAttributeString\n} from './utils';\nimport keyboard from './keyboard';\nimport $ from './dom';\n\nexport default class CellManager {\n constructor(instance) {\n this.instance = instance;\n this.wrapper = this.instance.wrapper;\n this.options = this.instance.options;\n this.style = this.instance.style;\n this.bodyScrollable = this.instance.bodyScrollable;\n this.columnmanager = this.instance.columnmanager;\n this.rowmanager = this.instance.rowmanager;\n\n this.bindEvents();\n }\n\n bindEvents() {\n this.bindFocusCell();\n this.bindEditCell();\n this.bindKeyboardSelection();\n this.bindCopyCellContents();\n this.bindMouseEvents();\n }\n\n bindFocusCell() {\n this.bindKeyboardNav();\n }\n\n bindEditCell() {\n this.$editingCell = null;\n\n $.on(this.bodyScrollable, 'dblclick', '.data-table-col', (e, cell) => {\n this.activateEditing(cell);\n });\n\n keyboard.on('enter', (e) => {\n if (this.$focusedCell && !this.$editingCell) {\n // enter keypress on focused cell\n this.activateEditing(this.$focusedCell);\n } else if (this.$editingCell) {\n // enter keypress on editing cell\n this.submitEditing(this.$editingCell);\n this.deactivateEditing();\n }\n });\n\n $.on(document.body, 'click', e => {\n if (e.target.matches('.edit-cell, .edit-cell *')) return;\n this.deactivateEditing();\n });\n }\n\n bindKeyboardNav() {\n const focusCell = (direction) => {\n if (!this.$focusedCell || this.$editingCell) {\n return false;\n }\n\n let $cell = this.$focusedCell;\n\n if (direction === 'left') {\n $cell = this.getLeftCell$($cell);\n } else if (direction === 'right') {\n $cell = this.getRightCell$($cell);\n } else if (direction === 'up') {\n $cell = this.getAboveCell$($cell);\n } else if (direction === 'down') {\n $cell = this.getBelowCell$($cell);\n }\n\n this.focusCell($cell);\n return true;\n };\n\n const focusLastCell = (direction) => {\n if (!this.$focusedCell || this.$editingCell) {\n return false;\n }\n\n let $cell = this.$focusedCell;\n const { rowIndex, colIndex } = $.data($cell);\n\n if (direction === 'left') {\n $cell = this.getLeftMostCell$(rowIndex);\n } else if (direction === 'right') {\n $cell = this.getRightMostCell$(rowIndex);\n } else if (direction === 'up') {\n $cell = this.getTopMostCell$(colIndex);\n } else if (direction === 'down') {\n $cell = this.getBottomMostCell$(colIndex);\n }\n\n this.focusCell($cell);\n return true;\n };\n\n const scrollToCell = (direction) => {\n if (!this.$focusedCell) return false;\n\n if (!this.inViewport(this.$focusedCell)) {\n const { rowIndex } = $.data(this.$focusedCell);\n\n this.scrollToRow(rowIndex - this.getRowCountPerPage() + 2);\n return true;\n }\n\n return false;\n };\n\n ['left', 'right', 'up', 'down'].map(\n direction => keyboard.on(direction, () => focusCell(direction))\n );\n\n ['left', 'right', 'up', 'down'].map(\n direction => keyboard.on('ctrl+' + direction, () => focusLastCell(direction))\n );\n\n ['left', 'right', 'up', 'down'].map(\n direction => keyboard.on(direction, () => scrollToCell(direction))\n );\n\n keyboard.on('esc', () => {\n this.deactivateEditing();\n });\n }\n\n bindKeyboardSelection() {\n const getNextSelectionCursor = (direction) => {\n let $selectionCursor = this.getSelectionCursor();\n\n if (direction === 'left') {\n $selectionCursor = this.getLeftCell$($selectionCursor);\n } else if (direction === 'right') {\n $selectionCursor = this.getRightCell$($selectionCursor);\n } else if (direction === 'up') {\n $selectionCursor = this.getAboveCell$($selectionCursor);\n } else if (direction === 'down') {\n $selectionCursor = this.getBelowCell$($selectionCursor);\n }\n\n return $selectionCursor;\n };\n\n ['left', 'right', 'up', 'down'].map(\n direction => keyboard.on('shift+' + direction,\n () => this.selectArea(getNextSelectionCursor(direction)))\n );\n }\n\n bindCopyCellContents() {\n keyboard.on('ctrl+c', () => {\n this.copyCellContents(this.$focusedCell, this.$selectionCursor);\n });\n }\n\n bindMouseEvents() {\n let mouseDown = null;\n\n $.on(this.bodyScrollable, 'mousedown', '.data-table-col', (e) => {\n mouseDown = true;\n this.focusCell($(e.delegatedTarget));\n });\n\n $.on(this.bodyScrollable, 'mouseup', () => {\n mouseDown = false;\n });\n\n $.on(this.bodyScrollable, 'mousemove', '.data-table-col', (e) => {\n if (!mouseDown) return;\n this.selectArea($(e.delegatedTarget));\n });\n }\n\n focusCell($cell) {\n if (!$cell) return;\n\n // don't focus if already editing cell\n if ($cell === this.$editingCell) return;\n\n const { colIndex, isHeader } = $.data($cell);\n\n if (this.isStandardCell(colIndex) || isHeader) {\n return;\n }\n\n this.deactivateEditing();\n this.clearSelection();\n\n if (this.options.addCheckboxColumn && colIndex === 0) {\n return;\n }\n\n if (this.$focusedCell) {\n this.$focusedCell.classList.remove('selected');\n }\n\n this.$focusedCell = $cell;\n $cell.classList.add('selected');\n\n this.highlightRowColumnHeader($cell);\n }\n\n highlightRowColumnHeader($cell) {\n const { colIndex, rowIndex } = $.data($cell);\n const _colIndex = this.columnmanager.getSerialColumnIndex();\n const colHeaderSelector = `.data-table-header .data-table-col[data-col-index=\"${colIndex}\"]`;\n const rowHeaderSelector = `.data-table-col[data-row-index=\"${rowIndex}\"][data-col-index=\"${_colIndex}\"]`;\n\n if (this.lastHeaders) {\n $.removeStyle(this.lastHeaders, 'backgroundColor');\n }\n\n const colHeader = $(colHeaderSelector, this.wrapper);\n const rowHeader = $(rowHeaderSelector, this.wrapper);\n\n $.style([colHeader, rowHeader], {\n backgroundColor: 'var(--light-bg)'\n });\n\n this.lastHeaders = [colHeader, rowHeader];\n }\n\n selectArea($selectionCursor) {\n if (!this.$focusedCell) return;\n\n if (this._selectArea(this.$focusedCell, $selectionCursor)) {\n // valid selection\n this.$selectionCursor = $selectionCursor;\n }\n };\n\n _selectArea($cell1, $cell2) {\n if ($cell1 === $cell2) return false;\n\n const cells = this.getCellsInRange($cell1, $cell2);\n if (!cells) return false;\n\n this.clearSelection();\n cells.map(index => this.getCell$(...index)).map($cell => $cell.classList.add('highlight'));\n return true;\n }\n\n getCellsInRange($cell1, $cell2) {\n let colIndex1, rowIndex1, colIndex2, rowIndex2;\n\n if (typeof $cell1 === 'number') {\n [colIndex1, rowIndex1, colIndex2, rowIndex2] = arguments;\n } else\n if (typeof $cell1 === 'object') {\n\n if (!($cell1 && $cell2)) {\n return false;\n }\n\n const cell1 = $.data($cell1);\n const cell2 = $.data($cell2);\n\n colIndex1 = cell1.colIndex;\n rowIndex1 = cell1.rowIndex;\n colIndex2 = cell2.colIndex;\n rowIndex2 = cell2.rowIndex;\n }\n\n if (rowIndex1 > rowIndex2) {\n [rowIndex1, rowIndex2] = [rowIndex2, rowIndex1];\n }\n\n if (colIndex1 > colIndex2) {\n [colIndex1, colIndex2] = [colIndex2, colIndex1];\n }\n\n if (this.isStandardCell(colIndex1) || this.isStandardCell(colIndex2)) {\n return false;\n }\n\n let cells = [];\n let colIndex = colIndex1;\n let rowIndex = rowIndex1;\n let rowIndices = [];\n\n while (rowIndex <= rowIndex2) {\n rowIndices.push(rowIndex);\n rowIndex++;\n }\n\n rowIndices.map(rowIndex => {\n while (colIndex <= colIndex2) {\n cells.push([colIndex, rowIndex]);\n colIndex++;\n }\n colIndex = colIndex1;\n });\n\n return cells;\n }\n\n clearSelection() {\n $.each('.data-table-col.highlight', this.bodyScrollable)\n .map(cell => cell.classList.remove('highlight'));\n\n this.$selectionCursor = null;\n }\n\n getSelectionCursor() {\n return this.$selectionCursor || this.$focusedCell;\n }\n\n activateEditing($cell) {\n const { rowIndex, colIndex } = $.data($cell);\n const col = this.instance.columnmanager.getColumn(colIndex);\n\n if (col && col.editable === false) {\n return;\n }\n\n if (this.$editingCell) {\n const { _rowIndex, _colIndex } = $.data(this.$editingCell);\n\n if (rowIndex === _rowIndex && colIndex === _colIndex) {\n // editing the same cell\n return;\n }\n }\n\n this.$editingCell = $cell;\n $cell.classList.add('editing');\n\n const $editCell = $('.edit-cell', $cell);\n $editCell.innerHTML = '';\n\n const cell = this.getCell(colIndex, rowIndex);\n const editing = this.getEditingObject(colIndex, rowIndex, cell.content, $editCell);\n\n if (editing) {\n this.currentCellEditing = editing;\n // initialize editing input with cell value\n editing.initValue(cell.content);\n }\n }\n\n deactivateEditing() {\n if (!this.$editingCell) return;\n this.$editingCell.classList.remove('editing');\n this.$editingCell = null;\n }\n\n getEditingObject(colIndex, rowIndex, value, parent) {\n if (this.options.editing) {\n return this.options.editing(colIndex, rowIndex, value, parent);\n }\n\n // editing fallback\n const $input = $.create('input', {\n type: 'text',\n inside: parent\n });\n\n return {\n initValue(value) {\n $input.focus();\n $input.value = value;\n },\n getValue() {\n return $input.value;\n },\n setValue(value) {\n $input.value = value;\n }\n };\n }\n\n submitEditing($cell) {\n const { rowIndex, colIndex } = $.data($cell);\n\n if ($cell) {\n const editing = this.currentCellEditing;\n\n if (editing) {\n const value = editing.getValue();\n const done = editing.setValue(value);\n\n if (done && done.then) {\n // wait for promise then update internal state\n done.then(\n () => this.updateCell(rowIndex, colIndex, value)\n );\n } else {\n this.updateCell(rowIndex, colIndex, value);\n }\n }\n }\n\n this.currentCellEditing = null;\n }\n\n copyCellContents($cell1, $cell2) {\n const cells = this.getCellsInRange($cell1, $cell2);\n\n if (!cells) return;\n\n const values = cells\n // get cell objects\n .map(index => this.getCell(...index))\n // convert to array of rows\n .reduce((acc, curr) => {\n const rowIndex = curr.rowIndex;\n\n acc[rowIndex] = acc[rowIndex] || [];\n acc[rowIndex].push(curr.content);\n\n return acc;\n }, [])\n // join values by tab\n .map(row => row.join('\\t'))\n // join rows by newline\n .join('\\n');\n\n copyTextToClipboard(values);\n }\n\n updateCell(rowIndex, colIndex, value) {\n const cell = this.getCell(colIndex, rowIndex);\n\n cell.content = value;\n this.refreshCell(cell);\n }\n\n refreshCell(cell) {\n const selector = `.data-table-col[data-row-index=\"${cell.rowIndex}\"][data-col-index=\"${cell.colIndex}\"]`;\n const $cell = $(selector, this.bodyScrollable);\n\n $cell.innerHTML = getCellContent(cell);\n }\n\n isStandardCell(colIndex) {\n // Standard cells are in Sr. No and Checkbox column\n return colIndex < this.columnmanager.getFirstColumnIndex();\n }\n\n getCell$(colIndex, rowIndex) {\n return $(`.data-table-col[data-row-index=\"${rowIndex}\"][data-col-index=\"${colIndex}\"]`, this.bodyScrollable);\n }\n\n getAboveCell$($cell) {\n const { colIndex } = $.data($cell);\n const $aboveRow = $cell.parentElement.previousElementSibling;\n\n return $(`[data-col-index=\"${colIndex}\"]`, $aboveRow);\n }\n\n getBelowCell$($cell) {\n const { colIndex } = $.data($cell);\n const $belowRow = $cell.parentElement.nextElementSibling;\n\n return $(`[data-col-index=\"${colIndex}\"]`, $belowRow);\n }\n\n getLeftCell$($cell) {\n return $cell.previousElementSibling;\n }\n\n getRightCell$($cell) {\n return $cell.nextElementSibling;\n }\n\n getLeftMostCell$(rowIndex) {\n return this.getCell$(rowIndex, this.columnmanager.getFirstColumnIndex());\n }\n\n getRightMostCell$(rowIndex) {\n return this.getCell$(rowIndex, this.columnmanager.getLastColumnIndex());\n }\n\n getTopMostCell$(colIndex) {\n return this.getCell$(this.rowmanager.getFirstRowIndex(), colIndex);\n }\n\n getBottomMostCell$(colIndex) {\n return this.getCell$(this.rowmanager.getLastRowIndex(), colIndex);\n }\n\n getCell(colIndex, rowIndex) {\n return this.instance.datamanager.getCell(colIndex, rowIndex);\n }\n\n getCellAttr($cell) {\n return this.instance.getCellAttr($cell);\n }\n\n getRowHeight() {\n return $.style($('.data-table-row', this.bodyScrollable), 'height');\n }\n\n inViewport($cell) {\n let colIndex, rowIndex; // eslint-disable-line\n\n if (typeof $cell === 'number') {\n [colIndex, rowIndex] = arguments;\n } else {\n let cell = $.data($cell);\n\n colIndex = cell.colIndex;\n rowIndex = cell.rowIndex;\n }\n\n const viewportHeight = this.instance.getViewportHeight();\n const rowHeight = this.getRowHeight();\n const rowOffset = rowIndex * rowHeight;\n\n const scrollTopOffset = this.bodyScrollable.scrollTop;\n\n if (rowOffset - scrollTopOffset + rowHeight < viewportHeight) {\n return true;\n }\n\n return false;\n }\n\n scrollToCell($cell) {\n const { rowIndex } = $.data($cell);\n\n this.scrollToRow(rowIndex);\n }\n\n getRowCountPerPage() {\n return Math.ceil(this.instance.getViewportHeight() / this.getRowHeight());\n }\n\n scrollToRow(rowIndex) {\n const offset = rowIndex * this.getRowHeight();\n\n this.bodyScrollable.scrollTop = offset;\n }\n}\n\nexport function getCellHTML(column) {\n const { rowIndex, colIndex, isHeader } = column;\n const dataAttr = makeDataAttributeString({\n rowIndex,\n colIndex,\n isHeader\n });\n\n return `\n