diff --git a/.gitignore b/.gitignore index bc2b59d..c23bea8 100644 --- a/.gitignore +++ b/.gitignore @@ -29,3 +29,6 @@ node_modules # Remove some common IDE working directories .idea .vscode + +# npm debug logs +npm-debug.log.* diff --git a/lib/frappe-datatable.js b/lib/frappe-datatable.js index c4a26b4..3c9f07e 100644 --- a/lib/frappe-datatable.js +++ b/lib/frappe-datatable.js @@ -2529,6 +2529,8 @@ var DataManager = function () { this.rowCount = 0; this.columns = []; this.rows = []; + this._serialNoColumnAdded = false; + this._checkboxColumnAdded = false; this.columns = this.prepareColumns(columns); this.rows = this.prepareRows(rows); diff --git a/lib/frappe-datatable.js.map b/lib/frappe-datatable.js.map index 8869452..438a814 100644 --- a/lib/frappe-datatable.js.map +++ b/lib/frappe-datatable.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap 56ef886060ed76544529","webpack:///./src/dom.js","webpack:///./src/utils.js","webpack:///./src/cellmanager.js","webpack:///./src/columnmanager.js","webpack:///./src/rowmanager.js","webpack:///./src/index.js","webpack:///./src/datatable.js","webpack:///external {\"commonjs\":\"clusterize.js\",\"commonjs2\":\"clusterize.js\",\"root\":\"Clusterize\"}","webpack:///./src/datamanager.js","webpack:///./src/keyboard.js","webpack:///external {\"commonjs\":\"sortablejs\",\"commonjs2\":\"sortablejs\",\"root\":\"Sortable\"}","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","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","camelCaseToDash","makeDataAttributeString","getDefault","escapeRegExp","getCSSString","getCSSRuleBlock","buildCSSRule","removeCSSRule","copyTextToClipboard","isNumeric","throttle","promisify","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","func","wait","options","context","args","result","timeout","previous","later","leading","Date","now","apply","remaining","arguments","clearTimeout","trailing","setTimeout","fn","Promise","resolve","name","getCellHTML","getCellContent","getEditCellHTML","CellManager","instance","wrapper","bodyScrollable","columnmanager","rowmanager","bindEvents","bindFocusCell","bindEditCell","bindKeyboardSelection","bindCopyCellContents","bindMouseEvents","bindKeyboardNav","$editingCell","cell","activateEditing","$focusedCell","submitEditing","deactivateEditing","focusCell","direction","$cell","getLeftCell$","getRightCell$","getAboveCell$","getBelowCell$","focusLastCell","rowIndex","colIndex","getLeftMostCell$","getRightMostCell$","getTopMostCell$","getBottomMostCell$","scrollToCell","inViewport","scrollToRow","getRowCountPerPage","getNextSelectionCursor","$selectionCursor","getSelectionCursor","selectArea","copyCellContents","mouseDown","skipClearSelection","isHeader","column","getColumn","focusable","clearSelection","classList","remove","add","highlightRowColumnHeader","_colIndex","getSerialColumnIndex","colHeaderSelector","rowHeaderSelector","lastHeaders","colHeader","rowHeader","backgroundColor","getCell$","fCell","_selectArea","$cell1","$cell2","cells","getCellsInRange","index","colIndex1","rowIndex1","colIndex2","rowIndex2","cell1","cell2","isStandardCell","rowIndices","push","col","editable","_rowIndex","$editCell","innerHTML","getCell","editing","getEditingObject","content","currentCellEditing","initValue","parent","$input","inside","focus","getValue","setValue","done","oldValue","updateCell","then","catch","values","reduce","acc","curr","row","refreshCell","getFirstColumnIndex","cellSelector","$aboveRow","parentElement","previousElementSibling","$belowRow","nextElementSibling","getLastColumnIndex","getFirstRowIndex","getLastRowIndex","datamanager","getCellAttr","viewportHeight","getViewportHeight","rowHeight","getRowHeight","rowOffset","scrollTopOffset","scrollTop","Math","ceil","offset","dataAttr","editCellHTML","sortable","sortIndicator","resizable","resizeColumn","hasDropdown","dropdown","format","ColumnManager","fireEvent","header","getDropdownHTML","dropdownButton","refreshHeader","columns","getColumns","$cols","length","$col","sortColIndex","currentSort","order","sortOrder","$columnMap","bindDropdown","bindResizeColumn","bindMoveColumn","$activeDropdown","$button","$dropdown","contains","deactivateDropdown","dropdownItems","headerDropdown","$item","action","isDragging","$resizingCell","startWidth","startX","$handle","pageX","setColumnWidth","setBodyWidth","finalWidth","getColumnMinWidth","setColumnHeaderWidth","initialized","initialize","ready","$parent","$target","offsetY","onEnd","oldIndex","newIndex","$draggedCell","item","switchColumn","preventOnFilter","filter","animation","span","textContent","nextSortOrder","sortColumn","freeze","sortRows","refreshRows","unfreeze","removedCol","removeColumn","setHeaderStyle","setupMinWidth","setNaturalColumnWidth","distributeRemainingWidth","setColumnAlignments","takeAvailableSpace","margin","nonResizableColumnsSelector","setStyle","cursor","minWidthMap","minWidth","setDefaultCellHeight","wrapperWidth","datatableWrapper","headerWidth","resizableColumns","deltaWidth","getColumnHeaderElement","min","align","_columnWidthMap","$headerContent","styles","$column","addCheckboxColumn","addSerialNoColumn","getColumnCount","findIndex","d","label","getRowHTML","RowManager","bindCheckbox","checkMap","$checkbox","checked","checkAll","checkRow","renderBody","setDimensions","c","getCheckedRows","toggle","input","highlightRow","getTotalRows","highlightAll","$row","getRow$","_highlightedRows","getRowCount","__version__","version","getBodyHTML","DEFAULT_OPTIONS","rows","events","onRemoveColumn","onSwitchColumn","column1","column2","onSortColumn","asc","desc","none","freezeMessage","enableClusterize","enableLogs","DataTable","instances","Error","assign","concat","prepare","cellmanager","refresh","prepareDom","freezeContainer","init","render","destroy","appendRows","renderHeader","renderBodyWithClusterize","renderBodyHTML","getRows","start","pageLength","end","initialData","getDataForClusterize","clusterize","scrollElem","contentElem","callbacks","clusterChanged","highlightCheckedRows","selectAreaOnClusterChanged","focusCellOnClusterChanged","appendRemainingData","dataAppended","promises","rowCount","appendNextPagePromise","prev","cur","append","marginTop","scrollLeft","display","eventName","DataManager","prepareColumns","prepareRows","prepareNumericColumns","TypeError","_serialNoColumnAdded","_checkboxColumnAdded","row0","getRow","cellValue","_getNextRowCount","prepareRow","_rows","reverseArray","sort","_aIndex","_bIndex","_a","_b","array","right","temporary","index1","index2","temp","newCell1","newCell2","newRow","slice","skipStandardColumns","getStandardColumnCount","find","_columns","prepareCell","KEYCODES","handlers","keyCode","shiftKey","ctrlKey","metaKey","_handlers","preventBubbling","preventDefault","k","Style","datatable","scopeClass","constructor","styleEl","styleSheet","sheet","ruleString","_index","cssRules","deleteRule","insertRule"],"mappings":"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AqB,oBAAoB,EAAE,uCAAuC,6CAA6C,EAAE,sCAAsC,oBAAoB,EAAE,wCAAwC,6CAA6C,qBAAqB,EAAE,+BAA+B,wCAAwC,EAAE,2CAA2C,4BAA4B,EAAE,uDAAuD,qBAAqB,EAAE,mCAAmC,sCAAsC,EAAE,eAAe,gCAAgC,8BAA8B,6BAA6B,2BAA2B,0BAA0B,sBAAsB,EAAE;;AAE97I;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mCAAmC,gBAAgB;AACnD,IAAI;AACJ;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;AACA,YAAY,oBAAoB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,oDAAoD,cAAc;;AAElE;AACA;;;;;;;AC3EA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;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,qPAAqP,oBAAoB,uWAAuW,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(\"clusterize.js\"), require(\"sortablejs\"));\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(\"clusterize.js\"), require(\"sortablejs\"));\n\telse\n\t\troot[\"DataTable\"] = factory(root[\"Clusterize\"], root[\"Sortable\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_7__, __WEBPACK_EXTERNAL_MODULE_10__) {\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 56ef886060ed76544529","\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\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\n\n\n// WEBPACK FOOTER //\n// ./src/utils.js","import {\n copyTextToClipboard,\n makeDataAttributeString,\n throttle\n} from './utils';\nimport keyboard from './keyboard';\nimport $ from './dom';\nimport { getDropdownHTML } from './columnmanager';\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 const selectArea = (e) => {\n if (!mouseDown) return;\n this.selectArea($(e.delegatedTarget));\n };\n\n $.on(this.bodyScrollable, 'mousemove', '.data-table-col', throttle(selectArea, 100));\n }\n\n focusCell($cell, { skipClearSelection = 0 } = {}) {\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 if (isHeader) {\n return;\n }\n\n const column = this.columnmanager.getColumn(colIndex);\n if (column.focusable === false) {\n return;\n }\n\n this.deactivateEditing();\n if (!skipClearSelection) {\n this.clearSelection();\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 selectAreaOnClusterChanged() {\n if (!(this.$focusedCell && this.$selectionCursor)) return;\n const { colIndex, rowIndex } = $.data(this.$selectionCursor);\n const $cell = this.getCell$(colIndex, rowIndex);\n\n if (!$cell || $cell === this.$selectionCursor) return;\n\n // selectArea needs $focusedCell\n const fCell = $.data(this.$focusedCell);\n this.$focusedCell = this.getCell$(fCell.colIndex, fCell.rowIndex);\n\n this.selectArea($cell);\n }\n\n focusCellOnClusterChanged() {\n if (!this.$focusedCell) return;\n\n const { colIndex, rowIndex } = $.data(this.$focusedCell);\n const $cell = this.getCell$(colIndex, rowIndex);\n\n if (!$cell) return;\n // this function is called after selectAreaOnClusterChanged,\n // focusCell calls clearSelection which resets the area selection\n // so a flag to skip it\n this.focusCell($cell, { skipClearSelection: 1 });\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.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 const oldValue = this.getCell(colIndex, rowIndex).content;\n\n // update cell immediately\n this.updateCell(rowIndex, colIndex, value);\n\n if (done && done.then) {\n // revert to oldValue if promise fails\n done.catch((e) => {\n console.log(e);\n this.updateCell(rowIndex, colIndex, oldValue);\n });\n }\n }\n }\n\n this.currentCellEditing = null;\n }\n\n copyCellContents($cell1, $cell2) {\n if (!$cell2 && $cell1) {\n // copy only focusedCell\n const { colIndex, rowIndex } = $.data($cell1);\n const cell = this.getCell(colIndex, rowIndex);\n copyTextToClipboard(cell.content);\n return;\n }\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 $(cellSelector(colIndex, rowIndex), 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