@darwino/darwino-react
Version:
A set of Javascript classes and utilities
1,519 lines (1,230 loc) • 350 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(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(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() {
removeStyleElement(styleElement);
if(styleElement.href)
URL.revokeObjectURL(styleElement.href);
};
} else {
styleElement = createStyleElement(options);
update = applyToTag.bind(null, styleElement);
remove = function() {
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 is disposed, remove the <style> tags
module.hot.dispose(function() { update(); });
}
/***/ }),
/* 60 */,
/* 61 */,
/* 62 */,
/* 63 */,
/* 64 */,
/* 65 */,
/* 66 */,
/* 67 */,
/* 68 */,
/* 69 */
/***/ (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 _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);
__webpack_require__(76);
var CheckboxEditor = function (_React$Component) {
_inherits(CheckboxEditor, _React$Component);
function CheckboxEditor() {
var _ref;
var _temp, _this, _ret;
_classCallCheck(this, CheckboxEditor);
for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = CheckboxEditor.__proto__ || Object.getPrototypeOf(CheckboxEditor)).call.apply(_ref, [this].concat(args))), _this), _this.handleChange = function (e) {
_this.props.column.onCellChange(_this.props.rowIdx, _this.props.column.key, _this.props.dependentValues, e);
}, _temp), _possibleConstructorReturn(_this, _ret);
}
_createClass(CheckboxEditor, [{
key: 'render',
value: function render() {
var checked = this.props.value != null ? this.props.value : false;
var checkboxName = 'checkbox' + this.props.rowIdx;
return React.createElement(
'div',
{ className: 'react-grid-checkbox-container checkbox-align', onClick: this.handleChange },
React.createElement('input', { className: 'react-grid-checkbox', type: 'checkbox', name: checkboxName, checked: checked }),
React.createElement('label', { htmlFor: checkboxName, className: 'react-grid-checkbox-label' })
);
}
}]);
return CheckboxEditor;
}(React.Component);
CheckboxEditor.propTypes = {
value: _propTypes2['default'].bool,
rowIdx: _propTypes2['default'].number,
column: _propTypes2['default'].shape({
key: _propTypes2['default'].string,
onCellChange: _propTypes2['default'].func
}),
dependentValues: _propTypes2['default'].object
};
module.exports = CheckboxEditor;
/***/ }),
/* 70 */
/***/ (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; }; }();
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 EditorBase = __webpack_require__(47);
var SimpleTextEditor = function (_EditorBase) {
_inherits(SimpleTextEditor, _EditorBase);
function SimpleTextEditor() {
var _ref;
var _temp, _this, _ret;
_classCallCheck(this, SimpleTextEditor);
for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = SimpleTextEditor.__proto__ || Object.getPrototypeOf(SimpleTextEditor)).call.apply(_ref, [this].concat(args))), _this), _this.setInputRef = function (input) {
_this.input = input;
}, _temp), _possibleConstructorReturn(_this, _ret);
}
_createClass(SimpleTextEditor, [{
key: 'render',
value: function render() {
return React.createElement('input', { ref: this.setInputRef, type: 'text', onBlur: this.props.onBlur, className: 'form-control', defaultValue: this.props.value });
}
}]);
return SimpleTextEditor;
}(EditorBase);
module.exports = SimpleTextEditor;
/***/ }),
/* 71 */,
/* 72 */,
/* 73 */,
/* 74 */,
/* 75 */,
/* 76 */
/***/ (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__(110);
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-checkbox.css", function() {
var newContent = require("!!../node_modules/css-loader/index.js!./react-data-grid-checkbox.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(); });
}
/***/ }),
/* 77 */,
/* 78 */,
/* 79 */
/***/ (function(module, exports) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = {
CELL_MASK: 5,
EDITOR_CONTAINER: 10,
FROZEN_CELL_MASK: 15,
FROZEN_EDITOR_CONTAINER: 20
};
/***/ }),
/* 80 */,
/* 81 */
/***/ (function(module, exports) {
'use strict';
var RowUtils = {
get: function get(row, property) {
if (typeof row.get === 'function') {
return row.get(property);
}
return row[property];
},