@darwino/darwino-react
Version:
A set of Javascript classes and utilities
1,631 lines (1,298 loc) • 406 kB
JavaScript
(function webpackUniversalModuleDefinition(root, factory) {
if (typeof exports === 'object' && typeof module === 'object') module.exports = factory(require("react"), require("react-dom"));else if (typeof define === 'function' && define.amd) define(["react", "react-dom"], factory);else if (typeof exports === 'object') exports["ReactDataGrid"] = factory(require("react"), require("react-dom"));else root["ReactDataGrid"] = factory(root["React"], root["ReactDOM"]);
})(this, function (__WEBPACK_EXTERNAL_MODULE_2__, __WEBPACK_EXTERNAL_MODULE_13__) {
return (
/******/
function (modules) {
// webpackBootstrap
/******/
// The module cache
/******/
var installedModules = {};
/******/
// The require function
/******/
function __webpack_require__(moduleId) {
/******/
// Check if module is in cache
/******/
if (installedModules[moduleId])
/******/
return installedModules[moduleId].exports;
/******/
// Create a new module (and put it into the cache)
/******/
var module = installedModules[moduleId] = {
/******/
exports: {},
/******/
id: moduleId,
/******/
loaded: false
/******/
};
/******/
// Execute the module function
/******/
modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/
// Flag the module as loaded
/******/
module.loaded = true;
/******/
// Return the exports of the module
/******/
return module.exports;
/******/
}
/******/
// expose the modules object (__webpack_modules__)
/******/
__webpack_require__.m = modules;
/******/
// expose the module cache
/******/
__webpack_require__.c = installedModules;
/******/
// __webpack_public_path__
/******/
__webpack_require__.p = "";
/******/
// Load entry module and return exports
/******/
return __webpack_require__(0);
/******/
}(
/************************************************************************/
/******/
[
/* 0 */
/***/
function (module, exports, __webpack_require__) {
module.exports = __webpack_require__(271);
/***/
},,
/* 1 */
/* 2 */
/***/
function (module, exports) {
module.exports = __WEBPACK_EXTERNAL_MODULE_2__;
/***/
},
/* 3 */
/***/
function (module, exports, __webpack_require__) {
/**
* Copyright (c) 2013-present, Facebook, Inc.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
if (false) {
var REACT_ELEMENT_TYPE = typeof Symbol === 'function' && Symbol.for && Symbol.for('react.element') || 0xeac7;
var isValidElement = function isValidElement(object) {
return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;
}; // By explicitly using `prop-types` you are opting into new development behavior.
// http://fb.me/prop-types-in-prod
var throwOnDirectAccess = true;
module.exports = require('./factoryWithTypeCheckers')(isValidElement, throwOnDirectAccess);
} else {
// By explicitly using `prop-types` you are opting into new production behavior.
// http://fb.me/prop-types-in-prod
module.exports = __webpack_require__(119)();
}
/***/
},
/* 4 */
/***/
function (module, exports, __webpack_require__) {
var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;
/*!
Copyright (c) 2017 Jed Watson.
Licensed under the MIT License (MIT), see
http://jedwatson.github.io/classnames
*/
/* global define */
(function () {
'use strict';
var hasOwn = {}.hasOwnProperty;
function classNames() {
var classes = [];
for (var i = 0; i < arguments.length; i++) {
var arg = arguments[i];
if (!arg) continue;
var argType = typeof arg;
if (argType === 'string' || argType === 'number') {
classes.push(arg);
} else if (Array.isArray(arg) && arg.length) {
var inner = classNames.apply(null, arg);
if (inner) {
classes.push(inner);
}
} else if (argType === 'object') {
for (var key in arg) {
if (hasOwn.call(arg, key) && arg[key]) {
classes.push(key);
}
}
}
}
return classes.join(' ');
}
if (typeof module !== 'undefined' && module.exports) {
classNames.default = classNames;
module.exports = classNames;
} else if (true) {
// register as 'classnames', consistent with npm package name
!(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = function () {
return classNames;
}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
} else {
window.classNames = classNames;
}
})();
/***/
},
/* 5 */
/***/
function (module, exports) {
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) {
return typeof obj;
} : function (obj) {
return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
};
var isImmutableLoaded = function isImmutableLoaded() {
return typeof Immutable !== 'undefined';
};
var isColumnsImmutable = exports.isColumnsImmutable = function isColumnsImmutable(columns) {
return isImmutableLoaded() && columns instanceof Immutable.List;
};
var isEmptyArray = exports.isEmptyArray = function isEmptyArray(obj) {
return Array.isArray(obj) && obj.length === 0;
};
var isFunction = exports.isFunction = function isFunction(functionToCheck) {
var getType = {};
return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';
};
var isEmptyObject = exports.isEmptyObject = function isEmptyObject(obj) {
return Object.keys(obj).length === 0 && obj.constructor === Object;
};
var isImmutableCollection = exports.isImmutableCollection = function isImmutableCollection(objToVerify) {
return isImmutableLoaded() && Immutable.Iterable.isIterable(objToVerify);
};
var getMixedTypeValueRetriever = exports.getMixedTypeValueRetriever = function getMixedTypeValueRetriever(isImmutable) {
var retObj = {};
var retriever = function retriever(item, key) {
return item[key];
};
var immutableRetriever = function immutableRetriever(immutable, key) {
return immutable.get(key);
};
retObj.getValue = isImmutable ? immutableRetriever : retriever;
return retObj;
};
var isImmutableMap = exports.isImmutableMap = isImmutableLoaded() ? Immutable.Map.isMap : function () {
return false;
};
var last = exports.last = function last(arrayOrList) {
if (arrayOrList == null) {
throw new Error('arrayOrCollection is null');
}
if (isImmutableLoaded() && Immutable.List.isList(arrayOrList)) {
return arrayOrList.last();
}
if (Array.isArray(arrayOrList)) {
return arrayOrList[arrayOrList.length - 1];
}
throw new Error('Cant get last of: ' + (typeof arrayOrList === 'undefined' ? 'undefined' : _typeof(arrayOrList)));
};
/***/
},
/* 6 */
/***/
function (module, exports) {
'use strict';
module.exports = {
getColumn: function getColumn(columns, idx) {
if (Array.isArray(columns)) {
return columns[idx];
} else if (typeof Immutable !== 'undefined') {
return columns.get(idx);
}
},
spliceColumn: function spliceColumn(metrics, idx, column) {
if (Array.isArray(metrics.columns)) {
metrics.columns.splice(idx, 1, column);
} else if (typeof Immutable !== 'undefined') {
metrics.columns = metrics.columns.splice(idx, 1, column);
}
return metrics;
},
getSize: function getSize(columns) {
if (Array.isArray(columns)) {
return columns.length;
} else if (typeof Immutable !== 'undefined') {
return columns.size;
}
},
// Logic extented to allow for functions to be passed down in column.editable
// this allows us to deicde whether we can be edting from a cell level
canEdit: function canEdit(col, rowData, enableCellSelect) {
if (!col) return false;
if (col.editable != null && typeof col.editable === 'function') {
return enableCellSelect === true && col.editable(rowData);
}
return enableCellSelect === true && (!!col.editor || !!col.editable);
},
getValue: function getValue(column, property) {
var value = void 0;
if (column.toJSON && column.get) {
value = column.get(property);
} else {
value = column[property];
}
return value;
},
isFrozen: function isFrozen(column) {
return column.locked === true || column.frozen === true;
}
};
/***/
},,
/* 7 */
/* 8 */
/***/
function (module, exports) {
/*
MIT License http://www.opensource.org/licenses/mit-license.php
Author Tobias Koppers @sokra
*/
// css base code, injected by the css-loader
module.exports = function () {
var list = []; // return the list of modules as css string
list.toString = function toString() {
var result = [];
for (var i = 0; i < this.length; i++) {
var item = this[i];
if (item[2]) {
result.push("@media " + item[2] + "{" + item[1] + "}");
} else {
result.push(item[1]);
}
}
return result.join("");
}; // import a list of modules into the list
list.i = function (modules, mediaQuery) {
if (typeof modules === "string") modules = [[null, modules, ""]];
var alreadyImportedModules = {};
for (var i = 0; i < this.length; i++) {
var id = this[i][0];
if (typeof id === "number") alreadyImportedModules[id] = true;
}
for (i = 0; i < modules.length; i++) {
var item = modules[i]; // skip already imported module
// this implementation is not 100% perfect for weird media query combinations
// when a module is imported multiple times with different media queries.
// I hope this will never occur (Hey this way we have smaller bundles)
if (typeof item[0] !== "number" || !alreadyImportedModules[item[0]]) {
if (mediaQuery && !item[2]) {
item[2] = mediaQuery;
} else if (mediaQuery) {
item[2] = "(" + item[2] + ") and (" + mediaQuery + ")";
}
list.push(item);
}
}
};
return list;
};
/***/
},
/* 9 */
/***/
function (module, exports, __webpack_require__) {
/*
MIT License http://www.opensource.org/licenses/mit-license.php
Author Tobias Koppers @sokra
*/
var stylesInDom = {},
memoize = function memoize(fn) {
var memo;
return function () {
if (typeof memo === "undefined") memo = fn.apply(this, arguments);
return memo;
};
},
isOldIE = memoize(function () {
return /msie [6-9]\b/.test(self.navigator.userAgent.toLowerCase());
}),
getHeadElement = memoize(function () {
return document.head || document.getElementsByTagName("head")[0];
}),
singletonElement = null,
singletonCounter = 0,
styleElementsInsertedAtTop = [];
module.exports = function (list, options) {
if (false) {
if (typeof document !== "object") throw new Error("The style-loader cannot be used in a non-browser environment");
}
options = options || {}; // Force single-tag solution on IE6-9, which has a hard limit on the # of <style>
// tags it will allow on a page
if (typeof options.singleton === "undefined") options.singleton = isOldIE(); // By default, add <style> tags to the bottom of <head>.
if (typeof options.insertAt === "undefined") options.insertAt = "bottom";
var styles = listToStyles(list);
addStylesToDom(styles, options);
return function update(newList) {
var mayRemove = [];
for (var i = 0; i < styles.length; i++) {
var item = styles[i];
var domStyle = stylesInDom[item.id];
domStyle.refs--;
mayRemove.push(domStyle);
}
if (newList) {
var newStyles = listToStyles(newList);
addStylesToDom(newStyles, options);
}
for (var i = 0; i < mayRemove.length; i++) {
var domStyle = mayRemove[i];
if (domStyle.refs === 0) {
for (var j = 0; j < domStyle.parts.length; j++) {
domStyle.parts[j]();
}
delete stylesInDom[domStyle.id];
}
}
};
};
function addStylesToDom(styles, options) {
for (var i = 0; i < styles.length; i++) {
var item = styles[i];
var domStyle = stylesInDom[item.id];
if (domStyle) {
domStyle.refs++;
for (var j = 0; j < domStyle.parts.length; j++) {
domStyle.parts[j](item.parts[j]);
}
for (; j < item.parts.length; j++) {
domStyle.parts.push(addStyle(item.parts[j], options));
}
} else {
var parts = [];
for (var j = 0; j < item.parts.length; j++) {
parts.push(addStyle(item.parts[j], options));
}
stylesInDom[item.id] = {
id: item.id,
refs: 1,
parts: parts
};
}
}
}
function listToStyles(list) {
var styles = [];
var newStyles = {};
for (var i = 0; i < list.length; i++) {
var item = list[i];
var id = item[0];
var css = item[1];
var media = item[2];
var sourceMap = item[3];
var part = {
css: css,
media: media,
sourceMap: sourceMap
};
if (!newStyles[id]) styles.push(newStyles[id] = {
id: id,
parts: [part]
});else newStyles[id].parts.push(part);
}
return styles;
}
function insertStyleElement(options, styleElement) {
var head = getHeadElement();
var lastStyleElementInsertedAtTop = styleElementsInsertedAtTop[styleElementsInsertedAtTop.length - 1];
if (options.insertAt === "top") {
if (!lastStyleElementInsertedAtTop) {
head.insertBefore(styleElement, head.firstChild);
} else if (lastStyleElementInsertedAtTop.nextSibling) {
head.insertBefore(styleElement, lastStyleElementInsertedAtTop.nextSibling);
} else {
head.appendChild(styleElement);
}
styleElementsInsertedAtTop.push(styleElement);
} else if (options.insertAt === "bottom") {
head.appendChild(styleElement);
} else {
throw new Error("Invalid value for parameter 'insertAt'. Must be 'top' or 'bottom'.");
}
}
function removeStyleElement(styleElement) {
styleElement.parentNode.removeChild(styleElement);
var idx = styleElementsInsertedAtTop.indexOf(styleElement);
if (idx >= 0) {
styleElementsInsertedAtTop.splice(idx, 1);
}
}
function createStyleElement(options) {
var styleElement = document.createElement("style");
styleElement.type = "text/css";
insertStyleElement(options, styleElement);
return styleElement;
}
function createLinkElement(options) {
var linkElement = document.createElement("link");
linkElement.rel = "stylesheet";
insertStyleElement(options, linkElement);
return linkElement;
}
function addStyle(obj, options) {
var styleElement, update, remove;
if (options.singleton) {
var styleIndex = singletonCounter++;
styleElement = singletonElement || (singletonElement = createStyleElement(options));
update = applyToSingletonTag.bind(null, styleElement, styleIndex, false);
remove = applyToSingletonTag.bind(null, styleElement, styleIndex, true);
} else if (obj.sourceMap && typeof URL === "function" && typeof URL.createObjectURL === "function" && typeof URL.revokeObjectURL === "function" && typeof Blob === "function" && typeof btoa === "function") {
styleElement = createLinkElement(options);
update = updateLink.bind(null, styleElement);
remove = function remove() {
removeStyleElement(styleElement);
if (styleElement.href) URL.revokeObjectURL(styleElement.href);
};
} else {
styleElement = createStyleElement(options);
update = applyToTag.bind(null, styleElement);
remove = function remove() {
removeStyleElement(styleElement);
};
}
update(obj);
return function updateStyle(newObj) {
if (newObj) {
if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap) return;
update(obj = newObj);
} else {
remove();
}
};
}
var replaceText = function () {
var textStore = [];
return function (index, replacement) {
textStore[index] = replacement;
return textStore.filter(Boolean).join('\n');
};
}();
function applyToSingletonTag(styleElement, index, remove, obj) {
var css = remove ? "" : obj.css;
if (styleElement.styleSheet) {
styleElement.styleSheet.cssText = replaceText(index, css);
} else {
var cssNode = document.createTextNode(css);
var childNodes = styleElement.childNodes;
if (childNodes[index]) styleElement.removeChild(childNodes[index]);
if (childNodes.length) {
styleElement.insertBefore(cssNode, childNodes[index]);
} else {
styleElement.appendChild(cssNode);
}
}
}
function applyToTag(styleElement, obj) {
var css = obj.css;
var media = obj.media;
if (media) {
styleElement.setAttribute("media", media);
}
if (styleElement.styleSheet) {
styleElement.styleSheet.cssText = css;
} else {
while (styleElement.firstChild) {
styleElement.removeChild(styleElement.firstChild);
}
styleElement.appendChild(document.createTextNode(css));
}
}
function updateLink(linkElement, obj) {
var css = obj.css;
var sourceMap = obj.sourceMap;
if (sourceMap) {
// http://stackoverflow.com/a/26603875
css += "\n/*# sourceMappingURL=data:application/json;base64," + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + " */";
}
var blob = new Blob([css], {
type: "text/css"
});
var oldSrc = linkElement.href;
linkElement.href = URL.createObjectURL(blob);
if (oldSrc) URL.revokeObjectURL(oldSrc);
}
/***/
},,
/* 10 */
/* 11 */
/***/
function (module, exports, __webpack_require__) {
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.DragItemTypes = exports.CellExpand = exports.UpdateActions = exports.HeaderRowType = exports.EventTypes = exports.CellNavigationMode = undefined;
var _CellNavigationMode = __webpack_require__(106);
var CellNavigationMode = _interopRequireWildcard(_CellNavigationMode);
var _EventTypes = __webpack_require__(107);
var EventTypes = _interopRequireWildcard(_EventTypes);
var _HeaderRowType = __webpack_require__(108);
var HeaderRowType = _interopRequireWildcard(_HeaderRowType);
var _keymirror = __webpack_require__(112);
var _keymirror2 = _interopRequireDefault(_keymirror);
function _interopRequireDefault(obj) {
return obj && obj.__esModule ? obj : {
'default': obj
};
}
function _interopRequireWildcard(obj) {
if (obj && obj.__esModule) {
return obj;
} else {
var newObj = {};
if (obj != null) {
for (var key in obj) {
if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key];
}
}
newObj['default'] = obj;
return newObj;
}
}
var UpdateActions = (0, _keymirror2['default'])({
CELL_UPDATE: null,
COLUMN_FILL: null,
COPY_PASTE: null,
CELL_DRAG: null
});
var DragItemTypes = {
Column: 'column'
};
var CellExpand = {
DOWN_TRIANGLE: String.fromCharCode(9660),
RIGHT_TRIANGLE: String.fromCharCode(9654)
};
exports.CellNavigationMode = CellNavigationMode;
exports.EventTypes = EventTypes;
exports.HeaderRowType = HeaderRowType;
exports.UpdateActions = UpdateActions;
exports.CellExpand = CellExpand;
exports.DragItemTypes = DragItemTypes;
/***/
},,
/* 12 */
/* 13 */
/***/
function (module, exports) {
module.exports = __WEBPACK_EXTERNAL_MODULE_13__;
/***/
},,,,,
/* 14 */
/* 15 */
/* 16 */
/* 17 */
/* 18 */
/***/
function (module, exports, __webpack_require__) {
'use strict';
var _propTypes = __webpack_require__(3);
var _propTypes2 = _interopRequireDefault(_propTypes);
function _interopRequireDefault(obj) {
return obj && obj.__esModule ? obj : {
'default': obj
};
}
var ExcelColumnShape = {
name: _propTypes2['default'].node.isRequired,
key: _propTypes2['default'].string.isRequired,
width: _propTypes2['default'].number.isRequired,
filterable: _propTypes2['default'].bool
};
module.exports = ExcelColumnShape;
/***/
},,,,,,,,,
/* 19 */
/* 20 */
/* 21 */
/* 22 */
/* 23 */
/* 24 */
/* 25 */
/* 26 */
/* 27 */
/***/
function (module, exports) {
/*
object-assign
(c) Sindre Sorhus
@license MIT
*/
'use strict';
/* eslint-disable no-unused-vars */
var getOwnPropertySymbols = Object.getOwnPropertySymbols;
var hasOwnProperty = Object.prototype.hasOwnProperty;
var propIsEnumerable = Object.prototype.propertyIsEnumerable;
function toObject(val) {
if (val === null || val === undefined) {
throw new TypeError('Object.assign cannot be called with null or undefined');
}
return Object(val);
}
function shouldUseNative() {
try {
if (!Object.assign) {
return false;
} // Detect buggy property enumeration order in older V8 versions.
// https://bugs.chromium.org/p/v8/issues/detail?id=4118
var test1 = new String('abc'); // eslint-disable-line no-new-wrappers
test1[5] = 'de';
if (Object.getOwnPropertyNames(test1)[0] === '5') {
return false;
} // https://bugs.chromium.org/p/v8/issues/detail?id=3056
var test2 = {};
for (var i = 0; i < 10; i++) {
test2['_' + String.fromCharCode(i)] = i;
}
var order2 = Object.getOwnPropertyNames(test2).map(function (n) {
return test2[n];
});
if (order2.join('') !== '0123456789') {
return false;
} // https://bugs.chromium.org/p/v8/issues/detail?id=3056
var test3 = {};
'abcdefghijklmnopqrst'.split('').forEach(function (letter) {
test3[letter] = letter;
});
if (Object.keys(Object.assign({}, test3)).join('') !== 'abcdefghijklmnopqrst') {
return false;
}
return true;
} catch (err) {
// We don't expect any of the above to throw, but better to be safe.
return false;
}
}
module.exports = shouldUseNative() ? Object.assign : function (target, source) {
var from;
var to = toObject(target);
var symbols;
for (var s = 1; s < arguments.length; s++) {
from = Object(arguments[s]);
for (var key in from) {
if (hasOwnProperty.call(from, key)) {
to[key] = from[key];
}
}
if (getOwnPropertySymbols) {
symbols = getOwnPropertySymbols(from);
for (var i = 0; i < symbols.length; i++) {
if (propIsEnumerable.call(from, symbols[i])) {
to[symbols[i]] = from[symbols[i]];
}
}
}
}
return to;
};
/***/
},,,,
/* 28 */
/* 29 */
/* 30 */
/* 31 */
/***/
function (module, exports, __webpack_require__) {
'use strict';
var _propTypes = __webpack_require__(3);
var _propTypes2 = _interopRequireDefault(_propTypes);
function _interopRequireDefault(obj) {
return obj && obj.__esModule ? obj : {
'default': obj
};
}
module.exports = {
rowKey: _propTypes2['default'].string.isRequired,
onCellClick: _propTypes2['default'].func.isRequired,
onCellMouseDown: _propTypes2['default'].func.isRequired,
onCellMouseEnter: _propTypes2['default'].func.isRequired,
onCellContextMenu: _propTypes2['default'].func.isRequired,
onCellDoubleClick: _propTypes2['default'].func.isRequired,
onDragEnter: _propTypes2['default'].func.isRequired,
onRowExpandToggle: _propTypes2['default'].func.isRequired,
onDeleteSubRow: _propTypes2['default'].func,
onAddSubRow: _propTypes2['default'].func,
onColumnEvent: _propTypes2['default'].func.isRequired,
onCellExpand: _propTypes2['default'].func.isRequired,
getCellActions: _propTypes2['default'].func
};
/***/
},,,,,
/* 32 */
/* 33 */
/* 34 */
/* 35 */
/* 36 */
/***/
function (module, exports) {
"use strict";
function createObjectWithProperties(originalObj, properties) {
return properties.reduce(function (result, property) {
if (property in originalObj) {
result[property] = originalObj[property];
}
return result;
}, {});
}
module.exports = createObjectWithProperties;
/***/
},,,,
/* 37 */
/* 38 */
/* 39 */
/* 40 */
/***/
function (module, exports, __webpack_require__) {
// style-loader: Adds some css to the DOM by adding a <style> tag
// load the styles
var content = __webpack_require__(285);
if (typeof content === 'string') content = [[module.id, content, '']]; // add the styles to the DOM
var update = __webpack_require__(9)(content, {});
if (content.locals) module.exports = content.locals; // Hot Module Replacement
if (false) {
// When the styles change, update the <style> tags
if (!content.locals) {
module.hot.accept("!!../node_modules/css-loader/index.js!./react-data-grid-header.css", function () {
var newContent = require("!!../node_modules/css-loader/index.js!./react-data-grid-header.css");
if (typeof newContent === 'string') newContent = [[module.id, newContent, '']];
update(newContent);
});
} // When the module is disposed, remove the <style> tags
module.hot.dispose(function () {
update();
});
}
/***/
},,,
/* 41 */
/* 42 */
/* 43 */
/***/
function (module, exports, __webpack_require__) {
'use strict';
module.exports = {
CheckboxEditor: __webpack_require__(69),
EditorBase: __webpack_require__(47),
SimpleTextEditor: __webpack_require__(70)
};
/***/
},
/* 44 */
/***/
function (module, exports) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = shouldRowUpdate;
function shouldRowUpdate(nextProps, currentProps) {
return currentProps.columns !== nextProps.columns || nextProps.row !== currentProps.row || currentProps.colOverscanStartIdx !== nextProps.colOverscanStartIdx || currentProps.colOverscanEndIdx !== nextProps.colOverscanEndIdx || currentProps.colVisibleStartIdx !== nextProps.colVisibleStartIdx || currentProps.colVisibleEndIdx !== nextProps.colVisibleEndIdx || currentProps.isSelected !== nextProps.isSelected || currentProps.isScrolling !== nextProps.isScrolling || nextProps.height !== currentProps.height || currentProps.isOver !== nextProps.isOver || currentProps.expandedRows !== nextProps.expandedRows || currentProps.canDrop !== nextProps.canDrop || currentProps.forceUpdate === true || currentProps.extraClasses !== nextProps.extraClasses;
}
/***/
},
/* 45 */
/***/
function (module, exports, __webpack_require__) {
// style-loader: Adds some css to the DOM by adding a <style> tag
// load the styles
var content = __webpack_require__(111);
if (typeof content === 'string') content = [[module.id, content, '']]; // add the styles to the DOM
var update = __webpack_require__(9)(content, {});
if (content.locals) module.exports = content.locals; // Hot Module Replacement
if (false) {
// When the styles change, update the <style> tags
if (!content.locals) {
module.hot.accept("!!../node_modules/css-loader/index.js!./react-data-grid-row.css", function () {
var newContent = require("!!../node_modules/css-loader/index.js!./react-data-grid-row.css");
if (typeof newContent === 'string') newContent = [[module.id, newContent, '']];
update(newContent);
});
} // When the module is disposed, remove the <style> tags
module.hot.dispose(function () {
update();
});
}
/***/
},,
/* 46 */
/* 47 */
/***/
function (module, exports, __webpack_require__) {
'use strict';
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 _ExcelColumn = __webpack_require__(18);
var _ExcelColumn2 = _interopRequireDefault(_ExcelColumn);
var _propTypes = __webpack_require__(3);
var _propTypes2 = _interopRequireDefault(_propTypes);
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");
}
}
function _possibleConstructorReturn(self, call) {
if (!self) {
throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
}
return call && (typeof call === "object" || typeof call === "function") ? call : self;
}
function _inherits(subClass, superClass) {
if (typeof superClass !== "function" && superClass !== null) {
throw new TypeError("Super expression must either be null or a function, not " + typeof superClass);
}
subClass.prototype = Object.create(superClass && superClass.prototype, {
constructor: {
value: subClass,
enumerable: false,
writable: true,
configurable: true
}
});
if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;
}
var React = __webpack_require__(2);
var ReactDOM = __webpack_require__(13);
var EditorBase = function (_React$Component) {
_inherits(EditorBase, _React$Component);
function EditorBase() {
_classCallCheck(this, EditorBase);
return _possibleConstructorReturn(this, (EditorBase.__proto__ || Object.getPrototypeOf(EditorBase)).apply(this, arguments));
}
_createClass(EditorBase, [{
key: 'getStyle',
value: function getStyle() {
return {
width: '100%'
};
}
}, {
key: 'getValue',
value: function getValue() {
var updated = {};
updated[this.props.column.key] = this.getInputNode().value;
return updated;
}
}, {
key: 'getInputNode',
value: function getInputNode() {
var domNode = ReactDOM.findDOMNode(this);
if (domNode.tagName === 'INPUT') {
return domNode;
}
return domNode.querySelector('input:not([type=hidden])');
}
}, {
key: 'inheritContainerStyles',
value: function inheritContainerStyles() {
return true;
}
}]);
return EditorBase;
}(React.Component);
EditorBase.propTypes = {
onKeyDown: _propTypes2['default'].func.isRequired,
value: _propTypes2['default'].any.isRequired,
onBlur: _propTypes2['default'].func.isRequired,
column: _propTypes2['default'].shape(_ExcelColumn2['default']).isRequired,
commit: _propTypes2['default'].func.isRequired
};
module.exports = EditorBase;
/***/
},
/* 48 */
/***/
function (module, exports, __webpack_require__) {
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _extends = Object.assign || function (target) {
for (var i = 1; i < arguments.length; i++) {
var source = arguments[i];
for (var key in source) {
if (Object.prototype.hasOwnProperty.call(source, key)) {
target[key] = source[key];
}
}
}
return target;
};
var _react = __webpack_require__(2);
var _react2 = _interopRequireDefault(_react);
var _propTypes = __webpack_require__(3);
var _propTypes2 = _interopRequireDefault(_propTypes);
function _interopRequireDefault(obj) {
return obj && obj.__esModule ? obj : {
'default': obj
};
}
function _objectWithoutProperties(obj, keys) {
var target = {};
for (var i in obj) {
if (keys.indexOf(i) >= 0) continue;
if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;
target[i] = obj[i];
}
return target;
}
var setMaskStyle = function setMaskStyle(_ref) {
var left = _ref.left,
top = _ref.top,
width = _ref.width,
height = _ref.height,
zIndex = _ref.zIndex,
position = _ref.position;
return {
height: height,
width: width,
zIndex: zIndex,
position: position || 'absolute',
pointerEvents: 'none',
transform: 'translate(' + left + 'px, ' + top + 'px)',
outline: 0
};
};
var CellMask = function CellMask(_ref2) {
var width = _ref2.width,
height = _ref2.height,
top = _ref2.top,
left = _ref2.left,
zIndex = _ref2.zIndex,
children = _ref2.children,
position = _ref2.position,
innerRef = _ref2.innerRef,
rest = _objectWithoutProperties(_ref2, ['width', 'height', 'top', 'left', 'zIndex', 'children', 'position', 'innerRef']);
return _react2['default'].createElement('div', _extends({
style: setMaskStyle({
left: left,
top: top,
width: width,
height: height,
zIndex: zIndex,
position: position
}),
'data-test': 'cell-mask',
ref: innerRef
}, rest), children);
};
CellMask.propTypes = {
width: _propTypes2['default'].number.isRequired,
height: _propTypes2['default'].number.isRequired,
top: _propTypes2['default'].number.isRequired,
left: _propTypes2['default'].number.isRequired,
zIndex: _propTypes2['default'].number.isRequired,
children: _propTypes2['default'].node,
innerRef: _propTypes2['default'].func
};
exports['default'] = CellMask;
/***/
},
/* 49 */
/***/
function (module, exports, __webpack_require__) {
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.getNextSelectedCellPosition = exports.isSelectedCellEditable = exports.getSelectedCellValue = exports.getSelectedColumn = exports.getSelectedRangeDimensions = exports.getSelectedDimensions = exports.getSelectedRow = undefined;
var _extends = Object.assign || function (target) {
for (var i = 1; i < arguments.length; i++) {
var source = arguments[i];
for (var key in source) {
if (Object.prototype.hasOwnProperty.call(source, key)) {
target[key] = source[key];
}
}
}
return target;
};
exports.canExitGrid = canExitGrid;
exports.selectedRangeIsSingleCell = selectedRangeIsSingleCell;
var _constants = __webpack_require__(11);
var _utils = __webpack_require__(5);
var _RowUtils = __webpack_require__(81);
var rowUtils = _interopRequireWildcard(_RowUtils);
var _ColumnUtils = __webpack_require__(6);
var columnUtils = _interopRequireWildcard(_ColumnUtils);
var _zIndexes = __webpack_require__(79);
var _zIndexes2 = _interopRequireDefault(_zIndexes);
function _interopRequireDefault(obj) {
return obj && obj.__esModule ? obj : {
'default': obj
};
}
function _interopRequireWildcard(obj) {
if (obj && obj.__esModule) {
return obj;
} else {
var newObj = {};
if (obj != null) {
for (var key in obj) {
if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key];
}
}
newObj['default'] = obj;
return newObj;
}
}
var getRowTop = function getRowTop(rowIdx, rowHeight) {
return rowIdx * rowHeight;
};
var getSelectedRow = exports.getSelectedRow = function getSelectedRow(_ref) {
var selectedPosition = _ref.selectedPosition,
rowGetter = _ref.rowGetter;
var rowIdx = selectedPosition.rowIdx;
return rowGetter(rowIdx);
};
var getSelectedDimensions = exports.getSelectedDimensions = function getSelectedDimensions(_ref2) {
var selectedPosition = _ref2.selectedPosition,
columns = _ref2.columns,
rowHeight = _ref2.rowHeight;
var idx = selectedPosition.idx,
rowIdx = selectedPosition.rowIdx;
if (idx >= 0) {
var column = columnUtils.getColumn(columns, idx);
var width = column.width,
left = column.left;
var top = getRowTop(rowIdx, rowHeight);
var zIndex = columnUtils.isFrozen(columns) ? _zIndexes2['default'].FROZEN_CELL_MASK : _zIndexes2['default'].CELL_MASK;
return {
width: width,
left: left,
top: top,
height: rowHeight,
zIndex: zIndex
};
}
return {
width: 0,
left: 0,
top: 0,
height: rowHeight,
zIndex: 1
};
};
var getColumnRangeProperties = function getColumnRangeProperties(from, to, columns) {
var totalWidth = 0;
var anyColFrozen = false;
for (var i = from; i <= to; i++) {
var column = columnUtils.getColumn(columns, i);
totalWidth += column.width;
anyColFrozen = anyColFrozen || columnUtils.isFrozen(column);
}
return {
totalWidth: totalWidth,
anyColFrozen: anyColFrozen,
left: columnUtils.getColumn(columns, from).left
};
};
var getSelectedRangeDimensions = exports.getSelectedRangeDimensions = function getSelectedRangeDimensions(_ref3) {
var selectedRange = _ref3.selectedRange,
columns = _ref3.columns,
rowHeight = _ref3.rowHeight;
var topLeft = selectedRange.topLeft,
bottomRight = selectedRange.bottomRight;
if (topLeft.idx < 0) {
return {
width: 0,
left: 0,
top: 0,
height: rowHeight,
zIndex: _zIndexes2['default'].CELL_MASK
};
}
var _getColumnRangeProper = getColumnRangeProperties(topLeft.idx, bottomRight.idx, columns),
totalWidth = _getColumnRangeProper.totalWidth,
anyColFrozen = _getColumnRangeProper.anyColFrozen,
left = _getColumnRangeProper.left;
var top = getRowTop(topLeft.rowIdx, rowHeight);
var height = (bottomRight.rowIdx - topLeft.rowIdx + 1) * rowHeight;
var zIndex = anyColFrozen ? _zIndexes2['default'].FROZEN_CELL_MASK : _zIndexes2['default'].CELL_MASK;
return {
width: totalWidth,
left: left,
top: top,
height: height,
zIndex: zIndex
};
};
var getSelectedColumn = exports.getSelectedColumn = function getSelectedColumn(_ref4) {
var selectedPosition = _ref4.selectedPosition,
columns = _ref4.columns;
var idx = selectedPosition.idx;
return columnUtils.getColumn(columns, idx);
};
var getSelectedCellValue = exports.getSelectedCellValue = function getSelectedCellValue(_ref5) {
var selectedPosition = _ref5.selectedPosition,
columns = _ref5.columns,
rowGetter = _ref5.rowGetter;
var column = getSelectedColumn({
selectedPosition: selectedPosition,
columns: columns
});
var row = getSelectedRow({
selectedPosition: selectedPosition,
rowGetter: rowGetter
});
return row && column ? rowUtils.get(row, column.key) : null;
};
var isSelectedCellEditable = exports.isSelectedCellEditable = function isSelectedCellEditable(_ref6) {
var enableCellSelect = _ref6.enableCellSelect,
selectedPosition = _ref6.selectedPosition,
columns = _ref6.columns,
rowGetter = _ref6.rowGetter,
onCheckCellIsEditable = _ref6.onCheckCellIsEditable;
var column = getSelectedColumn({
selectedPosition: selectedPosition,
columns: columns
});
var row = getSelectedRow({
selectedPosition: selectedPosition,
rowGetter: rowGetter
});
var isCellEditable = (0, _utils.isFunction)(onCheckCellIsEditable) ? onCheckCellIsEditable(_extends({
row: row,
column: column
}, selectedPosition)) : true;
return columnUtils.canEdit(column, row, enableCellSelect) && isCellEditable;
};
var getNextSelectedCellPosition = exports.getNextSelectedCellPosition = function getNextSelectedCellPosition(_ref7, nextPosition) {
var cellNavigationMode = _ref7.cellNavigationMode,
columns = _ref7.columns,
rowsCount = _ref7.rowsCount;
if (cellNavigationMode !== _constants.CellNavigationMode.NONE) {
var idx = nextPosition.idx,
rowIdx = nextPosition.rowIdx;
var isAfterLastColumn = idx === columns.length;
var isBeforeFirstColumn = idx === -1;
if (isAfterLastColumn) {
if (cellNavigationMode === _constants.CellNavigationMode.CHANGE_ROW) {
var isLastRow = rowIdx === rowsCount - 1;
if (!isLastRow) {
return {
idx: 0,
rowIdx: rowIdx + 1,
changeRowOrColumn: true
};
}
} else if (cellNavigationMode === _constants.CellNavigationMode.LOOP_OVER_ROW) {
return {
rowIdx: rowIdx,
idx: 0,
changeRowOrColumn: true
};
}
} else if (isBeforeFirstColumn) {
if (cellNavigationMode === _constants.CellNavigationMode.CHANGE_ROW) {
var isFirstRow = rowIdx === 0;
if (!isFirstRow) {
return {
rowIdx: rowIdx - 1,
idx: columns.length - 1,
changeRowOrColumn: true
};
}
} else if (cellNavigationMode === _constants.CellNavigationMode.LOOP_OVER_ROW) {
return {
rowIdx: rowIdx,
idx: columns.length - 1,
changeRowOrColumn: true
};
}
}
}
return _extends({}, nextPosition, {
changeRowOrColumn: false
});
};
function canExitGrid(e, _ref8) {
var cellNavigationMode = _ref8.cellNavigationMode,
columns = _ref8.columns,
rowsCount = _ref8.rowsCount,
_ref8$selectedPositio = _ref8.selectedPosition,
rowIdx = _ref8$selectedPositio.rowIdx,
idx = _ref8$selectedPositio.idx; // When the cellNavigationMode is 'none' or 'changeRow', you can exit the grid if you're at the first or last cell of the grid
// When the cellNavigationMode is 'loopOverRow', there is no logical exit point so you can't exit the grid
if (cellNavigationMode === _constants.CellNavigationMode.NONE || cellNavigationMode === _constants.CellNavigationMode.CHANGE_ROW) {
var atLastCellInRow = idx === columns.length - 1;
var atFirstCellInRow = idx === 0;
var atLastRow = rowIdx === rowsCount - 1;
var atFirstRow = rowIdx === 0;
var shift = e.shiftKey === true;
return shift ? atFirstCellInRow && atFirstRow : atLastCellInRow && atLastRow;
}
return false;
}
function selectedRangeIsSingleCell(selectedRange) {
return selectedRange.topLeft.idx === selectedRange.bottomRight.idx && selectedRange.topLeft.rowIdx === selectedRange.bottomRight.rowIdx;
}
/***/
},,,,,,,,,,
/* 50 */
/* 51 */
/* 52 */
/* 53 */
/* 54 */
/* 55 */
/* 56 */
/* 57 */
/* 58 */
/* 59 */
/***/
function (module, exports, __webpack_require__) {
// style-loader: Adds some css to the DOM by adding a <style> tag
// load the styles
var content = __webpack_require__(283);
if (typeof content === 'string') content = [[module.id, content, '']]; // add the styles to the DOM
var update = __webpack_require__(9)(content, {});
if (content.locals) module.exports = content.locals; // Hot Module Replacement
if (false) {
// When the styles change, update the <style> tags
if (!content.locals) {
module.hot.accept("!!../node_modules/css-loader/index.js!./react-data-grid-core.css", function () {
var newContent = require("!!../node_modules/css-loader/index.js!./react-data-grid-core.css");
if (typeof newContent === 'string') newContent = [[module.id, newContent, '']];
update(newContent);
});
} // When the module i