@elliemae/ds-shared 2.0.0-alpha.1 → 2.0.0-alpha.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/Animations/BaseAnimation.js +24 -20
- package/cjs/Animations/Grow.js +30 -26
- package/cjs/Animations/GrowRight.js +30 -26
- package/cjs/Animations/GrowVertical.js +1 -0
- package/cjs/CheckableGroup.js +35 -26
- package/cjs/DeferRenderAfterComputation.js +9 -7
- package/cjs/FocusGroup/FocusGrid.js +43 -36
- package/cjs/FocusGroup/FocusGroup.js +32 -14
- package/cjs/FocusGroup/FocusGroupContext.js +1 -1
- package/cjs/FocusGroup/FocusGroupManager.js +7 -12
- package/cjs/FocusGroup/focusGroupManagerHoc.js +9 -3
- package/cjs/FocusGroup/index.js +2 -2
- package/cjs/FocusGroup/useFocusGroupItem.js +11 -5
- package/cjs/FocusGroup/utils/getNextCellPosition.js +10 -9
- package/cjs/GroupContext/Group.js +12 -5
- package/cjs/GroupContext/GroupContext.js +1 -1
- package/cjs/GroupContext/GroupItem.js +6 -3
- package/cjs/ScrollSync/ScrollSync.js +26 -25
- package/cjs/ScrollSync/ScrollSyncPane.js +16 -8
- package/cjs/ScrollSync/ScrollSyncProvider.js +15 -9
- package/cjs/ScrollSync/index.js +1 -1
- package/cjs/createDataInstance/createInstancePlugin.js +7 -1
- package/cjs/createDataInstance/createInstanceRef.js +10 -2
- package/cjs/createDataInstance/utils.js +58 -26
- package/cjs/defer-render-hoc/index.js +13 -8
- package/cjs/index.js +1 -1
- package/cjs/react-spring/index.js +1 -3
- package/cjs/react-spring/renderprops.js +1 -3
- package/cjs/toolbar/ToolbarProvider.js +37 -27
- package/cjs/useDataGrid/VolatileRowsListener.js +6 -8
- package/cjs/useDataGrid/initColumnDefinition.js +30 -22
- package/cjs/useDataGrid/useDataGrid.js +47 -41
- package/cjs/useDataList/index.js +1 -1
- package/cjs/useDataList/recordIterator.js +4 -1
- package/cjs/useDataList/useDataList.js +21 -7
- package/cjs/utils.js +9 -2
- package/cjs/virtualization/AutoHeightList.js +12 -10
- package/cjs/virtualization/FluidHeightList.js +18 -10
- package/cjs/virtualization/index.js +7 -6
- package/esm/Animations/BaseAnimation.js +24 -20
- package/esm/Animations/Grow.js +30 -26
- package/esm/Animations/GrowRight.js +30 -26
- package/esm/Animations/GrowVertical.js +1 -0
- package/esm/CheckableGroup.js +29 -19
- package/esm/DeferRenderAfterComputation.js +8 -6
- package/esm/FocusGroup/FocusGrid.js +27 -19
- package/esm/FocusGroup/FocusGroup.js +26 -8
- package/esm/FocusGroup/FocusGroupManager.js +4 -8
- package/esm/FocusGroup/focusGroupManagerHoc.js +7 -1
- package/esm/FocusGroup/useFocusGroupItem.js +8 -2
- package/esm/FocusGroup/utils/getNextCellPosition.js +10 -9
- package/esm/GroupContext/Group.js +11 -4
- package/esm/GroupContext/GroupItem.js +6 -3
- package/esm/ScrollSync/ScrollSync.js +22 -20
- package/esm/ScrollSync/ScrollSyncPane.js +14 -6
- package/esm/ScrollSync/ScrollSyncProvider.js +12 -6
- package/esm/createDataInstance/createInstancePlugin.js +6 -0
- package/esm/createDataInstance/createInstanceRef.js +8 -0
- package/esm/createDataInstance/utils.js +57 -25
- package/esm/defer-render-hoc/index.js +10 -5
- package/esm/toolbar/ToolbarProvider.js +30 -20
- package/esm/useDataGrid/VolatileRowsListener.js +5 -3
- package/esm/useDataGrid/initColumnDefinition.js +12 -4
- package/esm/useDataGrid/useDataGrid.js +26 -16
- package/esm/useDataList/recordIterator.js +4 -1
- package/esm/useDataList/useDataList.js +17 -3
- package/esm/utils.js +8 -1
- package/esm/virtualization/AutoHeightList.js +6 -3
- package/esm/virtualization/FluidHeightList.js +14 -6
- package/esm/virtualization/index.js +7 -6
- package/package.json +8 -4
- package/types/toolbar/ToolbarProvider.d.ts +1 -1
- package/types/useDataGrid/initColumnDefinition.d.ts +4 -3
- package/cjs/package.json +0 -7
- package/esm/package.json +0 -7
|
@@ -3,6 +3,16 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
6
|
+
require('core-js/modules/esnext.async-iterator.for-each.js');
|
|
7
|
+
require('core-js/modules/esnext.iterator.constructor.js');
|
|
8
|
+
require('core-js/modules/esnext.iterator.for-each.js');
|
|
9
|
+
require('core-js/modules/esnext.async-iterator.reduce.js');
|
|
10
|
+
require('core-js/modules/esnext.iterator.reduce.js');
|
|
11
|
+
require('core-js/modules/web.dom-collections.iterator.js');
|
|
12
|
+
require('core-js/modules/esnext.async-iterator.map.js');
|
|
13
|
+
require('core-js/modules/esnext.iterator.map.js');
|
|
14
|
+
require('core-js/modules/esnext.async-iterator.filter.js');
|
|
15
|
+
require('core-js/modules/esnext.iterator.filter.js');
|
|
6
16
|
|
|
7
17
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
8
18
|
|
|
@@ -10,18 +20,26 @@ var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_definePropert
|
|
|
10
20
|
|
|
11
21
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
12
22
|
|
|
13
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty__default[
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
let
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
23
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty__default["default"](target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
24
|
+
const reducePropsGetter = function () {
|
|
25
|
+
let decorators = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
26
|
+
let grid = arguments.length > 1 ? arguments[1] : undefined;
|
|
27
|
+
return function () {
|
|
28
|
+
let props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
29
|
+
let extraParams = arguments.length > 1 ? arguments[1] : undefined;
|
|
30
|
+
let nextProps = props;
|
|
31
|
+
decorators.forEach(decorator => {
|
|
32
|
+
nextProps = decorator(nextProps, grid, extraParams);
|
|
33
|
+
});
|
|
34
|
+
return nextProps;
|
|
35
|
+
};
|
|
21
36
|
};
|
|
22
37
|
/* eslint-disable-next-line max-params */
|
|
23
38
|
|
|
24
|
-
function evaluateTransforms(transforms, value
|
|
39
|
+
function evaluateTransforms(transforms, value) {
|
|
40
|
+
let extraParams = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
41
|
+
let props = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
|
|
42
|
+
let grid = arguments.length > 4 ? arguments[4] : undefined;
|
|
25
43
|
let nextProps = props;
|
|
26
44
|
transforms.forEach(transform => {
|
|
27
45
|
nextProps = transform(value, extraParams, nextProps, grid);
|
|
@@ -30,15 +48,26 @@ function evaluateTransforms(transforms, value, extraParams = {}, props = {}, gri
|
|
|
30
48
|
}
|
|
31
49
|
/* eslint-disable-next-line max-params */
|
|
32
50
|
|
|
33
|
-
function evaluateFormatters(formatters, value
|
|
51
|
+
function evaluateFormatters(formatters, value) {
|
|
52
|
+
let extraParams = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
53
|
+
let grid = arguments.length > 3 ? arguments[3] : undefined;
|
|
34
54
|
return formatters.reduce((result, formatter) => formatter(result, extraParams, grid), value);
|
|
35
55
|
}
|
|
36
|
-
function composeFormatters(formatters, instance
|
|
56
|
+
function composeFormatters(formatters, instance) {
|
|
57
|
+
let getItemValue = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : record => record.data.name;
|
|
37
58
|
// todo: make the formatters subscribe to the item props instead of getting the whole instance
|
|
38
59
|
// todo: addd should formatter update to memoize specific ones
|
|
39
60
|
return props => formatters.reduce((result, formatter) => formatter(result, props, instance), getItemValue(props.record));
|
|
40
61
|
}
|
|
41
|
-
const applyDecorators = (subject
|
|
62
|
+
const applyDecorators = function (subject) {
|
|
63
|
+
let decorators = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
|
|
64
|
+
|
|
65
|
+
for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
|
|
66
|
+
args[_key - 2] = arguments[_key];
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
return decorators.reduce((nextSubject, decorator) => decorator(nextSubject, ...args), subject);
|
|
70
|
+
};
|
|
42
71
|
const decorateColumns = (columns, decorators, grid) => {
|
|
43
72
|
const nextColumns = applyDecorators(columns, decorators.decorateColumns, grid);
|
|
44
73
|
return nextColumns.map((column, index) => applyDecorators(column, decorators.decorateColumn, grid, index));
|
|
@@ -55,20 +84,23 @@ const registerStateHookToInstance = (instance, stateHook) => {
|
|
|
55
84
|
});
|
|
56
85
|
};
|
|
57
86
|
|
|
58
|
-
const reduceHotKey = (instance, {
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
}
|
|
87
|
+
const reduceHotKey = (instance, _ref) => {
|
|
88
|
+
let {
|
|
89
|
+
key,
|
|
90
|
+
handler,
|
|
91
|
+
options,
|
|
92
|
+
allowDocumentHandler
|
|
93
|
+
} = _ref;
|
|
94
|
+
return _objectSpread(_objectSpread({}, instance), {}, {
|
|
95
|
+
hotKeys: _objectSpread(_objectSpread({}, instance.hotKeys), {}, {
|
|
96
|
+
[key]: {
|
|
97
|
+
handler,
|
|
98
|
+
options,
|
|
99
|
+
allowDocumentHandler
|
|
100
|
+
}
|
|
101
|
+
})
|
|
102
|
+
});
|
|
103
|
+
};
|
|
72
104
|
|
|
73
105
|
const registerHotKeysHookToInstance = (instance, hotKeysHook) => {
|
|
74
106
|
const hotKeys = hotKeysHook(instance);
|
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
4
|
+
require('core-js/modules/web.dom-collections.iterator.js');
|
|
5
|
+
require('core-js/modules/esnext.async-iterator.filter.js');
|
|
6
|
+
require('core-js/modules/esnext.iterator.constructor.js');
|
|
7
|
+
require('core-js/modules/esnext.iterator.filter.js');
|
|
8
|
+
require('core-js/modules/esnext.async-iterator.for-each.js');
|
|
9
|
+
require('core-js/modules/esnext.iterator.for-each.js');
|
|
4
10
|
var React = require('react');
|
|
5
11
|
var raf = require('raf');
|
|
6
12
|
var hoistNonReactStatic = require('hoist-non-react-statics');
|
|
@@ -14,19 +20,18 @@ var hoistNonReactStatic__default = /*#__PURE__*/_interopDefaultLegacy(hoistNonRe
|
|
|
14
20
|
|
|
15
21
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
16
22
|
|
|
17
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty__default[
|
|
23
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty__default["default"](target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
18
24
|
function deferComponentRender(WrappedComponent, fallback) {
|
|
19
25
|
class DeferredRenderWrapper extends React.PureComponent {
|
|
20
|
-
constructor(
|
|
21
|
-
super(...
|
|
22
|
-
|
|
23
|
-
_defineProperty__default['default'](this, "state", {
|
|
26
|
+
constructor() {
|
|
27
|
+
super(...arguments);
|
|
28
|
+
this.state = {
|
|
24
29
|
shouldRender: false
|
|
25
|
-
}
|
|
30
|
+
};
|
|
26
31
|
}
|
|
27
32
|
|
|
28
33
|
componentDidMount() {
|
|
29
|
-
raf__default[
|
|
34
|
+
raf__default["default"](() => raf__default["default"](() => this.setState({
|
|
30
35
|
shouldRender: true
|
|
31
36
|
})));
|
|
32
37
|
}
|
|
@@ -38,7 +43,7 @@ function deferComponentRender(WrappedComponent, fallback) {
|
|
|
38
43
|
|
|
39
44
|
}
|
|
40
45
|
|
|
41
|
-
return hoistNonReactStatic__default[
|
|
46
|
+
return hoistNonReactStatic__default["default"](DeferredRenderWrapper, WrappedComponent);
|
|
42
47
|
}
|
|
43
48
|
|
|
44
49
|
module.exports = deferComponentRender;
|
package/cjs/index.js
CHANGED
|
@@ -10,7 +10,7 @@ var GroupItem = require('./GroupContext/GroupItem.js');
|
|
|
10
10
|
|
|
11
11
|
|
|
12
12
|
|
|
13
|
-
exports.ScrollSync = ScrollSync[
|
|
13
|
+
exports.ScrollSync = ScrollSync["default"];
|
|
14
14
|
exports.ScrollSyncPane = ScrollSyncPane;
|
|
15
15
|
exports.Group = Group;
|
|
16
16
|
exports.GroupContext = GroupContext.GroupContext;
|
|
@@ -9,8 +9,6 @@ var web = require('react-spring/web');
|
|
|
9
9
|
Object.keys(web).forEach(function (k) {
|
|
10
10
|
if (k !== 'default' && !exports.hasOwnProperty(k)) Object.defineProperty(exports, k, {
|
|
11
11
|
enumerable: true,
|
|
12
|
-
get: function () {
|
|
13
|
-
return web[k];
|
|
14
|
-
}
|
|
12
|
+
get: function () { return web[k]; }
|
|
15
13
|
});
|
|
16
14
|
});
|
|
@@ -9,8 +9,6 @@ var renderprops = require('react-spring/renderprops');
|
|
|
9
9
|
Object.keys(renderprops).forEach(function (k) {
|
|
10
10
|
if (k !== 'default' && !exports.hasOwnProperty(k)) Object.defineProperty(exports, k, {
|
|
11
11
|
enumerable: true,
|
|
12
|
-
get: function () {
|
|
13
|
-
return renderprops[k];
|
|
14
|
-
}
|
|
12
|
+
get: function () { return renderprops[k]; }
|
|
15
13
|
});
|
|
16
14
|
});
|
|
@@ -4,9 +4,15 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
4
4
|
|
|
5
5
|
var _jsx = require('@babel/runtime/helpers/jsx');
|
|
6
6
|
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
7
|
+
require('core-js/modules/web.dom-collections.iterator.js');
|
|
8
|
+
require('core-js/modules/esnext.async-iterator.filter.js');
|
|
9
|
+
require('core-js/modules/esnext.iterator.constructor.js');
|
|
10
|
+
require('core-js/modules/esnext.iterator.filter.js');
|
|
11
|
+
require('core-js/modules/esnext.async-iterator.for-each.js');
|
|
12
|
+
require('core-js/modules/esnext.iterator.for-each.js');
|
|
7
13
|
var React = require('react');
|
|
8
|
-
var DSPopover = require('@elliemae/ds-
|
|
9
|
-
var
|
|
14
|
+
var DSPopover = require('@elliemae/ds-popper');
|
|
15
|
+
var dsUtilities = require('@elliemae/ds-utilities');
|
|
10
16
|
var jsxRuntime = require('react/jsx-runtime');
|
|
11
17
|
|
|
12
18
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
@@ -18,8 +24,8 @@ var DSPopover__default = /*#__PURE__*/_interopDefaultLegacy(DSPopover);
|
|
|
18
24
|
|
|
19
25
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
20
26
|
|
|
21
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty__default[
|
|
22
|
-
const ToolbarContext = /*#__PURE__*/React__default[
|
|
27
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty__default["default"](target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
28
|
+
const ToolbarContext = /*#__PURE__*/React__default["default"].createContext();
|
|
23
29
|
const {
|
|
24
30
|
Provider
|
|
25
31
|
} = ToolbarContext;
|
|
@@ -35,12 +41,13 @@ const useScrollListener = (callback, dependencies) => {
|
|
|
35
41
|
|
|
36
42
|
const noop = () => null;
|
|
37
43
|
|
|
38
|
-
function ToolbarProvider({
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
+
function ToolbarProvider(_ref) {
|
|
45
|
+
let {
|
|
46
|
+
delay = 200,
|
|
47
|
+
children,
|
|
48
|
+
onHide = noop,
|
|
49
|
+
onShow = noop
|
|
50
|
+
} = _ref;
|
|
44
51
|
const showTimer = React.useRef();
|
|
45
52
|
const hideTimer = React.useRef();
|
|
46
53
|
const toolbarRef = React.useRef();
|
|
@@ -63,7 +70,7 @@ function ToolbarProvider({
|
|
|
63
70
|
};
|
|
64
71
|
|
|
65
72
|
useScrollListener(e => hide(e, true), tooltipState.visible);
|
|
66
|
-
|
|
73
|
+
dsUtilities.useOnClickOutside(toolbarRef, () => hide());
|
|
67
74
|
|
|
68
75
|
const keyDownHandler = e => {
|
|
69
76
|
if (e.key === 'Escape') {
|
|
@@ -82,32 +89,35 @@ function ToolbarProvider({
|
|
|
82
89
|
show,
|
|
83
90
|
hide
|
|
84
91
|
}), [tooltipState.reference]);
|
|
85
|
-
return /*#__PURE__*/_jsx__default[
|
|
92
|
+
return /*#__PURE__*/_jsx__default["default"](Provider, {
|
|
86
93
|
value: value
|
|
87
|
-
}, void 0, children, /*#__PURE__*/jsxRuntime.jsx(DSPopover__default[
|
|
94
|
+
}, void 0, children, /*#__PURE__*/jsxRuntime.jsx(DSPopover__default["default"], _objectSpread(_objectSpread({
|
|
88
95
|
boundaries: "scrollParent"
|
|
89
96
|
}, tooltipState.options || {}), {}, {
|
|
90
97
|
content: tooltipState.renderer,
|
|
91
98
|
placement: "left",
|
|
92
99
|
referenceEl: tooltipState.reference,
|
|
93
|
-
renderer:
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
100
|
+
renderer: _ref2 => {
|
|
101
|
+
let {
|
|
102
|
+
as: Component,
|
|
103
|
+
style,
|
|
104
|
+
children: Content
|
|
105
|
+
} = _ref2;
|
|
106
|
+
return /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
107
|
+
ref: toolbarRef,
|
|
108
|
+
onMouseEnter: e => show(tooltipState),
|
|
109
|
+
onMouseLeave: hide,
|
|
110
|
+
children: /*#__PURE__*/_jsx__default["default"](Component, {
|
|
111
|
+
style: style
|
|
112
|
+
}, void 0, Content)
|
|
113
|
+
});
|
|
114
|
+
},
|
|
105
115
|
style: tooltipState.style,
|
|
106
116
|
visible: tooltipState.visible
|
|
107
117
|
})));
|
|
108
118
|
}
|
|
109
119
|
|
|
110
|
-
var ToolbarProvider$1 = /*#__PURE__*/React__default[
|
|
120
|
+
var ToolbarProvider$1 = /*#__PURE__*/React__default["default"].memo(ToolbarProvider);
|
|
111
121
|
|
|
112
122
|
exports.ToolbarContext = ToolbarContext;
|
|
113
|
-
exports[
|
|
123
|
+
exports["default"] = ToolbarProvider$1;
|
|
@@ -1,15 +1,13 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
|
|
3
|
+
require('core-js/modules/esnext.async-iterator.for-each.js');
|
|
4
|
+
require('core-js/modules/esnext.iterator.constructor.js');
|
|
5
|
+
require('core-js/modules/esnext.iterator.for-each.js');
|
|
6
|
+
var dsUtilities = require('@elliemae/ds-utilities');
|
|
9
7
|
|
|
10
8
|
class VolatileRowsListener {
|
|
11
9
|
constructor() {
|
|
12
|
-
|
|
10
|
+
this.observers = [];
|
|
13
11
|
}
|
|
14
12
|
|
|
15
13
|
observe(listener) {
|
|
@@ -17,7 +15,7 @@ class VolatileRowsListener {
|
|
|
17
15
|
}
|
|
18
16
|
|
|
19
17
|
notify(nextRows) {
|
|
20
|
-
this.observers.forEach(observer =>
|
|
18
|
+
this.observers.forEach(observer => dsUtilities.safeCall(observer, nextRows));
|
|
21
19
|
this.observers = [];
|
|
22
20
|
}
|
|
23
21
|
|
|
@@ -4,10 +4,16 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
4
4
|
|
|
5
5
|
var _jsx = require('@babel/runtime/helpers/jsx');
|
|
6
6
|
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
7
|
+
require('core-js/modules/web.dom-collections.iterator.js');
|
|
7
8
|
require('core-js/modules/es.string.replace.js');
|
|
9
|
+
require('core-js/modules/esnext.async-iterator.filter.js');
|
|
10
|
+
require('core-js/modules/esnext.iterator.constructor.js');
|
|
11
|
+
require('core-js/modules/esnext.iterator.filter.js');
|
|
12
|
+
require('core-js/modules/esnext.async-iterator.for-each.js');
|
|
13
|
+
require('core-js/modules/esnext.iterator.for-each.js');
|
|
8
14
|
require('react');
|
|
9
15
|
var uuid = require('uuid');
|
|
10
|
-
var
|
|
16
|
+
var dsUtilities = require('@elliemae/ds-utilities');
|
|
11
17
|
|
|
12
18
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
13
19
|
|
|
@@ -16,17 +22,18 @@ var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_definePropert
|
|
|
16
22
|
|
|
17
23
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
18
24
|
|
|
19
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty__default[
|
|
25
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty__default["default"](target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
20
26
|
|
|
21
|
-
const appendHeaderFormatter =
|
|
27
|
+
const appendHeaderFormatter = dsUtilities.curry((formatter, column) => _objectSpread(_objectSpread({}, column), {}, {
|
|
22
28
|
header: _objectSpread(_objectSpread({}, column.header), {}, {
|
|
23
|
-
formatters: [...
|
|
29
|
+
formatters: [...dsUtilities.get(column, 'header.formatters', []), formatter]
|
|
24
30
|
})
|
|
25
31
|
}));
|
|
26
|
-
const appendCellFormatter =
|
|
27
|
-
|
|
28
|
-
const
|
|
29
|
-
const
|
|
32
|
+
const appendCellFormatter = dsUtilities.curry(function (formatter, column) {
|
|
33
|
+
let path = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'formatters';
|
|
34
|
+
const nextColumn = dsUtilities.cloneDeep(column);
|
|
35
|
+
const formatters = dsUtilities.get(nextColumn, ['cell', path], []);
|
|
36
|
+
const scrollingFormatters = dsUtilities.get(nextColumn, 'cell.scrollingFormatters', []);
|
|
30
37
|
|
|
31
38
|
if (Array.isArray(formatter)) {
|
|
32
39
|
if (formatter[1]) scrollingFormatters.push(formatter[1]);
|
|
@@ -36,8 +43,8 @@ const appendCellFormatter = utils.curry((formatter, column, path = 'formatters')
|
|
|
36
43
|
scrollingFormatters.push(formatter);
|
|
37
44
|
}
|
|
38
45
|
|
|
39
|
-
|
|
40
|
-
|
|
46
|
+
dsUtilities.set(nextColumn, ['cell', path], formatters);
|
|
47
|
+
dsUtilities.set(nextColumn, 'cell.scrollingFormatters', scrollingFormatters);
|
|
41
48
|
return nextColumn;
|
|
42
49
|
});
|
|
43
50
|
const defaultColumnDefinitionOptions = {
|
|
@@ -46,18 +53,19 @@ const defaultColumnDefinitionOptions = {
|
|
|
46
53
|
isUserColumn: true,
|
|
47
54
|
visible: true
|
|
48
55
|
};
|
|
49
|
-
const mergeClassNameToColumnHeader =
|
|
50
|
-
const headerProps =
|
|
56
|
+
const mergeClassNameToColumnHeader = dsUtilities.curry((className, column) => {
|
|
57
|
+
const headerProps = dsUtilities.get(column, ['header', 'props'], {});
|
|
51
58
|
const headerClassName = headerProps.className || '';
|
|
52
59
|
return _objectSpread(_objectSpread({}, column), {}, {
|
|
53
60
|
header: _objectSpread(_objectSpread({}, column.header), {}, {
|
|
54
61
|
props: _objectSpread(_objectSpread({}, headerProps), {}, {
|
|
55
|
-
className:
|
|
62
|
+
className: "".concat(headerClassName, " ").concat(className)
|
|
56
63
|
})
|
|
57
64
|
})
|
|
58
65
|
});
|
|
59
66
|
});
|
|
60
|
-
function initColumnDefinition(
|
|
67
|
+
function initColumnDefinition() {
|
|
68
|
+
let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
61
69
|
// eslint-disable-next-line complexity
|
|
62
70
|
return column => {
|
|
63
71
|
// todo: clean this
|
|
@@ -89,14 +97,14 @@ function initColumnDefinition(options = {}) {
|
|
|
89
97
|
|
|
90
98
|
column.header = _objectSpread(_objectSpread({}, column.header), {}, {
|
|
91
99
|
label: column.label,
|
|
92
|
-
formatters: [...
|
|
100
|
+
formatters: [...dsUtilities.get(column, ['header', 'formatters'], [])],
|
|
93
101
|
props: {
|
|
94
102
|
style: column.headerStyle || {}
|
|
95
103
|
}
|
|
96
104
|
});
|
|
97
105
|
|
|
98
|
-
if (useTextTruncation && !(
|
|
99
|
-
column.header.formatters.push(value => /*#__PURE__*/_jsx__default[
|
|
106
|
+
if (useTextTruncation && !(dsUtilities.isFunction(column.customHeaderRenderer) || column.header.formatters.length)) {
|
|
107
|
+
column.header.formatters.push(value => /*#__PURE__*/_jsx__default["default"]("span", {
|
|
100
108
|
className: "cell-value"
|
|
101
109
|
}, void 0, value));
|
|
102
110
|
} // eslint-disable-next-line no-param-reassign
|
|
@@ -104,15 +112,15 @@ function initColumnDefinition(options = {}) {
|
|
|
104
112
|
|
|
105
113
|
column.cell = _objectSpread(_objectSpread({}, column.cell), {}, {
|
|
106
114
|
transforms: [],
|
|
107
|
-
formatters: [...
|
|
108
|
-
scrollingFormatters: [...
|
|
115
|
+
formatters: [...dsUtilities.get(column, ['cell', 'formatters'], [])],
|
|
116
|
+
scrollingFormatters: [...dsUtilities.get(column, ['cell', 'formatters'], [])],
|
|
109
117
|
props: {
|
|
110
118
|
style: column.cellStyle || {}
|
|
111
119
|
}
|
|
112
120
|
});
|
|
113
121
|
|
|
114
|
-
if (useTextTruncation && !(
|
|
115
|
-
column.cell.formatters.push(value => /*#__PURE__*/_jsx__default[
|
|
122
|
+
if (useTextTruncation && !(dsUtilities.isFunction(column.customRenderer) || column.cell.formatters.length)) {
|
|
123
|
+
column.cell.formatters.push(value => /*#__PURE__*/_jsx__default["default"]("span", {
|
|
116
124
|
className: "cell-value",
|
|
117
125
|
style: {
|
|
118
126
|
justifyContent: column.type === 'number' ? 'flex-end' : 'flex-start'
|
|
@@ -134,5 +142,5 @@ function initColumnDefinition(options = {}) {
|
|
|
134
142
|
|
|
135
143
|
exports.appendCellFormatter = appendCellFormatter;
|
|
136
144
|
exports.appendHeaderFormatter = appendHeaderFormatter;
|
|
137
|
-
exports[
|
|
145
|
+
exports["default"] = initColumnDefinition;
|
|
138
146
|
exports.mergeClassNameToColumnHeader = mergeClassNameToColumnHeader;
|
|
@@ -2,15 +2,22 @@
|
|
|
2
2
|
|
|
3
3
|
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
4
4
|
var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
|
|
5
|
-
|
|
5
|
+
require('core-js/modules/web.dom-collections.iterator.js');
|
|
6
|
+
require('core-js/modules/esnext.async-iterator.map.js');
|
|
7
|
+
require('core-js/modules/esnext.iterator.map.js');
|
|
8
|
+
require('core-js/modules/esnext.async-iterator.for-each.js');
|
|
9
|
+
require('core-js/modules/esnext.iterator.constructor.js');
|
|
10
|
+
require('core-js/modules/esnext.iterator.for-each.js');
|
|
11
|
+
require('core-js/modules/esnext.async-iterator.reduce.js');
|
|
12
|
+
require('core-js/modules/esnext.iterator.reduce.js');
|
|
13
|
+
require('core-js/modules/esnext.async-iterator.filter.js');
|
|
14
|
+
require('core-js/modules/esnext.iterator.filter.js');
|
|
15
|
+
var dsUtilities = require('@elliemae/ds-utilities');
|
|
6
16
|
var React = require('react');
|
|
7
17
|
var uuid = require('uuid');
|
|
8
18
|
var resolve = require('table-resolver');
|
|
9
|
-
var useDerivedStateFromProps = require('@elliemae/ds-utilities/hooks/useDerivedStateFromProps');
|
|
10
|
-
var usePrevious = require('@elliemae/ds-utilities/hooks/usePrevious');
|
|
11
|
-
var system = require('@elliemae/ds-utilities/system');
|
|
12
19
|
var initColumnDefinition = require('./initColumnDefinition.js');
|
|
13
|
-
var utils$
|
|
20
|
+
var utils$1 = require('../createDataInstance/utils.js');
|
|
14
21
|
var VolatileRowsListener = require('./VolatileRowsListener.js');
|
|
15
22
|
var utils = require('../utils.js');
|
|
16
23
|
|
|
@@ -25,28 +32,24 @@ function _interopNamespace(e) {
|
|
|
25
32
|
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
26
33
|
Object.defineProperty(n, k, d.get ? d : {
|
|
27
34
|
enumerable: true,
|
|
28
|
-
get: function () {
|
|
29
|
-
return e[k];
|
|
30
|
-
}
|
|
35
|
+
get: function () { return e[k]; }
|
|
31
36
|
});
|
|
32
37
|
}
|
|
33
38
|
});
|
|
34
39
|
}
|
|
35
|
-
n[
|
|
40
|
+
n["default"] = e;
|
|
36
41
|
return Object.freeze(n);
|
|
37
42
|
}
|
|
38
43
|
|
|
39
44
|
var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
|
|
40
45
|
var _objectWithoutProperties__default = /*#__PURE__*/_interopDefaultLegacy(_objectWithoutProperties);
|
|
41
46
|
var resolve__namespace = /*#__PURE__*/_interopNamespace(resolve);
|
|
42
|
-
var useDerivedStateFromProps__default = /*#__PURE__*/_interopDefaultLegacy(useDerivedStateFromProps);
|
|
43
|
-
var usePrevious__default = /*#__PURE__*/_interopDefaultLegacy(usePrevious);
|
|
44
47
|
|
|
45
48
|
const _excluded = ["uuid", "plugins", "rows", "columns", "renderers"];
|
|
46
49
|
|
|
47
50
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
48
51
|
|
|
49
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty__default[
|
|
52
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty__default["default"](target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
50
53
|
const IS_INTERNET_EXPLORER = utils.isInternetExplorer(); // TODO: Reuse createDataInstance for the grid the same
|
|
51
54
|
// way as the list does ex: packages/ds-shared/src/useDataList/useDataList.js
|
|
52
55
|
// eslint-disable-next-line max-statements
|
|
@@ -59,7 +62,7 @@ function useDataGrid(_ref) {
|
|
|
59
62
|
columns,
|
|
60
63
|
renderers = {}
|
|
61
64
|
} = _ref,
|
|
62
|
-
props = _objectWithoutProperties__default[
|
|
65
|
+
props = _objectWithoutProperties__default["default"](_ref, _excluded);
|
|
63
66
|
|
|
64
67
|
const plugins = pluginsFromProps;
|
|
65
68
|
const instance = React.useRef();
|
|
@@ -75,15 +78,15 @@ function useDataGrid(_ref) {
|
|
|
75
78
|
|
|
76
79
|
const [RowsObserver] = React.useState(() => new VolatileRowsListener()); // todo move this with rows composition
|
|
77
80
|
|
|
78
|
-
const [originalRows, updateRows] =
|
|
81
|
+
const [originalRows, updateRows] = dsUtilities.useDerivedStateFromProps(rows, {
|
|
79
82
|
onUpdate: resolve__namespace.resolve({
|
|
80
83
|
columns,
|
|
81
|
-
method: extra =>
|
|
84
|
+
method: extra => dsUtilities.compose(resolve__namespace.byFunction('valueTransformation')(extra), resolve__namespace.nested(extra))
|
|
82
85
|
}),
|
|
83
86
|
updateOnStateChange: true
|
|
84
87
|
});
|
|
85
88
|
instance.current = {
|
|
86
|
-
decoratedRenderers:
|
|
89
|
+
decoratedRenderers: dsUtilities.cloneDeep(renderers),
|
|
87
90
|
decoratedColumns: columns,
|
|
88
91
|
columns,
|
|
89
92
|
rows,
|
|
@@ -131,7 +134,7 @@ function useDataGrid(_ref) {
|
|
|
131
134
|
registerStateHook: [],
|
|
132
135
|
registerHotKeys: [],
|
|
133
136
|
decorateColumn: [],
|
|
134
|
-
decorateColumns: [cols => cols.map(col => initColumnDefinition[
|
|
137
|
+
decorateColumns: [cols => cols.map(col => initColumnDefinition["default"]({
|
|
135
138
|
useTextTruncation: col.useTextTruncation,
|
|
136
139
|
wrapText: props.wrapText,
|
|
137
140
|
normalize: props.normalizeDataKeys
|
|
@@ -162,18 +165,21 @@ function useDataGrid(_ref) {
|
|
|
162
165
|
});
|
|
163
166
|
}, instance.current);
|
|
164
167
|
|
|
165
|
-
const reduceHotKey = (nextInstance, {
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
168
|
+
const reduceHotKey = (nextInstance, _ref2) => {
|
|
169
|
+
let {
|
|
170
|
+
key,
|
|
171
|
+
handler,
|
|
172
|
+
options
|
|
173
|
+
} = _ref2;
|
|
174
|
+
return _objectSpread(_objectSpread({}, nextInstance), {}, {
|
|
175
|
+
hotKeys: _objectSpread(_objectSpread({}, nextInstance.hotKeys), {}, {
|
|
176
|
+
[key]: {
|
|
177
|
+
handler,
|
|
178
|
+
options
|
|
179
|
+
}
|
|
180
|
+
})
|
|
181
|
+
});
|
|
182
|
+
};
|
|
177
183
|
|
|
178
184
|
instance.current = decorators.registerHotKeys.reduce((nextInstance, decorator) => {
|
|
179
185
|
const hotKeys = decorator(nextInstance);
|
|
@@ -184,28 +190,28 @@ function useDataGrid(_ref) {
|
|
|
184
190
|
|
|
185
191
|
return reduceHotKey(nextInstance, hotKeys);
|
|
186
192
|
}, instance.current);
|
|
187
|
-
instance.current.decoratedRenderers = utils$
|
|
193
|
+
instance.current.decoratedRenderers = utils$1.applyDecorators(instance.current.decoratedRenderers, decorators.decorateRenderers, instance.current);
|
|
188
194
|
instance.current.decoratedColumns = React.useMemo(() => {
|
|
189
|
-
const visibleColumns =
|
|
190
|
-
return visibleColumns.length ? utils$
|
|
195
|
+
const visibleColumns = dsUtilities.cloneDeep(columns).filter(column => typeof column.visible === 'undefined' || column.visible);
|
|
196
|
+
return visibleColumns.length ? utils$1.decorateColumns(visibleColumns, decorators, instance.current) : [];
|
|
191
197
|
}, [columns]);
|
|
192
|
-
instance.current.getBodyProps = utils$
|
|
193
|
-
instance.current.getHeaderProps = utils$
|
|
194
|
-
instance.current.getRowProps = utils$
|
|
195
|
-
instance.current.getHeaderRowProps = utils$
|
|
196
|
-
instance.current.getTableProps = utils$
|
|
198
|
+
instance.current.getBodyProps = utils$1.reducePropsGetter(decorators.getBodyProps, instance.current);
|
|
199
|
+
instance.current.getHeaderProps = utils$1.reducePropsGetter(decorators.getHeaderProps, instance.current);
|
|
200
|
+
instance.current.getRowProps = utils$1.reducePropsGetter(decorators.getRowProps, instance.current);
|
|
201
|
+
instance.current.getHeaderRowProps = utils$1.reducePropsGetter(decorators.getHeaderRowProps, instance.current);
|
|
202
|
+
instance.current.getTableProps = utils$1.reducePropsGetter(decorators.getTableProps, instance.current);
|
|
197
203
|
instance.current.composedRows = decorators.composeRows.reduce((nextRows, getter) => getter(nextRows, instance.current), instance.current.composedRows);
|
|
198
204
|
RowsObserver.notify(instance.current.composedRows);
|
|
199
205
|
const currentShouldRefocus = instance.current.shouldRefocus.current;
|
|
200
|
-
const prevState =
|
|
206
|
+
const prevState = dsUtilities.usePrevious(instance.current.state);
|
|
201
207
|
|
|
202
|
-
if (
|
|
208
|
+
if (dsUtilities.isObject(currentShouldRefocus) && currentShouldRefocus.forced) {
|
|
203
209
|
instance.current.shouldRefocus.current = currentShouldRefocus.value;
|
|
204
210
|
} else {
|
|
205
|
-
instance.current.shouldRefocus.current = !
|
|
211
|
+
instance.current.shouldRefocus.current = !dsUtilities.isEqual(prevState, instance.current.state);
|
|
206
212
|
}
|
|
207
213
|
|
|
208
|
-
if (props.instanceRef)
|
|
214
|
+
if (props.instanceRef) dsUtilities.setRef(props.instanceRef, instance.current);
|
|
209
215
|
return _objectSpread(_objectSpread({}, instance.current), {}, {
|
|
210
216
|
decorators
|
|
211
217
|
});
|